IBM Lotus Component Designer V6.0は、インターネット上および組織内で、限りなく多様な Webサービスを活用できる効果的な方法を提供します。Webサービスによって、コンポーネントが行うタスク(たとえば、通貨の変換、インターネット検索、または米国の郵便番号のリターンなど)が実行できます。
この記事では、Webサービスの概要について簡単に触れた後、IBM Lotus Component Designerでの Web サービスについて説明します。そして、IBM Lotus Component Designerコンポーネントに架空の 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に示します。
- 使用したいWebサービスを見つけ、Lotus Component Designerでそのサービス用のWebサービス・アダプターを作成します。
- UIコントロールをページに追加します。 UIコントロールは入力パラメーターを受け取り、サービスによって返された結果を表示します。
- コンポーネントをポートレットとしてIBM WebSphere Portalにデプロイします。
- 実行時に、コンポーネントのユーザーはポートレットのページでパラメーターを入力します。
- ポートレットは、これらのパラメーターをXML要求文書としてWebサービス・プロバイダーに送信します。
- Webサービス・プロバイダーは要求文書を受け取り、データ上でアクションを実行し、結果を保持するポートレットにXML結果文書を返します。
- ポートレットが結果をユーザーに表示します。
図1. Lotus Component DesignerでのWebサービスの使用

ここで取り上げるコンポーネントは、ユーザーが入力した株式ティッカーに基づいて企業の情報を返す、stockInfoという架空のWebサービスを消費します。ユーザーが株式ティッカーIDを入力し、ボタンをクリックすると、Webサービスは、その会社に関する情報(会社名、ティッカー、現在の株価など)を返します。
Webサービスを消費するために、以下の手順を実行します。
- アダプターを作成する。
- 設計要素を作成する。
- 要素をWebサービスにバインドする。
最初に、Lotus Component DesignerでWebサービス用のアダプターを作成します。
アダプターを作成するには、サービスのWSDLの場所(URLまたはローカル)を直接指定するか、 UDDIディレクトリーでWSDLを検索します。 stockInfoサービスは「 Stock Prices For You」という架空の会社によって提供され、そのWSDLファイルはWebサイトStockPricesForYou.comのUDDIディレクトリーにあります。
以下の手順を実行し、アダプターを作成します。
- 1. Lotus Component Designerにおいて、左側のコンポーネント・ナビゲーターでコンポーネントを選択し、「コンポーネント・オプション」をダブルクリックし(図2参照)、「外部データ・オプションを表示」を選択します。
図2. 「外部データ・オプションを表示」

これにより、コンポーネント・ナビゲーターに「外部データ」セクションが表示され、この中に「Webサービス・アダプター」セクションがあります(図3参照)。
図3. コンポーネント・ナビゲーターでの「外部データ」セクションの表示
- 「Webサービス・アダプター」をダブルクリックし、「新規Webサービス・アダプター」ボタンをクリックします。「新規Webサービス・アダプター」ダイアログ・ボックスで、アダプターの名前を入力し、「次へ」をクリックします。この場合、会社がそのサービスをWeb上のUDDIディレクトリーにポストしているので、「Webサービス・ソース」ダイアログ・ボックスで、「UDDIディレクトリーからWebサービスを使用する」オプションを選択し、「追加」をクリックします。
- 図4に示す「UDDI検索」ダイアログ・ボックスで、UDDIサーバーのURL 、および組織名とサービス名(省略可能)を入力し、「検索」をクリックします。
図4. 「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サービス・アダプターをページのデータ・ソースにします。
- ページ内をクリックします。
- 「プロパティー」ビューで「データ」タブをクリックします。
- 「追加」、「Webサービス」の順にクリックします。
- 「Webサービス」フィールドで、stockInfoアダプターを選択します。
- 「ファイル」->「保存」をクリックします。
- 「Please enter one or more stock tickers separated by space」というラベルをページに追加します。
- ラベルの下に編集ボックスを追加します。
- 「Get Stock Quote」というラベルを持つボタンを追加します。
- 繰り返し制御を追加します。
- 結果データを表示するために、繰り返し制御にラベルと編集ボックスを追加します(図6参照)。たとえば、会社名、株式ティッカー、および株価を表示するようにします。
図6. 結果データの表示

