この章の内容は次のとおりです。
この項では、SOAコンポジット・アプリケーションをカスタマイズするライフ・サイクルについて説明します。たとえば、次の各組織では、同じコンポジットを使用する必要があるとします。ただし、若干の変更が必要です。
コア・アプリケーション開発チーム
バーティカル・アプリケーション・チーム
顧客
コア・アプリケーション開発チームでは、カスタマイズ可能な基本コンポジットを作成し、バーティカル・アプリケーション・チームに提供します。バーティカル・アプリケーション・チームでは、提供されたコンポジットを特定の業界(通信業界など)向けにカスタマイズします。調整されたソリューションは、通信業の顧客に販売されます。顧客は、特定の地理的なビジネス・ニーズに対応するためにコンポジットをさらにカスタマイズします。原則的には、1つの基本コンポジットと、複数レイヤーのカスタマイズ・コンポジットがあります。コンポジット・ライフ・サイクルの後半で、コア・アプリケーション開発チームは基本コンポーネントの新バージョンを作成し、バーティカル・アプリケーション・チームと顧客のアップグレード・サイクルをトリガーします。
レイヤー値は、指定されたカスタマイズ・レイヤーの値です。レイヤーとそのレイヤー値は1対多の関係です。カスタマイズを実行するレイヤーからレイヤー値を選択します。たとえば、Country
というカスタマイズ・レイヤーを表すカスタマイズ・クラスを指定するとします。次に、USA
、China
、India
などの、その値に対する国を指定できます。Oracle JDeveloperをカスタマイズを実行するために「カスタマイズ開発者」ロールで再起動する場合、Oracle JDeveloperの「カスタマイズ・コンテキスト」ウィンドウからレイヤーのUSA
などのレイヤー値(つまり国)から1つを選択する必要があり、これは、その国に対するカスタマイズを作成することを意味します。
この項では、カスタマイズ可能な基本SOAコンポジット・アプリケーションの作成に必要な手順の概要を示します。
この項では、カスタマイズ・クラスを作成する方法について説明します。この例では、MyCustomizationLayer
という名前のカスタマイズ・レイヤーのクラスを作成します。
カスタマイズ・クラスを作成する手順は、次のとおりです。
カスタマイズ可能なコンポジットを作成する手順は、次のとおりです。
カスタマイズ・クラスの作成方法の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』を参照してください。
XSDまたはWSDLファイルを追加する手順は、次のとおりです。
「カスタマイズ開発者」ロールでログインすると、XMLスキーマまたはWSDLドキュメントをOracle JDeveloperで追加することができます。
Oracle JDeveloperのBPELプロセスでカスタマイズ・アクティビティを検索できます。
カスタマイズしたアクティブを検索する手順は、次のとおりです。
カスタマイズ・ロールでは、Oracle Metadata Services (MDS)リポジトリによってカスタマイズとベース・メタデータがマージされます。マージにより、スキーマに対して無効なXMLドキュメントが作成される可能性があります。MDSリポジトリのマージでは、マージによって常に有効なXMLドキュメントが作成されることを確認するためのスキーマ検証は起動されません。このため、メタデータUIエディタをレンダリングするためにメタデータの妥当性に依存するMDSクライアントに問題が発生する可能性があります。
composite.xml
などのSOAファイルが無効になる場合は、Oracle JDeveloperの「ソース」ビューに切り替えて、XMLソースを直接修正する必要があります。「ソース」ビューが編集不可(「カスタマイズ開発者」ロールを使用してOracle JDeveloperにアクセスした場合など)の場合は、Oracle JDeveloperの「構造」ウィンドウを使用してXMLソースを修正する必要があります。
たとえば、カスタマイズ可能なスコープを含むBPELプロセスで基本SOAコンポジット・アプリケーションを作成したとします。基本アプリケーションのSARファイルが新しいアプリケーションにインポートされ、「カスタマイズ開発者」ロールでOracle JDeveloperにアクセスするとき、次のコンポーネントが追加されました。
アウトバウンド・ファイル・アダプタ
ファイル・アダプタを起動するためのinvokeアクティビティ(カスタマイズ可能なスコープに追加)
バージョン2の基本SOAコンポジット・アプリケーションが作成されたときに、同期Oracle Mediatorサービス・コンポーネントが追加されました。これにより、BPELプロセス・サービス・コンポーネントへのルーティング・ルールが更新されました。
その後、バージョン2のベース・アプリケーションのSARファイルが、カスタマイズされたアプリケーションにインポートされました。ユーザーが「カスタマイズ開発者」ロールを使用してOracle JDeveloperにアクセスしたときに、無効なコンポジット・エラーが表示されました。「構造」ウィンドウのcomposite.xml
ファイルには、次のように、一連のサービス・コンポーネントおよび参照バインディング・コンポーネントの無効な構造が表示されました。次の例に詳細を示します。
<component> </component> <reference> </reference> <component> </component>
<reference>
コンポーネント(この場合、バージョン1のベース・アプリケーションでは、ユーザーが「カスタマイズ開発者」ロールを使用してOracle JDeveloperにアクセスしたときに追加されたアウトバウンド・ファイル・アダプタ)は、最後に表示されている必要があります。次の例に詳細を示します。
<component> </component> <component> </component> <reference> </reference>
このエラーを解決するには、「構造」ウィンドウに移動し、これらのコンポーネントをコピーして正しい順序で貼り付けます。このアクションにより、コンポジット検証エラーが解決されます。
コア・アプリケーション、バーティカル・アプリケーションまたは顧客レベルでカスタマイズされたアプリケーションをデプロイまたはコンパイルすると、次の例に示すように、予期しないID属性を説明した警告メッセージが表示されます。これらのメッセージは無視して問題ありません。スキーマ定義に必要な単純型要素が含まれていないために、これらのメッセージが表示されます。これらのメッセージにより、カスタマイズされたコンポジットが正常にデプロイされないわけではありません。
[scac] warning: in /scratch/qizhong/my-jdev/mywork/CompositeTestApp2/Project2/composite.xml(22,32): Schema validation failed for /scratch/qizhong/my-jdev/mywork/CompositeTestApp2/Project2/composite.xml<Line 22, Column 32>: XML-24535: (Error) Attribute 'http://www.w3.org/XML/1998/namespace:id' not expected. [scac] warning: in /scratch/qizhong/my-jdev/mywork/CompositeTestApp2/Project2/composite.xml(23,32): Schema validation failed for /scratch/qizhong/my-jdev/mywork/CompositeTestApp2/Project2/composite.xml<Line 23, Column 32>: XML-24535: (Error) Attribute 'http://www.w3.org/XML/1998/namespace:id' not expected.
この項では、バーティカルSOAコンポジット・アプリケーションのカスタマイズに必要な手順の概要を示します。
注意:
異なるレイヤー値の同じSOAコンポジット・アプリケーションをカスタマイズしないでください。レイヤー値は、「SOAコンポジット・アプリケーションのカスタマイズの概要」で説明するとおり、ベース・コンポジットに対して行ったカスタマイズです。カスタマイズ用にサポートされているのは、1つのレイヤー値のみです。別のレイヤー値をサポートする必要がある場合は、必ずベース・コンポジットを別のプロジェクトにインポートし、コンポジット名を、カスタマイズするレイヤー値に固有のものに変更します。このアプローチは、同じコンポジット名で異なるレイヤー値をデプロイしないようにするデプロイメントの場合にも便利です。
バーティカル・アプリケーションをカスタマイズする手順は、次のとおりです。
次のいずれかの方法を使用して、カスタマイズ・レイヤーのレイヤー値を追加します。
アプリケーション固有のレイヤー値を追加するには、図52-3 に示すように、「デザインタイム・カスタマイズ・レイヤー値の構成」リンクをクリックします。
レイヤー値を追加します。
値を指定してファイルを保存すると、「アプリケーション・リソース」のMDS DTフォルダにCustomizationLayerValues.xmlファイルが表示されます。カスタマイズ・クラスはレイヤー名を提供し、CustomizationLayerValues.xmlファイルはレイヤー値を提供します。どちらも必要です。この場所のファイルをダブルクリックすると、その他の変更を行うためのエディタが開きます。
または
すべてのアプリケーションに適用可能なグローバル値を追加するには、$JDEV_HOME/jdeveloper/jdev
のCustomizationLayerValues.xml
ファイルを開き、カスタマイズ・レイヤーのレイヤー値を追加します。たとえば、値Communications
をindustry
レイヤーに追加します。
<cust-layers xmlns="http://xmlns.oracle.com/mds/dt"> <cust-layer name="industry"> <cust-layer-value value="communications" display-name="Communications"/> </cust-layer> </cust-layers>
Oracle JDeveloperを起動し、「デフォルトのロール」を選択します。
コア・アプリケーションとは異なる名前で新しいSOAアプリケーションを作成します。
「ファイル」メニューから、「インポート」→「SOAアーカイブをSOAプロジェクトへ」の順に選択します。
「参照」をクリックし、「カスタマイズ可能なコンポジットの作成」でコア・アプリケーション・チームが作成したコンポジット・アーカイブのJARファイルを選択します。
「コンポジット名」フィールドで、コアSOAプロジェクトとは別の名前を入力します。
注意:
SOAプロジェクトは選択しないでください。インポートするJARファイルには、新規SOAプロジェクトを作成する必要があります。
「カスタマイズ用にインポート」チェック・ボックスを選択します。
「アプリケーション」ウィンドウで、プロジェクトを右クリックし、「SOA」→「カスタマイズ可能」の順に選択します。
Oracle JDeveloperを再起動します。
「カスタマイズ・コンテキスト」ダイアログに、使用可能なカスタマイズ・レイヤーとレイヤー値が表示されます。
図52-4 に示すように、カスタマイズするレイヤーおよび値を選択します(この例では、レイヤーindustryおよび値Communicationsが選択されています)。
SOAコンポジット・エディタで、BPELプロセスをダブルクリックしてOracle BPELデザイナにアクセスします。
編集できるのは、カスタマイズ可能に設定されているscopeアクティビティのみです。図52-5 に示す例では、コア・アプリケーション・チームが1つのスコープのみをカスタマイズ可能に設定しています。BPELプロセスのその他のアクティビティは無効になり、編集できません。
「アプリケーション」ウィンドウで「SOAプロジェクト」を右クリックし、「デプロイ」を選択してカスタマイズ・コンポジット(SAR)のJARファイルを作成します。
デプロイメントはカスタマイズ・ロールが使用可能な状態で起動されるため、現在のカスタマイズ・コンテキストに基づいて適切なレイヤーの基本コンポジットが自動的にマージされます。
アプリケーションをソース・コード・コントロール・システムにチェックインします。
JARファイルには、次のカスタマイズ・レベルの基本プロセスとして順に機能するマージされたコンポジットが格納されます。これで、JARファイルを顧客に提供できるようになりました。
注意:
「カスタマイズ開発者」ロールでOracle JDeveloperにログインしているときに、WSDLファイルおよびXSDファイルを作成できます。「アプリケーション」ウィンドウで、プロジェクト名を右クリックし、「SOA」→「WSDLドキュメントの作成」または「SOA」→「XMLスキーマの作成」の順に選択します。
この項では、顧客バージョンのSOAコンポジット・アプリケーションのカスタマイズに必要な手順の概要を示します。
顧客バージョンをカスタマイズする手順は、次のとおりです。
次のいずれかの方法を使用して、カスタマイズ・レイヤーのレイヤー値を追加します。
アプリケーション固有のレイヤー値を追加するには、「バーティカル・アプリケーションのカスタマイズ」の手順1に示すように、「デザインタイム・カスタマイズ・レイヤー値の構成」リンクをクリックします。
レイヤー値を追加します。
値を指定してファイルを保存すると、「アプリケーション・リソース」のMDS DTフォルダにCustomizationLayerValues.xmlファイルが表示されます。この場所のファイルをダブルクリックすると、その他の変更を行うためのエディタが開きます。
または
すべてのアプリケーションに適用可能なグローバル値を追加するには、$JDEV_HOME/jdeveloper/jdev
のCustomizationLayerValues.xml
ファイルを開き、カスタマイズ・レイヤーのレイヤー値を追加します。たとえば、North America
値およびAsia Pacific
値をsite
レイヤーに追加します。
<cust-layers xmlns="http://xmlns.oracle.com/mds/dt"> <cust-layer name="site"> <cust-layer-value value="communications" display-name="North America"/> <cust-layer-value value="communications" display-name="Asia Pacific"/> </cust-layer> </cust-layers>
Oracle JDeveloperを起動し、「デフォルトのロール」を選択します。
コア・アプリケーションまたはカスタマイズ・アプリケーションとは異なる名前で新しいSOAアプリケーションを作成します。
「ファイル」メニューから、「インポート」→「SOAアーカイブをSOAプロジェクトへ」の順に選択します。
「参照」をクリックし、「バーティカル・アプリケーションのカスタマイズ」でバーティカル・アプリケーション・チームが作成したコンポジット・アーカイブのJARファイルを選択します。
「カスタマイズ用にインポート」チェック・ボックスを選択します。
「ツール」メニューから、「ロールの切替え」→「カスタマイズ開発者」を選択します。
Oracle JDeveloperを再起動します。
「カスタマイズ・コンテキスト」ダイアログに、使用可能なカスタマイズ・レイヤーとレイヤー値が表示されます。
図52-6 に示すように、カスタマイズするレイヤーと値を選択します(この例では、siteレイヤーとNorth America値が選択されています)。
BPELプロセスをカスタマイズします。
SOAプロジェクトを右クリックし、「デプロイ」を選択して北米地域のJARファイル(SAR)を作成します。
アプリケーションをソース・コード・コントロール・システムにチェックインします。
この項では、SOAコンポジット・アプリケーションの次のバージョンへのアップグレードに必要な手順の概要を示します。
コア・アプリケーション・チームは、不具合の修正、製品の拡張および次のバージョンのコンポジットの作成を実施します。
コア・アプリケーション・チーム・コンポジットをアップグレードする手順は、次のとおりです。
バーティカル・アプリケーション・チームは、新しい基本コンポジットをカスタマイズしてJARファイル・バージョンを作成します。
バーティカル・アプリケーション・チーム・コンポジットをアップグレードする手順は、次のとおりです。
顧客は、「バーティカル・アプリケーション・チーム・コンポジットのアップグレード方法」のバーティカル・アプリケーション・チームと同じ手順に従って、新しいベース・コンポジットに独自のレイヤーを適用します。