ヘッダーをスキップ
Oracle® Fusion Middleware WebCenter Sites開発者ガイド
11gリリース1 (11.1.1.8.0)
E49681-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

56 Developer Tools: 同期とデータ交換

この章では、Developer Toolsによってサポートされているエクスポートおよびインポート機能について説明します。また、この章では、WebCenter SitesインスタンスとDeveloper Toolsマッピング・プロセス間のリソース交換についても説明します。

Developer ToolsキットはIDとサイト・マッピング・プロセスを使用して、開発者がWebCenter Sitesインスタンス間のリソースを交換できるようにします。Developer Toolsキットについては、IDマッピングとサイト・マッピングに関する項で説明します。

この章には次の項が含まれます。

56.1 Developer Toolsを使用した同期

同期はWebCenter Sitesインスタンスとその関連ワークスペース間のリソースの双方向フローです。Developer Toolsを使用して、次の同期操作を実行できます。

指定されたサイトのすべてのリソースをエクスポートまたはインポートすると、バージョン・コントロール・システムでサイト全体を追跡できます。上級開発者はコマンドライン・ツールを使用して、再使用可能なモジュール(カスタム・ワークスペース)を作成することにより、あるサイトのリソースを別のサイトに再マッピングできます。

56.2 同期シナリオ

シナリオによって、リソースは自動または手動のいずれかで同期されます。

WebCenter Sitesを実行している場合、WebCenter SitesとEclipse間のリソースは、次のアクションがEclipseで実行されるときに自動的に同期されます。

場合によっては、Eclipse IDEの同期ツールまたはコマンドライン・ツール(上級開発者の場合)のいずれかを使用して、リソースを手動で同期する必要があります。手動同期は次の場合に必要です。

リソースの同期にコマンドライン・ツールを使用するのは、サーバーをテストするためにデプロイされるナイトリー・ビルドなど、主にデプロイメントのためです。たとえば、上級開発者は、自動化されたデプロイメント手順用のスクリプトに同期コマンドを埋め込むことができます。コマンドライン・ツールの実行および使用方法の詳細は、第58章「Developer Tools: コマンドライン・ツール」を参照してください。

56.3 依存性の解決

WebCenter Sitesのリソースは、多くの場合、他のリソースに依存します。たとえばフレックス・アセットは、そのアセットが作成される前に、関連付けられたフレックス定義が存在している必要があります。また、フレックス定義は属性セットに依存したり、他のリソースに依存する可能性もあります。したがって、すべてのフレックス構造では、システム上にフレックス・ファミリが存在している必要があります。フレックス・アセットを空のWebCenter Sitesシステムにインポートするには、まずフレックス・アセットが関連付けられるフレックス・ファミリを作成する必要があります。その後、次の手順を実行します。

  1. フレックス属性を作成します。たとえば、名前、住所、年齢などです。

  2. 必要なフレックス親定義を作成します。

  3. フレックス定義を作成します。

  4. 必要なフレックス親を作成します。

  5. フレックス・アセットを作成します。

フレックス・アセットをエクスポートすると、Developer Toolsキットによって、そのアセットのすべての依存性が解決され、その依存性がすべて自動的にエクスポートされます。したがって、必要なリソース(必要なフレックス・アセットなど)を選択するだけで、Developer Toolsキットによって、アセットの依存性がすべて計算されます。


注意:

Developer Toolsキットは、サイト定義上でリソースの依存性を解決しません。これにより、サイト全体またはサイトのサブセットをエクスポートまたはインポートするか、あるいはサイト定義を完全に無視するかどうか(たとえば、コマンドライン・ツールを使用して、任意のサイトにインポートできる再使用可能なモジュールを作成している場合)を選択できます。再使用可能なモジュールの作成の詳細な例は、第61章「Developer Tools: コマンドライン・ツールを使用した再利用可能モジュールの作成」を参照してください。


56.4 IDマッピング

