Powered by SmartDoc

Webサービスの概要

Webサービスとは何か

この講義では、「Webサービス」の基本について知り、WebサービスにアクセスするプログラムをJavaで作成し、またWebサービスを自らで提供できるようにすることを目標とします。

WebアプリケーションとWebサービス

Webアプリケーションは、図1.1.1.1[Webアプリケーション]のように「Webサーバ」が「Webブラウザ」と通信を行います。

Webアプリケーション

それに対してWebサービスは、図1.1.1.2[Webサービス]のように「Webサーバ」が「プログラム」と通信を行うものです。

Webサービス

言い換えると、Webサービスとは、「Webのブラウザを使わずに、プログラム中からWebにアクセスして必要な情報を取り出せるサービス」ということになります。

Webサービスの具体例を見てみましょう。

Webサービスの具体例 (1) Google Web API

もっともよく利用されているWebサービスに、"Google Web API"があります。このAPIは、Javaなどのプログラムから、Googleにアクセスするためのものです。プログラムからGoogleにアクセスして、検索結果をプログラムで処理できます。例えば、ある言葉に関するGoogleの検索件数を毎日カウントする、といったプログラムが作成できます。

Webサービスの具体例 (2) 輸入製品を扱うプログラム

輸入製品を扱うプログラムがあるとします。このプログラムでは、日々変化する円相場の情報を入力する必要があります。では、この円相場の情報は誰がどのように入力すのでしょう?やはり、人間が円相場の情報を探してきて、入力するのでしょうか?

ここで、どこかのサイトで、現在の円相場がわかるWebサービスが公開されていたとします。そうすると、プログラムからこのWebサービスにアクセスして、現在の円相場の情報を取得すればよいのです。円相場の情報を自分で入力しなくても、プログラムに反映することができます。

Webサービスの具体例 (3) 札幌までの交通機関のチケット

「札幌まで行きたい!」という人がいます。

JR,バス、飛行機などの各交通機関でWebサービスを提供していたとしましょう。プログラムは、○月○日の各交通機関のWebサービスにアクセスし、それぞれの料金を調べ、いちばん安い交通機関のチケットを購入しておきます。

Webサービスの具体例 (4) 旅行会社

「ギリシャまで旅行に行きたい!」

プログラムから旅行会社のWebサービスにアクセスします。旅行会社のWebサービスは、ほかのWebサービスにアクセスしながら、飛行機・宿泊などを自動的に決めていきます。

Webサービスの技術

HTTPプロトコルの利用

Webサービスは、クライアントとは(ネットワーク的に)離れていることが想定されています。しかし、ネットワーク的に離れたサービスにアクセスしようと思っても、たいていのサイトではファイアウォールによってWebとメール以外のポートは閉じられています。

しかし、80番のHTTPはだいたい使えます。そこで、Webサービスでは、トランスポート層のプロトコルとしてHTTPを使うのです。まれに、SMTPを使う場合もあります。

XMLの利用

Webサービスで利用されるデータには、後で見るようにXMLが使われています。そのため、Webサービスを構成するプログラムは、どんな言語で記述されても良いのです。

SOAP

SOAPとは、Webサービスに対する「要求」と、クライアントへの「応答」のフォーマットです。XMLで記述されています。

先ほどの具体例に出てきたGoogle Web APIでは、「こんな言葉を含むページを調べたい」という要求と、「こんなページがありました」という応答がSOAPで記述されています。

WSDL

WSDLとは、Webサービスの具体的な内容を書いてある文書です。Webサービスを利用するためにはどこにアクセスすればよいのか、またどのようなメソッドが使えるのかなどの情報が記述されています。Java言語でのインタフェースのようなものです。SOAPと同じくWSDLもXMLで記述されています。

Google Web APIでも、このWebサービスの内容を示すWSDL文書が付属しています。

WSDLから、Webサービスにアクセスするクライアントプログラムを生成できます。例えばJavaのWebサービス開発キットであるJWSDPでは、wscompileというツールでWSDLからJavaプログラムを生成します。クライアントプログラムからはメソッドを呼び出すだけであり、具体的な処理内容はWebサービス側にあるので、これでうまくいくのです。

また、既存のプログラムからWSDLを生成することもできます。

Webサービスの具体例 (5) 情報システム間の連携

企業内に2つの情報システムがあり、それぞれまったく別のスタイルで実装されているとします。そして、この2つシステムを統合する必要が生じました。しかし、2つのシステムはまったく違った構成となっており、簡単には統合できません。一から作り直すのも大変です。

そこで、それぞれの情報システムに、Webサービスの機能を追加してみます。

HTTPとXMLという標準技術によって、2つのシステムへのアクセスが楽になります。このことにより、システムの統合がやりやすくなります。