(57)【要約】  一実施形態によれば、クラウドベースの統合サービスの設計時にソースアプリケーションとターゲットアプリケーションとの間に高度なマッピングを作成するためのシステムおよび方法がここに記載される。設計時のウェブインターフェイスアプリケーションは、１つ以上のソースエレメントを含むソースデータオブジェクト、１つ以上のターゲットエレメントを含むターゲットデータオブジェクト、および複数のマッピングコンポーネントを表示することができる。特定のターゲットエレメントのためのマッピング領域は、ソースエレメントと特定のターゲットエレメントとの間のマッピング式を含むことができる。マッピングコンポーネントがマッピング領域上にドラッグアンドドロップされると、複数のルールに従って１つ以上のアクションを定義するアプリケーションプログラミングインターフェイスをトリガして１つ以上のマッピングステートメントを生成してマッピング式を修正してソースエレメントとターゲットエレメントとの間に高度なマッピングを作成することができる。
2018517953.tif 000002
【特許請求の範囲】
【請求項１】
クラウドベースの統合サービスにおいて高度なマッピングを作成するシステムであって、
１つ以上のマイクロプロセッサを含むコンピュータと、
前記コンピュータ上で実行されるクラウドサービスとを備え、前記クラウドサービスは、ソースアプリケーションとターゲットアプリケーションとの間で統合フローを作成するためのウェブインターフェイスアプリケーションと、前記統合フローを実行するためのランタイムとを含み、前記システムはさらに、
前記ターゲットアプリケーションのターゲットエレメントのために前記ウェブインターフェイスアプリケーションに表示されるマッピング領域を備え、前記マッピング領域は、前記ソースアプリケーションのソースエレメントと前記ターゲットアプリケーションの前記ターゲットエレメントとの間にマッピングを定義するマッピング式を含む、複数のターゲットアイテムを含み、前記システムはさらに、
前記ウェブインターフェイスアプリケーションに表示される複数のマッピングコンポーネントを備え、各マッピングコンポーネントは、前記複数のターゲットアイテムの１つ以上にドラッグアンドドロップされるように構成され、前記システムはさらに、
ドラッグアンドドロップされるマッピングコンポーネントとターゲットアイテムとの組み合わせに対して１つ以上のアクションを各々が指定する複数のルールを定義するアプリケーションプログラミングインターフェイスを備え、
前記複数のマッピングコンポーネントの１つ以上を前記マッピング領域上にドラッグアンドドロップして、前記複数のルールの１つ以上をトリガして、１つ以上のマッピングステートメントを生成し、それによって、前記マッピング式を修正して、前記ソースエレメントと前記ターゲットエレメントの間に高度なマッピングを作成する、システム。
【請求項２】
前記マッピング式に対する前記修正は、条件ステートメント、関数、および参照ルックアップを追加することを含む、請求項１に記載のシステム。
【請求項３】
前記複数のマッピングコンポーネントは、拡張可能スタイルシート言語（ＸＳＬ）構造、ＸＰａｔｈ関数、操作、および変数を含む、請求項１または請求項２に記載のシステム。
【請求項４】
前記アプリケーションプログラミングインターフェイスは、前記マッピング領域内の前記マッピングコンポーネントおよびキャッチ側アイテムをパラメータとして取得し、前記マッピングコンポーネントと前記キャッチ側アイテムとの組み合わせに基づいて前記複数のルールの１つを施行して、前記マッピング式を修正するために使用される前記１つ以上のマッピングステートメントを生成する、請求項１〜請求項３のいずれか１つに記載のシステム。
【請求項５】
前記マッピング領域は、前記ターゲットエレメントがクリックされたときに表示される、請求項１〜請求項４のいずれか１つに記載のシステム。
【請求項６】
前記複数のマッピングコンポーネントは、前記アプリケーションプログラミングインターフェイスでオブジェクトにロードされ、そこで階層的に分類される、請求項１〜請求項５のいずれか１つに記載のシステム。
【請求項７】
前記ウェブユーザインターフェイスアプリケーションはＪａｖａ（登録商標）アプリケーションである、請求項１〜請求項６のいずれか１つに記載のシステム。
【請求項８】
クラウドベースの統合サービスにおいて高度なマッピングを作成するための方法であって、
マイクロコンピュータを含むコンピュータ上で実行されるクラウドサービスを提供することを備え、前記クラウドサービスは、ソースアプリケーションとターゲットアプリケーションとの間で統合フローを作成するためのウェブインターフェイスアプリケーションと、前記統合フローを実行するためのランタイムとを含み、前記方法はさらに、
前記ウェブインターフェイスアプリケーションに、前記ターゲットアプリケーションのターゲットエレメントに対するマッピング領域を表示することを備え、前記マッピング領域は、前記ソースアプリケーションのソースエレメントと前記ターゲットアプリケーションの前記ターゲットエレメントとの間にマッピングを定義するマッピング式を含む、複数のターゲットアイテムを含み、前記方法はさらに、
前記ウェブインターフェイスアプリケーションに複数のマッピングコンポーネントを表示することを備え、各マッピングコンポーネントは、前記複数のターゲットアイテムの１つ以上にドラッグアンドドロップされるように構成され、前記方法はさらに、
ドラッグアンドドロップされたマッピングコンポーネントとターゲットアイテムとの組み合わせに対して１つ以上のアクションを各々が指定する複数のルールを定義するアプリケーションプログラミングインターフェイスを提供することと、
前記マッピング領域において、前記複数のマッピングコンポーネントの１つ以上のドラッグアンドドロップされたマッピングコンポーネントを受け取ることと、
前記複数のルールの１つ以上のルールをトリガして、１つ以上のマッピングステートメントを生成し、それによって、前記マッピング式を修正して、前記ソースエレメントと前記ターゲットエレメントの間に高度なマッピングを作成することとを備える、方法。
【請求項９】
前記マッピング式に対する前記修正は、条件ステートメント、関数、および参照ルックアップを追加することを含む、請求項８に記載の方法。
【請求項１０】
前記複数のマッピングコンポーネントは、拡張可能スタイルシート言語（ＸＳＬ）構造、ＸＰａｔｈ関数、操作、および変数を含む、請求項８または請求項９に記載の方法。
【請求項１１】
前記アプリケーションプログラミングインターフェイスは、前記マッピング領域内の前記マッピングコンポーネントおよびキャッチ側アイテムをパラメータとして取得し、前記マッピングコンポーネントと前記キャッチ側アイテムとの組み合わせに基づいて前記複数のルールの１つを施行して、前記マッピング式を修正するために使用される前記１つ以上のマッピングステートメントを生成する、請求項８〜請求項１０のいずれか１つに記載の方法。
【請求項１２】
前記マッピング領域は、前記ターゲットエレメントがクリックされたときに表示される、請求項８〜請求項１１のいずれか１つに記載の方法。
【請求項１３】
前記複数のマッピングコンポーネントは、前記アプリケーションプログラミングインターフェイスでオブジェクトにロードされ、そこで階層的に分類される、請求項８〜請求項１２のいずれか１つに記載の方法。
【請求項１４】
前記ウェブユーザインターフェイスアプリケーションはＪａｖａアプリケーションである、請求項８〜請求項１３のいずれか１つに記載の方法。
【請求項１５】
統合クラウドサービスにおいて高度なマッピングを作成するための命令のセットを格納する非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに請求項８〜請求項１４のいずれか１つに記載の方法を実行させる、非一時的なコンピュータ読取可能記憶媒体。
【請求項１６】
クラウドベースの統合サービス設計時において高度なマッピングを作成するための命令のセットを格納する非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
マイクロコンピュータを含むコンピュータ上で実行されるクラウドサービスを提供することを備えるステップを実行させ、前記クラウドサービスは、ソースアプリケーションとターゲットアプリケーションとの間で統合フローを作成するためのウェブインターフェイスアプリケーションと、前記統合フローを実行するためのランタイムとを含み、前記命令はさらに、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記ウェブインターフェイスアプリケーションに、前記ターゲットアプリケーションのターゲットエレメントに対するマッピング領域を表示することを備えるステップを実行させ、前記マッピング領域は、前記ソースアプリケーションのソースエレメントと前記ターゲットアプリケーションの前記ターゲットエレメントとの間においてマッピングを定義するマッピング式を含む、複数のターゲットアイテムを含み、前記命令はさらに、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記ウェブインターフェイスアプリケーションに複数のマッピングコンポーネントを表示することを備えるステップを実行させ、各マッピングコンポーネントは、前記複数のターゲットアイテムの１つ以上にドラッグアンドドロップされるように構成され、前記命令はさらに、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
ドラッグアンドドロップされたマッピングコンポーネントとターゲットアイテムとの組み合わせに対して１つ以上のアクションを各々が指定する複数のルールを定義するアプリケーションプログラミングインターフェイスを提供することと、
前記マッピング領域において、前記複数のマッピングコンポーネントの１つ以上のドラッグアンドドロップされたマッピングコンポーネントを受け取ることと、
前記複数のルールの１つ以上のルールをトリガして、１つ以上のマッピングステートメントを生成し、それによって、前記マッピング式を修正して、前記ソースエレメントと前記ターゲットエレメントの間に高度なマッピングを作成することとを備えるステップを実行させる、非一時的なコンピュータ読取可能記憶媒体。
【請求項１７】
前記マッピングに対する前記修正は、条件ステートメント、関数、および参照ルックアップを追加することを含む、請求項１６に記載の非一時的なコンピュータ読取可能記憶媒体。
【請求項１８】
前記複数のマッピングコンポーネントは、拡張可能スタイルシート言語（ＸＳＬ）構造、ＸＰａｔｈ関数、操作、および変数を含む、請求項１６または請求項１７に記載の非一時的なコンピュータ読取可能記憶媒体。
【請求項１９】
前記アプリケーションプログラミングインターフェイスは、前記マッピング領域内の前記マッピングコンポーネントおよびキャッチ側アイテムをパラメータとして取得し、前記マッピングコンポーネントと前記キャッチ側アイテムとの組み合わせに基づいて前記複数のルールの１つを施行して、前記マッピング式を修正するために使用される前記１つ以上のマッピングステートメントを生成する、請求項１６〜請求項１８のいずれか１つに記載の非一時的なコンピュータ読取可能記憶媒体。
【請求項２０】
前記マッピング領域は、前記ターゲットエレメントがクリックされたときに表示されるようにされる、請求項１６〜請求項１９のいずれか１つに記載の非一時的なコンピュータ読取可能記憶媒体。
【請求項２１】
前記複数のマッピングコンポーネントは、前記アプリケーションプログラミングインターフェイスでオブジェクトにロードされ、そこで階層的に分類される、請求項１６〜請求項２０のいずれか１つに記載の非一時的なコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権者は、特許商標庁の特許ファイルまたは記録に現れるとおりの、特許文書または特許開示の何人によるファクシミリ複製にも異議を唱えないが、それ以外の場合はすべての著作権を留保する。
【０００２】
発明の分野：
本発明の実施形態は、一般にクラウドサービスに関連し、特に、クラウドベースの統合サービスの設計時にソースエレメントをターゲットエレメントにインテリジェントにマッピングするためのシステムおよび方法に関する。
【背景技術】
【０００３】
背景：
オンプレミスアプリケーションからＳａａＳ（Software-as-a-Service）とオンプレミスアプリケーションとのハイブリッドミックスへの急速な移行により、エンタープライズアプリケーション統合を簡素化しようとする企業には課題が生じた。サービスとしての統合プラットフォーム（ｉＰａａＳ）は、これらの課題に対処するクラウドベースのツールのセットを提供できる。ｉＰａａＳプラットフォームは、開発者が統合フローを設計し、異なるフォーマットのデータオブジェクトをソースアプリケーションとターゲットアプリケーションとの間でマッピングするための設計時間を提供することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
一実施形態によれば、クラウドベースの統合サービスの設計時にソースアプリケーションとターゲットアプリケーションとの間に高度なマッピングを作成するためのシステムおよび方法がここに記載される。設計時のウェブインターフェイスアプリケーションは、１つ以上のソースエレメントを含むソースデータオブジェクト、１つ以上のターゲットエレメントを含むターゲットデータオブジェクト、および複数のマッピングコンポーネントを表示することができる。特定のターゲットエレメントのためのマッピング領域は、ソースエレメントと特定のターゲットエレメントとの間のマッピング式を含むことができる。マッピングコンポーネントがマッピング領域上にドラッグアンドドロップされると、複数のルールに従って１つ以上のアクションを定義するアプリケーションプログラミングインターフェイス（ＡＰＩ）をトリガして１つ以上のマッピングステートメントを生成し、マッピング式を修正して、ソースエレメントとターゲットエレメントとの間に高度なマッピングを作成することができる。
【図面の簡単な説明】
【０００５】
【図１】一実施形態による統合クラウドサービスを示す。
【図２】一実施形態によるＩＣＳ設計時間を示す。
【図３】一実施形態による、ＩＣＳ設計時にソースエレメントをターゲットエレメントにインテリジェントにマッピングするためのシステムを示す。
【図４】一実施形態によるインテリジェントなドロップＡＰＩを示す。
【図５Ａ】一実施形態による、ＩＣＳ設計時におけるドロップされたアイテムとキャッチ側アイテムとの間のマッピング式の自動注入を示す。
【図５Ｂ】一実施形態による、ＩＣＳ設計時におけるドロップされたアイテムとキャッチ側アイテムとの間のマッピング式の自動注入を示す。
【図６Ａ】一実施形態による、関数がマッピング式にドラッグアンドドロップされる場合のマッピングビルダによるアクションを示す。
【図６Ｂ】一実施形態による、関数がマッピング式にドラッグアンドドロップされる場合のマッピングビルダによるアクションを示す。
【図６Ｃ】一実施形態による、関数がマッピング式にドラッグアンドドロップされる場合のマッピングビルダによるアクションを示す。
【図７Ａ】一実施形態に従い、ソースアイテムが不適切にドラッグアンドドロップされるときにマッピングビルダがエラーを生じさせることができることを示す。
【図７Ｂ】一実施形態に従い、ソースアイテムが不適切にドラッグアンドドロップされるときにマッピングビルダがエラーを生じさせることができることを示す。
【図８】一実施形態による、ＩＣＳ設計時にソースエレメントをターゲットエレメントにインテリジェントにマッピングする方法を示す。
【発明を実施するための形態】
【０００６】
詳細な記載
Oracle Integration Cloud Service（ＩＣＳ）などのサービスとしての統合プラットフォームは、クラウドまたはオンプレミスに存在するアプリケーションを接続する統合フローを構築および展開するためのクラウドベースのプラットフォームを提供できる。
【０００７】
統合フローを作成する場合、ソースエレメントとターゲットエレメントの間に高度なマッピングが必要な場合には、ソースデータオブジェクトとターゲットデータオブジェクトとの間のデータマッピングに時間がかかることがある。
【０００８】
実施形態によれば、ここで用いられるように、マッピングは、ソースデータオブジェクトからのエレメント/フィールドがターゲットデータオブジェクトからの１つ以上のエレメントにどのようにマッピングされるかを示す拡張可能スタイルシート（ＸＳＬ）表現であり得る。たとえば、ソースデータオブジェクトからの「city（都市）」からターゲットデータオブジェクト内の「town（町）」へのマッピングは「city: <xsl:value-of select=’/ns0:shippingOrder/ns0:deliverTo/cmm:city’/>」によって表現することができる。高度なマッピングは、１つ以上の関数、演算子、またはステートメントによって修正されたマッピングを表し、制約、値の計算、またはその他の操作を含むことができる。
【０００９】
たとえば、ソースデータオブジェクト内のソースエレメント「価格」は、ターゲットデータオブジェクト内の２つの価格の合計にマッピングされ得る。関数または演算子を使用して、マッピング式を修正して、ターゲットデータオブジェクト内の２つの価格を組み合わせ、組み合わせた価格をソース価格にマッピングすることによって、高度なマッピングを作成できる。
【００１０】
一実施形態によれば、統合クラウドサービス設計時にソースアプリケーションとターゲットアプリケーションとの間に高度なマッピングを作成するためのシステムおよび方法がここに記載される。統合クラウドサービスによって提供されるウェブインターフェイスアプリケーションは、１つ以上のソースエレメントを含むソースデータオブジェクト、１つ以上のターゲットエレメントを含むターゲットデータオブジェクト、および複数のマッピングコンポーネントを表示することができる。特定のターゲットエレメントのためのマッピング領域は、ソースエレメントと特定のターゲットエレメントとの間のマッピング式を含むことができる。マッピングコンポーネントがマッピング領域上にドラッグアンドドロップされると、複数のルールに従って１つ以上のアクションを定義するアプリケーションプログラミングインターフェイスをトリガして１つ以上のマッピングステートメントを生成し、マッピング式を修正して、ソースエレメントとターゲットエレメントとの間に高度なマッピングを作成することができる。
【００１１】
図１は、一実施形態による統合クラウドサービスを示す。
図１に示すように、ＩＣＳ１０７は、ＩＣＳ統合フローを設計、実行、および管理するためのクラウドベースの統合サービスを提供することができる。ＩＣＳは、エンタープライズクラウド環境（たとえばOracle Public Cloud）１０１においてアプリケーションサーバ１１７上で実行されるウェブアプリケーション１０９およびＩＣＳランタイム１１５を含むことができる。ウェブアプリケーションは、ＩＣＳ統合フローを設計、起動、管理、および監視するよう開発者に対して複数のユーザインターフェイスを公開する設計時間を提供することができる。アクティブにされたＩＣＳ統合フローはＩＣＳランタイムで展開され実行されることができる。
【００１２】
一実施形態によれば、複数のアプリケーションへの接続の基底の複雑さを処理することによって、複数のアプリケーションへの接続を構成するタスクを単純化するために、複数のアプリケーションアダプタ１１３を提供することができる。アプリケーションには、ＩＣＳベンダー（Oracle RightNowなど）のエンタープライズクラウドアプリケーション１０５、サードパーティクラウドアプリケーション（Salesforceなど）１０３、およびオンプレミスアプリケーション１１９が含まれ得る。ＩＣＳは、ＳＯＡＰ（Simple Object Access Protocol）およびＲＥＳＴ（Representational State Transfer）エンドポイントを、これらのアプリケーションと通信するために、これらのアプリケーションに公開することができる。
【００１３】
一実施形態によれば、ＩＣＳ統合フロー（またはＩＣＳ統合）は、ソース接続、ターゲット接続、および２つの接続間のフィールドマッピングを含むことができる。各接続は、アプリケーションアダプタに基づくことができ、アプリケーションの特定のインスタンスと通信するためにアプリケーションアダプタによって必要とされる追加情報を含むことができる。
【００１４】
一実施形態によれば、ＩＣＳ統合フローおよび複数の他の必要なアーティファクト（たとえばＪＣＡおよびＷＳＤＬファイル）をＩＣＳプロジェクトにコンパイルすることができ、ＩＣＳプロジェクトをＩＣＳランタイムで展開して実行することができる。
【００１５】
図２は、一実施形態によるＩＣＳ設計時間を示す。
一実施形態によれば、ウェブＵＩアプリケーションの開発インターフェイス（たとえば開発キャンバス）２１０は、開発者によって用いられて、複数の既存の接続２０１、たとえば接続Ａ２０３、接続Ｂ２０５および接続Ｎ２０７を使用して、ＩＣＳ統合フローを作成することができる。
【００１６】
図２に示すように、特定の接続（たとえば接続Ａ）をソース接続２１３として開発インターフェイスにドラッグアンドドロップ２１１することができ、接続Ｎをターゲット接続２１５として開発インターフェイスにドラッグアンドドロップ２０９することができる。ソース接続には、ソースアプリケーションに接続するために必要な情報が含まれ、ＩＣＳによって、ソースアプリケーション（たとえばOracle RightNowクラウドアプリケーション）から要求を受信するために使用できる。ターゲット接続には、ターゲットアプリケーション（たとえばSalesforceクラウドアプリケーション）に接続するために必要な情報が含まれ、ＩＣＳによって、ターゲットアプリケーションに要求を送信するために使用できる。
【００１７】
一実施形態によれば、ソース接続およびターゲット接続は、追加の情報を含むようにさらに構成することができる。たとえば、追加情報は、要求に関連するデータに対して実行される操作のタイプ、ならびにそれらの操作に対するオブジェクトおよびフィールドを含むことができる。
【００１８】
一実施形態によれば、一旦ソース接続およびターゲット接続が構成されると、２つの接続間のマッパーをイネーブルにすることができ、マッパーを開く際に使用するために、マッパーアイコン（たとえばマッパーアイコンＡ２１７およびマッパーアイコンＢ２１８）を表示することができ、開発者は、要求メッセージおよび応答メッセージの両方について、ソースデータオブジェクトとターゲットデータオブジェクトとの間で情報がどのように転送されるかを定義することができる。
【００１９】
一実施形態によれば、マッパーは、ソースアイテムをターゲットアイテム上にドラッグすることによって、ソースアプリケーションとターゲットアプリケーションとの間でアイテム（たとえば、フィールド、属性、およびエレメント）をマッピングするよう、開発者に対してグラフィカルユーザインターフェイスを提供することができる。ＩＣＳ統合フロー内において要求メッセージまたは応答メッセージのためのマッパーが開かれると、ソース接続およびターゲット接続を使用して、ソースデータオブジェクトおよびターゲットのデータオブジェクトを自動的にロードできる。
【００２０】
一実施形態によれば、マッピングの作成を容易にするためにルックアップを提供することができる。本明細書で用いられるように、ルックアップは、同じアイテムを記述するためにアプリケーションで使用される異なるコードおよびタームのための再利用可能なマッピングである。ルックアップは、特定のフィールドについて１つのアプリケーションによって使用される値を、同じフィールドについて他のアプリケーションによって使用される値に関連付けることができる。これにより、ボキャブラリまたはシステム間で値をマッピングする機能が提供される。
【００２１】
インテリジェントなドラッグアンドドロップ
上述のように、推奨エンジンによって提供される推奨されるマッピングは、実際のマッピングに変換することができる。実際のマッピングは、ソースエレメントとターゲットエレメントとの間のマッピング式、たとえばＸＭＬパス言語（ＸＰａｔｈ）式で表すことができる。
【００２２】
一実施形態によれば、実際のマッピングは、条件ステートメント、ＸＰａｔｈ関数、および参照ルックアップを含むことができる高度なマッピングを作成するようにさらに構成することができる。
【００２３】
たとえば、ＸＰａｔｈ関数「concat（）」を用いて、ターゲットデータオブジェクト内の２つのエレメントを連結してソースデータオブジェクト内の１つのエレメントと一致させることにより、マッピング式を修正することができる。
【００２４】
一実施形態によれば、システムは、インテリジェントなドロップＡＰＩを使用してマッピング式およびステートメントを自動的に生成して、ソースエレメントとターゲットエレメントとの間の高度なマッピングを作成することができる。インテリジェントなドロップＡＰＩは、ドラッグアンドドロップされるソースアイテムおよびキャッチ側ターゲットアイテム、ならびにソースアイテムがドロップされる場所、たとえばキャッチ側ターゲットアイテムの上または下、に基づいて、適切なアクションをとることができる。インテリジェントなドロップＡＰＩは、ソースアイテムをドラッグしてターゲットアイテム上にドロップしたとき、またはユーザがソースアイテムおよびターゲットアイテムを選択してマッピングボタンをクリックしたときに、呼び出すことができる。
【００２５】
マッピング式およびマッピングステートメントの自動挿入は、ＩＣＳ統合フローでのデータマッピングの効率を高め、エラーを減らすことができる。
【００２６】
一実施形態によれば、ソースアイテムおよびターゲットアイテムは、ソースエレメントとターゲットエレメントとの間にマッピングを作成するために使用できる任意のコンポーネントとすることができる。ソースアイテムは、ソースデータオブジェクトにおけるエレメント、フィールド、もしくは属性；または拡張可能スタイルシート言語（ＸＳＬ）構造、ＸＰａｔｈ関数、操作、および変数を含む複数の階層的に分類されたマッピングコンポーネントのうちの１つとすることができる。ターゲットアイテムは、ターゲットエレメント、またはソースアイテムのドロップによって自動的に挿入もしくは生成されるコンポーネントとすることができる。
【００２７】
一実施形態によれば、インテリジェントなドロップＡＰＩは、ユーザがソースアイテムをターゲットアイテム上にドロップするときに取られるべき１つ以上のアクションを指示するマッピングルールのセットを定義することができる。各マッピングルールは、ドロップされるソースアイテムとキャッチ側ターゲットアイテムとの組み合わせに対するアクションを定義することができる。
【００２８】
一実施形態によれば、１つ以上のアクションは、ソースエレメントとターゲットエレメントとの間にマッピングが存在しない場合に、ソースエレメントとターゲットエレメントとの間にマッピングを作成するよう、マッピング式を自動的に注入することを含むことができる。マッピング式が既に存在する場合、１つ以上の追加のソースアイテムを、マッピング式にドラッグアンドドロップして、制約および条件を配置し、マッピング式またはその関連アイテムに対する操作をトリガすることができる。追加のソースアイテムは、ソースアプリケーションおよびターゲットアプリケーションのタイプ別にルックアップをブラウズするようユーザを促し、選択されたルックアップ関数にデフォルトのパラメータを自動的に提供することもできる。
【００２９】
一実施形態によれば、マッピングルールがソースおよびターゲットアイテムのレベルで利用可能でない場合、マッピングコンポーネントのより高い分類のためのルールを使用して、ドロップされるソースアイテムおよびキャッチ側ターゲットアイテムについてのアクションをトリガすることができる。ソースアイテムをターゲットアイテムにドラッグアンドドロップして、所望のアクションを実行できない場合、エラーメッセージを生成してユーザに警告することができる。
【００３０】
図３は、一実施形態による、ＩＣＳ設計時にソースエレメントをターゲットエレメントにインテリジェントにマッピングするためのシステムを示す。
【００３１】
図３に示すように、システムは、ソースエレメントとターゲットエレメントとの間に高度なマッピングを作成する際に使用するためのマッピングビルダ３１１を含むことができる。マッピングビルダは、ＩＣＳ開発者がターゲットデータオブジェクト内のターゲットエレメント上でクリックするか、または実際のマッピング上、たとえば、実線上もしくは実際のマッピングのターゲットエレメント上でクリックすると、呼び出すことができるたとえば、図３に示すようなマッピングビルダは、ターゲットデータオブジェクト内の「エレメントＹ」をクリックすることによって呼び出される。
【００３２】
一実施形態によれば、呼び出されたマッピングビルダは、マッパーが開かれるときにロードされるソースデータオブジェクト３１３を含むことができる。ソースデータオブジェクトは、複数のエレメント、たとえばエレメントＡ３１５、エレメントＢ３２１、エレメントＸ３１７およびエレメントＹ３１９を含むことができる。マッピングビルダは、複数のマッピングコンポーネント３２３と、マッピング領域３３３とをさらに含むことができる。
【００３３】
図３にさらに示すように、マッピング領域は、ターゲットエレメントのためのタグ（たとえば<ns2: town>）と、ターゲットエレメントのためにマッピングが存在しないことを示す空の行３３７とを含むことができる。
【００３４】
一実施形態によれば、ＩＣＳ開発者がエレメントＹを空の行にドラッグアンドドロップすると、マッピングビルダは、ドロップされたアイテムとキャッチ側アイテムとをパラメータとして渡すことによって、インテリジェントＡＰＩ３４３を呼び出すことができる（３４５）。インテリジェントなドロップＡＰＩは、ドロップされたアイテムとキャッチ側アイテムとの組み合わせに基づいてマッピング式３３９を生成することによって、空の行を置換できる（３４７）。マッピング式は、ソースエレメントとターゲットエレメントとの間でマッピングを定義するＸＰａｔｈ式であることができる。
【００３５】
一実施形態によれば、複数のマッピングコンポーネントのうちの１つ以上をドラッグしてマッピング式またはマッピング領域の他のアイテム上にドロップすることによって、インテリジェントなドロップＡＰＩをトリガして、１つ以上のマッピングステートメント３４１を生成することができる。マッピングステートメントは、制約または条件を置くことができ、マッピング式またはその関連のアイテム上で操作をトリガすることができ、またはソースアプリケーションおよびターゲットアプリケーションのタイプに基づいてルックアップをブラウズするようにユーザを促すことができる。
【００３６】
アクション／結果
リスト１は、一実施形態による例示的なマッピング式を示す。
<xsl:value-of select=’/ns0:shippingOrder/ns0:deliverTo/cmm:city’/> 
リスト１                                    
リスト１に示すように、マッピング式は、複数のマッピングコンポーネントのうちの１つからのマッピングコンポーネント「value-of（の値）」を含むことができる。マッピングコンポーネントを使用して、選択されたＸＭＬノードの値を抽出し、抽出された値をターゲットエレメントに加えることにより、ソースエレメントとターゲットエレメントとの間にマッピングを作成することができる。
【００３７】
実施形態によれば、上記のように、マッピング式は、ユーザがソースエレメントをターゲットエレメント上にドラッグアンドドロップしたとき、またはユーザがソースエレメントおよびターゲットエレメントを選択してマッピングボタンをクリックしたときに、作成されることができる。
【００３８】
しかしながら、一実施形態によれば、ソースエレメントおよびターゲットエレメントが両方とも反復エレメントである場合、<xsl:for-each>ステートメントをターゲットエレメントの親としてマッピング式を作成することができ、<xsl:for-each>ステートメントの「select」属性は、ソースエレメントのロケーションパスであることができる。
【００３９】
一実施形態によれば、条件を表すマッピングコンポーネント（たとえば<xsl:if>）がマッピング式またはターゲットエレメントに関連する別のアイテム上にドラッグアンドドロップされると、空の親行および条件を自動的にマッピング式の上に挿入することができ、空の親行は、ユーザに対して条件についての値（たとえば真または偽）を指定するようインターフェイスを提供する。マッピングビルダは、指定された値と条件とを使用して、マッピング式に対して完全な条件を定義する親行を生成することができる。
【００４０】
実施形態によれば、関数を表すマッピングコンポーネントがマッピング式にドラッグアンドドロップされると、ドロップされた関数は自動的にマッピング式にラップされる。関数に複数のパラメータがある場合、マッピング式をその値として取ることができる特定のパラメータを選択するようにユーザを促すことができる。
【００４１】
たとえば、ドロップされたマッピングコンポーネントが連結関数である場合、その関数をマッピング式にドロップすることをシステムによって用いることにより、マッピング式をコピーする特定のパラメータを選択するようにユーザに促すことができる。一旦選択されると、ユーザは、別のアイテムを、選択されていない他のパラメータにドラッグアンドドロップすることができ、ドロップされたアイテムをマッピング式と連結して連結ストリングを作成することができる。
【００４２】
一実施形態によれば、ルックアップ関数がマッピング式にドラッグアンドドロップされると、ソースエレメントおよびターゲットエレメントに関連するアプリケーションのタイプによってルックアップをブラウズするようにユーザを促すことができる。ルックアップが選択されると、ルックアップ関数のパラメータは、ソースエレメントおよびターゲットエレメントに関連するアプリケーションにデフォルト設定され得る。
【００４３】
一実施形態によれば、マッピングビルダによって他の使用ケースをサポートすることができる。たとえば、ソース日付エレメントをターゲット日付エレメント上にドロップすると、タイムゾーンオフセット関数を自動的に注入してマッピング式を作成することができる。
【００４４】
一実施形態によれば、表１は、ドラッグされた関数または演算子をキャッチ側ターゲットアイテム上にドロップすることによって生成される例示的なアクションまたは結果を示す。
【００４５】
【表１】
2018517953.tif 000003
【００４６】
表１に示すように、ドラッグされた関数または演算子がキャッチ側ターゲットアイテム上にドロップされた結果としてのアクションまたは結果は、エラーメッセージ、およびドロップ関数または演算子によるキャッチ側アイテムの部分的または完全な置換を含む。
【００４７】
一実施形態によれば、表２および表３は、ドラッグされたフロー制御ステートメントをキャッチ側ターゲットアイテム上にドロップすることによって生じる例示的なアクションまたは結果を示す。
【００４８】
【表２】
2018517953.tif 000004
【００４９】
【表３】
2018517953.tif 000005
【００５０】
表２および表３に示すように、ユーザがターゲットタグまたはＸＳＬステートメントにＸＳＬフロー制御ステートメント、たとえば「xsl:if」、「xsl:choose」または「xsl:for-each」をドロップすると、マッピングビルダは、ＸＳＬフロー制御ステートメントをターゲットタグまたはＸＳＬステートメントの親行として挿入することができる。ＸＳＬフロー制御ステートメントを他のタイプのターゲットアイテム上にドロップすると、エラーを発生し得る。
【００５１】
インテリジェントなドロップＡＰＩ
図４は、一実施形態によるインテリジェントなドロップＡＰＩを示す。
【００５２】
図４に示すように、インテリジェントなドロップＡＰＩは、複数のクラスまたはインターフェイスを含むことができる。マッピングビルダが高度なマッピングを作成するために、クラスまたはインターフェイスを実行時にオブジェクトにインスタンス化してマッピング式またはマッピングステートメントを生成することができる。オブジェクトは、ルールオブジェクト３１５、アクションインターフェイス４１９、アクション列挙オブジェクト４１３、アクションセットオブジェクト４２１、ドロップアンドドロップキーワード（ＤＤＫｗｏｒｄｓ）オブジェクト４１１、マッピングコンポーネント階層オブジェクト４１７、およびマッピングアクションジェネレータオブジェクト４２３を含む。
【００５３】
一実施形態によれば、ルールオブジェクトは、ソースアイテムがターゲットアイテム上にドロップされたときにとられる１つ以上のアクションを各々が指定するルールのセットを定義することができる。アクションインターフェイスオブジェクトは、異なるアクションおよびルールを実行するためのrun（）メソッドを含むことができ、各アクションは、特定のインテリジェントなドロップ機能を達成するためのステップまたは一連のステップを含む。各アクションの構築に対して利用可能なステップは、アクション列挙オブジェクトで定義できる。
【００５４】
例示として、利用可能なステップの１つは、空の親行または子行をマッピング式に挿入するステップである。
【００５５】
一実施形態によれば、アクションセットオブジェクトは、目標を達成するために順次実行される一連のアクションを定義することができ、第１のアクションの結果は次のアクションのキャッチ側アイテムとして渡すことができる。マッピングコンポーネント階層オブジェクトは、上述したマッピングコンポーネントの階層的カテゴリ化/分類を定義することができる。ＤＤＫｗｏｒｄｓオブジェクトは、マッピングコンポーネントの分類/カテゴリのためにキーワード（たとえば、STATEMENT（ステートメント）、FLOW_CONTROL（フロー制御）、EXPRESSION（式）、およびFUNCTION（関数））を提供できる。
【００５６】
たとえば、ＤＤＫｗｏｒｄｓオブジェクトは、「concat（）」に対する「FUNCTION」キーワードを関数として使用でき、それは「EXPRESSION」のカテゴリの一部である。
【００５７】
実行時、マッピングアクションジェネレータオブジェクトは、ルールオブジェクトで定義されたルール、アクション列挙オブジェクトで定義されたアクション、およびマッピングコンポーネント階層オブジェクトで定義されたマッピングコンポーネントの階層的カテゴリをロードすることができる。パラメータとして渡される、ドロップされたアイテムおよびキャッチ側アイテムに基づいて、マッピングアクションジェネレータオブジェクトはルールオブジェクトを調べて、１つ以上のアクションを呼び出す際に使用する適用可能なルールを判断できる。
【００５８】
一実施形態によれば、適用可能なルールを判断する際に、マッピングアクションジェネレータオブジェクトは、ドロップされたアイテムおよびキャッチ側アイテムを各ルールと比較することができる。評価されている特定のルールがドロップされたアイテムおよびキャッチ側アイテムの特定の対に適用できない場合、ドロップされたアイテムおよびキャッチ側アイテムの対に上位の分類で適用可能なルールを使用できる。
【００５９】
たとえば、キャッチ側アイテム（キャッチャー）が「<xsl:value-of>」であり、ドロップされたアイテム（ドラッグ可能なアイテム）が「concat（）」である場合、「STATEMENT」（キャッチャー）および「FUNCTION」（ドラッグ可能なアイテム）に対するルールを使用でき、なぜならば、キャッチ側アイテム「<xsl:value-of>」はステートメントであり、ドロップされたアイテム「concat（）」は関数であるからである。
【００６０】
図５Ａ〜図５Ｂは、一実施形態による、ＩＣＳ設計時におけるドロップされるアイテムとキャッチ側アイテムとの間におけるマッピング式の自動注入を示す。
【００６１】
図１３Ａに示すように、マッピングビルダは、ユーザがターゲットエレメント（たとえばtown（町））をクリックすると呼び出される。ターゲットエレメントに対するマッピングが存在しないため、マッピングビルダは、ターゲットエレメントに対して、「ここに…をドラッグアンドドロップまたは入力」で示されるように、空の子行を自動的に挿入する。
【００６２】
図５Ｂにおいて、ユーザまたはＩＣＳ開発者がソースアイテム（たとえばcity（都市））をターゲットアイテム（すなわち空の子行）にドラッグアンドドロップすると、空の子行と置き換えるようマッピング式が自動的に生成される。
【００６３】
図６Ａ〜図６Ｃは、一実施形態による、関数がマッピング式にドラッグアンドドロップされる場合のマッピングビルダによるアクションを示す。
【００６４】
図６Ａは、「if」関数がマッピング式にドラッグアンドドロップされていることを示す。図６Ｂは、マッピング式に「if」関数をドロップすることにより、条件ステートメントを生成し、ユーザが条件ステートメントのために値を指定できる空の行を生成することを示す。図６Ｃは、条件ステートメントに対して値を指定した後、マッピング式のために条件を設定するマッピングステートメントを作成できることを示す。
【００６５】
図７Ａ〜図７Ｂは、一実施形態に従い、ソースアイテムが不適切にドラッグアンドドロップされるときにマッピングビルダがエラーを生じ得ることを示す。
【００６６】
図７Ａは、「concat（）」関数がターゲットエレメントタグの空の親行にドラッグアンドドロップされているのを示す（たとえば<ns2:town）。マッピングビルダは、「concat（）」関数によって生成された値をどこに割り当てるかを知らないので、図１５Ｂに示すように、ドラッグアンドドロップ操作が無効であることをユーザに警告するエラーが生成され得る。
【００６７】
図８は、一実施形態による、ＩＣＳ設計時にソースエレメントをターゲットエレメントにインテリジェントにマッピングする方法を示す。
【００６８】
同図に示すように、ステップ８１１においては、マイクロプロセッサを含むコンピュータ上で実行される統合クラウドサービスが提供され、統合クラウドサービスは、ソースアプリケーションとターゲットアプリケーションとの間に統合フローを作成するためのウェブインターフェイスアプリケーションと、統合フローを実行するためのランタイムとを含む。
【００６９】
ステップ８１３において、ウェブインターフェイスアプリケーションは、ソースアプリケーションに関連付けられ、１つ以上のソースエレメントを含むソースデータオブジェクトと、ターゲットアプリケーションに関連付けられ、１つ以上のターゲットエレメントを含むターゲットデータオブジェクトと、複数のマッピングコンポーネントとを表示するよう構成される。
【００７０】
ステップ８１５において、ターゲットエレメントのためのマッピング領域がウェブインターフェイスアプリケーションに表示され、マッピング領域は、ソースエレメントとターゲットエレメントとの間においてマッピングを定義するマッピング式を含む。
【００７１】
ステップ８１７において、マッピング領域は、ドラッグアンドドロップされたマッピングコンポーネントを受け取る。
【００７２】
ステップ８１９において、複数のルールに従って１つ以上のアクションを定義するアプリケーションプログラミングインターフェイス（ＡＰＩ）を使用して、ソースエレメントとターゲットエレメントとの間のマッピングを修正するために、１つ以上のマッピングステートメントが生成される。
【００７３】
本発明の実施形態は、本明細書の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリ、および/またはコンピュータ読取可能記憶媒体を含む、１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。適切なソフトウェアコーディングは、ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて熟練したプログラマーによって容易に準備することができる。
【００７４】
いくつかの実施形態では、本発明は、本発明のプロセスのうちのいずれかを実行するようにコンピュータをプログラミングするために使用され得る命令を格納する、非一時的記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品を含む。記憶媒体の例は、フロッピー（登録商標）ディスク、光ディスク、DVD、CD-ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム（分子メモリICを含む）、または命令および/もしくはデータを格納するのに適した任意のタイプの媒体もしくはデバイスを含み得るが、それらに限定はされない。
【００７５】
本発明の実施形態の前述の説明は、例示および説明のために提供されたものである。それは、包括的であること、または開示された形態そのものに本発明を限定することを意図するものではない。多くの当業者には多くの修正および変形が明らかであろう。修正および変形は、開示された特徴の任意の関連する組み合わせを含む。実施形態は、本発明の原理およびその実際的な適用を最もよく説明するために選択および記載され、それにより、他の当業者が、本発明を、様々な実施形態について、および意図された特定の用途に適した様々な修正とともに、理解できるようにする。
【図１】
2018517953.tif 000006
【図２】
2018517953.tif 000007
【図３】
2018517953.tif 000008
【図４】
2018517953.tif 000009
【図５Ａ】
2018517953.tif 000010
【図５Ｂ】
2018517953.tif 000011
【図６Ａ】
2018517953.tif 000012
【図６Ｂ】
2018517953.tif 000013
【図６Ｃ】
2018517953.tif 000014
【図７Ａ】
2018517953.tif 000015
【図７Ｂ】
2018517953.tif 000016
【図８】
2018517953.tif 000017
【国際調査報告】
2018517953.tif 000018
2018517953.tif 000019