(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-06
(45)【発行日】2023-02-14
(54)【発明の名称】外部変更検出
(51)【国際特許分類】
G06F 16/17 20190101AFI20230207BHJP
G06F 16/178 20190101ALI20230207BHJP
【FI】
G06F16/17 200
G06F16/178
【外国語出願】
(21)【出願番号】P 2018208247
(22)【出願日】2018-11-05
【審査請求日】2021-11-04
(32)【優先日】2017-11-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506332063
【氏名又は名称】セールスフォース ドット コム インコーポレイティッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ラルフ シュアンデルマイヤー
(72)【発明者】
【氏名】トーマス ポリンジャー
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2000-322306(JP,A)
【文献】特開平06-290125(JP,A)
【文献】米国特許出願公開第2017/0255663(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/10-16/29
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサにより、登録要求を外部システムにおけるデータサービスに送信するステップであり、前記登録要求はデータ選択基準
と前記外部システムに対するログインクレデンシャルとを含み、前記外部システムは、
前記ログインクレデンシャルに対応するユーザのために前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、
前記ログインクレデンシャルに対応する前記ユーザのために前記外部システムにおける前記データオブジェクトのトランザクション状態
を表す、ステップと、
前記少なくとも1つのプロセッサにより、前記登録要求を送信したことに応答して前記追跡トークンを受信するステップと、
前記少なくとも1つのプロセッサにより、前記追跡トークン
に基づきコールバックサービスを作成することにより前記追跡トークンを使用して
前記ユーザのために前記外部システム内の前記データオブジェクトに対する変更を検出するステップと、
前記外部システムとの間で1つ以上の暗号化キーを交換して、前記コールバックサービスを介して前記外部システムと前記少なくとも1つのプロセッサとの間で送信されるデータを暗号化するステップと、
前記少なくとも1つのプロセッサにより、
前記コールバックサービスを介した前記外部システムから
の前記ユーザのための前記データオブジェクトに対する前記変更
と、他の変更に対して前記データオブジェクトに対する前記変更が発生した順序を示すトランザクション順序とを受信するステップと、
前記少なくとも1つのプロセッサにより、
前記トランザクション順序に従って前記ユーザのための前記データオブジェクトに対する前記変更を処理するステップと、
前記少なくとも1つのプロセッサにより、前記追跡トークンに基づき、及び前記コールバックサービスを介した前記処理に応答して、更新を前記外部システムに送信するステップであり、前記追跡トークンは、所定の不活動期間の後に前記外部システムにより無効化される、ステップと、
を含む方法。
【請求項2】
前記検出するステップは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信するステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更をJavaScript Object Notation(JSON)データフォーマット又は拡張マークアップ言語(XML)データフォーマットで受信するステップ
と、
前記データオブジェクトに対する前記変更の前記JSONデータフォーマット又は前記XMLデータフォーマットを、ソフトウェア拡張を使用して異なるデータフォーマットにコンバートするステップと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信するステップであり、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられた
前記トランザクション順序を示す、ステップ
をさらに含む、請求項1に記載の方法。
【請求項5】
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信するステップ
をさらに含む請求項1に記載の方法。
【請求項6】
前記更新を前記外部システムに送信するステップは、
前記更新を前記外部システムにおける前記追跡トークンに送信するステップであり、前記更新は前記データオブジェクトに対する前記変更を含む、ステップ
をさらに含む、請求項1に記載の方法。
【請求項7】
前記更新を前記外部システムに送信するステップは、
前記更新を前記外部システムにおける前記コールバックサービスに送信するステップであり、前記更新は前記データオブジェクトに対する前記変更を含む、ステップ
をさらに含む、請求項1に記載の方法。
【請求項8】
前記データ変更要求は、前記ユーザによる最後のトランザクションの後、及び前記所定の不活動期間の前の、前記データオブジェクトに対するさらなる変更を返すよう前記外部システムをトリガする、請求項2に記載の方法。
【請求項9】
メモリと、
前記メモリに結合され
た少なくとも1つのプロセッサであり、
登録要求を外部システムにおけるデータサービスに送信することであって、前記登録要求はデータ選択基準
と前記外部システムに対するログインクレデンシャルとを含み、前記外部システムは、
前記ログインクレデンシャルに対応するユーザのために前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、
前記外部システムにおける前記データオブジェクトのトランザクション状態
を表し、
前記登録要求を送信したことに応答して前記追跡トークンを受信し、
前記追跡トークンに基づきコールバックサービスを作成することにより前記ユーザのために前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出し、
前記外部システムとの間で1つ以上の暗号化キーを交換して、前記コールバックサービスを介して前記外部システムと前記少なくとも1つのプロセッサとの間で送信されるデータを暗号化し、
前記コールバックサービスを介した前記外部システムから
の前記ユーザのための前記データオブジェクトに対する前記変更
と、他の変更に対して前記データオブジェクトに対する前記変更が発生した順序を示すトランザクション順序とを受信し、
前記トランザクション順序に従って前記ユーザのための前記データオブジェクトに対する前記変更を処理
し、
前記追跡トークンに基づき、及び前記コールバックサービスを介した前記処理に応答して、更新を前記外部システムに送信することであって、前記追跡トークンは、所定の不活動期間の後に前記外部システムにより無効化される
ように構成され
る、少なくとも1つのプロセッサと、
を含むシステム。
【請求項10】
検出するために、前記少なくとも1つのプロセッサは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信する
ようにさらに構成される、請求項
9に記載のシステム。
【請求項11】
前記データオブジェクトに対する前記変更を受信するために、前記少なくとも1つのプロセッサは、
前記データオブジェクトに対する前記変更をJavaScript Object Notation(JSON)データフォーマット又は拡張マークアップ言語(XML)データフォーマットで受信する
ようにさらに構成される、請求項
9に記載のシステム。
【請求項12】
前記データオブジェクトに対する前記変更を受信するために、前記少なくとも1つのプロセッサは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信することであって、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられた
前記トランザクション順序を示す、
ようにさらに構成される、請求項
9に記載のシステム。
【請求項13】
前記少なくとも1つのプロセッサは、
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信する
ようにさらに構成される、請求項
9に記載のシステム。
【請求項14】
前記データ変更要求は、前記ユーザによる最後のトランザクションの後、及び前記所定の不活動期間の前の、前記データオブジェクトに対するさらなる変更を返すよう前記外部システムをトリガする、請求項10に記載のシステム。
【請求項15】
命令を記憶させ
たコンピュータ読取可能
媒体であって、前記命令は、少なくとも1つのコンピューティング装置により実行されたときに前記少なくとも1つのコンピューティング装置に、
登録要求を外部システムにおけるデータサービスに送信する
ことであり、前記登録要求はデータ選択基準
と前記外部システムに対するログインクレデンシャルとを含み、前記外部システムは、
前記ログインクレデンシャルに対応するユーザのために前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、
前記ログインクレデンシャルに対応する前記ユーザのために前記外部システムにおける前記データオブジェクトのトランザクション状態
を表す、
ことと、
前記登録要求を送信したことに応答して前記追跡トークンを受信する
ことと、
前記追跡トークンに基づきコールバックサービスを作成することにより前記ユーザのために前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出する
ことと、
前記外部システムとの間で1つ以上の暗号化キーを交換して、前記コールバックサービスを介して前記外部システムと前記少なくとも1つのプロセッサとの間で送信されるデータを暗号化することと、
前記コールバックサービスを介した前記外部システムから
の前記ユーザのための前記データオブジェクトに対する前記変更
と、他の変更に対して前記データオブジェクトに対する前記変更が発生した順序を示すトランザクション順序とを受信する
ことと、
前記トランザクション順序に従って前記ユーザのための前記データオブジェクトに対する前記変更を処理する
ことと、
前記追跡トークンに基づき、及び前記コールバックサービスを介した前記処理に応答して、更新を前記外部システムに送信することであり、前記追跡トークンは、所定の不活動期間の後に前記外部システムにより無効化される、ことと、
を含む動作を実行させる
、コンピュータ読取可能
媒体。
【請求項16】
前記検出する
ことは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信する
こと
を含む、請求項15に記載
のコンピュータ読取可能
媒体。
【請求項17】
前記データオブジェクトに対する前記変更を受信する
ことは、
前記データオブジェクトに対する前記変更をJavaScript Object Notation(JSON)データフォーマット又は拡張マークアップ言語(XML)データフォーマットで受信する
ことと、
前記データオブジェクトに対する前記変更の前記JSONデータフォーマット又は前記XMLデータフォーマットを、ソフトウェア拡張を使用して異なるデータフォーマットにコンバートすることと、
を含む、請求項15に記載
のコンピュータ読取可能
媒体。
【請求項18】
前記データオブジェクトに対する前記変更を受信する
ことは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信する
ことであり、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられた
前記トランザクション順序を示す、
こと
を含む、請求項15に記載
のコンピュータ読取可能
媒体。
【請求項19】
前記動作は、
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信する
こと
をさらに含む、請求項15に記載
のコンピュータ読取可能
媒体。
【請求項20】
前記データ変更要求は、前記ユーザによる最後のトランザクションの後、及び前記所定の不活動期間の前の、前記データオブジェクトに対するさらなる変更を返すよう前記外部システムをトリガする、請求項16に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【背景技術】
【0001】
ソフトウェアシステム(例えば、顧客関係管理(CRM)システム)は、ソフトウェアシステム内の処理及び動作を呼び出す、外部システム内の変更及びイベントを検出する必要があり得る。ソフトウェアシステムは、これらの処理の結果を直接的に外部システム内へ書き戻し、あるいは外部変更の一部としてさらなる処理にアクセスする方法をさらに必要とする。例えば、新しい積荷が倉庫に到着し、外部のエンタープライズリソースプランニング(ERP)システムに記録されることがある。この新しい積荷は、顧客の注文を充たし得る。CRMシステムは、顧客に対する通信をトリガするために、このデータ変更についてERPシステムをポーリングし得る。CRMシステムは、ERPシステムからすべての関連データを受信して上記通信を実行し得る。
【0002】
現在、ソフトウェアシステムは、様々なミドルウェア技術を使用して、外部システム内の変更及びイベントを検出し、結果を外部システム内へ書き戻す。しかし、これらの既存のアプローチは、変更を追跡するために、外部システムに記憶されたデータをソフトウェアシステム内へコピーすることをしばしば要する。さらに、これら既存のアプローチは、外部システムのデータをソフトウェアシステムのために異なるデータフォーマットに変換することをしばしば要する。これは、記憶、ネットワーク帯域幅、及び計算リソースの観点で高価である。さらに、これは、データセキュリティ及びプライバシーを減少させる可能性があり、なぜならば、データが潜在的に2つの異なるエンティティにより2つの別個のシステムで記憶され、管理されるからである。
【0003】
ゆえに、必要とされるものは、ソフトウェアシステムが外部システムからデータをコピーすることなく外部変更検出を実行する方法である。
【図面の簡単な説明】
【0004】
添付図面がここで組み込まれ、本明細書の一部を形成する。
【
図1】いくつかの実施例による外部変更検出を実行するシステムのブロック図である。
【
図2】いくつかの実施例による外部変更検出を実行する処理を示すフローチャートである。
【
図3】様々な実施例を実現するために使用できる例示的なコンピュータシステムである。
【0005】
図面において、同様の参照番号は同一又は類似の要素を一般に示す。さらに、一般に、参照番号の最左桁は、該参照番号が最初に現れた図面を識別する。
【発明を実施するための形態】
【0006】
外部システムからデータセット全体をコピーすることなく外部データ変更検出を実行するシステム、装置、デバイス、方法、及び/又はコンピュータプログラム製品、及び/又はこれらの組み合わせ及びサブ組み合わせが本明細書において提供される。
【0007】
図1は、いくつかの実施例による外部変更検出を実行するシステム100のブロック図である。システム100は、ネットワーク106を介して外部システム104に接続されるシステム102を含む。当業者により十分理解されるように、システム102は、複数の外部システム104に接続されてもよい。いくつかの実施例において、システム102は、サーバコンピュータ、デスクトップコンピュータ、ラップトップ、タブレット、モバイル装置、ウェアラブル電子装置、又は他の電子装置であり得る。いくつかの他の実施例において、システム102は、クラウドコンピューティングのためのソフトウェアプラットフォームでもよい。例えば、システム102は、ユーザがインターネットを介してアクセスするアプリケーションを該ユーザがサブスクライブする(subscribes to)ソフトウェアアズアサービス(Software as a Service;SaaS)クラウドプラットフォームでもよい。
【0008】
いくつかの実施例において、外部システム104は、サーバコンピュータ、デスクトップコンピュータ、ラップトップ、タブレット、モバイル装置、ウェアラブル電子装置、又は他の電子装置であり得る。いくつかの他の実施例において、外部システム104は、クラウドコンピューティングのためのソフトウェアプラットフォームでもよい。
【0009】
いくつかの実施例において、ネットワーク106は、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク、セルラーネットワーク、又は当業者により十分理解されるような様々な他のタイプのネットワークを含む、任意のネットワーク又はネットワークの組み合わせであり得る。
【0010】
いくつかの実施例において、システム102は、ホストアプリケーション108を含む。ホストアプリケーション108は、外部システム104内の変更及びイベントを検出することに関心のある任意タイプのアプリケーションであり得る。例えば、ホストアプリケーション108は、システム102上で現在実行している顧客関係管理(CRM)アプリケーションでもよい。
【0011】
いくつかの実施例において、ホストアプリケーション108は、ウェブブラウザ内部で実行するように設計されたウェブアプリであり得る。いくつかの他の実施例において、ホストアプリケーション108は、サーバコンピュータ、デスクトップコンピュータ、又は他のタイプの電子装置上で実行するように設計されたソフトウェアアプリケーションでもよい。当業者により十分理解されるように、ホストアプリケーション108は、別のタイプのソフトウェアアプリケーションでもよい。
【0012】
いくつかの実施例において、外部システム104は、記録ストア(record store)114に1つ以上のデータオブジェクトを記憶することができる。記録ストア114は、データベース又は他のタイプのデータストアであり得る。データオブジェクトは、データの項目又は集合であり得る。例えば、データオブジェクトは、エンタープライズリソースプランニング(ERP)アプリケーションに対する購入請求データオブジェクトでもよい。当業者により十分理解されるように、データオブジェクトは、様々な他のタイプのデータでもよい。
【0013】
いくつかの実施例において、ホストアプリケーション108は、外部システム104に記憶されたデータを処理する必要があり得る。例えば、いくつかの実施例において、ホストアプリケーション108は、外部システム104に記憶されたデータオブジェクトに対する変更を検出し、処理したい場合がある。例えば、ホストアプリケーション108は、新しいデータオブジェクトが外部システム104上で作成されたことを示すイベントを検出したい場合がある。当業者により十分理解されるように、ホストアプリケーション108は、様々な他のタイプのイベントを検出したい場合がある。ホストアプリケーション108は、さらに、外部システム104に対する変更を処理した結果を書き戻したい場合がある。
【0014】
いくつかの実施例において、ホストアプリケーション108は、外部システム104における外部データ変更の一部として記録ストア116に記憶されたデータにアクセスすることができる。例えば、いくつかの実施例において、ホストアプリケーション108は、外部システム104における外部データ変更の一部として記録ストア116内の1つ以上のデータオブジェクトにアクセスしてもよい。記録ストア116は、データベース又は他のタイプのデータストアであり得る。
【0015】
いくつかの実施例において、ホストアプリケーション108は、ミドルウェアソフトウェアを使用して、外部システム104に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。いくつかの実施例において、ミドルウェアソフトウェアは、別個のソフトウェアアプリケーション間のリンクを提供するソフトウェアレイヤである。例えば、ミドルウェアソフトウェアは、あるデータベースに含まれるデータが別のものを通してアクセスされることを可能にし得る。
【0016】
いくつかの実施例において、ミドルウェアソフトウェアは、ホストアプリケーション108が外部システム104内のデータに対する変更を検出することを可能にし得る。しかし、これは、外部システム104のデータをホストアプリケーション108内へコピーすることをしばしば必要とする。これは、記憶、ネットワーク帯域幅、及び計算リソースの観点で高価である。さらに、これは、データセキュリティ及びプライバシーを減少させる可能性があり、なぜならば、データが潜在的に2つの異なるエンティティにより2つの別個のシステムで記憶され、管理されるからである。
【0017】
しかしながら、いくつかの実施例において、ホストアプリケーション108は、外部システム104のデータをホストアプリケーション108内へコピーすることなく、外部システム104に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。さらに、ホストアプリケーション108は、データオブジェクトをホストアプリケーション108のために異なるデータフォーマットに変換する必要なく、外部システム104に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。例えば、いくつかの実施例において、ホストアプリケーション108は、外部システム104により生成される追跡トークンを使用して、外部システム104に記憶されたデータオブジェクトに対する変更を検出し、処理してもよい。いくつかの実施例において、ホストアプリケーション108は、追跡トークンを使用して、データオブジェクトに対する変更を処理した結果を外部システム104に任意選択で書き戻してもよい。これは、記憶、ネットワーク帯域幅、及び計算リソース要件を低減させる可能性がある。これは、データセキュリティ及びプライバシーをさらに増加させる可能性があり、なぜならば、外部システム104のデータがホストアプリケーション108内へコピーされないからである。
【0018】
外部システム104のデータをホストアプリケーション108内へコピーすることを回避するいくつかの実施例において、ホストアプリケーション108は、記録ストア114内の利用可能な1つ以上のデータオブジェクトを問い合わせ、操作する、例えば、1つ以上のデータオブジェクトに対してCRUDオペレーション(作成、読み取り、更新、及び削除)を実行する方法を提供する、外部システム104におけるデータサービスに最初登録することができる。いくつかの実施例において、データサービスは、オープンデータ(OData)プロトコルに基づくことができる。しかしながら、当業者により十分理解されるように、データサービスは、様々な他のタイプのデータアクセスプロトコルに基づいてもよい。応答において、ホストアプリケーション108は、外部システム104から追跡トークンを受信することができる。
【0019】
いくつかの実施例において、追跡トークンは、外部システム104内の1つ以上のデータオブジェクトのトランザクション状態を表すことができる。いくつかの実施例において、追跡トークンは、特定のユーザのための1つ以上のデータオブジェクトのトランザクション状態を表してもよい。ホストアプリケーション108は、追跡トークンを使用して、外部システム104に記憶されたデータオブジェクトに対する変更を検出し、処理することができる。ホストアプリケーション108は、さらに、追跡トークンを使用して、データオブジェクトに対する変更を処理した結果を外部システム104に書き戻してもよい。
【0020】
いくつかの実施例において、ホストアプリケーション108は、登録要求をデータサービスに送信することにより、データサービスに登録することができる。いくつかの実施例において、ホストアプリケーション108は、「http://host/service/」などの特定のユニフォームリソースロケータ(URL)で登録要求をデータサービスに送信してもよい。いくつかの実施例において、登録要求は、データ選択基準を含むことができる。データ選択基準は、ホストアプリケーション108が追跡することに関心のある1つ以上のデータオブジェクトを指定することができる。
【0021】
いくつかの実施例において、データ選択基準は、ホストアプリケーション108が追跡することに関心のある1つ以上のデータオブジェクトを明示的にリストアップしてもよい。例えば、ODataプロトコルを使用するいくつかの実施例において、データ選択基準は、記録ストア114内のデータオブジェクトのデータオブジェクト識別子、又は記録ストア114内のデータオブジェクトの集合の集合名を明示的にリストアップしてもよい。
【0022】
いくつかの実施例において、データ選択基準は、ホストアプリケーション108が追跡することに関心のある1つ以上のデータオブジェクトを選択するフィルタを含むことができる。例えば、ODataプロトコルを使用するいくつかの実施例において、データ選択基準は、フィルタクエリを含んでもよい。いくつかの実施例において、外部システム104は、フィルタクエリを満たす(例えば、フィルタクエリ内の1つ以上のプレディケート表現(predicate expressions)を満たす)、記録ストア114内の1つ以上のデータオブジェクトを選択することができる。例えば、いくつかの実施例において、フィルタクエリは、1つ以上のビジネスルール又はパラメータに基づくことができる。当業者により十分理解されるように、データ選択基準は、1つ以上のデータオブジェクトのリスト、及び/又はフィルタを含んでもよい。
【0023】
いくつかの実施例において、ホストアプリケーション108は、外部システム104のデータサービスに登録するために、外部システム104にログインする必要があり得る。さらに、いくつかの実施例において、ホストアプリケーション108は、ログインしたユーザのために、外部システム104に記憶されたデータオブジェクトに対する変更を検出し、処理したい場合がある。ゆえに、いくつかの実施例において、ホストアプリケーション108は、ユーザのログインクレデンシャルを含む登録要求をデータサービスに送信することができる。
【0024】
いくつかの実施例において、ホストアプリケーション108は、クレデンシャルデータベース110からのユーザのログインクレデンシャルにアクセスすることができる。外部システム104は、次いで、ログインクレデンシャルに基づきホストアプリケーション108を認証することができる。
【0025】
いくつかの実施例において、クレデンシャルデータベース110は、システム102上のデータベース又は様々な他のタイプのデータストアであり得る。クレデンシャルデータベース110は、ユーザ名、パスワード、暗号化キー、証明書、及び当業者により十分理解されるような他のデータなどのクレデンシャルを記憶することができる。
【0026】
いくつかの実施例において、外部システム104は、ホストアプリケーション108が外部システム104上のデータサービスに登録したことに応答して追跡トークンを生成することができる。いくつかの実施例において、追跡トークンは一意識別子であり得る。例えば、いくつかの実施例において、追跡トークンは一意URLでもよい。
【0027】
いくつかの実施例において、追跡トークンは、特定のユーザのための記録ストア114内の1つ以上のデータオブジェクトのトランザクション状態を表す。いくつかの実施例において、1つ以上のデータオブジェクトのトランザクション状態は、特定のトランザクション時間における特定のユーザのための1つ以上のデータオブジェクトのデータ状態を表し、例えば、ホストアプリケーション108による1つ以上のデータオブジェクトのクエリである。当業者により十分理解されるように、外部システム104は、様々なデータ構造及び方法を使用して、1つ以上のデータオブジェクトのトランザクション状態を追跡トークンにマッピングしてもよい。
【0028】
いくつかの実施例において、外部システム104は、登録要求内のデータ選択基準に基づき、追跡トークンに関連づけられる1つ以上のデータオブジェクトを選択する。さらに、いくつかの実施例において、外部システム104は、登録処理の間に外部システム104にログインしたユーザに基づき、追跡トークンに関連づけられる1つ以上のデータオブジェクトを選択する。当業者により十分理解されるように、外部システム104は、データ選択基準及び/又は登録処理の間に外部システム104にログインしたユーザに基づき、追跡トークンに関連づけられる1つ以上のデータオブジェクトを選択してもよい。
【0029】
いくつかの実施例において、登録の後、ホストアプリケーションは、外部システム104から追跡トークンを受信する。いくつかの実施例において、ホストアプリケーション108は、追跡トークンを使用して、登録処理において選択された1つ以上のデータオブジェクトに対する変更を検出し、処理することができる。ホストアプリケーション108は、さらに、追跡トークンを使用して、1つ以上のデータオブジェクトに対する変更を処理した結果を外部システム104に書き戻してもよい。
【0030】
いくつかの実施例において、ホストアプリケーション108は、追跡トークンを使用して外部システム104におけるデータサービスをポーリングすることにより、登録処理において選択された1つ以上のデータオブジェクトに対する変更を検出し、処理することができる。いくつかの他の実施例において、ホストアプリケーション108は、追跡トークンに基づきシステム102におけるコールバックアドレスを確立することにより、登録処理において選択された1つ以上のデータオブジェクトに対する変更を検出し、処理してもよい。換言すると、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更をサブスクライブすることができる。いくつかの実施例において、ホストアプリケーション108は、ホストアプリケーション108がポーリングするか又はサブスクライブするかを登録要求内に示すことができる。
【0031】
外部システム104におけるデータサービスをポーリングすることに基づくいくつかの実施例において、ホストアプリケーション108は、データ変更要求を外部システム104に送信することにより、登録処理において選択された1つ以上のデータオブジェクトに対する変更を検出し、処理することができる。いくつかの実施例において、データ変更要求は、ホストアプリケーション108のユーザによる最後のトランザクションの後の、登録処理において選択された1つ以上のデータオブジェクトに対する変更を返すように、外部システム104をトリガすることができる。
【0032】
いくつかの実施例において、データ変更要求は、追跡トークンを含むことができる。いくつかの他の実施例において、追跡トークンが一意URLである場合、ホストアプリケーション108は、データ変更要求を追跡トークンに送信してもよい。
【0033】
いくつかの実施例において、ホストアプリケーション108は、周期的スケジュールに基づきデータ変更要求を外部システム104に送信することができる。例えば、ホストアプリケーション108は、外部システム104を10分毎にポーリングすることができる。当業者により十分理解されるように、ホストアプリケーション108は、様々な他の時間間隔で外部システム104をポーリングしてもよい。
【0034】
いくつかの他の実施例において、ホストアプリケーション108は、追跡トークンに基づきシステム102におけるコールバックアドレスを確立することにより、登録処理において選択された1つ以上のデータオブジェクトに対する変更を検出し、処理することができる。例えば、いくつかの実施例において、ホストアプリケーション108は、ホストアプリケーション108が登録処理において選択された1つ以上のデータオブジェクトに対する変更をサブスクライブすることを登録要求内に示すことができる。さらに、いくつかの実施例において、ホストアプリケーション108は、追跡トークンに基づきコールバックサービスを作成してもよい。
【0035】
いくつかの実施例において、ホストアプリケーション108は、システム102上でデータサービスを作成することによりコールバックサービスを作成することができる。いくつかの実施例において、データサービスは、追跡トークンに基づき生成された一意URLとして表されてもよい。
【0036】
いくつかの実施例において、ホストアプリケーション108は、コールバックサービスを介して外部システム104とホストアプリケーション108との間で送信されるデータを暗号化することができる。例えば、いくつかの実施例において、ホストアプリケーション108は、コールバックサービスを介して送信されるデータを暗号化するために、外部システム102との間で1つ以上の暗号化キーを交換してもよい。
【0037】
いくつかの実施例において、ホストアプリケーション108に関連づけられたコールバックサービスは、登録処理において選択された1つ以上のデータオブジェクトに対する変更を、これらが外部システム104で発生したとき、受信することができる。これは、外部システム104の不要なポーリングを回避する可能性がある。
【0038】
いくつかの実施例において、ポーリング及びサブスクライブの双方について、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更をJavaScript(登録商標) Object Notation(JSON)データフォーマットで受信することができる。いくつかの他の実施例において、ホストアプリケーション108は、1つ以上のデータオブジェクトに対する変更を拡張マークアップ言語(Extensible Markup Language;XML)データフォーマットで受信することができる。当業者により十分理解されるように、ホストアプリケーション108は、変更を様々な他のデータフォーマットで受信してもよい。
【0039】
いくつかの実施例において、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更を一連のトランザクションとして受信することができる。例えば、いくつかの実施例において、ホストアプリケーション108は、ホストアプリケーション108が外部システム104とのトランザクションを最後に完了した後(例えば、ホストアプリケーション108が外部システム104のデータサービスをポーリングし、あるいはコールバックサービスを介して1つ以上のデータオブジェクトに対する変更を受信して以降)の、登録処理において選択されたデータオブジェクトに対する各々の追加、更新、及び削除を受信することができる。
【0040】
いくつかの実施例において、外部システム104におけるデータサービスをポーリングすることに基づき、外部システム104は、ホストアプリケーション108がデータ変更要求に関連づけられた追跡トークンを使用して外部システム104とのトランザクションを最後に完了した後、登録処理において選択された1つ以上のデータオブジェクトに対してどの変更が発生したかを決定することができる。いくつかの他の実施例において、外部システム104をサブスクライブするシステム102に基づき、外部システム104は、外部システム104がコールバックサービスに関連づけられた追跡トークンを使用して変更をシステム102に最後に送信した後、登録処理において選択された1つ以上のデータオブジェクトに対してどの変更が発生したかを決定することができる。
【0041】
いくつかの実施例において、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更が外部システム104上で実行された順序を決定することができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上のデータオブジェクトに対する受信した変更が外部システム104上で実行された順序を、データオブジェクトに対する変更に関連づけられたトランザクション識別子に基づき決定することができる。いくつかの他の実施例において、ホストアプリケーション108は、1つ以上のデータオブジェクトに対する変更が外部システム104上で実行された順序を、これらの相対的な受信順序に基づき決定してもよい。
【0042】
いくつかの実施例において、ホストアプリケーション108は、1つ以上のデータオブジェクトに関連づけられた1つ以上の変更タイプに基づき、1つ以上のデータオブジェクトに対して行われた変更のタイプ(例えば、追加、更新、又は削除)を決定することができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上のデータオブジェクトに関連づけられた1つ以上のデータタイプに基づき、1つ以上のデータオブジェクトのデータタイプを決定することができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上のデータオブジェクトに関連づけられた1つ以上のデータサイズに基づき、1つ以上のデータオブジェクトのサイズを決定することができる。当業者により十分理解されるように、ホストアプリケーション108は、1つ以上のデータオブジェクトに関連づけられたメタデータに基づき、1つ以上のデータオブジェクトに対して行われた変更に関する様々な他の情報を決定することができる。
【0043】
いくつかの実施例において、ホストアプリケーション108は、ソフトウェア拡張(software extension)112を使用して、1つ以上のデータオブジェクトに対して行われた変更を第1のデータフォーマットから第2のデータフォーマットにコンバートすることができる。これは、ホストアプリケーション108のユーザがデータオブジェクトに対する変更をより容易に閲覧し、修正することを可能にし得る。例えば、ホストアプリケーション108は、ソフトウェア拡張112を使用して、JSONフォーマットで記憶された購入請求データオブジェクトに対する変更を、ERPベンダデータフォーマットで記憶された購入請求データオブジェクトにコンバートしてもよい。当業者により十分理解されるように、ホストアプリケーション108は、異なるソフトウェア拡張112を使用して、変更を異なるタイプのデータオブジェクトにコンバートしてもよい。
【0044】
いくつかの実施例において、外部システム104は、ホストアプリケーション108との不活動の期間の後、追跡トークンを自動的に無効化することができる。このタイムアウトは、ホストアプリケーション108が登録処理において選択された1つ以上のデータオブジェクトに対する変更をさらに追跡することを防止し得る。このタイムアウトは、さらに、登録処理において選択された1つ以上のデータオブジェクトに対する変更の追跡を維持するために必要とされる記憶及び計算リソースを低減させる可能性がある。最後、このタイムアウトは、登録処理において選択された1つ以上のデータオブジェクトの、あり得る承認されていないアクセスを低減させる可能性がある。
【0045】
いくつかの実施例において、ポーリング及びサブスクライブの双方について、ホストアプリケーション108は、1つ以上のデータオブジェクトに対する変更を処理することができる。当業者により十分理解されるように、この処理は、ホストアプリケーション108に固有であり得る。処理に応答して、いくつかの実施例において、ホストアプリケーション108は、1つ以上の機能を実行し、かつ/あるいは1つ以上の結果を生成することができる。
【0046】
いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果を直接的に外部システム104に書き戻すことができる。例えば、いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果を含むデータ更新要求を外部システム104に送信してもよい。いくつかの実施例において、データ更新要求は、1つ以上の結果を外部システム104に書き戻す、例えば、登録処理において選択された1つ以上のデータオブジェクトに1つ以上の結果を書き込むように、外部システム104をトリガすることができる。
【0047】
いくつかの実施例において、ホストアプリケーション108は、ODataプロトコルを使用して、データ更新要求を外部システム104に送信することができる。例えば、ホストアプリケーション108は、ODataプロトコルのPOST、PUT、又はPATCHオペレーションを使用して、データ更新要求を外部システム104に送信してもよい。当業者により十分理解されるように、ホストアプリケーション108は、様々な他のデータアクセスプロトコルを使用してデータ更新要求を外部システム104に送信してもよい。
【0048】
いくつかの実施例において、データ更新要求は、追跡トークンを含むことができる。いくつかの他の実施例において、追跡トークンが一意URLである場合、ホストアプリケーション108は、データ更新要求を追跡トークンに送信してもよい。いくつかの他の実施例において、外部システム104をサブスクライブするシステム102に基づき、ホストアプリケーション108は、コールバックサービスを通してデータ更新要求を送信してもよい。
【0049】
いくつかの実施例において、ホストアプリケーション108は、JSONデータフォーマットを使用して1つ以上の結果を送信することができる。いくつかの他の実施例において、ホストアプリケーション108は、1つ以上の結果を拡張マークアップ言語(XML)データフォーマットで送信してもよい。当業者により十分理解されるように、ホストアプリケーション108は、1つ以上の結果を様々な他のデータフォーマットで送信してもよい。
【0050】
いくつかの実施例において、ホストアプリケーション108は、外部システム104が1つ以上の結果を適用する順序を示すことができる。いくつかの実施例において、ホストアプリケーション108は、外部システム104が1つ以上の結果を適用する順序を、1つ以上の結果に関連づけられたトランザクション識別子を使用して示すことができる。いくつかの他の実施例において、ホストアプリケーション108は、外部システム104が1つ以上の結果を適用する順序を、外部システム104に対する1つ以上の結果の相対的な送信順序に基づき示してもよい。
【0051】
いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果に関連付けられた1つ以上の変更タイプに基づき、1つ以上の結果の変更のタイプを示すことができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果に関連づけられた1つ以上のデータタイプに基づき、1つ以上の結果のデータタイプを示すことができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果に関連づけられた1つ以上のデータサイズに基づき、1つ以上の結果のサイズを示すことができる。当業者により十分理解されるように、ホストアプリケーション108は、1つ以上の結果に関連づけられたメタデータを使用して、1つ以上の結果に関する様々な他の情報を示してもよい。
【0052】
いくつかの実施例において、ホストアプリケーション108は、外部システム104に対する送信の前に、ソフトウェア拡張112を使用して、1つ以上の結果を第1のデータフォーマットから第2のデータフォーマットにコンバートすることができる。これは、外部システム104が1つ以上の結果により容易にアクセスし、操作することを可能にし得る。当業者により十分理解されるように、ホストアプリケーション108は、異なるソフトウェア拡張112を使用して、1つ以上の結果を異なるタイプのデータオブジェクトにコンバートしてもよい。
【0053】
例示として、
図1の例示的な実施例によれば、ホストアプリケーション108は、外部システム104内の変更及びイベントを検出することに関心のあるCRMアプリケーションであり得る。外部システム104はERPシステムであり得る。
【0054】
例えば、ホストアプリケーション108は、データ選択基準及びログインクレデンシャルを含む登録要求を外部システム104におけるデータサービスに送信することにより、外部システム104に登録することができる。例えば、ホストアプリケーション108は、データ選択基準を介して、ホストアプリケーション108が外部システム104内の購入請求データオブジェクトに関連した変更及びイベントを検出することに関心があることを指定できる。応答において、外部システム104は、ログインしたユーザのために外部システム104内の購入請求データオブジェクトのトランザクション状態を表す追跡トークンを生成することができる。ホストアプリケーション108は、次いで、外部システム104から追跡トークンを受信することができる。
【0055】
ホストアプリケーション108が追跡トークンを受信した後、新しい積荷が倉庫に到着し、外部システム104に記録され得る。この新しい積荷は、顧客の注文を充たし得る。応答において、外部システム104は、記録ストア114内に新しい購入請求データオブジェクトを作成することができる。この新しい購入請求データオブジェクトは、管理者により承認される必要があり得る。この例示的な実施例において、管理者は、ホストアプリケーション108内で直接、購入請求データオブジェクトを承認し、それにより、管理者が外部システム104にログインして承認を実行する必要を除去することができる。
【0056】
この例示的な実施例において、ホストアプリケーション108は、追跡トークンを含むデータ変更要求を外部システム104に送信することにより、購入請求オブジェクトの作成を検出することができる。応答において、ホストアプリケーション108は、外部システム104から、新たに作成された購入請求データオブジェクトを受信することができる。例えば、ホストアプリケーション108は、新たに作成された購入請求データオブジェクトをJSONデータフォーマットで受信してもよい。ホストアプリケーション108は、さらに、新たに作成された購入請求データオブジェクトに関連づけられたメタデータ、例えば、トランザクション識別子、作成変更などの変更のタイプ、データサイズ等を受信することができる。ホストアプリケーション108が1つ以上のデータオブジェクトに対する関連した変更だけ受信できるため、外部システム104のフルデータがホストアプリケーション108にコピーされる必要がない。
【0057】
この例示的な実施例において、ホストアプリケーション108は、受信した変更を処理することができる。例えば、ホストアプリケーション108は、新たに作成された購入請求データオブジェクトに関連づけられた顧客との通信をトリガすることができる。さらに、ホストアプリケーション108は、管理者からの新たに作成された購入請求データオブジェクトの承認を求め、受信することができる。応答において、ホストアプリケーション108は、承認をデータ更新要求において外部システム104に送信することができる。外部システム104は、次いで、承認を直接、記録ストア114に書き戻すことができる。
【0058】
図1は、ネットワーク106を介して外部システム104に接続されたシステム102を示すが、当業者は、システム100がさらに全体的にシステム102上で実現されてもよいことを理解するであろう。例えば、いくつかの実施例において、ホストアプリケーション108、クレデンシャルデータベース110、ソフトウェア拡張112、及び記録ストア114は、システム102上で一緒に実現されてもよい。当業者により十分理解されるように、ホストアプリケーション108、クレデンシャルデータベース110、ソフトウェア拡張112、及び記録ストア114は、システム102上で互いに直接通信することができる。例えば、ホストアプリケーション108、クレデンシャルデータベース110、ソフトウェア拡張112、及び記録ストア114は、システム102のオペレーティングシステムのプロセス間通信(IPC)機構を介して互いに通信してもよい。
【0059】
図2は、実施例による外部変更検出を実行する方法200のフローチャートである。方法200は、ハードウェア(例えば、回路、専用論理、プログラム可能論理、マイクロコード等)、ソフトウェア(例えば、処理装置上で実行する命令)、又はこれらの組み合わせを含み得る処理論理により実行できる。本明細書で提供される開示を実行するためにすべてのステップが必要とされるわけではないことが十分理解されるべきである。さらに、当業者により理解されるように、ステップのいくつかが同時に、又は
図2に示される順序と異なる順序で実行されてもよい。
【0060】
方法200は、
図1を参照して説明されるものとする。しかしながら、方法200は、その例示的な実施例に限定されない。
【0061】
202において、ホストアプリケーション108は、外部システム104における変更を検出するために、外部システム104のデータサービスに登録する。いくつかの実施例において、ホストアプリケーション108は、登録要求を外部システム104のデータサービスに送信する。いくつかの実施例において、ホストアプリケーション108は、データ選択基準及び/又はログインクレデンシャルを登録要求において外部システム104のデータサービスに送信する。いくつかの実施例において、データサービスは、ODataプロトコルを使用することができる。しかしながら、当業者により十分理解されるように、データサービスは、様々な他のデータアクセスプロトコルを使用してもよい。
【0062】
204において、ホストアプリケーション108は、外部システム104のデータサービスに登録したことに応答して、追跡トークンを受信する。いくつかの実施例において、外部システムは、ホストアプリケーション108が外部システム104上のデータサービスに登録したことに応答して、追跡トークンを生成することができる。いくつかの実施例において、追跡トークンは一意識別子であり得る。例えば、いくつかの実施例において、追跡トークンは一意URLでもよい。
【0063】
いくつかの実施例において、追跡トークンは、記録ストア114内の1つ以上のデータオブジェクトのトランザクション状態を表す。いくつかの実施例において、1つ以上のデータオブジェクトのトランザクション状態は、特定のトランザクション時間における1つ以上のデータオブジェクトのデータ状態を表す。
【0064】
いくつかの実施例において、外部システム104は、登録要求内のデータ選択基準に基づき、追跡トークンに関連づけられる1つ以上のデータオブジェクトを選択することができる。さらに、いくつかの実施例において、外部システム104は、登録処理の間に外部システム104にログインしたユーザに基づき、追跡トークンに関連づけられる1つ以上のデータオブジェクトを選択することができる。
【0065】
206において、ホストアプリケーション108は、追跡トークンを使用して、外部システム104内の1つ以上のデータオブジェクトに対する変更を検出する。いくつかの実施例において、ホストアプリケーション108は、追跡トークンを使用して外部システム104におけるデータサービスをポーリングすることにより、登録処理において選択された1つ以上のデータオブジェクトに対する変更を検出し、処理することができる。いくつかの他の実施例において、ホストアプリケーション108は、追跡トークンに基づきシステム102におけるコールバックアドレスを確立することにより、登録処理において選択された1つ以上のデータオブジェクトに対する変更を検出し、処理してもよい。
【0066】
208において、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更を受信する。例えば、いくつかの実施例において、ホストアプリケーション108は、変更をJSONデータフォーマットで受信することができる。いくつかの他の実施例において、ホストアプリケーション108は、変更をXMLデータフォーマットで受信してもよい。当業者により十分理解されるように、ホストアプリケーション108は、変更を様々な他のデータフォーマットで受信してもよい。
【0067】
いくつかの実施例において、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更を一連のトランザクションとして受信することができる。例えば、いくつかの実施例において、ホストアプリケーション108は、ホストアプリケーション108が外部システム104とのトランザクションを最後に完了した後の、登録処理において選択されたデータオブジェクトに対する各々の追加、更新、及び削除を受信することができる。
【0068】
ステップ210において、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更を処理する。いくつかの実施例において、ホストアプリケーション108は、変更が外部システム104上で実行された順序で、変更を処理することができる。これは、ホストアプリケーション108が1つ以上のデータオブジェクトに対する変更の順序を決定することを必要としてもよい。
【0069】
いくつかの実施例において、ホストアプリケーション108は、データオブジェクトに対する変更に関連づけられたトランザクション識別子に基づき、1つ以上のデータオブジェクトに対する変更の順序を決定することができる。いくつかの他の実施例において、ホストアプリケーション108は、1つ以上のデータオブジェクトに対する変更の順序を、これらの相対的な受信順序に基づき決定してもよい。
【0070】
いくつかの実施例において、ホストアプリケーション108は、登録処理において選択された1つ以上のデータオブジェクトに対する変更を、変更のタイプ、変更に関連づけられたデータタイプ、及び/又は変更のサイズに基づき処理することができる。いくつかの実施例において、ホストアプリケーション108は、変更に関連づけられたメタデータに基づき、1つ以上のデータオブジェクトに対して行われた変更に関するこの情報を決定することができる。
【0071】
いくつかの実施例において、ホストアプリケーション108は、ソフトウェア拡張112を使用して、1つ以上のデータオブジェクトに対して行われた変更を第1のデータフォーマットから第2のデータフォーマットにコンバートすることができる。これは、ホストアプリケーション108のユーザが1つ以上のデータオブジェクトに対する変更をより容易に閲覧し、修正することを可能にし得る。
【0072】
212において、ホストアプリケーション108は、追跡トークンに基づき、変更の処理の1つ以上の結果を外部システム104のデータサービスに任意選択で送信することができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果を含むデータ更新要求を外部システム104に送信することができる。いくつかの実施例において、データ更新要求は、追跡トークンを含むことができる。いくつかの他の実施例において、追跡トークンがURLである場合、ホストアプリケーション108は、データ更新要求を追跡トークンURLに送信してもよい。いくつかの他の実施例において、外部システム104をサブスクライブするシステム102に基づき、ホストアプリケーション108は、コールバックサービスを通してデータ更新要求を送信してもよい。いくつかの実施例において、データ更新要求は、1つ以上の結果を外部システム104に書き戻すように外部システム104をトリガすることができる。
【0073】
いくつかの実施例において、ホストアプリケーション108は、外部システム104が1つ以上の結果を適用すべき順序を示すことができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果に関連づけられたトランザクション識別子を使用して順序を示すことができる。いくつかの他の実施例において、ホストアプリケーション108は、外部システム104に対する1つ以上の結果の送信順序に基づき順序を示してもよい。
【0074】
いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果に関連づけられた1つ以上の変更タイプに基づき、1つ以上の結果の変更のタイプを示すことができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果に関連づけられた1つ以上のデータタイプに基づき、1つ以上の結果のデータタイプを示すことができる。いくつかの実施例において、ホストアプリケーション108は、1つ以上の結果に関連づけられた1つ以上のデータサイズに基づき、1つ以上の結果のサイズを示すことができる。当業者により十分理解されるように、ホストアプリケーション108は、1つ以上の結果に関連づけられたメタデータを使用して、1つ以上の結果に関する様々な他の情報を示してもよい。
【0075】
様々な実施例が、例えば、
図3に示されるコンピュータシステム300などの1つ以上のコンピュータシステムを使用して実現できる。コンピュータシステム300は、例えば、
図2の方法200を実現するために使用できる。例えば、コンピュータシステム300は、登録要求を外部システムにおけるデータサービスに送信することを実行でき、登録要求はデータ選択基準を含む。コンピュータシステム300は、追跡トークンを使用して外部システム内のデータオブジェクトに対する変更を検出することをさらに実行できる。コンピュータシステム300は、本明細書で説明される機能を実行することができる任意のコンピュータであり得る。
【0076】
コンピュータシステム300は、本明細書で説明される機能を実行することができる任意の周知のコンピュータであり得る。
【0077】
コンピュータシステム300は、1つ以上のプロセッサ(中央処理ユニット又はCPUとも呼ばれる)、例えばプロセッサ304などを含む。プロセッサ304は、通信インフラストラクチャ又はバス306に接続される。
【0078】
1つ以上のプロセッサ304は各々、グラフィックス処理ユニット(GPU)でもよい。実施例において、GPUは、数学的に集中的なアプリケーションを処理するように設計された、特化された電子回路であるプロセッサである。GPUは、コンピュータグラフィクスアプリケーション、画像、ビデオ等に共通の数学的に集中的なデータなどの、データの大きいブロックの並列処理に対して効率的な並列構造を有し得る。
【0079】
コンピュータシステム300は、ユーザ入力/出力インターフェース302を通して通信インフラストラクチャ306と通信するユーザ入力/出力装置303、例えば、モニタ、キーボード、ポインティング装置などをさらに含む。
【0080】
コンピュータシステム300は、メイン又はプライマリメモリ308、例えば、ランダムアクセスメモリ(RAM)などをさらに含む。メインメモリ308は、1つ以上のレベルのキャッシュを含んでもよい。メインメモリ308は、その中に制御論理(すなわち、コンピュータソフトウェア)及び/又はデータを記憶している。
【0081】
コンピュータシステム300は、1つ以上のセカンダリ記憶装置又はメモリ310をさらに含むことができる。セカンダリメモリ310には、例えば、ハードディスクドライブ312及び/又は取外し可能記憶装置若しくはドライブ314を含んでもよい。取外し可能記憶ドライブ314は、フロッピーディスク、磁気テープドライブ、コンパクトディスクドライブ、光学記憶装置、テープバックアップ装置、及び/又は任意の他の記憶装置/ドライブであり得る。
【0082】
取外し可能記憶ドライブ314は、取外し可能記憶ユニット318と対話することができる。取外し可能記憶ユニット318は、コンピュータソフトウェア(制御論理)及び/又はデータを記憶させたコンピュータ使用可能又は読取可能記憶装置を含む。取外し可能記憶ユニット318は、フロッピーディスク、磁気テープ、コンパクトディスク、DVD、光学記憶ディスク、及び/任意の他のコンピュータデータ記憶装置であり得る。取外し可能記憶ドライブ314は、周知の仕方で取外し可能記憶ユニット318から読み出し、かつ/あるいは取外し可能記憶ユニット318に書き込む。
【0083】
例示的な実施例によれば、セカンダリメモリ310は、コンピュータプログラム及び/又は他の命令及び/又はデータがコンピュータシステム300によりアクセスされることを可能にする他の手段、媒介、又は他のアプローチを含んでよい。こうした手段、媒介、又は他のアプローチには、例えば、取外し可能記憶ユニット322及びインターフェース320を含むことができる。取外し可能記憶ユニット322及びインターフェース320の例には、プログラムカートリッジ及びカートリッジインターフェース(例えば、ビデオゲーム装置で見られるものなど)、取外し可能メモリチップ(例えば、EPROM又はPROMなど)及び関連づけられたソケット、メモリスティック及びUSBポート、メモリカード及び関連づけられたメモリカードスロット、及び/又は任意の他の取外し可能記憶ユニット及び関連づけられたインターフェースを含んでよい。
【0084】
コンピュータシステム300は、通信又はネットワークインターフェース324をさらに含むことができる。通信インターフェース324は、コンピュータシステム300が(参照番号328により個々に及び集合的に参照される)リモート装置、リモートネットワーク、リモートエンティティ等の任意の組み合わせと通信し、対話することを可能にする。例えば、通信インターフェース324は、コンピュータシステム300が通信経路326を通じてリモート装置328と通信することを可能にすることができ、通信経路326は、有線及び/又は無線であり得、通信経路326は、LAN、WAN、インターネット等の任意の組み合わせを含んでよい。制御論理及び/又はデータが、通信経路326を介してコンピュータシステム300に、及びコンピュータシステム300から送信されてよい。
【0085】
一実施例において、制御論理(ソフトウェア)を記憶させた有形の非一時的コンピュータ使用可能又は読取可能媒体を含む有形の非一時的装置又は製造品が、本明細書でコンピュータプログラム製品又はプログラム記憶装置としてさらに参照される。これには、これらに限られないが、コンピュータシステム300、メインメモリ308、セカンダリメモリ310、及び取外し可能記憶ユニット318及び322、並びに前述の任意の組み合わせを具現化した有形製造品が含まれる。こうした制御論理は、1つ以上のデータ処理装置(例えば、コンピュータシステム300など)により実行されたとき、上記データ処理装置に本明細書で説明されたように動作させる。
【0086】
本開示に含まれる教示に基づき、
図3に示されるもの以外のデータ処理装置、コンピュータシステム、及び/又はコンピュータアーキテクチャを使用して本開示の実施例をなし、使用する方法が当業者に明らかになるであろう。詳細に、実施例は、本明細書に説明されるもの以外のソフトウェア、ハードウェア、及び/又はオペレーティングシステム実装で動作することができる。
【0087】
他のセクションでなく詳細な説明セクションが、特許請求の範囲を解釈するために使用されるよう意図されることが十分理解されるべきである。他のセクションは、発明者により企図されるすべてではないが1つ以上の例示的な実施例を説明することがあり、ゆえに、いかなる方法でも本開示又は別記の特許請求の範囲を限定するようには意図されない。
【0088】
本開示は、例示的な分野及び適用に対して例示的な実施例を説明するが、開示はそれに限定されないことが理解されるべきである。それに対する他の実施例及び修正が可能であり、本開示の範囲及び主旨の範囲内である。例えば、この段落の一般性を限定することなく、実施例は、図面に例示され、及び/又は本明細書に説明されるソフトウェア、ハードウェア、ファームウェア、及び/又はエンティティに限定されない。さらに、実施例は(本明細書で明示的に説明されるか否かにかかわらず)、本明細書に説明される例を越えた分野及び適用に対して有意な有用性を有する。
【0089】
実施例が、規定された機能及びその関係の実現を例示する機能構築ブロックを用いて本明細書で説明された。これら機能構築ブロックの境界は、説明の簡便さのために本明細書で任意的に定義されている。規定された機能及び関係(又は、その均等物)が適切に実行される限り、代替的な境界が定義されてよい。さらに、代替的な実施例が、本明細書に説明されるものと異なる順序づけを使用して機能ブロック、ステップ、動作、方法等を実行することができる。
【0090】
本明細書において、「1つの実施例」、「一実施例」、「一例示的な実施例」、又は同様のフレーズに対する参照は、説明される実施例が特定の特徴、構造、又は特性を含むことがあるが、あらゆる実施例が必ずしも上記特定の特徴、構造、又は特性を含むわけではないことを示す。さらに、こうしたフレーズは、必ずしも同じ実施例を参照するわけではない。さらに、特定の特徴、構造、又は特性が一実施例に関連して説明されたとき、こうした特徴、構造、又は特性を本明細書で明示的に言及又は説明されているか否かにかかわらず他の実施例に組み込むことは、当業者の知識の範囲内である。さらに、いくつかの実施例は、表現「結合された」及び「接続された」をその派生形と共に使用して説明されることがある。これら用語は、必ずしも互いの同義語として意図されない。例えば、いくつかの実施例は、2つ以上の要素が互いに直接物理的又は電気的に接触することを示すために、用語「接続された」及び/又は「結合された」を使用して説明されることがある。しかしながら、用語「結合された」は、2つ以上の要素が互いに直接接触しないが、しかし依然として互いに協働又は対話することをさらに意味することがある。
【0091】
本開示の幅及び範囲は、上記で説明された例示的な実施例のいずれによっても限定されるべきでなく、別記の特許請求の範囲及びその均等物に従ってのみ定義されるべきである。
上記の実施形態につき以下の付記を残しておく。
[付記1]
少なくとも1つのプロセッサにより、登録要求を外部システムにおけるデータサービスに送信するステップであり、前記登録要求はデータ選択基準を含み、前記外部システムは、前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、前記データオブジェクトのトランザクション状態に関連づけられる、ステップと、
前記少なくとも1つのプロセッサにより、前記登録要求を送信したことに応答して前記追跡トークンを受信するステップと、
前記少なくとも1つのプロセッサにより、前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出するステップと、
前記少なくとも1つのプロセッサにより、前記検出に基づき前記外部システムから前記データオブジェクトに対する前記変更を受信するステップと、
前記少なくとも1つのプロセッサにより、前記データオブジェクトに対する前記変更を処理するステップと、
を含む方法。
[付記2]
前記追跡トークンに基づきコールバックサービスを作成するステップであり、前記データオブジェクトに対する前記変更は、コールバックアドレスを使用して前記外部システムから受信される、ステップ
をさらに含む付記1に記載の方法。
[付記3]
前記検出するステップは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信するステップ
をさらに含む、付記1に記載の方法。
[付記4]
前記登録要求は、前記外部システムに対するログインクレデンシャルを含む、付記1に記載の方法。
[付記5]
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更をJavaScript Object Notation(JSON)データフォーマット又は拡張マークアップ言語(XML)データフォーマットで受信するステップ
をさらに含む、付記1に記載の方法。
[付記6]
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信するステップであり、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられたトランザクション順序を示す、ステップ
をさらに含む、付記1に記載の方法。
[付記7]
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信するステップ
をさらに含む付記1に記載の方法。
[付記8]
メモリと、
前記メモリに結合され、
登録要求を外部システムにおけるデータサービスに送信することであって、前記登録要求はデータ選択基準を含み、前記外部システムは、前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、前記データオブジェクトのトランザクション状態に関連づけられ、
前記登録要求を送信したことに応答して前記追跡トークンを受信し、
前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出し、
前記検出に基づき前記外部システムから前記データオブジェクトに対する前記変更を受信し、
前記データオブジェクトに対する前記変更を処理する
ように構成された少なくとも1つのプロセッサと、
を含むシステム。
[付記9]
前記少なくとも1つのプロセッサは、
前記追跡トークンに基づきコールバックサービスを作成することであって、前記データオブジェクトに対する前記変更は、コールバックアドレスを使用して前記外部システムから受信される
ようにさらに構成される、付記8に記載のシステム。
[付記10]
検出するために、前記少なくとも1つのプロセッサは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信する
ようにさらに構成される、付記8に記載のシステム。
[付記11]
前記登録要求は、前記外部システムに対するログインクレデンシャルを含む、付記8に記載のシステム。
[付記12]
前記データオブジェクトに対する前記変更を受信するために、前記少なくとも1つのプロセッサは、
前記データオブジェクトに対する前記変更をJavaScript Object Notation(JSON)データフォーマット又は拡張マークアップ言語(XML)データフォーマットで受信する
ようにさらに構成される、付記8に記載のシステム。
[付記13]
前記データオブジェクトに対する前記変更を受信するために、前記少なくとも1つのプロセッサは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信することであって、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられたトランザクション順序を示す、
ようにさらに構成される、付記8に記載のシステム。
[付記14]
前記少なくとも1つのプロセッサは、
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信する
ようにさらに構成される、付記8に記載のシステム。
[付記15]
命令を記憶させた非一時的コンピュータ読取可能装置であって、前記命令は、少なくとも1つのコンピューティング装置により実行されたときに前記少なくとも1つのコンピューティング装置に、
登録要求を外部システムにおけるデータサービスに送信するステップであり、前記登録要求はデータ選択基準を含み、前記外部システムは、前記外部システム内のデータオブジェクトが前記データ選択基準を満たすことに応答して追跡トークンを生成し、前記追跡トークンは、前記データオブジェクトのトランザクション状態に関連づけられる、ステップと、
前記登録要求を送信したことに応答して前記追跡トークンを受信するステップと、
前記追跡トークンを使用して前記外部システム内の前記データオブジェクトに対する変更を検出するステップと、
前記検出に基づき前記外部システムから前記データオブジェクトに対する前記変更を受信するステップと、
前記データオブジェクトに対する前記変更を処理するステップと、
を含む動作を実行させる、非一時的コンピュータ読取可能装置。
[付記16]
前記動作は、
前記追跡トークンに基づきコールバックサービスを作成するステップであり、前記データオブジェクトに対する前記変更は、コールバックアドレスを使用して前記外部システムから受信される、ステップ
をさらに含む、付記15に記載の非一時的コンピュータ読取可能装置。
[付記17]
前記検出するステップは、
前記追跡トークン及び周期的スケジュールに基づきデータ変更要求を前記外部システムに送信するステップ
を含む、付記15に記載の非一時的コンピュータ読取可能装置。
[付記18]
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更をJavaScript Object Notation(JSON)データフォーマット又は拡張マークアップ言語(XML)データフォーマットで受信するステップ
を含む、付記15に記載の非一時的コンピュータ読取可能装置。
[付記19]
前記データオブジェクトに対する前記変更を受信するステップは、
前記データオブジェクトに対する前記変更に関連づけられたメタデータを受信するステップであり、前記メタデータは、前記データオブジェクトに対する前記変更の変更タイプ、又は前記データオブジェクトに対する前記変更に関連づけられたトランザクション順序を示す、ステップ
を含む、付記15に記載の非一時的コンピュータ読取可能装置。
[付記20]
前記動作は、
前記処理及び前記追跡トークンに基づき更新を前記外部システムに送信するステップ
をさらに含む、請求項15に記載の非一時的コンピュータ読取可能装置。