JP2005129067A - 状態変化をアプリケーションに通知するための柔軟性のあるアーキテクチャ - Google Patents
状態変化をアプリケーションに通知するための柔軟性のあるアーキテクチャ Download PDFInfo
- Publication number
- JP2005129067A JP2005129067A JP2004310058A JP2004310058A JP2005129067A JP 2005129067 A JP2005129067 A JP 2005129067A JP 2004310058 A JP2004310058 A JP 2004310058A JP 2004310058 A JP2004310058 A JP 2004310058A JP 2005129067 A JP2005129067 A JP 2005129067A
- Authority
- JP
- Japan
- Prior art keywords
- notification
- state
- client
- state property
- value
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Telephone Function (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】 クライアントが、状態プロパティの変化について通知を受け取るように通知ブローカに登録する。登録された状態プロパティが変化すると、通知ブローカは、どのクライアントにその状態変化を通知するかを判定し、その変化に関する通知をそのクライアントに提供する。状態が変化したときはいつでも、または状態変化が所定の条件を満たすとき、またはスケジュールに基づいてクライアントに通知することができる。また、状態変化に応答してアプリケーションを起動することもできる。デバイス内の様々なコンポーネントにわたって状態変化情報にアクセスする統一された方法を提供するアプリケーションプログラミングインタフェース(API)が提供される。
【選択図】 図3
Description
図1を参照すると、本発明を実施するための例示的なシステムが、コンピューティングデバイス100のようなコンピューティングデバイスを含んでいる。コンピューティングデバイス100は、クライアントまたはサーバとして構成することができる。非常に基本的な構成では、コンピューティングデバイス100は、通常、少なくとも1つの処理装置102およびシステムメモリ104を含む。コンピューティングデバイスのはっきりした構成およびタイプに応じて、システムメモリ104は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはこの2つの何らかの組み合わせとすることができる。システムメモリ104は、通常、オペレーティングシステム105、1つまたは複数のプログラムモジュール106を含み、プログラムデータ107を含むことがある。この基本的な構成は、図1に破線108内のコンポーネントによって例示されている。
図3は、本発明の態様による例示的な状態管理−通知システムを示している。通知システム300は、状態変化コンポーネント310、クライアント315および320、通知ブローカ335およびデータストア330を含む。一実施形態によれば、通知ブローカ335は、通知リスト340、キャッシュプロパティ345およびスケジューラ350も保持する。
初心者ノームが、今シーズンの野球統計(例えば、チーム、プレーヤー、得点、統計など)の完全なデータベースを保持するC#アプリケーションを構築している。彼は、スポーツウェブサイトに接続して、更新された日々の統計をプルダウンすることができる簡単なXMLウェブサービスも構築している。このアプリケーションが格納するデータの量は比較的大きいため、ノームは、「太いパイプ(fat pipe)」(例えば、802.1x)がデバイス(例えば、PPC)上で利用できるときにだけ、自身のアプリケーションがデータを同期することを望んでいる。次に、ノームは、高帯域幅接続が利用可能なときに通知のための通知要求を通知ブローカ335に送ることにより、自身のアプリケーションを登録する。ノームは、高帯域幅接続が利用可能なときに自身のアプリケーションを起動するように通知要求の中でさらに指定する。接続に関連付けられた状態変化コンポーネントが接続の状態を更新する際、その状態により接続が高速接続であることが示されるとき、通知ブローカ335はノームのアプリをアクティブ化する。
企業開発者エルフが、保険査定人の使用のためのフィールドサービスのフォームベースのVB.Netアプリケーションを構築している。このアプリケーションは、保険査定人がパーツ番号および費用を調べたり、ノートを取ったり、自動車の図面を取り出したりすることができるようにする。毎日、保険査定人は、自身のモバイルコンピューティングデバイスをフィールドで携行して、顧客にサービスを提供する。アプリケーションは、本日の作業についてのデータのすべてをデータストアにローカルで保存する。エルフは、デバイスがクレイドルにドッキングされるたびに、アプリケーションが、オフラインストアを会社のメインサーバと同期させることを望む。それゆえ、エルフは、同期クレイドルイベントに関する通知のために自身のアプリケーションを登録する。デバイスがクレイドルにドッキングされたときはいつでも、アプリケーションは通知を受け、そのデータを同期させる。
電話ゲーム開発者ゴーレムが、電話機のための次世代マルチプレーヤーRPGを構築している。彼は、ゲームが非常に人気を博して、一度に数週間にも、数ヶ月にもわたって続けられることを予期している。ゴーレムの重要な関心事の1つは、ユーザの介入なしにゲームの状態を維持することである。このゲームの巧妙な特徴の1つは、電話機のバッテリが尽きる直前に、現在の状態を保存し、ユーザが何らのデータも決して失わないことを確実にすることができることである。ゴーレムは、デバイスのバッテリが尽きる前にゲーム情報が保存されることを確実にするために、自身のアプリケーションを登録して、バッテリ低下通知を受け取る。
新進の企業管理クライアント開発者エリックが、クライアント更新、ウイルススキャン、ポリシー実施、その他を扱うことができる次世代のモバイルコンピューティングデバイスおよび電話管理クライアントを作成することを目指している。C#を使用して、彼は、サーバ駆動のコマンドに基づいて要求を扱うことができるパワーデバイス側クライアントを構築している。毎晩午前3時に、エリックは、更新されたポリシー、ウイルススキャナシグニチャなどのためにサーバにコンタクトすることができるように、自身のアプリケーションが「ウェークアップ」することを望んでいる。これを達するために、彼は、単に、スケジュールされた通知(毎日午前3時)について、自身のアプリケーションを通知ブローカ335に登録する。これでエリックは、自身のアプリが指定された時刻に稼働するであろうことを保証される。
本発明の一実施形態によれば、2つのAPIを使用して、通知システムにおける状態情報にアクセスすることができる。ネイティブ、つまり基礎となるAPIが提供され、管理されたAPIが、クライアントに提供される。管理されたAPIは、ネイティブAPIにアクセスしてその操作を行う。
#define E_ALREADY_REGISTERED ERROR_ALREADY_REGISTERED
#define E_DATATYPE_MISMATCH ERROR_DATATYPE_MISMATCH
#define E_INSUFFICIENT_BUFFER ERROR_INSUFFICIENT_BUFFER
#define E_INVALID_HANDLE ERROR_INVALID_HANDLE
#define E_NOT_FOUND ERROR_NOT_FOUND
#define E_NOT_READY ERROR_NOT_READY
DECLARE_HANDLE(HREGNOTIFY);//一時的な通知ハンドル
//***********************************************************
//列挙名:REG_COMPARISONTYPE
//目的:条件付き変化通知について、状態プロパティ値が目標値とどのように比較される
//べきかを定義するために使用。REG_COMPARISONTYPEを実行する際、変化した値が、l値
//として使用される、つまり、REG_CT_LESSは、変化した値が目標値より小さい場合、
//通知を発することを意味する。
//
//説明:
//以下は、比較が行われた場合にどのステートメントが真となるかを示す。大文字と小文
//字を区別しないCompareStringを使用してストリングを比較そ、以下の情報を使用して
//REG_COMPARISONTYPE値のインテントを明確にする。
//「cv」が、変化した値を表し、「psz」または「dw」が、NOTIFICATIONCONDITION構造の
//中で指定されたTargetValueを表すものとする。「1」が、psz(wcslen(psz))において指
//定された文字列の長さを表し、「cvl」が、変化した値(wcslen(cv))の文字列長を表す
//ものとする。
// REG_SZ REG_DWORD
// REG_CT_EQUAL |(0==strcmp(cv,psz)) |(cv==dw)|
// REG_CT_NOT_EQUAL |(0!=strcmp(cv,psz)) |(cv!=dw)|
// REG_CT_GREATER |(0<strcmp(cv,psz)) |(cv>dw)|
// REG_CT_GREATER_OR_EQUAL |(0<=strcmp(cv,psz)) |(cv>=dw)|
// REG_CT_LESS |(0>strcmp(cv,psz)) |(cv<dw)|
// REG_CT_LESS_OR_EQUAL |(0>=strcmp(cv,psz)) |(cv<=dw)|
// REG_CT_CONTAINS |(0!=strstr(cv,psz)) |N/A|
// REG_CT_STARTS_WITH |(0==strncmp(cv,psz,1)) |N/A|
// REG_CT_ENDS_WITH |(0==strcmp(cv+cvl-1,psz)) |N/A|
//**********************************************
typedef enum tagREG_COMPARISONTYPE
{
REG_CT_EQUAL,
REG_CT_NOT_EQUAL,
REG_CT_GREATER,
REG_CT_GREATER_OR_EQUAL,
REG_CT_LESS,
REG_CT_LESS_OR EQUAL,
REG_CT_CONTAINS,
REG_CT_STARTS_WITH,
REG_CT_ENDS_WITH
} REG_COMPARISONTYPE;
//***********************************************************
//構造名:NOTIFICATIONCONDITION
//
//目的:プロパティ状態変化通知が発せられるべき条件を定義するのに使用
//
//説明:
//REG_COMPARISONTYPE ctComparisonType - 変化した値をTargetValueにおいて指定され
//た値とどのように比較するか
//DWORD dwMask - この値が0に設定されていない場合、TargetValueは、DWORDとして解
//釈される。このマスクは、比較が行われる前に、変化したDWORD値に適用され、このマ
//スクは、TargetValueには適用されない。この値が0に設定されている場合、
//TargetValueは、文字列として解釈される。
//union TargetValue - dwMaskが0に設定されている場合、比較は、pszと変化した値の
//間で行われる。dwMaskが0以外の何らかの値に設定されている場合、比較は、dwとマス
//クされた(dwMask参照)変化した値の間で行われる。変化した値がREG_SZタイプでも、
//REG_DWORDタイプでもない場合、または変化した値がREG_DWORDタイプであり、dwMask
//が0に設定されている場合、または変化した値がREG_SZタイプであり、dwMaskが0に設定
//されていない場合、通知は無視される。変化した値が削除されており、比較がdwに対し
//て行われる場合、0が変化した値として使用され、比較は、通常どおり行われる。
//値が削除され、比較がpszに対して行われる場合、NULLが変化した値として使用され、
//REG_CT_EQUALおよびREG_CT_NOT_EQUALだけが、比較によって処理され、何らかの他の
//ctComparisonTypeが使用される場合、削除通知は無視される。
//***********************************************************
typedef struct tagNOTIFICATIONCONDITION
{
REG_COMPARISONTYPE ctComparisonType;
DWORD dwMask;
union
{
LPCTSTR psz;
DWORD dw;
}TargetValue;
} NOTIFICATIONCONDITION;
////関数プロトタイプ:REGISTRYNOTIFYCALLBACK
//
//目的:RegisterNotifyCallbackによって使用されるコールバックのプロトタイプを定義
//
//引数
//IN HREGNOTIFY hNotify - 有効なHREGNOTIFYに対するハンドル、これは、
//RegistryNotifyCallbackから戻されるのと同じハンドルである
//IN DWORD dwUserData - RegistryNotifyCallbackに渡されたユーザデータ
//IN const PBYTE pData - 値の新たな値に対するポインタ、これは、値が削除された場
//合、NULLに設定される
//IN const UNIT cbData - pDataによってポイントされるバイト数、この値は、値が削
//除された場合、0に設定されることになる
//
//説明:
//このコールバックは、RegistryNotifyCallbackを使用して通知のために登録された
//クライアントに通知するために使用。さらなる通知が要求されない場合、このコール
//バック内からRegistryCloseNotificationをコールするのが安全である。
//
//***********************************************************
typedef void(*REGISTRYNOTIFYCALLBACK)(HREGNOTIFY hNotify,
DWORD dwUserData,
const PBYTE pData,
const UINT cbData);
//***********************************************************
//関数名:RegistryGetDWORD
//
//目的:REG_DWORDレジストリ値を読み取るのに使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 取り出すべき値の名前(既定値を取り出すためにNULL
//とすることができる)
//OUTDWORD*pdwData - 値に関連付けられたデータを受け取ることになるバッファに対
//するポインタ
//
//戻り値:
//HRESULT
//S_OK - データがバッファにコピーされた
//E_INVALIDARG - hKeyまたはpdwDataが無効である
//E_DATATYPE_MISMATCH - 値がREG_DWORDタイプではない
//RegOpenKeyExまたはRegQueryValueExから戻されたエラー値はFACILITY_WIN32 HRESULT
//としてラップ
//
//結果:
//SUCCEEDED - pDataが値に関連付けられたデータにポイントしている
//FAILED - 変化なし
//
//説明:
//値に関連付けられたDWORDが、pDataによってポイントされるバッファにコピーされる。
//hKey+pszSubKeyによってポイントされるキーが存在しない場合、RegistryGetDWORDは、
//キーにアクセスするのにRegOpenKeyを使用するので、失敗することになる
//
//***********************************************************
HRESULT WINAPI RegistryGetDWORD(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
DWORD * pdwData);
//***********************************************************
//関数名:RegistryGetString
//
//目的:REG_SZレジストリ値を読み取るのに使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 取り出すべき値の名前(既定値を取り出すためにNULL
//とすることができる)
//OUT LPSTR pszData - 値に関連付けられたデータを受け取ることになるバッファに
//対するポインタ
//IN UNIT cchData - pDataによってポイントされるバッファの文字の長さである変数に
//対するポインタ
//
//戻り値:
//HRESULT
//S_OK - データがバッファにコピーされた
//E_INVALIDARG - hKeyまたはpszDataが無効である
//E_DATATYPE_MISMATCH - 値がREG_SZタイプではない
//E_INSUFFICIENT_BUFFER - cchDataによって判定されたpszDataによってポイントされ
//るバッファのサイズが、文字列を保持するのに十分に大きくない
//RegOpenKeyExまたはRegQueryValueExから戻されたエラー値はFACILITY_WIN32 HRESULT
//としてラップ
//
//結果:
//SUCCEEDED - pDataが値に関連付けられたデータにポイントしている
//FAILED - 変化なし
//
//説明:
//値に関連付けられた文字列が、pDataによってポイントされるバッファにコピーされる
//hKey+pszSubKeyによってポイントされるキーが存在しない場合、RegistryGetStringは
//キーにアクセスするのにRegOpenKeyを使用するので、失敗することになる
//
//***********************************************************
HRESULT WINAPI RegistryGetString(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
LPTSTR pszData,
UINT cchData);
//***********************************************************
//関数名:RegistrySetDWORD
//
//目的:REG_DWORDレジストリ値を設定するのに使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 設定すべき値の名前(既定値を設定するためにNULL
//とすることができる)
//IN DWORD dwData - 新たな値
//
//戻り値:
//HRESULT
//S_OK - pszValueNameのデータ値がdwDataの中のデータに変更された
//E_INVALIDARG - hKeyが無効である
//E_DATATYPE_MISMATCH - 値がREG_DWORDタイプではない
//RegOpenKeyExまたはRegQueryValueExから戻されたエラー値はFACILITY_WIN32 HRESULT
//としてラップ
//
//結果:
//SUCCEEDED - 値に関連付けられたデータが変更された
//FAILED - 変化なし
//
//説明:
//値に関連付けられたデータが、新たな値に変更される。hKey+pszSubKeyによってポイン
//トされたキーが存在しない場合、RegistryGetDWORDは、キーにアクセスするのにRegOpe
//nKeyを使用するので、失敗することになる
//
//***********************************************************
HRESULT WINAPI RegistrySetDWORD(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
DWORD dwData);
//***********************************************************
//関数名:RegistrySetString
//
//目的:REG_SZレジストリ値を設定するのに使用
//
//引数:
//IN HKEY hKey - 現在、開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 設定すべき値の名前(既定値を設定するためにNULL
//とすることができる)
//IN LPCTSTR pszData - 新たな値。この文字列はNULLで終了される
//
//戻り値:
//HRESULT
//S_OK - pszValueNameのデータ値がpszDataの中のデータに変更された
//E_INVALIDARG - hKeyまたはpszDataが無効である
//E_DATATYPE_MISMATCH - 値がREG_SZタイプではない
//RegOpenKeyExまたはRegQueryValueExから戻されたエラー値はFACILITY_WIN32 HRESULT
//としてラップ
//StringCbLengthから戻されたエラーHRESULT
//
//結果:
//SUCCEEDED - 値に関連付けられたデータが変更された
//FAILED - 変化なし
//
//説明:
//値に関連付けられたデータが、新たな値に変更される。hKey+pszSubKeyによってポイン
//トされるキーが存在しない場合、RegistrySetStringは、キーにアクセスするのにRegOp
//enKeyを使用するので、失敗することになる
//
//***********************************************************
HRESULT WINAPI RegistrySetString(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
LPCTSTR pszData);
//***********************************************************
//関数名:RegistryTestExchangeDWORD
//
//目的:条件に基づいて値をアトミック的に設定するのに使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 設定すべき値の名前(既定値を設定するためにNULL
//とすることができる)
//IN DWORD dwOldValue チェックする値
//IN DWORD dwNewValue - 条件付きで設定する値
//
//戻り値:
//HRESULT//S_OK - データがdwNewValueに変更された
//S_FALSE - pszValueNameに関連付けられたDWORDがdwOldValueに等しくなかったので、
//目標値がdwNewValueに設定されなかった
//E_INVALIDARG - ハンドルまたは渡されたポインタの1つが無効であった
//E_DATATYPE_MISMATCH - 値がREG_DWORDタイプではない
//E_NOT_FOUND - 値を指定されたキーの下で見つけることができなかった
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - pszDataに関連付けられたデータ値が、dwOLDValueであったが、現在は、
//dwNewValueである
//FAILED - 変化なし
//
//説明:
//この関数は、インターロックされた関数である。換言すれば、アトミックであると考え
//ることができる。この関数は、pszValueNameに関連付けられたDWORD値がOldValueに等
//しいかどうかをチェックする。等しい場合、この関数は、目標をNewValueに設定し、
//それ以外の場合、失敗することになる
//
//***********************************************************
HRESULT WINAPI RegistryTestExchangeDWORD(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
DWORD dwOldValue,
DWORD dwNewValue);
//***********************************************************
//関数名:RegistryNotifyApp
//
//目的:指定された値が変更されたとき、アプリケーションが起動されるか、または通知
//を受けることを要求するのに使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 変化通知が要求される値の名前(既定値を示すために
//NULLとすることができる)
//IN LPCTSTR pszName - この通知要求を表すユーザ定義の文字列。この文字列は、通知
//がもはや必要とされないとき、RegistryStopNotificationに渡されなければならない
//IN LPCTSTR pszApp - 起動する実行可能ファイルへのパスである文字列に対するポイ
//ンタ
//IN LPCTSTR pszClass - 実行可能ファイルが起動されるか、または実行可能ファイル
//が、既に実行中である場合、IN LPCTSTR pszWindowというウインドウ名およびクラス
//タイプを有するウインドウがプロセスにおいて特定され、通知がそのウインドウに送
//られる。これらのパラメータの両方ともNULLである場合、この関数は、アプリケー
//ションだけを起動することになる。
//IN UINT msg - ウインドウに渡されることになるメッセージ
//IN NOTIFICATIONCONDITION * pCondition - 新たなレジストリ値に対する条件の比較が
//真である場合に変化通知が送られるべき条件(いかなる変化も通知をもたらすべきこと
//を示すためにNULLとすることができる)
//
//戻り値:
//HRESULT
//S_OK - 通知の要求が、通知リストに追加された
//E_INVALIDARG - hKey、pszAppまたはpszNameが無効である
//E_ALREADY_REGISTERED pszNameによって指定された名前に等しい名前を有する通知
//が既に存在する
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - これでこの値の変更が行われるたびに、呼び出し元が通知を受けること
//になる。
//FAILED - 変化なし
//
//説明:
//通知要求が通知リストに追加される。呼び出し元がRegistryStopNotificationをコール
//して、さらなる通知を停止する。このタイプの通知要求は、永久的である、つまり、デ
//バイスがリセットされた場合でも通知要求はアクティブである。通知時、この関数は、
//pszAPPにおいて指定された名前を有する実行可能ファイルが既に実行されているかどう
//かを、pszClassおよびpszWindowで指定されたクラス名およびウインドウ名に対して
//FindWindowを実行することにより判定し、実行中でない場合、アプリケーションを起動
//する。アプリケーションに渡されるコマンドラインは、ユーザによって指定された任意
//のコマンドラインに加えて、pszApp文字列において指定されなければならず、以下のも
//のが付加される。
// /notify “pszName”
// pszName - pszNameパラメータにおいて関数に渡されるハンドル文字列
//アプリケーションが起動された後、pszClassおよびpszWindowにおいて指定されたクラ
//ス名およびウインドウ名を有するウインドウを探すFindWindowが実行される。ウインド
//ウが見つかった場合、msgによって指定されたメッセージが、PostMessageを介して、
//RegistryNotifyWindowと同様にポストされる。PostMessageに対するパラメータは、
//以下のとおりである。
// WPARAM - REG_DWORDタイプの値について、これは新たな値または値が削除された場
//合、0であり、他のすべてのタイプについて、この値は0である
// LPARAM - 0
//msgパラメータは、クライアントが複数の通知を区別することができるように、Registr
//yNotifyAppに対する各コールに対して固有でなければならない。クライアントは、値が
//追加されたときならびに変更時に通知を受けることになる。通知が着信したとき、psz
//Appによってポイントされるアプリケーションを起動することができないか、またはpsz
//Classタイプのクラスを有するウインドウを見つけることができないか、またはPostMes
//sageが失敗した場合、通知は通知リストから削除されることになる。
//
//***********************************************************
HRESULT WINAPI RegistryNotifyApp(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
LPCTSTR pszName,
LPCTSTR pszApp,
LPCTSTR pszClass,
LPCTSTR pszWindow,
UINT msg,
NOTIFICATIONCONDITION * pCondition);
//***********************************************************
//関数名:RegistryNotifyWindow
//
//目的:指定された値が変更されたとき、ウインドウが通知を受けることを要求するのに
//使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 変化通知が要求される値の名前(既定値を示すためにNUL
//Lとすることができる)
//IN HWND hWnd - メッセージが送られることになるウインドウのハンドル
//IN UINT msg - ウインドウに渡されることになるメッセージ
//IN DWORD dwUserData - 通知とともにユーザに返送されることになるユーザデータ
//IN NOTIFICATIONCONDITION * pCondition - 新たなレジストリ値に対する条件の比較が
//真であるときに変化通知が送られるべき条件(いかなる変化も通知をもたらすべきこと
//を示すためにNULLとすることができる)
//OUT HREGNOTIFY * phNotify - 通知要求に対するハンドルを受け取る。このハンドルは
//、このキーに関する通知がもはや必要とされないとき、RegistryCloseNotificationを
//使用して閉じられなければならない。
//
//戻り値:
//HRESULT
//S_OK - 通知の要求が、通知リストに追加された
//E_INVALIDARG - hKey、phNotify、またはhWndが無効である
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - これでこの値の変更が行われるたびに、呼び出し元が通知を受けること
//になる。
//FAILED - 変化なし
//
//説明:
//msgパラメータは、クライアントが複数の通知を区別することができるように、Registr
//yNotifyWindowに対する各コールに対して固有でなければならない。通知要求が、通知
//リストに追加される。呼び出し元が、RegistryCloseNotificationをコールして、さら
//なる通知を停止し、通知ハンドルを閉じる。このタイプの通知要求は、一時的である、
//つまり、デバイスがリセットされた場合、通知要求はもはや存在しないことになる。
//pszValueNameによって指定された値が変更されると、クライアントが、PostMessageを
//介して通知を受ける。PostMessageが失敗するか、またはhWndによって指定されたウイ
//ンドウがもはや有効ではない場合、通知要求が通知キューから削除され、phNotifyにお
//いて戻されたハンドルが閉じられる。
//PostMessage上で渡されるパラメータは、以下のとおりである。
// WPARAM - REG_DWORDタイプの値について、これは新たな値または値が削除された場
//合、0であり、他のすべてのタイプについて、この値は0である
// LPARAM dwUserData上で渡される値
//RegistryNotifyWindowに対するコールの時点で値が存在しない場合、クライアントは、
//値が追加されたときに通知を受けることになる。
//
//***********************************************************
HRESULT WINAPI RegistryNotifyWindow(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
HWND hWnd,
UINT msg,
DWORD dwUserData,
NOTIFICATIONCONDITION * pCondition,
HREGNOTIFY * phNotify);
//***********************************************************
//関数名:RegistryNotifyMsgQueue//
//目的:指定された値が変更されたときにメッセージキューが通知を受けるように要求す
//るのに使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 変化通知が要求される値の名前(既定値を示すためにNUL
//Lとすることができる)
//IN LPCTSTR pszMsgQueue - 通知すべきメッセージキューの名前である文字列に対する
//ポインタ。このメッセージキューがまだ作成されていない場合、RegistryNotifyMsgQue
//ueがそのキューを作成することになる。
//IN DWORD dwUserData - 通知とともにユーザに返送されることになるユーザデータ
//IN NOTIFICATIONCONDITION * pCondition - 新たなレジストリ値に対する条件の比較が
//真である場合に変化通知が送られるべき条件(いかなる変化も通知をもたらすべきこと
//を示すためにNULLとすることができる)
//OUT HREGNOTIFY * phNotify - 通知要求に対するハンドルを受け取る。このハンドルは
//、このキーに関する通知がもはや必要とされないとき、RegistryCloseNotificationを
//使用して閉じられなければならない。
//
//戻り値:
//HRESULT
//S_OK - 通知の要求が、通知リストに追加された
//E_INVALIDARG - hKey、phNotify、またはpszMsgQueueが無効である
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - これでこの値の変更が行われるたびに、呼び出し元が通知を受けること
//になる。
//FAILED - 変化なし
//
//説明:
//通知要求が、通知リストに追加される。呼び出し元が、RegistryCloseNotificationを
//コールして、さらなる通知を停止し、通知ハンドルを閉じる。このタイプの通知要求は
//、一時的である。つまり、デバイスがリセットされた場合、通知要求はもはや存在しな
//いことになる。クライアントは、メッセージキューを介して変更について通知されるこ
//とになる。クライアントが通知を受けると、ReadMsgQueue関数を使用して変更されたキ
//ーに関する情報を取り出すことができる。戻されるデータは、以下のフォーマットであ
//る。
//|HREGNOTIFY hNotify|DWORD dwUserData|UINT byte count|BYTE[] new value|
//hNotify - phNotifyにおいて戻されるのと同じhNotify
//dwUserData - dwUserDataとして渡されるユーザデータ
//byte count - 後に続くバイトの数(削除の場合、この値は0)
//new value - pszValueNameの新たな値
//RegistryNotifyMsgQueueに対するコールの時点で値が存在しない場合、クライアントは
//、値が追加されたときに通知を受けることになる。
//
//***********************************************************
HRESULT WINAPI RegistryNotifyMsgQueue(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
LPCTSTR pszMsgQueue,
DWORD dwUserData,
NOTIFICATIONCONDITION * pCondition,
HREGNOTIFY * phNotify);
//***********************************************************
//関数名:RegistryNotifyCallback
//
//目的:指定された値が変更された場合、コールバックが通知を受けるように要求するの
//に使用
//
//引数:
//IN HKEY hKey - 現在開いているキーに対するハンドル、または所定のルート値
//IN LPCTSTR pszSubKey - 値が格納されるキー(この値がNULLである場合、pszValue
//NameがhKeyにあるものと想定される)
//IN LPCTSTR pszValueName - 変化通知が要求される値の名前(既定値を示すためにNUL
//Lとすることができる)
//IN REGISTRYNOTIFYCALLBACK pfnRegistryNotifyCallback - 通知が着信したときに
//コールバックされることになる関数に対するポインタ
//IN DWORD dwUserData - 通知とともにユーザに返送されることになるユーザデータ
//IN NOTIFICATIONCONDITION * pCondition -新たなレジストリ値に対する条件の比較が
//真である場合に変化通知が送られるべき条件(いかなる変化も通知をもたらすべきこと
//を示すためにNULLとすることができる)
//OUT HREGNOTIFY * phNotify - 通知要求に対するハンドルを受け取る。このハンドルは
//、このキーに関する通知がもはや必要とされないとき、RegistryCloseNotificationを
//使用して閉じられなければならない。
//
//戻り値:
//HRESULT
//S_OK - 通知の要求が、通知リストに追加された
//E_INVALIDARG - hKey、phNotify、またはpfnRegistryNotifyCallbackが無効である
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - これでこの値の変更が行われるたびに、呼び出し元が通知を受けること
//になる。
//FAILED - 変化なし
//
//説明:
//通知要求が、通知リストに追加される。呼び出し元が、RegistryCloseNotificationを
//コールして、さらなる通知を停止し、通知ハンドルを閉じる。このタイプの通知要求は
//、一時的である。つまり、デバイスがリセットされた場合、通知要求はもはや存在しな
//いことになる。クライアントは、コールバックを介して変更について通知されることになる。RegistryNotifyCallbackに対するコールの時点で値が存在しない場合、クライアン
//トは、値が追加されたときに通知を受けることになる。
//
//***********************************************************
HRESULT WINAPI RegistryNotifyCallback(HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
REGISTRYNOTIFYCALLBACK pfnRegistryNotifyCallback,
DWORD dwUserData,
NOTIFICATIONCONDITION * pCondition,
HREGNOTIFY * phNotify);
//***********************************************************
//関数名:RegistryCloseNotification
//
//目的:通知の要求を通知リストから削除し、通知ハンドルを閉じるのに使用
//
//引数:
//IN HREGNOTIFY hNotify - 有効なHREGNOTIFYに対するハンドル、RegistryNotify*関数
//の1つが戻されていなければならない
//
//戻り値:
//HRESULT
//S_OK - 通知要求がリストから削除された
//E_INVALID_HANDLE - hNotifyが無効である
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - 通知要求が削除され、これで、hNotifyは無効なハンドルである
//FAILED - 変化なし
//
//説明:
//hNotifyに対する参照について通知リストを探索し、見つかった場合、キューから削除
//され、hNotifyに関連付けられたメモリが解放される。クライアントにまだ発送されて
//いないあらゆる通知は、失われることになる。
//
//***********************************************************
HRESULT WINAPI RegistryCloseNotification(HREGNOTIFY hNotify);
//***********************************************************
//関数名:RegistryStopNotification
//
//目的:永久的通知の要求を通知リストから削除するのに使用
//
//引数:
//IN LPCTSTR pszName - 既に登録されている永久的通知を表す文字列
//
//戻り値:
//HRESULT
//S_OK - 通知要求がリストから削除された
//E_INVALIDARG - pszNameが無効である
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - 通知要求が削除された
//FAILED - 変化なし
//
//説明:
//通知に対する参照について通知リストを探索し、見つかった場合、キューから削除され
//る。クライアントにまだ発送されていないあらゆる通知は、失われることになる。
//
//***********************************************************
HRESULT WINAPI RegistryStopNotification(LPCTSTR pszName);
//***********************************************************
//関数名:RegistryBatchNotification//
//目的:頻繁に発生する通知をバッチ化するのに使用
//
//引数:
//IN HREGNOTIFY hNotify - RegistryNotify*関数の1つが戻された有効なHREGNOTIFYに
//対するハンドル
//IN DWORD dwMillisecondsIdle - 通知が発せられる前に値が一定でなければならない
//ミリ秒数
//IN DWORD dwMillisecondsMax - 最初の変化が生じた時と通知が送られた時の間の最大
//ミリ秒数
//
//戻り値:
//HRESULT
//S_OK - 通知要求がリストから削除された
//E_INVALIDARG - dwMillisecondsIdleがINFINITEに設定される
//E_INVALID_HANDLE - hNotifyが無効である
//エラー値はFACILITY_WIN32 HRESULTとしてラップ
//
//結果:
//SUCCEEDED - 新たなバッチ時刻が設定された
//FAILED - 変化なし
//
//説明://値が変更されると、通知システムは、dwMillisecondsIdleミリ秒間待ち、その後、通知
//を送る。その待ち時間中に別の変化が生じた場合、タイマがリセットされ、通知システ
//ムは、通知を送るのにさらにdwMillisecondsIdleミリ秒間待つことになる。dwMillisec
//ondsIdleにより、通知がずっと送られるのを妨げられることがないようにするため、
//dwMillisecondsMaxが使用される。dwMillisecondsMaxは、最初の通知が着信した時と通
//知が送られた時から経過しうる最大ミリ秒数である。dwMillisecondsMaxが、INFINITE
//に設定された場合、通知は、値がアイドルになるまでバッチ化される。DwMilliseconds
//は、INFINITEとすることはできない。
//
//***********************************************************
HRESULT WINAPI RegistryBatchNotification(HREGNOTIFY hNotify,
DWORD dwMillisecondsIdle,
DWORD dwMillisecondsMax);
HRESULT WINAPI RegistryScheduleNotifications(SYSTEMTIME * pstStart,
DWORD dwIntervalMinutes,
RSN_BEHAVIOR rsnBehavior,
LPCTSTR pszName,
LPCTSTR pszApp,
LPCTSTR pszClass,
LPCTSTR pszWindow,
UINT msg);
以下は、例示的な管理されたAPIである。
namespace A.Mobile
{
///デバイスがスタンバイ状態にある間にイベントが生じたときに、何が発生するべきか
///を指定するのに使用
public enum StandbyBehavior
{
///イベントを全く生じさせない
Ignore,
///デバイスをスタンバイ状態から戻し、イベントを生じさせる
Wake,
///別の何らかによってデバイスがウェークアップされると、イベントを生じさせる
Delay
}
public interface IAppLaunchable
{
///この通知の固有名
public string appLaunchId{get;}
///特定の実行可能ファイルおよびコマンドラインパラメータについてこの通知を登録する
///これがコールされるまで、通知はアクティブでない
///<param name=“appLaunchId”>
///この通知の固有識別子
///アプリケーションが閉じた/再起動したときに、バックアップで開くのに使用される
///このIDが既に使用中である場合、例外がスローされる
///</param>
///<param name=“filename”>
///通知が生じたときに起動するアプリケーション
///NULLまたは空である場合、呼び出し実行可能ファイルが使用される
///</param>
///<param name=“parameters”>アプリケーションに送るコマンドライン</param>
void EnableAppLaunch(string appLaunchId, string filename, string parameters);
///コマンドラインパラメータなしで特定の実行可能ファイルについてこの通知を登録する
///これがコールされるまで、通知はアクティブではない
///<param name=“appLaunchId”>
///この通知の固有識別子
///アプリケーションが閉じた/再起動したときに、バックアップで開くのに使用される
///このIDが既に使用中である場合、例外がスローされる
///</param>
///<param name=“filename”>通知が生じたときに起動するアプリケーション</param>
void EnableAppLaunch(string appLaunchId, string filename);
///パラメータなしで呼び出し実行可能ファイルについてこの通知を登録する
///これがコールされるまで、通知はアクティブではない
///
///これが、EXEではなくDLLからコールされた場合、例外がスローされる
///DLLは、その他のオーバーロードの1つをコールする必要がある
///<param name=“appLaunchId”>
///この通知の固有識別子
///アプリケーションが閉じた/再起動したときに、バックアップで開くのに使用される
///このIDが既に使用中である場合、例外がスローされる
///</param>
void EnableAppLaunch(string appLaunchId);
///この通知を登録解除する
///通知が発せられるのを止めるのに使用される
void DisableAppLaunch();
}
///スケジュールベースで生じる通知
public class ScheduledNotification : ILaunchable
{
//この通知の次の発生が、いつ生じるようにスケジュールされるか
public DateTime NextOccurrence{get;set;}
///この通知の発生と発生の間にどれだけの時間が経過するか
///秒およびミリ秒が無視される
public TimeSpan Interval{get;set;}
///発生中にデバイスがスタンバイ状態にあるとき、この通知がどのように働くか
///無視する、デバイスをウェークする、他の何かがデバイスをウェークするまで待つ
///既定値は、Wakeである
public StandbyBehavior StandbyBehavior{get;set;}
///名前付き通知が登録されているかどうかを判定する
///<param name=“appLaunchId”>通知の名前</param>
///<returns>通知が登録されている場合、真</returns>
public static bool AppLaunchIdExists(string appLaunchId){}
public event EventHandler Occurred;
///所与の名前を有する新たな永続的通知を作成する
///<param name=“nextOccurrence”>次の発生がいつであるか</param>
///<param name=“interval”>発生と発生の間がどれだけの期間か。秒およびミリ秒が無視される</param>
public ScheduledNotification(DateTime nextOccurrence,TimeSpan interval){}
///以前に登録された通知にロードするコンストラクタ
///<param name=“existingAppLaunchId”>以前に登録された通知の名前</param>
public ScheduledNotification(string existingAppLaunchId)
{
if(!AppLaunchIdExists(name))
throw new ArgumentException();
}
}
}
namespace A.Mobile.Status
{
///新たな値が所望の値とどのように比較されるべきかを指定する条件付き変化通知に使用される
public enum StateComparisonType
{
///値にかかわらずイベントが生ぜられる。これが既定である
All,
Equal,
NotEqual,
Greater,
GreaterOrEqual,
LessOrEqual,
Less,
Contains,
StartsWith,
EndsWith
}
///照会を行い、リッスンすることができるシステム状態のすべてを表す列挙
public abstract class StateBase : ILaunchable
{
///条件付き通知について、新たな値をどのようにTargetValueと比較するか
public ComparisonType ComparisonType{get;set;}
///新たな値を何と比較するか。比較が真である場合にだけ、通知が生じる
public object ComparisonValue{get;set;}
///このシステムプロパティの現在の値
public object CurrentValue{get;}
public event ChangeNotificationEventHandler Changed;
}
///システム定義のプロパティが変化したときに生じる一時的通知
public class SystemState : StateBase
{
///指定されたシステムプロパティの値を取得する
///<param name=“property”>値を取得するプロパティ</param>
///<returns></returns>
public static object GetValue(SystemProperty property){}
///モニタするシステムプロパティ
public SystemProperty Property{get;}
///名前付き通知が登録されているかどうかを判定する
///<param name=“appLaunchId”>通知の名前</param>
///<returns>通知が登録されている場合、真</returns>
public static bool AppLaunchIdExists(string appLaunchId){}
///条件付けなしのコンストラクタ(常にイベントが生ぜられる)
///<param name=“property”></param>
public SystemState(SystemProperty property){}
///イベントが生ぜられるべきときの条件付けを設定するコンストラタ
///<param name=“property”>監視すべきプロパティ</param>
///<param name=“comparisonType”>どのように比較するか</param> ///<param name=“comparisonValue”>何と比較するか</param>
public SystemState(SystemProperty property,ComparisonType comparisonType,object comparisonValue){}
///以前に登録された通知にロードするコンストラクタ
///<param name=“existingAppLaunchId”>以前に登録された通知の名前</param>
public SystemState(string existingAppLaunchId)
{
if(!AppLaunchIdExists(name))
throw new ArgumentException();
}
}
///レジストリ値が変化したときに生じる一時的通知
public class RegistryValue : StateBase
{
///モニタすべきレジストリ値
public RegistryKey Key{get;}
///モニタすべきレジストリキーにおける値の名前
public string ValueName{get;}
///名前付き通知が登録されているかどうかを判定する
///<param name=“appLaunchId”>通知の名前</param>
///<returns>通知が登録されている場合、真</returns>
public static bool AppLaunchIdExists(string appLaunchId){}
///条件付けなしのコンストラクタ(常にイベントが生ぜられる)
///<param name=“key”>監視すべきレジストリキー</param>
///<param name=“valueName”>監視すべきキーにおけるレジストリ値の名前</param>
public RegistryValue(RegistryKey key,string valueName){}
///イベントが生ぜられるべきときの条件付けを設定するコンストラクタ
///<param name=“key”>監視すべきレジストリキー</param>
///<param name=“valueName”>監視すべきキーにおけるレジストリ値の名前</param>
///<param name=“comparisonType”>どのように比較するか</param>
///<param name=“comparisonValue”>何と比較するか</param>
public RegistryValue(RegistryKey key,string valueName,
ComparisonType comparisonType,object comparisonValue){}
///以前に登録された通知にロードするコンストラクタ
///<param name=“existingAppLaunchId”>以前に登録された通知の名前</param>
public RegistryValue(string existingAppLaunchId)
{
if(!AppLaunchIdExists(name))
throw new ArgumentException();
}
}
public delegate void ChangeNotificationEventHandler(object sender,
ChangeNotificationEventArgs e);
public class ChangeNotificationEventArgs : EventArgs
{
public object CurrentValue{get;}
}
}
//システムプロパティを照会する
int signal=SystemState.PhoneSignalStrength;
//または...
int signal=(int)SystemState.GetValue(SystemProperty.PhoneSignalStrength);
//または...
SystemState state=new SystemState(SystemProperty.PhoneSignalStrength);
int signal=(int)state.CurrentValue;
――――――――――――――――――――――――――――――――――――――――
//一時的通知の登録
SystemState state=new SystemState(SystemProperty.PhoneSignalStrength);
state.Changed+=new ChangeNotificationEventHandler(...);
――――――――――――――――――――――――――――――――――――――――//条件付けを有する永続的通知の登録
SystemState state;
if(SystemState.AppLaunchIdExists("MyApp.GoodSignal"))
{
state=new SystemState("MyApp.GoodSignal");
}
else
{
state=new SystemState(SystemProperty.PhoneSignalStrength,
ComparisonType.Greater,75);
state.EnableAppLaunch("MyApp.GoodSignal");
}
state.Changed+=new ChangeNotificationEventHandler(...);
――――――――――――――――――――――――――――――――――――――――//スケジュールされた通知の登録
ScheduledNotification daily;
if(ScheduledNotification.AppLaunchIdExists("MyApp.Daily"))
{
daily=new ScheduledNotification("MyApp.Daily");
}
else
{
daily=new ScheduledNotification(DateTime.Now,new TimeSpan(24,0,0));
daily.EnableAppLaunch("MyApp.Daily");
}
daily.Occurred+=new EventHandler(...);
102 処理装置
104 システムメモリ
105 オペレーティングシステム
106 プログラムモジュール
107 プログラムデータ
109 リムーバブルなストレージ
110 リムーバブルでないストレージ
112 入力デバイス
114 出力デバイス
116 通信接続
118 他のコンピューティングデバイス
200 モバイルデバイス
228 ディスプレイ
232 キーパッド
240 通信接続
260 プロセッサ
262 メモリ
266 アプリケーション
268 ストレージ
270 電源
272 無線インタフェースレイヤ
274 オーディオインタフェース
300 通知システム
310 状態変化コンポーネント
315 クライアント
320 クライアント
330 データストア
335 通知ブローカ
340 通知リスト
345 キャッシュプロパティ
350 スケジューラ
Claims (25)
- 状態プロパティ変化に応答してクライアントに通知を提供するための方法であって、
状態プロパティに関連付けられた変化に応答して通知を受け取る通知要求をクライアントから受け取ることと、
デバイス内の異なるコンポーネントによって更新される少なくともいくつかの状態プロパティを含む通知システムに前記状態プロパティが登録されることを確実にすることと、
前記状態プロパティが変化したときを判定することと、
前記クライアントが前記状態プロパティ変化の通知を受け取るべきときを判定することと、
判定されたときに前記状態プロパティ変化を前記クライアントに通知することと
を備えることを特徴とする方法。 - APIを利用して前記状態プロパティに関わるアクションを行うことをさらに備え、前記アクションは、状態プロパティを登録すること、前記状態プロパティを照会すること、および前記状態プロパティを設定することのうちの少なくとも1つを含むことを特徴とする請求項1に記載の方法。
- 前記クライアントが通知を受け取るべきときを判定することは、前記状態プロパティに条件式を適用することと、前記条件が満たされたときに前記状態プロパティを前記クライアントに通知することとを備えることを特徴とする請求項2に記載の方法。
- 前記条件式は、「すべて」、「等しい」、「等しくない」、「超えている」、「以上」、「以下」、「未満」、「含む」、「で始まる」、および「で終わる」の条件のうちの少なくとも1つを含むことを特徴とする請求項3に記載の方法。
- 状態プロパティ変化およびスケジュールされたイベントのうちの少なくとも1つに応答して前記クライアントを起動することをさらに備えることを特徴とする請求項2に記載の方法。
- 前記クライアントによって定義されたスケジュールに応答して前記クライアントに通知することをさらに備えることを特徴とする請求項2に記載の方法。
- 前記状態プロパティが変化したときを判定することは、所定の期間内に生じた前記状態プロパティの変化に関してバッチ操作を行うことをさらに備えることを特徴とする請求項2に記載の方法。
- 前記状態プロパティに関連付けられた前記変化に応答して前記通知を受け取る前記通知要求を前記クライアントから受け取ることは、前記要求に関連付けられた識別子が状態プロパティのカテゴリを判定すると、前記クライアントからの前記通知要求を状態プロパティのグループに関連付け、前記状態プロパティは前記通知システム内で階層的に構成されていることをさらに備えることを特徴とする請求項1に記載の方法。
- デバイスの再起動を越えて前記通知要求を永続化することをさらに備えることを特徴とする請求項2に記載の方法。
- 状態管理および通知のためのシステムであって、
状態プロパティに関係する情報を格納するように構成されたデータストアであって、前記状態プロパティの少なくともいくつかが異なるコンポーネントによって変更されるデータストアと、
前記状態プロパティに関係する操作を行うように構成されたAPIと、
通知要求を登録し、登録した状態プロパティの変化に応答して通知を受け取るように構成されたクライアントであって、前記通知要求は前記状態プロパティに関連付けられた変化に応答して前記クライアントが通知を受け取るべきときを示すクライアントと、
通知要求を受け取るように登録されているクライアントを記憶するように構成された通知リストと、
前記データストア、前記通知リストおよび前記クライアントに結合された通知ブローカであって、
少なくとも1つのクライアントを前記通知リストに追加する通知要求を受け取ることと、
前記少なくとも1つのクライアントを前記通知リストに追加することと、
登録された状態プロパティが変化したときおよび前記状態プロパティが変化したときを判定し、通知を受け取るべきクライアントを判定し、前記判定されたクライアントに前記状態プロパティ変化を通知することと
を含むアクションを行うように構成されたアプリケーションを含む通知ブローカと
を備えたことを特徴とするシステム。 - 前記APIは、状態プロパティを登録すること、状態プロパティを照会すること、および状態プロパティを設定することのうちの少なくとも1つを行うようにさらに構成されたことを特徴とする請求項10に記載のシステム。
- 前記通知を受け取るべきクライアントを判定することは、前記状態プロパティに条件式を適用することと、前記条件が満たされたときに前記クライアントに前記状態プロパティを通知することとを備えたことを特徴とする請求項11に記載のシステム。
- 前記条件式は、「すべて」、「等しい」、「等しくない」、「超えている」、「以上」、「以下」、「未満」、「含む」、「で始まる」、および「で終わる」の条件のうちの少なくとも1つを含むことを特徴とする請求項12に記載のシステム。
- 状態プロパティ変化およびスケジュールされたイベントのうちの少なくとも1つに応答して前記クライアントを起動することをさらに備えたことを特徴とする請求項11に記載のシステム。
- 前記クライアントによって定義されたスケジュールに応答して前記クライアントに通知することをさらに備えたことを特徴とする請求項11に記載のシステム。
- 前記状態プロパティが変化したときを判定することは、所定の期間内に生じた前記状態プロパティの変化に関してバッチ操作を行うことをさらに備えたことを特徴とする請求項11に記載のシステム。
- 前記状態プロパティは、階層的に構成されたことを特徴とする請求項10に記載のシステム。
- 前記データストア内のコンテンツは、デバイスの再起動を越えて永続化することを特徴とする請求項10に記載のシステム。
- 状態プロパティに関して操作を行うためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、
状態パラメータのグループ内の少なくとも1つの状態プロパティを特定する識別子パラメータを受け取ることであって、状態パラメータの前記グループ内の前記状態パラメータのいくつかは、デバイス内の異なるコンポーネントによって更新されることと、
前記状態パラメータに関連して行うべき操作を判定することと、
前記操作を行うことと
を備えたことを特徴とするコンピュータ可読媒体。 - 前記操作は、状態プロパティを登録する操作、前記状態プロパティを照会する操作、条件式を前記状態パラメータに関連付ける操作、および前記状態プロパティを設定する操作のうちの少なくとも1つを含むことを特徴とする請求項19に記載のコンピュータ可読媒体。
- 前記操作を行なうことは、前記条件式を前記状態プロパティに適用することと、前記条件が満たされたときに前記クライアントに前記状態プロパティを通知することとを備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
- 前記条件式は、「すべて」、「等しい」、「等しくない」、「超えている」、「以上」、「以下」、「未満」、「含む」、「で始まる」、および「で終わる」の条件のうちの少なくとも1つを含むことを特徴とする請求項21に記載のコンピュータ可読媒体。
- 前記操作を行なうことは、前記状態プロパティの変化およびスケジュールされたイベントのうちの少なくとも1つに応答してクライアントアプリケーションを起動することをさらに備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
- 前記操作を行なうことは、前記クライアントによって定義されたスケジュールに応答して前記クライアントに通知することをさらに備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
- 前記操作を行なうことは、所定の期間内に生じた前記状態プロパティの変化に関してバッチ操作を行うことをさらに備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51372303P | 2003-10-23 | 2003-10-23 | |
US60/513,723 | 2003-10-23 | ||
US10/873,881 US7644376B2 (en) | 2003-10-23 | 2004-06-22 | Flexible architecture for notifying applications of state changes |
US10/873,881 | 2004-06-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005129067A true JP2005129067A (ja) | 2005-05-19 |
JP4790245B2 JP4790245B2 (ja) | 2011-10-12 |
Family
ID=34526892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004310058A Expired - Fee Related JP4790245B2 (ja) | 2003-10-23 | 2004-10-25 | 状態変化をアプリケーションに通知するための柔軟性のあるアーキテクチャ |
Country Status (5)
Country | Link |
---|---|
US (3) | US7644376B2 (ja) |
EP (1) | EP1679596A3 (ja) |
JP (1) | JP4790245B2 (ja) |
KR (1) | KR100920850B1 (ja) |
CN (2) | CN102291446B (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007024438A1 (en) * | 2005-08-25 | 2007-03-01 | Microsoft Corporation | Data change notifications |
JP2007133881A (ja) * | 2005-11-09 | 2007-05-31 | Samsung Electronics Co Ltd | UPnPイベントに関する情報を効率的に送受信する方法及び装置 |
JP2010520533A (ja) * | 2007-02-28 | 2010-06-10 | マイクロソフト コーポレーション | 情報技術管理のための存在認識通知 |
JP2011175633A (ja) * | 2010-01-26 | 2011-09-08 | Ntt Docomo Inc | 情報処理装置および情報処理方法 |
JP2013106159A (ja) * | 2011-11-11 | 2013-05-30 | Sharp Corp | 情報端末、その制御方法、および、制御プログラムおよびコンピュータ読み取り可能な記録媒体 |
Families Citing this family (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578054B1 (en) | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method and system for supporting off-line mode of operation and synchronization using resource state information |
US6909910B2 (en) * | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
US7644376B2 (en) * | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
KR100640483B1 (ko) * | 2004-10-22 | 2006-10-30 | 삼성전자주식회사 | 이동통신 단말기에서 통화 모드를 자동변경하기 위한 장치및 방법 |
US8418075B2 (en) | 2004-11-16 | 2013-04-09 | Open Text Inc. | Spatially driven content presentation in a cellular environment |
US8001476B2 (en) | 2004-11-16 | 2011-08-16 | Open Text Inc. | Cellular user interface |
US9654427B2 (en) * | 2005-07-11 | 2017-05-16 | Google Inc. | Presenting instant messages |
US8225231B2 (en) | 2005-08-30 | 2012-07-17 | Microsoft Corporation | Aggregation of PC settings |
KR100717047B1 (ko) * | 2005-10-20 | 2007-05-10 | 삼성전자주식회사 | 간편하게 웹 페이지를 표시하는 방법 및 장치 |
US7757185B2 (en) * | 2006-01-06 | 2010-07-13 | Apple Inc. | Enabling and disabling hotkeys |
US7599861B2 (en) | 2006-03-02 | 2009-10-06 | Convergys Customer Management Group, Inc. | System and method for closed loop decisionmaking in an automated care system |
US7930727B1 (en) * | 2006-03-30 | 2011-04-19 | Emc Corporation | System and method for measuring and enforcing security policy compliance for software during the development process of the software |
US7809663B1 (en) | 2006-05-22 | 2010-10-05 | Convergys Cmg Utah, Inc. | System and method for supporting the utilization of machine language |
US8379830B1 (en) | 2006-05-22 | 2013-02-19 | Convergys Customer Management Delaware Llc | System and method for automated customer service with contingent live interaction |
US8205189B2 (en) * | 2006-07-13 | 2012-06-19 | Oracle International Corporation | Method and system for definition control in a data repository application |
US20080039166A1 (en) * | 2006-08-03 | 2008-02-14 | Seven Lights, Llc | Systems and methods for multi-character online gaming |
US20080039165A1 (en) * | 2006-08-03 | 2008-02-14 | Seven Lights, Llc | Systems and methods for a scouting report in online gaming |
US20080039169A1 (en) * | 2006-08-03 | 2008-02-14 | Seven Lights, Llc | Systems and methods for character development in online gaming |
US9417758B2 (en) * | 2006-11-21 | 2016-08-16 | Daniel E. Tsai | AD-HOC web content player |
US8015571B2 (en) * | 2007-03-16 | 2011-09-06 | Google Inc. | Registering an event |
JP4413941B2 (ja) * | 2007-03-22 | 2010-02-10 | 株式会社東芝 | 情報処理装置 |
US8805346B1 (en) | 2007-04-13 | 2014-08-12 | At&T Mobility Ii Llc | Caller information retrieval system for unavailable calls |
US20090017802A1 (en) * | 2007-04-13 | 2009-01-15 | At&T Mobility Ii Llc | Undelivered Call Indicator |
JP5088080B2 (ja) * | 2007-10-04 | 2012-12-05 | ソニー株式会社 | 電子機器及び異常状態表示方法 |
US20090210882A1 (en) * | 2008-02-18 | 2009-08-20 | International Business Machines Corporation | System and methods for asynchronously updating interdependent tasks provided by disparate applications in a multi-task environment |
US20090210822A1 (en) * | 2008-02-18 | 2009-08-20 | Microsoft Corporation | Locating meeting users |
US7860900B2 (en) * | 2008-02-25 | 2010-12-28 | Microsoft Corporation | Consistently signaling state changes |
US7899798B2 (en) * | 2008-02-25 | 2011-03-01 | Microsoft Corporation | Observing and reporting changes in complex software dependencies |
US8832122B2 (en) * | 2008-09-30 | 2014-09-09 | Apple Inc. | Media list management |
US20100107100A1 (en) | 2008-10-23 | 2010-04-29 | Schneekloth Jason S | Mobile Device Style Abstraction |
US8411046B2 (en) | 2008-10-23 | 2013-04-02 | Microsoft Corporation | Column organization of content |
US8628015B2 (en) * | 2008-10-31 | 2014-01-14 | Hand Held Products, Inc. | Indicia reading terminal including frame quality evaluation processing |
US8175653B2 (en) | 2009-03-30 | 2012-05-08 | Microsoft Corporation | Chromeless user interface |
US8238876B2 (en) | 2009-03-30 | 2012-08-07 | Microsoft Corporation | Notifications |
US8836648B2 (en) | 2009-05-27 | 2014-09-16 | Microsoft Corporation | Touch pull-in gesture |
JP4878060B2 (ja) * | 2009-11-16 | 2012-02-15 | シャープ株式会社 | ネットワークシステムおよび管理方法 |
US20110153728A1 (en) * | 2009-12-17 | 2011-06-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Synchronization of sporadic web poll traffic |
US8566653B2 (en) * | 2009-12-22 | 2013-10-22 | At&T Intellectual Property I, L.P. | Infrastructure for rapid service deployment |
JP5793869B2 (ja) * | 2010-03-05 | 2015-10-14 | 株式会社リコー | 伝送管理システム、伝送管理方法、及び伝送管理プログラム |
JP5625462B2 (ja) * | 2010-04-16 | 2014-11-19 | 船井電機株式会社 | 携帯情報表示端末 |
US9081633B2 (en) * | 2010-05-24 | 2015-07-14 | Microsoft Technology Licensing, Llc | Remote application connection sharing |
US20120066694A1 (en) | 2010-09-10 | 2012-03-15 | International Business Machines Corporation | Event overflow handling by coalescing and updating previously-queued event notification |
US8694625B2 (en) * | 2010-09-10 | 2014-04-08 | International Business Machines Corporation | Selective registration for remote event notifications in processing node clusters |
US8984119B2 (en) | 2010-11-05 | 2015-03-17 | International Business Machines Corporation | Changing an event identifier of a transient event in an event notification system |
US8667126B2 (en) | 2010-12-03 | 2014-03-04 | International Business Machines Corporation | Dynamic rate heartbeating for inter-node status updating |
US8984120B2 (en) * | 2010-12-16 | 2015-03-17 | International Business Machines Corporation | Determining an unexpected disconnect event constraint within a text exchange session |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US20120159383A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Customization of an immersive environment |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
WO2012102727A1 (en) * | 2011-01-28 | 2012-08-02 | Hewlett-Packard Development Company, L. P. | Distributing information |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US8634330B2 (en) | 2011-04-04 | 2014-01-21 | International Business Machines Corporation | Inter-cluster communications technique for event and health status communications |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US20120304132A1 (en) | 2011-05-27 | 2012-11-29 | Chaitanya Dev Sareen | Switching back to a previously-interacted-with application |
US9146656B1 (en) * | 2011-06-27 | 2015-09-29 | Google Inc. | Notifications user interface |
US8687023B2 (en) | 2011-08-02 | 2014-04-01 | Microsoft Corporation | Cross-slide gesture to select and rearrange |
US10044678B2 (en) | 2011-08-31 | 2018-08-07 | At&T Intellectual Property I, L.P. | Methods and apparatus to configure virtual private mobile networks with virtual private networks |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US8933952B2 (en) | 2011-09-10 | 2015-01-13 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
WO2013040674A1 (en) * | 2011-09-23 | 2013-03-28 | Research In Motion Limited | System and method for managing transient notifications using sensors |
US9223472B2 (en) | 2011-12-22 | 2015-12-29 | Microsoft Technology Licensing, Llc | Closing applications |
US9128605B2 (en) | 2012-02-16 | 2015-09-08 | Microsoft Technology Licensing, Llc | Thumbnail-image selection of applications |
US10044648B2 (en) | 2012-09-09 | 2018-08-07 | Jianping He | Messaging and updating services over the air from application servers to applications in mobile devices |
US9450952B2 (en) | 2013-05-29 | 2016-09-20 | Microsoft Technology Licensing, Llc | Live tiles without application-code execution |
US8819268B1 (en) * | 2013-06-19 | 2014-08-26 | Google Inc. | Systems and methods for notification of device mirroring |
US9450904B2 (en) | 2013-07-15 | 2016-09-20 | Dropbox, Inc. | Coordinated notifications across multiple channels |
US20150095071A1 (en) | 2013-09-29 | 2015-04-02 | Donan Engineering Co., Inc. | Systems and Methods for Identifying a Subrogation Opportunity for a Potential Subrogation Claim |
US9854061B2 (en) * | 2013-10-16 | 2017-12-26 | Ford Global Technologies, Llc | Method and apparatus for handling application triggering events |
CN104333644B (zh) * | 2013-10-18 | 2017-02-08 | 广州三星通信技术研究有限公司 | 移动通信终端及其更新消息的状态的方法 |
US20150160951A1 (en) * | 2013-12-06 | 2015-06-11 | Board Of Regents Of The University Of Texas System | Remote launch of application on mobile device |
WO2015149347A1 (en) | 2014-04-04 | 2015-10-08 | Microsoft Technology Licensing, Llc | Expandable application representation |
WO2015157502A1 (en) * | 2014-04-09 | 2015-10-15 | Convida Wireless, Llc | Service enabler function |
WO2015154273A1 (en) | 2014-04-10 | 2015-10-15 | Microsoft Technology Licensing, Llc | Collapsible shell cover for computing device |
WO2015154276A1 (en) | 2014-04-10 | 2015-10-15 | Microsoft Technology Licensing, Llc | Slider cover for computing device |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
US9674335B2 (en) | 2014-10-30 | 2017-06-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
US10146473B2 (en) * | 2016-05-10 | 2018-12-04 | Ge Aviation Systems Llc | Systems and methods of subject state change notification |
US10156877B2 (en) * | 2016-10-01 | 2018-12-18 | Intel Corporation | Enhanced power management for support of priority system events |
US9959010B1 (en) * | 2016-12-23 | 2018-05-01 | Beijing Kingsoft Internet Security Software Co., Ltd. | Method for displaying information, and terminal equipment |
CN107222632A (zh) * | 2017-06-23 | 2017-09-29 | 北京金山安全软件有限公司 | 即时通信方法及装置 |
US20190073347A1 (en) * | 2017-09-01 | 2019-03-07 | Google Inc. | Lockscreen note-taking |
JP2019061458A (ja) * | 2017-09-26 | 2019-04-18 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびログアプリケーション |
CN111064957B (zh) | 2018-10-17 | 2021-03-23 | 杭州海康威视数字技术股份有限公司 | 设备状态监控方法及装置 |
US10848500B2 (en) * | 2018-10-24 | 2020-11-24 | Jamf Software, Llc | Systems and methods for group-based mobile device management |
CN113055415A (zh) * | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 服务提供方法、服务消费方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08129536A (ja) * | 1994-10-28 | 1996-05-21 | Oki Electric Ind Co Ltd | イベント処理システム |
US5991536A (en) * | 1996-11-12 | 1999-11-23 | International Business Machines Corporation | Object-oriented tool for registering objects for observation and causing notifications to be made in the event changes are made to an object which is being observed |
JP2003044320A (ja) * | 2001-07-31 | 2003-02-14 | Pfu Ltd | 教育システム |
JP2003337710A (ja) * | 2002-05-17 | 2003-11-28 | Ntt Docomo Inc | 電子機器、イベント提供方法、プログラム、及び記録媒体 |
Family Cites Families (161)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4058672A (en) | 1976-11-10 | 1977-11-15 | International Telephone And Telegraph Corporation | Packet-switched data communications system |
US4789962A (en) | 1984-10-31 | 1988-12-06 | International Business Machines Corporation | Methods of displaying help information nearest to an operation point at which the help information is requested |
US4780821A (en) | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
US4945475A (en) * | 1986-10-30 | 1990-07-31 | Apple Computer, Inc. | Hierarchical file system to provide cataloging and retrieval of data |
JPS63286941A (ja) * | 1987-05-20 | 1988-11-24 | Hitachi Ltd | フアイルシステム管理方式 |
US5058000A (en) | 1987-06-30 | 1991-10-15 | Prime Computer, Inc. | System for accessing remote heterogeneous database including formatting retrieved data into applications program format |
US5307494A (en) * | 1987-08-05 | 1994-04-26 | Fuji Xerox Co., Ltd. | File name length augmentation method |
US5179703A (en) * | 1987-11-17 | 1993-01-12 | International Business Machines Corporation | Dynamically adaptive environment for computer programs |
US5129088A (en) * | 1987-11-30 | 1992-07-07 | International Business Machines Corporation | Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device |
US4945476A (en) * | 1988-02-26 | 1990-07-31 | Elsevier Science Publishing Company, Inc. | Interactive system and method for creating and editing a knowledge base for use as a computerized aid to the cognitive process of diagnosis |
US4999766A (en) * | 1988-06-13 | 1991-03-12 | International Business Machines Corporation | Managing host to workstation file transfer |
JPH02165241A (ja) * | 1988-12-19 | 1990-06-26 | Toshiba Corp | ファイルアクセス方式 |
CA1323448C (en) * | 1989-02-24 | 1993-10-19 | Terrence C. Miller | Method and apparatus for translucent file system |
US5243697A (en) | 1989-03-15 | 1993-09-07 | Sun Microsystems, Inc. | Method and apparatus for selecting button functions and retaining selected options on a display |
US5157768A (en) | 1989-03-15 | 1992-10-20 | Sun Microsystems, Inc. | Method and apparatus for displaying context sensitive help information on a display |
US5083264A (en) * | 1989-04-24 | 1992-01-21 | Xerox Corporation | Process and apparatus for saving and restoring critical files on the disk memory of an electrostatographic reproduction machine |
CA2014799A1 (en) * | 1989-05-08 | 1990-11-08 | John W. Whisler | System and method for reading and writing disks formatted for an operating system foreign to the host computer |
US5291595A (en) * | 1989-05-22 | 1994-03-01 | Martins Augusto B | Batch/application program processing |
US5485606A (en) * | 1989-07-10 | 1996-01-16 | Conner Peripherals, Inc. | System and method for storing and retrieving files for archival purposes |
US5371885A (en) | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
US5363487A (en) | 1989-08-29 | 1994-11-08 | Microsoft Corporation | Method and system for dynamic volume tracking in an installable file system |
US5247658A (en) * | 1989-10-31 | 1993-09-21 | Microsoft Corporation | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers |
US5347628A (en) | 1990-01-18 | 1994-09-13 | International Business Machines Corporation | Method of graphically accessing electronic data |
US5317733A (en) * | 1990-01-26 | 1994-05-31 | Cisgem Technologies, Inc. | Office automation system for data base management and forms generation |
US5202982A (en) * | 1990-03-27 | 1993-04-13 | Sun Microsystems, Inc. | Method and apparatus for the naming of database component files to avoid duplication of files |
US5249300A (en) | 1990-04-27 | 1993-09-28 | Bachman Information Systems, Inc. | System and method of constructing models of complex business transactions using entity-set variables for ordered sets of references to user data |
JPH0454541A (ja) | 1990-06-21 | 1992-02-21 | Fujitsu Ltd | ファイル名生成処理方式 |
US5287502A (en) * | 1990-09-12 | 1994-02-15 | Kabushiki Kaisha Toshiba | Computer system for executing application programs by a combination of picture symbols |
US5367671A (en) | 1990-09-25 | 1994-11-22 | International Business Machines Corp. | System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables |
US5204947A (en) * | 1990-10-31 | 1993-04-20 | International Business Machines Corporation | Application independent (open) hypermedia enablement services |
US5297249A (en) * | 1990-10-31 | 1994-03-22 | International Business Machines Corporation | Hypermedia link marker abstract and search services |
US5241545A (en) * | 1990-11-14 | 1993-08-31 | Motorola, Inc. | Apparatus and method for recovering a time-varying signal using multiple sampling points |
CA2067633C (en) * | 1991-07-24 | 1996-10-01 | Eric Jonathan Bauer | Method and apparatus for accessing a computer-based file system |
CA2067650C (en) * | 1991-07-24 | 1996-10-22 | Eric Jonathan Bauer | Method and apparatus for operating a computer-based file system |
US5329427A (en) * | 1991-08-02 | 1994-07-12 | Tusk, Incorporated | Modular computer system having an improved docking assembly |
US5359725A (en) | 1991-10-15 | 1994-10-25 | Time Warner Interactive Group, Inc. | Method of creating CD-ROM image of files of different format with proper directories to be read by respective operating systems |
US6347051B2 (en) * | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
US5333266A (en) * | 1992-03-27 | 1994-07-26 | International Business Machines Corporation | Method and apparatus for message handling in computer systems |
US5434974A (en) * | 1992-03-30 | 1995-07-18 | International Business Machines Corporation | Name resolution for a multisystem network |
US5359724A (en) | 1992-03-30 | 1994-10-25 | Arbor Software Corporation | Method and apparatus for storing and retrieving multi-dimensional data in computer memory |
US5390328A (en) * | 1992-03-30 | 1995-02-14 | International Business Machines Corporation | Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage |
US5392390A (en) | 1992-04-10 | 1995-02-21 | Intellilink Corp. | Method for mapping, translating, and dynamically reconciling data between disparate computer platforms |
JPH0619771A (ja) * | 1992-04-20 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | 異種のクライアントによる共用ファイルのファイル管理機構 |
US5421001A (en) * | 1992-05-01 | 1995-05-30 | Wang Laboratories, Inc. | Computer method and apparatus for a table driven file interface |
US5355497A (en) | 1992-06-10 | 1994-10-11 | Physiotronics Corporation | File directory structure generator and retrevial tool with document locator module mapping the directory structure of files to a real world hierarchical file structure |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
US5745902A (en) * | 1992-07-06 | 1998-04-28 | Microsoft Corporation | Method and system for accessing a file using file names having different file name formats |
US5627996A (en) * | 1992-08-19 | 1997-05-06 | At&T | Method and apparatus for accessing the same computer file using different file name formats |
US5596755A (en) * | 1992-11-03 | 1997-01-21 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
EP0672277B1 (en) | 1992-12-01 | 1998-05-13 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
US5666530A (en) * | 1992-12-02 | 1997-09-09 | Compaq Computer Corporation | System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between |
JP2856621B2 (ja) * | 1993-02-24 | 1999-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
JP3078946B2 (ja) * | 1993-03-11 | 2000-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 |
GB2276520A (en) | 1993-03-23 | 1994-09-28 | Us West Advanced Tech Inc | Computer interface method and system |
JPH06290096A (ja) * | 1993-03-31 | 1994-10-18 | Matsushita Electric Ind Co Ltd | パス名解決装置 |
CA2120461C (en) | 1993-04-01 | 2009-09-22 | Aaron R. Reynolds | Common name space for long and short filenames |
JPH06324928A (ja) * | 1993-05-14 | 1994-11-25 | Mitsubishi Electric Corp | ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置 |
DE4497149T1 (de) * | 1993-09-24 | 1996-10-17 | Oracle Corp | Verfahren und Vorrichtung zum Replizieren von Daten |
US5729687A (en) * | 1993-12-20 | 1998-03-17 | Intel Corporation | System for sending differences between joining meeting information and public meeting information between participants in computer conference upon comparing annotations of joining and public meeting information |
US5483652A (en) * | 1994-01-24 | 1996-01-09 | Digital Equipment Corporation | Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment |
WO1996006393A1 (en) | 1994-08-24 | 1996-02-29 | Arcada Software, Inc. | Application program interface (api) for a medium changer |
US5805886A (en) | 1994-09-26 | 1998-09-08 | Intel Corporation | Method for notifying client applications of events in a shared application in a computer system |
US5805830A (en) | 1994-09-30 | 1998-09-08 | Intel Corporation | Method and apparatus for managing communications with selective subsets of conference participants |
US5903752A (en) * | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5721922A (en) * | 1994-10-13 | 1998-02-24 | Intel Corporation | Embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5745752A (en) * | 1994-12-13 | 1998-04-28 | Microsoft Corporation | Dual namespace client having long and short filenames |
US5684990A (en) | 1995-01-11 | 1997-11-04 | Puma Technology, Inc. | Synchronization of disparate databases |
US5758354A (en) * | 1995-04-28 | 1998-05-26 | Intel Corporation | Application independent e-mail synchronization |
US5819275A (en) | 1995-06-07 | 1998-10-06 | Trusted Information Systems, Inc. | System and method for superimposing attributes on hierarchically organized file systems |
US5991771A (en) | 1995-07-20 | 1999-11-23 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
US5664228A (en) | 1995-08-09 | 1997-09-02 | Microsoft Corporation | Portable information device and system and method for downloading executable instructions from a computer to the portable information device |
JP3188713B2 (ja) * | 1995-08-14 | 2001-07-16 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | メール・システムのための改良されたメッセージ・キューイング分散システム |
US5647002A (en) * | 1995-09-01 | 1997-07-08 | Lucent Technologies Inc. | Synchronization of mailboxes of different types |
US5630081A (en) * | 1995-09-07 | 1997-05-13 | Puma Technology, Inc. | Connection resource manager displaying link-status information using a traffic light iconic representation |
US5884323A (en) * | 1995-10-13 | 1999-03-16 | 3Com Corporation | Extendible method and apparatus for synchronizing files on two different computer systems |
US5727202A (en) | 1995-10-18 | 1998-03-10 | Palm Computing, Inc. | Method and apparatus for synchronizing information on two different computer systems |
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US5867641A (en) * | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
US5799305A (en) | 1995-11-02 | 1998-08-25 | Informix Software, Inc. | Method of commitment in a distributed database transaction |
US5832218A (en) | 1995-12-14 | 1998-11-03 | International Business Machines Corporation | Client/server electronic mail system for providng off-line client utilization and seamless server resynchronization |
US5799168A (en) * | 1996-01-05 | 1998-08-25 | M-Systems Flash Disk Pioneers Ltd. | Standardized flash controller |
US5806074A (en) * | 1996-03-19 | 1998-09-08 | Oracle Corporation | Configurable conflict resolution in a computer implemented distributed database |
US5761675A (en) * | 1996-03-19 | 1998-06-02 | Symantec Corporation | Diagnosis and repair of defective long filenames |
EP0810755B1 (en) * | 1996-05-31 | 2003-04-16 | Hewlett-Packard Company, A Delaware Corporation | Systems and methods for operating a network management system |
US5787262A (en) * | 1996-06-26 | 1998-07-28 | Microsoft Corporation | System and method for distributed conflict resolution between data objects replicated across a computer network |
US5812793A (en) | 1996-06-26 | 1998-09-22 | Microsoft Corporation | System and method for asynchronous store and forward data replication |
US5930350A (en) * | 1996-06-27 | 1999-07-27 | Mci Communications Corporation | System, method and computer program for automated speed dialing |
US5812773A (en) | 1996-07-12 | 1998-09-22 | Microsoft Corporation | System and method for the distribution of hierarchically structured data |
KR100260028B1 (ko) | 1996-08-13 | 2000-06-15 | 윤종용 | 화일시스템의 정보 복구방법 |
US6016478A (en) * | 1996-08-13 | 2000-01-18 | Starfish Software, Inc. | Scheduling system with methods for peer-to-peer scheduling of remote users |
US5754848A (en) * | 1996-09-11 | 1998-05-19 | Hewlett-Packard Co. | Apparatus and method for disaster recovery of an operating system utilizing long file and directory names |
US5767854A (en) * | 1996-09-27 | 1998-06-16 | Anwar; Mohammed S. | Multidimensional data display and manipulation system and methods for using same |
US5765169A (en) * | 1996-09-30 | 1998-06-09 | International Business Machines Corporation | Method and apparatus for converting long file names to short file names |
US5884325A (en) * | 1996-10-09 | 1999-03-16 | Oracle Corporation | System for synchronizing shared data between computers |
US5757616A (en) * | 1996-10-31 | 1998-05-26 | Hewlett-Packard Company | Physical security system for portable computer |
US5924094A (en) * | 1996-11-01 | 1999-07-13 | Current Network Technologies Corporation | Independent distributed database system |
US6405218B1 (en) * | 1996-11-13 | 2002-06-11 | Pumatech, Inc. | Synchronizing databases |
US5956473A (en) | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
US5745418A (en) * | 1996-11-25 | 1998-04-28 | Macronix International Co., Ltd. | Flash memory mass storage system |
US5920873A (en) * | 1996-12-06 | 1999-07-06 | International Business Machines Corporation | Data management control system for file and database |
US5878408A (en) * | 1996-12-06 | 1999-03-02 | International Business Machines Corporation | Data management system and process |
US5826265A (en) | 1996-12-06 | 1998-10-20 | International Business Machines Corporation | Data management system having shared libraries |
US6018761A (en) * | 1996-12-11 | 2000-01-25 | The Robert G. Uomini And Louise B. Bidwell Trust | System for adding to electronic mail messages information obtained from sources external to the electronic mail transport process |
US5926501A (en) * | 1996-12-12 | 1999-07-20 | Motorola, Inc. | Method and apparatus for dynamic channel configuration |
US5930268A (en) * | 1996-12-20 | 1999-07-27 | Motorola, Inc. | Transceiver and associated method for surviving fades |
US6279069B1 (en) | 1996-12-26 | 2001-08-21 | Intel Corporation | Interface for flash EEPROM memory arrays |
US5812749A (en) | 1996-12-27 | 1998-09-22 | Mci Communication Corporation | Method of and system for testing network time protocol client accuracy |
US6035379A (en) * | 1997-01-09 | 2000-03-07 | Microsoft Corporation | Transaction processing for user data employing both logging and shadow copying |
US5887198A (en) * | 1997-04-07 | 1999-03-23 | The United States Of America As Represented By The Secretary Of The Navy | Programmable stand-alone drive apparatus for interfacing a host computer with PCMCIA memory cards having multiple formats |
US5961590A (en) | 1997-04-11 | 1999-10-05 | Roampage, Inc. | System and method for synchronizing electronic mail between a client site and a central site |
US5884328A (en) * | 1997-08-29 | 1999-03-16 | Tandem Computers, Inc. | System and method for sychronizing a large database and its replica |
US6018571A (en) * | 1997-09-30 | 2000-01-25 | Mitel Corporation | System for interactive control of a computer and telephone |
US5991778A (en) | 1997-09-30 | 1999-11-23 | Stratfor Systems, Inc. | Method and apparatus for real-time secure file deletion |
US6070174A (en) * | 1997-09-30 | 2000-05-30 | Infraworks Corporation | Method and apparatus for real-time secure file deletion |
US5924096A (en) * | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
WO1999023579A1 (en) * | 1997-11-05 | 1999-05-14 | Microsoft Corporation | Notification scheduling system on a mobile device |
US6034621A (en) * | 1997-11-18 | 2000-03-07 | Lucent Technologies, Inc. | Wireless remote synchronization of data between PC and PDA |
US5960406A (en) | 1998-01-22 | 1999-09-28 | Ecal, Corp. | Scheduling system for use between users on the web |
AU2787899A (en) * | 1998-02-26 | 1999-09-15 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6098093A (en) * | 1998-03-19 | 2000-08-01 | International Business Machines Corp. | Maintaining sessions in a clustered server environment |
US6611877B2 (en) | 1998-06-30 | 2003-08-26 | Sun Microsystems, Inc. | System and method for aggregating registration of entities for notifications of events |
US6741994B1 (en) * | 1998-07-27 | 2004-05-25 | Hewlett-Packard Development Company, L.P. | Method and automatic organization of data |
US6269254B1 (en) * | 1998-09-28 | 2001-07-31 | Motorola, Inc. | Radio communications device and method with API between user application program and telephony program and method |
US6393485B1 (en) * | 1998-10-27 | 2002-05-21 | International Business Machines Corporation | Method and apparatus for managing clustered computer systems |
US6922708B1 (en) * | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
US7950017B1 (en) * | 1999-04-23 | 2011-05-24 | Avaya Inc. | Apparatus and method for forwarding messages between two applications |
US6915457B1 (en) * | 1999-04-23 | 2005-07-05 | Nortel Networks Limited | Apparatus and method for monitoring messages forwarded between applications |
US6925513B1 (en) | 1999-05-04 | 2005-08-02 | Apple Computer, Inc. | USB device notification |
US6678830B1 (en) * | 1999-07-02 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for an ACPI compliant keyboard sleep key |
US6442565B1 (en) * | 1999-08-13 | 2002-08-27 | Hiddenmind Technology, Inc. | System and method for transmitting data content in a computer network |
US6141564A (en) | 1999-09-30 | 2000-10-31 | Motorola, Inc. | Method of sharing a SIM card between two masters |
US6631363B1 (en) | 1999-10-11 | 2003-10-07 | I2 Technologies Us, Inc. | Rules-based notification system |
US7305475B2 (en) | 1999-10-12 | 2007-12-04 | Webmd Health | System and method for enabling a client application to operate offline from a server |
US7003571B1 (en) * | 2000-01-31 | 2006-02-21 | Telecommunication Systems Corporation Of Maryland | System and method for re-directing requests from browsers for communication over non-IP based networks |
US6584185B1 (en) * | 2000-01-31 | 2003-06-24 | Microsoft Corporation | Telephone abstraction layer and system in a computer telephony system |
US20020046299A1 (en) * | 2000-02-09 | 2002-04-18 | Internet2Anywhere, Ltd. | Method and system for location independent and platform independent network signaling and action initiating |
CN1591399B (zh) * | 2000-03-16 | 2011-03-09 | 微软公司 | 通知平台总体结构 |
US7030837B1 (en) * | 2000-04-24 | 2006-04-18 | Microsoft Corporation | Auxiliary display unit for a computer system |
US6928300B1 (en) * | 2000-11-09 | 2005-08-09 | Palmsource, Inc. | Method and apparatus for automated flexible configuring of notifications and activation |
US20020105548A1 (en) * | 2000-12-12 | 2002-08-08 | Richard Hayton | Methods and apparatus for creating a user interface using property paths |
US6874094B2 (en) * | 2000-12-19 | 2005-03-29 | Microsoft Corporation | Method for locking user input elements for a small computer device by ignoring input signals if a locking signal is generated by a calendar-type application program |
US7299257B2 (en) * | 2001-02-06 | 2007-11-20 | Lucent Technologies Inc. | Apparatus and method for use in collaboration services |
US6826762B2 (en) | 2001-02-16 | 2004-11-30 | Microsoft Corporation | Radio interface layer in a cell phone with a set of APIs having a hardware-independent proxy layer and a hardware-specific driver layer |
US7472396B2 (en) * | 2001-05-18 | 2008-12-30 | Qualcomm Incorporated | Extensible event notification mechanism |
US20020178077A1 (en) * | 2001-05-25 | 2002-11-28 | Katz Steven Bruce | Method for automatically invoking a software module in response to an internal or external event affecting the procurement of an item |
US6954781B2 (en) | 2001-08-01 | 2005-10-11 | International Business Machines Corporation | Messaging system for directing a server to convert voice message into text and appending a converted text message to another converted text message |
US7171671B2 (en) | 2001-08-23 | 2007-01-30 | Microsoft Corporation | Method and system for providing state change notifications in device drivers |
US20040066920A1 (en) * | 2001-08-31 | 2004-04-08 | Vandermeijden Tom R. | Method and apparatus for automatically populating a contact database in a mobile communication device |
US6993327B2 (en) * | 2001-10-29 | 2006-01-31 | Motorola, Inc. | Multicast distribution of presence information for an instant messaging system |
US6909910B2 (en) | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
US7657765B2 (en) * | 2002-02-19 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Power saving features for computing systems |
GB0223498D0 (en) * | 2002-10-09 | 2002-11-13 | Nokia Corp | Provision of information regarding a mobile station |
US7809384B2 (en) * | 2002-11-05 | 2010-10-05 | Microsoft Corporation | User-input scheduling of synchronization operation on a mobile device based on user activity |
US7269433B2 (en) * | 2002-11-05 | 2007-09-11 | Microsoft Corporation | Scheduling of synchronization operation on a mobile device based on predetermined subset of user actions |
US7240228B2 (en) * | 2003-05-05 | 2007-07-03 | Microsoft Corporation | Method and system for standby auxiliary processing of information for a computing device |
US7103785B2 (en) * | 2003-05-30 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus for power management event wake up |
US7644376B2 (en) * | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
JP4297934B2 (ja) | 2006-10-24 | 2009-07-15 | 三菱電機株式会社 | 車両用通信装置 |
US20160088046A1 (en) * | 2014-09-18 | 2016-03-24 | Multipop Llc | Real time content management system |
US9633622B2 (en) * | 2014-12-18 | 2017-04-25 | Intel Corporation | Multi-user sensor-based interactions |
-
2004
- 2004-06-22 US US10/873,881 patent/US7644376B2/en active Active
- 2004-10-06 EP EP04023852A patent/EP1679596A3/en not_active Ceased
- 2004-10-22 CN CN201110222798.0A patent/CN102291446B/zh active Active
- 2004-10-22 CN CN200410087701XA patent/CN1617501B/zh active Active
- 2004-10-22 KR KR1020040084927A patent/KR100920850B1/ko active IP Right Grant
- 2004-10-25 JP JP2004310058A patent/JP4790245B2/ja not_active Expired - Fee Related
-
2009
- 2009-11-23 US US12/624,038 patent/US8990695B2/en active Active
-
2015
- 2015-01-29 US US14/609,134 patent/US10169111B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08129536A (ja) * | 1994-10-28 | 1996-05-21 | Oki Electric Ind Co Ltd | イベント処理システム |
US5991536A (en) * | 1996-11-12 | 1999-11-23 | International Business Machines Corporation | Object-oriented tool for registering objects for observation and causing notifications to be made in the event changes are made to an object which is being observed |
JP2003044320A (ja) * | 2001-07-31 | 2003-02-14 | Pfu Ltd | 教育システム |
JP2003337710A (ja) * | 2002-05-17 | 2003-11-28 | Ntt Docomo Inc | 電子機器、イベント提供方法、プログラム、及び記録媒体 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007024438A1 (en) * | 2005-08-25 | 2007-03-01 | Microsoft Corporation | Data change notifications |
JP2007133881A (ja) * | 2005-11-09 | 2007-05-31 | Samsung Electronics Co Ltd | UPnPイベントに関する情報を効率的に送受信する方法及び装置 |
US8054831B2 (en) | 2005-11-09 | 2011-11-08 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving information regarding UPnP event |
JP2010520533A (ja) * | 2007-02-28 | 2010-06-10 | マイクロソフト コーポレーション | 情報技術管理のための存在認識通知 |
US8671146B2 (en) | 2007-02-28 | 2014-03-11 | Microsoft Corporation | Presence aware notification for information technology management |
JP2011175633A (ja) * | 2010-01-26 | 2011-09-08 | Ntt Docomo Inc | 情報処理装置および情報処理方法 |
JP2013106159A (ja) * | 2011-11-11 | 2013-05-30 | Sharp Corp | 情報端末、その制御方法、および、制御プログラムおよびコンピュータ読み取り可能な記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
CN102291446B (zh) | 2014-11-26 |
EP1679596A3 (en) | 2007-08-22 |
JP4790245B2 (ja) | 2011-10-12 |
US20050091219A1 (en) | 2005-04-28 |
US20150150027A1 (en) | 2015-05-28 |
US20100077310A1 (en) | 2010-03-25 |
KR100920850B1 (ko) | 2009-10-09 |
US10169111B2 (en) | 2019-01-01 |
US7644376B2 (en) | 2010-01-05 |
KR20050039665A (ko) | 2005-04-29 |
CN102291446A (zh) | 2011-12-21 |
EP1679596A2 (en) | 2006-07-12 |
CN1617501A (zh) | 2005-05-18 |
US8990695B2 (en) | 2015-03-24 |
CN1617501B (zh) | 2011-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4790245B2 (ja) | 状態変化をアプリケーションに通知するための柔軟性のあるアーキテクチャ | |
US7716651B2 (en) | System and method for a context-awareness platform | |
US20170003832A1 (en) | Power Efficient Application Notification System | |
KR101739216B1 (ko) | 중앙집중식 태스크 스케줄링 | |
EP2756385B1 (en) | Managing processes within suspend states and execution states | |
US9201693B2 (en) | Quota-based resource management | |
EP2756389B1 (en) | Managing processes within suspend states and execution states | |
US7647075B2 (en) | Terminal device and program | |
EP2665001A2 (en) | Architectural pattern for persistent web application design | |
CA2757535A1 (en) | System and method for reducing startup cost of a software application | |
KR101943133B1 (ko) | 중단 상태 및 실행 상태에 있는 프로세스의 관리 기법 | |
JP2013537340A (ja) | ポータブルコンピューティングデバイスのリソースを管理するためのシステムおよび方法 | |
US7191449B2 (en) | System and method for providing componentized transports and forms | |
JP2002163118A (ja) | 情報処理装置及びその方法、コンピュータ可読メモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071025 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101214 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110314 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110317 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110413 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20110414 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110414 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110511 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110516 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110610 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110701 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110720 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140729 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4790245 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |