「Webサービス」の版間の差分

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

2023年3月29日 (水) 06:23時点における最新版

Webサービスとは、Webサイトの構築技術を使って、JSONなどのデータを返すサービスのことです。「WebサービスAPI」や「Web API」などとも呼ばれます。

主な特徴 [編集 | ソースを編集]

Webアプリの技術が流用できる

Webアプリは不特定多数が殺到したような超高負荷などに耐える仕組みも発展しており、そのような負荷分散技術などをそのまま応用できるという特徴があります。

ルーターを越えやすい

また、独自プロトコルのソケット通信を使ったAPIと異なり「HTTPルーターを超えやすい」という特徴があります。ほとんどの企業においてHTTPだけはファイヤーウォールで塞がれていないのが一般的なためです。

プログラミング言語などに依存しない

Webサービスは、SOAPRESTなどのプロトコルを使用して通信を行い、XMLJSONなどのデータ形式で情報を交換することができます。これらは異なるプログラミング言語やプラットフォーム間での相互運用性を実現することができます。例えば、Javaで書かれたWebサービスは、PHPPythonRubyなどの他の言語で書かれたクライアントからもアクセス可能です。

主な設計手法[編集 | ソースを編集]

XML-RPC

XML-RPCはWebサービスで一番最初に流行ったのがXML-RPCです。送受信ともにXMLでやり取りするという煩雑なものでした。通信にHTTPを使いますが、中身はほぼ独自通信プロトコルみたいな感じで非常に使いにくいものでした。

SOAP

XML-RPCを発展させたものとして「SOAP」が登場しました。語源は「Simple Object Access Protocol」ですがまったくシンプルではありませんでした。

AJAX

SOAPがシンプルではなかったため、XML-RPCの次に流行ったのは「AJAX」でした。単純にURLを叩いたらXMLJSONが返ってくるというもので実装はXML-RPCより相当簡単になりました。Google検索エンジンサジェスト(入力予測)機能で使い始めたことで話題になり一気に大流行しました。

REST

AJAXはあまりに無秩序でした。そので登場したのがHTTPメソッドで「CURD」を再現する「RESTRESTful)」という手法です。大雑把にいえばAJAXの「URL」と「戻り値」にルールを付けたものです。AJAXは無秩序でAPIマニュアルを読まないと利用は難しいものでしが、RESTは秩序が生まれたことでマニュアルを隅々まで読まなくても何となく使えるようになりました。あくまで何となくです。