|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IBM Lotus Component Designer V6.0での Web サービスの使用 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jason English (jason_english@us.ibm.com), Information Developer, IBM
IBM Lotus Component Designer V6.0は、インターネット上および組織内で、限りなく多様な Webサービスを活用できる効果的な方法を提供します。Webサービスによって、コンポーネントが行うタスク(たとえば、通貨の変換、インターネット検索、または米国の郵便番号のリターンなど)が実行できます。 この記事では、Webサービスの概要について簡単に触れた後、IBM Lotus Component Designerでの Web サービスについて説明します。そして、IBM Lotus Component Designerコンポーネントに架空の Web サービスを実装するプロセスを順番に見ていきます。 Webサービスとは?一般に、Webサービスはソフトウェアどうしがネットワークを介して相互にやりとりすることを可能にするプログラマチックなインターフェースです。 Webサービスは、ネットワーク内のサーバーでホストされ、WSDL(Web Services Description Language)文書の中で XMLで記述されています。WSDLファイルは、ローカル・コンピューター上、ネットワーク上、または UDDI (Universal Description, Discovery, and Integration) ディレクトリーに保存できます。 Webサービスのコンシューマー・ソフトウェアは、WSDLファイルで指定されたデータをXML形式で提供し、これをXML文書(Lotus Component Designerでは要求文書と呼びます)でWebサービス・プロバイダーに送信します。Webサービス・プロバイダーはそのサービスをデータ上で実行し、処理済みのデータをXML文書(Lotus Component Designerでは応答文書と呼びます)でコンシューマーに返します。
IBM Lotus Component DesignerでのWebサービスの使用Lotus Component DesignerでWebサービスを使用するときのワークフローの概要を図1に示します。
図1. Lotus Component DesignerでのWebサービスの使用 ![]()
コンポーネントでのstockInfo Webサービスの使用ここで取り上げるコンポーネントは、ユーザーが入力した株式ティッカーに基づいて企業の情報を返す、stockInfoという架空のWebサービスを消費します。ユーザーが株式ティッカーIDを入力し、ボタンをクリックすると、Webサービスは、その会社に関する情報(会社名、ティッカー、現在の株価など)を返します。 Webサービスを消費するために、以下の手順を実行します。
アダプターの作成最初に、Lotus Component DesignerでWebサービス用のアダプターを作成します。 アダプターを作成するには、サービスのWSDLの場所(URLまたはローカル)を直接指定するか、 UDDIディレクトリーでWSDLを検索します。 stockInfoサービスは「 Stock Prices For You」という架空の会社によって提供され、そのWSDLファイルはWebサイトStockPricesForYou.comのUDDIディレクトリーにあります。 以下の手順を実行し、アダプターを作成します。
右側の「結果」セクションに、利用可能なWebサービスとその操作が表示されます。stockInfoサービスとそのすべての操作を選択し、「OK」をクリックし、もう一度「OK」をクリックします。
アダプター作成プロセスの一部として、サービスのWSDLファイルのコピーがコンピューターにダウンロードされ、Eclipseワークプレース内のコンポーネントのディレクトリー(たとえば、C:\Eclipse32\Designer\workspace\MyComponent\WebContent\WebServiceAdapter)に保存されます。また、このディレクトリーには、コンピューターとWebサービス・サーバー間で要求文書および結果文書を送受信するために必要な情報を含むアダプター・ファイルと、アダプターの作成者、作成日時、および作者名などの情報を含むプロパティー文書が保存されます。 コンポーネント・ナビゲーターで、「外部データ」->「Webサービス・アダプター」セクションを展開し、新規アダプターをダブルクリックして開きます。図5に示すように、Webサービスに関するすべての情報が表示されます。これには、要求文書、結果文書、および障害文書のスキーマが含まれています。(障害文書には、エラーがあったときに発生した内容がXMLで記述されます。たとえば、提供されたデータが受け取れない形式であった場合は、コンポーネントによって「Please use an acceptable format in this field」というテキストが表示されます。stockInfoサービスには障害文書はありません。) 図5. コンポーネント・ナビゲーターでの「Webサービス・アダプター」 セクションの展開
Webサービス記述が含まれるキャンバスの一番下にある「テスト・アダプター」タブでは、要求文書を編集して「Webサービスの起動」をクリックすることにより、操作をテストできます。
設計要素の追加コンポーネント内のページを設計することにより、ユーザーが株式ティッカーをフィールド内に入力し、ボタンをクリックできるようになります。また、結果情報をページ下部のフィールドのグループに表示できます。ユーザーの株式ティッカーの入力には編集ボックスを使用し、 Webサービスの起動にはボタンを使用します。さらに、応答データの表示には、編集ボックスを含む繰り返し制御を使用します。 繰り返し制御は、他の一連の制御機能を保持していて、この一連の制御機能をページ内で複数回繰り返します。この場合、ユーザーは複数の株式ティッカーを入力できるので、応答データは複数となりますが、これらを表示するために、同じ制御のセットをページ内にいくつも作るのは面倒です。そこで、繰り返し制御を使用すると、表示制御のセットを1つ作成するだけでよく、複数の応答があった場合は、応答ごとに表示が繰り返されます。たとえば、ユーザーが「IBM YHOO」と入力すると(「YHOO」はYahoo!の株式ティッカーです)、IBM用に1つのデータ・セットが表示され、Yahoo!用にもう1つのデータ・セットが表示されます。 メモ:ページやコントロールの作成など、Lotus Component Designerでのタスクの実行方法については、Lotus Component Designerのヘルプを参照してください。 以下の手順を実行し、設計要素を追加します。 コンポーネントでページを作成します。 Webサービス・アダプターをページのデータ・ソースにします。
図6. 結果データの表示 ![]()
Webサービスへの要素のバインド次に、コントロールをバインドしましょう。Webサービスのアダプターを作成した後は、サービスの要求文書、応答文書、または障害文書をページのデータ・ソースとして使用し、それらに含まれる要素にコントロールをバインドすることができます。 まず、ユーザーが株式ティッカーを入力する編集ボックスを、株式ティッカー・データを保持する要求文書内の要素にバインドします。次に、繰り返し制御を応答文書にバインドします。繰り返し制御に表示される情報はすべて応答文書から得られるからです。そして、会社名、株式ティッカー、および株価を表示する各編集ボックスを、データが含まれる結果文書の要素にバインドします。最後に、Webサービスを起動するボタンのイベントを作成します。 図7に示すように、株式ティッカー編集ボックスを要求文書のstockTicker要素にバインドします。
図7. stockTicker要素への株式ティッカー編集ボックスのバインド ![]() 図8に示すように、応答文書の一番上の要素に繰り返し制御をバインドします。
図8. 応答文書の一番上の要素への繰り返し制御のバインド ![]() 図9に示すように、繰り返し制御の各編集ボックスを応答文書内の適切な要素にバインドします。たとえば、次のように操作します。
図9. 応答文書の要素への編集ボックスのバインド ![]() 図10に示すように、「Webサービスの起動」イベントをボタンに追加します。
図10. ボタンへのイベントの追加 ![]()
まとめ今後のリリースでは、IBMサービス指向アーキテクチャーの機能であるWSRR(WebSphere Service Registry and Repository)のサポートを検索してください。これはUDDIに似たディレクトリーですが、幅広い一連の機能を提供します。WSRRディレクトリーはWebサービスに関する情報を保管し、コンポーネントがこれらの情報を利用できるようにします。ポートレットとしてWebSphere Portalにデプロイされたコンポーネントがサービスを消費する場合、このコンポーネントもWSRRに登録されるため、システム管理者は、どのポートレットがどのWebサービスを使用するのかをトラッキングできます。 リソース学ぶために
製品や技術を入手するために
議論するために
筆者について(原文のまま)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||