@IT|@IT自分戦略研究所|QA@IT|イベントカレンダー+ログ | ||
Loading
|
@IT > Webサービスを実現するhp netaction > 第2回 Simple Webサービス実現のプラットフォーム |
|
|
|
2002/1/22
Web Services Platform(以下WSP)とはWebサービスを実現するためのコアとなるプラットフォームであり、第1回で解説したHP Web Services Transactionの前提となるソフトウェアだ。 また、WSPはJ2EEプラットフォーム上で稼動するアプリケーションだ。したがって、WSPの動作には、J2EE対応のアプリケーション・サーバが必要になる。 HPでは、J2EEアプリケーション・サーバとして、HP Application Server 8.0(以下HP-AS)を用意しているが、WSPはJ2EE標準であれば、どのアプリケーション・サーバにも対応する。
WSPはXMLベースのメッセージのやりとりを効率良く行えるように設計されている。アーキテクチャとしては、ヘッダー部分の処理とボディ部分の処理を行うコンポーネント群から構成されている。また、SOAPメッセージ処理は「Apache Cocoon2」フレームワークを採用している。Webサービスでのメッセージ処理は、すでに標準として規定されている以下のコンポーネント、およびプロトコルを使用する。 (1)SOAP (1)SOAP(Simple Object Accessing Protocol) (2)UDDI(Universal Description, Discovery and Integration) (3)WSDL(Web Services Description Language)
WSPの現バージョンではHTTPプロトコルのみをサポートしているが、今後はSMTPなどのHTTP以外のプロトコルもサポートする予定だ。SOAPの実装としては、これから主流になると思われるJAXMを実装している。
WSPのコアとなるHP SOAP Serverは、以下の4種類のアダプタを持っている。 (1)RPC Javaアダプタ また、上記のアダプタに加えてユーザー独自のアダプタを開発することも可能である。HP SOAP Serverの基本的な構成は下図のようになっている。
HP SOAP Serverは、基本的に2つのパイプラインステージを持っている。1つは「ヘッダ処理」であり、もう1つは「SOAPペイロード処理」である。共にJAXMのAPIでアクセスできるので、必要に応じて機能を柔軟に追加できるが。HP SOAP Server自体はJ2EEのWARファイルフォーマットでデプロイが可能であり、カスタマイズした後に任意のデプロイツールを使用して再配置することが容易にできる。 ●ヘッダ処理 HP SOAP Serverではヘッダ処理をheader-adapter.xconfというコンフィグファイルに設定するようになっており、以下の4つのパーツごとに設定ができる。
●SOAPペイロード処理
ここでは、実際にWSPを使用してどのようにサービスを配備するのか、またWSPの基本的な設定方法について解説する。 サービスの配備手順は以下の通りである。 (1)公開するサービスに対するユニークな名前を決定する WSPではWebサービスコンフィグファイル(XMLファイル)とサービスディスクリプションファイル(WSDLファイル)はWSPが提供するツールによって簡単に作成することができる。 これらのファイルは、以下のディレクトリ下に置くことが決まっている。
また、HP SOAP Server自体はサーブレットで実装されているので、hpws/WEB-INF/web.xmlファイルにてサーブレットとしての基本的な振る舞いを設定することができる。
●呼び出し例
上記のURLを指定することで指定したhostnameのSOAPサーブレットを呼び出し、MathServiceという名前で公開されているWebサービスを呼び出すことができる。 (1)サービスコンフィグファイル(<WebServiceName>.xml) 以下の例に示すとおり、サービスコンフィグファイルにて使用するアダプタ(rpc-java、 ejb-java、 doc-handler)の指定およびルックアップに使用する名前を指定する。
(2)サービスディスクリプションファイル(<WebServiceName>.wsdl) 以下の例はアダプタタイプがrpc-javaの例である。簡単な計算をするサンプルのサービスの例でwsdlファイル自体は70行程度の大きさである。しかし、WSPの提供するツール(ClassToWebService.bat)を使用することで上記の2つのファイルを自動的に生成することができる。もちろん、その他のアダプタタイプ(EJB、DOC交換)にも対応したツールが用意されている。
ここまでで、WSPの基本的なところは説明した。内容的にはサービスを公開する側の機能を中心に説明をした。 一方、サービスを利用する側の機能としてXMLメッセージを効率的に処理するという目的でCocoon2というフレームワークを使用することができる。Java、JSP、Servletを駆使することでサービスを利用する側のプログラムを開発することは可能ではあるがよりCocoon2を使うことでより効率的に開発・メンテナンスができる。 簡単にCocoon2について説明をしておく。Cocoon2はApache XMLプロジェクトが提供しているソフトウェアである。Java/XMLを取り巻く環境において多数のフレームワークが存在するがCocoon2はその中でも特にXMLの処理に特化したフレームワークである。 XMLファイルにXSLTファイルでフォーマット情報を与えることで様々なフォーマットに変換することができる。Webサービスのツールとして使う場合にはHTMLに変換することになる。ここまでの機能では単なるパブリッシングツールであるが、さらにXSPというファイルを加えることでロジックを追加することができる。 これにより、コンテンツ(XML)、スタイル(XSLT)、ロジック(XSP)を効率良く管理することができる。また、Cocoon2の持つキャッシング機能によってパフォーマンス面でも効果がある。Cocoon2の詳細については(http://xml.apache.org/Cocoon)を参照して欲しい。 Webサービスでの処理は基本的にXMLをベースとしたメッセージ交換で行われる。例えば、ドキュメント交換型のサービスを利用する場合にはXMLドキュメントの形式で受け取ったリクエストをパースして、処理に必要な引数をWebサービスの実体としてのJavaプログラムに渡す。結果を再びXMLドキュメント形式に変換し、リクエスト発行元に返す。プロトコルとしてのSOAPは非常にシンプルであり、引数としてはプリミティブ型とプリミティブ型の1次元配列のみしか許していない。 WebサービスをRPC型で実装しようとすると、1伝票に複数の明細があるような構造を持ったデータの表現ができないことになる。つまり、RPC型では単純なショッピングサイトすら実現できない。このような場合にはXMLの柔軟性を生かすべくDoc交換型の処理を利用することで解決することができる。 構造を持ったデータの交換(B-to-Bの場合のほとんどがそうであると思われる)をするためにはDoc交換型を利用することになる。 このようなXMLをベースにしたシステムを構築する場合に、Cocoonというフレームワークを利用することで、以下の要求に対応することができる。
ここでは、HP-SOAPを使用してサービスを作成およびディプロイするのに必要となるコマンドラインベースのツールについて紹介する。代表的なツールとしては以下の5種類のツールが用意されている。
・ClassToWebService 既存のJava ClassファイルをWebServiceとして公開するためのディプロイメントディスクリプタを生成するツール。 Java ClassファイルおよびWebServiceを公開するURL、Service名を指定し実行する。生成されたxmlファイルを規定のディレクトリに配置する。 ・EJBToWebService 既存のEJB(stateless Session Beans)をWebServiceとして公開するためのディプロイメントディスクリプタを生成するツール。 ・HandlerToWebService ドキュメントハンドラーをWebServiceとして公開するためのディプロイメントディスクリプタを生成するツール。 ・WSDLToClientProxy WSDL(WebServiceの定義ファイル)を読み込み、proxyクライアントのJavaソースファイルを生成する。 ・ClassToWSDL Java ClassファイルからWSDLを生成するツール。出力としてWSDLファイルが生成される。
WSPの紹介ということで、限られたスペースの中で機能的な部分を中心に紹介した。現時点ではWSPは大きく2つのバージョンが存在する。 1.hp web services platform developer edition 今回の解説では基本的にhp soap server for hp-asをベースに行った。UDDIに関する機能の面でhp web services platform developer editionに比べると機能不足の面があるが、より汎用的な製品という位置付けになっている。今後この製品をベースに機能拡張を行う予定である。ここからダウンロードできるので、是非、実際に評価していただきたい。 ●WSPの動作環境
|
|