次の方法で共有


UDDI を使用する Web サービスの記述と発見 (第 2 部)

Scott Seely
Microsoft Corporation

October 17, 2001

はじめに

前回のコラムは、Microsoft® UDDI チームの Karsten Januszewski が担当してくれました。 Karsten は、UDDI とは何か、なぜ UDDI が存在するのか、および UDDI をどのように使用するかについての概要を示しました。 今月のコラムでは、 「Cold Rooster Favorites サービス」を Microsoft UDDI レジストリに登録するために行う必要のあることを示すつもりです。 私たちはこれまでに UDDI に登録したことがなかったので、 最も初歩から始める必要がありました。

自分自身を UDDI に登録する

Cold Rooster を Microsoft UDDI サイトに登録したことがなかったので、 最初の仕事はそのサイトにアカウントを作成することでした。 アカウントの登録するときには、Passport を使用してログインすることが求められます。 ログインすると、 UDDI の連絡先電子メール アドレスを Passport アカウントまたはそれ以外の何かに結びつける設定オプションが表示されます。 私たちのチームで UDDI を利用するのは私だけではないので、 連絡先のアカウントを crooster@microsoft.com アドレスに結びつけることにしました。 Cold Rooster Consulting ではほかの目的でも電子メールを使う必要があったので、 この電子メール アカウントは既に作成済みでした。 したがって、これは論理的な選択だと思えます。

登録画面では、 登録者の名前、連絡先電話番号、住所など、 その他の連絡先情報も尋ねられます。 登録を完了するには、 利用同意書 (Terms of Use を参照してください) に同意する必要があります。

レジストリに連絡先情報を登録し、 Terms of Use に同意すると、 UDDI サイトは連絡先アドレスを確認するために、電子メールを送信してきます。 そのメッセージのリンクをクリックすると、 登録した UDDI アカウントを管理できます。 管理作業には、レジストリへのビジネス データの追加、 tModels の公開、登録詳細情報の編集などがあります。 図 1 に管理ページを示します。

図 1. UDDI の管理ページ

企業を UDDI に追加する

Microsoft UDDI サイトにアカウントを作成後、 次に行う作業は UDDI レジストリに Cold Rooster Consulting を追加することです。 企業の登録は、Web ページ経由で行うことも、 .NET SDK または COM SDK を使用して UDDI API 経由で行うこともできます。 私はすべてのことを一度だけ登録するつもりだったので、 UI を使用することを選択しました。 いずれ、このインターフェイスを少しずつ定期的に変更するようになれば、 エラーが生じる機会を減らすためにこのプロセスを自動化することになるでしょう。 レジストリに企業を追加することによって、 その企業が何を行っているかや企業が提供する Web サービスの種類を、 ユーザーが検索できるようになります。 Cold Rooster Consulting を UDDI レジストリに追加するには、 管理ページ (図 1) の [Add a new business (新しい企業の追加)] リンクをクリックします。 最初のページで企業の名前と説明を尋ねられます。 Cold Rooster の場合は、次のように入力しました。

Name (名前): Cold Rooster Consulting

Description (説明): MSDN Architectural Samples チームが使用する架空の会社

UDDI レジストリに企業を追加すると、以下のような詳細情報を追加できるようになります。

  • Contacts (連絡先): 企業が提供する項目のサポート担当者です。 私たちは、連絡先のリストに MSDN Architectural Samples チームのさまざまなメンバを追加しました。
  • Services (サービス): この企業が公開する tModel (WSDL ファイル)。 私たちは UDDI エントリに Account tModel、Logon tModel、および Report tModel を追加しました。
  • Identifiers (ID): 企業の登録リスト番号などの、企業を一意に識別する一連のデータ。 Cold Rooster にはこのようなデータがないので、ここには何も入力しませんでした。
  • Business classifications (企業分類): この項目は、企業の業種や所在地を識別します。 Cold Rooster Consulting はアメリカ合衆国のワシントン州にあります。
  • Discovery URLs (発見 URL): ここには、企業に関する詳細情報を検索できる場所を提供します。

私たちは、簡単な項目から始め、最後にサービスを追加することにしました。

UDDI に連絡先を追加する

これは非常に簡単です。 ほかのアドレス フォームと同様に、さまざまな連絡先の一般的な項目を入力するだけです。 潜在的なユーザーは、ここに入力した説明や使用上の注意を基にして登録情報を調べ、 登録企業に連絡して、Web サービスのライセンスを取得したり、 サポートを受けたり、その他のビジネス関連情報について問い合わせたりします。 図 2 は私たちが連絡先情報をどのように入力したかを示しています。

図 2. Contact details (連絡先詳細) ページ

企業を分類する

