Webサービス
Webサービスとは、Webサイトの構築技術を使って、JSONなどのデータを返すサービスのことです。「WebサービスAPI」や「Web API」などとも呼ばれます。
主な特徴 [編集 | ソースを編集]
- Webアプリの技術が流用できる
Webアプリは不特定多数が殺到したような超高負荷などに耐える仕組みも発展しており、そのような負荷分散技術などをそのまま応用できるという特徴があります。
- ルーターを越えやすい
また、独自プロトコルのソケット通信を使ったAPIと異なり「HTTPはルーターを超えやすい」という特徴があります。ほとんどの企業においてHTTPだけはファイヤーウォールで塞がれていないのが一般的なためです。
- プログラミング言語などに依存しない
Webサービスは、SOAPやRESTなどのプロトコルを使用して通信を行い、XMLやJSONなどのデータ形式で情報を交換することができます。これらは異なるプログラミング言語やプラットフォーム間での相互運用性を実現することができます。例えば、Javaで書かれたWebサービスは、PHP、Python、Rubyなどの他の言語で書かれたクライアントからもアクセス可能です。
主な設計手法[編集 | ソースを編集]
- XML-RPC
XML-RPCはWebサービスで一番最初に流行ったのがXML-RPCです。送受信ともにXMLでやり取りするという煩雑なものでした。通信にHTTPを使いますが、中身はほぼ独自通信プロトコルみたいな感じで非常に使いにくいものでした。
- SOAP
XML-RPCを発展させたものとして「SOAP」が登場しました。語源は「Simple Object Access Protocol」ですがまったくシンプルではありませんでした。
- AJAX
SOAPがシンプルではなかったため、XML-RPCの次に流行ったのは「AJAX」でした。単純にURLを叩いたらXMLかJSONが返ってくるというもので実装はXML-RPCより相当簡単になりました。Googleが検索エンジンのサジェスト(入力予測)機能で使い始めたことで話題になり一気に大流行しました。
- REST
AJAXはあまりに無秩序でした。そので登場したのがHTTPメソッドで「CURD」を再現する「REST(RESTful)」という手法です。大雑把にいえばAJAXの「URL」と「戻り値」にルールを付けたものです。AJAXは無秩序でAPIマニュアルを読まないと利用は難しいものでしが、RESTは秩序が生まれたことでマニュアルを隅々まで読まなくても何となく使えるようになりました。あくまで何となくです。