欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

向應(yīng)用程序通知狀態(tài)變化的靈活體系結(jié)構(gòu)的制作方法

文檔序號(hào):7743512閱讀:203來(lái)源:國(guó)知局
專利名稱:向應(yīng)用程序通知狀態(tài)變化的靈活體系結(jié)構(gòu)的制作方法
向應(yīng)用程序通知狀態(tài)變化的靈活體系結(jié)構(gòu)本申請(qǐng)是申請(qǐng)日為2004年10月22日、申請(qǐng)?zhí)枮榈?00410087701. X號(hào)、發(fā)明名稱為“向應(yīng)用程序通知狀態(tài)變化的靈活體系結(jié)構(gòu)”的中國(guó)專利申請(qǐng)的分案申請(qǐng)。相關(guān)申請(qǐng)本申請(qǐng)要求序號(hào)為60/513,723,在2003年10月23日提交的美國(guó)臨時(shí)專利申請(qǐng)符合35USC119(e)的優(yōu)先權(quán)。
背景技術(shù)
當(dāng)今,移動(dòng)設(shè)備被設(shè)計(jì)成運(yùn)行各種應(yīng)用程序,并保持用戶能獲得最新的當(dāng)前信息。 這些設(shè)備的某些包括個(gè)人數(shù)字助理、無(wú)線電話和電子郵件設(shè)備。移動(dòng)設(shè)備現(xiàn)在能通過(guò)各種裝置連接到因特網(wǎng)和其它網(wǎng)絡(luò),并從而能通過(guò)網(wǎng)絡(luò)交換信息。這些移動(dòng)設(shè)備能更新應(yīng)用程序,并發(fā)送和接收信息,如電子郵件、電子郵件附件和網(wǎng)頁(yè)內(nèi)容。提供所有這些功能需要移動(dòng)設(shè)備上的應(yīng)用程序收到各種事件的通知,如當(dāng)新的電子郵件可用時(shí)、當(dāng)設(shè)備的屏幕被激活時(shí)、當(dāng)收到電話時(shí)等。然而,訪問(wèn)與該設(shè)備關(guān)聯(lián)的所有不同狀態(tài)變化是困難的。

發(fā)明內(nèi)容
簡(jiǎn)言之,本發(fā)明是針對(duì)在各設(shè)備間統(tǒng)一狀態(tài)和通知的體系結(jié)構(gòu)。按本發(fā)明的一方面,客戶機(jī)向通知代理程序(broker)注冊(cè)以接收對(duì)狀態(tài)屬性改變的通知。當(dāng)注冊(cè)的狀態(tài)屬性改變時(shí),通知代理程序確定向哪一客戶機(jī)通知狀態(tài)改變,并為客戶機(jī)提供關(guān)于該變化的通知。例如,客戶機(jī)能注冊(cè)以接收關(guān)于電池強(qiáng)度變化、網(wǎng)絡(luò)連接性、存儲(chǔ)器使用等的通知。每當(dāng)這些注冊(cè)的態(tài)屬性之一改變時(shí),通知代理程序向客戶機(jī)發(fā)通知消息。按本發(fā)明另一方面,每當(dāng)狀態(tài)改變,當(dāng)狀態(tài)改變滿足預(yù)定條件時(shí),或根據(jù)一時(shí)間表來(lái)通知客戶機(jī)。按本發(fā)明的又一方面,響應(yīng)于狀態(tài)改變或時(shí)間表能裝入應(yīng)用程序。例如,客戶機(jī)能注冊(cè),以當(dāng)發(fā)生某個(gè)事件時(shí),如移動(dòng)設(shè)備接收到定向到要裝入的應(yīng)用程序的消息時(shí), 啟動(dòng)該應(yīng)用程序。也能根據(jù)客戶機(jī)配置的時(shí)間表來(lái)啟動(dòng)應(yīng)用程序。按本發(fā)明的再一方面,提供一種應(yīng)用編程接口(API),它針對(duì)提供一種在設(shè)備內(nèi)不同組件之間訪問(wèn)狀態(tài)變化信息的統(tǒng)一方法。例如,應(yīng)用程序能使用同一函數(shù)調(diào)用來(lái)訪問(wèn)由設(shè)備內(nèi)的不同組件設(shè)置的狀態(tài)屬性。按本發(fā)明的還有一個(gè)方面,注冊(cè)狀態(tài)屬性能跨設(shè)備重起而保持不變。


