(57)【要約】【課題】  外部システムからデータをコピーすることなく外部変更検出を実行する【解決手段】  外部システムからデータをコピーすることなく外部変更検出を実行するシステム、方法、及びコンピュータプログラム製品の実施例が本願で開示される。実施例は、データ選択基準を含む登録要求を外部システムにおけるデータサービスに送信することにより動作する。外部システムは、データ選択基準を満たすデータオブジェクトのトランザクション状態を表す追跡トークンを生成する。実施例は、追跡トークンを受信する。実施例は、追跡トークンを使用して外部システム内のデータオブジェクトの変更を検出する。実施例は、検出に基づき外部システムからデータオブジェクトに対する変更を受信する。実施例は、次いで、データオブジェクトに対する変更を処理する。【選択図】  図１
2019087253.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサにより、登録要求を外部システムにおけるデータサービスに送信するステップであり、前記登録要求はデータ選択基準を含み、前記外部システムは、前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、前記データオブジェクトのトランザクション状態に関連づけられる、ステップと、
前記少なくとも１つのプロセッサにより、前記登録要求を送信したことに応答して前記追跡トークンを受信するステップと、
前記少なくとも１つのプロセッサにより、前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出するステップと、
前記少なくとも１つのプロセッサにより、前記検出に基づき前記外部システムから前記データオブジェクトに対する前記変更を受信するステップと、
前記少なくとも１つのプロセッサにより、前記データオブジェクトに対する前記変更を処理するステップと、
を含む方法。
【請求項２】
前記追跡トークンに基づきコールバックサービスを作成するステップであり、前記データオブジェクトに対する前記変更は、コールバックアドレスを使用して前記外部システムから受信される、ステップ
をさらに含む請求項１に記載の方法。
【請求項３】
前記検出するステップは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信するステップ
をさらに含む、請求項１に記載の方法。
【請求項４】
前記登録要求は、前記外部システムに対するログインクレデンシャルを含む、請求項１に記載の方法。
【請求項５】
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更をＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）データフォーマット又は拡張マークアップ言語（ＸＭＬ）データフォーマットで受信するステップ
をさらに含む、請求項１に記載の方法。
【請求項６】
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信するステップであり、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられたトランザクション順序を示す、ステップ
をさらに含む、請求項１に記載の方法。
【請求項７】
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信するステップ
をさらに含む請求項１に記載の方法。
【請求項８】
メモリと、
前記メモリに結合され、
登録要求を外部システムにおけるデータサービスに送信することであって、前記登録要求はデータ選択基準を含み、前記外部システムは、前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、前記データオブジェクトのトランザクション状態に関連づけられ、
前記登録要求を送信したことに応答して前記追跡トークンを受信し、
前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出し、
前記検出に基づき前記外部システムから前記データオブジェクトに対する前記変更を受信し、
前記データオブジェクトに対する前記変更を処理する
ように構成された少なくとも１つのプロセッサと、
を含むシステム。
【請求項９】
前記少なくとも１つのプロセッサは、
前記追跡トークンに基づきコールバックサービスを作成することであって、前記データオブジェクトに対する前記変更は、コールバックアドレスを使用して前記外部システムから受信される
ようにさらに構成される、請求項８に記載のシステム。
【請求項１０】
検出するために、前記少なくとも１つのプロセッサは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信する
ようにさらに構成される、請求項８に記載のシステム。
【請求項１１】
前記登録要求は、前記外部システムに対するログインクレデンシャルを含む、請求項８に記載のシステム。
【請求項１２】
前記データオブジェクトに対する前記変更を受信するために、前記少なくとも１つのプロセッサは、
前記データオブジェクトに対する前記変更をＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）データフォーマット又は拡張マークアップ言語（ＸＭＬ）データフォーマットで受信する
ようにさらに構成される、請求項８に記載のシステム。
【請求項１３】
前記データオブジェクトに対する前記変更を受信するために、前記少なくとも１つのプロセッサは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信することであって、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられたトランザクション順序を示す、
ようにさらに構成される、請求項８に記載のシステム。
【請求項１４】
前記少なくとも１つのプロセッサは、
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信する
ようにさらに構成される、請求項８に記載のシステム。
【請求項１５】
命令を記憶させた非一時的コンピュータ読取可能装置であって、前記命令は、少なくとも１つのコンピューティング装置により実行されたときに前記少なくとも１つのコンピューティング装置に、
登録要求を外部システムにおけるデータサービスに送信するステップであり、前記登録要求はデータ選択基準を含み、前記外部システムは、前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、前記データオブジェクトのトランザクション状態に関連づけられる、ステップと、
前記登録要求を送信したことに応答して前記追跡トークンを受信するステップと、
前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出するステップと、
前記検出に基づき前記外部システムから前記データオブジェクトに対する前記変更を受信するステップと、
前記データオブジェクトに対する前記変更を処理するステップと、
を含む動作を実行させる、非一時的コンピュータ読取可能装置。
【請求項１６】
前記動作は、
前記追跡トークンに基づきコールバックサービスを作成するステップであり、前記データオブジェクトに対する前記変更は、コールバックアドレスを使用して前記外部システムから受信される、ステップ
をさらに含む、請求項１５に記載の非一時的コンピュータ読取可能装置。
【請求項１７】
前記検出するステップは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信するステップ
を含む、請求項１５に記載の非一時的コンピュータ読取可能装置。
【請求項１８】
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更をＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）データフォーマット又は拡張マークアップ言語（ＸＭＬ）データフォーマットで受信するステップ
を含む、請求項１５に記載の非一時的コンピュータ読取可能装置。
【請求項１９】
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信するステップであり、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられたトランザクション順序を示す、ステップ
を含む、請求項１５に記載の非一時的コンピュータ読取可能装置。
【請求項２０】
前記動作は、
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信するステップ
をさらに含む、請求項１５に記載の非一時的コンピュータ読取可能装置。
【発明の詳細な説明】
【背景技術】
【０００１】
ソフトウェアシステム（例えば、顧客関係管理（ＣＲＭ）システム）は、ソフトウェアシステム内の処理及び動作を呼び出す、外部システム内の変更及びイベントを検出する必要があり得る。ソフトウェアシステムは、これらの処理の結果を直接的に外部システム内へ書き戻し、あるいは外部変更の一部としてさらなる処理にアクセスする方法をさらに必要とする。例えば、新しい積荷が倉庫に到着し、外部のエンタープライズリソースプランニング（ＥＲＰ）システムに記録されることがある。この新しい積荷は、顧客の注文を充たし得る。ＣＲＭシステムは、顧客に対する通信をトリガするために、このデータ変更についてＥＲＰシステムをポーリングし得る。ＣＲＭシステムは、ＥＲＰシステムからすべての関連データを受信して上記通信を実行し得る。
【０００２】
現在、ソフトウェアシステムは、様々なミドルウェア技術を使用して、外部システム内の変更及びイベントを検出し、結果を外部システム内へ書き戻す。しかし、これらの既存のアプローチは、変更を追跡するために、外部システムに記憶されたデータをソフトウェアシステム内へコピーすることをしばしば要する。さらに、これら既存のアプローチは、外部システムのデータをソフトウェアシステムのために異なるデータフォーマットに変換することをしばしば要する。これは、記憶、ネットワーク帯域幅、及び計算リソースの観点で高価である。さらに、これは、データセキュリティ及びプライバシーを減少させる可能性があり、なぜならば、データが潜在的に２つの異なるエンティティにより２つの別個のシステムで記憶され、管理されるからである。
【０００３】
ゆえに、必要とされるものは、ソフトウェアシステムが外部システムからデータをコピーすることなく外部変更検出を実行する方法である。
【図面の簡単な説明】
【０００４】
添付図面がここで組み込まれ、本明細書の一部を形成する。
【図１】いくつかの実施例による外部変更検出を実行するシステムのブロック図である。
【図２】いくつかの実施例による外部変更検出を実行する処理を示すフローチャートである。
【図３】様々な実施例を実現するために使用できる例示的なコンピュータシステムである。
【０００５】
図面において、同様の参照番号は同一又は類似の要素を一般に示す。さらに、一般に、参照番号の最左桁は、該参照番号が最初に現れた図面を識別する。
【発明を実施するための形態】
【０００６】
外部システムからデータセット全体をコピーすることなく外部データ変更検出を実行するシステム、装置、デバイス、方法、及び／又はコンピュータプログラム製品、及び／又はこれらの組み合わせ及びサブ組み合わせが本明細書において提供される。
【０００７】
図１は、いくつかの実施例による外部変更検出を実行するシステム１００のブロック図である。システム１００は、ネットワーク１０６を介して外部システム１０４に接続されるシステム１０２を含む。当業者により十分理解されるように、システム１０２は、複数の外部システム１０４に接続されてもよい。いくつかの実施例において、システム１０２は、サーバコンピュータ、デスクトップコンピュータ、ラップトップ、タブレット、モバイル装置、ウェアラブル電子装置、又は他の電子装置であり得る。いくつかの他の実施例において、システム１０２は、クラウドコンピューティングのためのソフトウェアプラットフォームでもよい。例えば、システム１０２は、ユーザがインターネットを介してアクセスするアプリケーションを該ユーザがサブスクライブする（subscribes  to）ソフトウェアアズアサービス（Software  as  a  Service；ＳａａＳ）クラウドプラットフォームでもよい。
【０００８】
いくつかの実施例において、外部システム１０４は、サーバコンピュータ、デスクトップコンピュータ、ラップトップ、タブレット、モバイル装置、ウェアラブル電子装置、又は他の電子装置であり得る。いくつかの他の実施例において、外部システム１０４は、クラウドコンピューティングのためのソフトウェアプラットフォームでもよい。
【０００９】
いくつかの実施例において、ネットワーク１０６は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ネットワーク、セルラーネットワーク、又は当業者により十分理解されるような様々な他のタイプのネットワークを含む、任意のネットワーク又はネットワークの組み合わせであり得る。
【００１０】
いくつかの実施例において、システム１０２は、ホストアプリケーション１０８を含む。ホストアプリケーション１０８は、外部システム１０４内の変更及びイベントを検出することに関心のある任意タイプのアプリケーションであり得る。例えば、ホストアプリケーション１０８は、システム１０２上で現在実行している顧客関係管理（ＣＲＭ）アプリケーションでもよい。
【００１１】
いくつかの実施例において、ホストアプリケーション１０８は、ウェブブラウザ内部で実行するように設計されたウェブアプリであり得る。いくつかの他の実施例において、ホストアプリケーション１０８は、サーバコンピュータ、デスクトップコンピュータ、又は他のタイプの電子装置上で実行するように設計されたソフトウェアアプリケーションでもよい。当業者により十分理解されるように、ホストアプリケーション１０８は、別のタイプのソフトウェアアプリケーションでもよい。
【００１２】
いくつかの実施例において、外部システム１０４は、記録ストア（record  store）１１４に１つ以上のデータオブジェクトを記憶することができる。記録ストア１１４は、データベース又は他のタイプのデータストアであり得る。データオブジェクトは、データの項目又は集合であり得る。例えば、データオブジェクトは、エンタープライズリソースプランニング（ＥＲＰ）アプリケーションに対する購入請求データオブジェクトでもよい。当業者により十分理解されるように、データオブジェクトは、様々な他のタイプのデータでもよい。
【００１３】
いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４に記憶されたデータを処理する必要があり得る。例えば、いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４に記憶されたデータオブジェクトに対する変更を検出し、処理したい場合がある。例えば、ホストアプリケーション１０８は、新しいデータオブジェクトが外部システム１０４上で作成されたことを示すイベントを検出したい場合がある。当業者により十分理解されるように、ホストアプリケーション１０８は、様々な他のタイプのイベントを検出したい場合がある。ホストアプリケーション１０８は、さらに、外部システム１０４に対する変更を処理した結果を書き戻したい場合がある。
【００１４】
いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４における外部データ変更の一部として記録ストア１１６に記憶されたデータにアクセスすることができる。例えば、いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４における外部データ変更の一部として記録ストア１１６内の１つ以上のデータオブジェクトにアクセスしてもよい。記録ストア１１６は、データベース又は他のタイプのデータストアであり得る。
【００１５】
いくつかの実施例において、ホストアプリケーション１０８は、ミドルウェアソフトウェアを使用して、外部システム１０４に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。いくつかの実施例において、ミドルウェアソフトウェアは、別個のソフトウェアアプリケーション間のリンクを提供するソフトウェアレイヤである。例えば、ミドルウェアソフトウェアは、あるデータベースに含まれるデータが別のものを通してアクセスされることを可能にし得る。
【００１６】
いくつかの実施例において、ミドルウェアソフトウェアは、ホストアプリケーション１０８が外部システム１０４内のデータに対する変更を検出することを可能にし得る。しかし、これは、外部システム１０４のデータをホストアプリケーション１０８内へコピーすることをしばしば必要とする。これは、記憶、ネットワーク帯域幅、及び計算リソースの観点で高価である。さらに、これは、データセキュリティ及びプライバシーを減少させる可能性があり、なぜならば、データが潜在的に２つの異なるエンティティにより２つの別個のシステムで記憶され、管理されるからである。
【００１７】
しかしながら、いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４のデータをホストアプリケーション１０８内へコピーすることなく、外部システム１０４に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。さらに、ホストアプリケーション１０８は、データオブジェクトをホストアプリケーション１０８のために異なるデータフォーマットに変換する必要なく、外部システム１０４に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。例えば、いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４により生成される追跡トークンを使用して、外部システム１０４に記憶されたデータオブジェクトに対する変更を検出し、処理してもよい。いくつかの実施例において、ホストアプリケーション１０８は、追跡トークンを使用して、データオブジェクトに対する変更を処理した結果を外部システム１０４に任意選択で書き戻してもよい。これは、記憶、ネットワーク帯域幅、及び計算リソース要件を低減させる可能性がある。これは、データセキュリティ及びプライバシーをさらに増加させる可能性があり、なぜならば、外部システム１０４のデータがホストアプリケーション１０８内へコピーされないからである。
【００１８】
外部システム１０４のデータをホストアプリケーション１０８内へコピーすることを回避するいくつかの実施例において、ホストアプリケーション１０８は、記録ストア１１４内の利用可能な１つ以上のデータオブジェクトを問い合わせ、操作する、例えば、１つ以上のデータオブジェクトに対してＣＲＵＤオペレーション（作成、読み取り、更新、及び削除）を実行する方法を提供する、外部システム１０４におけるデータサービスに最初登録することができる。いくつかの実施例において、データサービスは、オープンデータ（ＯＤａｔａ）プロトコルに基づくことができる。しかしながら、当業者により十分理解されるように、データサービスは、様々な他のタイプのデータアクセスプロトコルに基づいてもよい。応答において、ホストアプリケーション１０８は、外部システム１０４から追跡トークンを受信することができる。
【００１９】
いくつかの実施例において、追跡トークンは、外部システム１０４内の１つ以上のデータオブジェクトのトランザクション状態を表すことができる。いくつかの実施例において、追跡トークンは、特定のユーザのための１つ以上のデータオブジェクトのトランザクション状態を表してもよい。ホストアプリケーション１０８は、追跡トークンを使用して、外部システム１０４に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。ホストアプリケーション１０８は、さらに、追跡トークンを使用して、データオブジェクトに対する変更を処理した結果を外部システム１０４に書き戻してもよい。
【００２０】
いくつかの実施例において、ホストアプリケーション１０８は、登録要求をデータサービスに送信することにより、データサービスに登録することができる。いくつかの実施例において、ホストアプリケーション１０８は、「http://host/service/」などの特定のユニフォームリソースロケータ（ＵＲＬ）で登録要求をデータサービスに送信してもよい。いくつかの実施例において、登録要求は、データ選択基準を含むことができる。データ選択基準は、ホストアプリケーション１０８が追跡することに関心のある１つ以上のデータオブジェクトを指定することができる。
【００２１】
いくつかの実施例において、データ選択基準は、ホストアプリケーション１０８が追跡することに関心のある１つ以上のデータオブジェクトを明示的にリストアップしてもよい。例えば、ＯＤａｔａプロトコルを使用するいくつかの実施例において、データ選択基準は、記録ストア１１４内のデータオブジェクトのデータオブジェクト識別子、又は記録ストア１１４内のデータオブジェクトの集合の集合名を明示的にリストアップしてもよい。
【００２２】
いくつかの実施例において、データ選択基準は、ホストアプリケーション１０８が追跡することに関心のある１つ以上のデータオブジェクトを選択するフィルタを含むことができる。例えば、ＯＤａｔａプロトコルを使用するいくつかの実施例において、データ選択基準は、フィルタクエリを含んでもよい。いくつかの実施例において、外部システム１０４は、フィルタクエリを満たす（例えば、フィルタクエリ内の１つ以上のプレディケート表現（predicate  expressions）を満たす）、記録ストア１１４内の１つ以上のデータオブジェクトを選択することができる。例えば、いくつかの実施例において、フィルタクエリは、１つ以上のビジネスルール又はパラメータに基づくことができる。当業者により十分理解されるように、データ選択基準は、１つ以上のデータオブジェクトのリスト、及び／又はフィルタを含んでもよい。
【００２３】
いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４のデータサービスに登録するために、外部システム１０４にログインする必要があり得る。さらに、いくつかの実施例において、ホストアプリケーション１０８は、ログインしたユーザのために、外部システム１０４に記憶されたデータオブジェクトに対する変更を検出し、処理したい場合がある。ゆえに、いくつかの実施例において、ホストアプリケーション１０８は、ユーザのログインクレデンシャルを含む登録要求をデータサービスに送信することができる。
【００２４】
いくつかの実施例において、ホストアプリケーション１０８は、クレデンシャルデータベース１１０からのユーザのログインクレデンシャルにアクセスすることができる。外部システム１０４は、次いで、ログインクレデンシャルに基づきホストアプリケーション１０８を認証することができる。
【００２５】
いくつかの実施例において、クレデンシャルデータベース１１０は、システム１０２上のデータベース又は様々な他のタイプのデータストアであり得る。クレデンシャルデータベース１１０は、ユーザ名、パスワード、暗号化キー、証明書、及び当業者により十分理解されるような他のデータなどのクレデンシャルを記憶することができる。
【００２６】
いくつかの実施例において、外部システム１０４は、ホストアプリケーション１０８が外部システム１０４上のデータサービスに登録したことに応答して追跡トークンを生成することができる。いくつかの実施例において、追跡トークンは一意識別子であり得る。例えば、いくつかの実施例において、追跡トークンは一意ＵＲＬでもよい。
【００２７】
いくつかの実施例において、追跡トークンは、特定のユーザのための記録ストア１１４内の１つ以上のデータオブジェクトのトランザクション状態を表す。いくつかの実施例において、１つ以上のデータオブジェクトのトランザクション状態は、特定のトランザクション時間における特定のユーザのための１つ以上のデータオブジェクトのデータ状態を表し、例えば、ホストアプリケーション１０８による１つ以上のデータオブジェクトのクエリである。当業者により十分理解されるように、外部システム１０４は、様々なデータ構造及び方法を使用して、１つ以上のデータオブジェクトのトランザクション状態を追跡トークンにマッピングしてもよい。
【００２８】
いくつかの実施例において、外部システム１０４は、登録要求内のデータ選択基準に基づき、追跡トークンに関連づけられる１つ以上のデータオブジェクトを選択する。さらに、いくつかの実施例において、外部システム１０４は、登録処理の間に外部システム１０４にログインしたユーザに基づき、追跡トークンに関連づけられる１つ以上のデータオブジェクトを選択する。当業者により十分理解されるように、外部システム１０４は、データ選択基準及び／又は登録処理の間に外部システム１０４にログインしたユーザに基づき、追跡トークンに関連づけられる１つ以上のデータオブジェクトを選択してもよい。
【００２９】
いくつかの実施例において、登録の後、ホストアプリケーションは、外部システム１０４から追跡トークンを受信する。いくつかの実施例において、ホストアプリケーション１０８は、追跡トークンを使用して、登録処理において選択された１つ以上のデータオブジェクトに対する変更を検出し、処理することができる。ホストアプリケーション１０８は、さらに、追跡トークンを使用して、１つ以上のデータオブジェクトに対する変更を処理した結果を外部システム１０４に書き戻してもよい。
【００３０】
いくつかの実施例において、ホストアプリケーション１０８は、追跡トークンを使用して外部システム１０４におけるデータサービスをポーリングすることにより、登録処理において選択された１つ以上のデータオブジェクトに対する変更を検出し、処理することができる。いくつかの他の実施例において、ホストアプリケーション１０８は、追跡トークンに基づきシステム１０２におけるコールバックアドレスを確立することにより、登録処理において選択された１つ以上のデータオブジェクトに対する変更を検出し、処理してもよい。換言すると、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更をサブスクライブすることができる。いくつかの実施例において、ホストアプリケーション１０８は、ホストアプリケーション１０８がポーリングするか又はサブスクライブするかを登録要求内に示すことができる。
【００３１】
外部システム１０４におけるデータサービスをポーリングすることに基づくいくつかの実施例において、ホストアプリケーション１０８は、データ変更要求を外部システム１０４に送信することにより、登録処理において選択された１つ以上のデータオブジェクトに対する変更を検出し、処理することができる。いくつかの実施例において、データ変更要求は、ホストアプリケーション１０８のユーザによる最後のトランザクションの後の、登録処理において選択された１つ以上のデータオブジェクトに対する変更を返すように、外部システム１０４をトリガすることができる。
【００３２】
いくつかの実施例において、データ変更要求は、追跡トークンを含むことができる。いくつかの他の実施例において、追跡トークンが一意ＵＲＬである場合、ホストアプリケーション１０８は、データ変更要求を追跡トークンに送信してもよい。
【００３３】
いくつかの実施例において、ホストアプリケーション１０８は、周期的スケジュールに基づきデータ変更要求を外部システム１０４に送信することができる。例えば、ホストアプリケーション１０８は、外部システム１０４を１０分毎にポーリングすることができる。当業者により十分理解されるように、ホストアプリケーション１０８は、様々な他の時間間隔で外部システム１０４をポーリングしてもよい。
【００３４】
いくつかの他の実施例において、ホストアプリケーション１０８は、追跡トークンに基づきシステム１０２におけるコールバックアドレスを確立することにより、登録処理において選択された１つ以上のデータオブジェクトに対する変更を検出し、処理することができる。例えば、いくつかの実施例において、ホストアプリケーション１０８は、ホストアプリケーション１０８が登録処理において選択された１つ以上のデータオブジェクトに対する変更をサブスクライブすることを登録要求内に示すことができる。さらに、いくつかの実施例において、ホストアプリケーション１０８は、追跡トークンに基づきコールバックサービスを作成してもよい。
【００３５】
いくつかの実施例において、ホストアプリケーション１０８は、システム１０２上でデータサービスを作成することによりコールバックサービスを作成することができる。いくつかの実施例において、データサービスは、追跡トークンに基づき生成された一意ＵＲＬとして表されてもよい。
【００３６】
いくつかの実施例において、ホストアプリケーション１０８は、コールバックサービスを介して外部システム１０４とホストアプリケーション１０８との間で送信されるデータを暗号化することができる。例えば、いくつかの実施例において、ホストアプリケーション１０８は、コールバックサービスを介して送信されるデータを暗号化するために、外部システム１０２との間で１つ以上の暗号化キーを交換してもよい。
【００３７】
いくつかの実施例において、ホストアプリケーション１０８に関連づけられたコールバックサービスは、登録処理において選択された１つ以上のデータオブジェクトに対する変更を、これらが外部システム１０４で発生したとき、受信することができる。これは、外部システム１０４の不要なポーリングを回避する可能性がある。
【００３８】
いくつかの実施例において、ポーリング及びサブスクライブの双方について、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更をＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）データフォーマットで受信することができる。いくつかの他の実施例において、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに対する変更を拡張マークアップ言語（Extensible  Markup  Language；ＸＭＬ）データフォーマットで受信することができる。当業者により十分理解されるように、ホストアプリケーション１０８は、変更を様々な他のデータフォーマットで受信してもよい。
【００３９】
いくつかの実施例において、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更を一連のトランザクションとして受信することができる。例えば、いくつかの実施例において、ホストアプリケーション１０８は、ホストアプリケーション１０８が外部システム１０４とのトランザクションを最後に完了した後（例えば、ホストアプリケーション１０８が外部システム１０４のデータサービスをポーリングし、あるいはコールバックサービスを介して１つ以上のデータオブジェクトに対する変更を受信して以降）の、登録処理において選択されたデータオブジェクトに対する各々の追加、更新、及び削除を受信することができる。
【００４０】
いくつかの実施例において、外部システム１０４におけるデータサービスをポーリングすることに基づき、外部システム１０４は、ホストアプリケーション１０８がデータ変更要求に関連づけられた追跡トークンを使用して外部システム１０４とのトランザクションを最後に完了した後、登録処理において選択された１つ以上のデータオブジェクトに対してどの変更が発生したかを決定することができる。いくつかの他の実施例において、外部システム１０４をサブスクライブするシステム１０２に基づき、外部システム１０４は、外部システム１０４がコールバックサービスに関連づけられた追跡トークンを使用して変更をシステム１０２に最後に送信した後、登録処理において選択された１つ以上のデータオブジェクトに対してどの変更が発生したかを決定することができる。
【００４１】
いくつかの実施例において、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更が外部システム１０４上で実行された順序を決定することができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに対する受信した変更が外部システム１０４上で実行された順序を、データオブジェクトに対する変更に関連づけられたトランザクション識別子に基づき決定することができる。いくつかの他の実施例において、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに対する変更が外部システム１０４上で実行された順序を、これらの相対的な受信順序に基づき決定してもよい。
【００４２】
いくつかの実施例において、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに関連づけられた１つ以上の変更タイプに基づき、１つ以上のデータオブジェクトに対して行われた変更のタイプ（例えば、追加、更新、又は削除）を決定することができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに関連づけられた１つ以上のデータタイプに基づき、１つ以上のデータオブジェクトのデータタイプを決定することができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに関連づけられた１つ以上のデータサイズに基づき、１つ以上のデータオブジェクトのサイズを決定することができる。当業者により十分理解されるように、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに関連づけられたメタデータに基づき、１つ以上のデータオブジェクトに対して行われた変更に関する様々な他の情報を決定することができる。
【００４３】
いくつかの実施例において、ホストアプリケーション１０８は、ソフトウェア拡張（software  extension）１１２を使用して、１つ以上のデータオブジェクトに対して行われた変更を第１のデータフォーマットから第２のデータフォーマットにコンバートすることができる。これは、ホストアプリケーション１０８のユーザがデータオブジェクトに対する変更をより容易に閲覧し、修正することを可能にし得る。例えば、ホストアプリケーション１０８は、ソフトウェア拡張１１２を使用して、ＪＳＯＮフォーマットで記憶された購入請求データオブジェクトに対する変更を、ＥＲＰベンダデータフォーマットで記憶された購入請求データオブジェクトにコンバートしてもよい。当業者により十分理解されるように、ホストアプリケーション１０８は、異なるソフトウェア拡張１１２を使用して、変更を異なるタイプのデータオブジェクトにコンバートしてもよい。
【００４４】
いくつかの実施例において、外部システム１０４は、ホストアプリケーション１０８との不活動の期間の後、追跡トークンを自動的に無効化することができる。このタイムアウトは、ホストアプリケーション１０８が登録処理において選択された１つ以上のデータオブジェクトに対する変更をさらに追跡することを防止し得る。このタイムアウトは、さらに、登録処理において選択された１つ以上のデータオブジェクトに対する変更の追跡を維持するために必要とされる記憶及び計算リソースを低減させる可能性がある。最後、このタイムアウトは、登録処理において選択された１つ以上のデータオブジェクトの、あり得る承認されていないアクセスを低減させる可能性がある。
【００４５】
いくつかの実施例において、ポーリング及びサブスクライブの双方について、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに対する変更を処理することができる。当業者により十分理解されるように、この処理は、ホストアプリケーション１０８に固有であり得る。処理に応答して、いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の機能を実行し、かつ／あるいは１つ以上の結果を生成することができる。
【００４６】
いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果を直接的に外部システム１０４に書き戻すことができる。例えば、いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果を含むデータ更新要求を外部システム１０４に送信してもよい。いくつかの実施例において、データ更新要求は、１つ以上の結果を外部システム１０４に書き戻す、例えば、登録処理において選択された１つ以上のデータオブジェクトに１つ以上の結果を書き込むように、外部システム１０４をトリガすることができる。
【００４７】
いくつかの実施例において、ホストアプリケーション１０８は、ＯＤａｔａプロトコルを使用して、データ更新要求を外部システム１０４に送信することができる。例えば、ホストアプリケーション１０８は、ＯＤａｔａプロトコルのＰＯＳＴ、ＰＵＴ、又はＰＡＴＣＨオペレーションを使用して、データ更新要求を外部システム１０４に送信してもよい。当業者により十分理解されるように、ホストアプリケーション１０８は、様々な他のデータアクセスプロトコルを使用してデータ更新要求を外部システム１０４に送信してもよい。
【００４８】
いくつかの実施例において、データ更新要求は、追跡トークンを含むことができる。いくつかの他の実施例において、追跡トークンが一意ＵＲＬである場合、ホストアプリケーション１０８は、データ更新要求を追跡トークンに送信してもよい。いくつかの他の実施例において、外部システム１０４をサブスクライブするシステム１０２に基づき、ホストアプリケーション１０８は、コールバックサービスを通してデータ更新要求を送信してもよい。
【００４９】
いくつかの実施例において、ホストアプリケーション１０８は、ＪＳＯＮデータフォーマットを使用して１つ以上の結果を送信することができる。いくつかの他の実施例において、ホストアプリケーション１０８は、１つ以上の結果を拡張マークアップ言語（ＸＭＬ）データフォーマットで送信してもよい。当業者により十分理解されるように、ホストアプリケーション１０８は、１つ以上の結果を様々な他のデータフォーマットで送信してもよい。
【００５０】
いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４が１つ以上の結果を適用する順序を示すことができる。いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４が１つ以上の結果を適用する順序を、１つ以上の結果に関連づけられたトランザクション識別子を使用して示すことができる。いくつかの他の実施例において、ホストアプリケーション１０８は、外部システム１０４が１つ以上の結果を適用する順序を、外部システム１０４に対する１つ以上の結果の相対的な送信順序に基づき示してもよい。
【００５１】
いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果に関連付けられた１つ以上の変更タイプに基づき、１つ以上の結果の変更のタイプを示すことができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果に関連づけられた１つ以上のデータタイプに基づき、１つ以上の結果のデータタイプを示すことができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果に関連づけられた１つ以上のデータサイズに基づき、１つ以上の結果のサイズを示すことができる。当業者により十分理解されるように、ホストアプリケーション１０８は、１つ以上の結果に関連づけられたメタデータを使用して、１つ以上の結果に関する様々な他の情報を示してもよい。
【００５２】
いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４に対する送信の前に、ソフトウェア拡張１１２を使用して、１つ以上の結果を第１のデータフォーマットから第２のデータフォーマットにコンバートすることができる。これは、外部システム１０４が１つ以上の結果により容易にアクセスし、操作することを可能にし得る。当業者により十分理解されるように、ホストアプリケーション１０８は、異なるソフトウェア拡張１１２を使用して、１つ以上の結果を異なるタイプのデータオブジェクトにコンバートしてもよい。
【００５３】
例示として、図１の例示的な実施例によれば、ホストアプリケーション１０８は、外部システム１０４内の変更及びイベントを検出することに関心のあるＣＲＭアプリケーションであり得る。外部システム１０４はＥＲＰシステムであり得る。
【００５４】
例えば、ホストアプリケーション１０８は、データ選択基準及びログインクレデンシャルを含む登録要求を外部システム１０４におけるデータサービスに送信することにより、外部システム１０４に登録することができる。例えば、ホストアプリケーション１０８は、データ選択基準を介して、ホストアプリケーション１０８が外部システム１０４内の購入請求データオブジェクトに関連した変更及びイベントを検出することに関心があることを指定できる。応答において、外部システム１０４は、ログインしたユーザのために外部システム１０４内の購入請求データオブジェクトのトランザクション状態を表す追跡トークンを生成することができる。ホストアプリケーション１０８は、次いで、外部システム１０４から追跡トークンを受信することができる。
【００５５】
ホストアプリケーション１０８が追跡トークンを受信した後、新しい積荷が倉庫に到着し、外部システム１０４に記録され得る。この新しい積荷は、顧客の注文を充たし得る。応答において、外部システム１０４は、記録ストア１１４内に新しい購入請求データオブジェクトを作成することができる。この新しい購入請求データオブジェクトは、管理者により承認される必要があり得る。この例示的な実施例において、管理者は、ホストアプリケーション１０８内で直接、購入請求データオブジェクトを承認し、それにより、管理者が外部システム１０４にログインして承認を実行する必要を除去することができる。
【００５６】
この例示的な実施例において、ホストアプリケーション１０８は、追跡トークンを含むデータ変更要求を外部システム１０４に送信することにより、購入請求オブジェクトの作成を検出することができる。応答において、ホストアプリケーション１０８は、外部システム１０４から、新たに作成された購入請求データオブジェクトを受信することができる。例えば、ホストアプリケーション１０８は、新たに作成された購入請求データオブジェクトをＪＳＯＮデータフォーマットで受信してもよい。ホストアプリケーション１０８は、さらに、新たに作成された購入請求データオブジェクトに関連づけられたメタデータ、例えば、トランザクション識別子、作成変更などの変更のタイプ、データサイズ等を受信することができる。ホストアプリケーション１０８が１つ以上のデータオブジェクトに対する関連した変更だけ受信できるため、外部システム１０４のフルデータがホストアプリケーション１０８にコピーされる必要がない。
【００５７】
この例示的な実施例において、ホストアプリケーション１０８は、受信した変更を処理することができる。例えば、ホストアプリケーション１０８は、新たに作成された購入請求データオブジェクトに関連づけられた顧客との通信をトリガすることができる。さらに、ホストアプリケーション１０８は、管理者からの新たに作成された購入請求データオブジェクトの承認を求め、受信することができる。応答において、ホストアプリケーション１０８は、承認をデータ更新要求において外部システム１０４に送信することができる。外部システム１０４は、次いで、承認を直接、記録ストア１１４に書き戻すことができる。
【００５８】
図１は、ネットワーク１０６を介して外部システム１０４に接続されたシステム１０２を示すが、当業者は、システム１００がさらに全体的にシステム１０２上で実現されてもよいことを理解するであろう。例えば、いくつかの実施例において、ホストアプリケーション１０８、クレデンシャルデータベース１１０、ソフトウェア拡張１１２、及び記録ストア１１４は、システム１０２上で一緒に実現されてもよい。当業者により十分理解されるように、ホストアプリケーション１０８、クレデンシャルデータベース１１０、ソフトウェア拡張１１２、及び記録ストア１１４は、システム１０２上で互いに直接通信することができる。例えば、ホストアプリケーション１０８、クレデンシャルデータベース１１０、ソフトウェア拡張１１２、及び記録ストア１１４は、システム１０２のオペレーティングシステムのプロセス間通信（ＩＰＣ）機構を介して互いに通信してもよい。
【００５９】
図２は、実施例による外部変更検出を実行する方法２００のフローチャートである。方法２００は、ハードウェア（例えば、回路、専用論理、プログラム可能論理、マイクロコード等）、ソフトウェア（例えば、処理装置上で実行する命令）、又はこれらの組み合わせを含み得る処理論理により実行できる。本明細書で提供される開示を実行するためにすべてのステップが必要とされるわけではないことが十分理解されるべきである。さらに、当業者により理解されるように、ステップのいくつかが同時に、又は図２に示される順序と異なる順序で実行されてもよい。
【００６０】
方法２００は、図１を参照して説明されるものとする。しかしながら、方法２００は、その例示的な実施例に限定されない。
【００６１】
２０２において、ホストアプリケーション１０８は、外部システム１０４における変更を検出するために、外部システム１０４のデータサービスに登録する。いくつかの実施例において、ホストアプリケーション１０８は、登録要求を外部システム１０４のデータサービスに送信する。いくつかの実施例において、ホストアプリケーション１０８は、データ選択基準及び／又はログインクレデンシャルを登録要求において外部システム１０４のデータサービスに送信する。いくつかの実施例において、データサービスは、ＯＤａｔａプロトコルを使用することができる。しかしながら、当業者により十分理解されるように、データサービスは、様々な他のデータアクセスプロトコルを使用してもよい。
【００６２】
２０４において、ホストアプリケーション１０８は、外部システム１０４のデータサービスに登録したことに応答して、追跡トークンを受信する。いくつかの実施例において、外部システムは、ホストアプリケーション１０８が外部システム１０４上のデータサービスに登録したことに応答して、追跡トークンを生成することができる。いくつかの実施例において、追跡トークンは一意識別子であり得る。例えば、いくつかの実施例において、追跡トークンは一意ＵＲＬでもよい。
【００６３】
いくつかの実施例において、追跡トークンは、記録ストア１１４内の１つ以上のデータオブジェクトのトランザクション状態を表す。いくつかの実施例において、１つ以上のデータオブジェクトのトランザクション状態は、特定のトランザクション時間における１つ以上のデータオブジェクトのデータ状態を表す。
【００６４】
いくつかの実施例において、外部システム１０４は、登録要求内のデータ選択基準に基づき、追跡トークンに関連づけられる１つ以上のデータオブジェクトを選択することができる。さらに、いくつかの実施例において、外部システム１０４は、登録処理の間に外部システム１０４にログインしたユーザに基づき、追跡トークンに関連づけられる１つ以上のデータオブジェクトを選択することができる。
【００６５】
２０６において、ホストアプリケーション１０８は、追跡トークンを使用して、外部システム１０４内の１つ以上のデータオブジェクトに対する変更を検出する。いくつかの実施例において、ホストアプリケーション１０８は、追跡トークンを使用して外部システム１０４におけるデータサービスをポーリングすることにより、登録処理において選択された１つ以上のデータオブジェクトに対する変更を検出し、処理することができる。いくつかの他の実施例において、ホストアプリケーション１０８は、追跡トークンに基づきシステム１０２におけるコールバックアドレスを確立することにより、登録処理において選択された１つ以上のデータオブジェクトに対する変更を検出し、処理してもよい。
【００６６】
２０８において、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更を受信する。例えば、いくつかの実施例において、ホストアプリケーション１０８は、変更をＪＳＯＮデータフォーマットで受信することができる。いくつかの他の実施例において、ホストアプリケーション１０８は、変更をＸＭＬデータフォーマットで受信してもよい。当業者により十分理解されるように、ホストアプリケーション１０８は、変更を様々な他のデータフォーマットで受信してもよい。
【００６７】
いくつかの実施例において、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更を一連のトランザクションとして受信することができる。例えば、いくつかの実施例において、ホストアプリケーション１０８は、ホストアプリケーション１０８が外部システム１０４とのトランザクションを最後に完了した後の、登録処理において選択されたデータオブジェクトに対する各々の追加、更新、及び削除を受信することができる。
【００６８】
ステップ２１０において、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更を処理する。いくつかの実施例において、ホストアプリケーション１０８は、変更が外部システム１０４上で実行された順序で、変更を処理することができる。これは、ホストアプリケーション１０８が１つ以上のデータオブジェクトに対する変更の順序を決定することを必要としてもよい。
【００６９】
いくつかの実施例において、ホストアプリケーション１０８は、データオブジェクトに対する変更に関連づけられたトランザクション識別子に基づき、１つ以上のデータオブジェクトに対する変更の順序を決定することができる。いくつかの他の実施例において、ホストアプリケーション１０８は、１つ以上のデータオブジェクトに対する変更の順序を、これらの相対的な受信順序に基づき決定してもよい。
【００７０】
いくつかの実施例において、ホストアプリケーション１０８は、登録処理において選択された１つ以上のデータオブジェクトに対する変更を、変更のタイプ、変更に関連づけられたデータタイプ、及び／又は変更のサイズに基づき処理することができる。いくつかの実施例において、ホストアプリケーション１０８は、変更に関連づけられたメタデータに基づき、１つ以上のデータオブジェクトに対して行われた変更に関するこの情報を決定することができる。
【００７１】
いくつかの実施例において、ホストアプリケーション１０８は、ソフトウェア拡張１１２を使用して、１つ以上のデータオブジェクトに対して行われた変更を第１のデータフォーマットから第２のデータフォーマットにコンバートすることができる。これは、ホストアプリケーション１０８のユーザが１つ以上のデータオブジェクトに対する変更をより容易に閲覧し、修正することを可能にし得る。
【００７２】
２１２において、ホストアプリケーション１０８は、追跡トークンに基づき、変更の処理の１つ以上の結果を外部システム１０４のデータサービスに任意選択で送信することができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果を含むデータ更新要求を外部システム１０４に送信することができる。いくつかの実施例において、データ更新要求は、追跡トークンを含むことができる。いくつかの他の実施例において、追跡トークンがＵＲＬである場合、ホストアプリケーション１０８は、データ更新要求を追跡トークンＵＲＬに送信してもよい。いくつかの他の実施例において、外部システム１０４をサブスクライブするシステム１０２に基づき、ホストアプリケーション１０８は、コールバックサービスを通してデータ更新要求を送信してもよい。いくつかの実施例において、データ更新要求は、１つ以上の結果を外部システム１０４に書き戻すように外部システム１０４をトリガすることができる。
【００７３】
いくつかの実施例において、ホストアプリケーション１０８は、外部システム１０４が１つ以上の結果を適用すべき順序を示すことができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果に関連づけられたトランザクション識別子を使用して順序を示すことができる。いくつかの他の実施例において、ホストアプリケーション１０８は、外部システム１０４に対する１つ以上の結果の送信順序に基づき順序を示してもよい。
【００７４】
いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果に関連づけられた１つ以上の変更タイプに基づき、１つ以上の結果の変更のタイプを示すことができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果に関連づけられた１つ以上のデータタイプに基づき、１つ以上の結果のデータタイプを示すことができる。いくつかの実施例において、ホストアプリケーション１０８は、１つ以上の結果に関連づけられた１つ以上のデータサイズに基づき、１つ以上の結果のサイズを示すことができる。当業者により十分理解されるように、ホストアプリケーション１０８は、１つ以上の結果に関連づけられたメタデータを使用して、１つ以上の結果に関する様々な他の情報を示してもよい。
【００７５】
様々な実施例が、例えば、図３に示されるコンピュータシステム３００などの１つ以上のコンピュータシステムを使用して実現できる。コンピュータシステム３００は、例えば、図２の方法２００を実現するために使用できる。例えば、コンピュータシステム３００は、登録要求を外部システムにおけるデータサービスに送信することを実行でき、登録要求はデータ選択基準を含む。コンピュータシステム３００は、追跡トークンを使用して外部システム内のデータオブジェクトに対する変更を検出することをさらに実行できる。コンピュータシステム３００は、本明細書で説明される機能を実行することができる任意のコンピュータであり得る。
【００７６】
コンピュータシステム３００は、本明細書で説明される機能を実行することができる任意の周知のコンピュータであり得る。
【００７７】
コンピュータシステム３００は、１つ以上のプロセッサ（中央処理ユニット又はＣＰＵとも呼ばれる）、例えばプロセッサ３０４などを含む。プロセッサ３０４は、通信インフラストラクチャ又はバス３０６に接続される。
【００７８】
１つ以上のプロセッサ３０４は各々、グラフィックス処理ユニット（ＧＰＵ）でもよい。実施例において、ＧＰＵは、数学的に集中的なアプリケーションを処理するように設計された、特化された電子回路であるプロセッサである。ＧＰＵは、コンピュータグラフィクスアプリケーション、画像、ビデオ等に共通の数学的に集中的なデータなどの、データの大きいブロックの並列処理に対して効率的な並列構造を有し得る。
【００７９】
コンピュータシステム３００は、ユーザ入力／出力インターフェース３０２を通して通信インフラストラクチャ３０６と通信するユーザ入力／出力装置３０３、例えば、モニタ、キーボード、ポインティング装置などをさらに含む。
【００８０】
コンピュータシステム３００は、メイン又はプライマリメモリ３０８、例えば、ランダムアクセスメモリ（ＲＡＭ）などをさらに含む。メインメモリ３０８は、１つ以上のレベルのキャッシュを含んでもよい。メインメモリ３０８は、その中に制御論理（すなわち、コンピュータソフトウェア）及び／又はデータを記憶している。
【００８１】
コンピュータシステム３００は、１つ以上のセカンダリ記憶装置又はメモリ３１０をさらに含むことができる。セカンダリメモリ３１０には、例えば、ハードディスクドライブ３１２及び／又は取外し可能記憶装置若しくはドライブ３１４を含んでもよい。取外し可能記憶ドライブ３１４は、フロッピーディスク、磁気テープドライブ、コンパクトディスクドライブ、光学記憶装置、テープバックアップ装置、及び／又は任意の他の記憶装置／ドライブであり得る。
【００８２】
取外し可能記憶ドライブ３１４は、取外し可能記憶ユニット３１８と対話することができる。取外し可能記憶ユニット３１８は、コンピュータソフトウェア（制御論理）及び／又はデータを記憶させたコンピュータ使用可能又は読取可能記憶装置を含む。取外し可能記憶ユニット３１８は、フロッピーディスク、磁気テープ、コンパクトディスク、ＤＶＤ、光学記憶ディスク、及び／任意の他のコンピュータデータ記憶装置であり得る。取外し可能記憶ドライブ３１４は、周知の仕方で取外し可能記憶ユニット３１８から読み出し、かつ／あるいは取外し可能記憶ユニット３１８に書き込む。
【００８３】
例示的な実施例によれば、セカンダリメモリ３１０は、コンピュータプログラム及び／又は他の命令及び／又はデータがコンピュータシステム３００によりアクセスされることを可能にする他の手段、媒介、又は他のアプローチを含んでよい。こうした手段、媒介、又は他のアプローチには、例えば、取外し可能記憶ユニット３２２及びインターフェース３２０を含むことができる。取外し可能記憶ユニット３２２及びインターフェース３２０の例には、プログラムカートリッジ及びカートリッジインターフェース（例えば、ビデオゲーム装置で見られるものなど）、取外し可能メモリチップ（例えば、ＥＰＲＯＭ又はＰＲＯＭなど）及び関連づけられたソケット、メモリスティック及びＵＳＢポート、メモリカード及び関連づけられたメモリカードスロット、及び／又は任意の他の取外し可能記憶ユニット及び関連づけられたインターフェースを含んでよい。
【００８４】
コンピュータシステム３００は、通信又はネットワークインターフェース３２４をさらに含むことができる。通信インターフェース３２４は、コンピュータシステム３００が（参照番号３２８により個々に及び集合的に参照される）リモート装置、リモートネットワーク、リモートエンティティ等の任意の組み合わせと通信し、対話することを可能にする。例えば、通信インターフェース３２４は、コンピュータシステム３００が通信経路３２６を通じてリモート装置３２８と通信することを可能にすることができ、通信経路３２６は、有線及び／又は無線であり得、通信経路３２６は、ＬＡＮ、ＷＡＮ、インターネット等の任意の組み合わせを含んでよい。制御論理及び／又はデータが、通信経路３２６を介してコンピュータシステム３００に、及びコンピュータシステム３００から送信されてよい。
【００８５】
一実施例において、制御論理（ソフトウェア）を記憶させた有形の非一時的コンピュータ使用可能又は読取可能媒体を含む有形の非一時的装置又は製造品が、本明細書でコンピュータプログラム製品又はプログラム記憶装置としてさらに参照される。これには、これらに限られないが、コンピュータシステム３００、メインメモリ３０８、セカンダリメモリ３１０、及び取外し可能記憶ユニット３１８及び３２２、並びに前述の任意の組み合わせを具現化した有形製造品が含まれる。こうした制御論理は、１つ以上のデータ処理装置（例えば、コンピュータシステム３００など）により実行されたとき、上記データ処理装置に本明細書で説明されたように動作させる。
【００８６】
本開示に含まれる教示に基づき、図３に示されるもの以外のデータ処理装置、コンピュータシステム、及び／又はコンピュータアーキテクチャを使用して本開示の実施例をなし、使用する方法が当業者に明らかになるであろう。詳細に、実施例は、本明細書に説明されるもの以外のソフトウェア、ハードウェア、及び／又はオペレーティングシステム実装で動作することができる。
【００８７】
他のセクションでなく詳細な説明セクションが、特許請求の範囲を解釈するために使用されるよう意図されることが十分理解されるべきである。他のセクションは、発明者により企図されるすべてではないが１つ以上の例示的な実施例を説明することがあり、ゆえに、いかなる方法でも本開示又は別記の特許請求の範囲を限定するようには意図されない。
【００８８】
本開示は、例示的な分野及び適用に対して例示的な実施例を説明するが、開示はそれに限定されないことが理解されるべきである。それに対する他の実施例及び修正が可能であり、本開示の範囲及び主旨の範囲内である。例えば、この段落の一般性を限定することなく、実施例は、図面に例示され、及び／又は本明細書に説明されるソフトウェア、ハードウェア、ファームウェア、及び／又はエンティティに限定されない。さらに、実施例は（本明細書で明示的に説明されるか否かにかかわらず）、本明細書に説明される例を越えた分野及び適用に対して有意な有用性を有する。
【００８９】
実施例が、規定された機能及びその関係の実現を例示する機能構築ブロックを用いて本明細書で説明された。これら機能構築ブロックの境界は、説明の簡便さのために本明細書で任意的に定義されている。規定された機能及び関係（又は、その均等物）が適切に実行される限り、代替的な境界が定義されてよい。さらに、代替的な実施例が、本明細書に説明されるものと異なる順序づけを使用して機能ブロック、ステップ、動作、方法等を実行することができる。
【００９０】
本明細書において、「１つの実施例」、「一実施例」、「一例示的な実施例」、又は同様のフレーズに対する参照は、説明される実施例が特定の特徴、構造、又は特性を含むことがあるが、あらゆる実施例が必ずしも上記特定の特徴、構造、又は特性を含むわけではないことを示す。さらに、こうしたフレーズは、必ずしも同じ実施例を参照するわけではない。さらに、特定の特徴、構造、又は特性が一実施例に関連して説明されたとき、こうした特徴、構造、又は特性を本明細書で明示的に言及又は説明されているか否かにかかわらず他の実施例に組み込むことは、当業者の知識の範囲内である。さらに、いくつかの実施例は、表現「結合された」及び「接続された」をその派生形と共に使用して説明されることがある。これら用語は、必ずしも互いの同義語として意図されない。例えば、いくつかの実施例は、２つ以上の要素が互いに直接物理的又は電気的に接触することを示すために、用語「接続された」及び／又は「結合された」を使用して説明されることがある。しかしながら、用語「結合された」は、２つ以上の要素が互いに直接接触しないが、しかし依然として互いに協働又は対話することをさらに意味することがある。
【００９１】
本開示の幅及び範囲は、上記で説明された例示的な実施例のいずれによっても限定されるべきでなく、別記の特許請求の範囲及びその均等物に従ってのみ定義されるべきである。
【図１】
2019087253.tif 000003
【図２】
2019087253.tif 000004
【図３】
2019087253.tif 000005
【外国語明細書】
2019087253000001.pdf