ほとんどの企業は、その企業が行っていることで分類されます。 企業の実体を分類するとき、UDDI の分類では以下のような多くの分類法を利用できます。

  • North American Industry Classification System (NAICS-1997)
  • Universal Standard Products and Services Codes (UNSPSC-7.03)
  • ISO 3166 Geographic Taxonomy
  • Standard Industrial Classification (SIC-1987)
  • GeoWeb Geographic Classification
  • UDDI Types Taxonomy
  • 私たちは、UDDI Types を除くこれらすべての分類法で Cold Rooster を登録しました。 UDDI Types Taxonomy は tModel やサービス情報を分類するための特別な分類法なので、 UDDI Types Taxonomy で企業を登録することは行いませんでした。
  • 私たちが何を登録したかを知るためには、 Cold Rooster が何を行っていて、どこに所在するかを見ておく必要があります。 Cold Rooster Consulting の本社は USA、ワシントン州レドモンドにあり、 プロジェクト ベースのコンピュータ コンサルティング サービスや、 コンピュータの補助要員派遣コンサルティング サービスを行っています。 さらに、Windows ベースで、インターネット ベースの開発を専門にしています。 これらのことをすべて理解した上で、 上記の 6 つの分類法に従って企業を適切に分類する必要があります。 表 1 は、これらの手法ごとにどのように企業を分類したかを示しています。
    分類法 分類
    NAICS
    • 541511: カスタム コンピュータ プログラミング サービス
    • 541512: コンピュータ システム設計サービス
    UNSPSC
    • 81.11.16.07.00: C または C++ のプログラミング
    • 81.11.16.03.00: HTML のプログラミング
    • 81.11.16.01.00: Microsoft® Visual Basic® のプログラミング
    • 81.11.16.12.00: プログラミング言語または専用言語 (C# でもプログラミングするため)
    • 81.11.21.06.00: アプリケーション サービス プロバイダ (Web サービスをホストするため)
    • 81.11.21.03.00: World Wide Web (WWW) サイト デザイン サービス
    ISO 3166
    • US-WA (ワシントン州、USA、世界)
    SIC
    • 7371: コンピュータ プログラミング サービス
    • 7372: 情報検索サービス
    GeoWeb Geographic Classification
    • 518816 (レドモンド、ワシントン州、USA、北米、世界)

表 1. UDDI 分類の例

これで、企業が完全に分類されました。 次の作業は 3 つの tModel を追加することです。

tModel を追加する

前回のコラムを忘れているといけないので、 復習しておきましょう。 tModel とは型モデルのことです。 Web サービスでは、一般的に tModels と WSDL ファイルとは同義です。 したがって、tModel は Web サービスが使用する型や、 Web サービスのメッセージ定義や操作定義を定義します。 tModel を提供することにより、 その tModel を実装する実体がどのような Web サービス操作を実装しているか、 およびこれらの操作にどのようにアクセスすればよいかがわかります。 最終的には、これらの tModel には複数の実装が存在する可能性があるので、 WSDL ファイルを tModel として登録します。

サーバー側の Favorites サービスは、Logon、Account、および Report の 3 つの Web サービスで構成されます。 ライセンス所有者は Logon Web サービスを使用して、ログインにトークンを取得できます。 ライセンス所有者は、取得したトークンを使って、 Account Web サービスや Report Web サービスのその他のメソッドにアクセスできます。 WSDL ファイルを追加するには、 パブリックなインターネット経由で到達できるサーバーに追加する WSDL ファイルを配置する必要があります。 ここで、UDDI 分類を使用します。

tModel を追加するには、 管理ページ (図 1) で [Add a new tModel (新しい tModel の追加)] をクリックするだけです。 その後、名前、説明、WSDL ドキュメントの場所など、tModel の基本的な情報をいくつか追加する必要があります。 追加が完了した後、 tModel を WSDL ドキュメントとして分類し、 その情報を UDDI レジストリに発行します。 すべての作業が非常に簡単です。 図 3 は、Logon tModel について入力された詳細情報を示しています。

図 3. Logon tModel の詳細

次の画面で、サービスの分類と企業 ID を追加できます。 これは、上記で企業情報に入力したのと同じデータです。 サービスの分類では、UDDI 分類だけを使用します。 次の情報を指定するための一連のリンクをクリックします。

  • tModel で使用する型
  • Web サービスの仕様
  • WSDL に記述されている Web サービスの仕様
  • Cold Rooster Favorites サービスでは、 これらの手順に従って、Logon.WSDL、Account.WSDL、および Report.WSDL を追加しました。 UDDI 登録が完了すると、その情報がレジストリ内で利用できるようになります。

サービスを定義する

tModels を適切に追加した後、 これらのサービスが存在することを宣言するためにサービスを追加する必要があります。 サービスを追加するには管理ページに戻ります。 この時点で、登録した企業が [Add a new business (新しい企業の追加)] に一覧されるでしょう (図 1)。 登録した企業を選択し、[Services (サービス)] までスクロール ダウンします。 ここで、[Add a Service (サービスの追加)] を追加します。 最初のページでサービスの詳細を入力します。 Logon Web サービスでは、次のように入力しました。

  • Name (名前): Logon
  • Description (説明): ライセンス所有者を確認し、アクセス トークンを提供します。

サービスを追加後、 そのサービスを再度「WSDL で記述されている Web サービスの仕様」として分類します。 次に、追加したサービスを既に登録している Logon tModel にバインドします。 [Define a new binding (新しいバインディングの定義)] で、 フィールドに以下のように入力しました。

  • Access point (アクセス ポイント): https://Coldrooster.com/SSF/Logon.asp
  • URL type (URL の種類): http
  • Description (説明): Cold Rooster Consulting Logon Web サービス エンドポイント

この作業を完了するために、追加したサービスを "Favorites Web Service: Logon" tModel に関連付ける必要がありました。 [Specification Signatures (仕様のシグネチャ)] で、 [Add specification signature (仕様のシグネチャの追加)] をクリックします。 モデルを名前で照合する場合は、「Favorites Web Service」と入力します。 この結果、 Favorites Web サービスとして保存された 3 つの tModel がすべて表示されます。 [Favorites Web Service: Logon] を選択し、 [Continue (続行)] をクリックします。 エンドポイントの詳細情報を編集するために必要な Web ページが表示されます。 このフィールドには次のように入力しました。

これらの情報を入力後、再度 [Continue (続行)] をクリックします。 データのメインの [Business (企業)] ビューに戻り、 すべてを UDDI レジストリに発行する前に、Logon サービスについて入力したすべての情報を確認できます。 Account Web サービスと Report Web サービスについてもこのプロセスを繰り返します。

データを検索する

2001 年 10 月 8 日現在、GeoWeb Taxonomy 分類で Redmond を検索すると、 検索される企業は Cold Rooster Consulting だけです。 また、ISO 3166 分類で US-WA を検索すると、 現時点では 9 つの企業が表示されます。 ほかの分類を使えば、異なる結果が表示されます。 ほかの分類法では、だいたい結果が複数ページになるでしょう。

これでデータが発見できるようになったので、 理論的には、お気に入りの URL を保存する Web サービスに関心のある人々が、 Cold Rooster のソリューションを使用するために Cold Rooster に集まることになるでしょう。 Web サービスを検索するために UDDI を使用し、 検索結果をプロジェクトに追加する場合は Microsoft® Visual Studio® .NET を使えば単純になります。

まず、[プロジェクト] メニューの [Web 参照の追加] をクリックし、 [Web 参照の追加] ダイアログ ボックスを表示します。 このダイアログ ボックスを使い、 Microsoft UDDI サーバー経由で Web 参照 (WSDL ファイルとして知られています) を検索できます。 Visual Studio で使用するエンドポイントは http://uddi.microsoft.com/visualstudio/ です。 "cold" で始まるすべての企業を検索することをエンドポイントに指示すると、 私が登録した 3 つの Web サービス、Account、Logon、および Report を検索できます。 このクエリの結果は http://uddi.microsoft.com/visualstudio/VSServiceResults.aspx?businessKey=a6d96ac7-08da-48b5-8011-6f0359aaeaef のように表示されます。 Logon Web サービスへの Web 参照を追加するには、 [Logon] をクリックしてノードを展開し、 [Favorites Web Service: Logon] をクリックして WSDL を表示します。 ここで [参照の追加] をクリックすると、 Favorites Web サービスにログオンできるようになります。

ここまで順を追ってお話してきましたが、 まだ Favorites のライセンスを持っていません。 Favorites Service Admin Console に移動し、サインアップしてください。 15 分から 30 分以内に送り返されるパスワードを入手する必要があります。 Visual Basic を使って Logon Web サービスに接続するためのコードは、以下のように非常に簡単です。

Sub Main()
    Dim svc As New com.coldrooster.www.Logon()
    System.Console.WriteLine(svc.Logon("LicenseeName", "Password"))
    System.Console.WriteLine("Press return to exit")
    System.Console.ReadLine()
    svc.Dispose()
End Sub

このコードは、Favorites Web サービスで利用できるその他のメソッドのアクセスに使用する GUID トークンを出力します。 その他の任意のメソッドに対するコードを記述するのも同じように簡単です。

まとめ

企業、カスタム tModel、および Web サービスを UDDI に登録することにより、 世界中の開発者がその Web サービスを検索できるようになります。 UDDI レジストリを使用して、非常に多くの Web サービス エンドポイントや企業データを公開できます。 UDDI を使用する人々は、このインターフェイスを使用して Web サービスのドキュメントやサンプルを検索することもできます。 Microsoft UDDI レジストリは無償で使用できます。 このレジストリに Web サービスやビジネスを登録することをお勧めします。 少し時間を取って、http://uddi.microsoft.com に馴染んでください。 Cold Rooster Consulting の情報を検索し、利用できるすべての情報を参照してみることもできます。 最後に、 Visual Studio .NET を使って Favorites サービスをアタッチし、独自に何か実験してみるのも、すばらしいことでしょう。

次回は、ゲスト コラムニストとして Allen Wagner を迎える予定です。 Allen は大きな SOAP メッセージを処理する技法を説明してくれることになっています。

 

At Your Service

Scott Seely は MSDN Architectural Samples チームのメンバです。 彼は仕事の余暇を利用して、 Prentice Hall から『SOAP: Cross Platform Web Service Development Using XML』と『Windows Shell Programming』という 2 冊の書籍を発行しました。 彼は、LGPL で公開されている小さな C++ ベースの SOAP ライブラリ (http://www.scottseely.com/soap.htm) を記述し、管理しています。