![]() ![]() ![]() ![]() |
この節では、Oracle Service Bus が提供するサービス コンフィグレーションとリソース編成機能について説明します。サービス検出と変更管理をサポートしている機能を取り上げます。この節は、SOA においてサービスのコンフィグレーションを担当する IT デプロイメントのスペシャリストを対象としています。この節では、以下のトピックについて説明します。
Oracle Service Bus にはリソースの作成と編成、コンフィグレーションを行うための堅牢なリソース コンフィグレーションおよび編成フレームワークがあり、リソース依存関係間でのセマンティクスの整合性が保たれています。リソースを迅速にテストおよびデプロイし、必要に応じてリソース コンフィグレーションの更新を元に戻す機能が備わっています。
Oracle Service Bus に組み込まれているプロジェクト エクスプローラでは、Oracle Service Bus エンティティの論理的なグループ化ができるので、開発者や管理者は大きな開発プロジェクトにおいて関係のある部分をより適切に編成することができます。詳細については、『Oracle Service Bus Console の使い方』の「プロジェクト エクスプローラ」を参照してください。
Oracle Service Bus のリソースは独立したプロジェクトに編成することができます。プロジェクトは階層化されない、独立した最上位のグループ構造です。すべてのリソース (サービス、WS-Policy、WSDL、XQuery トランスフォーメーションなど) は、重複することなく 1 つのプロジェクトのみに含まれます。
リソースはプロジェクトの直下に作成することも、整理用にフォルダを作成したうえで、フォルダ内に作成することもできます。フォルダはプロジェクトの中に作成されることも、他のフォルダの中に作成されることもあり、プロジェクト レベルをルート ディレクトリとするファイル システムのディレクトリに似ています。すべてのプロジェクトおよびフォルダには、ナビゲーションをさらに容易にするために、説明を追加することができます。次の図は、Oracle Service Bus Console のプロジェクト ビューとフォルダ ビューです。
リソースをプロジェクト間またはフォルダ間で移動したり、リソースの名前を変更することができます。Oracle Service Bus のすべてのリソース、プロジェクト、またはフォルダは、クローンを作成して、指定されたターゲット ID を使用してリソースのコピーを作成できます。プロジェクトまたはフォルダのクローンを作成すると、そのプロジェクトまたはフォルダのすべてのアーティファクトが別の場所にコピーされます。
プロジェクト内のリソースから、別のプロジェクトで定義されたリソースを参照および使用することができます。リソースの名前を変更したり、リソースを移動したりしても、依存関係は維持されます。名前を変更されたリソースまたは移動されたリソースに対するすべての参照は自動調整されます。プロジェクト エクスプローラには、現在のフォルダの外側にあるどのリソースが、フォルダ内にあるリソースから参照されているかを追跡する追加の機能があります。この参照を表示することで、参照されているリソースがある場所 (<project name>/<folder name>/<resource name> の形式) と、参照されているリソースの種類の両方を知ることができます。参照されているリソースの詳細については、「依存関係の追跡」を参照してください。
Oracle Service Bus には、リソース キャッシュ内の大量のリソースを整理するためのいくつかの機能があります。Oracle Service Bus リソース キャッシュに保持されるリソースには、WSDL、XML スキーマ、XQuery、XSLT、MFL、WS-Policy、ビジネス サービス、プロキシ サービスなどがあります。Oracle Service Bus では、メッセージの処理方法を決定する際に、リソースおよびサービスに関するユーザ コンフィグレーション メタデータに依存します。
Oracle Service Bus は、リソース キャッシュ内のリソースやサービスの管理を担当する信頼ある IT 部門スペシャリストを支援することに重点を置いています。このようなユーザはすべて Integration Administrator または Integration Deployer として定義され、リソース キャッシュ内のすべてのリソースを変更するための完全なパーミッションが与えられます。Integration Monitor ユーザにはリソース キャッシュに対する完全な読み込みアクセス権が与えられますが、リソースの変更はできません。通常、Integration Monitor ユーザはリソースやサービスの検索や参照を行います。Integration Operator ユーザには、リソース キャッシュに対する完全な読み込みアクセス権が与えられ、サービスの動作特性だけを変更できます。
Oracle Service Bus のユーザとロールの詳細については、『Oracle Service Bus Console の使い方』の「セキュリティ コンフィグレーション」を参照してください。
Change Center は、Oracle Service Bus の最も重要な機能の 1 つであり、サービス バス内でコンフィグレーションの変更を行うための鍵となります。Change Center には、変更を行っている最中に現在のコンフィグレーションをロックするというユニークな機能があります。この機能により、サービス バスでサービスについての要求の受信と処理を継続しながら、コンソールからコンフィグレーションの変更を行うことが可能になっています。
さらに、変更中のコンフィグレーションが「アクティブ化」されるまで、現在のシステムのコンフィグレーションは影響を受けません。アクティブ化が行われると変更は即座に有効になり、サービス バスでは直ちに新しいコンフィグレーションが使用されます。このようにして、進行中の変更はサービスに影響を与えることなく実行することができます。Change Center 機能の詳細については、
アクティブ化された変更によって、予期しない不都合なイベントが発生した場合に備えて、Change Center には任意のセッションで行われた変更を取り消す機能も用意されています。[タスクの詳細] には、変更されたリソース、変更を行ったユーザ、および変更が行われた時間についての情報が表示されます。セッション全体またはセッション内の個別の変更をロール バックすることが可能なので、Oracle Service Bus では影響を受けたコンフィグレーションを以前の状態にロール バックできます。
Change Center の詳細については、『Oracle Service Bus Console の使い方』の「Change Center の使用」を参照してください。
Oracle Service Bus でリソースを変更する前に、セッションを作成する必要があります。Oracle Service Bus Console でのすべての変更は、特定のセッション内で行います。
セッションは、変更を行っているユーザ以外にはその変更内容が公開されないサンドボックス環境と考えることができます。つまり、変更内容は、変更を行っている他の同時ユーザからは見えません。セッション内で行われた変更は、セッションがアクティブ化されるまではサーバにデプロイされません。一度にアクティブ化できるセッションは 1 つに限られるため、Oracle Service Bus Console へのログインは 1 つのブラウザのみで行ってください。
特定のセッションで変更されたリソースとランタイムにデプロイされているリソースを比較するには、一度セッションを終了し、デプロイされているリソースを参照してからセッションを再開し、変更されたリソースを参照します。セッション内のすべてのリソースを見ることができます。セッション内のすべてのリソースを表示するビューをセッション ビューと呼びます。セッション ビューは、デプロイされている未変更のリソースのビューと現在のセッションで変更されたリソースのビューを結合したビューです。セッションがアクティブ化されていれば、セッション ビューには常にコンフィグレーションの状態が示されます。セッションの外部のリソースのビューは、デプロイされているリソースのビューです。
セッションの個々の変更、アクティブ化、およびセッションの取り消し操作はトランザクションとして行われ、障害時のデータ消失を防ぎます。セッションは永続的で長時間継続でき、サーバを再起動してもアクティブなセッションは失われません。そのため、必要に応じて、1 つのセッションでのコンフィグレーションの変更を、数日間にわたって継続できます。その間、サーバを停止および再起動してもかまいません。ユーザごとに固有のセッションを持ち、他のユーザをシステムからロックアウトする必要もなく、独立して操作を行うことができます。
別のユーザがセッションのアクティブ化を実行しているときにセッションをアクティブ化することはできません。別のユーザがセッションのアクティブ化を実行していると、[アクティブ化] ボタンが無効になり、そのセッションのアクティブ化が完了するまでは、セッションをアクティブ化できません。ページを更新していない場合や直接 MBean を使用している場合には、[アクティブ化] ボタンが無効にならないことがあります。この場合はやがてタイムアウトします。
管理者には、他のユーザのセッションにアクセスし、変更中の内容を参照して、セッションを更新または破棄するパーミッションがあります。
詳細については、『Oracle Service Bus Console の使い方』の「Change Center の使用」を参照してください。
セッションでは、衝突にオプティミスティック方式を使用します。セッションをアクティブ化すると、そのセッションで行ったリソースの変更が他のセッションにすぐに表示されます。別のユーザのアクティブなセッションで開いている、変更されたリソースをデプロイすると、そのユーザのセッションでは、変更の開始以降にデプロイされているリソースがランタイムで変更されたことを示すメッセージを Change Center で受信します。ここで、アクティブなセッションのユーザは次の操作を実行できます。
詳細については、『Oracle Service Bus Console の使い方』の「Change Center の使用」を参照してください。
セッションをアクティブ化したすべてのユーザ、およびセッションで変更されたリソースと変更日時のログがシステムで保持されます。このログは、特定のリソースまたはプロジェクトの変更履歴となるだけでなく、企業における監査および追跡にも使用できます。ログは、Oracle Service Bus Console の Change Center で参照できます。
大量のリソースを管理するうえで重要な要素として、リソース間の依存関係の設定と調査があります。たとえば、サービスが実装する WSDL や、メッセージ フローのコンフィグレーションで使用される XQuery が識別されると便利です。Oracle Service Bus にはリソース間の参照を自動追跡し、依存関係のグラフを作成する機能があります。Oracle Service Bus Console のセッション ビューおよびデプロイされたビューでは、特定のリソースに関する次の情報が表示されます。
また、Oracle Service Bus Console では、プロジェクトおよびフォルダごとに、選択されたプロジェクトまたはフォルダ内のリソースを参照する外部リソースが表示されます。Oracle Service Bus Console は特定のプロジェクトまたはフォルダが参照するリソースも表示します。これらの情報が依存関係の追跡に役立ちます。Oracle Service Bus Console で参照されているリソースの名前をクリックするだけで依存関係のグラフを簡単に辿ることができます。
この機能を使用して、リソース キャッシュ内の部門プロジェクト間の依存関係や、部門プロジェクトと全社的な共有プロジェクトとの依存関係を識別することができます。
リソースの名前を変更したり、リソースを移動したりしても、依存関係は維持されます。名前を変更されたリソースまたは移動されたリソースに対するすべての参照は自動調整されます。
Oracle Service Bus では、セッション ビュー内のすべてのリソースの整合性が保護されます。セッション ビュー内のすべてのリソースの現在の検証エラーのすべてを一覧表示するには、Change Center で [衝突の表示] リンクをクリックします。参照先リソースを変更すると、参照元のリソースで検証エラーが発生する可能性があります。
Oracle Service Bus では、多くの場合セマンティクス エラーがあるリソースを作成できますが、これらのエラーをすべて修正するまでセッションをコミットできません。
検証エラーの一部のクラスは一切許容されません。許容されない検証エラーがあるリソースを更新しようとすると、更新は失敗します。たとえば、コンフィグレーションで XQuery の使用が指定されている箇所で、XQuery の代わりに任意のテキストを入力することはできません。任意のテキストを入力すると、更新は失敗します。Oracle Service Bus Console の XQuery エディタおよび XPath エディタには、式を検証する機能があります。設計時に XQuery 式および XPath 式を検証するには、[検証] をクリックします。検証により、無効なコンフィグレーションが原因となる実行時エラーが発生する可能性が低くなります。
現在のセッションの Oracle Service Bus コンフィグレーションで実行したタスクを取り消したり、セッションの外部で行った、セッションのアクティブ化を取り消すことができます。
セッションでの作業時に、そのセッションで行った変更のリストを表示するには、Change Center で [変更の表示] をクリックします。特定のタスクを Change Center で取り消すことができます。取り消し操作を実行すると、オブジェクトのセマンティクスが無効になる場合があります。たとえば、WSDL のオペレーション名の変更を取り消すと、その WSDL を使用するサービスの該当オペレーションにルーティングするプロキシ サービスのセマンティクスは無効になります。これらの検証エラーは、Change Center で [衝突の表示] リンクをクリックすると、すぐに表示されます。
タスクの取り消しはどのような順序でも (個々の取り消し操作を行った結果のデータが有効である限り) 実行できますが、取り消す順序によって最終的なコンフィグレーションが異なる場合があります。取り消し操作によって、リソースの値が、そのリソースを変更する前の値に設定されます。取り消そうとしているタスクがオブジェクトを作成したタスクである場合、そのオブジェクトには戻すことができる前の状態がありません。つまり、このタスクを実行する前は、オブジェクトが存在しませんでした。実際には、取り消し操作により、セッションから作成したオブジェクトが削除されます。この場合、削除されるオブジェクトを参照するオブジェクトにエラーが発生します。このようなエラーは、Change Center の [衝突の表示] ページで確認できます。
セッションで作業していないときに、セッションのアクティブ化のリストを表示するには、Change Center で [変更の表示] をクリックします。セッションのアクティブ化を Change Center で取り消すことができます。セッションを取り消すと、そのセッションのアクティブ化が取り消され、そのセッションで実行された操作がすべて取り消されます。セッションのアクティブ化を取り消す操作によって実行時コンフィグレーションにエラーが発生する場合は、セッションのアクティブ化を取り消すことはできません。
たとえば、デプロイメントを取り消すと他のオブジェクトによって参照されているオブジェクトが削除される場合は、このデプロイメントの取り消し操作は実行できません。詳細については、『Oracle Service Bus Console の使い方』の「Change Center の使用」にある「タスクの取り消し」を参照してください。
Universal Description, Discovery and Integration (UDDI) レジストリは、企業で Web サービスを共有するために使用されます。UDDI サービスを使用することで、企業はこれらの Web サービスを整理およびカタログ化し、企業内または信頼できる外部のパートナと共有および再利用することができます。
Web サービスの UDDI レジストリ サービスは、次の URL にある UDDI 仕様で定義されています。
http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3
UDDI レジストリは、この仕様に基づいています。この仕様には、UDDI を使用して Web サービスの情報をパブリッシュおよび検索する方法の詳細が記載されています。サービスの実行時の仕様は定義されません (単なるサービスのディレクトリです)。UDDI は、企業のビジネス、ビジネス サービス、および公開するサービスの技術的な詳細を分類するためのフレームワークを提供します。
レジストリへサービスをパブリッシュするには、サービス タイプと、レジストリ内でそのサービスを表すデータ構造の知識が必要です。レジストリ エントリには、特定のプロパティが関連付けられ、これらのプロパティ タイプはレジストリの作成時に定義されます。レジストリにサービスをパブリッシュして、他の組織がそのサービスを検出して使用できるようにすることが可能です。
Oracle Service Bus で開発されたプロキシ サービスは、UDDI レジストリにパブリッシュできます。Oracle Service Bus は、Oracle Service Registry を含めた UDDI 3.0 準拠の任意のレジストリに対応しています。
UDDI を使用することにより、コードの再利用が増えるなど、設計時にも実行時にも IT 管理者にとってさまざまな利点があります。開発者にも次のような利点があります。
Oracle Service Registry は、バージョン 3 に準拠した UDDI レジストリで Oracle Service Bus での動作が認定されています。Oracle Service Registry は Oracle Service Bus には付属していません。
Oracle Service Registry については、次の URL にある製品ドキュメントを参照してください。
http://download.oracle.com/docs/cd/E13173_01/alsr/docs21/index.html
Oracle Service Bus Console を使用すると、Oracle Service Registry またはバージョン 3 UDDI 準拠の任意のレジストリにアクセスでき、簡単に使用できます。Oracle Service Bus を UDDI と組み合わせて使用することにより、規格ベースの Web サービスの再利用が促進されます。この方法で、広範囲に分散したユーザが Oracle Service Bus リソースを検索および検出し、利用できるようになります。すべての Web サービスと UDDI は一連の規格に基づいて構築されるため、再利用により、テスト済みで受け入れ可能な Web サービスやアプリケーション開発の規格の使用が企業全体で促進されます。Web サービスとインタフェースは、タイプ、機能、または分類に応じてカタログ化すると、検索や管理がさらに容易になります。
Oracle Service Registry のパーミッションは、管理者がユーザのパーミッションを Oracle Service Registry で管理し、さまざまなユーザ タイプのニーズに合わせたビューをレジストリに作成するために開発されました。Oracle Service Bus に設定されたユーザ パーミッションによって、レジストリへのアクセス、レジストリの内容、および使用できる機能が管理されます。
Oracle Service Bus Console を使用して、プロキシ サービスを Oracle Service Registry にパブリッシュできます。すべてのプロキシ サービスを UDDI レジストリにパブリッシュできます (サービスのタイプは、WSDL、メッセージング、すべての SOAP、すべての XML です)。プロキシ サービスを UDDI レジストリにパブリッシュする方法については、『Oracle Service Bus Console の使い方』の「UDDI」にある「UDDI レジストリへのプロキシ サービスのパブリッシュ」を参照してください。
レジストリにあるサービスを Oracle Service Bus ビジネス サービスとしてインポートできます。サポートされるサービスのタイプは、SOAP over HTTP バインディングの WSDL サービスおよび Oracle Service Bus プロキシ サービス (主にマルチドメイン デプロイメントで使用される) です。ビジネス サービスを Oracle Service Bus にインポートする方法については、『Oracle Service Bus Console の使い方』の「UDDI」にある「UDDI レジストリからのビジネス サービスのインポート」を参照してください。
Oracle Service Bus のサービス定義は、UDDI のサービス定義と (双方向で) 自動的に同期できます。Oracle Service Bus で作成または変更されたサービスを、自動的に UDDI レジストリにパブリッシュすることができます。また、ビジネス サービス定義を UDDI からインポートし、元のサービスが UDDI で変更された場合に自動的に更新できます。また、サービスが UDDI レジストリで変更された場合に同期の承認を要求するメッセージを表示するよう、Oracle Service Bus Console をコンフィグレーションできます。詳細については、『Oracle Service Bus Console の使い方』の「UDDI」にある「UDDI レジストリのコンフィグレーション」を参照してください。
http://www.oasis-open.org/committees/uddi-spec/doc/tns.htm
http://uddi.org/solutions.html
http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm
![]() ![]() ![]() |