WebCenter Sitesで作成された各リソースには、一意のローカルIDが割り当てられます。リソースのローカルIDは、作成されたWebCenter Sitesインスタンスに対してのみ一意です。リソースの作成には複数のWebCenter Sitesインスタンスが使用されるため、別個のWebCenter Sitesインスタンス上の2つの異なるリソースは、同じローカルIDを持つことができます。

この項の内容は、次のとおりです。

56.4.1 IDマッピングの概要

リソースを一意に識別するために、Developer Toolsキットは、すべてのWebCenter Sitesインスタンス間で一意のグローバル一意識別子(fw_uid)を各リソースに割り当てます。さらに、リソースをWebCenter Sitesインスタンスにインポートすると、そのインスタンス上のそのリソースに新しいローカル識別子が割り当てられます。リソースが他のアセット(アソシエーション、アセット・ポインタ、フレックス定義など)を参照している場合は、それらのアセットごとに新しいローカル識別子が生成されます。そのWebCenter Sitesインスタンスに対するそれ以降のインポートでは、同じローカル識別子がリソースに割り当てられます。Developer Toolsキットでは、すべてのWebCenter Sitesインスタンス間でリソースのfw_uid値が保持されます。リソースとその参照されたアセットが元のWebCenter Sitesインスタンスに再度インポートされると、Developer Toolsキットはローカル識別子をその元の値に再度マッピングします。


注意:

テンプレート・アセット、フレックス属性およびツリー・タブなど、特定のWebCenter Sitesのリソースには、一意の名前の制約があります。名前が競合しないように、各リソースがすべてのWebCenter Sitesインスタンス間で、一意の名前が付けられていることを確認してください。


たとえば、開発者AはCS1という名前のWebCenter Sitesインスタンスを使用し、開発者BはCS2という名前のWebCenter Sitesインスタンスを使用しているとします(図56-1)。両方の開発者は完全に異なるテンプレート・アセットを作成しました。開発者AはテンプレートAを作成し、開発者BはテンプレートBを作成しました。2つのテンプレート・アセットは、fw_uid値も名前も異なります。ただし、ローカルIDがランダムに割り当てられているため、両方のテンプレート・アセットに、偶然同じローカルID (12345)が割り当てられています。開発者AとBは、お互いのWebCenter Sitesインスタンス間で、テンプレート・アセットを交換しようと考えています。開発者AはテンプレートBをCS1インスタンスに、開発者BはテンプレートAをCS2インスタンスにインポートしようと考えています。

図56-1は、両方の開発者がWebCenter Sitesインスタンス間でテンプレート・アセットを交換するために行う手順を説明しています。両方のテンプレート・アセットのローカルIDは、別の開発者のWebCenter Sitesインスタンスにインポートされるときに再マップされます。テンプレートAがCS2インスタンスにインポートされるときに、システムによってローカルID 52563が割り当てられます。テンプレートBがCS1インスタンスにインポートされるときに、システムによってローカルID 22342が割り当てられます。いずれの場合にも、両方のテンプレート・アセットのfw_uid値は同じままです。


注意:

この例の開発者は、WebCenter Sitesインスタンス間でのリソース交換にVCSまたは共有ファイル・システムを使用します。VCSの使用方法の詳細は、第59章「Developer Tools: バージョン・コントロール・システムとの統合」を参照してください。


図56-1 同じローカルIDを持つ2つの異なるアセットの2つのWebCenter Sitesインスタンス間での交換

図56-1の説明が続きます
「図56-1 同じローカルIDを持つ2つの異なるアセットの2つのWebCenter Sitesインスタンス間での交換」の説明

図56-2では、開発者AはテンプレートAをDeployment WebCenter Sitesインスタンス(システム管理者によって管理される)にデプロイしようと考えており、開発者BはテンプレートBを同じインスタンスにデプロイしようと考えています。両方のテンプレート・アセットには、同じローカルID (12345)があります。