次に、コントロールをバインドしましょう。Webサービスのアダプターを作成した後は、サービスの要求文書、応答文書、または障害文書をページのデータ・ソースとして使用し、それらに含まれる要素にコントロールをバインドすることができます。
まず、ユーザーが株式ティッカーを入力する編集ボックスを、株式ティッカー・データを保持する要求文書内の要素にバインドします。次に、繰り返し制御を応答文書にバインドします。繰り返し制御に表示される情報はすべて応答文書から得られるからです。そして、会社名、株式ティッカー、および株価を表示する各編集ボックスを、データが含まれる結果文書の要素にバインドします。最後に、Webサービスを起動するボタンのイベントを作成します。
図7に示すように、株式ティッカー編集ボックスを要求文書のstockTicker要素にバインドします。
- ユーザーがティッカーを入力する編集ボックス内をクリックします。
- 「プロパティー」ビューで「データ」タブをクリックします。
- 「データのバインドの使用」オプションを選択します。
- 「データ・ソース」フィールドで「requestDocument」を選択します。
- 「データのバインド」フィールドでstockTicker要素を選択します。
図7. stockTicker要素への株式ティッカー編集ボックスのバインド

図8に示すように、応答文書の一番上の要素に繰り返し制御をバインドします。
- 繰り返し制御をクリックします。
- 「プロパティー」ビューの「繰り返し」タブで、「データのバインドの使用」を選択します。
- 「データ・ソース」フィールドで、「responseDocument」を選択します。
- 「データのバインド」フィールドで、内部に表示要素を保持している要素を選択します。この場合は、応答文書の一番上の要素/stockInfoにバインドします。
図8. 応答文書の一番上の要素への繰り返し制御のバインド

図9に示すように、繰り返し制御の各編集ボックスを応答文書内の適切な要素にバインドします。たとえば、次のように操作します。
- 会社の名前を表示する編集ボックスをクリックします。
- 「プロパティー」ビューで「データ」タブをクリックします。
- 「データのバインドの使用」を選択します。
- 「データ・ソース」フィールドで「responseDocument」を選択します。
- 「データのバインド」フィールドでcompanyName要素を選択します。
図9. 応答文書の要素への編集ボックスのバインド

図10に示すように、「Webサービスの起動」イベントをボタンに追加します。
- ボタンを選択します。
- 「プロパティー」ビューで「イベント」タブをクリックします。
- 左側のペインで「マウス」セクションを展開し、「onClick」をクリックします。
- 右側のペインで「シンプル・アクション」を選択し、「アクションの追加」をクリックします。
- 「カテゴリー」フィールドで「すべて」を選択します。
- 「アクション」フィールドで「Webサービスの起動」を選択します。
- 「Webサービス名」フィールドで、サービスの名前(この場合は「stockInfo」)を選択します。
- 「フル・アップデート」を選択します。
図10. ボタンへのイベントの追加

今後のリリースでは、IBMサービス指向アーキテクチャーの機能であるWSRR(WebSphere Service Registry and Repository)のサポートを検索してください。これはUDDIに似たディレクトリーですが、幅広い一連の機能を提供します。WSRRディレクトリーはWebサービスに関する情報を保管し、コンポーネントがこれらの情報を利用できるようにします。ポートレットとしてWebSphere Portalにデプロイされたコンポーネントがサービスを消費する場合、このコンポーネントもWSRRに登録されるため、システム管理者は、どのポートレットがどのWebサービスを使用するのかをトラッキングできます。
学ぶために
- developerWorks Japan: Lotus: Lotusの日本の技術情報サイトです
- developerWorks: Lotus(US) : Lotusの英語の技術情報サイトです
- Lotus Component Designerの製品ページ(US)
- Lotus Component Designerの製品ドキュメント(US)
- 記事「Using JavaScript in IBM Lotus Component Designer」(US)をお読みください。
- W3Cの「Web Services Activity Statement」をお読みください。
「Web Services Activity Statement」(US)
製品や技術を入手するために
- developerWorksからLotus Component Designer V6.0(US)のトライアル・バージョンをダウンロードできます。
議論するために
- ディスカッション・フォーラム (US) にご参加ください。
- developerWorks Lotus Team ブログ(US) をご参照ください。
Jason English is an information developer at IBM Lotus in Cambridge, Massachusetts. He has worked for IBM Lotus for eight years and has written end user, application development, installation, and administration documentation for a variety of products, including IBM Lotus Notes, IBM Lotus Domino, and mobile software. He is currently writing installation and API documentation for IBM Lotus Component Designer.