「分散システム」授業での簡単な演習という記事を書きましたが、その続きです。
その時は、
Java RMI (Remote Method Invocation)を
rmiregistry(ネームサーバ)で行いました。今回は、さらに進化した現代の
Web Servicesです。以下のような仕組みです。
|
Web サービス(菅原健研次「はじめての分散処理システム」より引用) |
授業でこの演習(簡単な例題で動作を確認)したいのですが、
WSDLでの記述や
SOAPメッセージの作成はそれなりに面倒です。それを大幅に緩和させて、しかも、Web Servicesの仕組みの本質を体験するには、
JAX-WS web serviceというJava標準ライブラリを利用すれば良いようです。これで演習をやります。さらに、以下のこともできそうです!
- JAX-WSでパブリシュしたWeb serviceに対して自動されたWSDLから、wsimport(jdkに標準付属)によって自動生成されたstub相当のプログラムを使って、クライアント側のプログラムを作成する。
- Eclipseに組み込まれているTCP/IP Monitorを利用して、SOAPメッセージを追跡する。(ただし、この場合は、クライアントのポートをこのMonitorサーバのポートに変更する。すると、このMonitorから本来のクライアントのポートへ転送されサーバへ行く。)
- 一例として、Java以外の例えば、Rubyでもクライアントを作成して、このWeb Serviceを利用してみる。Web2.0のもと、Web Serviceは、言語やOSに依存しません!
- なお、ここではUDDIは省略。たくさんのWeb Sericesを生成した場合はUDDIへ登録することになるが...
-------------上図の補足---------------------------------------------------------
[1]機能
●人手を介さず、プログラムが自動的に協調
●高度なユーザリクエストを処理
[2] 構成要素
●アプリケーションサーバ
●Webサービスサーバ
●サービス仲介サーバ
[3] XML (eXtensible Markup Language)
●プログラムが、Webページの要素の意味に基づいた処理できるようにする。
[4] WSDL (Web Service Description Language)
●XMLベースで、Webサービスの仕様を記述する。
[5] SOAP (Simple Object Access Protocol)
●メッセージはXMLで記述、上記3サーバ間のメッセージ交換用プロトコル
[6] UUDI (Universal Description, Discovery and Integration)
●Webサービスの登録、問い合わせ、提供のためのプロトコル