JP2006209774A - コンテキストアウェアネスプラットフォームのためのシステムおよび方法 - Google Patents

コンテキストアウェアネスプラットフォームのためのシステムおよび方法 Download PDF

Info

Publication number
JP2006209774A
JP2006209774A JP2006017101A JP2006017101A JP2006209774A JP 2006209774 A JP2006209774 A JP 2006209774A JP 2006017101 A JP2006017101 A JP 2006017101A JP 2006017101 A JP2006017101 A JP 2006017101A JP 2006209774 A JP2006209774 A JP 2006209774A
Authority
JP
Japan
Prior art keywords
context information
context
software code
executable software
executable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006017101A
Other languages
English (en)
Other versions
JP2006209774A5 (ja
Inventor
Christopher Michael Hahn
マイケル ハーン クリストファー
Kamesh Chander Tumsi Dayakar
チャンダー ツムシ ダヤカール カメシュ
Ravipal Soin
ソイン ラビパル
Ryan Edward Cukierman
エドワード キュキエマン ライアン
Vikram Madan
マダン ビクラム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006209774A publication Critical patent/JP2006209774A/ja
Publication of JP2006209774A5 publication Critical patent/JP2006209774A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】実行環境を適応させるために使用することができるコンテキストアウェアネスプラットフォームのためのシステムおよび方法を提供する。
【解決手段】フレームワークはコンピュータシステムの実行環境についてのコンテキスト情報を設定し、追跡し、取得するインターフェースを備える。フレームワークはプラットフォーム上で稼動している実行可能プログラムによってアクセスするためのコンテキスト情報をプラットフォームレベルで集約するためのコンテキストエンジン208、および統合のデータストアを含む。コンテキストエンジン208は、データストア内のコンテキスト情報の設定、追跡、および取得など、コンテキスト情報オペレーションを実行する旨の要求を実行可能ファイルから受信する。コンテキスト情報の変更の通知を受信すると、1つまたは複数の実行可能プログラムは、システム設定を再構成するなど、実行環境を変える。
【選択図】図4

Description

本発明は一般にコンピュータシステムに関し、より詳細には、実行環境を適応させるために使用することができるコンテキストアウェアネスプラットフォームの改良されたシステムおよび方法に関する。
コンピュータユーザは、コンピュータシステムが新しいまたは変更されたコンピューティング環境および/または動作環境に知的に適応することができないことで、長い間苛立ちを感じていた。この苛立ちは、しばしば複数の物理的な場所で、また様々な環境下で異なる大量のアクティビティを処理する可能性のあるモバイルコンピュータのユーザにとってはなおさら深刻となる。例えば、1日の初めに、モバイルコンピュータのユーザは、家にいて、電子メールやインスタントメッセージングを使用して、家族や友達と対話するかもしれない。次いでその後、モバイルコンピュータのユーザは、職場で会議中にプレゼンテーションを行うかもしれない。モバイルコンピュータのユーザは、夜に、翌日の商談のために飛行機で移動しながら取引申込書を作成しているかもしれない。
残念ながら、ある環境での構成は別の環境ではすでに適切ではなく、変更する必要がある場合でさえ、コンピュータは、こうした異なる環境および使用ごとに同じように構成されたままである場合がある。例えば、ユーザは、家のネットワークと職場のネットワークとの間を移動する場合、物理的な場所を変えるようにモバイルコンピュータを構成する必要がある場合がある。この場合、ユーザは、デフォルトのプリンタ設定、デフォルトのインターネットブラウザホームページ、インターネットブラウザプロキシ設定、および他の関連の設定を変更する必要がある場合がある。また、ユーザは、アクティビティを変更するようコンピュータを構成する必要がある場合もある。例えば、プレゼンテーションを行う準備をしているユーザは、コンピュータのボリュームを調整し、インスタントメッセージ通知をオフにし、スクリーンセーバのタイムアウトをオフにし、他の設定調整を行うかもしれない。また、ユーザは、職場では家で対話する人とは異なる人と対話するようコンピュータを構成する必要がある場合もある。例えば、家では、友人や家族と通信するために、職場で使用する電子メールアカウントとは異なるデフォルトの電子メールアカウントを使用するかもしれない。その結果、モバイルコンピュータのユーザは、コンピューティング環境が変わるたびにモバイルコンピュータを再構成する必要がある場合がある。
コンテキスト情報を使用してコンピュータをコンピューティング環境に知的に適応させることができるように、コンピュータシステムが、物理的な場所、その物理的な場所でユーザが対話する可能性のある人物、ユーザのアクティビティなど、コンピューティング環境に関するコンテキスト情報を収集し、提示する方法が必要である。こうしたシステムおよび方法は、任意の実行可能プログラム(executable)がコンテキスト情報を提供し、または使用して、コンピュータシステムを知的に適応させるように、均一の体系的な方法でコンテキスト情報を収集し、提示するべきである。
簡潔に言えば、本発明は、実行環境を適応させるために使用することができるコンテキストアウェアネスプラットフォームの改良されたシステムおよび方法を提供する。このため、本発明は、コンピュータシステムの実行環境についてのコンテキスト情報を設定し、追跡し、取得するインターフェースを備える構成要素およびフレームワークを提供する。提供される構成要素の中には、例えば、様々な実行可能プログラム、および統合のデータストアを含むデータストレージ設備に動作可能に結合されるコンテキストプラットフォームがある。データストア(データ記憶装置)は、プラットフォーム上で稼動する実行可能プログラムによってアクセスするためのコンテキスト情報の集約をプラットフォームレベルで行うことによって、コンテキストプラットフォームのコンテキスト情報の統合されたストレージを提供する。それだけには限定されないが、ユーザコンテキストデータ、実行可能コンテキストデータ、およびシステムコンテキストデータを含めて、任意のタイプのコンテキスト情報を(データストアに)格納することができる。
コンテキストプラットフォームは、コンテキストプラットフォームの様々な部分と他の実行可能プログラムとの間のプログラムに基づいた対話およびデータ交換を調整するために、コンテキストアプリケーションプログラミングインターフェース、および以下コンテキストエンジンと呼ぶ実行可能コードを含む。コンテキストアプリケーションプログラミングインターフェースは、実行可能プログラムがコンテキスト情報を設定し、追跡し、または取得するために、アクセスを提供する。コンテキスト情報を設定し、追跡し、または取得するために、任意の実行可能プログラムを、コンテキストアプリケーションプログラミングインターフェースに動作可能に結合する。コンテキストエンジンは、データストア内のコンテキスト情報の設定、追跡、および取得など、コンテキスト情報オペレーションを実行する旨の要求を実行可能プログラムから受信する。例えば、コンテキストエンジンは、コンテキスト情報を更新する旨の要求を受信したり、コンテキスト情報の変更について通知されるよう要求した実行可能プログラムを探したり、コンテキスト情報の変更の通知を実行可能プログラムに送信する。コンテキスト情報の変更の通知を受信した結果、1つまたは複数の実行可能プログラムは、システム設定を再構成するなど、実行環境を変えることができる。このように、実行可能プログラムは、コンテキスト情報を使用して、その実行環境を適応させる。
コンテキストプラットフォームは、コンテキスト情報を使用してコンピュータを実行環境に知的に適応させることができるように、コンピュータシステムが、物理的な場所、その物理的な場所でユーザが対話する可能性のある人物、ユーザのアクティビティなど、実行環境に関するコンテキスト情報を有利に収集し、提示する。さらに、コンテキストプラットフォームは、拡張可能であり、コンテキスト情報を提供し、使用し得る任意の数の実行可能プログラムをサポートする。さらに、コンテキストプラットフォームは、任意のサイズおよび/またはフォーマットのデータのコンテキスト情報をサポートする。他の利点は、以下の詳細な説明を図面と併せ読めば、理解できよう。
動作環境の例
図1は、本発明を実施可能な適したコンピューティングシステム環境100の例を示している。コンピューティングシステム環境100は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、コンピューティング環境100を、動作環境100の例に示した構成要素のいずれか1つ、またはその組合せに関連する任意の依存性または必要条件を有していると解釈すべきではない。
本発明は、他の多くの汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明との使用に適したよく知られているコンピューティングシステム、環境、および/または構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、タブレット装置、ヘッドレスサーバ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピューティング環境などがある。
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。また、本発明は、タスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよび/またはリモートのコンピュータ記憶媒体に置くことができる。
図1を参照すると、本発明を実施するシステムの例は、汎用コンピューティング装置をコンピュータ110の形で含んでいる。コンピュータ110の構成要素は、それだけには限定されないが、処理ユニット120、システムメモリ130、およびシステムメモリを含む様々なシステム構成要素を処理ユニット120に結合するシステムバス121を含む。システムバス121は、様々な任意のバスアーキテクチャを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなバス構造でもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子装置規格化協会(VESA)ローカルバス、およびメザニンバスとしても知られている周辺部品相互接続(PCI)バスなどがある。
コンピュータ110は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110からアクセス使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式の媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ110からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号に情報を符号化するように1つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組合せでもコンピュータ可読媒体の範囲内に含まれるものとする。
システムメモリ130は、読み取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム133(BIOS)は、例えば起動中など、コンピュータ110内の要素間での情報の転送を助ける基本ルーチンを含み、一般にROM131に格納されている。RAM132は一般に、処理ユニット120から直接アクセス可能な、および/または処理ユニット120が現在処理しているデータおよび/またはプログラムモジュールを含む。図1は、それだけには限定されないが一例として、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示している。
コンピュータ110は、他の取外式/固定式、揮発性/不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図1は、固定式不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ141、取外式不揮発性磁気ディスク152から読み取り、あるいはそこに書き込む磁気ディスクドライブ151、およびCD−ROMや他の光媒体など、取外式不揮発性光ディスク156から読み取り、あるいはそこに書き込む光ディスクドライブ155を示している。動作環境の例で使用できる他の取外式/固定式、揮発性/不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROMなどがある。ハードディスクドライブ141は一般に、インターフェース140などの固定式メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インターフェース150などの取外式メモリインターフェースによってシステムバス121に接続される。
上述し、図1に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110の他のデータの記憶域を提供する。図1では例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶するように示されている。これらの構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。ユーザは、タブレットまたは電子デジタイザ164、マイクロフォン163、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置161などの入力装置を介してコマンドおよび情報をコンピュータ110に入力することができる。図1には示していない他の入力装置には、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、またはバイオメトリクスセンサ、環境センサ、位置センサ、または他のタイプのセンサを含む装置を含む他の装置などがある。これらおよび他の入力装置は、しばしばシステムバスに結合されているユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など他のインターフェースおよびバス構造で接続してもよい。モニタ191または他のタイプの表示装置もまた、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタ191は、タッチ画面インターフェース192を介してシステムバス121に接続されるタッチ画面パネルなどに一体化することもできる。モニタおよび/またはタッチ画面パネルは、タブレット型パーソナルコンピュータなど、コンピューティング装置110が組み込まれるハウジングに物理的に結合することができることに留意されたい。さらに、コンピューティング装置110などのコンピュータは、出力周辺インターフェース193などを介して接続できるスピーカ194、プリンタ195などの他の周辺出力装置を含むこともできる。
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータ110に関連して上述した多くまたはすべての要素を含むが、図1にはメモリ記憶装置181のみを示している。図1に示した論理接続は、ローカルエリアネットワーク(LAN)171および広域ネットワーク(WAN)173を含むが、他のネットワークを含んでいてもよい。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。LANネットワーキング環境で使用する場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用する場合、コンピュータ110は一般に、モデム172、またはインターネットなどWAN173を介して通信を確立する他の手段を含む。モデム172は、内蔵でも外付けでもよく、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク式環境では、コンピュータ110に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図1は、それだけには限定されないが一例として、リモートアプリケーションプログラム185をメモリ装置181上に存在するように示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
コンテキストアウェアネスプラットフォーム
本発明は一般に、コンテキストアウェアネスプラットフォームのシステムおよび方法を対象とする。コンテキストアウェアネスプラットフォームは、コンテキスト情報を使用してコンピュータを実行環境に知的に適応させることができるように、コンピュータシステムが、物理的な場所、その物理的な場所でユーザが対話する可能性のある人物、ユーザのアクティビティなど、実行環境に関するコンテキスト情報を有利に収集し、提示できるようにする。実行環境は、本明細書で使用する場合、インストールまたは構成の設定、実行可能プログラム命令、オペレーティングシステムサービスなど、実行可能設定を意味する。本発明のアーキテクチャは、コンピュータシステムの実行環境についてのコンテキスト情報を設定し、追跡し、取得するインターフェースを備える構成要素およびフレームワークを提供することがわかる。提供される構成要素の中には、プラットフォーム上で稼動する実行可能プログラムによってアクセスするためのコンテキスト情報の集約をプラットフォームレベルで行うコンテキストエンジンおよび統合のデータストアがある。ユーザコンテキストデータ、実行可能コンテキストデータ、およびシステムコンテキストデータを含めて、任意のタイプのコンテキスト情報を格納することができる。本明細書に示した様々なブロック図、フローチャート、およびシナリオは例にすぎず、本発明を適用するシナリオが他にも多数あり得ることは理解されよう。
図2を参照すると、コンテキストアウェアネスプラットフォームのシステム構成要素のアーキテクチャ例の概略を表すブロック図を示している。図面に示したブロック内で実施される機能を個別の構成要素として実施したり、いくつかのまたはすべてのブロックの機能を単一の構成要素内で実施したりすることができることを当業者であれば理解されよう。一例として、コンテキストプラットフォーム204内のコンテキストAPI206の機能は、個別の構成要素で実施することができる。
図2に示したコンテキストプラットフォーム204は、様々な実行可能プログラム202、およびデータストア210などのストレージ設備に動作可能に結合することができる。コンテキストプラットフォーム204は、コンテキストアプリケーションプログラミングインターフェース(API)206およびコンテキストエンジン208を含む。コンテキストAPI206は、アプリケーションプログラミングインターフェース(API)、オブジェクト、コントロールまたは他の実行可能コードとすることができる。コンテキストAPI206は、例えば、データストア210にコンテキスト情報を追加するSetContextData、データストア210内のコンテキスト情報の更新が通知されるTrackContextData、データストア210内のコンテキスト情報を取り出すGetContextDataなど、呼び出し可能なインターフェースを含めることによって、コンテキスト情報を設定し、追跡し、または取得するアクセスを提供することができる。コンテキスト情報を操作(コンテキスト情報の情報処理の意、ここではコンテキスト情報のオペレーションを実行すること)するために、他のコンテキストAPIを使用することもできる。
コンテキストエンジン208は、カーネル構成要素、アプリケーション構成要素、リンクライブラリの構成要素、オブジェクトなどを含む、任意の実行可能ソフトウェアコードとすることができる。コンテキストエンジン208は、データストア210内のコンテキスト情報の設定、追跡、および取得など、コンテキスト情報オペレーションを実行する旨の要求を実行可能ソフトウェアコードから受信することができる。例えば、コンテキストエンジン208は、コンテキスト情報の更新または変更が通知される旨の要求を追跡し、追跡されるよう要求したコンテキスト情報の更新または変更を受信すると、実行可能プログラムに通知することができる。コンテキスト情報を永続的に格納するために、コンテキストエンジン208を、データストア210などの様々なストレージ設備に動作可能に結合することができる。コンテキストエンジン208は、コンテキスト情報を格納するために使用することができる、コンテキスト情報を表すコンテキストデータのブロックに、GUIDなどの一意の識別子を関連付けることができる。
データストア210は、プラットフォーム上で稼動する実行可能プログラムによってアクセスするためのコンテキスト情報の集約をプラットフォームレベルで行うことによって、コンテキストプラットフォーム204のコンテキスト情報の統合されたストレージを提供することができる。データストアは、コンテキストタイプを格納することができる。コンテキストタイプは、データブロックのビットによって表されるコンテキスト情報の識別子として働くGUIDとすることができる。コンテキスト情報は、本明細書で使用する場合、それだけには限定されないが、場所、アクティビティ、および状態の情報を含む論理的および物理的な実行環境についての任意の情報を含む。実際に、コンテキスト情報は、任意のサイズ、任意のフォーマット、または任意のタイプのデータとすることができる。例えば、コンテキスト情報は、バイナリデータ、フォーマット済みデータ、音声またはビデオなどのメディアデータ、人間可読データ、XML、暗号化されたデータなどを含む。データストア210に格納されている様々なコンテキスト情報の中には、ユーザコンテキストデータ212、実行可能コンテキストデータ214、およびシステムコンテキストデータ216がある。ユーザコンテキストデータ212は、Webをサーフィンする、プレゼンテーションプログラムを使用するなど、ユーザのアクティビティについての情報を含む。実行可能コンテキストデータ214は、プログラム設定、開いたファイルなど、実行可能プログラムの状態についての情報を含む。また、システムコンテキストデータ216は、バッテリ電力レベルのようなハードウェア装置の状態、ネットワーク接続など、システム状態についての情報を含む。
実行可能プログラムは、アプリケーションプログラム、カーネル構成要素、またはコンテキスト情報を提供または取得し、および/またはコンテキスト情報の変更に従ってそのコンピューティング環境を適応させることができる他の実行可能プログラムとすることができる。コンテキスト情報を設定し、追跡し、取得するために呼び出し可能なインターフェースにアクセスするように、実行可能プログラム202をコンテキストAPI206に動作可能に結合することができる。例えば、Microsoft(登録商標)Windows(登録商標)XPオペレーティングシステムのNetwork Location Awareness(NLA)サービスは、SetContextData APIを呼び出して、ネットワークのコンテキスト情報を新しいネットワーク接続に設定することによって、ネットワークの変更を監視し、ネットワーク情報をコンテキストプラットフォームに提供することができる。コンテキストエンジンは、ネットワーク接続を関連付ける新しい値を受信して、ネットワーク接続のコンテキスト情報の変更について通知されるべきTrackContext APIを呼び出した実行可能プログラムを検索することができる。次いでコンテキストエンジンは、ネットワーク接続のコンテキスト情報の変更の通知をこれらの実行可能プログラムに送信することができる。ネットワーク接続の変更の通知を受信した結果、1つまたは複数の実行可能プログラムは、デフォルトのプリンタ設定、デフォルトのインターネットブラウザホームページ、インターネットブラウザプロキシ設定など、システム設定を変更することができる。このように、実行可能プログラムは、コンテキスト情報の更新の通知があり次第、コンテキスト情報を使用してその実行環境を適応させることができる。
図3は、代替実施形態におけるコンテキストアウェアネスプラットフォームのシステム構成要素のアーキテクチャ例の概略を表すブロック図を示している。図2とともに説明したシステム構成要素に加えて、管理下のコンテキストアプリケーションプログラミングインターフェース304をコンテキストAPI206に動作可能に結合して、管理下のコードを使用してコンテキストプラットフォーム302を実施することができる。管理下のコードとは、Microsoft(登録商標).NET Platformのために開発されたソフトウェアコードを指し、Microsoft(登録商標)Common Language Runtime(CLR)によって使用することができるメタデータを含む。有利には、.NETランタイムは、メモリの割り振り、メモリの再利用、型チェック、および他のデータ関連のタスクなど、データ関連のタスクを管理することができる。管理下のコンテキストAPI304は、2つの静的メソッドSetContextおよびGetContextを備えるContextClientオブジェクト、およびウィンドウメッセージと直接対話するより、.NET相互運用アセンブリを使用して実行可能プログラムがコンテキスト情報イベントを受信できるようにする1組の非静的メソッドを含む。管理下のコンテキストAPI304は、コンテキストAPI206に動作可能に結合し、上述したコンテキストAPI206を使用して、.NET相互運用アセンブリを用いてコンテキストエンジン208と通信する。
SetContextメソッドは、コンテキストのタイプについての新しいコンテキスト情報を提供するために実行可能プログラムによって使用することができる。コンテキストのタイプは、メソッドに渡されるオブジェクトのタイプによって決定することができる。コンテキストエンジンは、メソッドに渡されるオブジェクトに対応するGUIDにコンテキスト情報を関連付けることによって、コンテキスト情報を格納することができる。実行可能プログラムは、GetContextメソッドを使用して、特定のタイプのコンテキストの現在のコンテキスト情報を取得することができる。コンテキストエンジンは、コンテキストのタイプのGUIDを使用して、SetContextメソッドへの前回の呼び出しによってデータストアに書き込まれる、格納済みコンテキスト情報を検索する。
管理下のコンテキストAPI304は、ContextClientと呼ばれるオブジェクトによってアクセス可能なイベント機構も含む。ContextClientは、OldContext、NewContext、ContextTypeおよびStaleなどのプロパティとともにContextChangedEventArgsを使用することができるContextChangedという名前のイベント、およびContextChangedEventHandlerという名前のイベントハンドラを提示することができる。OldContextプロパティおよびNewContextプロパティは、イベントの受信側が適切な行動を起こすことができるように、コンテキストの状態が変更される前または後に、イベントの受信側がそれを決定する。ContextTypeは、このイベントにおけるオブジェクトのタイプを表す。最後に、Staleフラグは、このコンテキスト情報が依然として揮発性メモリに存在しているという条件で、実行可能プログラムであるかどうかを示すために使用する。
図4は、コンテキストプラットフォームの様々な実装形態に含むコンテキストエンジンのシステム構成要素のアーキテクチャ例の概略を表すブロックエンジンを示している。コンテキストエンジン208は、メッセージキューからコンテキスト情報オペレーションを実行する旨の要求を受信し、コンテキスト情報の更新でデータストア210を更新し、実行可能プログラム202に変更を通知する。コンテキストエンジン208は、メッセージキュー402、コンテキストメッセージプロセッサ404、コンテキストデータ406、コンテキスト通知キュー414、コンテキストノーティファイア416、通知テーブル418、および1つまたは複数のノーティファイアスレッド420を含む。一実施形態において、コンテキスト情報オペレーションの実行可能プログラムによって送信された要求がメッセージキュー402で受信されるたびに、オペレーティングシステムは、コンテキストメッセージプロセッサ404をディスパッチして、メッセージを処理する。コンテキストエンジン208によって受信されるメッセージは、コンテキスト情報をコンテキストデータ406に追加するSetContextData要求、コンテキストデータ406内のコンテキスト情報への更新が通知されるTrackContextData要求、およびコンテキストデータ406からコンテキスト情報を取り出すGetContextData要求を含む。
コンテキストメッセージプロセッサ404は、コンテキスト情報406によって示されるように、コンテキスト情報をメモリに格納する。コンテキストデータ406に格納されている様々なコンテキスト情報の中には、ユーザコンテキストデータ408、実行可能コンテキストデータ410、およびシステムコンテキストデータ412がある。コンテキストエンジン208は、コンテキスト情報を含む関連のデータブロックとともに、コンテキスト情報をGUIDとして格納する。GetContextData要求を受信するたびに、コンテキストメッセージプロセッサ404は、コンテキストデータ406から要求されたコンテキスト情報を取得し、コンテキスト情報のコピーを共有メモリバッファやメモリマップファイル、またはディスク上のファイルやシステムレジストリなどの他の共有場所に入れて、通知を受信すると実行可能プログラムがそれを読み取り可能とする。SetContextData要求が受信されるたびに、コンテキストメッセージプロセッサ404は、SetContextData要求内のコンテキスト情報をコンテキストデータ406に追加することによってコンテキストデータ406を更新し、コンテキストメッセージプロセッサ404は、コンテキスト通知キュー414にコンテキスト情報を入れる。一実施形態において、コンテキスト情報は、古いコンテキスト情報、新しいコンテキスト情報、およびこのコンテキスト情報の更新が通知されるよう要求した実行可能プログラムのリストを含む更新オブジェクトとすることができる。別の実施形態において、実行可能プログラムのリストを1つまたは複数のコンテキストタイプまたはGUIDに関連付ける通知テーブル418に、コンテキスト情報内の更新が通知されるよう要求した実行可能プログラムのリストを別々に格納してもよい。コンテキスト情報をコンテキスト通知キュー414に入れた後、コンテキストノーティファイア416を起動させる。一実施形態において、コンテキストノーティファイア416は、コンテキストエンジン208によって生じたスレッドとしてもよい。コンテキストノーティファイア416は、コンテキスト通知キュー414からコンテキスト情報の更新を読み取り、このコンテキスト情報の更新が通知されるよう要求した各実行可能プログラムに通知メッセージを送信する。
一実施形態において、コンテキストノーティファイア416は、通知メッセージをコンテキスト情報とともに非同期で送信する1つまたは複数のノーティファイアスレッド420を作成して、個々の実行可能プログラムに、コンテキスト情報の更新を通知することができる。したがって、ノーティファイアスレッド上の任意の実行可能プログラムによる同期ブロックは、他の通知が送信されるのを防止せず、任意の1つの実行可能プログラムに以前送信された通知の完了を要求することなく、任意の数の通知を実行可能プログラムに送信することができる。コンテキスト情報の更新の通知を受信すると、実行可能プログラムは、共有メモリバッファやメモリマップファイルなどの共有場所からコンテキスト情報の更新にアクセスする。
定期的に、コンテキストエンジン208は、コンテキストデータ406内のコンテキスト情報をデータストア210などの永続ストレージに書き込む。コンテキストエンジン208は、永続ストレージに通知テーブル418を書き込んでもよい。一実施形態において、コンテキストエンジン208は、非アクティブ期間の後でスリープになる。スリープになるのに先立って、コンテキストエンジン208は、永続ストレージに、コンテキストデータ406および通知テーブル418を書き込む。デフォルトの非アクティブ期間は、例えば1時間とすることができる。様々な実施形態において、ユーザアクティビティの予想される期間に適した他の期間を使用してもよい。一部の実施形態において、期間は、ユーザによって設定することができる。コンテキストエンジンは、起動される場合、永続ストレージからコンテキストデータを読み込み、それをコンテキストデータ406に書き込んだり、永続ストレージから通知リストを読み込み、それを通知テーブル418に書き込む。
実行可能プログラムは、他の実行可能プログラムによって使用するためのコンテキスト情報を提供することを望む場合はいつでも、1組の要求をコンテキストエンジンに送信する。図5は、コンテキスト情報を設定する一実施形態において実行可能プログラムによって引き受けられるステップ例の概略を表すフローチャートを示している。ステップ502で、コンテキストの変更が最初に検出される。次いでステップ504で、コンテキスト情報を設定する旨の要求が送信される。例えば、Microsoft(登録商標)Windows(登録商標)XPオペレーティングシステムのNetwork Location Awareness(NLA)サービスなどの実行可能プログラムは、ネットワークの変更を監視し、新しいネットワーク接続を検出することができる。次いで実行可能プログラムは、SetContextData APIを呼び出して、ネットワークのコンテキスト情報を新しいネットワーク接続に設定することによって、ネットワーク情報をコンテキストプラットフォームに提供することができる。
図6は、コンテキスト情報を追跡する一実施形態において実行可能プログラムによって引き受けられるステップ例の概略を表すフローチャートを示している。まず、ステップ602で、コンテキスト情報を追跡する旨の要求が送信される。例えば、コンピュータシステムのデフォルトのプリンタ設定の責任を負う実行可能プログラムは、TrackContextData APIを呼び出して、ネットワーク接続についてのコンテキスト情報への更新が通知される旨の追跡要求をコンテキストプラットフォームに送信する。次に、ステップ604で、コンテキスト情報の更新の通知を受信する。次いでステップ606で、コンテキスト情報の更新を取得する。例えば、デフォルトのプリンタ設定の責任を負う前の例の実行可能プログラムは、新しいネットワーク接続についてのコンテキスト情報の更新の通知を受信し、新しいネットワーク接続についてのコンテキスト情報の更新のコピーを共有メモリバッファまたはメモリマップファイルから取り出す。最後に、ステップ608で、実行可能プログラムは、コンテキスト情報の更新に従って適応(adapt)する。したがって、デフォルトのプリンタ設定の責任を負う前の例の実行可能プログラムのような実行可能プログラムは、例えばデフォルトのプリンタ設定を新しいネットワーク接続に使用される設定に変更することによって、コンテキスト情報の更新に従ってその実行環境を適応させることができる。
図7は、コンテキスト情報を取得する一実施形態において実行可能プログラムによって引き受けられるステップ例の概略を表すフローチャートを示している。まず、ステップ702で、コンテキスト情報を取得する旨の要求が送信される。例えば、ブラウザのデフォルトのホームページを設定する責任を負う実行可能プログラムは、GetContextData APIを呼び出して、ネットワークのコンテキスト情報を取得する。次に、ステップ704で、コンテキスト情報の通知を受信する。最後に、ステップ706で、実行可能プログラムは、取得されたコンテキスト情報に従って適応することが。例えば、ブラウザのデフォルトのホームページを設定する責任を負う前の例の実行可能プログラムは、デフォルトのホームページ設定を、ネットワーク接続に使用される設定に変更する。
図8は、要求されたコンテキスト情報オペレーションを実行する一実施形態においてコンテキストエンジンによって引き受けられるステップ例の概略を表すフローチャートを示している。実装は、同じ効果を達成しながら、また本発明の範囲から逸脱することなく、これらのステップを異なる順序で実行することを選択したり、効率や柔軟性の目的でこれらのステップの一部のみを実行したりすることを選択できることを当業者であれば理解されよう。ステップ802で、コンテキスト情報オペレーションを受信する。コンテキストエンジン208は、例えば、実行可能プログラムからコンテキスト情報オペレーションを受信する。ステップ804で、受信されたコンテキスト情報オペレーションはコンテキスト情報を設定する旨の要求であるかどうかを決定する。そうである場合、ステップ806で、コンテキスト情報をメモリ内に格納されているコンテキストデータの表現に追加し、ステップ808で、コンテキスト情報をコンテキスト通知キューに入れる。一実施形態において、コンテキストエンジン208は、設定要求内のコンテキスト情報をコンテキストデータ406に追加し、次いでコンテキストエンジン208は、コンテキスト情報をコンテキスト通知キュー414に入れる。
ステップ810で、このコンテキスト情報の更新が通知されるよう要求した任意の実行可能プログラムが、このコンテキスト情報の更新について通知される実行可能プログラムのリスト内で検索される。例えば、一実施形態において、実行可能プログラムのリストをコンテキストタイプまたはGUIDに関連付ける通知テーブル418などの通知テーブルに、このコンテキスト情報の更新が通知されるよう要求した実行可能プログラムのリストを別々に格納する。別の実施形態において、このコンテキスト情報の更新が通知されるよう要求した実行可能プログラムのリストは、数ある情報の中でも、更新されたコンテキスト情報を含む更新オブジェクト内に格納することができる。
ステップ811で、このコンテキスト情報の更新が通知されるべき実行可能プログラムのリストに含まれるよう要求した実行可能プログラムがあるかどうかが決定される。ある場合、ステップ812で、このコンテキスト情報の更新が通知されるよう要求した実行可能プログラムのリストに、通知を送信する。一実施形態において、コンテキストノーティファイア416は、コンテキスト通知キュー414からコンテキスト情報の更新を読み取り、このコンテキスト情報の更新が通知されるよう要求した各実行可能ファイルに通知メッセージを送信することができる。様々な実施形態において、コンテキストノーティファイア416は、通知メッセージをコンテキスト情報とともに非同期で送信する1つまたは複数のノーティファイアスレッド420を作成して、個々の実行可能ファイルにコンテキスト情報の更新を通知する。
ステップ812で、このコンテキスト情報の更新が通知されるよう要求した実行可能プログラムのリストに通知を送信した後、またはステップ811で、このコンテキスト情報の更新が通知されるべき実行可能プログラムのリスト内に含まれるよう要求した実行可能プログラムがないと決定された場合、ステップ814で、コンテキスト情報の更新を永続的に格納する。例えば、コンテキストエンジン208は、コンテキストデータ406内の更新されたコンテキスト情報をデータストア210などの永続ストレージに定期的に書き込む。非アクティブ期間の後、コンテキストエンジン208は、一実装形態において、スリープになるのに先立って、コンテキストデータ406を永続ストレージに書き込んでもよい。更新されたコンテキスト情報が永続的に格納された後、処理が終了する。
ステップ804に戻って、受信されたコンテキスト情報オペレーションが設定要求ではなかった場合、ステップ816で、受信されたコンテキスト情報オペレーションがコンテキスト情報を追跡する旨の要求であるかどうかを決定する。そうである場合、ステップ818で、コンテキスト情報の更新が通知される実行可能プログラムのリストを更新する。次に、ステップ820で、コンテキスト情報の更新が通知される実行可能プログラムの更新済みリストを永続的に格納する。例えば、コンテキストエンジン208は、通知テーブル418内の実行可能プログラムの更新済みリストを永続ストレージに定期的に書き込む。別の実施形態において、コンテキストエンジン208は、数ある情報の中でも更新済みのコンテキスト情報を含む更新オブジェクト内の実行可能プログラムの更新済みリストを永続ストレージに定期的に書き込む。非アクティブ期間の後、コンテキストエンジン208は、様々な実施形態において、スリープになるのに先立って、実行可能プログラムの更新済みリストを永続ストレージに書き込んでもよい。通知されるべき実行可能プログラムの更新済みリストが永続的に格納された後、処理が終了する。
ステップ816に戻って、受信されたコンテキスト情報オペレーションが追跡要求ではなかった場合、ステップ822で、受信されたコンテキスト情報オペレーションがコンテキスト情報を取得する旨の要求であるかどうかを決定する。そうである場合、ステップ824で、コンテキスト情報が取り出される。例えば、一実施形態において、コンテキストエンジン208は、コンテキストデータ406からコンテキスト情報を取得する。別の実施形態において、コンテキストエンジン208は、データストア210からコンテキスト情報を取得する。次に、ステップ826で、コンテキスト情報を要求側に送信する。コンテキスト情報を、取得要求を送信した実行可能プログラムに送信した後、処理が終了する。一実施形態において、取得要求の送信に応答して任意の実行可能プログラムがコンテキスト情報を受信するたびに、このコンテキスト情報の更新が通知されるよう要求した実行可能プログラムのリストに通知を送信してもよい。
有利には、このシステムおよび方法は、コンテキスト情報を使用してコンピュータを実行環境に知的に適応させることができるように、コンピュータシステムが実行環境についてのコンテキスト情報を収集し、提示する。実行可能プログラムは、コンテキスト情報の単一の項目を使用することによって実行環境を適応させ、またはコンテキスト情報の複数の項目を使用することによって実行環境を適応させる。さらに、実行可能プログラムは、使用可能なコンテキスト情報を使用して、コンテキスト情報を設定し、または実行環境を適応させるのに、他の実行可能プログラムから独立して動作し、またはいくつかの実行可能プログラムとともに動作する。プラットフォームで稼動している任意の実行可能プログラムがコンテキスト情報を提供または使用して、コンピュータシステムを知的に適応させてユーザの生産性を向上させるように、コンテキスト情報を、プラットフォームレベルで統合のデータストアに集約する。
上記の詳細な説明からわかるように、本発明は、実行環境を適応させるために使用することができるコンテキストアウェアネスプラットフォームの改良されたシステムおよび方法を提供する。本発明のアーキテクチャは、コンテキスト情報を設定し、追跡し、取得するインターフェースを備える構成要素およびフレームワークを提供する。提供されるシステムおよびフレームワークは拡張可能である。ユーザコンテキストデータ、実行可能コンテキストデータ、およびシステムコンテキストデータを含めて、任意のタイプのコンテキスト情報を使用することができる。コンテキスト情報を提供し、または使用する任意の数の実行可能プログラムをサポートすることができる。したがって、このシステムおよび方法は、現代のコンピューティングに必要なかなりの利点および利益を提供することがわかる。
本発明は、様々な変更および代替の構成が可能であるが、示したいくつかの実施形態を図面に示し、上記で詳しく説明している。しかし、本発明を開示した特定の形に限定する意図はなく、逆に、本発明は、本発明の意図および範囲内に含まれるすべての変更形態、代替の構造、および均等物をカバーすることを理解されたい。
本発明を組み込むことができるコンピュータシステムの概略を表すブロック図である。 本発明の一態様によるコンテキストアウェアネスプラットフォームの一実施形態におけるシステム構成要素のアーキテクチャ例の概略を表すブロック図である。 本発明の一態様によるコンテキストアウェアネスプラットフォームの別の実施形態におけるシステム構成要素のアーキテクチャ例の概略を表すブロック図である。 本発明の一態様によるコンテキストプラットフォームの様々な実施形態に含まれるコンテキストエンジンのシステム構成要素のアーキテクチャ例の概略を表すブロック図である。 本発明の一態様によるコンテキスト情報を設定する一実施形態において実行可能プログラムによって引き受けられるステップ例の概略を表すフローチャートである。 本発明の一態様によるコンテキスト情報を追跡する一実施形態において実行可能プログラムによって引き受けられるステップ例の概略を表すフローチャートである。 本発明の一態様によるコンテキスト情報を取得する一実施形態において実行可能プログラムによって引き受けられるステップ例の概略を表すフローチャートである。 本発明の一態様による要求されたコンテキスト情報オペレーションを実行する一実施形態においてコンテキストエンジンによって引き受けられるステップ例の概略を表すフローチャートである。
符号の説明
120 処理ユニット
121 システムバス
130 システムメモリ
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 固定式不揮発性メモリインターフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 取外式不揮発性メモリインターフェース
160 ユーザ入力インターフェース
161 マウス
162 キーボード
163 マイク
164 タブレット
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 広域ネットワーク
180 リモートコンピュータ
185 リモートアプリケーションプログラム
190 ビデオインターフェース
191 モニタ
192 タッチ画面インターフェース
193 出力周辺インターフェース
194 スピーカ
195 プリンタ

Claims (20)

  1. 実行可能プログラムにコンテキスト情報を提供するコンピュータシステムであって、
    実行可能ソフトウェアコードと、
    前記実行可能ソフトウェアコードに動作可能に結合されたコンテキスト構成要素であって、コンテキスト情報オペレーションを要求するために実行可能ソフトウェアコードによって呼び出し可能なアプリケーションプログラミングインターフェースを有するコンテキスト構成要素と、
    前記コンテキスト構成要素に動作可能に結合されたコンテキストエンジンであって、前記実行可能ソフトウェアコードによって要求された前記コンテキスト情報オペレーションを実行するコンテキストエンジンと、
    前記コンテキストエンジンに動作可能に結合された統合のデータストアであって、コンテキスト情報を永続的に格納する統合のデータストアと
    を含むことを特徴とするコンピュータシステム。
  2. コンテキスト情報オペレーションを要求するために前記実行可能ソフトウェアコードによって呼び出し可能な前記アプリケーションプログラミングインターフェースは、コンテキスト情報を設定するよう要求するアプリケーションプログラミングインターフェースを含むことを特徴とする請求項1に記載のシステム。
  3. コンテキスト情報オペレーションを要求するために前記実行可能ソフトウェアコードによって呼び出し可能な前記アプリケーションプログラミングインターフェースは、コンテキスト情報を取得するよう要求するアプリケーションプログラミングインターフェースを含むことを特徴とする請求項1に記載のシステム。
  4. コンテキスト情報オペレーションを要求するために前記実行可能ソフトウェアコードによって呼び出し可能な前記アプリケーションプログラミングインターフェースは、コンテキスト情報の変更を追跡するよう要求するアプリケーションプログラミングインターフェースを含むことを特徴とする請求項1に記載のシステム。
  5. 前記コンテキストエンジンは、前記実行可能ソフトウェアコードによって要求された前記コンテキスト情報オペレーションを実行するコンテキストメッセージプロセッサを含むことを特徴とする請求項1に記載のシステム。
  6. 前記コンテキストエンジンは、通知メッセージを前記コンテキスト情報とともに前記実行可能ソフトウェアコードに送信するコンテキストノーティファイアを含むことを特徴とする請求項1に記載のシステム。
  7. 前記コンテキストエンジンは、通知メッセージを前記コンテキスト情報とともに前記実行可能ソフトウェアコードに非同期で送信するノーティファイアスレッドを含むことを特徴とする請求項1に記載のシステム。
  8. 前記統合のデータストアは、ユーザアクティビティ、アプリケーション状態、およびマシン状態のコンテキスト情報を永続的に格納するデータストアを含むことを特徴とする請求項1に記載のシステム。
  9. 請求項1に記載の前記システムを含むコンピュータ実行可能構成要素を有することを特徴とするコンピュータ可読媒体。
  10. 実行可能ソフトウェアコードにコンテキスト情報を提供する方法であって、
    実行可能ソフトウェアコードのコンテキスト情報を設定するアプリケーションプログラミングインターフェースを呼び出すステップと、
    前記実行可能ソフトウェアコードの前記コンテキスト情報を設定するステップと、
    前記実行可能ソフトウェアコードの前記コンテキスト情報を取得するアプリケーションプログラミングインターフェースを呼び出すステップと、
    ユーザアクティビティ、アプリケーション状態、およびマシン状態のコンテキスト情報を含む統合のデータストアから前記実行可能ソフトウェアコードの前記コンテキスト情報を取得するステップと
    を含むことを特徴とする方法。
  11. 前記実行可能ソフトウェアコードのコンテキスト情報を設定する旨の要求を受信するステップをさらに含むことを特徴とする請求項10に記載の方法。
  12. 前記実行可能ソフトウェアコードのコンテキスト情報を追跡する旨の要求を受信するステップをさらに含むことを特徴とする請求項10に記載の方法。
  13. 前記実行可能ソフトウェアコードのコンテキスト情報を取得する旨の要求を受信するステップをさらに含むことを特徴とする請求項10に記載の方法。
  14. 前記コンテキスト情報の更新を実行可能ソフトウェアコードに通知するステップをさらに含むことを特徴とする請求項10に記載の方法。
  15. 通知メッセージを前記コンテキスト情報とともに前記実行可能ソフトウェアコードに非同期で送信する通知スレッドを作成するステップをさらに含むことを特徴とする請求項14に記載の方法。
  16. 前記コンテキスト情報を、ユーザアクティビティ、アプリケーション状態、およびマシン状態のコンテキスト情報を含む統合のデータストアに永続的に格納するステップをさらに含むことを特徴とする請求項10に記載の方法。
  17. 前記実行可能ソフトウェアコードの命令を実行するために取得された前記コンテキスト情報を使用して、前記実行可能ソフトウェアコードの実行環境を変更するステップをさらに含むことを特徴とする請求項10に記載の方法。
  18. 請求項10に記載の前記方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
  19. 実行可能プログラムにコンテキスト情報を提供するコンピュータシステムであって、
    コンテキスト情報オペレーションを実行するためにアプリケーションプログラミングインターフェースを呼び出す手段と、
    前記コンテキスト情報オペレーションを実行する手段と、
    実行可能ソフトウェアコードの前記コンテキスト情報を取得するアプリケーションプログラミングインターフェースを呼び出す手段と、
    前記実行可能ソフトウェアコードの前記コンテキスト情報を取得する手段と
    を含むことを特徴とするコンピュータシステム。
  20. ユーザアクティビティ、前記実行可能ソフトウェアコードの状態、および前記コンピュータシステムの状態のコンテキスト情報を含む統合のデータストア内に前記コンテキスト情報を永続的に格納する手段をさらに含むことを特徴とする請求項19に記載のシステム。
JP2006017101A 2005-01-26 2006-01-26 コンテキストアウェアネスプラットフォームのためのシステムおよび方法 Pending JP2006209774A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/044,354 US7716651B2 (en) 2005-01-26 2005-01-26 System and method for a context-awareness platform

Publications (2)

Publication Number Publication Date
JP2006209774A true JP2006209774A (ja) 2006-08-10
JP2006209774A5 JP2006209774A5 (ja) 2009-04-23

Family

ID=36603024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006017101A Pending JP2006209774A (ja) 2005-01-26 2006-01-26 コンテキストアウェアネスプラットフォームのためのシステムおよび方法

Country Status (5)

Country Link
US (1) US7716651B2 (ja)
EP (1) EP1686465A3 (ja)
JP (1) JP2006209774A (ja)
KR (1) KR101224721B1 (ja)
CN (1) CN1811704B (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104593A (ja) * 2007-09-20 2009-05-14 Intel Corp コンテクスト情報の集計、解析及び利用のためのコンテクストプラットフォームフレームワーク
JP2010152890A (ja) * 2008-12-19 2010-07-08 Intel Corp コンテキスト・アウェア・プラットホーム内でのセンサの取扱い
JP2010267146A (ja) * 2009-05-15 2010-11-25 Hitachi Ltd コンピュータ資源割り当てシステム、コンピュータ資源割り当て方法、シンクライアント端末、およびターミナルサーバ
JP2011529607A (ja) * 2008-07-28 2011-12-08 マイクロソフト コーポレーション アプリケーション変更に対する状態分離
JP2014506363A (ja) * 2010-12-30 2014-03-13 アップル インコーポレイテッド プレディケートを用いた動的なデバイス・コンフィグレーション
JP2015022476A (ja) * 2013-07-18 2015-02-02 キヤノン株式会社 情報処理端末、制御方法、及びプログラム
WO2015170473A1 (ja) * 2014-05-09 2015-11-12 日本電気株式会社 アプリケーション自動制御システム、アプリケーション自動制御方法およびプログラム記録媒体
JP2016197460A (ja) * 2010-12-21 2016-11-24 マイクロソフト テクノロジー ライセンシング,エルエルシー ペルソナベースのアプリケーションエクスペリエンスの提供
JP2016536707A (ja) * 2013-09-04 2016-11-24 インテル・コーポレーション 複数のモバイルコンピューティングデバイスのための動的なストレージ管理の促進メカニズム

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7735019B2 (en) * 2007-04-25 2010-06-08 International Business Machines Corporation Method for providing functional context within an actively scrolling view pane
US20090138478A1 (en) * 2007-11-27 2009-05-28 Motorola, Inc. Method and Apparatus to Facilitate Participation in a Networked Activity
US8112552B2 (en) * 2008-02-25 2012-02-07 Microsoft Corporation Default peripheral device selection based on location
US20090222300A1 (en) * 2008-03-03 2009-09-03 The Coca-Cola Company Systems and Methods of Marketing to Defined Consumer Groups
US8533227B2 (en) * 2008-05-14 2013-09-10 Red Hat, Inc. Managing website blacklists
US8321843B2 (en) * 2009-02-09 2012-11-27 Tranxition Corporation Automatic analysis of an application's run-time settings
US20120096114A1 (en) * 2009-04-09 2012-04-19 Research In Motion Limited Method and system for the transport of asynchronous aspects using a context aware mechanism
US9736675B2 (en) * 2009-05-12 2017-08-15 Avaya Inc. Virtual machine implementation of multiple use context executing on a communication device
US9135144B2 (en) * 2009-10-22 2015-09-15 Freescale Semiconductor, Inc. Integrated circuits and methods for debugging
US8606889B2 (en) * 2010-01-21 2013-12-10 Microsoft Corporation Roaming application settings across multiple computing devices
US9002924B2 (en) 2010-06-17 2015-04-07 Microsoft Technology Licensing, Llc Contextual based information aggregation system
GB2484715A (en) * 2010-10-21 2012-04-25 Vodafone Ip Licensing Ltd Communication terminal with situation based configuration updating
US10409576B2 (en) 2010-10-29 2019-09-10 Intuit, Inc. Chained data processing and application utilization
US20120108172A1 (en) * 2010-10-29 2012-05-03 Microsoft Corporation Personal digital context
US10026058B2 (en) 2010-10-29 2018-07-17 Microsoft Technology Licensing, Llc Enterprise resource planning oriented context-aware environment
JP5177239B2 (ja) 2011-01-21 2013-04-03 沖電気工業株式会社 コンテキストアウェアシステム及びイベントデータ生成方法
US9544396B2 (en) * 2011-02-23 2017-01-10 Lookout, Inc. Remote application installation and control for a mobile device
US8996687B2 (en) 2011-05-31 2015-03-31 At&T Intellectual Property I, L.P. Context-based computing framework
US8645969B2 (en) 2011-08-19 2014-02-04 Qualcomm Incorporated Method for dynamic discovery of processors and processor capabilities
US9069899B2 (en) * 2012-06-27 2015-06-30 Microsoft Technology Licensing, Llc Integrating diagnostic information in development environment
US9203891B2 (en) * 2013-03-13 2015-12-01 Qualcomm Incorporated System and method to enable web property access to a native application
US20150121343A1 (en) * 2013-10-25 2015-04-30 Microsoft Corporation Test impact analysis using cross reference data and metadata
EP3100137B1 (en) * 2014-01-30 2019-06-12 Hewlett-Packard Development Company, L.P. Context based mobile device
WO2016048345A1 (en) * 2014-09-26 2016-03-31 Hewlett Packard Enterprise Development Lp Computing nodes
US10659594B2 (en) 2015-02-12 2020-05-19 American University Of Beirut Context aware mobile personalization system and methods of use
KR20170092409A (ko) * 2016-02-03 2017-08-11 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US11477302B2 (en) 2016-07-06 2022-10-18 Palo Alto Research Center Incorporated Computer-implemented system and method for distributed activity detection
US10552442B1 (en) 2016-08-29 2020-02-04 Amazon Technologies, Inc. Stateful database application programming interface
US10572315B1 (en) * 2016-08-29 2020-02-25 Amazon Technologies, Inc. Application programming interface state management
US10476860B1 (en) 2016-08-29 2019-11-12 Amazon Technologies, Inc. Credential translation
US10901760B2 (en) 2018-03-05 2021-01-26 Microsoft Technology Licensing, Llc View augmentation in multiscreen environment
CN108469990A (zh) * 2018-03-14 2018-08-31 北京思特奇信息技术股份有限公司 一种并行计算方法及***
CN113254112A (zh) * 2021-04-29 2021-08-13 杭州天谷信息科技有限公司 一种请求和接口的关联方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003085528A1 (en) * 2002-04-11 2003-10-16 International Business Machines Corporation Computer, computer security setting method, and program
JP2003323363A (ja) * 2002-04-30 2003-11-14 Fujitsu Ltd 環境設定装置、環境設定プログラム、および情報処理装置
JP2004005269A (ja) * 2002-05-31 2004-01-08 Toshiba Corp データ取得方法、電子機器およびデータ取得プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6512525B1 (en) * 1995-08-07 2003-01-28 Apple Computer, Inc. Multiple personas for mobile devices
US6401138B1 (en) * 1996-10-28 2002-06-04 Koninklijke Philips Electronics N.V. Interface for patient context sharing and application switching
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6298378B1 (en) * 1998-12-04 2001-10-02 Sun Microsystems, Inc. Event distribution system for computer network management architecture
US7289102B2 (en) * 2000-07-17 2007-10-30 Microsoft Corporation Method and apparatus using multiple sensors in a device with a display
US7072956B2 (en) * 2000-12-22 2006-07-04 Microsoft Corporation Methods and systems for context-aware policy determination and enforcement
US20030131142A1 (en) * 2001-03-14 2003-07-10 Horvitz Eric J. Schema-based information preference settings
WO2002099597A2 (en) * 2001-06-07 2002-12-12 Unwired Express, Inc. Method and system for providing context awareness
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7260553B2 (en) * 2002-01-11 2007-08-21 Sap Aktiengesellschaft Context-aware and real-time tracking
US20040122892A1 (en) * 2002-12-24 2004-06-24 Brittenham Peter J. Method, apparatus, and computer-program product for event service declaration, registration, and notification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003085528A1 (en) * 2002-04-11 2003-10-16 International Business Machines Corporation Computer, computer security setting method, and program
JP2003323363A (ja) * 2002-04-30 2003-11-14 Fujitsu Ltd 環境設定装置、環境設定プログラム、および情報処理装置
JP2004005269A (ja) * 2002-05-31 2004-01-08 Toshiba Corp データ取得方法、電子機器およびデータ取得プログラム

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104593A (ja) * 2007-09-20 2009-05-14 Intel Corp コンテクスト情報の集計、解析及び利用のためのコンテクストプラットフォームフレームワーク
US9304791B2 (en) 2008-07-28 2016-04-05 Microsoft Technology Licensing, Llc State separation for virtual applications
JP2011529607A (ja) * 2008-07-28 2011-12-08 マイクロソフト コーポレーション アプリケーション変更に対する状態分離
US8984512B2 (en) 2008-07-28 2015-03-17 Microsoft Technology Licensing, Llc State separation for applications
KR101618901B1 (ko) 2008-07-28 2016-05-09 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 애플리케이션 변경들을 위한 상태 분리
US8402174B2 (en) 2008-12-19 2013-03-19 Intel Corporation Handling sensors in a context-aware platform with hint signals
JP2010152890A (ja) * 2008-12-19 2010-07-08 Intel Corp コンテキスト・アウェア・プラットホーム内でのセンサの取扱い
JP2010267146A (ja) * 2009-05-15 2010-11-25 Hitachi Ltd コンピュータ資源割り当てシステム、コンピュータ資源割り当て方法、シンクライアント端末、およびターミナルサーバ
JP2016197460A (ja) * 2010-12-21 2016-11-24 マイクロソフト テクノロジー ライセンシング,エルエルシー ペルソナベースのアプリケーションエクスペリエンスの提供
US10165079B2 (en) 2010-12-21 2018-12-25 Microsoft Technology Licensing, Llc Providing a persona-based application experience
JP2014506363A (ja) * 2010-12-30 2014-03-13 アップル インコーポレイテッド プレディケートを用いた動的なデバイス・コンフィグレーション
JP2015022476A (ja) * 2013-07-18 2015-02-02 キヤノン株式会社 情報処理端末、制御方法、及びプログラム
JP2016536707A (ja) * 2013-09-04 2016-11-24 インテル・コーポレーション 複数のモバイルコンピューティングデバイスのための動的なストレージ管理の促進メカニズム
WO2015170473A1 (ja) * 2014-05-09 2015-11-12 日本電気株式会社 アプリケーション自動制御システム、アプリケーション自動制御方法およびプログラム記録媒体

Also Published As

Publication number Publication date
KR101224721B1 (ko) 2013-01-21
US20060200834A1 (en) 2006-09-07
EP1686465A3 (en) 2009-01-28
US7716651B2 (en) 2010-05-11
EP1686465A2 (en) 2006-08-02
KR20060086305A (ko) 2006-07-31
CN1811704A (zh) 2006-08-02
CN1811704B (zh) 2010-06-23

Similar Documents

Publication Publication Date Title
JP2006209774A (ja) コンテキストアウェアネスプラットフォームのためのシステムおよび方法
KR101949998B1 (ko) 컴퓨팅 객체의 콘텍스트 히스토리
CN102349062B (zh) 浏览器缓存与远程仓库同步的方法和***
JP5268945B2 (ja) ユーザーインターフェースの表示を管理する方法
US7945531B2 (en) Interfaces for a productivity suite application and a hosted user interface
US8631414B2 (en) Distributed resource management in a portable computing device
US8615755B2 (en) System and method for managing resources of a portable computing device
US9317344B2 (en) Power efficient brokered communication supporting notification blocking
US20120284354A1 (en) Method and system for dynamically creating and servicing master-slave pairs within and across switch fabrics of a portable computing device
US8601484B2 (en) System and method for managing resources and markers of a portable computing device
JP2005259138A (ja) 非統合ツールの統合アーキテクチャ
CN110168509B (zh) 集成应用问题检测和改正控制
US8312138B2 (en) Methods and computer program products for identifying and monitoring related business application processes
US8627340B2 (en) Managing events generated from business objects
US8719704B2 (en) Seamless integration of additional functionality into enterprise software without customization or apparent alteration of same
US20080127301A1 (en) Delivering Callbacks Into Secure Application Areas
US20190227678A1 (en) Providing document feature management in relation to communication
US7716343B2 (en) System and method for operating a networked software application on a network with sporadic connectivity
WO2018217406A1 (en) Providing instant preview of cloud based file
US20240211306A1 (en) Techniques for handling polling frequency in event delivery network (edn)
US9026618B2 (en) System and method for expanding PC-based software capabilities
CN114816203B (zh) 适用于网盘盘符的快捷操作方法、装置、终端及存储介质
WO2024093700A1 (zh) 服务流转方法、装置及存储介质
WO2023202406A1 (zh) 显示方法及电子设备
US20230034196A1 (en) Techniques for providing synchronous and asynchronous data processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120706