トランスフォーメーション・サービス 1 ∼BOマップ/リレーションシップ/インターフェース・マップ∼ WebSphere Process Server V6
by user
Comments
Transcript
トランスフォーメーション・サービス 1 ∼BOマップ/リレーションシップ/インターフェース・マップ∼ WebSphere Process Server V6
WebSphere Process Server V6 トランスフォーメーション・サービス トランスフォーメーション・サービス ∼BOマップ/リレーションシップ/インターフェース・マップ∼ 福増玲子 日本IBM SW事業 WebSphere テクニカル・セールス Copyright IBM Japan Co.,Ltd 2005 1 WebSphere Process Server V6 トランスフォーメーション・サービス Agenda 概要 はじめに トランスフォーメーション・サービスの必要性 マップの機能 マップの配置 トランスフォーメーション・サービスの位置付け 呼び出しの流れ ビジネス統合ソリューション作成 におけるマップ定義 ツールと定義 アーキテクチャー インターフェース・マップ z インターフェース・マップ アーキテクチャー z インターフェース・マップの変換機能 ¾ パラメーター・マッピング ビジネス・オブジェクト・マップ z ビジネス・オブジェクト・マップ アーキテクチャー z ビジネス・オブジェクト・マップの変換機能 リレーションシップ z リレーションシップ アーキテクチャー z 静的リレーションシップ z IDリレーションシップ 2 2 WebSphere Process Server V6 トランスフォーメーション・サービス 概要 3 3 WebSphere Process Server V6 トランスフォーメーション・サービス はじめに ∼企業のアプリケーションを統合するには∼ 財務 Finance 営業支援 SFA 人 事 HR サプライ・チェーン SupplyChane レガシー システム 理想の企業システムとは 全ての考えられうる適用業務について最前線のソ リューションを提供し、ほぼリアルタイムなインター フェースを用いて完璧に統合していること。 現実には 全てのビジネス業務・業界を満たす最前線のソ リューションを提供するには、1社のアプリケー ション・ソフトウェア・ベンダーには収まりきらな い。 その結果、ほとんどの企業は、ソフトウェ アを選定するにあたり、〝best-of breed〟すな わち、各分野において最良なパッケージ・ソフト ウェアをそれぞれ活用していくというアプローチ をとり、各システム間でインターフェースを使っ たデータ転送が必要になる。 そこで発生する課題は 元々他システムとの連携をデザインされていな いレガシーシステムと〝best-of breed〟なアプ リケーション。 これらのシステムを連携して稼働させるには、 どうすれば良いか? 4 トランスフォーメーション・サービスに入る前に、背景を考えてみましょう。 実際の企業システムは、複数のアプリケーションが存在しているのが現実です。 −業務要件に最適のシステムを採用することによって、各組織の生産性を最大限に引き出したい −独自開発で実装されたレガシーシステムから、パッケージ・アプリケーションへ移行したい −企業内で独自アプリケーション・システム群の統合を必要としている −単独のソフトウェア・プロバイダー上に依存しない管理ポリシーがある 例として、まず、5つのアプリケーション・システムを持つ企業があったと過程します。 実際には、ほとんどの会社はこれよりもっと多数のシステムをお持ちでしょう。 いくつかのインターフェースが必要になってきます。 たとえば ・給与支払い情報を人事システムから会計システムへの転送 ・お客様情報をCRMから会計システムへ転送 ・サプライチェーンにおける在庫の増減を財務アプリへ記録 といった連携のためのインターフェースが考えられます。 それでは、組織が直面する2つ目のジレンマについて見ていきましょう。 4 WebSphere Process Server V6 トランスフォーメーション・サービス はじめに ∼従来の作り込みによる統合ソリューション∼ Point-to-point 財務 Finance 営業支援 SFA 人 事 HR 統合 nシステム接続 ⇒ n(n-1)本 アプリケーション間同士で、直接 データ変換 懸念事項 コストがかかる 拡張性が無い 実装・保守・アップグレードが難しい サプライ・チェーン SupplyChane レガシー システム 20インターフェース 5 従来の作り込みにより、統合を実現する方法を考えてみます。 アプリケーションが nシステムあるとします。 各アプリケーションが、他の全アプリケーションにそれぞれ1対1で接続し、相互にデータを送りあう方式を 仮定します。 必要なインターフェースの数は、n x ( n ‒ 1 )という算式ではじき出されます。 現実的には多数のアプリケーションが他の全アプリケーションと接続することは無いにせよ、あるアプリ ケーションから別のアプリケーションにそれぞれ複数インターフェースを使って接続する要件も出てくるは ずです。 たとえば、人事システムから営業支援システムへの接続は不要だったとしても、財務システムからサプラ イ・チェーンへは複数の接続が必要なケースも有り得ます。 よって、全体を見れば、概ね n x ( n ‒ 1 ) 本と算出することができます。 図の例では、5つのシステム同士を接続するのに20本ものインターフェースが必要であり、日次で保守・運 用が発生します。 さらに、アップグレードについて検討してみます。財務アプリケーションをアップグレードした場合、財務ア プリと他のアプリをつなぐ全インターフェースに影響が出てきます。この影響を少なく見積もってしまうと、 後々問題になります。なぜならインターフェースは、非常に変更・アップグレードするのは難しいからです。 では、これに対する、典型的なソリューションを、次に紹介します。 5 WebSphere Process Server V6 トランスフォーメーション・サービス はじめに ∼WebShere Process Server と汎用データ・モデル∼ 財務 Finance 営業支援 SFA 分散化、モジュール化された〝ハブ・アンド・ スポーク型〟のアーキテクチャを採用 アプリケーションから独立したビジネス・プロ セス コモン・オブジェクト・モデル 人 事 HR コンポーネント再利用 汎用 ビジネス・オブジェクト サプライ・チェーン SupplyChane レガシー システム ビジネスプロセス 統合モジュール 5インターフェース 汎用ビジネス・オブジェクト:Generic Business Objects(GBO) 6 前頁の例のように直接システム同士を20本のインターフェースでつなぐ代わりに、ハブ・アンド・スポーク型 システムを採用します。 アプリケーションは、どのアプリケーションからデータを要求されても、統合サーバーへデータを送りさえす れば良いのです。 図のシステムでは、5接続またはインターフェースがあれば要件が満たされます。 営業支援システムでお客様情報の変更が発生すると、まずそのデータは統合サーバーに転送されます。 そして、財務、レガシーシステム、そしてその他必要なシステムへと渡されます。 もし、営業支援システムがアップグレードされた場合には、営業支援に接続しているインターフェース(す なわち、アダプター)のみ変更すれば良いのです。 このハブ・アンド・スポーク型を最大限に活用するために、汎用ビジネス・オブジェクトという考え方がありま す。 中間層として各データ要素の最小公倍数的な項目を網羅した、どのシステムからも汎用的に参照できる データ型を共通オブジェクトとして定義します。そして直接アプリケーション同士でデータ変換をひもづけ るのではなく、この汎用ビジネス・オブジェクトを経由することにより、より一層再利用しやすく変更に強い システムとする設計です。 では、このようにハブ・アンド・スポーク型でつなぎ合わせるときに必要な機能として、トランスフォーメー ション・サービスについて見ていきましょう。 6 WebSphere Process Server V6 トランスフォーメーション・サービス トランスフォーメーション・サービスの必要性 一つの統合ソリューションを実装するには多数のコンポー ネント同士を連携する必要がある インターフェースのミスマッチは避けられない 同じモジュール内でのコンポーネント同士 異なるモジュール間でのコンポーネント同士 コンポーネントと外部サービス WebSphere Process Server EIS1 EIS1 エクスポート EIS2 ビジネス・プロセス EIS2 インポート 7 一つの統合ソリューションを実装するには、多数のコンポーネント同士を連携する必要があります。 どんな統合ブローカーでも、ソリューションとしてパズルのように多種多様な部品を統合していくためには、 各々のインターフェースに差異があろうとも接着しつなぎ合わせるメカニズムが実装されていることが必須 となります。 7 WebSphere Process Server V6 トランスフォーメーション・サービス トランスフォーメーション・サービスの必要性 (続き) 異なるインターフェース同士を統合するための機能 『エクスポート』と『インポート』 『インターフェース・メディエーション・コンポーネント』 実現するサービス 発信元の全オペレーションを宛先インターフェースのオペレーションへ仲介 パラメータ間の変換に、マップを利用 リレーションシップ維持のため、コンテキスト情報を提供 Web Service EIS WS エクスポート メディエーション コンポーネント ビジネス・プロセス メディエーション コンポーネント EIS インポート 8 インターフェース同士では多少なりとも差異が存在します。 図の例を見てみましょう。 WBIプログラミング・モデルと様々なEISベンダー固有のプログラミング・モデルとの間を結ぶ必要がありま す。 アプリケーションとの接点として、WebService側は『エクスポート』、EIS側は『インポート』のコンポーネント が使われます。 インターフェース・メディエーション・コンポーネントは、アプリケーション固有のプログラミング・モデルと SDOベースのデータ型であるビジネス・オブジェクトとの間に残るギャップをうめるための汎用的なアダプ ターとして機能します。 8 WebSphere Process Server V6 トランスフォーメーション・サービス マップの機能 WPSシステムを通して流れるフローについて、ビジネスオ ブジェクトをある型から別の型に変換する機能を担う 発生源と宛先のデータ間の変換ルールを定義 共通オブジェクト・モデルを実現 アプリケーションに依存しない方法でロジックを実行するプロセスを可能に 適用分野ごとに最良のアプリケーションを採用可能にする統合環境を提供 Web Service EIS WS エクスポート メディエーション コンポーネント ビジネス プロセス マップ メディエーション コンポーネント EIS インポート マップ 9 マップとは ・WPSシステムを通して流れるフローについて、ビジネスオブジェクトをある型から別の型に変換する機能 を担う ・発生源と宛先のデータ間の変換ルールを定義 ・アプリケーションから切り離した方法で、ロジックの実行を可能に ・”best-of-breed”で構築されたシステム同士をも統合する環境を提供 補足)best-of-breed システムを構築する際に、同一ベンダ、同一アーキテクチャの製品、あるいはスイート製品を使うのでは なく、各分野で最良のハードウェアやソフトウェアを選択し、その組み合わせでシステム構築を行うアプ ローチ。 データ・マッピングは異種アプリケーション間およびWPSシステムのコンポーネントを含めて、情報転送プ ロセスにおいて主要となる機能です。 アプリケーション固有のビジネスオブジェクト(ASBO)から汎用のビジネスオブジェクト(GBO)へデータを マッピングすることによって、WPS(WebSphere Process Server)のシステムは、よりモジュール化を促進し、 拡張性・マップの保守容易性を提供します。 9 WebSphere Process Server V6 トランスフォーメーション・サービス マップの配置 (1) 代表的なフローの例 代表的なフローでは、マッピング変換は3つ呼び出される イベント通知‥‥‥ 発信アプリケーション⇒WPS 要求‥‥‥ WPS⇒宛先アプリケーション 応答(戻)‥‥‥ 宛先アプリケーション⇒WPS 応答 イベント 通知 1 3 WebSphere Process Server EIS1 EIS2 2 要求 10 代表的なフローでのマップを見てみましょう。 ①アプリケーション固有のビジネス・オブジェクト(Application-Specific BO)が発信源のアプリケーション EIS1 から、汎用ビジネス・オブジェクト(Generic BO)に変換されます。 ②汎用ビジネス・オブジェクトが、宛先アプリケーション用のアプリケーション固有のビジネス・オブジェクト に変換され、要求処理に使用されます。 ③応答として、戻り値が格納されたアプリケーション固有のオブジェクトが汎用ビジネス・オブジェクトに変 換され、処理フローが完了します。 ④もし完全同期処理として、発信源のアプリケーションにも結果を戻す必要があれば、図にはありません が、①の逆向きとしてもう1回、汎用ビジネス・オブジェクトから、EIS1用のアプリケーション固有のビジネ ス・オブジェクトに変換されます。 10 WebSphere Process Server V6 トランスフォーメーション・サービス マップの配置 (2) 同期処理のケース 同期処理の構成 2システム間で各システムが発生源となるフローを構成し、同期を実現 ⇒2フロー 各ビジネス統合フローは3マップ必要(前頁) イベント通知処理で使ったマップは、もう一方のフローの応答処理で再利 用できる ∴ 2システム間の相互同期処理では4つのマップを用意 EIS1 WebSphere Process Server EIS2 11 前頁で、1フローには3マップが必要でした。 相互同期処理を行うには、それぞれのシステムが発生源となるため2フロー構成します。 単純に計算すると2フロー x 3マップ/フローあたり = 6マップになりますが、 イベント通知処理で用意したマップは、逆方向フローでは応答(戻)に再利用できますので、4マップ準備 することになります。 11 WebSphere Process Server V6 トランスフォーメーション・サービス WebSphere Process Server V6における トランスフォーメーション・サービスの位置付け サービス・ コンポーネント Business Business Processes Processes サポーティング ・サービス Interface Maps SOA コア Human Human Tasks Tasks Business Business State State Machines Machines Business Relationships Object Maps Service Component Architecture Business Objects Business Business Rules Rules Selectors Selectors Common Event Infrastructure WebSphere Application Server (J2EE Runtime) 12 実際にWebSphere Process Server Ver.6 でマップの機能は、トランスフォーメーション・サービスとして実 装されています。 トランスフォーメーション・サービスには、 ・インターフェース・マップ ・ビジネス・オブジェクト・マップ ・リレーションシップ の3機能が含まれます。 12 WebSphere Process Server V6 トランスフォーメーション・サービス 呼び出しの流れ インターフェース doOrder(Order) エクスポート doOrder BO (Order) インターフェース submitOrder(SAPOrder) インターフェース マップ Order ビジネス オブジェクト マップ OrderID リレーションシップ BO (SAPOrder) インポート submitOrderSAP SAPOrder SAPID 13 トランスフォーメーション・サービスの3機能を呼び出す流れを、図で説明しましょう。 それぞれ次のように呼び出されていきます。 ①発生源=エクスポート doOrder からデータ(ビジネス・オブジェクト)Orderが生成され、オペレーション doOrder Order を要求される。 ②インターフェース・マップが受け取り、発生源のオペレーションを宛先のオペレーション SAPOrder に解 釈する。 ③インターフェース・マップから、ビジネス・オブジェクト・マップが呼び出され、BO Order から BO SAPOrderに変換される。 ④OrderIDとSAPIDは同じ意味の値であるが表現方式(キー)が異なるため、③のビジネス・オブジェクト・ マップからリレーションシップが呼び出され変換値が設定される。 ⑤宛先=インポート submitOrderSAP に submitOrder(SAPOrder)が渡され処理される。 13 WebSphere Process Server V6 トランスフォーメーション・サービス ビジネス統合ソリューション作成におけるマップ定義 トップダウン RAD WID 定義&実装 WID 定義 モジュール WID 定義 新規 コンポーネント WID ワイア WID 定義 BO & インターフェース モジュール内の コンポーネント マッピング RAD WID 作成 WID テスト& デバッグ 既存資産の コンポーネント ボトムアップ モジュール& コンポーネント 14 開発の流れ全体は、後ほどWIDのセッションで登場します。 マップは、図の段階、すなわちコンポーネントが準備できた後に実装します。 14 WebSphere Process Server V6 トランスフォーメーション・サービス ツールと定義 (1) インターフェース・マップ…Interface mapping Editor インターフェースマップとは 2つの異なるインターフェースを 対応付け オペレーションにおける入力/出力 パラメーターの マッピングを定義 インターフェース・マップ・コンポー ネントを作成 パラメーター・マッピングは 4種類 Map setValue Move Java 15 インターフェース・マップ定義ツールとして、Interface mapping Editorを使います。 インターフェース・マップとは、2つの異なるインターフェースを関連付けるものです。(後述) まず、インターフェース・マップ・コンポーネントを作成します。 この中で、オペレーションにおける入力および出力パラメーターのマップを定義します。 パラメーター・マップは、以下の4種類で実装します。 ① Map --- マップ呼び出しとして、BOマップを使用 ② setValue --- 固定値を設定 ③ Move --- 値をそのままコピー ④ java --- Javaスクリプト呼び出し 15 WebSphere Process Server V6 トランスフォーメーション・サービス ツールと定義 (2) ビジネス・オブジェクト・マップ… Data Map Editor マップの単位 メッセージ内の項目 メッセージ全体 シンプルなマップ Move Extract Custom Join 等 複雑なマップ リレーションシップ 16 BOマップ定義ツールとして、Data Map Editorを使います。 BOマップは次の単位で実装できます。 ・メッセージのパーツレベル ・メッセージの全体レベル また、マッピング方法は、シンプルな場合、複雑な場合に大きく2つに分けられます。 (1) シンプルなメッセージのパーツをマッピングする Move(移動・コピー), Extract(抽出), Custom(カスタム), Join(結合), 等 (2) 複雑なメッセージのパーツをマッピングする リレーションシップ 16 WebSphere Process Server V6 トランスフォーメーション・サービス ツールと定義 (3) リレーションシップ…Relationship Editor リレーションシップには 2種類 静的リレーションシップ IDリレーションシップ 定義方法 リレーションシップ ロール 項目を特定 17 リレーションシップには、2種類あります。 ① 静的リレーションシップ めったに変更が無いデータ間の静的なクロスリファレンス(例:国コード) ② IDリレーションシップ フローを流していく中で、頻繁に追加・変更・削除が発生するデータ間の動的なクロスリファレンス(例: キー) リレーションシップはRelationship Editorで、次のように定義していきます。 ① リレーションシップにBOを追加する。BOは1Roleとして表現される ② 各Roleには、リレーションシップの参加者となるBOのエレメント(要素)を特定する ③ 各エレメントには、リレーションシップを定義する 17 WebSphere Process Server V6 トランスフォーメーション・サービス アーキテクチャー 18 18 WebSphere Process Server V6 トランスフォーメーション・サービス トランスフォーメーション・サービス インターフェース・マップ zオペレーション・マッピング zパラメーター・マッピング map move setValue BOマップ Move Extract Join Java Submap Custom Assign Custom Assign Custom Callout リレーションシップ ロール BO BO BO リレーションシップ 19 19 WebSphere Process Server V6 トランスフォーメーション・サービス インターフェース・マップ インターフェース・マップ zオペレーション・マッピング zパラメーター・マッピング BO変換 パス・スルー 値の設定 BOマップ Move Extract Join Java Submap Custom Assign Custom Assign Custom Callout リレーションシップ ロール BO BO BO リレーションシップ 20 20 WebSphere Process Server V6 トランスフォーメーション・サービス インターフェース・マップのアーキテクチャー インターフェース・マップとは インターフェース間での差異を解決し一致させる ソース・インターフェースとターゲット・インターフェースを1つずつ持つ(リファレンス) オペレーションとパラメータの組を変換する 宛先/ターゲットのコンポーネントを呼び出す 1インターフェース 1リファレンス インターフェース・マップ コンポーネント 次のインターフェースにおける不一致を解決する 同じモジュール内のコンポーネント間 異なるモジュール内のコンポーネント間 外部サービスとコンポーネント間 21 ビジネス統合コンテキストでは、インターフェース・マップ・コンポーネントはアプリケーション固有のビジネ ス・オブジェクト( application-specific business object )を汎用オブジェクトに変換する、あるいはその逆の マッピングの役割を担います。 21 WebSphere Process Server V6 トランスフォーメーション・サービス インターフェース・マップの変換機能 コンポーネント・インターフェースを経由し違いを一致 オペレーション・バインディング パラメーター・マッピング Operation1( in p1, in p2, map1 Operation2( in p1’, in p3, in p4, map2 in p2’, in p3’, in p5, out p6, fault f1) map3 in p4’, in p5’, out p6’, fault f1’) 22 インターフェース・マップでは、 ①オペレーション・バインディング ②パラメーター・マッピング を実装します。 22 WebSphere Process Server V6 トランスフォーメーション・サービス パラメーター・マッピング (1) BO変換 インターフェース・オペレーション間でインプット/アウトプット の互換性が無い場合に適用 BOマップを使って変換 sourceInterface.asboOperation( in ASBO1, out ASBO2 ) Request ASBO > GBO MAP1 GBO > ASBO MAP2 Response targetInterface.gboOperation( in GBO1, out GBO2 ) 23 インターフェース・マップにおける、パラメーター・マッピングの種類を見ていきます。 (1) BO変換 ソース・インターフェース(すなわち、アプリケーション固有のコンポーネント)中の1オペレーションを、ター ゲット・インターフェース(すなわち汎用コンポーネント)の1オペレーションに接続するときに、 1. 入力(要求)パラメーター ASBO1 は、MAP1変換に渡されます。 2. 入力パラメーターASBO1は入力パラメーターGBO1に変換された後、ターゲット・オペレーションに渡さ れます。 3. ターゲット・オペレーションはGBO2 出力パラメータを応答として返し、MAP2に渡されます。 4. 出力パラメーターGBO2は出力パラメーターASBO2に変換され、戻り値として要求(ソース)元オペ レーション に返されます。 23 WebSphere Process Server V6 トランスフォーメーション・サービス パラメーター・マッピング (2) パス・スルー インターフェース・オペレーション間でインプット/アウトプット の互換性がある場合に適用 オペレーションから別のオペレーションに、直接そのまま渡 す sourceInterface.bgOperation( in BG1, out BG2 ) Request Response targetInterface.bgOperation( in BG1, out BG2 ) 24 (2) パス・スルー ソース・インターフェース中の1オペレーションを、ターゲット・インターフェースの1オペレーションに接続 するときに、 1. 入力(要求)パラメータ BG1 は、ターゲット・インターフェース・オペレーションに、そのまま渡されます。 2. ソースとターゲット、双方の入力パラメータは同じ型を利用していることが条件です。 3. ターゲット・オペレーションは、出力パラメータBG2を戻り値として渡し、要求オペレーションに戻り値と してそのまま返されます。 4. ソースとターゲット、双方の出力パラメータは同じ型を利用していることが条件です。 24 WebSphere Process Server V6 トランスフォーメーション・サービス パラメーター・マッピング (3) 値を設定 インターフェース・オペレーション間でインプット/アウトプット の互換性が無い場合に適用 ソース入力引数が無い場合 sourceInterface.bgOperation( SetValue Literal out BG2 ) SetValue XPath Request Response targetInterface.bgOperation( in String, out BG1 ) 25 (3) 値を設定 ソース・インターフェース中の1オペレーションを、ターゲット・インターフェースの1オペレーションに接続 するときに、 1. ソース・インターフェース・オペレーションには、入力(要求)パラメータが定義されていません。 2. ターゲット・オペレーションが定義されていて、文字列の入力パラメータが必要。 3. ターゲット・オペレーションは出力パラメーターBG1を応答として返し、出力値BG2を抽出するために XPathプロセッサーに渡されます。 4. 出力パラメーターは、ソース・インターフェース・オペレーションにおける出力パラメーターBG2として戻 されます。 25 WebSphere Process Server V6 トランスフォーメーション・サービス パラメーター・マッピング (4) Java インターフェース・オペレーション間でインプット/アウトプット の互換性が無い場合に適用 引数にカスタム変換が必要な場合 sourceInterface.customOperation( in BG1 ) Request Custom Java targetInterface.customOperation( in BG2 ) 26 (4) Java ソース・インターフェース・コンポーネントの1オペレーションを、ターゲットの1オペレーションにひもづける 時に、 1. ソース・インターフェース・オペレーションでは、BG1という型の入力(要求)パラメーターを定義します。 2. ターゲット・オペレーションでは、BG2という型の入力パラメーターを定義します。 3. ソースの入力パラメーターBG1は、カスタムJava変換ユーティリティーに渡されます。 4. その結果、入力パラメーターBG2が算出されて、ターゲット・インターフェース・オペレーションに渡され ます。 26 WebSphere Process Server V6 トランスフォーメーション・サービス ビジネス・オブジェクト・マップ インターフェース・マップ zオペレーション・マッピング zパラメーター・マッピング BO変換 パス・スルー 値の設定 BOマップ Move Extract Join Java Submap Custom Assign Custom Assign Custom Callout リレーションシップ ロール BO BO BO リレーションシップ 27 次に、ビジネス・オブジェクト・マップについて、見てみましょう。 27 WebSphere Process Server V6 トランスフォーメーション・サービス ビジネス・オブジェクト・マップ アーキテクチャー ビジネス・オブジェクトおよびビジネス・グラフをサポート BO変換を必要とするいかなるコンポーネントから呼び出し 可能 次の機能をサポート 変更サマリー/イベントサマリーの変換 リレーションシップ・サービスの呼び出し ソース GBO ASBO ターゲット ASBO GBO Web Service EIS WS エクスポート ビジネス・プロセス EIS インポート ASBO > GBO GBO > ASBO マップ マップ 28 以下にマップに関する用語をあげます。 ・マップ定義 テンプレートであり、あるBOから別のBOへの変換ルールを設定したもの。 ・変換ルール ソースから宛先へオブジェクト/グラフを情報転送する方法。 ・サブマップ マップ定義は、変換ルールの呼び出しと同様に、別のマップを呼び出すことができる。 ・マップ定義に含まれる情報 Name Target namespace Source and destination Business Objects (or Business Graphs) Temporary variables Transformation rules ・マップ・インスタンス 実行時は、マップ・サービスからマップ・インスタンスが生成される ・コーリング・コンテキスト データの受け渡しは、コーリング・コンテキストで行われる ・呼び出しは、インターフェース・マップ⇒BOマップ⇒リレーションシップ の流れで行われる 28 WebSphere Process Server V6 トランスフォーメーション・サービス ビジネス・オブジェクト・マップの変換機能 Move (移動/コピー) Extract (分割) Join (結合) Submap (サブマップ) Custom (カスタム) Assign (値を設定) Custom Assign (カスタムアサイン) Custom Callout (カスタム呼び出し) Relationship (リレーションシップ) 29 ビジネス・オブジェクト・マップには、以下の9種類の変換タイプがあります。 ①Move (移動)– ソース属性値をターゲット属性に割り当てる(コピー)。 ②Extract(分割) – ソース属性値は文字列。ソース属性値の文字列の一部を、ターゲット属性に割り当て る。JavaのString.substring()メソッドと同じ役割。 ③Join (結合)- 2つ以上のソース属性値を1つに結合して、ターゲット属性に割り当てる。結合の結果は、 文字列になる。 ④Submap (サブマップ)- ソースおよびターゲットのデータ型はBO。呼び出すBOマップの入力および出 力は、ソースおよびターゲットと同じ型を持つ必要がある。 ⑤Custom (カスタム)- 特定のロジックをJavaコードで実装。 ⑥Assign (値を設定)- 固定値をターゲット属性に割り当てる。 ⑦Custom Assign (カスタムアサイン)- 入力を必要としないカスタム変換。Javaでロジックを実装して値を 割り当てる。ロジックはテキスト・エディターかビジュアル・エディターで設定。 ⑧Custom Callout (カスタム呼び出し)- 出力を必要としないカスタム変換。他の変換を実行する前の初 期化などに利用する。 ⑨Relationship (リレーションシップ)- リレーションシップを呼び出し、ソースからターゲットに変換する。 29 WebSphere Process Server V6 トランスフォーメーション・サービス リレーションシップ インターフェース・マップ zオペレーション・マッピング zパラメーター・マッピング BOマップ BOマップ パス・スルー 値の設定 Move Extract Join Java Submap Custom Assign Custom Assign Custom Callout リレーションシップ ロール BO BO BO リレーションシップ 30 続いて、リレーションシップについて、見ていきましょう。 30 WebSphere Process Server V6 トランスフォーメーション・サービス リレーションシップ アーキテクチャー リレーションシップ定義 リレーションシップ・ロールの論理的なグループ リレーションシップ・ロール 属しているビジネス・エンティティを表す リレーションシップ ロール EIS1_Customer Cust_ID FirstName LastName Status Customer EIS1Cust Cust_ID キー属性 EIS2_CUST EIS2Cust リレーションシップ リレーションシップ ロール CustomerId Name Status CreatedDate CustomerId 31 リレーションシップは複数のロールを保持します。 各リレーションシップ・ロールは、特定のビジネス項目とそれに付随した属性値と関連付けます。 つまり、リレーションシップは、関連づけられるキーとなるIDを含んだ属性値を ロール として定義しておき ます。(例:customer ID 属性) リレーションシップの定義: ・2つ以上の同じ意味を表すビジネス項目 ・リレーションシップにて、ビジネス項目を紐付け ・関連を決定づける属性値のセット リレーションシップ・ロールの定義: ・ビジネス項目がそのリレーションシップに対して、どのような形で参加/関係しているのかを記 述 ・構造をふまえて、ビジネス項目の要件を紐付け ・参加している各ロールについて、属性値のセットを持つ 31 WebSphere Process Server V6 トランスフォーメーション・サービス リレーションシップ アーキテクチャー (続き) 複数の異なるシステム(EIS)が一つの同じビジネス・エン ティティを表すのにそれぞれ別のIDを使っている場合 EIS1_Customer.Create EIS2_CUST.Create 108 3496 John Doe Active December 31, 2005 John Doe 0 12/31/2005 EIS1Cust Customer EIS2Cust リレーションシップ ロール定義 リレーションシップ ロール定義 OraCust SAPCust Oracle_Customer.Create SAP_CustomerMaster.Create 11527 TK421 John Doe Active 20052005-1212-31 リレーションシップ 定義 John Doe A 20051231 32 リレーションシップ・インスタンスとは、リレーションシップ定義が実行時にインスタンス化されたものです。 リレーションシップ・ロール・インスタンスとは、ロール定義が実行時にインスタンス化されたものです。 リレーションシップ・サービスは、リレーションシップおよびロールを実体化し保持します。また、同時に、実 行時においてリレーションシップ・インスタンスを管理し操作します。 ビジネス・オブジェクト・マップを通して、インターフェース・マップからリレーションシップへコーリング・コン テキストが渡されます。 (リレーションの呼び出しについては、2ページ前の図をもう一度参照してくださ い。) 32 WebSphere Process Server V6 トランスフォーメーション・サービス (1) 静的リレーションシップ 用途: 国コードのように通常ほとんど変更が発生しない データについて相互参照。フローの中では更新しない。 国 EIS1_Customer.Create 108 John Doe Active USA EIS1Ctry EIS2Ctry EIS1 国コード EIS2 国コード EIS2_CUST.Create 3496 John Doe 0 Data RIID China 1 RIID Data 1 01 France 2 2 02 Germany 3 3 03 Slovakia 4 4 04 USA 5 5 05 05 RIID: Relationship Instance ID 33 リレーションシップには2種類あります。 まず、1つ目が 静的リレーションシップ です。 リレーションシップでは、データベースに紐付けする表を保持しています。 静的リレーションシップでは、フローによって更新されることがない、ほぼ固定のデータを相互参照させる ことができます。 33 WebSphere Process Server V6 トランスフォーメーション・サービス (2) IDリレーションシップ (動的リレーションシップ) 用途: IDのように頻繁に変更・追加されるデータについて、 動的な相互参照。フローの中で更新をともなう。 Cust_ID RIID 106 107 108 109 110 40 41 42 43 44 RIID CustomerId リレーションシップ インスタンス 40 41 42 43 44 3494 3495 3496 3497 3498 EIS1Cust Customer EIS2Cust リレーションシップ・ロール インスタンス リレーションシップ・ロール インスタンス OraCust SAPCust customer_id RIID 11525 11526 11527 11528 11529 40 41 42 43 44 リレーションシップ インスタンス RIID MasterId 40 41 42 43 44 RB328 RN455 TK421 DD164 RB456 34 2つ目が、IDリレーションシップ(別名、動的リレーションシップ)と呼ばれるものです。 IDリレーションシップでは、フローの中で更新をともなうような、頻繁に追加・変更・削除が発生するような データについて 相互参照を実装します。 34 WebSphere Process Server V6 トランスフォーメーション・サービス 例)イベント・トリガー・フローにおけるリレーションシップ 例:典型的なイベント・トリガーのフロー リレーションシップを使用した3マップ リレーションシップは異なるコンテキストについて相互参照 を行う ソース・アプリケーション(図中EIS1)からWBIへ WBIから宛先アプリケーションへ 宛先アプリケーションからWBIへの戻り Verb Create(新規作成) Update(更新) Delete(削除) … 3 1 WebSphere Business Integration EIS1 EIS2 2 35 概要のところで使ったマップの一般例に、リレーションシップを組み合わせてみましょう。 各BOマップから、リレーションシップが呼び出され相互参照を行います。 35 WebSphere Process Server V6 トランスフォーメーション・サービス まとめ インターフェース・マップの定義: インターフェース・マップは: オペレーションとパラメーターの変換を実行する データ・マップを介して、リレーションシップの保守のためコンテキストを提供 ビジネス・オブジェクト・マップの定義: 1つのソース・インターフェースと1つのターゲット・インターフェース(リファレンス)を持つ ソース・インターフェースのオペレーションとターゲット・インターフェースのオペレーションを紐付け る パラメーター間の変換には、マップを使用 パラメーター属性値間での変換ルールを定義 他のマップをサブマップとして再起呼び出しできる 複数の入力/出力のビジネス・オブジェクト/グラフをサポート ビジネス・オブジェクト・マップは: ビジネス・オブジェクトのパラメーターをある型から別の型へと変換する インターフェース・マップから受け取ったコーリング・コンテキストを、リレーションシップに渡す 36 36