開発者AとBは、各自のテンプレートを、WebCenter Sitesインスタンスの、メインのDeveloper Toolsワークスペースにエクスポートします。その後、各自のテンプレートをVCSまたは共有ファイル・システムにコピーします。ここから、システム管理者は両方のテンプレート・アセットを、Deployment WebCenter Sitesの、メインのDeveloper Toolsワークスペースにコピーします。次にシステム管理者は、2つのテンプレート・アセットを、ワークスペースからDeployment WebCenter Sitesにインポートします。インポート時に、システムによって両方のテンプレートに新しいローカルIDが割り当てられます。テンプレートAにはローカルID 45678が割り当てられ、テンプレートBにはローカルID 98765が割り当てられます。アセットのfw_uid値は変わりません。

図56-2 同じローカルIDを持つ2つの異なるアセットの、3番目のWebCenter Sitesインスタンスへのデプロイ

図56-2の説明が続きます
「図56-2 同じローカルIDを持つ2つの異なるアセットの、3番目のWebCenter Sitesインスタンスへのデプロイ」の説明

リソースがワークスペースにエクスポートされた場合は、fw_uidによってのみ識別されます。ElementCatalogエントリとSiteCatalogエントリはエレメント名によって一意に識別されているため、fw_uidは割り当てられません。

syncscreen_resourceid.pngの説明が続きます
図syncscreen_resourceid.pngの説明

56.4.2 リソースのfw_uidのオーバーライド

リソースが作成されると、グローバルな一意識別子としてUUID値が自動的に生成され、fw_uidという名前のアセット属性に格納されます。上級開発者はアセットAPIを使用してfw_uid属性を変更することにより、デフォルトのfw_uidスキームを独自のスキームでオーバーライドできます。アセットAPIの使用方法の詳細は、Oracle Fusion Middleware WebCenter Sites Java APIリファレンスを参照してください。


注意:

デフォルトのWebCenter Sites fw_uidスキームの使用をお薦めします。リソースのデフォルトfw_uid値をオーバーライドする場合は、値がWebCenter Sitesインスタンス全体で一意であることを確認する必要があります。一度リソースのfw_uid属性を設定したら、その後は値を変更しないでください


56.4.3 既存のリソースとDeveloper Toolsの併用

使用するOracle WebCenter SitesシステムがFatWire Content Serverのアップグレードの場合は、既存のリソースの一部でfw_uid値がCSSystem:[type]:idに設定されている場合があります。ただし、Content Serverのバージョン7.6以降では、リソースのfw_uidはUUID値として生成されます。Developer Toolsは、リソースのfw_uid値がグローバルで一意であるかぎり、fw_uid値のいずれかのタイプでリソースをマップできます。したがって、既存のリソースの現在のfw_uid値を(CSSystem:[type]:idの形式で)引き続き使用できます。

Developer Toolsを既存のリソースと併用する場合は、次のいずれか(または両方)を実行してください。

  • 既存のリソースの、CSSystem:[type]:idfw_uid値を引き続き使用することをお薦めします。ただし、他のWebCenter Sitesインスタンスが、異なるリソースに同じfw_uid値を生成していないことを確認する必要があります。たとえば、WebCenter Sitesの開発インスタンスがあり、管理インスタンスにリソースをパブリッシュしている場合、パブリッシュされたリソースのfw_uid値は両方のインスタンスに対して同じままになります。したがって、Developer Toolsを使用した、これらの2つのインスタンス間のリソースの同期によって、ID競合が発生することはありません。

  • 別個のFatWire Content Serverインスタンスで作成されているが、まったく同じfw_uid値を持つ既存のリソースがある場合、これらの各リソースには、新しい、一意のfw_uid値が割り当てられる必要があります。ID競合を避けるために、現在のfw_uid値を削除して、WebCenter Sitesインスタンスからリソースをエクスポートする際にDeveloper Toolsが新しいUUID値を生成できるようにするか、または独自の一意IDをリソースに割り当てることができます。手順については、第56.4.2項「リソースのfw_uidのオーバーライド」を参照してください。


    注意:

    リソースに新しいfw_uidを割り当てる場合は、そのリソースのすべてのインスタンスに新しいfw_uid値を割り当てる必要があります。たとえば、リソースを別のWebCenter Sitesインスタンスにパブリッシュした後でfw_uid値を変更する場合は、必ずそのリソースの両方のコピーに、同じfw_uidを割り当ててください。


