Service Registry 3 2005Q4 開発者ガイド

第 1 章 JAXR の概要

この章では、JavaTM API for XML Registries (JAXR) の概要について簡単に説明します。次のトピックについて説明します。

レジストリとリポジトリについて

XML「レジストリ」は、Web サービスを構築、配備、および検出するための基盤です。これは中立的なサードパーティーであり、疎結合された動的な B2B (Business-to-Business) 対話を支援します。レジストリは共有リソースとして複数の組織で使用でき、通常は Web ベースのサービスとして提供されます。

現在、さまざまな XML レジストリ仕様が存在しています。これらの仕様には次のものがあります。

「レジストリプロバイダ」とは、XML レジストリの特定の仕様に準拠したレジストリ実装のことです。

UDDI がビジネスと提供するサービスに関する情報を格納するのに対し、ebXML レジストリはより広い範囲をカバーします。それは、レジストリであると同時に「リポジトリ」でもあります。リポジトリには、任意のコンテンツとそのコンテンツに関する情報が格納されます。つまり、リポジトリにはデータとメタデータが格納されます。ebXML レジストリ標準は、相互運用可能な Web サービス用の ECM (Enterprise Content Management) API を規定しています。

Web における ebXML Registry and Repository は、エンタープライズアプリケーションにおけるリレーショナルデータベースに相当します。これは、Web サービスや Web アプリケーションがコンテンツとメタデータを格納および共有する手段を提供します。

ebXML レジストリは、「レジストリ連携」(関連するレジストリから成るグループ) に含めることができます。たとえば、欧州のある国の厚生省があるレジストリを運営し、さらにそのレジストリを、ほかの欧州諸国の厚生省のレジストリが含まれる連携に含める、といったことが可能です。

Service Registry は、ebXML Registry and Repository 仕様のバージョン 3.0 を実装したものです。この仕様は次の 2 つに分かれています。

これらの仕様の最新の公開版を入手するには、OASIS の Web サイト にアクセスし、ebXML RIM V3.0 と ebXML RS V3.0 へのリンクをクリックします。

JAXR について

JAXR を使用すれば、Java ソフトウェアプログラマは、1 つの簡便な抽象 API を通じてさまざまな XML レジストリにアクセスできます。JAXR の統一化された情報モデルは、XML レジストリ内のコンテンツとメタデータを記述します。

JAXR を使用すれば、開発者は、さまざまなターゲットレジストリに移植可能なレジストリクライアントプログラムを記述できます。さらに、JAXR は、背後のレジストリに備わる機能を超えた、付加価値の高い機能をも提供します。

JAXR 仕様の現行バージョンには、JAXR 情報モデルと ebXML レジストリ仕様間の詳細なバインディング情報が含まれています。JAXR 仕様の最新バージョンは、http://java.sun.com/xml/downloads/jaxr.html から入手できます。JAXR の API ドキュメントは、Java 2 Platform, Enterprise Edition (J2EE プラットフォーム) の API ドキュメント に含まれています。

Service Registry には、レベル 1 機能プロバイダを実装した JAXR プロバイダが含まれており、ebXML レジストリへのフルアクセスが可能となっています。ebXML 仕様と JAXR 仕様間の整合性は完全ではありません。これは、ebXML 仕様のほうが JAXR 仕様よりも改良が進んでいるためです。このため、Service Registry の JAXR プロバイダには、ebXML 仕様を実装する、追加の実装固有メソッドがいくつか含まれています。これらの追加メソッドは、JAXR 仕様の次のバージョンに組み込まれる予定です。

JAXR アーキテクチャー

JAXR の高レベルのアーキテクチャーは、次の要素から構成されます。

JAXR プロバイダが実装する主要パッケージは、次の 2 つです。

javax.xml.registry パッケージのもっとも基本的なインタフェースを次に示します。

同じく javax.xml.registry パッケージ内に含まれるインタフェースのうち、主なものを次に示します。

詳細、およびこれらのインタフェース間の関係を示す図については、javax.xml.registry パッケージの API ドキュメント (http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/package-summary.html) を参照してください。

エラーが発生すると、AXR API のメソッドは JAXRException またはそのサブクラスの 1 つをスローします。

JAXR API の多くのメソッドでは、Collection オブジェクトが引数または戻り値として使用されています。Collection オブジェクトを使用すると、いくつかのレジストリオブジェクトに対する操作を一度に実行できます。

