Service Registry 3.1 開発ガイド

第 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 つに分かれています。

Service Registry は、SourceForge.net で開発されたオープンソースのレジストリプロジェクトに基づいています。SourceForge の Web サイトには、概要などの ebXML レジストリに関する追加情報を含む Wiki があります。

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 の機能を紹介するたくさんのサンプルクライアントプログラムを掲載しています。レジストリの開発者向けバンドルをインストールした場合、これらのサンプルを含む圧縮ファイルは、ServiceRegistry-base /samples.zip ファイルにあります。

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

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

Service Registry の開発者向けバンドルがインストールされているシステムでは、ant コマンドは次のディレクトリにあります。

Solaris OS の場合: /usr/sfw/bin

Linux および HP-UX システムの場合: /opt/sun/share/bin

このマニュアルでは、このディレクトリを Ant-base と呼びます。A

ant コマンドを使用するには、JAVA_HOME 環境変数を設定する必要があります。通常は、この変数を次の値に設定します。

/usr/jdk/entsys-j2se

サンプルを実行する前に、INSTALL/registry-samples/common ディレクトリにある build.properties ファイルを編集する必要があります。このファイルは、サンプルを実行する Ant ターゲットで使用されます。

ほかのプロパティーファイル、JAXRExamples.properties は、サンプル自身が使用するリソースバンドルです。このファイルには、いつでも変更できる文字列が含まれています。サンプルを実行する Ant ターゲットは、常にこのファイルの最新版を使用します。

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


注 –

追加の JAXR サンプルについては、SourceForge プロジェクトの Web サイトにある Junit tests のフォームを参照してください。これらのサンプルをオンラインで参照するか、またはダウンロードの指示に従ってください。


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

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

    Solaris OS の場合: /opt/SUNWsrvc-registry

    Linux および HP-UX システムの場合: /opt/sun/srvc-registry

  2. share.dir プロパティーを、Java ES の共有コンポーネントが格納されているディレクトリに設定します。

    Solaris OS の場合: /usr/share

    Linux および HP-UX システムの場合: /opt/sun/share

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

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

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

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

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