56.5 サイト・マッピング

アセットなどの大半のWebCenter Sitesリソースは、少なくとも1つのサイトに関連付けられています。リソースがWebCenter Sitesインスタンスからワークスペースへエクスポートされると、関連付けられているサイトの完全な(正規の)リストが.main.xmlファイル内に格納されます。新しいサイト・アフィリエーションの追加、現在のサイト・アフィリエーションの削除、または(上級開発者の場合)コマンドライン・ツールを使用したリソースのナチュラル・サイト・マッピングのオーバーライドを実行しないかぎり、リソースの正規リストは各WebCenter Sitesインスタンス間で同じです。

この項の内容は、次のとおりです。

56.5.1 ナチュラル・サイト・マッピング

デフォルトでは、Developer Toolsは、リソースの.main.xmlファイルに格納された正規リストを参照することによって、関連サイトにリソースをマップします。リソースがインポートされるWebCenter Sitesインスタンス上に、このリストで参照されるサイトが存在する場合、Developer Toolsはそれらのサイトにリソースをマップします。WebCenter Sitesインスタンス上に、リソースの正規リストで参照されるサイトが存在しない場合、インポートは失敗します。

たとえば、開発者Aが2つのサイト(NewsとSports)をインストールします。別のWebCenter Sitesインスタンス上で、開発者Bも2つのサイト(NewsとWeather)をインストールします。両方の開発者は同じテンプレート・アセットを、それぞれのWebCenter Sitesインスタンスにインポートします。このテンプレート・アセットは、SportsとWeatherの両方のサイトに関連付けられます(両方のサイトがアセットの正規リストで参照されます)。インポート時に、Developer Toolsはテンプレート・アセットの正規リストを参照し、そのアセットを開発者Aの環境のSportsサイトと、開発者Bの環境のWeatherサイトにマップします。

開発者AとBがテンプレート・アセットに加えられた変更を互いに共有している場合、Developer Toolsは、両方のWebCenter Sitesインスタンスの適切なサイトにアセットをマッピングします。Developer Toolsは正規リストを使用して、テンプレート・アセットが関連付けられたサイトを認識します。これらのサイトの一部がインストールされていないインスタンスに、アセットをエクスポートした場合でも認識できます。

56.5.2 コマンドライン・ツールを使用したナチュラル・サイト・マッピングのオーバーライド

上級開発者はコマンドライン・ツールを使用して、正規リストで参照されていないサイトにリソースをインポートできます。コマンドライン・ツールを使用すると、再利用可能なモジュールを作成できます。このモジュールは、任意のサイトにインポート可能なリソースを含むワークスペースです。

たとえば、開発者がFirstSiteIIサンプル・サイト内にブログ・ソリューションを作成するとします。このソリューションには、フレックス・ファミリ、アセット、テンプレートなどのリソースが含まれます。開発者は、まだ存在しないサイトも含め、様々なサイトにリソースをインポートすることを望んでいます。上級開発者であるため、コマンドライン・ツールを使用して必要なリソースを空のワークスペースにエクスポートしてから、このワークスペースのコンテンツを(.zipまたは.tar形式を使用して)アーカイブします。その後、他の開発者はコマンドライン・ツールを使用して、このモジュールに含まれるリソースのサイト・マッピングをカスタマイズし、モジュールのインポート先サイトを手動で指定します。

コマンドライン・ツールの使用方法の詳細は、第58章「Developer Tools: コマンドライン・ツール」を参照してください。再使用可能なモジュールの作成の詳細なシナリオは、第61章「Developer Tools: コマンドライン・ツールを使用した再利用可能モジュールの作成」を参照してください。