図 1–1 は、JAXR のアーキテクチャーを図示したものです。Service Registry の場合、JAXR クライアントは、JAXR API の機能レベル 0 と機能レベル 1 のインタフェースを使って JAXR プロバイダ (ebXML プロバイダ) にアクセスします。すると、JAXR プロバイダは、ebXML レジストリの一種である Service Registry にアクセスします。

図 1–1 JAXR アーキテクチャー

JAXR アーキテクチャー

サンプルについて

このマニュアルには、JAXR の機能を紹介するたくさんのサンプルクライアントプログラムを掲載しています。これらのサンプルを入手するには、次の URL にアクセスしてください。http://www.sun.com/products/soa/registry/#faq/。サンプルを収録した圧縮ファイルは、「リソース」セクションから入手できます。

この圧縮ファイルを、ファイルシステム上の適切な場所にダウンロードします。ファイルの解凍すると、<INSTALL>/registry/samples ディレクトリにサンプルのソースコードが格納されています。ここで、<INSTALL> はサンプルを解凍したディレクトリです。

サンプルごとまたはサンプルグループごとに build.xml ファイルが 1 つずつ用意されています。これらのファイルを使えば、asant ツール経由で各サンプルをコンパイルおよび実行できます。各 build.xml ファイルには、1 つの compile ターゲットと、1 つまたは複数のサンプルを実行する 1 つ以上のターゲットが含まれています。実行用ターゲットの中には、コマンド行引数を取るものもあります。

asant コマンドは Sun Java System Application Server の bin ディレクトリにあります。このディレクトリは通常、SolarisTM オペレーティングシステムでは /opt/SUNWappserver/appserver/bin/、Linux システム上では /opt/sun/appserver/bin になります。

サンプルを実行する前に、<INSTALL>/registry/samples/common ディレクトリにある 2 つのファイルを編集する必要があります。ファイル build.properties は、プログラムを実行する asant ターゲットが使用します。ファイル JAXRExamples.properties は、プログラム自身が使用するリソースバンドルです。

さらに、<INSTALL>/registry/samples/common ディレクトリにある targets.xml ファイルには、サンプルをコンパイルおよび実行するためのクラスパスが定義されています。また、各サンプルのコンパイル時に作成される build ディレクトリを削除する clean ターゲットも含まれています。このファイルを編集する必要はありません。

Procedurebuild.properties ファイルを編集するには

手順
  1. プロパティー container.home を、Service Registry が配備されているコンテナの場所に設定します。

    これは、Sun Java System Application Server Enterprise Edition 8.1 がインストールされている場所です。この場所のデフォルトは、 Solaris システムでは /opt/SUNWappserver、Linux システムでは /opt/sun/appserver です。

  2. プロパティー registry.home を、Service Registry のインストールディレクトリに設定します。

    このディレクトリは、Solaris システムでは /opt/SUNWsoar、Linux システムでは /opt/sun/SUNWsoar です。

  3. プロパティー registry.domain.home を、Service Registry のドメインのインストールディレクトリに設定します。

    このディレクトリは、Solaris システムでは /var/opt/SUNWsoar/domains/registry、Linux システムでは /var/opt/sun/SUNWsoar/domains/registry です。

  4. ファイアウォールの内側にいる場合、プロパティー proxyHost を、インターネットへのアクセス時に経由するシステムの名前に設定します。

    適切な値がわからない場合は、それらの情報を持つシステム管理者などに問い合わせてください。proxyPort の値は、一般的な値である 8080 に設定されていますが、必要があれば変更します。

ProcedureJAXRExamples.properties ファイルを編集するには

手順
  1. プロパティー query.urlpublish.url を編集して Service Registry の URL を指定します。

    このファイルでは、ホストとポートについてのデフォルト設定は localhost:6060 です。Service Registry がリモートサーバー上またはデフォルト以外のポートにインストールされている場合は、この設定を別のホストまたはポートに変更してください。

  2. セキュリティー関連のプロパティーを編集し、Service Registry への発行に必要なプロパティーを指定します。これらの編集は、Web コンソールのユーザー登録ウィザードを使用した後で行なってください。詳細については、「Service Registry へのアクセス」を参照してください。

  3. サンプルを試すときに、ファイルのほかの部分のデータを自由に変更してかまいません。

    クライアントサンプルを実行する asant ターゲットは、常にこのファイルの最新版を使用します。