圖1示出一個(gè)示例性計(jì)算設(shè)備;圖2示出一個(gè)示例性移動(dòng)設(shè)備;圖3示出一個(gè)示例性狀態(tài)管理和通知系統(tǒng);圖4示出用于狀態(tài)變化通知系統(tǒng)的過(guò)程;以及圖5示出按本發(fā)明的各方面處理狀態(tài)變化信息的過(guò)程。
具體實(shí)施例方式簡(jiǎn)言之,本發(fā)明針對(duì)提供一種用于存儲(chǔ)設(shè)備、應(yīng)用程序和服務(wù)狀態(tài)的統(tǒng)一機(jī)制的方法和系統(tǒng),以及一種豐富的通知代理體系結(jié)構(gòu)。一般而言,客戶機(jī)向通知代理程序注冊(cè), 以便在某些狀態(tài)屬性改變時(shí)接收通知。當(dāng)注冊(cè)的狀態(tài)屬性改變時(shí),通知代理程序判斷向哪一客戶機(jī)通知該狀態(tài)變化,并向該客戶機(jī)提供關(guān)于此變化的通知。每當(dāng)狀態(tài)改變,當(dāng)狀態(tài)變化滿足預(yù)定條件時(shí),或根據(jù)一時(shí)間表來(lái)通知客戶機(jī)。也可響應(yīng)于狀態(tài)變化或時(shí)間表來(lái)裝入應(yīng)用程序。也提供了一種應(yīng)用編程接口(API),它針對(duì)提供一種在設(shè)備內(nèi)不同組件之間訪問(wèn)狀態(tài)變化的統(tǒng)一方法。在整個(gè)說(shuō)明書和權(quán)利要求書中,下列術(shù)語(yǔ)至少采取明確與此處相關(guān)的意義,除非上下文清楚地另外要求。下面標(biāo)識(shí)的意義并不意味著局限這些術(shù)語(yǔ),而僅提供這些術(shù)語(yǔ)的說(shuō)明性示例?!耙弧?,“一個(gè)”和“該”的意義包括多個(gè)引用,“在……中”的意義包括“在…… 內(nèi)”和“在……上”。術(shù)語(yǔ)“狀態(tài)屬性”指的是向通知系統(tǒng)注冊(cè)并存儲(chǔ)的“狀態(tài)”變量,用于維護(hù)和改變通知。術(shù)語(yǔ)“通知請(qǐng)求”指的是來(lái)自要向其通知狀態(tài)變化的客戶機(jī)的請(qǐng)求。術(shù)語(yǔ)“通知列表”指的是已注冊(cè)狀態(tài)屬性變化通知的客戶機(jī)的集合。術(shù)語(yǔ)“通知代理程序”指的是負(fù)責(zé)從數(shù)據(jù)存儲(chǔ)中添加、更新和移除數(shù)據(jù)的底層驅(qū)動(dòng)程序。術(shù)語(yǔ)“狀態(tài)改變組件”指的是添加,更新,或通常維護(hù)數(shù)據(jù)存儲(chǔ)中的狀態(tài)屬性的任何組件。術(shù)語(yǔ)“客戶機(jī)”指的是注冊(cè)狀態(tài)屬性改變通知的任何組件??蛻魴C(jī)可以是狀態(tài)改變組件,狀態(tài)改變組件也可以是客戶機(jī)。術(shù)語(yǔ)“狀態(tài)屬性標(biāo)識(shí)符”指的是狀態(tài)屬性的“友好”串(名)的表示。此標(biāo)識(shí)符能是分層的,并是唯一的。術(shù)語(yǔ)“條件通知”指的是當(dāng)狀態(tài)屬性改變且狀態(tài)屬性的新值滿足通知請(qǐng)求中規(guī)定的條件時(shí)所發(fā)出的通知。說(shuō)明性操作環(huán)境參考圖1,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括諸如計(jì)算設(shè)備100的計(jì)算設(shè)備。計(jì)算設(shè)備100能被配置成客戶機(jī)或服務(wù)器。在很基本的配置中,計(jì)算設(shè)備100通常包括至少一個(gè)處理單元102和系統(tǒng)存儲(chǔ)器104。按照計(jì)算設(shè)備的確切配置和類型,系統(tǒng)存儲(chǔ)器104能是易失(如RAM)、非易失(如ROM,閃存等)或兩者的某種組合。系統(tǒng)存儲(chǔ)器104通常包括操作系統(tǒng)105、一個(gè)或多個(gè)程序模塊106,并能包括程序數(shù)據(jù)107。在圖1中,這些基本配置由在虛線108中的那些組件示出。計(jì)算設(shè)備100能具有附加特征或功能。例如,計(jì)算設(shè)備100還能包括另外的數(shù)據(jù)存儲(chǔ)設(shè)備(可移動(dòng)和/或不可移動(dòng)的),如磁盤、光盤或磁帶。在圖1中,這些另外的存儲(chǔ)用可移動(dòng)存儲(chǔ)109和不可移動(dòng)存儲(chǔ)110示出。計(jì)算機(jī)存儲(chǔ)介質(zhì)能包括以用于存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失和非易失、可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲(chǔ)器104,可移動(dòng)存儲(chǔ)109,和不可移動(dòng)存儲(chǔ)110均是計(jì)算機(jī)存儲(chǔ)介質(zhì)之例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、R0M、EEPR0M、閃存或其它存儲(chǔ)器技術(shù)、 CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲(chǔ)、盒式磁帶、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備, 或能用于存儲(chǔ)希望的信息并能由計(jì)算設(shè)備100訪問(wèn)的其它介質(zhì)。任何那樣的計(jì)算機(jī)存儲(chǔ)介質(zhì)能是設(shè)備100的部分。計(jì)算設(shè)備100還能具有輸入設(shè)備112,如鍵盤、鼠標(biāo)、輸入筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備等。還能包括如顯示器、揚(yáng)聲器、打印機(jī)等輸出設(shè)備。計(jì)算設(shè)備100還包含通信連接,它允許該設(shè)備如經(jīng)過(guò)網(wǎng)絡(luò)與其它計(jì)算設(shè)備118通信。通信連接116是通信媒體的例子。通信媒體通常在如載波或其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號(hào)包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任何信息傳送媒體。 術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”意為以如在信號(hào)中編碼信息的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非局限,通信媒體包括如有線網(wǎng)絡(luò)或直線連接的有線媒體,如聲音、RF、 紅外和其它無(wú)線媒體的無(wú)線媒體。這里使用的術(shù)語(yǔ)計(jì)算機(jī)可讀媒質(zhì)包括存儲(chǔ)介質(zhì)和通信媒體。參考圖2,用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例性系統(tǒng)包括如移動(dòng)設(shè)備200的移動(dòng)設(shè)備。移動(dòng)設(shè)備200具有處理器沈0、存儲(chǔ)器沈2、顯示器2 和小鍵盤232。存儲(chǔ)器262 —般包括易失存儲(chǔ)器(如RAM)和非易失存儲(chǔ)器(如ROM、閃存等)。移動(dòng)設(shè)備200包括操作系統(tǒng)沈4, 如微軟公司的Windows CE操作系統(tǒng)或其它操作系統(tǒng),它們駐留在存儲(chǔ)器沈2中,并在處理器260上執(zhí)行。小鍵盤232可以是壓鍵數(shù)字撥號(hào)盤(象典型的電話)、多鍵鍵盤(如傳統(tǒng)的鍵盤)。顯示器2 能是液晶顯示器,或在移動(dòng)設(shè)備中常用的任何其它類型顯示器。顯示器 228能是觸敏的,因而能用作輸入設(shè)備。一個(gè)或多個(gè)應(yīng)用程序能加載到存儲(chǔ)器沈2中,并在操作系統(tǒng)264上運(yùn)行。應(yīng)用程序的示例包括電話撥號(hào)程序、電子郵件程序、時(shí)間表程序、PIM(個(gè)人信息管理)程序、文字處理程序、電子表格程序、因特網(wǎng)瀏覽器程序等。應(yīng)用程序266能使用共用的API,以在與設(shè)備關(guān)聯(lián)的狀態(tài)屬性上執(zhí)行動(dòng)作。例如,電話撥號(hào)程序能向通知系統(tǒng)注冊(cè),以接收關(guān)于對(duì)信號(hào)強(qiáng)度、電話狀態(tài)、電池強(qiáng)度的改變的通知。移動(dòng)計(jì)算設(shè)備200在存儲(chǔ)器262中還包括非易失存儲(chǔ)沈8。非易失存儲(chǔ)268可用于存儲(chǔ)永久性信息,它在移動(dòng)計(jì)算設(shè)備200掉電時(shí)也不會(huì)丟失。應(yīng)用程序沈6能使用和儲(chǔ)存存儲(chǔ)器沈8中的信息,如電子郵件或由電子郵件應(yīng)用程序使用的其它消息、由PIM使用的聯(lián)系人信息、由時(shí)間表程序使用的約會(huì)信息、由文字處理程序使用的文檔等。移動(dòng)計(jì)算設(shè)備200具有實(shí)現(xiàn)為一個(gè)或多個(gè)電池的電源270。電源還能包括外接電源,如AC適配器或補(bǔ)充或重充電電池的電源連接座。移動(dòng)計(jì)算設(shè)備200還能包括外部通知機(jī)制,如LED (未示出)和音頻接口 274。這些設(shè)備能直接耦合到電源270,使得在激活時(shí),即使關(guān)閉處理器260和其它組件來(lái)節(jié)省電池功率,它們?nèi)园赐ㄖ獧C(jī)制所指示的在一段時(shí)間內(nèi)保持打開。音頻接口 274用于向用戶提供音頻信號(hào)并從用戶接收音頻信號(hào)。例如,音頻接口 274能耦合至揚(yáng)聲器以提供音頻輸出,并耦合至麥克風(fēng)以接收聽(tīng)覺(jué)輸入以便于電話對(duì)話。移動(dòng)計(jì)算設(shè)備200還能包含通信連接M0,它允許設(shè)備如經(jīng)無(wú)線網(wǎng)絡(luò)與其它計(jì)算設(shè)備進(jìn)行通信。移動(dòng)計(jì)算設(shè)備200還包括無(wú)線電接口層272,它執(zhí)行發(fā)送和接收射頻通信的功能。無(wú)線電接口層272通過(guò)通信載波或服務(wù)提供商方便了在移動(dòng)計(jì)算設(shè)備200和外部世界之間的無(wú)線連接。到無(wú)線電接口層272的來(lái)回發(fā)送在操作系統(tǒng)沈4的控制下進(jìn)行。換言之,由無(wú)線電接口層272和通信連接240接收的通信能通過(guò)操作系統(tǒng)傳播到應(yīng)用程序,反之亦然。說(shuō)明件狀杰變化通知系統(tǒng)圖3按本發(fā)明的諸方面示出了示例狀態(tài)管理和通知系統(tǒng)。通知系統(tǒng)300包括狀態(tài)改變組件310、客戶機(jī)315和320、通知代理程序335和數(shù)據(jù)存儲(chǔ)330。按一個(gè)實(shí)施例,通知代理程序335還維護(hù)通知列表340、高速緩存屬性345和調(diào)度程序350。如客戶機(jī)315或320那樣的客戶機(jī)向通知代理程序335注冊(cè)來(lái)接收關(guān)于對(duì)狀態(tài)屬性的變化的通知。一般而言,每當(dāng)狀態(tài)屬性改變,當(dāng)變化滿足一條件時(shí)或根據(jù)一時(shí)間表,客戶機(jī)用注冊(cè)該客戶機(jī)以接收通知的通知代理程序335作出通知請(qǐng)求。通知能是永久的或暫時(shí)的通知。永久的通知被保存在數(shù)據(jù)存儲(chǔ)(320)中。按照一個(gè)實(shí)施例,永久的通知保存在如注冊(cè)表的后端數(shù)據(jù)存儲(chǔ)中,因而跨重起是“持久不變的”。因?yàn)檫@些通知是持久的,這些類型的狀態(tài)屬性在軟復(fù)位(或關(guān)閉)之前具有與重起(或起動(dòng))之后相同的值。。按照一個(gè)實(shí)施例,狀態(tài)屬性默認(rèn)地是持久的。暫時(shí)通知不是永久的,因而跨重起是不持久保持的。換言之,若軟復(fù)位(或重起) 設(shè)備,從通知列表340中刪除通知請(qǐng)求。為了恢復(fù)暫時(shí)通知,客戶機(jī)重新注冊(cè)(向通知代理程序335發(fā)送另一通知請(qǐng)求)以接收關(guān)于對(duì)狀態(tài)屬性的變化的通知??蛻魴C(jī)還能注冊(cè),使在發(fā)生狀態(tài)改變時(shí)和/或按時(shí)間表裝入應(yīng)用程序。通常,如果當(dāng)狀態(tài)改變或已調(diào)度的時(shí)間出現(xiàn)時(shí)客戶機(jī)所指定的應(yīng)用程序尚未運(yùn)行,則通知代理程序 335發(fā)出命令以啟動(dòng)該應(yīng)用程序。按一個(gè)實(shí)施例,客戶機(jī)能指定當(dāng)裝入時(shí)發(fā)送給該應(yīng)用程序的命令行參數(shù)。若裝入的進(jìn)程創(chuàng)建一窗口,則向該窗口發(fā)送表示該通知的消息。若目標(biāo)進(jìn)程已在客戶機(jī)上運(yùn)行,則客戶機(jī)僅接收通知消息。發(fā)送給客戶機(jī)的通知也能分批處理。分批的狀態(tài)屬性供經(jīng)常經(jīng)常發(fā)生值變化的狀態(tài)屬性使用。設(shè)定允許使?fàn)顟B(tài)屬性值“穩(wěn)定”的預(yù)定的時(shí)間周期。按一個(gè)實(shí)施例,預(yù)定周期設(shè)成200ms。若在預(yù)定期間未向狀態(tài)屬性值作出改變,則將該通知傳送給注冊(cè)的客戶機(jī)。分批預(yù)定周期是可配置的,并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)330中。數(shù)據(jù)存儲(chǔ)330被配置成存儲(chǔ)注冊(cè)的狀態(tài)屬性,以及其它信息。按一個(gè)實(shí)施例,數(shù)據(jù)存儲(chǔ)330是操作系統(tǒng)提供的注冊(cè)表,如由微軟公司的Windows XP操作系統(tǒng)提供的注冊(cè)表。 數(shù)據(jù)存儲(chǔ)330也能是在其中能設(shè)置和訪問(wèn)信息的其它類型的數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)存儲(chǔ)330還能包括在通知系統(tǒng)300的各種位置上維護(hù)的一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)存儲(chǔ)330也能用可由客戶機(jī)315和320訪問(wèn)的狀態(tài)屬性的默認(rèn)設(shè)置預(yù)加載。 預(yù)加載狀態(tài)屬性數(shù)據(jù)使許多狀態(tài)屬性可用,而客戶機(jī)不必添加狀態(tài)屬性。例如,按一個(gè)實(shí)施例,下面狀態(tài)對(duì)客戶機(jī)可用而不必注冊(cè)該狀態(tài)顯示校準(zhǔn)(分辨率,亮度)、不消除的提醒 (計(jì)數(shù)、主題、日期、時(shí)間、位置)、不消除的警告(計(jì)數(shù)、描述、日期、時(shí)間)、電池(剩余電量的%、狀態(tài))、后備電池(剩余電量的%、狀態(tài))、存儲(chǔ)器(空閑的程序存儲(chǔ)器、已使用的程序存儲(chǔ)器、空閑的存儲(chǔ)存儲(chǔ)器、已使用的存儲(chǔ)存儲(chǔ)器)、存儲(chǔ)卡(總的空閑存儲(chǔ)器、總的已使用存儲(chǔ)器)、硬件(按下電話狀態(tài)(開/關(guān))、啟用鍵盤、啟用Wifi、啟用藍(lán)牙、頭戴式耳機(jī)存在、相機(jī)存在)、消息(未讀計(jì)數(shù)、總計(jì)數(shù)、草稿計(jì)數(shù)、發(fā)件箱計(jì)數(shù))、任務(wù)(高優(yōu)先級(jí)計(jì)數(shù)、今天的任務(wù)計(jì)數(shù)、已過(guò)期計(jì)數(shù))、日程表(下次約會(huì)、名字、位置、日期、時(shí)間、POOM ID)、白天的約會(huì)(名字、位置、日期、時(shí)間、POOM ID)、當(dāng)前約會(huì)(名字、位置、日期、時(shí)間、POOM ID);當(dāng)前空閑/忙碌狀態(tài)、即時(shí)消息(狀態(tài)、在線聯(lián)系人計(jì)數(shù)、離線聯(lián)系人計(jì)數(shù))、連接性(速度、 Wifi、接入點(diǎn)、信號(hào)強(qiáng)度、連接名、連接到(工作,互聯(lián)網(wǎng))、狀態(tài))、媒體播放器(狀態(tài)、播放列表(名稱、模式(重復(fù),隨機(jī))、音軌記數(shù)、總持續(xù)時(shí)間)、音軌(類型(音頻、視頻)、名稱、專輯、藝術(shù)家、音軌數(shù)、流派、年、持續(xù)時(shí)間、播放演位置、文件名、比特率)、同步狀態(tài)、電話(操作員、信號(hào)強(qiáng)度、電話狀態(tài)、概覽、漫游、無(wú)線電狀態(tài)、有效呼叫(呼叫者名、呼叫者號(hào)碼)、未接呼叫計(jì)數(shù)、SIM工具組消息。如能看到,狀態(tài)覆蓋了許多不同的應(yīng)用程序。按一個(gè)實(shí)施例,狀態(tài)屬性數(shù)據(jù)被組織成一層次結(jié)構(gòu)。該層次結(jié)構(gòu)使客戶機(jī)能通過(guò)參照其父屬性來(lái)規(guī)定一組狀態(tài)屬性。狀態(tài)屬性能設(shè)置成如串、整型、浮點(diǎn)型等數(shù)據(jù)類型??蛻魴C(jī)能通過(guò)狀態(tài)屬性的“友好”串(名)表示來(lái)標(biāo)識(shí)狀態(tài)屬性。例如, “battery\a”參照在父“battery (電池)”之下的狀態(tài)屬性“a”,同樣,“battery\b”能是在父“battery”之下的狀態(tài)屬性“b”。當(dāng)參照共同的父之下的一組狀態(tài)屬性時(shí),能使用父標(biāo)識(shí)符。例如,為接收基于對(duì)所有電池狀態(tài)的變化的通知,在注冊(cè)表中提供“battery”,從而使用單個(gè)名字參照所有電池狀態(tài)屬性。代理程序335能被配置成控制對(duì)數(shù)據(jù)存儲(chǔ)330中設(shè)置/調(diào)節(jié)/移除狀態(tài)屬性類型的訪問(wèn)。例如,能在狀態(tài)屬性上加上限制,它將從通知系統(tǒng)中的刪除屬性局限到預(yù)定的客戶機(jī)的列表上。當(dāng)刪除狀態(tài)屬性時(shí),向已注冊(cè)關(guān)于該屬性的通知的客戶機(jī)通知這一刪除。如上討論,客戶機(jī)315和320注冊(cè)他們?cè)诮邮贞P(guān)于這些狀態(tài)屬性何時(shí)改變的通知時(shí)所感興趣的的狀態(tài)屬性。客戶機(jī)能注冊(cè),以每當(dāng)他們所注冊(cè)的狀態(tài)改變時(shí),當(dāng)施加到狀態(tài)值的條件滿足一條件時(shí),或在預(yù)定時(shí)間表到達(dá)時(shí)接收通知。條件通知可基于許多不同的條件。按一個(gè)實(shí)施例,條件包括所有、等于、不等于、大于、大于或等于、小于或等于、小于、包含、以……開始、以……結(jié)束。例如,客戶機(jī)315能向通知代理程序335注冊(cè),以當(dāng)未接呼叫計(jì)數(shù)狀態(tài)屬性大于15時(shí),和當(dāng)呼叫者的名字包含“Ja”時(shí)接收通知。加條件使客戶機(jī)能接收他們關(guān)注的狀態(tài)改變信息而不必處理他們無(wú)關(guān)心的狀態(tài)改變信息。注冊(cè)來(lái)接收關(guān)于對(duì)狀態(tài)屬性的改變的通知的客戶機(jī)在通知列表340中維護(hù)。通知代理程序335訪問(wèn)通知列表340,以便當(dāng)注冊(cè)的狀態(tài)屬性改變時(shí)確定應(yīng)接收通知的客戶機(jī)。調(diào)度程序350可被配置成根據(jù)時(shí)間表通知和/或激活客戶機(jī)。調(diào)度的激活通知模式允許客戶機(jī)根據(jù)向通知代理程序335注冊(cè)的簡(jiǎn)化的循環(huán)時(shí)間表接收通知。時(shí)間表能被配置成以任意的時(shí)間間隔發(fā)生,如按秒、分、小時(shí)、天、星期、或月的度量。按一個(gè)實(shí)施例,時(shí)間表由第一次出現(xiàn)的日期/時(shí)間和兩次出現(xiàn)的時(shí)間量來(lái)定義。此外,可不以循環(huán)時(shí)間間隔來(lái)定義時(shí)間表。當(dāng)不提供循環(huán)時(shí)間間隔時(shí),通知只發(fā)送一次,然后從通知列表中移除該注冊(cè)。 此外,當(dāng)通知到達(dá)時(shí),若未能找到指定的(在通知請(qǐng)求期間提供的)應(yīng)用程序路徑,則從通知列表340移除該已調(diào)度的通知注冊(cè)。當(dāng)狀態(tài)改變時(shí),狀態(tài)變化組件310在數(shù)據(jù)存儲(chǔ)330中更新該狀態(tài)屬性的值。狀態(tài)變化組件310能直接在數(shù)據(jù)存儲(chǔ)330中更新?tīng)顟B(tài),或通過(guò)通知代理程序335來(lái)更新。當(dāng)通過(guò)數(shù)據(jù)存儲(chǔ)330更新?tīng)顟B(tài)時(shí),數(shù)據(jù)存儲(chǔ)330向通知代理程序335傳遞此變化。當(dāng)通過(guò)通知代理程序335更新?tīng)顟B(tài)時(shí),通知代理程序335在數(shù)據(jù)存儲(chǔ)330中更新?tīng)顟B(tài)。在任一情況下, 通知代理程序335根據(jù)狀態(tài)變化確定應(yīng)通知哪些客戶機(jī)。通知代理程序335分析通知列表 340,并確定已注冊(cè)了關(guān)于該狀態(tài)變化的通知的客戶機(jī)。通知代理程序335向已經(jīng)改變的狀態(tài)屬性值施加任何條件,并在條件滿足時(shí)通知客戶機(jī)。當(dāng)不存在與該狀態(tài)變化關(guān)聯(lián)的條件時(shí),向該客戶機(jī)通知該狀態(tài)變化。當(dāng)如客戶機(jī)315和320那樣的客戶機(jī)從通知代理程序335接收通知時(shí),客戶機(jī)能調(diào)用公用API中的功能(見(jiàn)下面討論)來(lái)檢索該狀態(tài)屬性的新?tīng)顟B(tài)。可選地,可將該屬性信息連同通知一起直接傳送到客戶機(jī)。當(dāng)用戶對(duì)接收有關(guān)特定狀態(tài)屬性的通知不再感興趣時(shí),客戶機(jī)能從接收關(guān)于該狀態(tài)屬性的改變通知撤消其本身的注冊(cè)。客戶機(jī)315和320也能在任何時(shí)刻使用公用API直接查詢代理程序335,以找到狀態(tài)屬性的狀態(tài)。狀態(tài)屬性值也能由通知代理程序335高速緩存在高速緩存屬性345中。狀態(tài)屬性值能根據(jù)許多不同理由高速緩存。例如,狀態(tài)屬性值能被高速緩存,使得可將狀態(tài)屬性的先前值與該狀態(tài)屬性的當(dāng)前值進(jìn)行比較。此外,高速緩存能幫助便于請(qǐng)求狀態(tài)屬性值的快速重復(fù)查找。按一個(gè)實(shí)施例,通知系統(tǒng)300支撐.NET (管理的)客戶機(jī),以向存儲(chǔ)添加和改變通知注冊(cè)。以下是進(jìn)一步表明狀態(tài)管理通知系統(tǒng)300的某些示例性場(chǎng)景。例1:ISV 服務(wù)網(wǎng)絡(luò)新手Norm構(gòu)建了 C#應(yīng)用程序,它保持了當(dāng)前賽季棒球的統(tǒng)計(jì)數(shù)據(jù)(如,隊(duì)、 隊(duì)員、得分、狀態(tài)等)的完整數(shù)據(jù)庫(kù)。他還構(gòu)建了簡(jiǎn)單的XML Web-服務(wù)客戶機(jī),它能連接到體育網(wǎng)站并下拉出已更新的日統(tǒng)計(jì)。因?yàn)樵搼?yīng)用存儲(chǔ)的數(shù)據(jù)量相當(dāng)大,Norm僅希望其應(yīng)用程序在設(shè)備(如PPC)上的“粗管道(fat pipe),,(如802. Ix)可用時(shí)同步數(shù)據(jù)。然后Norm通過(guò)向通知代理程序335發(fā)送對(duì)當(dāng)高帶寬連接可用時(shí)的通知的請(qǐng)求來(lái)注冊(cè)其應(yīng)用程序。Norm在通知請(qǐng)求中另外規(guī)定,當(dāng)高帶寬連接可用時(shí)裝入其應(yīng)用程序的請(qǐng)求。當(dāng)與連接關(guān)聯(lián)的狀態(tài)變化組件更新該連接狀態(tài)時(shí),若狀態(tài)表明它是高速連接,則通知代理程序335 激活Norm的應(yīng)用程序。例2 =LOB公司(商務(wù)線)應(yīng)用程序企業(yè)開發(fā)者Elph構(gòu)建了基于現(xiàn)場(chǎng)服務(wù)形式的VB. Net應(yīng)用程序,供保險(xiǎn)精算人使用。該應(yīng)用程序允許保險(xiǎn)調(diào)停者查找零件數(shù)和價(jià)格、作出注釋、檢索汽車的原理圖等。每天, 保險(xiǎn)精算人在現(xiàn)場(chǎng)拿出他的移動(dòng)設(shè)備為客戶機(jī)服務(wù)。該應(yīng)用程序在數(shù)據(jù)存儲(chǔ)中本地持久保存今天的操作的所有數(shù)據(jù)。Elph希望每當(dāng)連接上設(shè)備時(shí),該應(yīng)用程序?qū)㈦x線存儲(chǔ)與公司主服務(wù)器同步。因而,Elph注冊(cè)其應(yīng)用程序以接收通知同步連接事件的通知。每當(dāng)連接上設(shè)備時(shí),向該應(yīng)用程序通知,且該應(yīng)用程序同步其數(shù)據(jù)。例3 電話游戲電話游戲開發(fā)者Golem正在構(gòu)建下一代電話多游戲者RPG。他希望該游戲是非常普及的,使得它一次能持續(xù)數(shù)周和數(shù)月。Golem主要關(guān)心的一個(gè)問(wèn)題是沒(méi)有用戶的干預(yù)游戲狀態(tài)的持久性。該游戲的純粹特征之一是在電話電池耗盡之前保存當(dāng)前的狀態(tài),并確保用戶永不丟失任何數(shù)據(jù)的能力。Golem注冊(cè)他的應(yīng)用程序來(lái)接收電量不足的通知,以確保在設(shè)備電池耗盡前保存游戲信息。例4 設(shè)備管理客戶機(jī)應(yīng)急企業(yè)管理客戶機(jī)開發(fā)者Erie尋求創(chuàng)建下一代移動(dòng)計(jì)算設(shè)備和電話管理客戶機(jī);能夠處理客戶機(jī)更新、病毒掃描、政策實(shí)施及其它更多的功能。他使用C#已構(gòu)建了強(qiáng)有力的設(shè)備方客戶機(jī),它能基于服務(wù)器驅(qū)動(dòng)的命令處理諸請(qǐng)求。每天凌晨3點(diǎn),Erie希望他的應(yīng)用程序“醒來(lái)”,使他能聯(lián)系服務(wù)器來(lái)尋找已更新的政策、病毒掃描器的簽名等。為此,他簡(jiǎn)單地向通知代理程序335注冊(cè)其應(yīng)用程序以接收已調(diào)度的通知(每天凌晨3點(diǎn))。Erie 現(xiàn)能確保他的應(yīng)用程序在指定時(shí)間運(yùn)行。圖4示出按本發(fā)明的諸方面用于狀態(tài)變化通知系統(tǒng)的過(guò)程。在開始?jí)K之后,過(guò)程 400前進(jìn)到塊410,其中,客戶機(jī)注冊(cè)以獲得對(duì)至少一個(gè)狀態(tài)屬性的改變的通知。若該狀態(tài)屬性不是已由另一客戶機(jī)監(jiān)控,則將該狀態(tài)屬性添加到可用狀態(tài)屬性的列表中。如上討論, 可用屬性的列表被預(yù)加載到通知系統(tǒng)??蛻魴C(jī)能注冊(cè)以接收關(guān)于對(duì)該屬性作出的所有變化、滿足條件的變化的通知,以及按時(shí)間表來(lái)通知。移到塊420,向通知系統(tǒng)注冊(cè)回叫,使得當(dāng)對(duì)注冊(cè)的狀態(tài)屬性作出變化時(shí),令通知系統(tǒng)知道該變化。按一個(gè)實(shí)施例,通知代理程序向操作系統(tǒng)注冊(cè)表注冊(cè)對(duì)狀態(tài)屬性值作出的變化的回叫。前進(jìn)到塊430,將該客戶機(jī)添加到通知列表,以接收關(guān)于該裝態(tài)屬性的通知消息。 包括在通知列表中的客戶機(jī)接收關(guān)于對(duì)注冊(cè)的狀態(tài)屬性的變化的通知。移到塊440,當(dāng)對(duì)任何注冊(cè)的狀態(tài)屬性作出變化時(shí),接收回叫。按一個(gè)實(shí)施例,回叫包括標(biāo)識(shí)狀態(tài)屬性變化的標(biāo)識(shí)符和狀態(tài)屬性的當(dāng)前值。移到塊450,處理狀態(tài)變化信息。一般而言,處理狀態(tài)變化信息包括判斷是否向每一對(duì)改變的狀態(tài)屬性已注冊(cè)的客戶機(jī)應(yīng)用了任何條件、時(shí)間表、分批處理或應(yīng)用程序裝入條件(見(jiàn)圖5及有關(guān)討論)。圖5示出按本發(fā)明的諸方面處理狀態(tài)改變信息的過(guò)程。在開始?jí)K500之后,過(guò)程前進(jìn)到塊510,其中,訪問(wèn)注冊(cè)接收有關(guān)改變的狀態(tài)屬性的狀態(tài)變化的通知用戶。按一個(gè)實(shí)施例,訪問(wèn)通知表以確定對(duì)已改變的狀態(tài)屬性已注冊(cè)的客戶機(jī)。移到判斷塊520,在通知客戶機(jī)之前判斷該客戶機(jī)是否已規(guī)定要應(yīng)用到該狀態(tài)屬性的任何條件。當(dāng)條件表達(dá)式與通知請(qǐng)求關(guān)聯(lián)時(shí),過(guò)程前進(jìn)到塊530,其中,判斷條件是否滿足。當(dāng)條件滿足,或當(dāng)客戶機(jī)未規(guī)定任何條件時(shí),過(guò)程前進(jìn)到判斷塊M0,其中,判斷客戶機(jī)是否規(guī)定響應(yīng)于狀態(tài)屬性的變化而裝入應(yīng)用程序。當(dāng)客戶機(jī)規(guī)定裝入應(yīng)用,過(guò)程前進(jìn)到塊550,其中,若應(yīng)用程序尚未運(yùn)行,則裝入該應(yīng)用程序。當(dāng)客戶機(jī)未規(guī)定裝入應(yīng)用程序,或在塊550 該應(yīng)用程序已經(jīng)被裝入,則過(guò)程移到塊560,向客戶機(jī)通知狀態(tài)變化。然后,過(guò)程前進(jìn)到判斷塊570,判斷是否有更多的注冊(cè)來(lái)接收關(guān)于對(duì)該狀態(tài)屬性變化的通知的客戶機(jī)。當(dāng)存在另一客戶機(jī)時(shí),過(guò)程返回到塊510。當(dāng)不存在其它客戶機(jī),則過(guò)程移到結(jié)束塊并返回以處理其它行動(dòng)。狀杰屬件類型和樽式按本發(fā)明的一個(gè)實(shí)施例,能使用兩個(gè)API來(lái)訪問(wèn)通知系統(tǒng)中的狀態(tài)信息。提供一本機(jī)或底層API,并向客戶機(jī)提供已管理的API。已管理的API訪問(wèn)本機(jī)API以執(zhí)行其操作。下面是按本發(fā)明的諸方面的示例性本機(jī)API
11#define E_ALREAD Y—REGISTERED #define E_D AT AT YPE_MI SMATCH #defme E—INSUFFICIENT—BUFFER #define EINVALID—HANDLE
ERROR—ALREDAY—REGISTERED ERROR—DATETYPE—MISMATCH ERROR一 INSUFFICIENT—BUFFER ERROR_INVALID_HANDLEMefine E—NOT FOUNDERROR NOT—FOUND
#define E NOTJREADYERROR NOT READY
DECLARE_HANDLE(HREGNOTIFY);//暫時(shí)通知句柄
,,氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺水氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺水氺氺氺氺氺氺氺氺氺本氺氺氺ホ氺氺本堆氺氺氺
//枚舉名REG—COMPARISONTYPE
//目的用于定義應(yīng)當(dāng)如何將狀態(tài)屬性值與條件變化通知的目標(biāo)值相比較。當(dāng)執(zhí)行 //REG—COMPARISONTYPE時(shí),改變的值用作1-值,即,REG_CT—LESS指如果
//改變的值小于目標(biāo)值,則激發(fā)通知。
//描迷
//以下示出了當(dāng)完成比較時(shí)哪一命題為真。大小寫敏感的CompareString用于比較 "串,以下信息用于闡明REG—COMPARISONTYPE值的目的。 //假設(shè) “cv"表示改變的值,“psz” 或 “dw” 表示 NOTIFICATIONCONDITION //結(jié)構(gòu)中指定的TargetValue (目標(biāo)值)。設(shè)“1”表示psz中指定的串的長(zhǎng)度
(wcslen(psz)),“cvl"表示改變的值的串長(zhǎng)度(wcslen(cv))。 //REG SZREG 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,l)) |N/A|
//REG CT END WITH|(0==strcmp(cv+cvl-l’pu)) |N/A|
氺:^氺永氺氺氺氺氺氺氺水氺氺*氺傘氺氺氺氺氺氺氺氺氺氺氺氺爾氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺
typedefenum tagREG COMPARISONTYPE
權(quán)利要求
1.一種用于響應(yīng)于狀態(tài)屬性改變向客戶機(jī)提供通知的方法,包括在位于計(jì)算設(shè)備上的通知代理程序處,接收來(lái)自所述計(jì)算設(shè)備上的客戶機(jī)應(yīng)用程序的自動(dòng)通知請(qǐng)求,所述自動(dòng)通知請(qǐng)求是響應(yīng)于源自所述計(jì)算設(shè)備的事件來(lái)接收通知,其中所述事件與所述計(jì)算設(shè)備的狀態(tài)屬性的改變相關(guān)聯(lián),其中所述客戶機(jī)應(yīng)用程序在所述計(jì)算設(shè)備上的執(zhí)行取決于接收到的通知,其中客戶機(jī)應(yīng)用程序利用應(yīng)用程序接口(API)來(lái)注冊(cè)所述通知請(qǐng)求,其中通過(guò)所述API做出的所述通知請(qǐng)求指定在發(fā)生以下情況的至少一個(gè)時(shí)接收通知當(dāng)已注冊(cè)的狀態(tài)屬性改變時(shí)、當(dāng)對(duì)狀態(tài)屬性的改變滿足通過(guò)所述API指定的條件表達(dá)式時(shí)、以及根據(jù)所述客戶機(jī)確定的時(shí)間表,其中所述API還包括以下功能注冊(cè)狀態(tài)屬性;查詢狀態(tài)屬性;以及設(shè)置狀態(tài)屬性;確保所述狀態(tài)屬性已向所述通知代理程序注冊(cè),其中所述通知代理程序包括由所述計(jì)算設(shè)備內(nèi)的不同組件更新的狀態(tài)屬性;確定所述狀態(tài)屬性何時(shí)改變;確定所述客戶機(jī)應(yīng)何時(shí)接收所述狀態(tài)屬性改變的通知;以及所述計(jì)算設(shè)備上的通知代理程序在確定所述狀態(tài)屬性改變時(shí)將所述狀態(tài)屬性改變通知給所述客戶機(jī)。
2.如權(quán)利要求1所述的方法,其特征在于,通過(guò)所述API指定的通知請(qǐng)求包括指示所述通知何時(shí)是永久通知請(qǐng)求以及所述通知何時(shí)是暫時(shí)通知請(qǐng)求;其中所述永久通知請(qǐng)求由所述通知代理程序存儲(chǔ)在所述計(jì)算設(shè)備上的數(shù)據(jù)存儲(chǔ)中,所述數(shù)據(jù)存儲(chǔ)跨重起維持所述通知請(qǐng)求;其中所述暫時(shí)通知跨重起不被維持。
3.如權(quán)利要求1所述的方法,其特征在于,所述API包括用于指定在所述計(jì)算設(shè)備處于待機(jī)模式時(shí)當(dāng)已注冊(cè)的狀態(tài)屬性發(fā)生改變時(shí)所述計(jì)算設(shè)備的動(dòng)作的功能,其中所述動(dòng)作包括忽略所述改變、使所述設(shè)備離開待機(jī)模式、以及在所述計(jì)算設(shè)備因不同事件而離開待機(jī)模式時(shí)引發(fā)所述事件。
4.如權(quán)利要求1所述的方法,其特征在于,所述條件表達(dá)式是使用以下條件通過(guò)所述API來(lái)表達(dá)的所有、相等、不等、大于、大于等于、小于等于、小于、包含、以……開始和以……結(jié)束。
5.如權(quán)利要求1所述的方法,其特征在于,還包括使用所述API來(lái)指定何時(shí)響應(yīng)于以下的至少一個(gè)起動(dòng)所述客戶機(jī)應(yīng)用程序狀態(tài)屬性改變和已排定事件,以及在狀態(tài)屬性改變時(shí)何時(shí)通知客戶機(jī)的窗口并通知回叫。
6.如權(quán)利要求1所述的方法,其特征在于,還包括通過(guò)所述API指定友好串名,所述友好串名標(biāo)識(shí)已注冊(cè)狀態(tài)屬性之一;其中用于父狀態(tài)屬性的友好串名標(biāo)識(shí)所述父狀態(tài)屬性和所述父狀態(tài)屬性的子狀態(tài)屬性共有的狀態(tài)屬性。
7.如權(quán)利要求1所述的方法,其特征在于,確定所述狀態(tài)屬性何時(shí)改變還包括使用所述API來(lái)指定對(duì)發(fā)生在預(yù)定時(shí)間段內(nèi)的所述狀態(tài)屬性的改變的批處理操作;其中對(duì)所述 API批處理操作的調(diào)用指定在向所述客戶機(jī)應(yīng)用程序通知所述狀態(tài)屬性的改變之前所述狀態(tài)屬性的值要保持恒定的時(shí)間段。
8.如權(quán)利要求1所述的方法,其特征在于,接收來(lái)自所述客戶機(jī)的、響應(yīng)于與所述狀態(tài)屬性相關(guān)聯(lián)的改變來(lái)接收通知的通知請(qǐng)求還包括在與所述請(qǐng)求相關(guān)聯(lián)的標(biāo)識(shí)符標(biāo)識(shí)一狀態(tài)屬性類別時(shí),使用所述API來(lái)將一組狀態(tài)屬性與來(lái)自所述客戶機(jī)的通知請(qǐng)求相關(guān)聯(lián),其中所述狀態(tài)屬性在所述通知系統(tǒng)內(nèi)以分層結(jié)構(gòu)排列。
9.如權(quán)利要求1所述的方法,其特征在于,還包括提供預(yù)加載狀態(tài)屬性,所述預(yù)加載狀態(tài)屬性可被所述客戶機(jī)訪問(wèn)而無(wú)需任何客戶機(jī)向所述通知代理程序注冊(cè)所述預(yù)加載屬性, 其中所述預(yù)加載狀態(tài)屬性包括以下?tīng)顟B(tài)中的大部分顯示校準(zhǔn)狀態(tài);不消除提醒狀態(tài);不消除警告狀態(tài);電池狀態(tài);存儲(chǔ)器狀態(tài);存儲(chǔ)卡狀態(tài);硬件狀態(tài)、鍵盤啟用狀態(tài)、Wifi啟用狀態(tài)、藍(lán)牙啟用狀態(tài)、頭戴式耳機(jī)狀態(tài)、相機(jī)狀態(tài);消息狀態(tài);任務(wù)狀態(tài);日歷狀態(tài);即時(shí)消息狀態(tài);連接性狀態(tài);媒體播放器狀態(tài);同步狀態(tài);以及電話狀態(tài)。
10.一種用于狀態(tài)管理和通知的系統(tǒng),包括移動(dòng)設(shè)備上的數(shù)據(jù)存儲(chǔ),所述數(shù)據(jù)存儲(chǔ)被安排成存儲(chǔ)與狀態(tài)屬性有關(guān)的信息,其中所述狀態(tài)屬性中的至少一些由不同組件修改;應(yīng)用程序接口(API),所述API被配置成執(zhí)行與所述狀態(tài)屬性有關(guān)的操作;其中所述 API包括以下功能注冊(cè)狀態(tài)屬性;查詢狀態(tài)屬性;設(shè)置狀態(tài)屬性;注冊(cè)與狀態(tài)屬性有關(guān)的通知請(qǐng)求;起動(dòng)應(yīng)用程序;以及狀態(tài)屬性與條件表達(dá)式進(jìn)行比較;客戶機(jī)應(yīng)用程序,所述客戶機(jī)應(yīng)用程序被配置成使用所述API自動(dòng)注冊(cè)通知請(qǐng)求,并響應(yīng)于它們已注冊(cè)要接收通知的狀態(tài)屬性的改變來(lái)接收通知,其中所述通知請(qǐng)求指示所述客戶機(jī)何時(shí)應(yīng)響應(yīng)于與所述狀態(tài)屬性相關(guān)聯(lián)的改變來(lái)接收通知,并且其中所述客戶機(jī)應(yīng)用程序的執(zhí)行取決于接收到的通知;其中所述狀態(tài)屬性的改變響應(yīng)于源自執(zhí)行所述應(yīng)用程序的設(shè)備上的事件;存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)中的通知列表,所述通知列表被安排成存儲(chǔ)已注冊(cè)要接收通知請(qǐng)求的客戶機(jī);耦合到所述數(shù)據(jù)存儲(chǔ)、所述通知列表和所述客戶機(jī)的通知代理程序,其中所述通知代理程序包括被配置成執(zhí)行以下動(dòng)作的功能接收將至少一個(gè)客戶機(jī)添加到所述通知列表的通知請(qǐng)求;將所述至少一個(gè)客戶機(jī)添加到所述通知列表;以及確定已注冊(cè)的狀態(tài)屬性何時(shí)改變,并且當(dāng)所述狀態(tài)屬性改變時(shí),確定要接收通知的客戶機(jī),并向所確定的客戶機(jī)通知所述狀態(tài)屬性改變。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,確定要接收所述通知的客戶機(jī)包括在向所述客戶機(jī)通知所述狀態(tài)屬性的改變之前,將通過(guò)所述API指定的條件表達(dá)式應(yīng)用于所述狀態(tài)屬性。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,通過(guò)所述API指定的條件表達(dá)式包括以下條件所有、相等、不等、大于、大于等于、小于等于、小于、包含、以……開始和以……結(jié)束。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,還包括響應(yīng)于已注冊(cè)的狀態(tài)屬性的改變, 或者起動(dòng)所述客戶機(jī),或者通知所述客戶機(jī)。
14.如權(quán)利要求11所述的系統(tǒng),其特征在于,還包括使用所述API來(lái)指定對(duì)發(fā)生在預(yù)定時(shí)間段內(nèi)的所述狀態(tài)屬性的改變的批處理操作;其中對(duì)所述API批處理操作的調(diào)用指定在向所述客戶機(jī)應(yīng)用程序通知所述狀態(tài)屬性的改變之前所述狀態(tài)屬性的值要保持恒定的時(shí)間段。
15.如權(quán)利要求10所述的系統(tǒng),其特征在于,還包括通過(guò)所述API指定友好串名,所述友好串名標(biāo)識(shí)已注冊(cè)狀態(tài)屬性之一;其中用于父狀態(tài)屬性的友好串名標(biāo)識(shí)所述父狀態(tài)屬性和所述父狀態(tài)屬性的子狀態(tài)屬性共有的狀態(tài)屬性。
16.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述數(shù)據(jù)存儲(chǔ)內(nèi)的狀態(tài)屬性的值跨重啟而持久保存,并且其中所述API包括用于指定當(dāng)執(zhí)行要被通知的所述客戶機(jī)應(yīng)用程序的計(jì)算設(shè)備處于待機(jī)模式時(shí)在對(duì)已注冊(cè)的狀態(tài)屬性發(fā)生改變時(shí)的動(dòng)作的功能,其中所述動(dòng)作包括忽略所述改變、使所述設(shè)備離開待機(jī)模式、以及在所述計(jì)算設(shè)備因不同事件而離開待機(jī)模式時(shí)引發(fā)所述事件。
17.一種用于對(duì)狀態(tài)屬性執(zhí)行操作的方法,包括在設(shè)備上的通知代理程序處接收來(lái)自在所述設(shè)備上執(zhí)行的客戶機(jī)應(yīng)用程序的自動(dòng)請(qǐng)求,所述自動(dòng)請(qǐng)求是接收標(biāo)識(shí)所述設(shè)備的一組狀態(tài)屬性內(nèi)的至少一個(gè)狀態(tài)屬性的標(biāo)識(shí)符, 使得所述應(yīng)用程序在所述設(shè)備上的執(zhí)行響應(yīng)于與所述應(yīng)用程序所在的設(shè)備相關(guān)聯(lián)的狀態(tài)屬性;其中所述設(shè)備上的應(yīng)用程序是在所述設(shè)備的開發(fā)之后開發(fā)的;其中所述一組狀態(tài)屬性內(nèi)的狀態(tài)屬性由所述設(shè)備上的不同組件來(lái)更新;其中所述狀態(tài)屬性改變響應(yīng)于源自所述設(shè)備的事件;其中所述客戶機(jī)應(yīng)用程序利用應(yīng)用程序接口(API)來(lái)注冊(cè)所述請(qǐng)求,且所述 API包括以下功能注冊(cè)狀態(tài)屬性;查詢狀態(tài)屬性;以及設(shè)置狀態(tài)屬性;在所述設(shè)備處接收指示所述設(shè)備的一組狀態(tài)屬性內(nèi)的至少一個(gè)狀態(tài)屬性的標(biāo)識(shí)符;確定要對(duì)所述設(shè)備執(zhí)行的、與所述一組狀態(tài)屬性內(nèi)的一狀態(tài)屬性有關(guān)的操作;以及響應(yīng)于接收到的標(biāo)識(shí)符,對(duì)所述設(shè)備執(zhí)行所述操作。
18.如權(quán)利要求17所述的方法,其特征在于,還包括將通過(guò)所述API指定的條件表達(dá)式應(yīng)用于所述狀態(tài)屬性,并在滿足所述條件時(shí)向所述客戶機(jī)通知所述狀態(tài)屬性,其中所述條件表達(dá)式包括以下條件的至少一個(gè)所有、相等、不等、大于、大于等于、小于等于、小于、 包含、以……開始和以……結(jié)束。
19.如權(quán)利要求17所述的方法,其特征在于,還包括響應(yīng)于以下的至少一個(gè),或者起動(dòng)客戶機(jī)應(yīng)用程序,或者通知所述客戶機(jī)應(yīng)用程序所述狀態(tài)屬性的改變、以及已排定事件。
20.如權(quán)利要求17所述的方法,其特征在于,所述API還包括以下功能所述客戶機(jī)應(yīng)用程序指定用于發(fā)生在預(yù)定時(shí)間段內(nèi)的所述狀態(tài)屬性的改變的批處理操作,并指定在所述設(shè)備處于待機(jī)模式且對(duì)已注冊(cè)狀態(tài)屬性發(fā)生改變時(shí)用于所述設(shè)備的喚醒條件。
全文摘要
本發(fā)明公開了一種用于存儲(chǔ)設(shè)備、應(yīng)用程序和服務(wù)狀的統(tǒng)一機(jī)制的方法和系統(tǒng),以及一種豐富的通知代理體系結(jié)構(gòu)??蛻魴C(jī)向通知代理程序注冊(cè)以接收對(duì)狀態(tài)屬性變化的通知。當(dāng)注冊(cè)的狀態(tài)屬性改變時(shí),通知代理程序確定向哪一客戶機(jī)通知狀態(tài)變化,并向客戶機(jī)提供關(guān)于該變化的通知。一旦狀態(tài)改變,當(dāng)狀態(tài)改變滿足預(yù)定條件時(shí),或根據(jù)時(shí)間表通知客戶機(jī)。響應(yīng)于狀態(tài)改變也能裝入應(yīng)用程序。提供了一種應(yīng)用編程接口(API),它提供了一種在設(shè)備的不同組件之間訪問(wèn)狀態(tài)改變信息的統(tǒng)一的方法。
文檔編號(hào)H04L29/08GK102291446SQ201110222798
公開日2011年12月21日 申請(qǐng)日期2004年10月22日 優(yōu)先權(quán)日2003年10月23日
發(fā)明者A·阿拉克, B·克羅斯, J·W·福勒, J·卡拉恰爾, O·M·阿米加, R·里維, Z·科克 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
天水市| 项城市| 苍梧县| 禹州市| 长泰县| 普宁市| 汝南县| 新余市| 宣化县| 萨迦县| 饶阳县| 新野县| 四子王旗| 惠东县| 梁河县| 台湾省| 深水埗区| 高邑县| 祁连县| 石渠县| 渝中区| 高要市| 八宿县| 金门县| 亚东县| 读书| 焦作市| 固阳县| 确山县| 扶绥县| 合水县| 舒兰市| 元谋县| 墨江| 邢台市| 大港区| 崇左市| 昆明市| 建平县| 贺州市| 邢台市|