IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7754588アプリケーション間でデータ構造値を共有するためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(ソフトウェアアプリケーション間でのデータ構造値の共有)
<>
  • 特許-アプリケーション間でデータ構造値を共有するためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(ソフトウェアアプリケーション間でのデータ構造値の共有) 図1
  • 特許-アプリケーション間でデータ構造値を共有するためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(ソフトウェアアプリケーション間でのデータ構造値の共有) 図2
  • 特許-アプリケーション間でデータ構造値を共有するためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(ソフトウェアアプリケーション間でのデータ構造値の共有) 図3
  • 特許-アプリケーション間でデータ構造値を共有するためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(ソフトウェアアプリケーション間でのデータ構造値の共有) 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-10-06
(45)【発行日】2025-10-15
(54)【発明の名称】アプリケーション間でデータ構造値を共有するためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(ソフトウェアアプリケーション間でのデータ構造値の共有)
(51)【国際特許分類】
   G06F 9/54 20060101AFI20251007BHJP
【FI】
G06F9/54 E
【請求項の数】 18
(21)【出願番号】P 2021179588
(22)【出願日】2021-11-02
(65)【公開番号】P2022075601
(43)【公開日】2022-05-18
【審査請求日】2024-04-11
(31)【優先権主張番号】17/089,326
(32)【優先日】2020-11-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】プール、ジョン、クリストファー
(72)【発明者】
【氏名】ウォータートン、ジェームス、トーマス
(72)【発明者】
【氏名】ケント、ピーター、ジョセフ
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特表2018-501548(JP,A)
【文献】国際公開第2008/041357(WO,A1)
【文献】国際公開第2008/065835(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46-9/54
(57)【特許請求の範囲】
【請求項1】
コンピュータオペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有するためのコンピュータ実装方法であって、
それぞれが特定のトピック名を有する複数のデータ構造を定義することであって、データ構造は複数のデータ要素の定義されたフォーマットの集合を含む、定義することと、
トピックに対するアプリケーションの関心を登録することと、
定義されたデータ構造の前記フォーマットを持つ複数のデータ要素の集合をアプリケーション内で識別し、前記定義されたデータ構造の前記特定のトピック名に関連付けてアイテムを格納することであって、前記アイテムは前記識別されたデータ要素のデータ値の集合である、識別し格納することと、
前記トピックに登録されたアプリケーションが、前記アプリケーション内の対応するデータ構造に値を入力するために、前記アイテムを使用可能にすることと、
を含み、
オペレーティングシステムにおいて、トピックに対する関心を登録することもしくはトピックのためのアイテムを提供することまたはその両方を許可されたアプリケーションを構成することと、ユーザによるアクセス制御のために、アプリケーションによる登録された関心と共にトピック名のリストをユーザに公開することと、を含む、コンピュータ実装方法。
【請求項2】
前記定義されたデータ構造内の前記データ要素は、それぞれ、受信アプリケーション内のユーザインタフェースラベルに適合可能なラベルを有し、前記アイテム内に提供された前記データ要素の前記データ値でフィールドを自動補完する、請求項1に記載の方法。
【請求項3】
前記データ要素の前記定義されたフォーマットは、文字列タイプ、文字配置タイプ、イメージデータタイプ、およびメタデータ属性のグループの1つまたは複数を含む、請求項1に記載の方法。
【請求項4】
前記特定のトピック名に関連付けて前記アイテムを格納することは、前記アイテムを設定された期間だけ格納すること、もしくは、前記トピック名の格納されたアイテムの数だけ格納すること、またはその両方をする、請求項1に記載の方法。
【請求項5】
複数のデータ要素の集合をアプリケーション内で識別することは、前記アプリケーション内の前記データ要素のためのパターン認識にアプリケーションインタフェースを提供することと、パターン認識を使用することと、を含む、請求項1に記載の方法。
【請求項6】
ユーザが設定したトピック名でユーザによりデータ構造を定義することを含む、請求項1に記載の方法。
【請求項7】
前記アプリケーションがトピックに対する関心を登録することができるか否か、もしくはトピックのためにアイテムを提供することができるか否かまたはその両方を、前記アプリケーションにおいて構成することを含む、請求項1に記載の方法。
【請求項8】
前記メッセージングは、オペレーティングシステムによって提供されるパブリッシュ/サブスクライブメッセージングインフラストラクチャであり、
アプリケーションによる関心を登録することは、トピックにサブスクライバーを登録し、
アイテムを格納することは、サブスクライビングアプリケーションに送信するためのトピックキューにアイテムをパブリッシュする、請求項1に記載の方法。
【請求項9】
前記アイテムをアプリケーションに送信することは、トピックについてアイテムを定期的にプルするアプリケーションを含む、請求項1に記載の方法。
【請求項10】
オペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有するためのシステムであって、
プロセッサと、データ値転送システムのコンポーネントの機能を実行するためにコンピュータプログラム命令を前記プロセッサに提供するように構成されたメモリとを含み、前記コンポーネントは、
それぞれが特定のトピック名を有する複数のデータ構造を定義するデータ構造定義コンポーネントであって、データ構造は複数のデータ要素の定義されたフォーマットの集合を含む、データ構造定義コンポーネントと、
トピックに対するアプリケーションの関心を登録するためのトピックコンポーネントと、
定義されたデータ構造の前記フォーマットを持つ複数のデータ要素の集合をアプリケーション内で識別するための識別コンポーネントと、
前記定義されたデータ構造の前記特定のトピック名に関連付けてアイテムを格納するためのアイテム格納コンポーネントであって、前記アイテムは前記識別されたデータ要素のデータ値の集合である、アイテム格納コンポーネントと、
前記トピックに登録されたアプリケーションが、前記アプリケーション内の対応するデータ構造に値を入力するために、前記アイテムを使用可能にするためのアイテムアクセスコンポーネントと、
を含
前記オペレーティングシステムにおいて、トピックへの関心を登録することもしくはトピックのためのアイテムを提供することまたはその両方が許可されたアプリケーションを構成し、ユーザによるアクセス制御のために、アプリケーションによる登録された関心と共にトピック名のリストをユーザに公開するための構成コンポーネントを含む、システム。
【請求項11】
オペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有するためのシステムであって、
プロセッサと、データ値転送システムのコンポーネントの機能を実行するためにコンピュータプログラム命令を前記プロセッサに提供するように構成されたメモリとを含み、前記コンポーネントは、
それぞれが特定のトピック名を有する複数のデータ構造を定義するデータ構造定義コンポーネントであって、データ構造は複数のデータ要素の定義されたフォーマットの集合を含む、データ構造定義コンポーネントと、
トピックに対するアプリケーションの関心を登録するためのトピックコンポーネントと、
定義されたデータ構造の前記フォーマットを持つ複数のデータ要素の集合をアプリケーション内で識別するための識別コンポーネントと、
前記定義されたデータ構造の前記特定のトピック名に関連付けてアイテムを格納するためのアイテム格納コンポーネントであって、前記アイテムは前記識別されたデータ要素のデータ値の集合である、アイテム格納コンポーネントと、
前記トピックに登録されたアプリケーションが、前記アプリケーション内の対応するデータ構造に値を入力するために、前記アイテムを使用可能にするためのアイテムアクセスコンポーネントと、
を含
トピックのためのアイテムを提供するためのアイテム提供コンポーネントと、トピックのためのアイテムを検索するための検索コンポーネントとを含む前記データ値転送システムとインタフェースするためのアプリケーションインタフェースコンポーネントを含む、システム。
【請求項12】
前記データ構造定義コンポーネントは、受信アプリケーション内のユーザインタフェースラベルに適合可能なラベルに関連して前記定義されたデータ構造内の前記データ要素を提供することと、前記アイテム内に提供された前記データ要素の前記データ値でフィールドを自動補完することと、を含む、請求項11記載のシステム。
【請求項13】
前記アイテム格納コンポーネントは、前記アイテムを前記特定のトピック名に関連付けて格納し、前記アイテムを設定された期間だけ格納すること、もしくは、前記トピック名の格納されたアイテムの数だけ格納すること、またはその両方をする、請求項11記載のシステム。
【請求項14】
前記アプリケーションインタフェースコンポーネントは、定義されたデータ要素の前記フォーマットを有する複数のデータ要素の集合をアプリケーション内で識別するためのパターン認識コンポーネントを含む、請求項1に記載のシステム。
【請求項15】
前記アプリケーションインタフェースコンポーネントは、アイテムのデータ要素値のラベルをユーザインタフェースラベルに一致させて、フィールドを前記アプリケーション内の前記データ要素値で自動補完する自動補完コンポーネントを含む、請求項1記載のシステム。
【請求項16】
アプリケーション内の自動補完フィールドを確認または拒否するためのユーザ入力を促す確認コンポーネントを含む、請求項10または11に記載のシステム。
【請求項17】
前記メッセージングは、オペレーティングシステムによって提供されるパブリッシュ/サブスクライブメッセージングインフラストラクチャによって提供され、
アプリケーションによる関心を登録するための前記トピックコンポーネントは、トピックにサブスクライバーを登録し、
アイテムを格納するための前記アイテム格納コンポーネントは、サブスクライビングアプリケーションに送信するためのトピックキューにアイテムをパブリッシュする、請求項10または11に記載のシステム。
【請求項18】
オペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有するためのコンピュータプログラであって、コンピュータに、
それぞれが特定のトピック名を有する複数のデータ構造を定義することであって、データ構造は複数のデータ要素の定義されたフォーマットの集合を含む、定義することと、
トピックに対するアプリケーションの関心を登録することと、
定義されたデータ構造の前記フォーマットを持つ複数のデータ要素の集合をアプリケーション内で識別し、前記定義されたデータ構造の前記特定のトピック名に関連付けてアイテムを格納することであって、前記アイテムは前記識別されたデータ要素のデータ値の集合である、識別し格納することと、
前記トピックに登録されたアプリケーションが、前記アプリケーション内の対応するデータ構造に値を入力するために、前記アイテムを使用可能にすることと、
を実行させ
オペレーティングシステムにおいて、トピックに対する関心を登録することもしくはトピックのためのアイテムを提供することまたはその両方を許可されたアプリケーションを構成することと、ユーザによるアクセス制御のために、アプリケーションによる登録された関心と共にトピック名のリストをユーザに公開することと、を実行させる、コンピュータプログラ
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアアプリケーション間でデータ構造値を共有することに関し、より具体的には、オペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有することに関する。
【背景技術】
【0002】
コンピューティング装置のユーザは、デバイス上の別のアプリケーション内の1つのアプリケーションで受け取った詳細を使用したい場合がある。たとえば、ユーザーがメッセージを介して銀行情報を受信し、銀行アプリケーションに銀行情報を入力して支払いを行う場合である。銀行情報は、少なくとも口座名、ソート番号、および口座番号を含む複数のフィールドで構成される。
【0003】
1つの選択肢は、ユーザがアプリケーションを切り替える際に参照する銀行情報を別々にメモすることである。もう1つのオプションは、ユーザが銀行情報の値ごとにコピーアンドペーストアクションを実行する方法である。情報を転送するには、メッセージングアプリケーションと銀行アプリケーションの間で、単純なコピーアンドペーストを3回行う必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
アプリケーション間でデータ構造値を共有するためのコンピュータ実装方法、システムおよびコンピュータプログラム製品を提供する。
【課題を解決するための手段】
【0005】
本発明の一態様によれば、オペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有するためのコンピュータ実施方法が提供される。コンピュータ実施方法は、それぞれが特定のトピック名を有する複数のデータ構造を定義することであって、データ構造は複数のデータ要素の定義されたフォーマットの集合を含む、定義することを含む。コンピュータ実施方法は、トピックに対するアプリケーションの関心を登録することを含む。コンピュータ実施方法は、定義されたデータ構造のフォーマットを持つ複数のデータ要素の集合をアプリケーション内で識別し、定義されたデータ構造の特定のトピック名に関連付けてアイテムを格納することであって、アイテムは識別されたデータ要素のデータ値の集合である、識別し格納することを含む。コンピュータ実施方法は、トピックに登録されたアプリケーションが、アプリケーション内の対応するデータ構造に値を入力するために、アイテムを使用可能にすることを含む。
【0006】
本発明の別の態様によれば、オペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有するためのシステムが提供される。システムは、プロセッサと、データ値転送システムのコンポーネントの機能を実行するためにコンピュータプログラム命令をプロセッサに提供するように構成されたメモリとを含む。コンポーネントは、それぞれが特定のトピック名を有する複数のデータ構造を定義するためのデータ構造定義コンポーネントであって、データ構造は複数のデータ要素の定義されたフォーマットの集合を含む、データ構造定義コンポーネントを含む。コンポーネントは、トピックに対するアプリケーションの関心を登録するためのトピックコンポーネントを含む。コンポーネントは、定義されたデータ構造のフォーマットを持つ複数のデータ要素の集合をアプリケーション内で識別するための識別コンポーネントを含む。コンポーネントは、定義されたデータ構造の特定のトピック名に関連付けてアイテムを格納するためのアイテム格納コンポーネントであって、アイテムは識別されたデータ要素のデータ値の集合である、アイテム格納コンポーネントを含む。コンポーネントは、トピックに登録されたアプリケーションが、アプリケーション内の対応するデータ構造に値を入力するために、アイテムを使用可能にするためのアイテムアクセスコンポーネントを含む。
【0007】
本発明の別の態様によれば、オペレーティングシステムにおけるメッセージングを介してアプリケーション間でデータ構造値を共有するためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、プログラム命令を実装したコンピュータ可読記憶媒体を含み、プログラム命令は、プロセッサによって実行可能である。プログラム命令は、プロセッサに、それぞれが特定のトピック名を有する複数のデータ構造を定義することであって、データ構造は複数のデータ要素の定義されたフォーマットの集合を含む、定義することを実行させる。プログラム命令は、プロセッサに、トピックに対するアプリケーションの関心を登録することを実行させる。プログラム命令は、プロセッサに、定義されたデータ構造のフォーマットを持つ複数のデータ要素の集合をアプリケーション内で識別し、定義されたデータ構造の特定のトピック名に関連付けてアイテムを格納することであって、アイテムは識別されたデータ要素のデータ値の集合である、識別し格納することを実行させる。プログラム命令は、プロセッサに、トピックに登録されたアプリケーションが、アプリケーション内の対応するデータ構造に値を入力するために、アイテムを使用可能にすることを実行させる。
【0008】
コンピュータ可読記憶媒体は、非一時的なコンピュータ可読記憶媒体であってもよく、コンピュータが読み取り可能なプログラムコードは、処理回路によって実行可能であってもよい。
【0009】
発明とみなされる主題は、明細書の結論部分において特に指摘され、明確にクレームされている。本発明は、その目的、特徴及び利点と共に、構成及び動作方法の両方に関して、添付図面と共に読み、以下の詳細な説明を参照することによって最もよく理解することができる。本発明の好適な実施の形態について、以下の図面を参照して一例として説明する。
【図面の簡単な説明】
【0010】
図1】本発明による方法の例示的な実施形態のフローチャートを示す図である。
図2】本発明による方法の例示的な実施形態を示す概略図を示す図である。
図3】本発明によるシステムの例示的な実施形態のブロック図を示す図である。
図4】本発明を実施することができるコンピュータシステムの例示的な実施形態のブロック図を示す図である。
【発明を実施するための形態】
【0011】
説明を簡単かつ明確にするために、図に示される要素は必ずしも縮尺通りに描かれていないことが理解されるだろう。例えば、一部の要素の寸法は、明確にするために他の要素に対して誇張されてもよい。さらに、適切と考えられる場合には、対応する又は類似の特徴を示すために、図の間で参照番号を繰り返すことができる。
【0012】
記述された方法およびシステムは、コンピュータオペレーティングシステムレベルでメッセージングシステムを使用して、オペレーティングシステム上で動作するアプリケーション間で定義されたデータ構造の値を共有する。定義されたデータ構造は、定義されたフォーマットの複数のデータ要素の集合と、定義されたデータ構造のデータ要素の値を共有するためのメッセージングトピックとして使用される特定のトピック名とを有する。メッセージングトピックは、アプリケーション間で共有することが要求され得るデータの集合のデータ構造に対して定義される。
【0013】
メッセージングシステムは、トピックへの関心を表すアプリケーションを含むことができ、識別されたデータ要素のデータ値の集合の形式のアイテムは、アプリケーションから取得され、トピック名に関連して格納され、トピックに関心を有する他のアプリケーションに利用可能にされる。
【0014】
メッセージングシステムは、アプリケーションによってメッセージトピック名にパブリッシュされるアイテムの形式のメッセージを有するパブリッシュ/サブスクライブメッセージングシステムであってもよい。他のアプリケーションはトピック名にサブスクライブし、パブリッシュされた値のアイテムを受け取る。
【0015】
他の実施形態では、メッセージングシステムは、別のメッセージングパターンを使用して、トピックのデータ構造値のアイテムを共有することができる。例えば、登録されたアプリケーションがサブスクライブしてアイテムにアクセスできるトピックにアイテムをプッシュするのではなく、より単純なメッセージングシステムが特定のアプリケーションにトピックキューを提供し、オペレーティングシステムがデータ値の集合の形式でアイテムをアプリケーションのトピックキューに置くことができる。
【0016】
パブリッシュ/サブスクライブメッセージングシステムでは、オペレーティングシステムレベルのパブリッシュ/サブスクライブメッセージトピックに一時的に値を格納できるデータ構造が定義される。関連するデータ構造がアプリケーションで識別されると、値がパブリッシュされ、オペレーティングシステムレベルのメッセージトピックに格納される。オペレーティングシステムで実行されている他のアプリケーションは、このメッセージトピックにサブスクライブして、関連するデータ構造を検索できる。
【0017】
オペレーティングシステムで実行されているアプリケーションは、定義されたデータ構造に準拠するデータを受信または開封することができる。例えば、メッセージングアプリケーションは、文字列としての口座名、6桁の数字列としてのソートコード、および8桁の数字列としての口座番号を含む、銀行口座の詳細の形式でデータを有するメッセージを受信することができる。記載された方法は、メッセージ内の受信データを、一意の名前(例えば、「銀行口座」)を有する定義されたデータ構造に適合するものとして識別することができ、受信データの値は、定義されたデータ構造のメッセージトピックにパブリッシュされ、メッセージトピックキューに格納されることができる。
【0018】
例えば、他のアプリケーションは、銀行アプリケーションであってもよく、銀行口座情報のためのメッセージトピックにサブスクライブしてもよい。他のアプリケーションは、メッセージングアプリケーションによってパブリッシュされた銀行口座情報の値を検索することができ、これらを銀行アプリケーションの適切なフィールドへの入力として提案することができるので、ユーザは、データを手動で入力するか、または各構成部分を別々に手動でコピーアンドペーストする必要がなくなる。パブリッシュまたはサブスクライブされる定義されたデータ構造は、構造、フィールド名などを含み、サブスクライビングアプリケーションがそこにあることを期待して解析できるブロックであってもよい。
【0019】
データ構造は、認識されたフォーマットを有するデータのタイプを定義することができる。データ構造は、データ構造内の複数の値に対する複数のフィールドフォーマットを含むことができる。データ構造は、テキストまたは数字の文字列、画像、メタデータ、ハイパーテキストマークアップ言語(HTML)属性などを含むことができる。データ構造のタイプは、例として、口座名、ソートコード、および口座番号のフィールドを含む銀行情報データ構造、アカウント名、アカウント番号、カードセキュリティ番号、および有効期限のフィールドを含むクレジットカード情報データ構造、追跡コードおよび郵便番号のフィールドを含む荷物配送情報データ構造、名前、および身分証明書またはパスポート番号のフィールドを含む識別情報データ構造、関連するメタデータ等を有する画像を含むデータフォーマットを含むことができる。
【0020】
データ構造が定義されると、その中の各コンポーネントにラベルを付けることができる。たとえば、「銀行口座」データ構造には、口座名のラベル、ソートコードのラベル、口座番号のラベルがある。アプリケーションが「銀行口座」トピックにサブスクライブし、パブリッシュされた値を検索すると、内部ラベルを使用してデータコンポーネントをアプリケーション内の対応するユーザーインタフェースラベルに一致させ、ユーザーインタフェース内の正しいフィールドに値を挿入する。
【0021】
図1を参照すると、フロー図100は、オペレーティングシステムを介してアプリケーション内でデータ構造値を共有するための説明された方法の例示的な実施形態を示す。この方法は、オペレーティングシステムレベルのメッセージングシステムで実行される。
【0022】
複数のデータ構造は、メッセージングインフラストラクチャ内のトピック名を有するメッセージトピックとして定義することができる(ステップ101)。メッセージングトピックは、データ要素の形式で複数のフィールドを持つデータ構造に対して定義され、各データ要素は定義されたフォーマットを持つ。このようにして、関連フィールドのグループは単一のデータ構造として定義される。各データ構造は、文字列タイプ、メディアタイプ、または他の配置などの定義されたフォーマットのデータ入力フィールドの集合のためであってもよい。
【0023】
データ構造は、標準的な銀行フォーマットなどの認識されたデータ構造フォーマットのためのメッセージトピックとしてオペレーティングシステムレベルで事前定義されてもよく、アプリケーション開発者もしくはエンドユーザまたはその両方によって、ユーザが使用したいと思う、よりカスタマイズされたデータ構造のために追加されてもよい。これにより、カスタマイズされたデータフォーマットをアプリケーション開発者またはエンドユーザが指定できる。たとえば、アプリケーション開発者が独自のデータ構造を定義し、そのデータ構造を認識されたデータ構造のオペレーティングシステムレベルのリストに追加できる(例えば、オペレーティングシステムのアプリケーションプログラミングインタフェース(OS API)を介して)。エンドユーザーは、例えば、名前および番号フィールドを含む独自の特定のクラブ会員識別フォーマットのために、ローカルデバイス上にデータ構造を定義することもできる。
【0024】
この方法は、メッセージングインフラストラクチャを介して定義されたデータ構造の値を送信もしくは受信またはその両方をすることが許可されるアプリケーションをオペレーティングシステムに構成することができる(ステップ102)。データ構造のデータ要素の値は、メッセージングシステムを介して転送するためのアイテムとしてグループ化することができる。特定のアプリケーションは、すべてのメッセージトピックまたは一部のメッセージトピックとの間で値を送信のみまたは受信のみすることが許可されるが、他のアプリケーションは、アプリケーションのタイプおよび要件に応じて送受信の両方を許可される。
【0025】
この方法は、メッセージトピックに対するアプリケーションの関心を登録することができる(ステップ103)。これは、アプリケーションが値を提供でき、トピックの値を受信できるかどうかについて、各アプリケーションで構成できる。パブリッシュ/サブスクライブメッセージングシステムでは、メッセージングシステムのトピックにパブリッシュもしくはサブスクライブまたはその両方をするようにアプリケーションを構成できる。オペレーティングシステムで実行するアプリケーションは、定義されたデータ構造のメッセージトピックにサブスクライブできる。定義された各データ構造には一意のトピック名が付けられ、サブスクライビングアプリケーションは、受け入れるトピック名のリストを宣言できる。アプリケーションは、銀行アプリケーション、オンライン購入に使用されるブラウザアプリケーション、配信アプリケーションなど、その機能に関連する1つまたは複数のメッセージトピックにサブスクライブできる。
【0026】
別の実施形態では、アプリケーションは、アプリケーションのインストール時に、定義されたデータ構造のためのトピックキューを定義することができ、次いで、オペレーティングシステムは、アイテムを、定義されたデータ構造のためのデータ値の集合の形式で、アプリケーションのためのトピックキューに直接入れることを認識することができる。
【0027】
オペレーティングシステムは、アプリケーションの表と、アプリケーションが関心を持ち、サポートを宣言したトピックを管理できる。これにより、オペレーティングシステムが一致するデータ構造を発見したときに、そのトピック名を見つけ、そのトピックのサポートを宣言しているすべてのアプリケーションにその構造の内容をプッシュできる。
【0028】
本方法は、定義されたデータ構造のデータ要素のフォーマットに適合する値を識別することができる(ステップ104)。これは、値のパターン認識によって、またはデータ検出の他の既知の方法を使用して行うことができる。これは、日付、アドレスなどを検出するための既知のデータ検出器に類似したオペレーティングシステムの機能を使用することができる。
【0029】
本方法は、定義されたデータ構造のメッセージトピックに関連するアイテムとして、値を抽出し、記憶装置に格納することができる(ステップ105)。例えば、値のアイテムをメッセージキューに格納できる。例えば、設定された期間のもしくはキュー深度までのまたはその両方のアイテムのデータ保持を制御または制限する様々な方法があり得る。これは、オペレーティングシステムレベルで構成することも、ユーザーが構成することもできる。一例では、銀行情報の値のセットは、短期間のみ格納され得る。別の例では、検索アプリケーションが特定のデータ構造を検索した場合、そのメッセージ(データ構造インスタンス)を使用し、そのメッセージを削除できることを確認するためにアプリケーションがメッセージキューに通信し戻すように、方法を構成することができる。
【0030】
アイテムは、データ構造のデータ要素の抽出値を含むことができ、これにはデータ要素のフィールドに関連する関連ラベルを付することができる。アイテムは、定義されたデータ構造のトピックに登録された関心を有するアプリケーションに対して利用可能にすることができる(ステップ106)。トピックに新しいアイテムが使用可能になったときに、トピックに登録された関心を持つすべてのアプリケーションにアイテムがプッシュされたり、またはアプリケーションがトピックからアイテムを定期的にプルしたりすることがある。
【0031】
この方法は、メッセージトピックに登録された関心を有するアプリケーションがアイテムを検索することを可能にし、データ要素の値を、検索アプリケーションにおける一致するデータ構造のフィールドを自動補完するための提案された入力として使用することができる(ステップ107)。この方法は、提案された入力を確認または拒否するためにユーザ入力を促すことができる(ステップ108)。
【0032】
定義されたデータ構造内の各データ要素にラベルを付けることができ、アプリケーションがパブリッシュされた値を検索すると(ステップ107)、アプリケーションは内部ラベルを使用して、データ要素をアプリケーション内の対応するユーザインタフェースラベルに一致させる。
【0033】
図2を参照すると、概略図は、オペレーティングシステム210と、パブリッシュ/サブスクライブメッセージングシステムにおけるパブリッシングアプリケーション230およびサブスクライビングアプリケーション240の役割を有する2つのアプリケーションとを有するコンピューティングデバイス200の状況下における、説明された方法の例示的な実施形態を示す。
【0034】
オペレーティングシステム210は、メッセージングミドルウェア機能を提供するパブリッシュ/サブスクライブメッセージングシステム220を使用する。パブリッシュ/サブスクライブメッセージングシステム220は、情報の提供者が情報の消費者から分離されるメッセージングを提供する。パブリッシャーと呼ばれる情報の提供者は、パブリッシュされたメッセージをトピックに分類し、サブスクライバーは1つまたは複数のトピックに関心を示し、関心のあるメッセージのみを受信する。
【0035】
パブリッシュ/サブスクライブメッセージングシステム220は、異なる定義されたデータ構造に対してメッセージトピックキュー221を定義している。この例では、メッセージトピックは、銀行情報のデータ構造に関するものであってもよい。
【0036】
パブリッシングアプリケーション230は、定義されたデータ構造フォーマットに適合するテキスト、データフィールド、または画像を有することができる。この例では、データ構造231は、認識されたフォーマットのデータの複数の値A232、値B233、値C234を有する認識されたフォーマットの銀行情報であり得る。
【0037】
口座情報の場合、テキストは次の設定フォーマットに従う。
口座名:×××××(4~18文字)(値A232)
口座番号:××××××(8桁)(値B233)
ソートコード:××-××-××(6桁)(値C234)
【0038】
パブリッシングアプリケーション230は、例えば、テキスト編集アプリケーションで開かれたテキストメッセージまたはテキストベースの文書を介して個人の銀行情報を受信したメッセージングアプリケーションまたは電子メールアプリケーションであってもよい。値232、233、234はアイテム222としてデータ構造のメッセージトピックキュー221にパブリッシュされる。いくつかの実施形態では、例えば、銀行の詳細がスクリーンショットとしてキャプチャされている場合、光学式文字認識を使用して画像からデータ値を検出し、検索することができる。
【0039】
サブスクライビングアプリケーション240は、値が同等のデータ構造241に入力されることが要求されるフィールドを有する銀行アプリケーションであるので、メッセージトピックキュー221にサブスクライブすることができる。サブスクライビングアプリケーション240を開いて、ユーザはデータ構造に一致する形式と相互作用することができる。メッセージトピックキュー221からの値232、233、234を有するアイテム222は、サブスクライビングアプリケーション240にパブリッシュされて、サブスクライビングアプリケーション240内の適切なフィールド内で自動補完できるようにすることができる。データ構造がユーザによって受け入れられ、選択された場合、それを使用して、関連する値を銀行アプリケーションの関連する形式のフィールドに自動的に入力することができる。
【0040】
アプリケーションで提供されるトピックキューのより単純な実施形態では、一例として、銀行アプリケーションのインストール時に使用する「口座詳細」のトピックキューを定義する銀行アプリケーションが挙げられる。オペレーティングシステムは、定義された「口座詳細」データ構造に一致するグループを、銀行アプリケーションのトピックキューに入れることを認識する。
【0041】
データ要素のデータ形式は、テキストまたは数字の文字列に制限されない。例えば、ユーザは、あるアプリケーションから別のアプリケーションにデジタル画像をコピーアンドペーストしたい場合があり、デジタル画像だけでなく、画像「alt」属性に定義されたテキストのような関連するHTML属性も含む画像データ構造を識別することができる。他の例と同様に、この方法の利点は、一度に1つのデータだけでなく、関連するデータセットのコピーアンドペースト(または自動提案)を容易に行えることである。
【0042】
記述された方法を使用するデータ共有は、アプリケーションで使用するためにオペレーティングシステムレベルで提供されるロケーションサービスと同様の方法で使用することができる。アプリケーションには、このデータ共有機能を使用したいかどうかを選択するオペレーティングシステム構成オプションがあってよい。
【0043】
また、ユーザは、ユーザのデバイス上で(機能をサポートするアプリケーションのうち)どのアプリケーションに許可するかを選択することもできる。例えば、ユーザは、あるアプリケーションではこの機能を許可し、他のアプリケーションでは許可しないことを決定することができる。必要に応じて、キュー深度とメッセージの保持時間を構成できる。
【0044】
データ構造を格納し、それらを使用することをサブスクライブする性質のため、記載された方法は、迅速かつ自動的な再利用のための適切なデータ構造を収集する。このメソッドは、データ入力を容易にするために動的フォームオブジェクトを生成する。
【0045】
この方法は、使用される既知の標準データ構造(たとえば、銀行口座の詳細、個人識別情報源、クレジットカード、クラブ会員、配送追跡コードなど)が存在する任意のシナリオに適用することができる。
【0046】
図3を参照して、コンピューティング装置300のオペレーティングシステム310上に提供されるデータ値のメッセージングシステムを提供するデータ値転送システム320のコンポーネントのさらなる詳細が説明される。
【0047】
コンピューティング装置300は、少なくとも1つのプロセッサ301、ハードウェアモジュール、または少なくとも1つのプロセッサ上で実行されるソフトウェアユニットであり得る、説明されたコンポーネントの機能を実行するための回路を含み得る。並列処理スレッドを実行する複数のプロセッサを提供して、コンポーネントの機能の一部または全部の並列処理を可能にしてもよい。メモリ302は、コンポーネントの機能を実行するために、コンピュータ命令303を少なくとも1つのプロセッサ301に提供するように構成することができる。
【0048】
データ値転送システム320は、パブリッシュ/サブスクライブメッセージングシステムなどのメッセージングインフラストラクチャを使用することができる。データ値転送システム320は、データ値の転送に関する機能をアプリケーション330に提供するためのデータ値転送アプリケーションインタフェース331を含むことができる。
【0049】
オペレーティングシステム310上で動作することができるアプリケーション330は、例えば、パブリッシングアプリケーションもしくはサブスクライビングアプリケーションまたはその両方として、定義されたデータ構造の値を提供するか、またはその値を検索する機能を有することができる。アプリケーション330は、コンピューティング装置300にダウンロードされてもよく、またはリモートサーバからアクセスされるウェブアプリケーションであってもよい。
【0050】
データ値転送システム320は、メッセージトピックとして複数のデータ構造を定義するためのデータ構造定義コンポーネント321と、値を提供し、値を検索するアプリケーションを構成し、トピックのデータ構造を定義するための構成コンポーネント324とを含むことができる。
【0051】
データ値転送システム320は、アプリケーションによるトピックへの関心を登録するためのトピックコンポーネント322を含むことができる。
【0052】
アプリケーション330からデータ構造のデータ要素の値のアイテムを抽出して受信するアイテム受信コンポーネント323と、定義されたデータ構造の特定のトピック名に関連付けてアイテムを格納するアイテム格納コンポーネント326とを備える。複数のアイテム格納コンポーネント326は、設定された時間の間もしくはキュー深度までまたはその両方で各トピックの値のアイテムを格納するために設けられてもよい。
【0053】
アイテムアクセスコンポーネント325は、トピックに登録されたアプリケーション330が、アプリケーション330内の対応するデータ構造に値を入力するために、アイテムを利用可能にするために設けられてもよい。
【0054】
パブリッシュ/サブスクライブメッセージングシステムでは、アイテム受信コンポーネント323はパブリッシングコンポーネントであってよく、アイテムアクセスコンポーネント325はサブスクリプションコンポーネントであってよく、アイテム格納コンポーネント326はトピックメッセージキューであってよい。
【0055】
データ値転送アプリケーションインタフェース331は、例えば、定義されたデータ要素のフォーマットを有する複数のデータ要素の集合をアプリケーション内で識別するためのパターン認識コンポーネント338を用いて、アプリケーション330で定義されたデータ構造のデータ要素を識別するための識別コンポーネント332と、データ値転送システム320のアイテム受信コンポーネント323にアイテムを提供するためのアイテム提供コンポーネント333とを提供することができる。
【0056】
アプリケーション330におけるデータ値転送アプリケーションインタフェース331は、アイテム格納コンポーネント326からデータ要素の値のアイテムを検索する検索コンポーネント334と、検索されたアイテムの値をアプリケーション330内のフィールドに追加する自動補完コンポーネント335とを備えることができる。確認コンポーネント336は、自動補完値提案を受け入れるか、または拒否するために設けられてもよい。
【0057】
アプリケーション330におけるデータ値転送アプリケーションインタフェース331はまた、アプリケーションがデータ値転送システム320からアイテムを提供および検索できるかどうかを構成するためのアプリケーション構成コンポーネント337を含んでもよい。
【0058】
図4は、本発明の一実施形態による、コンピューティング装置300に使用されるコンピューティングシステムのコンポーネントのブロック図を示す。図4は、1つの実施形態の例示のみを提供し、異なる実施形態が実施され得る環境に関する制限を意味しないことを理解されたい。図示された環境に対して多くの修正を行うことができる。
【0059】
コンピューティングシステムは、すべて通信ファブリック418を介して相互接続された、1つまたは複数のプロセッサ402、1つまたは複数のコンピュータが読み取り可能なRAM404、1つまたは複数のコンピュータが読み取り可能なROM406、1つまたは複数のコンピュータが読み取り可能な記憶媒体408、デバイスドライバ412、読み書きドライブまたはインタフェース414、およびネットワークアダプタまたはインタフェース416を含むことができる。通信ファブリック418は、プロセッサ(マイクロプロセッサ、通信プロセッサ、ネットワークプロセッサなど)、システムメモリ、周辺装置、およびシステム内の任意の他のハードウェアコンポーネントの間でデータもしくは制御情報またはその両方を渡すように設計された任意のアーキテクチャで実施することができる。
【0060】
1つまたは複数のオペレーティングシステム410及びアプリケーションプログラム411は、例えば、1つまたは複数のコンピュータが読み取り可能な記憶媒体408上に格納され、それぞれのRAM404(典型的にはキャッシュメモリを含む)の1つまたは複数を介して1つまたは複数のプロセッサ402によって実行される。図示の実施形態では、コンピュータが読み取り可能記憶媒体408の各々は、本発明の実施形態に従って、内部ハードドライブの磁気ディスク記憶装置、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスクや、RAM、ROM、EPROM、フラッシュメモリなどの半導体記憶装置、またはコンピュータプログラムおよびデジタル情報を格納することができる他の任意のコンピュータが読み取り可能な記憶媒体とすることができる。
【0061】
コンピューティングシステムは、1つまたは複数のポータブルコンピュータが読み取り可能な記憶媒体426に対して読み書きするためのR/Wドライブまたはインタフェース414を含むこともできる。コンピューティングシステム上のアプリケーションプログラム411は、ポータブルコンピュータが読み取り可能な記憶媒体426のうちの1つまたは複数に格納され、それぞれのR/Wドライブまたはインタフェース414を介して読み取られ、それぞれのコンピュータが読み取り可能な記憶媒体408にロードされる。
【0062】
コンピューティングシステムは、TCP/IPアダプタカードまたは無線通信アダプタなどのネットワークアダプタまたはインタフェース416を含むこともできる。コンピューティングシステム上のアプリケーションプログラム411は、ネットワーク(例えば、インターネット、LAN、その他のWAN、またはワイヤレスネットワーク)およびネットワークアダプタまたはインタフェース416を介して、外部コンピュータまたは外部記憶装置からコンピューティング装置にダウンロード可能である。ネットワークアダプタまたはインタフェース416から、プログラムをコンピュータが読み取り可能な記憶媒体408にロードすることができる。ネットワークは、銅線、光ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよびエッジサーバを含むことができる。
【0063】
コンピューティングシステムはまた、ディスプレイスクリーン420、キーボードまたはキーパッド422、およびコンピュータマウスまたはタッチパッド424を含むことができる。デバイスドライバ421は、画像形成のための表示画面420、キーボードまたはキーパッド422、コンピュータマウスまたはタッチパッド424、もしくは英数字文字入力およびユーザ選択の圧力感知のための表示画面420またはその両方にインタフェースする。デバイスドライバ412、R/Wドライブまたはインタフェース414、およびネットワークアダプタまたはインタフェース416は、コンピュータが読み取り可能な記憶媒体408もしくはROM406またはその両方に格納されたハードウェアおよびソフトウェアを含むことができる。
【0064】
コンピューティングシステムは、通信デバイス、スマートフォン、または電話機能を有し、通信チャネル(例えば、携帯電話ネットワーク、データ伝送ネットワーク、WiFiネットワーク、衛星電話ネットワーク、インターネットネットワーク、衛星インターネットネットワークなど)に接続するための通信要素を含むコンピューティング装置であってもよい。
【0065】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータが読み取り可能なプログラム命令を記憶したコンピュータが読み取り可能な記憶媒体を含んでよい。
【0066】
コンピュータが読み取り可能な記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータが読み取り可能な記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータが読み取り可能な記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータが読み取り可能な記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0067】
本明細書に記載されるコンピュータが読み取り可能なプログラム命令は、コンピュータが読み取り可能な記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータが読み取り可能なプログラム命令を受信し、当該コンピュータが読み取り可能なプログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータが読み取り可能な記憶媒体に記憶するために転送する。
【0068】
本発明の動作を実施するためのコンピュータが読み取り可能なプログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができるコンピュータが読み取り可能なプログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータが読み取り可能なプログラム命令の状態情報を利用することによって、コンピュータが読み取り可能なプログラム命令を実行することができる。
【0069】
本発明の各態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータが読み取り可能なプログラム命令によって実行可能である。
【0070】
上記のコンピュータが読み取り可能なプログラム命令は、機械を生産するために、コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。上記のコンピュータが読み取り可能なプログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータが読み取り可能な記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータが読み取り可能な記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0071】
また、コンピュータが読み取り可能なプログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0072】
本開示の図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、1つの工程として達成してもよいし、同時もしくは略同時に実行してもよいし、部分的もしくは全体的に時間的に重複した態様で実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う専用ハードウェアベースのシステムによって、または専用ハードウェアとコンピュータ命令との組み合わせによって実行可能である。
【0073】
本発明のコンピュータプログラム製品は、コンピュータが読み取り可能なプログラムコードが格納された1つまたは複数のコンピュータが読み取り可能なハードウェア記憶装置を含み、前記コンピュータが読み取り可能なプログラムコードは本発明の方法を実施するために1つまたは複数のプロセッサによって実行可能である。
【0074】
本発明のコンピュータシステムは、1つまたは複数のプロセッサ、1つまたは複数のメモリ、および1つまたは複数のコンピュータが読み取り可能なハードウェア記憶装置を含み、前記1つまたは複数のハードウェア記憶装置は、本発明の方法を実施するために、1つまたは複数のメモリを介して1つまたは複数のプロセッサによって実行可能なプログラムコードを含む。
【0075】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。説明された実施形態の範囲および精神から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
【0076】
本発明の範囲から逸脱することなく、上記の改良および修正を行うことができる。
図1
図2
図3
図4