專利名稱::在分層級的監視器服務中的設備注冊的制作方法
技術領域:
:本發明涉及普適(ubiquitous)計算技術。
背景技術:
:智能物件技術可以包括例如射頻識別(RFID)系統、嵌入式系統、傳感器微片(mote)、和/或傳感器網絡,并且可以用于例如為業務軟件應用提供對真實世界數據的快速訪問。例如,可以使用智能物件技術來支持對RFID標簽的檢測、讀或寫,以及支持與無線傳感器網絡和嵌入式系統的通信和對無線傳感器網絡和嵌入式系統的控制。在很多實例中,智能物件可以包括下面這樣的設備所述設備具有本地處理能力、存儲器和/或通信能力,并且能夠提供關于設備及其屬性的數據,或者提供關于智能物件設備的當前狀態或環境的信息。因此,一些這樣的設備可以用于執行后端或底層(underlying)業務應用的服務組件,并且,更具體來說,一些這樣的設備可以通過形成自組織(ad-hoc)網絡來以協作的方式執行后端或底層業務應用的服務組件,用以收集、處理或發送業務數據。智能物件設備的例子包括RFID標簽,RFID標簽可以是無源的或有源的,并且它可以被附加到真實世界對象,且用來提供與所述對象相關的產品或處理信息。智能物件設備的其他例子包括各種傳感器,諸如例如環境傳感器(例如溫度、濕度或振動傳感器),剛剛提到的傳感器可能能夠進行通信,以形成一個或多個傳感器網絡。這些以及其他類型的智能物件設備還可以包括嵌入式系統,一般來說嵌入式系統可以指其中包括有專用處理器和/或程序的任何系統,并且/或者其中所述系統封裝在正被控制的設備中。通過自動實時的對象跟蹤,智能物件技術可以為業務提供準確及時的與業務運作有關的數據,并且還可有助于業務運作的合理化和自動化。因此,可以實現成本降低和附加商業利益(例如,增加資產可見性、提高響應性以及擴展業務機會)。
發明內容根據一個總體方面,一種方法包括從在用于設備網絡的分層級的、多級監視器架構的第一級的正在注冊的監視器服務發送征求消息,該征求消息標識所述正在注冊的監視服務以及與所述分層級的多級監視器架構的第二較高級相關聯的已注冊的監視器服務兩者。所述方法還包括從所述已注冊的監視器服務發送廣告消息,該廣告消息指示用于注冊的所述已注冊的監視器服務的身份和可用性,并且從所述正在注冊的監視器服務發送注冊消息,該注冊消息包括與該正在注冊的監視器服務相關聯的注冊數據。所述方法還包括根據所述注冊數據,在所述分層級的、多級監視器架構中注冊所述正在注冊的監視器服務。實現方式可以包括一個或多個下列特征。例如,所述方法可以包括從所述已注冊的監視器服務發送確認消息,以確認所述正在注冊的監視器服務的注冊。在發送所述征求消息中,在之前到居間級的發送沒有導致接收所述廣告消息之后,向所述第二較高級發送所述征求消息。發送所述征求消息還可以包括以預定的時間間隔廣播該征求消息。發送所述廣告消息可以包括根據所述征求消息發送該廣告消息。發送所述廣告消息可以包括根據預定的時間間隔并且獨立于所述征求消息來發送該廣告消息。發送所述注冊消息可以包括,在所述注冊數據中包括在所述注冊消息中的、并且與在其上部署了所述正在連接的服務的設備相關聯的設備元數據,和/或在所述注冊數據中包括在所述注冊消息中的、并且與在所述設備上部署的服務相關聯的服務元數據。發送所述注冊消息還可以包括在所述注冊數據中包括由與所述正在連接的服務相關聯的傳感器所獲得的傳感器值。發送所述注冊消息可以包括重新發送該注冊消息,直到接收到所述確認消息,或者直到達到超時條件,并且/或者可以包括在所述正在注冊的監視器服務丟棄在發送了所述注冊消息之后接收到的另一個廣告消息。此外,或者可替代地,發送所述注冊消息可以包括使用與所述已注冊的監視器服務相關聯的至少一個設備來存儲所述注冊數據,和/或根據所述注冊數據更新所述分層級的、多級監視器架構的全局監視數據,以反映所述正在注冊的監視器服務到全局監視器服務的注冊。可以將核心監視器服務部署到所述正在注冊的監視器服務上,并且可以確定與在其上部署了該正在注冊的監視器服務的設備相關聯的設備元數據。可以根據所述設備元數據將至少一個監視器服務模塊部署到所述設備上。可以使用所述至少一個監視器服務模塊來發送所述征求消息、接收所述廣告消息、和/或發送所述注冊消息。根據另一個總的方面,一種系統包括監視器服務,其被配置成獲得和報告關于在分層級的、多級監視器服務的第一層級的設備網絡的監視器數據。所述監視器服務包括注冊系統,其被配置成從所述監視器服務發送征求消息,所述征求消息通過級來指定在所述分層級的、多級監視器架構的較高層級的層的已注冊的監視器服務,該注冊系統還被配置成從所述已注冊的監視器服務接收廣告消息,根據該廣告消息確定該已注冊的監視器服務是所指定的級的成員,并向該已注冊的監視器服務發送注冊消息。實現方式可以包括下列特征中的一個或多個。例如,所述注冊系統可以被配置成從所述已注冊的監視器服務接收確認消息,以對所述注冊做出響應,并確認所述監視器服務被注冊到與所述設備網絡相關聯的全局監視器服務。所述注冊消息可以包括至少部分地使用所述全局監視器服務和在所述已注冊的監視器服務與該全局監視器服務之間的任何居間的監視器服務存儲的注冊數據。根據另一個總體方面,一種方法包括在用于設備網絡的分層級的、多級監視器架構的已注冊的監視器服務接收來自監視器服務的征求消息;確定所述監視器服務沒有通過所述已注冊的監視器服務被注冊為所述分層級的、多級監視器架構的成員;以及確定在所述征求消息中指定的級的標識,所述已注冊的監視器服務被部署在所述級上;所述方法可以包括向所述監視器服務發送廣告消息,該廣告指定所述已注冊的監視器服務被部署在所述級上并且可用于注冊;從所述監視器服務接收注冊消息;以及根據所述注冊消息,在所述分層級的、多級監視器架構內注冊所述監視器服務。實現方式可以包括下列特征中的一個或多個。例如,可以向所述監視器服務發送確認消息。此外,或者可替代地,發送所述廣告消息可以包括響應于所述征求消息發送該廣告消息。注冊所述監視器服務可以包括將作為注冊消息的一部分從所述監視器服務接收到的注冊數據在本地存儲到所述已注冊的監視器服務;以及根據所述注冊數據,更新在所述已注冊的監視器服務之上的較高級的監視器服務的存儲器。在下面的附圖和說明中將闡述一個和多個實現方式的細節。通過說明書、附圖和權利要求書,其它特征將變得明顯。圖1是用于監視智能物件的系統的框圖;圖2是圖示圖1的系統的示例部署的框圖;圖3是圖示圖1的系統的第二示例部署的框圖;圖4是用于實現圖1、圖2和圖3的系統的智能物件基礎設施的框圖;圖5是圖示用于使用圖1的系統采集監視數據的示例算法的時序圖;圖6是可以代表圖1的一個或多個監視器服務132a-132d的模塊化監視器服務的框圖;圖7A是圖示使用圖1和圖6的模塊化監視器服務的圖1的系統操作的流程圖;圖7B是圖示圖1的系統的附加示例操作的流程圖;圖8是圖1和圖6的核心監視器服務的示例實現方式的框圖;圖9是圖示與圖6的模塊化監視器服務一起使用的系統適配器管理器和/或圖8圖示的核心監視器服務的實現方式的框圖;圖10是圖1、圖6和圖9的系統適配器的示例實現方式的框圖;圖11是圖1、圖6和圖9的系統適配器的另一個示例實現方式的框圖;圖12是圖6的模塊化監視器服務的通信適配器的示例實現方式的框圖;圖13是圖6的通信適配器的另一個示例實現方式的框圖;圖14是圖6的預處理器模塊的示例實現方式的框圖;圖15是圖示與圖1的系統100一起使用的注冊協議的系統的框圖;圖16是圖示圖15的注冊協議的示例實現方式的順序圖(sequencediagram);圖17是圖示圖15的系統的示例操作的流程圖。具體實施例方式圖1是用于監視智能物件設備的系統100的框圖。在圖1的例子中,包括各種智能物件設備的傳感器網絡102使用局域網106(盡管也可以使用其它規模或類型的網絡)以及時和準確的方式向一個或多個業務數據處理系統104提供真實世界數據。例如,傳感器網絡102可以包括在這里稱為“智能物件設備”或簡單地稱為“設備”(或類似的術語)的智能物件設備108、110、112和114,它們可以包括例如RFID讀取器(用于讀取與具有RFID標簽的真實世界對象相關聯的RFID標簽)、各種嵌入式系統、和/或各種類型的傳感器和/或傳感器微片。盡管作為示例的實現方式,下面的描述主要涉及傳感器網絡102或其它傳感器網絡,但是應當理解,這種傳感器網絡可以指任何采集或獲得信息的網絡,即使并非傳感器網絡的所有設備都不具有與其相關聯的特定的傳感器功能性(例如,傳感器網絡102的設備之一可以包括執行器(actuator))。而且,應當理解,可以單獨的或相互結合地使用幾乎任何設備的網絡。此外,這種設備網絡的設備可以相互通信(例如以對等的方式),并且/或者可以通過適當的中間件與業務數據處理系統104或其它系統通信。在圖1中,設備108被圖示為包括中央處理單元(CPU)116和存儲器118。因此,應當將設備108理解為具有各種水平的計算能力,包括例如處理或發送所感測的數據(例如,在設備108包括傳感器或設備108與傳感器相關聯的情況下)。盡管出于清楚的目的在圖1中沒有特別示出,但應當理解,設備110、112、和114也可以包括相同或不同的計算能力,包括例如形成傳感器網絡102或參與到傳感器網絡102中的能力,傳感器網絡102諸如無線網絡和/或對等網絡。因此,傳感器網絡102可以用于收集、處理、過濾、聚集、或發送可能對于業務數據處理系統104有用的數據。例如,業務數據處理系統104可以包括庫存管理系統、供應鏈管理系統、零售商店管理系統、倉庫管理系統、和/或可以用來針對真實世界對象執行業務處理的任何其它系統,其中,所述真實世界對象可以包括例如待售產品、貨盤或其它裝運單位(shipmentelement)、病人(patients)、或制造材料/設備。通過跟蹤和分析這些真實世界對象,業務數據處理系統104可以例如用于確定庫存量、設置價格層級、評估市場策略、評估制造和生產技術、減少偷盜、和維護安全性。通過包括智能物件設備以作為傳感器網絡102的設備108、110、112和114或者包括與傳感器網絡102的設備108、110、112和114相關聯的智能物件設備,處理可以在數據收集過程的非常早期執行,從而可以減小或消除業務數據處理應用104上的負擔。例如,業務數據處理應用104可以位于公司總部,而傳感器網絡102可以表示由廣域網106連接的可以散布在大地理區域內的許多(類型的)網絡之一。這樣,例如,業務數據處理應用104可能僅僅需要網絡102(以及相關網絡)所收集數據的特定子集或特性,并且可以不需要或不想要所有被收集的數據。在一些實現方式中,業務數據處理應用104可以包括復合應用或合成應用,其由被設計成執行某些定義明確的任務的可重用軟件組件或服務構成。并且,在這些或其它實現方式中,業務數據處理應用104可能包括不能與數據收集設備(或其它業務數據處理系統)容易地進行通信的遺留(legacy)應用,在這種情況中,可以提供服務或服務組件以作為遺留應用與數據收集設備和/或其它系統之間的接口。系統100允許這些和其它應用和服務直接部署到設備108、110、112和114上,從而使得例如可以以及時、高效、可靠、自動、節省成本和可縮放的方式在設備上運行服務(以及收集和/或處理數據)。因此,例如,業務處理可以分解成單個服務,并且部署在不同的設備。如圖所示,系統100包括服務映射器120,其用于從傳感器網絡102的多個設備108、110、112和114中選擇設備108,以作為被選設備,用于在其上部署服務122。在進行選擇的過程中,服務映射器120訪問服務儲存庫124,服務儲存庫124用于存儲適合在傳感器網絡102和/或其它網絡(圖1中未示出)內執行的多個服務。除了實際的服務可執行(executable)128之外,服務映射器120還確定服務元數據126,并且將服務元數據126與多個設備108、110、112和114中的每一個所關聯的設備元數據130進行比較。至少基于服務元數據126和設備元數據130,服務映射器120就可以選擇設備108作為特別適合在其上部署服務122(包括服務可執行128)的設備。例如,設備元數據130可以包括對每個設備的描述,所述描述根據服務映射器120已知的、且不同的設備108、110、112和114公用的本體(ontology)和/或模式(schema)來構造。此外,或可替代地,設備元數據130可以例如由服務監視器132以特定于設備的格式或結構針對設備108、110、112和114中的每一個來收集,并且之后可被轉換成公有的模式以供服務映射器120使用。例如,設備元數據可以包括對設備108、110、112和114的各種技術能力的描述,該描述例如通過使用可擴展標記語言(XML)模式以基于XML的語言提供,這將在下面更具體地描述。當然,也可以使用其他格式、語言和/或結構。更一般地,設備元數據130可以包括例如設備描述、軟件描述、硬件描述和設備狀態。例如,設備描述可以包括設備名稱、標識符或類型,或者可以包括銷售商信息,所述銷售商信息包括銷售商名稱或銷售商網站。軟件描述可以包括操作系統描述,所述操作系統描述包括版本和/或銷售商,或者,軟件描述可以包括在設備平臺上運行或允許在設備平臺上運行的服務的描述。硬件描述可以包括關于CPU116的屬性(例如名稱或速度)、存儲器118的屬性(例如存儲器總量和/或空閑量)或設備的連接能力的屬性(例如連接速度或者連接類型)的信息。設備狀態可以包括更易變的信息,包括設備位置、當前的CPU使用率,或者剩余的功率或存儲器。當然,如下面將描述和/或將會明晰的那樣,其他的設備方面或信息也可以包括在設備元數據130中。例如,設備元數據130可以包括關于其他設備的信息,例如如果設備108包括RFID讀取器,則設備元數據130可以包括對可被該RFID讀取器讀和/或寫的RFID標簽的類型的描述。服務元數據126可以略微近似地包含與服務是否可以且如何在一個或多個設備上執行相關的各種服務描述和/或要求。例如,服務元數據可以包括服務行為描述、服務的技術約束、或與服務的輸入、輸出、前置條件或作用(IOPE)相關的信息。例如,技術約束可以包括所要求的CPU類型或速度、所需的(空余)存儲器量、所要求或首選的連接類型或速度、操作系統版本/名稱/描述、或電池或其他設備電源的類型或狀態。因此,如同設備元數據130的情況一樣,可以區分靜態服務要求和動態服務要求,諸如硬件要求。例如,可以包括靜態值,諸如服務所要求的總存儲器或最大處理速度,以及動態值,諸如可用存儲器/處理/功率、和/或在服務執行時可以允許與所討論的服務一起在設備上并發運行的其他服務的數目或類型。至少使用服務元數據126和設備元數據130,服務映射器126可以將給定的服務映射到傳感器網絡102的設備108、110、112和114上。這種映射被設計成不僅在必要時對服務元數據126和設備元數據130的不同方面進行值匹配(value-match)(例如,使在服務元數據126中指定的需要的存儲器與在設備元數據130中指定的設備存儲器匹配),而且還使能和最優化所討論的服務的部署和執行。例如,情況可能是設備108和設備110兩者名義上或表面上都能夠運行服務122(例如設備108和110兩者可能都具有一些對存儲器、處理能力或功率的最低要求的值)。但是,情況可能是服務122對功率的需求更甚于對存儲器的需求(或者反過來),所以如果設備108目前能夠相對于另一候選設備110提供更多的功率,則即使設備110目前提供比設備108更多的空閑存儲器,服務映射器120也可能將服務122映射到設備108。一旦已經執行了適當的服務映射,就可以使用服務注入器(在圖1中未示出)來安裝或開始設備108上所映射的服務(例如服務122)。這種服務映射器還可以例如在需要時執行服務更新或停止服務,從而用來例如管理服務的生命周期。如上面提到的,在系統100的運行時間期間,系統監視器132被配置成確定、跟蹤、和/或提供系統100的當前狀態。這種狀態信息可以包括例如設備108、110、112、114中的哪些當前可用于服務部署、或者在設備108、110、112、114中的哪些設備上當前運行了什么服務。更一般地,系統監視器132可以檢測和收集設備元數據130,包括將在下面更具體地描述的靜態、離散動態、和連續動態的設備元數據以及也將會在下面更具體描述的與傳感器網絡102相關的網絡元數據140。很顯然,這樣就使得諸如設備元數據130和/或網絡元數據140的監視數據對于服務映射器120、業務數據處理系統104和/或系統管理員(administrator)來說是可獲得的。在圖1的例子中,使用四級架構(four-tierarchitecture)來實現系統監視器132,以提供可縮放的(scalable)、分布式的監視服務。也就是說,系統監視器132可以使用一個或多個監視服務來實現,其中,所述監視服務可以存儲在服務儲存庫124中,并且可以由服務映射器120全部或部分地映射到傳感器網絡102(以及與傳感器網絡102相關聯的設備)。這種四級架構可以結合這里所描述的算法來使用,從而在諸如系統100的分布式系統全景(landscape)下有效地收集監視數據。這種監視數據可以包括例如設備元數據130(其可以包括例如如這里所述的設備108、110、112、114的連接性信息、電池壽命或CPU/存儲器使用率)和/或網絡元數據140。網絡元數據140可以包括例如各種網絡參數,特別是在這些參數是動態的并且不必要與關于任何單個設備的信息可區分的情況下。網絡元數據140的一個這樣的例子可以包括傳感器網絡102上可用的帶寬。其它的例子包括網絡拓撲信息、網絡作為整體的移動性(mobility)特性、以及網絡連接的可靠性。在一些實現方式中,如這里所描述的,這些監視器服務可以使用模塊方式來實現,其中,核心監視器服務被映射到包括在傳感器網絡102中或與傳感器網絡102相關聯的一個或多個設備中。然后,可以使用與核心監視器服務進行交互的插件(plug-in)、附加(add-on)服務或服務組件或其它服務模塊來向這些設備提供附加的與監視相關的功能性。應當理解,核心監視器服務和任何補充的監視器服務可以使用服務映射器120并且基于例如特定于應用的要求和相關的設備元數據(例如能力)來映射。在附加的或可替代的實現方式中,即使是在設備加入或離開傳感器網絡102時,也可以使用各種協議以快速、安全、能源有效和可靠的方式向分布式的監視服務注冊新的設備和所部署的監視器服務。然后,在圖1的例子中,上面提到的四級架構包括四個類型或類別(class)的監視器服務,它們可以是層級分層(hierarchically)的。具體來說,最上層(這里也稱為全局(global)層)包括全局監視器服務(GMS)132a。全局監視器服務132a提供對監視數據的最高級別的存儲和查看(view),不僅僅是針對傳感器網絡102,而是潛在地針對多個傳感器網絡(例如見圖2)。因此,例如,全局監視器服務132a可以提供用于其它系統組件(例如服務映射器120)、業務數據處理系統104、系統管理員和/或系統管理圖形用戶接口(GUI)的系統監視信息的中心接觸點(centralcontactpoint)。全局級別的監視數據可以存儲在圖1中由全局監視數據136表示的存儲器中,因此可以認為該全局監視數據136表示或包括至少在高級別描述傳感器網絡102和其它網絡的設備的全局設備元數據、以及關于例如在哪些網絡上正在運行哪些服務的當前服務信息。在概念上全局監視器服務132a在第二級或層之上,或由第二級或層更新,在這里,第二級或層被稱為本地層或本地級,包括本地監視器服務132b。本地監視器服務132b被配置成向全局監視器服務132a提供關于底層傳感器網絡102中的變化的信息。因此,本地監視器服務132b可以被配置成使用在圖1中被表示成本地監視數據138的存儲器來存儲關于傳感器網絡102中的設備108、110、112、114的監視數據,這些監視數據比實際可能與全局監視器服務132a(和全局監視數據136)相關聯地存儲的數據要更加具體。因此,應當理解,本地監視器服務132b可以負責一個或多個傳感器網絡或其它設備集群(cluster),并且這些網絡/設備可以包括彼此相對緊密地物理鄰近地部署的潛在異類設備。因此,本地監視數據138可以被看作是表示關于在本地監視設備132的范圍內的網絡(諸如傳感器網絡102)的本地設備元數據,其中,應當理解,一般來說,對于傳感器網絡102和其它被監督的網絡的具體設備來說,與全局監視數據126相比,本地監視數據138可能更加具體。第三層或級包括組長(groupleader)監視器服務132c,其可以被配置成用于收集、過濾和聚集針對設備108、110、112、114的監視數據。在這里所述的各種實現方式中,組長監視器服務132c可以被配置成使用例如輪詢或信跳(heartbeat)技術對從相關的設備108、110、112、114收集監視數據進行管理。于是,組長監視器服務132c負責將得到的監視數據報回其各自本地監視器服務132b。在圖1的例子中,組長監視器服務132c不存儲監視數據,因為在設備108的資源有限,或者因為由組長監視器服務132c處理的監視數據的變化速率使得存儲不現實。因此,組長監視器服務132c可以被看作是用來提供關于其組內的具體設備108-114的組級別的設備元數據,包括例如動態或靜態設備特性、或關于在設備108-114中的哪個設備上正在運行哪些服務的信息。圖1中示例的四級架構的第四層或級包括邊緣監視器服務132d。在圖1的例子中,邊緣監視器服務132d收集針對其相關聯的設備(這里是設備110)和該相關聯設備的本地服務的監視數據。也就是說,應當理解,就像設備108被圖示為執行服務122那樣,設備110也可以執行一個或多個服務,并且邊緣監視器服務132d可以被配置成例如監視關于這些服務的信息,并且監視設備110本身所特有的靜態或動態數據(例如總存儲器、當前可用的存儲器、設備類型和/或其它設備特性)。邊緣監視器服務132d還被配置成將所收集的監視數據報告給組長監視器服務132c。這樣,邊緣監視器服務132d提供關于具體的(通常是單個的)設備,諸如設備110的邊緣級別的設備元數據。在上述架構中,監視器服務132a-132d可以被配置成負責不同的任務,并且一般來說,可以朝著系統100的架構的邊緣方向越來越輕便(lightweight)。結果,例如,邊緣監視器服務132d可以在具有非常有限的計算能力的設備110上實現,而全局監視器服務132a可以在設備142和/或144,諸如例如個人計算機(PC)或類似強大的服務器機器,上實現。同時,本地監視器服務132b可以例如在設備146,諸如例如智能RFID讀取器或個人數字助理(PDA)上實現。如圖1所示,組長監視器服務132c可以被部署到傳感器網絡102的設備之一上(盡管應當理解設備108、110、112、114可以是具有不同計算能力的異類設備,從而可以根據例如設備108的相對較高級的資源而選擇其作為組長),或者,在另一個例子中,組長監視器服務132c可以被部署到與設備110、112、114通信的無線接入點上。下面,針對圖2-3提供幾個不同的關于如何將監視器服務132a-132d在物理上部署到不同的設備108-114、142、144和/或146的一些或所有設備以及其它設備上的例子。可以使用用于特定基本監視功能性的核心監視器服務148,結合圖1中由監視器服務模塊150表示的多個潛在的插件、附件、服務組件或其它模塊,來實現監視器服務132a-132d中的一些或全部。通過這種方式,例如,監視器服務模塊150可以與設備108中的(并且,類似地,盡管在圖1中未示出,與設備142、144、146和110-114中的)核心監視器服務148相關聯,從而使得可以根據特定于應用的需要和/或各個設備的能力來專門化(specialize)/擴展核心監視器服務148,該核心監視器服務148可能非常微小(slim)從而可以在小型或資源貧乏的設備上運行。因此,例如,可以在不改變核心監視器服務148的情況下將與通信、數據存儲或數據處理相關的功能性添加或替換到給定設備上。盡管在圖1中沒有特別示出,但是將參照圖6-14更詳細地討論核心監視器服務和相關監視器服務模塊的使用的例子。在操作期間,系統100可以使用下面的示例算法來采集監視數據,包括例如設備元數據130或網絡元數據140。具體來說,監視數據可以在組長監視器服務132c處被采集,從那里其被傳播到本地監視器服務132b,然后到全局監視器服務132a。為了采集數據,組長監視器服務132c可以執行系統適配器134,系統適配器134本身可以是例如由服務映射器120從服務儲存庫134映射到設備108的服務。系統適配器134可以在概念上表示多個不同類型的適配器,并且還可以被看作是監視器服務模塊150的附加或可替代的示例。系統適配器134可以被配置成與服務122接口連接(interface),從而可以從服務122采集數據,或者采集與服務122相關的數據。在其它的例子中,系統適配器134可以表示被配置成與設備108的組件,例如CPU116或存儲器118接口連接的設備適配器,從而提供與設備108相關的例如特定于硬件的信息。因此,為了采集數據,組長監視器服務132c可以執行系統適配器134,從而系統適配器134用作數據源,以提供關于設備和服務的監視數據。例如,在圖1的例子中,監視數據可以包括關于設備108的信息,和/或關于服務122的信息。監視數據通過例如信跳消息被發送到上級,例如,經由本地監視器服務132b到全局監視器服務132a。在示例實現方式中,組長監視器服務132c從邊緣設備110、112、114收集監視數據。特別地,邊緣設備110、112、114中的每一個可以與其自身的監視器服務,例如邊緣設備110的邊緣監視器服務132d,相關聯。正如應當理解的那樣,并且下面將更具體的描述,監視器服務132a-132d中的任何一個都可以使用核心監視器服務148(的實例)以及不同示例和類型的監視器服務模塊150來實現。組長監視器服務132d和本地監視器服務132b可以被配置成執行消息聚集,其中來自不同設備(例如來自不同的組長設備、和/或來自不同的邊緣設備)的消息被概括成單個消息。在組長監視器服務132c、本地監視器服務132b和全局監視器服務132a中的每一個處,監視數據可以被預處理(例如過濾或聚集),并且這種預處理可以由監視器服務模塊150或類似的模塊來執行。因此,可以減少傳送到全局監視器服務132a的監視數據量。于是,在圖1的系統100的架構中,(更新過的)監視數據被從較低級上行傳播到較高級,例如從邊緣監視器服務132d傳播到全局監視器服務132a。如圖所示,監視數據可以以不同的形式和以不同的程度存儲在不同的級/層內。例如,如圖所示,數據可以存儲在全局監視數據136,和/或在本地監視數據138,其中,應當理解,本地監視器服務132b和本地監視數據138(和設備146)可以表示與系統100相關聯的多個服務、存儲器和設備(例如參見圖2-4)。可以使用不同的技術來確定將存儲(或不存儲)在圖1的系統100的架構的給定一級的監視數據的類型和程度。例如,對于是否以及在哪里存儲監視數據的判定可以基于電池壽命、存儲器可用性、設備可靠性、網絡利用率、響應時間、和過時信息(例如,可能存在保持特定類型的監視數據在特定程度上為最新的要求)。例如,與本地監視器服務132b相關聯的設備146可能具有特定量的可用存儲器,而另一個設備(未示出)可能實現在層級上與全局監視器服務132a相關聯的另一個監視器服務,并且可以具有相對更大量的空閑存儲器。是否在給定地點(例如在本地監視數據138或全局監視數據136)存儲監視數據的一個方面涉及監視數據的優先級。例如,諸如設備ID、設備類別、以及有效狀態(alive-status)的信息可以具有被存儲的高優先級。另一個方面涉及監視數據的本質。例如,來自組長監視器服務132c的靜態和離散動態數據可以在查詢時被存儲,從而不頻繁讀取經常查詢的監視數據(例如,被有效地緩存(cache)在本地監視數據138處)。作為另一個例子,必需管理(潛在地)過時數據,從而根據需要更新該過時數據。同時,可以不存儲連續動態數據,因為它可能在存儲時就過時了。因此,可以簡單地根據需要從相關設備讀取(例如,查詢)連續動態數據。可以通過評估結合了諸如例如存儲所需的硬件能力、存儲位置與傳感器的接近程度、或要存儲的信息的類型等各方面的表達式來動態地進行對于是否以及如何在給定位置存儲監視數據的判定。例如,每個設備(例如設備146)可以根據相關的硬件簡檔、對于查詢的響應時間、到邊緣設備110-114的距離、數據優先級和/或數據的動態類型(例如靜態、離散動態或連續動態)來計算一個值。可以使用數學表達式(例如在注冊具體服務或設備期間實現的數學表達式,在下面將會參照圖7B和圖15-17具體描述這種注冊的例子)來定義得到的值,其中,所考慮的方面被數字表示和加權,以用于后續的組合以及與定義的閾值的比較。在公式(1)中示出了這種表達式的例子設備能力描述值=(剩余壽命)×w1+(CPU速度)×w2+(CPU利用率)×w3+(存儲器大小)×w4+(存儲器利用率)×w5+(網絡帶寬)×w6+(網絡利用率)×w7+(設備類別)×w8+(信息種類)×w9等式(1)除了剛才描述的動態/自動方法之外,也可以進行手動存儲判定。例如,系統管理員可能想要定義應當或不應當存儲在指定設備上的監視數據的類型或實例。例如,管理員可以具有否決(overrule)上面的自動判定并定義附加的或替代的存儲規則的權限。這種手動判定可以例如針對每個特定的設備進行,或者針對每個設備類型進行,或者基于每個監視器服務的類型/角色進行(例如可以要求所有本地監視器服務132b存儲特定類型的監視數據)。最后,參照圖1,并且如這里將參照例如圖7B和15-17再次更詳細地描述的,應當理解,監視器服務(以及相關的設備)可以離開或加入網絡。例如,設備110可以最初不是傳感器網絡102的一部分,并且可以是可以從一個位置移動到另一個位置的移動設備或便攜式設備。這樣,設備110可以被運送到傳感器網絡102的位置,并且設備110(例如邊緣監視設備132d)可以嘗試在組長監視器服務132c處注冊,或者在本身連接到全局監視器服務132a的任何設備處注冊。因此,可以使用專用協議來進行這種注冊,從而使得設備和監視器服務可以容易地或自動地被配置成離開一個傳感器網絡并加入另一個。這種專用協議地例子將在下面參照圖15-17來具體討論。圖2是圖示圖1的系統100的示例部署的框圖200。圖2示出了,如上所述地,系統100可以跨越四個概念級或層來部署,這四個概念級或層在圖2中被表示為全局層202、本地層204、組層206和邊緣層208。從對圖1的描述應當理解,層202-208可以具有不同的任務,并且每個與它們各自類型的監視器服務(例如全局監視器服務132a、本地監視器服務132b、組長監視器服務132c、和邊緣監視器服務132d)相關聯。每個類型或類別的監視器服務可以根據設備的能力而與物理設備(例如圖1的設備144、146、108和110)相關聯。結果,例如,相對輕便的邊緣監視器服務132d可以在具有非常有限的計算能力的例如傳感器微片的設備上運行,而全局監視器服務132a可以在具有相當多的計算資源的設備,例如PC或服務器上運行。在一些示例的實現方式中,如圖1所示,上面提到的監視器服務132a-132d的變化可以通過監視器服務132a-132d的模塊化部署的方式來實現。例如,可以僅使用核心監視器服務148(在圖2中示為核心監視器服務148d)的實例在邊緣層208部署邊緣監視器服務132d。同時,可以使用核心監視器服務148c的實例以及監視器服務模塊150(圖2中示為監視器服務模塊150c)的實例來部署組長監視器服務132c。即,應當理解,監視器服務模塊150c可以表示一個或多個監視器服務模塊,其中所述監視器服務模塊被配置成實現上面參照圖1的組長設備108所描述的監視功能性。例如,監視器服務模塊150c可以與聚集從邊緣層208的所有邊緣監視器服務132d接收的監視數據(例如消息)相關聯,用于將它們報告給本地監視器服務132b。沿著類似的線,圖2的本地監視器服務132b可以包括核心監視器服務148b以及監視器服務模塊150b,其中監視器服務模塊150b可以被配置成實現與本地層204相關聯的功能性(例如在本地監視數據138中存儲監視數據,或者更新全局監視數據136)。最后,類似地,全局監視器服務132a可以包括核心監視器服務148a以及特定于全局層的監視器服務模塊150a。應當理解,圖2僅僅是一個例子,許多變化都是可能的。例如,在一些例子中,核心監視服務148a-148d可以是相同的或基本相同的,而在另一些例子中,它們可能有本質的不同。例如,核心監視器服務148a和148b可以不同于核心監視器服務148c和148d,并且例如可以包括與核心監視器服務148c和148d不要求的數據存儲相關聯的功能性,而不是在這一功能性方面依賴與監視器服務模塊150a和150b。在另一些例子中,全局監視器服務132a可以以集成的、非模塊化的方式來實現,而剩下的監視器服務132b-132d可以使用這里所描述的模塊化結構來實現。核心監視器服務148a-148d的模板可以存儲在服務儲存庫124中,以便設備144、146、108、110可以例如通過服務映射器120接收被實例化以用于部署的核心監視器服務148a-148d的實例。圖2還示出了系統100的層級本質。即,在圖2中,在多個本地監視器服務132b之上維持(maintain)全局監視器服務132a,并且全局監視器服務132a與所述多個本地監視器服務132b通信;并且,在多個組長監視器服務108之上維持所述多個本地監視器服務132b中的每一個本身,并且所述多個本地監視器服務132b中的每一個本身與該所述多個組長監視器服務108通信。最后,如在圖1中已經示出的,可以在多個邊緣設備132d之上維持每個組長監視器服務132c,并且每個組長監視器服務132c與所述多個邊緣設備132d通信。在圖2中,如在圖1的例子中所預期的,可以是每個監視器服務132a-132d被部署在單個物理設備上的情況。然而,更一般地,情況也可以是多個(多個類型的)物理系統或設備與邏輯級或層202-208中之一相關聯。相反,情況也可以是,多個層202-208可以與單個(類型的)物理系統或設備相關聯。圖3是示出圖1的系統100的第二示例部署的框圖300,其中,層202-208可以與多個(類型的)物理系統或設備相關聯。在圖3的例子中,公司服務器302(例如全公司的(company-wide)中央服務器)可以位于第一地理位置(例如歐洲),并且可以實現全局服務監視132a。同時,生產工廠服務器304(例如在該公司的生產工廠實現的或位于該公司的生產工廠的服務器計算機)可以位于例如在舊金山的該公司的生產工廠。生產工廠服務器304以及Stargate計算機306(例如具有通信和傳感信號處理能力的單板計算機)和WiFi接入點308可以在本地層204實現。換言之,可以使用物理設備304-308中的一個或多個來實現一個或多個本地監視器服務132b。在圖3的例子中,例如(至少)對于Stargate306和WiFi接入點308,應當理解為至少包括兩個本地監視器服務132b。即,在至少一個組長監視器服務之上維持每個這種本地監視器服務,而該組長監視器服務應當被理解為在傳感器微片310和PDA312上運行,其中,傳感器微片310是多個傳感器微片314-318的組長(因此傳感器314-318表示潛在地(邊緣)設備110-114的例子)。于是,在圖3的例子中,存在多于四個物理層,并且這些物理層可以被映射到圖2的四個邏輯級或層202-208。因此,多個物理系統層可以擔任一個概念上的級的角色。在使用多于四個物理層的例子中,設備可以在概念級之間路由(route)信息。例如,邊緣設備可以將信息從本地監視器服務132b路由到組長監視器服務132c,即使在所討論的邊緣設備可能屬于不同的傳感器網絡、但相對于組長監視器服務132c來說在物理上更接近本地監視器服務132b的情況下也是如此。然而,如上面所提到的,物理系統/設備還可以具有少于四級。例如,可以只有兩個物理級,在這種情況下,全局監視器服務132a可以被部署在第一設備上,同時本地監視器服務132b、組長監視器服務132c和邊緣監視器服務132d可以部署在第二設備上,有可能伴隨有監視器服務132b-132d的單個的、組合實例。在圖1-3的例子中,設備的層級可以是概念上的樹型結構,例如,每個設備可以具有恰好一個上(或相同)層監視器服務以向其報告(其可以被稱為“父代(parent)監視器”)。包含全局監視器服務132a的全局層設備,例如設備144,可以是唯一沒有這種父代監視器的監視器服務。出于收集監視數據的目的,邊緣設備(例如邊緣設備110-114)可能不需要相互之間直接通信,而是可以簡單地將監視數據轉發給它們的父代設備。當然,在這些或其它上下文中,設備也可以直接相互通信(例如,以對等的方式,可能用來計算房間內的平均溫度或用來執行其它協作的計算)。更一般地,設備可以在物理上連接到同一網絡中的其它設備,或者可以連接到幾個網絡。因此,在其它實現方式中,監視器服務132b-132d可以具有幾個父代設備。在一些附加的或替代的實現方式中,如上面所提到的,可以存在恰好一個主網絡連接,其可以被定義為通過最短路徑(在跳數(hop)方面)到全局層設備144的連接。其它的連接(例如對等連接和/或多個網絡連接)可以被看作是輔助連接或“捷徑”(shortcut)連接,從而例如使得第一傳感器網絡上具有本地監視器服務132b的本地層設備無需通過全局層來與第二傳感器網絡的邊緣設備通信,而是可以使用居間的組長設備與邊緣設備通信。圖4是用于實現圖1-3的系統的智能物件基礎設施400的框圖。智能物件基礎設施400包括五層設備層402、設備級(level)服務層404、業務處理橋接層406、系統連通(connectivity)層408以及企業應用層410。層402可以被認為包含圖1的設備108、110、112和114中的不同設備,或者跨越多個組、本地網絡和/或物理位置的類似的設備。同時,層406、408和410可以被看作是圖1的業務數據處理系統104的一部分,或者與該業務數據處理系統相關聯。因此,層404可以被看作是表示圖1的系統100的剩余的組件,例如服務映射器12、系統監視器132和/或監視器服務132a-132d、以及服務儲存庫124,如圖4所示。因此,設備層402包括實際的智能物件設備,以及它們之間的任何通信。設備層402還負責向臨近的最高層,設備級服務層404呈現任何被提供的(offered)的硬件服務。所述設備可以包括例如RFID設備412、嵌入式系統414、傳感器網絡416和任何其它適當的新的或新興的技術418。應當理解,設備層402的例子是非限制性的,并且可以重疊。例如,傳感器網絡可以包括RFID設備(讀取器/標簽)、嵌入式系統、和/或其它新興的技術。對于RFID設備412來說,移動標簽可以被附加到真實時間對象,然后由RFID讀取器讀取(并且可選地向其寫入)。在使用有源標簽的實現方式中,有源標簽也可以提供附加的傳感器數據(例如當前值或過去的值)。在RFID中,通信一般由讀取器啟動,同時標簽可以直接相互通信,或者可以不直接相互通信。這種RFID讀取器可以被配置到處理標簽數據的程度,例如,可以被配置成執行對所寫數據的驗證,或者被配置成避免在表面上丟失的標簽實際上在給定時間窗口內重新出現的情況下報告標簽消失。用于與嵌入式系統414通信的技術可以隨嵌入式系統的設備的類型而變化。例如,嵌入式系統可以表示從小規模單片微計算機一直到成熟的PC硬件的任何系統。因此,例如,對于具有移動電話或更多(例如能夠運行JavaVirtualMachineTM(Java虛擬機))的能力的設備來說,可以用JaveTM來進行實現,或者可以基于OSGi來實現(后者表示用于實現對應用和/或應用組件進行遠程安裝和管理的組件模塊的已知框架)。如同樣已經討論過的,傳感器網絡416可以包括任何數目的類型的傳感器,所述傳感器可以包括集成的處理能力并且可以執行對等通信。服務儲存庫124可以存儲至少兩種服務,復合服務和原子服務。復合服務一般依靠其它設備來完成其任務,并且可以不具有它們自己的直接可執行代碼;然而復合服務可以包括存儲在相應服務描述中的可執行服務合成描述。因此,復合服務可以具有一個服務可執行,即,服務合成描述。相反,原子服務一般不使用其它服務,并且具有它們自己的直接可執行代碼。并且,如上面所提到的,由于原子服務可以被部署在不同的平臺上,因此原子服務可以具有多于一個的服務可執行,例如,可以具有用于不同平臺中的每一個的服務可執行。服務儲存庫124還可以存儲服務元數據126,其中的所述服務元數據126已經在上面具體描述過,其可以包括服務名稱、標識符、版本、或廠商,或者可以描述服務的運行時要求,包括例如技術部署要求(例如高帶寬、或所需的最小處理能力)、語義(semantic)要求(例如接收設備具有串行連接和/或許多設備鄰居)、以及空間要求(例如接收設備在地下室中、或者在特定建筑物的南側)。最后,在設備級服務層404可以包括設備存儲庫420。從上面的描述應當理解,設備存儲庫420可以以類似于服務儲存庫124維護關于服務的信息(例如服務元數據)的方式包括例如關于設備的信息(例如設備元數據)。例如,設備元數據可以基于與系統監視器132的通信(例如與監視器服務132a-132d中的一個或多個的通信)而存儲在設備存儲庫420中。在其它的示例實現方式中,設備存儲庫可以包括由管理員根據外部可獲得的關于設備的信息而存儲的設備元數據。例如,如已經提到的,設備元數據可以包括設備名稱、功率容量、存儲器容量、處理能力、或可能與將服務映射(以及最終部署)到相關設備有關的其它信息。當然,在這些例子中,設備存儲庫420一般可以包括靜態或高級的設備元數據、和/或可以包括全局監視數據136和/或本地監視數據138的一些或全部。在運行時,如已經描述的,系統監視器132使用監視器服務132a-132d監視當前系統狀態。服務的狀態的任何部分是否以及如何暴露給系統監視器132可以由服務的開發者在設計時設置。隨后,這種狀態可獲得性(state-availability)信息可以對于系統管理員和服務映射器120兩者都是可獲得的。如在上面也已描述過的,服務映射器120接收部署請求,然后例如通過將服務元數據與設備元數據進行匹配來確定相應的服務應當部署到哪個設備,所述設備元數據可以包括智能物件設備和相關的本地網絡的當前狀態。如在這里已經描述過的,服務映射器120還可以對包括(由系統監視器132認識到的)網絡狀態改變的特定事件或條件做出反應,并且可以在之后決定重新映射服務或者添加或去除服務的實例,以更好的滿足給定的部署請求/要求。業務處理橋接層406包括這樣的服務該服務被設計為聚集經由設備級服務層404提供的來自在設備層402的設備的數據,并且將來自設備層的數據轉換成業務相關信息。通過這樣做,可以減少發送到后端企業應用系統的數據量,并且可以針對不同的企業應用系統來執行業務邏輯。例如,可以使用一個或多個規則處理器422來分析到來的消息,支持基本操作服務(例如物件移動、關聯、去關聯或設備讀/寫)以及支持信息查詢。規則處理器422處理定義或引用(reference)了應當執行或參考(consulted)的任何其它基本操作服務的用戶定義的業務規則。通過使用這樣的規則和基本操作服務,提供了靈活的框架來使系統400適應不同的業務場境。規則處理器422可以使用數據儲存庫(datarepository)424以用于保持對所有感興趣的物理對象的跟蹤,例如,用于保持對給定被跟蹤對象的當前狀態、位置、時間戳或相關業務事務的跟蹤,以及用于保持對預期將來會有什么動作的跟蹤。可以在有規則的基礎上,例如每天或每月,報告從數據儲存庫424聚集的信息。層402、404和406的操作的一個例子包括“貨物接收”場境(scenario)。例如,向接收者交付對象的供應商可以發送預先裝運通知(AdvancedShippingNotice,“ASN”)以及諸如電子產品代碼(EPC)的對象標識符,所述ASN包含裝運的貨物中的所有對象的列表。ASN可以存儲在數據儲存庫424中。當裝運的貨物到達和通過例如位于接收平臺(dock)大門處的設備層402的RFID讀取器時,RFID讀取器讀取該EPC,并將其發送到規則處理器422。規則處理器422查找該消息所來自的讀取器的ID,確定該讀取器的位置和角色,然后調用負責處理所接收的裝運貨物的適當的基本操作服務。這個操作服務將所獲得的EPC與來自之前的ASN的期望的EPC進行比較,并且,如果發現匹配,則向企業應用432報告交付已經到達并已完成。然后,所執行的操作服務還可以更新數據儲存庫424中的數據。上面描述的服務以及用于接收和發送所涉及的消息的服務可以由服務管理器426來管理。系統連通層408中的組件可以用來連接不同的應用系統,并支持系統和數據整合(integrate)。例如,通過信息交換和變換模塊428,消息和數據可以被路由到正確的后端系統,還可以被轉換,從而使能語義正確的整合。除了消息路由和轉換服務之外,系統連通性層408還提供服務儲存庫430中能夠由企業應用432用來訪問由業務橋接層406提供的功能性的服務。企業應用層410包括例如負責控制和管理企業業務應用的傳統的企業IT系統。覆蓋特定業務過程的企業應用432可以不是單個程序,而是可以由不同的服務組成,所述不同的服務一起工作以實現期望的功能性。可以由同一企業系統、企業應用層410內的另一個企業系統(可能位于業務伙伴所在地)、或來自下層的系統(例如在設備層402的智能物件設備)來提供這樣的服務。最后,在圖4中,開發工具434可以指用于創建企業應用432和其它應用/服務的工具。使用與基礎設備400集成的開發環境可以支持以與企業應用空間中已知的開發工具類似的方式實現基本服務。并且,開發工具434可以允許創建要求的服務元數據126,并且允許將現有的服務包括到新的應用中。此外,開發工具434允許開發者指定特定服務應當在哪里運行、配置各個服務實例、以及以期望的方式部署服務。也就是說,開發者可以使用開發工具434開發服務元數據/可執行436,然后可以提供期望的服務元數據/可執行436,以便存儲在服務儲存庫124中,并且/或者在同一時間或稍后的時間由服務映射器120進行映射/重新映射。以上已經描述了與圖1的系統100相關聯的示例實現方式和設置,圖5是示出用于使用圖1的系統100采集監視數據的示例算法的時序圖。圖5的算法使用全局監視器服務132a來實現,如已經描述過的,全局監視器服務132a被配置成采集關于其下面的層級內的所有設備和服務的信息,從而提供全局的系統全景視圖。在圖4的上下文中,全局監視器服務132a可以作為圖4的基礎設施400的設備級服務層404和/或業務處理橋接層406的一部分來運行。全局監視器服務可以由同樣在設備級服務層404或業務處理橋接層406運行的高級服務請求/調用,或者通過分離的設備和服務監視圖形用戶接口(GUI)請求/調用。如上面提到的,本地層可以包括多個本地監視服務132b,其每個被配置成使用例如輪詢和信跳技術從邊緣設備采集監視數據,這將在下面具體描述。本地監視器服務132b被配置成管理所收集的監視數據,包括例如過濾、聚集、和存儲所述監視數據。組層包括多個位于或靠近基礎設施(例如圖4的基礎設施400)的邊緣的設備,它們擔任組長的角色,諸如圖1的設備108。組長采集關于在它們附近安裝了邊緣監視服務132d的邊緣設備(例如設備110-114)的信息。在圖5的例子中,由組長(例如108)獲得的監視數據不存儲在組長處,而是可以在轉發給本地監視器服務132b以存儲之前,對其進行過濾、聚集或其它處理。最后,設備(例如設備110-114)運行邊緣監視器服務132d并形成邊緣層。在一些實現方式中,組長監視器服務132c和邊緣監視器服務132d可能在提供、預處理和不存儲監視數據方面本質上相同,盡管邊緣監視器服務132d不負責管理其它設備。在圖5的例子中,邊緣監視器服務132d被配置成提供監視數據并使用信跳消息(例如以某些預定義的間隔使用主動發送隊列發送的消息)將其發送到它的組長。然而,更一般地,從邊緣層設備采集監視數據可以由發送信跳消息的邊緣設備的定時器觸發,或者由在邊緣設備從上級/層接收的輪詢消息觸發。在圖5的例子中,定時器觸發本地監視器服務132b檢查本地監視數據138中過時的數據,這導致輪詢(502)幾個邊緣層設備。本地監視器服務132b不直接與邊緣層設備通信,而是使用位于網關處的組長設備108,因此向組長監視器服務發送輪詢消息(504)。組長監視器服務132c將單個輪詢消息分成不同的輪詢消息(盡管圖5為了簡單僅示出了一個輪詢消息),這些不同的輪詢消息被發送到各個邊緣層設備110-114(506)。每個邊緣層設備110-114讀取本地系統適配器(508)以獲得最新的(up-to-date)監視數據,該本地系統適配器應當被理解成與圖1的系統適配器134相同或相似。系統適配器和相關元件的例子將在下面參照圖9-11更詳細地描述。但是,一般來說,應當理解這種系統適配器用作數據源,以提供關于它們的各個邊緣設備的監視數據以及關于任何在它們的各個邊緣設備上運行的服務的監視數據。然后,邊緣監視器服務132d執行對監視數據的預處理(510)(例如過濾和/或聚集)。然后,不存儲經過預處理的監視數據,而是向組長監視器服務132c發送帶有經預處理的監視數據的信跳消息(512)。組長監視器服務132c接收來自多個邊緣設備的帶有監視數據的消息,并提供進一步的預處理(514),包括例如計算所有被管理的邊緣設備的CPU利用率的平均值。然后,組長監視器服務132c執行消息聚集(516),其中,來自不同設備的消息被概括成單個信跳消息,以便發送到本地監視器服務132b(518)。本地監視器服務132b從多個組長監視器服務132c接收這樣的信跳消息,并執行預處理(520),包括例如過濾非臨界(non-critical)數據,和/或聚集非臨界數據。然后存儲經預處理的消息(522),例如,存儲在本地監視數據138。然后,本地監視器服務132b的定時器觸發信跳指示器(indicator)(524),其導致本地監視器服務132b計算本地監視數據138與全局監視數據136之間的增量同步(deltasynchronization)(526)。即,本地監視器服務132b確定作為執行圖5的監視算法的結果,本地監視數據138中的哪些相關信息已經被改變或更新,并且只有所述被改變的數據被例如作為增量同步消息的一部分提交給全局監視數據136(528)。通過這種方式,減少了傳輸和處理的數據量。在附加和替代的實現方式中,增量同步可以由從全局監視器服務132a到本地監視器服務132b的消息來啟動。最后,在圖5中,更新的數據由全局監視器服務132a進行預處理(530),并且被存儲在全局監視數據136中。然后,業務數據處理系統104,例如供應鏈管理應用,可以從全局監視數據136訪問數據。從上面的描述應當理解,在從邊緣設備本身到全局監視器服務132a的路徑上的全景樹中存儲了來自給定邊緣設備的監視數據。結果,可以容易的定位監視數據以便使用或對其進行刪除。圖6是可以表示圖1的監視器服務132a-132d中的一個或多個的模塊化監視器服務600的框圖。也就是說,模塊化監視器服務600包括核心監視器服務148,在圖1中,在組長監視器服務132c的上下文中示出了該核心監視器服務148,但是如上面所解釋的,該核心監視器服務148也可以在剩余的監視器服務132a、132b和/或132d中的一些或全部的上下文中實現。模塊化監視器服務600還包括監視器服務模塊150,同樣,在圖1中,該監視器服務模塊150在組長監視器服務132c的上下文中示出,但是其也可以在剩余的監視器服務132a、132b和/或132d中的一些或全部的上下文中實現。因此,核心監視器服務148可以被配置成實現可以由監視器服務132a-132d中的大多數或全部使用的基本功能性(例如,查詢路由、基于角色的數據處理、以及協調與在其它設備上運行的其它監視器服務的通信),而監視器服務模塊150可以被配置成實現可能更具體的、針對監視器服務132a-132d中的給定的一個的功能性。因此,監視器服務模塊150可以被實現為根據需要添加到核心監視器服務148的插件組件,從而核心監視器服務148可以根據每個監視器服務和/或設備的個體需要和能力而專門化。例如,在圖6的例子中,監視器服務模塊150包括系統適配器134、通信適配器602、數據存儲模塊604和數據預處理器606。結果,無需改變核心監視器服務148就可以將這些插件的相關功能性或其它功能性添加或替換到模塊化監視器服務600。而且,如在下面將具體描述的,相同種類(category)的監視器服務模塊150(例如通信適配器602的不同實例或數據存儲模塊604的不同實例)可以共享公共的接口,從而使得核心監視器服務148無需知道不同實例/插件的使用率。此外,在圖6中,模塊管理器608可以用于管理相同種類的模塊。例如,模塊管理器608可以包括用于系統適配器134的管理器,并且可以被配置成根據核心監視器服務148的當前情況和/或需要選擇和實現系統適配器134中適當的一個。下面將會參照圖9和10提供這種系統適配器管理器的特定例子,還會討論模塊管理器608的其它例子。應當理解,在一些實現方式中,模塊管理器可以用作在核心監視器服務148與給定的監視器服務模塊150之間的消息的實際中介(intermediary),例如,將消息從核心監視器服務148轉發到適當的監視器服務模塊150,或者相反。在其它的實現方式中,模塊管理器608可以被配置成加載或選擇監視器服務模塊150中適當的一個,然后可以將其自己從進一步的通信中去除。圖7A是示出使用模塊化監視器服務600的系統100的操作的流程圖。在圖7A中,核心監視器服務148的實例被部署到例如系統100的架構級中的一個或多個(702)。例如,服務映射器120可以被配置成可能在系統100的最初建立(set-up)期間將核心監視器服務148部署到系統100的設備108-114、146和144上。在另外的例子中,將在下面參照圖7B和圖15-17具體討論的,服務映射器120可以將核心監視器服務148的實例映射到進入傳感器網絡102的區域且希望與設備108-114、146和/或144中的一個或多個通信的新的設備(圖1中未示出)。應當理解,核心監視器服務148可以作為模板、表格(form)、或其它類屬結構存儲在服務儲存庫124中,并且可以在系統100內部署核心監視器服務148的不同實例。此外,實例不需要精確地相同。例如,可以取決于實例被部署到系統監視器132的哪一層而部署包括有或使能了不同功能的核心監視器服務148的不同實例。服務映射器120可以例如根據設備元數據130來執行上述核心監視器服務148的實例的服務映射。一旦在系統100內安裝了核心監視器服務148,不同的監視器服務模塊就可以被安裝(704)。例如,可以例如取決于與所討論的設備相關聯的設備元數據130、和/或取決于監視器服務模塊被部署到監視器架構的哪一層級上,來安裝監視器服務模塊134、602、604和/或606。同樣,正如下面將更加具體地討論的,這種設備元數據可以使用已經安裝的核心監視器服務148來獲得,并且/或者可以從存儲器獲得。利用核心監視器服務148和位于適當位置的監視器服務模塊,可以例如通過使用圖6的模塊化監視器系統600實現圖5的算法來收集監視數據。例如,從上面對于圖5的討論應當理解,最初,可以使用核心監視器服務148和/和系統適配器134來收集原始監視數據(例如在邊緣監視器服務132d)(706)(如例如此處參照圖9-11更具體地討論的,其可以包括服務和設備適配器兩者)。通過這種方式,(例如關于相關服務和/或設備的)原始監視數據可以以隱藏了(異類)服務/設備的不同接口、并且可擴展以用于新的服務/設備的方式來提供。此外,可以實現諸如例如OSGi或JSR82的系統標準。可以在預處理器模塊606對原始監視數據進行預處理(708)。結合圖5并且進一步參照圖14來提供這種預處理的例子。然而,一般來說,這種預處理作用于到來的數據,以便通過使用例如過濾或聚集來減少將要通過網絡連接發送的數據量。可以使用數據存儲模塊604存儲(經預處理的)監視數據(710)。例如,數據存儲模塊604可以被配置成隱藏可獲得的不同類型的存儲器(例如文件系統、數據庫或存儲器內(in-memory)數據結構)。如上所述,監視數據的存儲可以被剛好限制在本地監視器服務132b和全局監視器服務132a,從而由此使得數據存儲模塊604可以僅僅被部署到那些監視器服務上,并且可以節約資源。可以傳播經處理和存儲的數據,并且可以使用通信適配器602來執行對于新數據的查詢(例如通過輪詢)(712)。例如,應當理解到,通信適配器602可以被配置成保證服務/設備之間的通信,可以隱藏不可靠的或無次序(out-of-order)的數據傳輸,并且可以隱藏核心監視器服務148使其免受不同通信協議/硬件的影響。在一些實現方式中,通信適配器602可以被看作是與監視服務132a-132d分離的,并且例如可以與核心監視器服務148或監視器服務模塊134、602或606分離地(即在分離的時間)部署。下面會參照圖8、12和13的例子來提供通信適配器602的不同操作和使用。圖7B是示出系統100的附加實例操作的流程圖。在圖7B中,假設最初沒有安裝核心監視器服務148。然而,在許多情況中,可能需要核心監視器服務148,以便進行系統100的進一步操作。例如,在系統100內新設備的注冊過程期間,注冊協議可能要求核心監視器服務148的安裝和可用性(見例如討論用于向系統100注冊新設備的示例注冊協議的圖15-17的例子)。在這個以及其它場境中,可以實現自舉(bootstrapping)技術,其中,首先安裝核心監視器服務148,然后來自被安裝的(執行的)核心監視器服務148的信息本身可用來注冊新設備,和/或部署監視器服務模塊134和/或602-606。例如,可以首先確定所討論的設備是否使用支持現有的用于部署服務的標準(714)(例如OSGi、Jini、ServicesandNetworksforDomoticApplications(SENDA)、服務管理模塊(SMM)或JSR232)。如果所討論的設備不支持這些標準,則可以采取適當的動作。例如,在所述設備是移動電話或PDA層級時,可以指示其用戶執行用于建立核心監視器服務148的安裝向導(例如,按照鏈接來下載并啟動安裝程序)(716)。在這種情況中,和/或在使用已知的部署標準的情況中,并且如果核心監視器服務148仍未安裝(718),則可以例如使用標準和/或從存儲器確定靜態服務元數據(720)。此時,可以安裝核心監視器服務(722),并且可以從其獲得附加的監視數據(724)。如下面將例如參照圖15-17更加具體地描述的,如果需要,全面的(full-scale)向系統監視器132注冊設備也可以在此時執行。使用附加的監視數據,可以部署(726)適當的監視器服務模塊150,從而可以進行對附加監視數據的收集和/或傳輸。圖8是核心監視器服務148的示例實現方式的框圖。在圖8的例子中,核心監視器服務148可以使用具有到來的802a或輸出的(outgoing)802b的消息的通信抽象(abstraction)層來例如建立到不同設備上的監視器服務的連接,或者建立到GUI接口和其它類型的服務的連接。下面會參照圖12更具體地討論通信抽象層802a和802b。從圖6和7應當很明顯地看到,其它模塊管理器150(例如參照圖9-11描述的統適配器管理器)也可以與核心監視器服務148通信,并且,取決于所述管理器是如何定義和實現的,其也可以與通信抽象層802a、802b的一些功能性重疊。圖8的核心監視器服務148包括查詢路由器804。查詢路由器804可以負責例如采集和返回被查詢的監視數據,可以由在其它設備上運行的(其它)監視器服務132a-132d或者由其它服務(例如溫度檢測服務、物件跟蹤服務或其它數據收集服務)來查詢監視數據。在核心監視器服務148的圖8的例子中包括并激活系統全景數據庫806(例如,核心監視器服務148可以與全局監視器服務132a或本地監視器服務132b相關聯,在這種情況下系統全景數據庫806可以表示、包括、或者以其它方式分別與全局監視數據136或本地監視數據138相關聯)。在這種情況下,查詢路由器804可以嘗試從系統全景數據庫806獲得所請求的監視數據。如果期望的監視數據或其它期望的數據過時或沒有找到,則查詢監視器806可以從在父代設備上運行的監視器服務查詢期望的監視數據,所述父代設備例如用于管理實現核心監視器服務148的設備的不同的設備(例如,組長監視器服務132c可以查詢本地監視器服務132b,或者本地監視器服務132b可以查詢全局監視器服務132a)。在另一種情況下,當前監視器服務148可以管理被查詢的系統(即,是被查詢系統的父代),在這種情況下,將尋址較低層級的監視器服務以收集期望的監視數據。在另一個場境中,對于圖8的核心監視器服務148來說被查詢設備可以是未知的,在這種情況下,查詢可以被轉發到管理更多系統的上層,并且最終可以前進到全局監視器服務132a,然后全局監視器服務132a可以將該查詢轉發到適當的本地監視器服務132b。如果可以直接尋址到目標系統而無需居間的系統,則查詢路由可以是直接的(straightforward)。在不存在到目標系統的直接連接的情況下,則要確定在路由路徑上的居間跳(hop)。描述這種居間跳的路由信息可以從所存儲的拓撲信息(其可以存儲在系統全景數據庫806中,或者存儲在分離的路由表中)獲取。例如,每個監視器服務132b-132d都配備有在監視器服務的注冊期間分配的父代監視器服務(例如見下面的圖15-17)。這種子代-父代信息可以存儲在系統全景數據庫806中,和/或存儲在其它存儲器中,以作為屬性,根據所述屬性可以生成樹型拓撲。可以遍歷該樹型拓撲以確定下一跳。在其它的實現方式中,下一跳/居間跳可以使用適當的表查找從路由表獲得。一般來說,這種分離的路由表可能比從樹型拓撲確定路由信息使用更多的存儲器,但是其可能更加有效和/或快速。只有在設備與系統100連接或斷開時才可以改變路由表中的條目,以便減少需要改變的次數。為了減少路由表中條目的數目,只有在下一跳不是父代監視器服務時才可以添加下一跳,這是因為可以通過默認的方式假設下一跳是父代監視器服務。通過這種方式,可以將路由表中條目的數目減少為由監視器服務所管理/監視的、以及直接連接到監視器服務的系統的數目。下面的代碼段1示出了用于查詢路由的算法,其實現了剛剛描述的查詢路由方針。Querylandscape:getthequerieddataIfdatanotfoundifinformationisrequestedaboutthecurrentdevicegetsystemadaptortoserviceordevicegetinformationfromadaptorelse(informationisnotaboutthecurrentdevice)Querylandscape:isdevicemanagedbythisdevice?Ifdeviceismanagedbythisdevicegetchilddevicetoaskgetdatafromchilddevicebyaskingthemonitoronlowertierelse(deviceisnotmanagedbythisdevice)getparentdevicetoaskgetdatafromparentdevicebyaskingthemonitoronhighertierifdatastillnotundreturnerrorelse(datafound)returndata代碼段1一般來說,如已經描述過的,代碼段1是與這樣的查詢算法一致的其中,在(當前)設備處接收到對于監視數據的請求。如果監視數據與當前設備相關,但卻不在系統全景數據庫806中,則如這里所描述的,可以使用系統適配器134來獲得監視數據。否則,監視數據與另一個服務/設備有關,并且不在系統全景數據庫806中,則會適當地(asappropriate)查詢父代或子代監視器服務。如果在系統全景數據庫806中或父代/子代監視器服務中發現所述監視數據,則可以檢查該監視數據,看其是否是最新的。如果不是,則可以執行附加的輪詢/查詢來獲得更新的監視數據。核心監視器服務148還包括查驗(ping)請求器808,其被配置成由全局監視器服務132a和/或本地監視器服務132b使用,或者由任何在某些類型的監視數據存儲器(例如系統全景數據庫806)中存儲監視數據的監視器服務使用。因此,查驗請求器808可以被配置成查驗系統全景中的設備,由此幫助保持子代系統的系統全景數據是最新的,并幫助檢測斷開的設備(并將數據標記為“懷疑”(indoubt))。如果監視器服務不在本地監視數據存儲器中存儲狀態信息,例如組長監視器服務132c或邊緣監視器服務132d,則可以省略或不激活查驗請求器808。查驗請求器808可以由定時器激活,作為響應,其可以從監視數據存儲器(例如從系統全景數據庫806)確定所有連接的和被管理的子代系統。例如,對于所有系統,查驗請求器808將接收到上一個生命信號(life-signal)的時間與當前時間進行比較,以便檢測過時的監視數據(和其它被存儲的信息)。如果過時,則可以將系統的狀態改變成指示這種過時,例如,系統的狀態可以從“有效”(alive)變成“過時”。如果時間戳比特定切斷(cut-off)點久,則狀態可以從“過時”變成“懷疑”,從而指示所討論的設備有可能斷開。對于所有“過時”的系統,查驗請求器808都發送查驗請求。查驗請求器808接收查驗響應并由此更新“上次見到的”(last-seen)時間戳,然后在系統全景數據庫806中將相關狀態改回“有效”。在下面的代碼段2的上下文中提供了與上面對查驗請求器808的解釋相一致的算法Landscapequery:getallsystemsandtheirstatusForallsystemsdoIfthetimestampisoldenoughtomarkthesystemas“in-doubt”thenMarkallrelateddataas“indoubt”Elseifitisoldenoughtomarkthesystemas“outdated”thendosoIfthestatusis“outdated”thenSendapingsignaltothissystem代碼段2盡管就查驗請求器808對圖8進行了討論,但是應當理解,也可以使用其它的技術來確定系統100的系統全景的要素的狀態,例如,使用其它的回送(echo)請求來測試系統的可到達性和/或測試網絡延遲。此外,應當理解,如圖所示,核心監視器服務148也可以接收然后響應于來自其它監視器服務的查驗請求。如將在下面參照圖12所討論的那樣,保證對查驗(或其它)狀態請求的可靠數據傳輸的傳輸協議的實際實現方式可以被實現為通信適配器602的任務。核心監視器服務148還包括信跳發送器810,其可以被實現為這樣的服務其被配置成向父代監視器服務發送信跳消息以指示(在其上部署了核心監視器服務148的)設備仍在運行。信跳發送器810可以被定時器觸發,其中,可以在相關聯的信跳設置中定義兩個消息之間的時間間隔。可以考慮資源約束來選擇所述間隔,以便具有有限電源和網絡能力的小型設備可以使用比更強大的設備(例如連接良好(well-connected)的服務器)更長的時間間隔。可以使用公制(metric)來定義為每個設備類型(例如為傳感器設備、PDA和膝上型計算機)定制的默認間隔。此外,可以由用戶,例如圖4的基礎設施的系統管理員來調整該間隔的值以及其它相關設置。除了所討論的設備有效且被連接的信息之外,信跳發送器810還可以被配置成也發送至少一些監視數據,如果在核心監視器服務148接收到來自另一個監視器服務的所述監視數據,該監視數據可以用來更新系統全景數據庫806。信跳設置可以用來定義應當與信跳消息一起發送所述監視數據中的哪些。通過這樣做,可以節約網絡流量、功率和其它資源。此外,通過接收信跳消息中的監視數據,相對較高級的監視器服務可以避免執行至少一些對較低級服務的輪詢,因為所述較高級的服務可能已經具有期望的監視數據。通過執行對監視數據存儲器的查詢或者通過讀取系統適配器134(見圖6和9-11),在其上部署了核心監視器服務148的設備可以包括附加監視數據以及信跳消息。例如如果兩個連續的查驗都丟失了,則查驗請求器808可以響應于沒有到達的期望的信跳消息而發送附加的請求,從這方面來說,信跳消息并非必需通過可靠的通信信道來發送。因此,即使通信信道不可靠,并且信跳消息丟失,核心監視器服務148也可以繼續工作。因此,可以使用諸如例如輕便且無連接(connetction-less)的用戶數據報協議(UDP)的協議。在下面的代碼段3的上下文中提供了與上面對于信跳發送器810的解釋相一致的算法ReadheartbeatsettingsIftimeintervalhaschangedthenUpdatetimercomponentGetalldatathatshouldbeincludedintheheartbeatmessageSendheartbeatmessagetoparentwithallquerieddataSleepaccordingtoheartbeatsettings代碼段3查驗請求器808可以被理解為信跳發送器810的附加部件。例如,如上面所提到的,在一些連續丟失信跳消息的事件中,查驗請求器808可以構建可靠的連接以保證查驗被接收和處理。此外,如果子代設備不具有(在起作用的)信跳發送器810,則父代監視器的查驗請求器808可以完全取代信跳發送器810。結果,子代系統并非必需具有已安裝的信跳發送器,從而可以使用更少的硬件能力。核心監視器服務148還包括更新通知發送器812,其可以被配置成向服務提供可以例如從系統全景數據庫806確定的關于系統全景的更新,諸如例如監視數據的變化、或者新設備的注冊。因此,更新通知發送器812可以向存儲在接收者注冊表(registry)814中的所有已注冊的接收者發出通知消息。注冊到更新通知發送器812的服務可以明確地指定期望的數據,以便僅獲得期望的數據(并最小化其它傳輸)。對于發送什么(類型的)監視數據更新的約束可以基于例如以下屬性數據提供服務的名稱、或者設備和數據字段的名稱(例如有效狀態、CPU使用率、RAM大小、或連通性值)。因此,可以用下面的信息來存儲用于接收更新的訂閱(subscription)規則接收系統的標識符、以及約束規則(例如源系統標識符和/或數據字段名稱)。在一些實現方式中,可以用AND(與)連接兩個限制條件,從而例如為了發送更新,系統的名稱與數據字段的名稱兩者都必需匹配。在其它實現方式中,可以通過定義多于一個的訂閱規則來實現OR(或)規則。在下面的代碼段4的上下文中提供了與上面對于更新通知發送器812的解釋相一致的算法Queryrecipientdatabase:getallrecipientsthatareregisteredforthisserviceordeviceanddatafieldForallfoundrecipientsdoSendupdatetriggermessage代碼段4圖9是示出用于與圖6的模塊化監視器服務600和/或圖8示出的核心監視器服務148的實現一起使用的系統適配器管理器902的框圖。具體來說,系統適配器管理器902可以用于管理系統適配器134。如上面提到過的,系統適配器134可以被配置成提供核心監視器服務148與提供監視數據的各種服務和設備(例如服務122和/或設備108)之間的連接。因此,應當理解,由于系統全景中異質性(heterogeneity)的可能性,服務、設備和監視數據可能非常顯著地變化。因此,系統適配器134可以實現用于與核心監視器服務148通信的公用接口,同時實現監視(并且,潛在地控制)可能存在的各種異質的服務和/或設備所需的任何其它接口,從而使核心監視器服務148為了與大量的類型的系統適配器134通信(以及由此與大量的類型的服務和設備通信),僅僅需要知道該公共接口。由于核心監視器服務148可能能夠(僅僅使用公共接口)與大量的系統適配器134通信,因此核心監視器服務148不確定或不能確定哪個系統適配器134適合給定的任務。于是,在確定用于給定任務或設置的特定的/正確的系統適配器134時,使用系統適配器管理器902。這樣,系統適配器管理器902代表模塊管理器150的例子,并且在核心監視器服務148與系統適配器134之間提供抽象層。因此,可以免除核心監視器服務148跟蹤、選擇或以其它方式管理系統適配器134的不同實例或可能性的職責,從而大大減少了服務或設備本身。如上面所提到的,系統適配器134可以包括例如服務適配器和/或設備適配器(見例如圖10),從而可以執行核心監視器服務148(或其它監視器服務模塊150)與給定服務(例如服務122)或設備(例如設備108)之間的通信,并且可以獲得相應的監視數據。例如,系統適配器134可以被認為是提供到環境(例如到服務122和/或到設備108)的接口的模塊化監視器服務600的一部分。在設備108的情況中,系統適配器134中給定的一個可以確定例如該設備的CPU利用率、存儲器使用率或存儲器大小。在服務122的情況中,系統適配器134中給定的一個可以確定例如與服務122相關聯的軟件版本或軟件廠商。因此,應當理解,可以不存在到環境(例如到各種服務/設備)的定義的標準接口,因為每個這樣的服務和設備可以具有其自己的特定接口。于是,系統適配器134可以被設計和實現為適合所討論的被監視系統(例如系統100)。這樣,監視服務132a-132d可以讀取關于設備和服務的信息,由系統適配器134和系統適配器管理器902向核心監視器服務148隱藏了所述設備和服務的不同接口,從而系統適配器管理器902的組件提供了供核心監視器服務148使用的抽象層。系統適配器134的各種類型和實例可以在適配器注冊表904中存儲(或索引(referenced)),從而使系統適配器管理器902可以確定(例如基于核心監視器服務148的請求或基于管理員的設計選擇)在給定情況中使用哪個系統適配器134。因此,系統適配器管理器902可以被配置成加載和管理實現公共接口的多個系統適配器134。在啟動時,系統適配器134可以在適配器管理器902處注冊。系統適配器管理器902可以執行所有已注冊適配器134的維護功能,其中,除了讀取和返回監視數據(例如關于當前運行的服務的信息、特定于設備的信息、或者由在其上運行了模塊化監視器服務600的設備所收集的傳感器數據)之外,系統適配器134的維護功能還可以實現內部管理活動。在圖9的例子中,系統適配器134包括基本信息適配器906和OSGi適配器908。基本信息適配器906一般指可以例如在系統100中收集和使用的服務和/或設備信息,諸如上面提供的設備元數據130的許多和不同的例子。OSGi適配器908一般指這樣的事實系統適配器134可以支持諸如OSGi的標準化協議,以獲得關于沒有安裝監視器服務132a-132d之一的設備的信息。這種協議標準的其它的例子包括JavaAPI平臺JSR232(其包括OSGi)以及JavaAPIforBluetooth,JSR82。圖10是圖1、6和9的系統適配器的示例實現方式的框圖。在圖10的例子中,示出了上級(例如全局或本地層)設備144、146,其可以包括例如個人計算機或服務器計算機。設備144、146包括核心監視器服務148a和/或148b,以及兩個系統適配器服務適配器1006(用于與多個服務1004接口連接)和設備適配器1006(用于與多個設備硬件1008的實例/類型接口連接)。如圖所示,核心監視器服務148a、148b還可以與預先注冊的設備1010通信,該設備1010可以被配置成直接與核心監視器服務148接口連接。進一步,在圖10中,低級(例如組長或邊緣)設備108、110、112和/或114可以表示資源相對更加貧乏的設備,并且可以包括核心監視器服務148c、148d。類似于設備144、146,設備108、110、112、114包括服務適配器1012(用于與多個服務1014接口連接)和設備適配器1016(用于與設備硬件1018的多個實例/類型接口連接)。設備108、110、112、114還包括分離的設備適配器1020,其可以用于與實現了標準1022的例如設備1024的設備通信。例如,設備1024可以表示運行了管理標準1022(例如OSGi)的傳感器微片或蜂窩電話,從而使得核心監視器服務148可以使用標準1022與其通信。圖11是圖1、6和9的系統適配器的另一個示例實現方式的框圖。在圖11的例子中,系統適配器134被圖示為與核心監視器服務148通信。如上所述,系統適配器134可以使用核心監視器服務148的API1102來與核心監視器服務148通信,其中所述API1102對于所有系統適配器134來說是公共的。系統適配器134還使用API1106與服務和/或設備1104通信,該API1106特定于服務/設備1104,并且特定于與圖11中的系統適配器134的特定的、相關的實例。在圖11中,系統適配器134包括通知系統1108,其被配置成從核心監視器服務148(例如從圖8的更新通知發送器812)接收通知。例如,如在圖8的上下文中解釋過的,核心監視器服務148可以發送關于監視數據的變化或者新服務或新設備的注冊的更新。通知系統1108(其因此可被理解為包括在接收者注冊表814中)可以訂閱特定的通知或者通知類型,從而可以以周期性的間隔或預定的間隔接收通知。通知系統1008還可以從其它服務,諸如例如業務邏輯規則引擎服務1110(其實現業務規則并且可以觸發對特定真實事件的反應)或記錄器(logger)或監視定時器(watchdog)服務(圖11中未示出)的其它服務接收通知。取決于系統適配器134的實現方式,通知可以被轉發或處理,并且系統適配器134定義和實現對每個可能的通知的適當的反應。系統適配器134還包括系統讀取器1112,其被配置成從服務/設備1104讀取監視數據,諸如例如CPU利用率、電池壽命和服務的狀態(例如服務是正在運行還是被停止)。然后,系統讀取器1112可以將監視數據提供給正在輪詢系統適配器134的核心監視器服務148。在這些以及其它實現方式中,系統讀取器1112可以向信跳發送器1114提供監視數據。一般來說,信跳發送器1114被配置成周期性地向核心監視器服務148發送生命信號。正如剛剛提到的,并且在上面參照圖8提到過的,信跳發送器1014還可以接收和發送來自服務/設備1104的監視數據(例如狀態值),這允許減少消息發送(messaging)開銷。如參照圖8描述過的,信跳設置1116可以包括與信跳發送器1114相關聯的參數,諸如例如信跳消息之間的時間間隔。最后,在圖11中,初始化器(initializer)1118被配置成建立信跳設置1116并且在監視數據存儲器(例如圖8的系統全景數據庫806)注冊監視數據。初始化器1118還可以被配置成針對在更新通知發送器812處的更新通知消息向接收者注冊表814進行注冊。在這里描述的例子中,處理線程可被用于各種任務,包括監視器服務器維護線程和適配器線程。這些線程(用于例如上下文切換、線程調度和線程間通信)可以根據需要被創建和管理。監視器服務線程可以用于保持存儲在系統全景數據庫806和/或全局/本地監視數據136/138中的監視數據是最新的,并且還可以用于管理低級服務和設備的狀態。可以與監視器服務維護線程分離地實現系統適配器線程,從而使得系統適配器134不會由于執行復雜或時間密集的任務而阻塞(block)監視器服務維護線程。系統適配器134可以作為分離的線程運行,或者可以由相關聯的監視器維護服務的線程來執行。在后一種情況中,監視器服務維護線程可能在執行系統適配器134的維護功能的時間內被阻塞。可以被監視器服務調用的系統適配器134仍然可以創建在后臺進行耗時的工作的臨時線程,從而使監視器服務線程不被阻塞。一般使用其自己的線程的系統適配器可能更加強大。并且,這種系統適配器不阻塞監視器服務,因此可以執行耗時的任務和/或等待I/O中斷。此外,這種系統適配器在決定何時被激活方面具有更多的自由。因此,這種系統適配器不依賴于在不確定的時間點由監視器服務進行的調用。定時器可被用來主動地發送信跳消息和更新全景值。盡管如此,對于有限的設備,將系統適配器實現為使用監視器服務線程的無源組件可能更加適當。在這種情況下,可以避免創建和管理線程的開銷,其代價就是在執行所討論的系統適配器期間阻塞監視器服務。圖12是圖6的模塊化監視器服務600的通信適配器602的實例實現方式的框圖。如圖所示,通信適配器管理器802a、802b可以用作圖8中與核心監視器服務148通信的通信抽象層。類似于系統適配器管理器902,通信適配器管理器802a、802b管理用于設備的通信適配器1202并且與其通信(以便與設備1024通信),并且,還與通信適配器1206通信(以便與服務1208通信)。從上面對于系統適配器管理器902的描述應當理解,通信適配器管理器802a、802b(通信抽象層)可以被配置成加載/卸載通信適配器1202、1206,以及注冊(或取消注冊)通信適配器1202、1206。圖13是圖6的通信適配器602的另一個示例實現方式的框圖。在圖13中(如圖12那樣),通信適配器管理器(抽象層)802a、802b可以支持本地方法調用和網絡通信兩者。此外,通信適配器管理器(抽象層)802a、802b可以操作以用于使通信協議和網絡設備對于核心監視器服務148不透明。例如,消息處理和套接字(socket)通信可用于網絡通信。此外,本地通信可以使用消息、API、套接字、管道(pipe)和/或共享存儲器來實現。因此,通信適配器管理器802a、802b(通信抽象層)隱藏當前使用的可以在不同ISO/OSI層工作的、并且/或者可以組合的協議(例如傳輸控制協議(TCP)、統一數據報協議(UniformDatagramProtocol,UDP)、網際協議(IP)、超文本傳輸協議(HTTP)或文件傳輸協議(FTP))。通信適配器管理器802a、802b(通信抽象層)還可以隱藏網絡設備1204(例如藍牙、調制解調器或WiFi設備)。通信適配器管理器802a、802b(通信抽象層)還可以隱藏特定的通信概念(例如消息傳遞、套接字、共享存儲器或API調用)。換言之,如已經針對系統適配器134描述過的,通信適配器管理器802a、802b可以加載或卸載例如TCP適配器1302、UDP適配器1304、或API調用適配器1306,它們每個都可以提供到核心監視器服務148的公共接口。因此,通過使得通信對于核心監視器服務148和其它服務不透明,圖12和13的例子可以允許避免應付(dealwith)協議、網絡設備、序列號或傳輸錯誤。在圖13中,適配器1302-1304中的每一個都被標識為與網絡(1302、1304)或本地(1306)通信相關聯。此外,適配器1302-1304中的每一個都被標識為與可靠的(1302、1306)或不可靠的(1306)通信相關聯。適配器1302-1306中的每一個還可以與唯一的標識符(適配器ID)相關聯,以供通信適配器管理器802a、802b在選擇或加載各個適配器時使用。一般來說,不可靠的數據傳輸可以比可靠的傳輸簡單得多,也因此比可靠的傳輸耗費的資源少。因此,在可能的情況下可以首選不可靠的數據傳輸。然而,一些功能性,諸如查驗系統,可能要求可靠的數據傳輸(以及相應的通信適配器)。因此,一般來說,應當從圖8的例子理解到,核心監視器服務148可以發送和接收不同類型的消息,并且通信適配器管理器802a、802b可以用于選擇相應的、適當的通信適配器來執行所述發送和接收。例如,核心監視器服務148可能需要使用輕便的、不可靠的傳輸協議通過網絡發送消息。在這個例子中,通信適配器管理器802b可以從所有加載的適配器中定位(locate)實現不可靠網絡通信的UDP適配器1304。然后,通信適配器管理器802b將消息轉發給UDP適配器1304,由其來執行實際的通信。圖14是圖6的預處理器模塊606的示例實現方式的方框圖。例如,各種監視器服務132b-132d中的一個或多個可以使用預處理器模塊606,以便在將經處理的監視數據轉發給圖1的系統100的架構中的下一個較高級之前在本地對監視數據進行處理。在圖14中,預處理器管理器1402被配置為與上述的適配器管理器802a/802b和902相似地或類似地操作。例如,預處理器管理器1402可以與預處理器注冊表1040接口連接,以確定可能的預處理器模塊606中適當的一個,以便與核心監視器服務148一起使用。如圖所示,預處理器管理器1402可以被配置成諸如從本地服務或設備、并且可能經由核心監視器服務148和適當的系統適配器902和/或通信適配器802b接收到來的監視數據。在由預處理器模塊606預處理之后,預處理器管理器1402可以輸出經預處理的監視數據,使其返回到核心監視器服務148,以便發送到系統監視器架構中下一個較高級。例如,預處理器模塊606可以包括過濾器1406、聚集器(aggregator)1408、以及更新通知發送器1410。例如,過濾器1406可以被配置成去除特定類型的監視數據,或者特定量的監視數據。聚集器1408可以被配置成組合接收到的消息,以便發送組合的消息。例如,組長監視器服務132c可以從每個邊緣設備110-110接收消息以將它們聚集,或者可以從單個邊緣設備(例如邊緣設備110)接收一系列消息。如上所述,與更新通知發送器812相似,更新通知發送器1410可以被配置成提供更新。在圖14的例子中,更新通知發送器1410將更新傳輸(communicate)給GUI1412,以供例如系統管理員查看。當然,GUI1412的例子可能在監視器架構的較高級最為適當。此外,除了聚集和過濾之外,記錄、統計計算以及其它數據預處理器也可用于監視數據。例如,系統適配器134可以出于確定過去兩分鐘內的平均利用率的要求而每秒鐘遞送一次CPU利用率。為了支持可縮放性,監視的數據值可以在進行測量的系統適配器附近被預處理。通過這種方式可以節約通信資源,因為可以避免將每個數據值都發送(每秒一次)到上級的需要。相反,例如,根據需要,可以僅發送聚集的值。在操作中,可以在核心監視器服務148注冊不同的預處理器模塊。當監視數據(例如狀態值)到來時,執行每個注冊過的預處理器。例如,第一預處理模塊可以將原始監視數據作為參數接收,并且可以返回經預處理的數據組。隨后,下一個預處理器被啟動,并且從第一預處理器接收經預處理的輸出數據。由此,每個預處理器都可以執行,以針對其前任(predecessor)的輸出數據進行工作。在這些例子中,當使用這種模塊(例如插件)的順序執行時,可能需要對插件的執行進行適當的排序。例如,可能向核心監視器服務148和/或預處理器管理器1402注冊了兩個模塊。在這個例子中,第一模塊可以刪除特定服務或設備的所有數據,而第二模塊可以計算所有被監視設備的平均CPU利用率。顯然,如果這兩個模塊的次序改變,則結果將會不同,因為那樣的話所有被監視服務和設備都會被考慮,包括要刪除的特定服務或設備。因此,預處理器管理器1402可以例如在注冊期間設置適當的執行次序。在設計時可能不知道預處理器模塊606的數目和類型,從這方面來說,可能很難分配絕對的執行次序,特別是當預處理器模塊可以在運行時被動態加載的情況下。結果,一個選擇是創建預處理器模塊606的組,以便根據組來對預處理器模塊606排序。每個預處理器模塊606可以與組標識符相關聯,以便在注冊期間可以被放倒正確的組中。然后,如果不是在各個預處理器模塊層級上依次執行組的話,可以在組層級上依次執行組。可以根據例如執行的預處理的優先級和/或類型來對組進行排序。例如,第一組可以包括必需針對原始數據進行工作的預處理器模塊,第二組可以對已經經過預處理的數據進行工作,而第三組可以處理最終的數據。因此,用于預處理模塊606(例如1406-1410)的模塊化或插件概念可以增加圖1的系統100的可縮放性,并且可以解決資源約束的問題。例如,可以通過免除全局監視器服務132a和本地監視器服務132b的一些或全部預處理任務來增加可縮放性。此外,模塊化架構允許監視器服務132a-132b可根據每個設備的需要和能力來配置。也可以實現其它類型的監視器服務模塊150。例如,如圖6所示,可以使用數據存儲模塊604。例如,取決于在其上安裝了全局監視器服務132a和本地監視器服務132b的設備的能力,可以選擇與所選擇的用于在本地監視數據136中存儲監視數據的技術不同的技術來用于在全局監視數據138中存儲監視數據,例如,任何一個都可以將數據存儲在數據庫、文本文件、存儲器內數據結構或幾乎任何其它類型的數據存儲器中的一個或多個中。數據存儲模塊604的使用可以使得這種差異對于使用了以上參照圖6-14描述的各種技術的監視服務來說是不透明的。例如,可以用定義明確的接口來封裝監視數據存儲器,并且所述接口可以用作來自實際數據存儲系統的抽象層。圖15是圖示用于與圖1的系統100一起使用的注冊協議的系統1500的方框圖。在圖15中,可以是便攜式設備(例如PDA或膝上型計算機)的組長設備1502進入組長設備1504的區域。如圖所示,組長設備1504是傳感器網絡的多個邊緣設備1506a、1506b、1506c的組長。因此,例如,組長設備1504和邊緣設備1506a、1506b、1506c可以包括在許多傳感器網絡應用中,包括例如庫存管理或危險材料跟蹤。因此,例如,組長設備1504(如上所述,其可以例如與邊緣設備1506a、1506b、1506c相同,或者可以是WiFi接入點或基站)可以處于收集與倉庫中的庫存相關聯的信息(即監視數據)的過程中。例如,這種監視數據可以包括待銷售的存貨的類型和數量、以及/或者存貨附近的當前溫度信息(例如以檢測事物產品變質的可能性)。因此,組長設備1502可以進入組長設備1504的區域,例如當雇員帶著PDA或其它計算設備進入該區域并想要獲得期望的監視數據時。在上面的例子以及類似的例子中,組長設備1502可能希望收集監視數據以供雇員在本地使用,和/或可能自己收集/發送監視數據到全局監視器服務1508。舉例來說,在后一種情況中,組長設備1502可能具有在組長設備1504中不可用(或者至少是當前不可用)的特定計算資源或能力。應當理解,在圖15的例子中,組長設備1502可能實際上是當前用作多個邊緣設備(在圖15中未示出)的組長,或者可能在這樣的意義上被稱為組長,即,存在充足的計算資源以在此處描述的基礎設施的組長級處動作(例如,分裂消息以分發到邊緣設備、或者過濾/聚集來自邊緣設備的消息以用于后續的傳輸)。在另一個例子中,情況可以是組長設備1504失效,或者即將失效(例如由于低電池功率),或者被要求重新定位,從而出于承擔組長設備1504的責任的目的而重新定位組長設備1502。在圖15的例子中,全局監視器服務1508包括全局監視數據1510,并且在設備1512(如這里所描述的,其可以包括PC或類似強大的計算機)上運行。如已經描述過的,全局監視數據1510可以包括與系統1500整體相關的全局全景數據,包括圖15中未示出的其它要素。例如,全局監視數據1510可以包括描述組長1504和邊緣設備1506a、1506b、1506c的設備元數據(包括例如靜態和動態設備能力兩者)。此外,全局監視器服務1508可以包括與組長設備1502相關的設備元數據。例如,組長設備1502可能在之前已經注冊到全局監視器服務1508以作為分離的網絡(圖15中未示出)的一部分。當操作組長設備1502的雇員從分離的網絡重新定位到圖15所示的設備的區域時,組長設備1502可以斷開作為分離的網絡的一部分(并且如已經描述過的,在全局監視數據1510中做出這樣的標記),盡管關于該組長設備的信息可以那個在全局監視數據1510中保存某一段時間。系統1500還包括本地監視器服務1514,其具有本地監視數據1516并且在設備1518上運行。如上所述,設備1518可以包括例如便攜式計算機或Stargate計算機。此外,系統1500可以包括本地監視器服務1520,其具有本地監視數據1522,并且在設備1524上運行。然后,在圖15的例子中,組長設備1502可能需要注冊到全局監視器服務1508以便例如建立與組長1504的連接1526。例如,可以是這樣的情況組長設備1502和組長設備1504可以具有重疊的能力來相互通信;例如,兩者可以都具有Bluetooth(藍牙)能力。即便如此,組長設備1502可能不知道組長設備1504具有藍牙能力,而且,組長服務1502可能不具有與藍牙和任何正在組長設備1504上運行的服務(例如上面提到的溫度報告服務)兩者都兼容的本地通信服務(例如適配器/模塊)。然而,相反,全局監視器服務1508可能非常清楚存儲在全局監視數據1510中的所有這些信息(例如適當的服務元數據和/或設備元數據)。當然,從上面的描述應當理解,關于組長設備1504的信息也可以存儲在本地監視數據1516中。因此,全局監視器服務1508(間接地)能夠建立連接1526,因為例如全局監視器服務1508可能能夠確定需要哪個通信服務(適配器和模塊),然后可以將所述服務下載和/或注入到組長設備1502上。全局監視數據1510還可以與組長設備1504通信,以便保證(如果需要的話通過注入)組長設備1504不僅具有藍牙(或其它通信協議/標準),而且還具有與藍牙和組長設備1502上的相應服務兩者都兼容的本地服務。通過這種方式可用建立連接1526。在類似的情況中,組長1502可以用其它方式與系統100的其它設備/服務通信。因此,在系統1500中組長設備1502的注冊可以例如為組長設備1502的用戶提供多個優點。然而,這種注冊可能與多個困難相關聯。例如,這種注冊可能表現出安全問題,因為未注冊的以及可能惡意的設備一般不應當被監視并被整合到系統1500中。并且,頻繁交換注冊消息可能消耗寶貴的帶寬、電池功率和其它通信資源。然而,如果設備沒有注冊,則系統1500的其它部分可能就不能識別且不能訪問這樣的設備。因此,下面的描述與圖15-17一起提供了組長設備1502可以如何注冊到全局監視器服務1508的例子。當然,應當理解,這僅僅是一個例子,并且很明顯地,許多其它的例子也可以用來實現所描述的注冊協議或所描述的注冊協議的變體。然后,在圖15中,對于所述例子假設組長設備1502具有安裝在其上的監視器服務(盡管在圖15中未示出)。這個監視器服務可以包括此處描述的各種實現方式,包括圖6的模塊化監視器服務,或者可以包括非模塊化的、例如集成的監視器服務。因此,組長設備1502及其安裝的監視器服務嘗試加入系統1500的網絡,包括在全局監視器服務1508注冊。組長設備1502包括注冊系統1528和注冊數據1530。注冊系統1528被配置成與本地監視器服務1514、1520中的一個或多個(和/或與全局監視器服務1508)交換注冊消息1532、1534、1536和1538。注冊數據包括關于組長設備1502的正在連接(connecting)的監視器服務的信息,諸如例如關于組長設備1502的當前狀態的元數據、或者關于組長設備1502的設備元數據。注冊數據還可以包括初始的傳感器狀態/值信息(例如,以避免會在注冊之后立刻發生的針對這些值的初始輪詢所造成的開銷,因為數據是過時的或者不存在的。在注冊數據中會包括過量的值的情況下,則可以至少發送靜態數據值)。盡管在圖15中注冊數據1530被概念性地圖示為存儲器/在存儲器中,但是應當理解,注冊數據1530也可以簡單地代表在注冊發生期間或在注冊發生之前由組長設備1502(例如由注冊系統1528和/或由組長設備的監視器服務)收集的值。當然,在一些示例實現方式中,組長設備1502可以具有存儲器。此外,在本地監視器服務嘗試注冊到新的網絡的情況下,從上面的描述應當理解,可以使用本地存儲器(例如本地監視數據1516、1522)。更一般地,應當理解注冊系統1528和注冊數據1530或者它們的變體可以在圖15的其它設備和監視器服務中實現。所描述的注冊協議可以被實現為簡單的,例如無連接的健壯的協議。此外,注冊協議可以被配置成支持主動注冊(例如由正在連接的設備發起)和被動注冊(例如由被連接的網絡設備發起)兩者。結果,如所描述的,注冊過程可以由任何設備啟動。然后,在圖15中,組長設備1502作為未注冊但現在正在注冊的設備發出征求(solicitation)消息1532。可用作為廣播消息發送的征求消息1532可以包含對于同一層級或下一個較高層級的監視器服務的特定類型或其標識的請求,并且所述請求可以部分地基于正在連接的設備的設備能力。例如,如果(正在注冊的(registering))組長設備1502具有特定的能力(例如是移動電話),則它可以嘗試定位其它的組長設備(例如組長設備1504,即它的監視器服務)和/或本地監視器服務(例如1514、1520),而不是全局監視器服務1508。如果沒有發現首選的監視器服務類型的適當實例,則注冊系統1528可以重新發送具有下一個較高層級的標識的征求消息1532(從較低層級監視器服務到較高層級監視器服務上傳(goup))。此外,如果征求消息1532丟失,則注冊系統1528可以簡單地例如在超時之后發送另一個征求消息。被接收兩次的征求消息不是問題,因為這是所述協議的初始步驟。因此,輕便的、無連接的傳輸協議。例如UDP就可以是足夠的。因此,如果沒有接收到應答,則可以周期性地發出征求消息1532。在一些重復之后,組長(即正在注冊的或正在連接的)設備假定不存在監視器服務,并至少在特定的時間間隔內停止發送消息,這節省了功率和計算時間。同時,系統1500的已經連接的和注冊的服務(例如本地監視器服務1520)可以發出廣告(advertisement)消息1534。可以例如響應于定時器或征求消息1532來發送廣告消息1534。廣告消息1534可以包括發送廣告消息1534的監視器服務(例如在圖15的例子中的本地監視器服務1520)的類型的標識。通過接收廣告消息1534,網絡中的其它監視器服務發覺存在當前正在接受子代監視器服務的指定類型的監視器服務,并且意識到如何與該可用的監視器服務通信。可以將廣告消息1534作為廣播消息來發送,并且可以由這里所描述的任何或所有設備(一般來說,除了各種邊緣設備,因為邊緣設備一般不具有任何連接到其上的子代監視器服務)來發送廣告消息1534。廣告消息1534提供在征求消息1532丟失的情況下的自動失效保護(fail-safe)機制,還可以用作例如用于不發送征求消息的設備的注冊過程的發起者(initiator)。例如,如上面提到的,組長設備1502可以在指定時間段之后,或者如果設備不能檢測網絡變化的情況下停止發送征求。使用廣告消息1530,這種設備可以被“重新激活”。并且,丟失的廣告消息不是破壞性的,因為它們會被一次次地重發。正在連接的/正在注冊的設備,諸如組長設備1502可以通過發送注冊消息1536而對廣告消息1534做出一次響應。如上面提到的,注冊消息1536可以包含例如關于被監視的數據的信息、全景元數據、設備元數據和/或實際被監視的(例如傳感器)值。一旦在廣告消息1534的發送者(即本地監視器服務1520)處成功接收到注冊消息1536,注冊數據就可以被保存在從接收的父代監視器到全局監視器服務1508的路徑上的所有設備中(例如,在圖15的例子中,可以被存儲在設備1524和1512以及任何居間的設備)。換句話說,注冊消息1536被轉發到上層監視器服務。上層監視器服務的存儲器(例如1510、1522)中的過時的數據可以被標記為“懷疑”,并且/或者可以被刪除以避免不一致。例如,全局監視器數據1510可以具有來自之前的注冊事件的信息組長設備1502當前連接到另一個網絡(圖15中未示出)。然而,由于組長設備1502已經從以前的網絡的設備移開,因此以前的連接丟失,從而使全局監視器數據1510中的數據變得過時。一旦組長設備1502通過本地監視器服務1520再次注冊,如圖15所示,則可以由此更新全局監視器數據1510中的當前注冊狀態、位置和其它信息/數據。注冊系統1536可以通過在注冊過程中僅允許一個消息觸發的注冊消息1536來保證注冊消息1536的副本不是問題。也就是,注冊系統1536可以被配置成一旦發送了注冊消息1536,就忽略附加的廣告消息1534。然后,注冊消息1536獲得確認消息1538,以保證注冊被成功處理。如果在預定時間之后沒有確認到達,則可以重發注冊消息1536。在這樣的實現方式中,重復的注冊消息不是問題,因為可以允許一個注冊覆蓋(override)另一個而不引起任何損害。此外,或者可替代地,如果相關服務或設備已經注冊,則可以簡單地忽略重復的注冊消息。確認消息1538可以由正在管理(managing)的監視器服務(例如本地監視器服務1520)來發送。當正在注冊的設備(組長設備1502)接收到確認消息1538時,注冊過程結束(如果沒接收到確認消息1538,例如,確認消息1538丟失,則組長設備1502可以簡單地重新發送注冊消息1536)。然后,組長設備1502的現在已注冊的監視器服務可以開始其分配的監視任務。因此,圖15的注冊協議允許無連接和不可靠的數據傳輸,從而可以使用簡單且健壯的協議,例如UDP。圖16是圖示圖15的注冊協議的示例實現方式的順序圖。在圖16的例子中,出現了各種異常,以便圖示該協議的健壯本質。具體來說,從組長設備1502(例如從在其上安裝的組長監視器服務)向本地監視器服務1520發送征求消息,但該征求消息未被接收(1602)。即,該征求消息包括期望本地監視器服務以作為父代設備的標識,但是沒有這樣的潛在的父代設備接收到所述消息或對其做出響應。在指定的時間之后,發送第二征求消息(1604),其在本地監視器服務1520和全局監視器服務1508兩者處都被接收。如上所述,注冊系統1528可以確定由于第一征求消息的發送(1602)不成功,因此有必要發送第二征求消息。在這種情況下,本地監視器服務1520和全局監視器服務1508兩者都接收到所述征求消息(1604)。然而,全局監視器服務1508簡單地忽略(1606)該征求,這是因為該征求指定了本地監視器服務1520。然后,本地監視器服務1520發出廣告消息(1608a和1608b)。可以響應于征求消息的發送(1604)來發送該廣告消息(1608a),或者可以根據定時器值來發送該廣告消息。因此,附加廣告消息的發送(1608b)作為廣播的一部分到達全局監視器服務1508,但是沒有被忽略。然后,組長設備1502發送注冊消息(1612),導致本地監視器服務注冊相關元數據(1614)。在這點上,盡管未示出,已注冊的元數據可以被轉發到全局監視器服務1508(例如使用增量同步)。然后,可以發送確認消息,但是在圖16的例子中,在注冊系統1528處沒有接收到該確認消息(1616)。因此,組長設備1502的注冊系統1528簡單地重新發送注冊消息(1618),然后,在本地監視器服務1520處再次接收到該注冊消息,并且該注冊消息被重新注冊(1620)或被忽略。再次發送確認消息,這次在組長設備1502接收到該確認消息(1622),因此注冊過程結束。圖17是圖示圖15的系統1500的示例操作的流程圖1700。在圖17的例子中,正在連接的監視器服務(例如組長設備1502的監視器服務,該組長設備1502可以包括注冊系統1528或與其相關聯)廣播征求消息(例如征求消息1532),其包括來自在系統1500的分層級的監視器架構中的期望的父代監視器的標識(1702)。如果在父代服務處(例如在本地監視器服務1520處)沒有接收到該征求消息1532(1704),則該父代監視器服務可以繼續等待預定義的定時器(1706)。因此,如果定時器到時(reach),或者如果在該父代監視器服務處接收到了征求消息,則該父代監視器服務可以接收作為結果的廣告消息,例如廣告消息1534(1708)。然后,應當理解,無論是否接收到征求消息1532,都可以發送廣告消息1534,因此增加了正在連接的設備連接/注冊的可能性。如果在正在連接的設備沒有接收到廣告消息1534(1710),則正在連接的設備可用重發征求消息1532(1712),可能標識分層級的監視器架構的下一個較高層級作為期望的父代服務(例如全局監視器服務1508,以代替本地監視器服務1520、1514)。在這種情況下,只要沒有超時(1714),處理就可以繼續,直到交換了注冊和/或廣告消息。否則,處理停止(1716)。在這一點上應當理解,超時條件照字面意思可以指經過的時間段,或者可以指發送預定義數目的(特定類型的)消息。當然,應當理解,可以根據其相關聯的定時器(1706)重新發送廣告消息(1708),即使過程在之前停止或失敗。而且,圖17中的幾乎任何“停止”條件,包括停止條件(1716),都可以是臨時的,并且過程可以在某個進一步定義的時間段到達之后繼續。如果接收到廣告消息(1710),則正在連接的設備可以向在廣告消息中標識的父代監視器服務發送注冊消息,例如注冊消息1536(1718)。如果沒有接收到注冊消息(1720),并且定時器沒有到時(1722),則正在連接的設備可以重新發送注冊消息(1718)。如已經描述過的,注冊消息可以包括監視器數據,從而,如果接收到注冊消息(1720),則可以沿等級向上傳播該注冊消息(1726),例如將其傳播到全局監視器服務1508。在這種情況下,包括關于正在連接的設備的元數據以及實際的傳感器值的監視器數據可以保存在一些或全部居間的設備處(1728),例如,保存在本地監視器服務1520處。通過以這種方式傳播注冊/監視數據,全局監視器服務1508可以保持對正在連接的服務/設備的存在的跟蹤,并且可以最后剩余的被標記為“懷疑”的數據,所述被標記為“懷疑”的數據如果不刪除的話可能會導致不一致(例如同一設備在不同的網絡同時注冊)。然后,父代監視器服務可以發送確認消息(1730),例如確認消息1538。如果沒有接收到確認消息(1732),并且還沒有超時(1734),則可以重新發送注冊消息(1718),并且上述過程可以全部地或部分地重復。如果超過了超時時間(1734),或者如果接收到了確認消息,則注冊過程也結束(1724)。剛剛描述的注冊協議可以在正在連接的設備(例如組長設備1502)已經在其上安裝了監視器服務時實現。然而,如上面參照圖7B所描述的,如果正在連接的設備沒有在其上安裝監視器服務,則可以進行預注冊過程,其中,如上所述,可以使用這樣的自舉技術其中,核心監視器服務148被安裝,然后被用于執行圖15-17的剩余的注冊過程。如剛剛所描述的,圖15-17的健壯的、可靠的注冊協議允許使用不可靠的/無連接的通信協議,同時最小化注冊過程所需的網絡帶寬的量。例如,可以通過在特定時間段之后停止重新發送一個或多個消息來節約網絡帶寬。在這種情況下,每次注冊協議在超時之后要求重新發送消息時,都存在這樣的可能性,即,正在連接的設備或父代設備可能丟失連接,并且這種可能性可能導致系統1500的全部或一些的“卡塞”(stuck)狀態。為了避免這種狀態,并且如上面所提到的,每個重新發送的消息僅可以被重新發送有限的次數,并且如果沒有實現成功的注冊,則整個注冊過程可以重新開始。應當理解,以上描述僅僅旨在提供分等級地分層的監視器架構的例子,并且可以使用更多或更少層的這種等級。通過實現這種分等級地分層架構,例如,如上面更加具體地描述的,可以獲得各種特征和優點。例如,圖上面提到過的,此處描述的系統100可以容易地被擴大到包括大量智能物件設備,同時仍然能夠執行對服務和/或設備的有效監視。這里描述的各種技術的實現方式可以被實施在數字電子電路中,或者實施在計算機硬件、固件、軟件或它們的組合中。實現方式可以實施為計算機程序產品,即實實在在地具體實施在信息載體中,例如在機器可讀存儲設備中或者在傳播的信號中,的計算機程序,以供數據處理裝置執行,或者控制數據處理裝置的操作,所述數據處理裝置例如可編程處理器、計算機、多個計算機。計算機程序,例如上面描述的計算機程序,可以用任何形式的編程語言編寫,包括匯編語言或解釋語言,并且,它可以被以任何形式部署,包括作為獨立的程序或者作為模塊、組件、子程序或其他適于在計算環境中使用的單元。計算機程序可以被部署成在一個計算機上或在位于一個地點或跨過多個地點分布并被通信網絡互連起來的多個計算機上執行。方法步驟可以被一個或更多個可編程處理器執行,所述可編程處理器執行計算機程序,通過對輸入數據操作和產生輸出來執行功能。方法步驟還可以被專用邏輯電路執行,或者裝置可以被實施為專用邏輯電路,所述專用邏輯電路例如FPGA(現場可編程門陣列)或ASIC(專用集成電路)。作為例子,適于執行計算機程序的處理器包括通用和專用微處理器,以及任何類型的數字計算機的任意一個或更多個處理器。一般來說,處理器將從只讀存儲器或隨機訪問存儲器接收指令和數據,或者從兩者都接收指令和數據。計算機的要素可以包括至少一個用于執行指令的處理器,和用于儲存指令和數據的一個或更多個存儲器設備。一般來說,計算機還可以包括,或者被可操作地連接,以從一個或更多個用于存儲數據的海量儲存設備接收數據,或把數據傳送到海量儲存設備,或者二者皆有,所述海量儲存設備例如磁盤、磁光盤或光盤。適于具體實施計算機程序指令和數據的信息載體包括所有形式的非易失性存儲器,作為例子,包括半導體存儲器器件,例如EPROM、EEPROM和快閃存儲器設備、磁盤,例如內置硬盤或可移動磁盤、磁光盤和CD-ROM以及DVD-ROM盤。處理器和存儲器可以被專用邏輯電路補充,或被包含在專用邏輯電路中。為了提供和用戶的交互,實現方式可以在具有顯示設備和鍵盤以及指示設備(pointingdevice)的計算機上實施,顯示設備例如陰極射線管(CRT)或液晶顯示器(LCD)監視器,用于向用戶顯示信息,鍵盤和指示設備例如鼠標或跟蹤球,用戶利用它們可以提供到計算機的輸入。其他種類的設備也可以被用來提供和用戶的交互;例如,提供給用戶的反饋可以是任何形式的感覺反饋,例如視覺反饋、聽覺反饋或觸覺反饋,并且,來自用戶的輸入可以被以任何形式接收,包括聲音、語音或觸覺輸入。實現方式可以被在包括后端組件或包括中間件組件或包括前端組件的計算系統中實施,或者在這些后端、中間件、前端組件的任意組合中實施,后端組件例如數據服務器,中間件組件例如應用服務器,前端組件例如具有圖形用戶接口,或Web瀏覽器的客戶端計算機,通過圖形用戶界面或Web瀏覽器,用戶可以和實現方式進行交互。可以利用數字數據通信的任何形式或介質互連組件,數字數據通信介質例如通信網絡。通信網絡的例子包括局域網(LAN)和廣域網(WAN),例如因特網。雖然如這里所描述的那樣已經示出了所描述的實現方式的某些特征,但是本領域普通技術人員現在將想到很多修改、替換,變化或等同物。因此要理解,所附權利要求旨在覆蓋落入本發明的實施例的真實精神內的所有這些修改和變化。權利要求1.一種方法,包括從在用于設備網絡(102)的分等級的、多級監視器架構的第一級(204、206、208)的正在注冊的監視器服務(1514、1520、132b、132c、132d)發送(1602、1702)征求消息(1532),該征求消息標識所述正在注冊的監視服務(1514、1520、132b、132c、132d)以及與所述分等級的多級監視器架構的第二較高級(206、204、202)相關聯的已注冊的監視器服務(1508、1514、1520、132a、132b、132c)兩者;從所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)發送(1608a、1608b、1708)廣告消息(1534),該廣告消息(1534)指示用于注冊的所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)的身份和可用性;從所述正在注冊的監視器服務(1514、1520、132b、132c、132d)發送(1612、1618、1718)注冊消息(1536),該注冊消息(1536)包括與該正在注冊的監視器服務(1514、1520、132b、132c、132d)相關聯的注冊數據(1530);以及根據所述注冊數據(1530),在所述分等級的、多級監視器架構中注冊(1614、1620、1726、1728)所述正在注冊的監視器服務(1514、1520、132b、132c、132d)。2.如權利要求1所述的方法,包括從所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)發送(1616、1622、1730)確認所述正在注冊的監視器服務(1514、1520、132b、132c、132d)的注冊的確認消息(1538)。3.如權利要求1所述的方法,其中,發送(1602、1702)所述征求消息(1532)包括在之前到居間級(204、206)的發送(1712)沒有導致接收所述廣告消息(1534)之后,向所述第二較高級(202、204、206)發送(1602、1702)所述征求消息(1532)。4.如權利要求1所述的方法,其中,發送(1602、1702)所述征求消息(1532)包括以預定的時間間隔廣播該征求消息(1532)。5.如權利要求1所述的方法,其中,發送(1608a、1608b、1708)所述廣告消息(1534)包括根據所述征求消息(1532)發送該廣告消息(1534)。6.如權利要求1所述的方法,其中,發送(1608a、1608b、1708)所述廣告消息(1534)包括根據預定的時間間隔并且獨立于所述征求消息(1532)來發送(1608a、1608b、1708)該廣告消息(1534)。7.如權利要求1所述的方法,其中,發送(1612、1618、1718)所述注冊消息(1536)包括在所述注冊數據(1530)中包括在所述注冊消息(1536)中的、并且與在其上部署了所述正在注冊的服務(1514、1520、132b、132c、132d)的設備(1518、1524、146、108-110)相關聯的設備元數據(130),并且/或者在所述注冊數據(1530)中包括在所述注冊消息中的、并且與在所述設備上部署的服務相關聯的服務元數據(126)。8.如權利要求1所述的方法,其中,發送(1612、1618、1718)所述注冊消息(1536)包括在所述注冊數據(1530)中包括由與所述正在連接的設備相關聯的傳感器所獲得的傳感器值。9.如權利要求1所述的方法,其中,發送(1612、1618、1718)所述注冊消息(1536)包括重新發送該注冊消息(1536),直到接收到所述確認消息,或者直到達到超時條件。10.如權利要求1所述的方法,其中,發送(1612、1618、1718)所述注冊消息(1536)包括在所述正在注冊的監視器服務(1514、1520、132b、132c、132d)處丟棄在發送了所述注冊消息(1536)之后接收到的另一個廣告消息(1534)。11.如權利要求1所述的方法,其中,發送(1612、1618、1718)所述注冊消息(1536)包括使用與所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)相關聯的至少一個設備(1512、1518、1524、144、146、108-114)來存儲所述注冊數據(1530)。12.如權利要求1所述的方法,其中,發送(1612、1618、1718)所述注冊消息(1536)包括根據所述注冊數據(1530)更新所述分等級的、多級監視器架構的全局監視數據(136),以反映所述正在注冊的監視器服務(1514、1520、132b、132c、132d)到全局監視器服務(132a)的注冊。13.如權利要求1所述的方法,包括將核心監視器服務(148)部署到所述正在注冊的監視器服務(1514、1520、132b、132c、132d)上;確定與在其上部署了該正在注冊的監視器服務(1514、1520、132b、132c、132d)的設備(1518、1524、146、108-110)相關聯的設備元數據(130);根據所述設備元數據(130),將至少一個監視器服務模塊(150)部署到所述設備(1518、1524、146、108-110)上;以及使用所述至少一個監視器服務模塊(150)來發送所述征求消息(1532)、接收所述廣告消息(1534)、和/或發送所述注冊消息(1536)。14.一種系統,包括監視器服務(132、132b、132c、132d),其被配置成獲得和報告關于在分等級的、多級監視器服務的第一層級(204、206、208)的設備網絡(102)的監視器數據,所述監視器服務(132、132b、132c、132d)包括注冊系統(1528),其被配置成從所述監視器服務(132b、132c、132d)發送征求消息(1532),所述征求消息(1532)通過級來指定在所述分層級的、多級監視器架構的較高層級的層(202、204、206)的已注冊的監視器服務(1508、1514、1520、132a、132b、132c),該注冊系統(1528)還被配置成從所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)接收廣告消息(1534),根據該廣告消息(1534)確定該已注冊的監視器服務(1508、1514、1520、132a、132b、132c)是所指定的級的成員,并向該已注冊的監視器服務(1508、1514、1520、132a、132b、132c)發送注冊消息(1536)。15.如權利要求14所述的系統,其中,所述注冊系統(1534)被配置成從所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)接收確認消息(1538),以對所述注冊做出響應,并確認所述監視器服務(132b、132c、132d)被注冊到與所述設備網絡(102)相關聯的全局監視器服務(132a)。16.如權利要求15所述的系統,其中,所述注冊消息(1532)包括至少部分地使用所述全局監視器服務(132a)和在所述已注冊的監視器服務(1514、1520、132a、132b、132c)與該全局監視器服務(132a)之間的任何居間的監視器服務(132b、132c)存儲的注冊數據(1530)。17.一種方法,包括在用于設備網絡(102)的分層級的、多級監視器架構的已注冊的監視器服務(1508、1514、1520、132a、132b、132c)接收來自監視器服務(132b、132c、132d)的征求消息(1532);確定所述監視器服務(132b、132c、132d)沒有通過所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)被注冊為所述分層級的、多級監視器架構的成員;確定在所述征求消息(1532)中指定的級(202、204、206)的標識,所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)被部署在所述級(202、204、206)上;向所述監視器服務(132b、132c、132d)發送(1608a、1608b、1708)廣告消息(1534),該廣告(1534)指定所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c)被部署在所述級(202、204、206)上并且可用于注冊;從所述監視器服務(132b、132c、132d)接收(1612、1618)注冊消息(1536);以及根據所述注冊消息(1536),在所述分層級的、多級監視器架構內注冊(1614、1620、1726、1728)所述監視器服務(132b、132c、132d)。18.如權利要求17所述的方法,包括向所述監視器服務(132b、132c、132d)發送確認消息(1538)。19.如權利要求17所述的方法,其中,發送(1608a、1608b、1708)所述廣告消息(1534)包括響應于所述征求消息(1532)發送(1608a、1608b、1708)該廣告消息(1534)。20.如權利要求17所述的方法,其中,注冊(1614、1620、1726、1728)所述監視器服務(132b、132c、132d)包括將作為注冊消息(1536)的一部分從所述監視器服務(132b、132c、132d)接收到的注冊數據(1530)在本地存儲到所述已注冊的監視器服務(1508、1514、1520、132a、132b、132c);以及根據所述注冊數據(1530),更新在所述已注冊的監視器服務(132a、132b)之上的較高級的監視器服務(132a、132b)的存儲器(1516、1522)。全文摘要可以使用模塊化的方法來實現可部署在設備網絡上的監視器服務,其中,核心監視器服務被映射到包括在所述設備網絡或與該設備網絡相關聯的一個或多個設備。可以使用與所述核心監視器服務交互的插件、附加服務或服務組件、或者其它服務模塊向這些設備提供附加的與監視相關的功能性。可以根據例如其它服務的要求和/或所述設備的相關設備元數據(例如能力)來將所述核心監視器服務和任何監視器服務模塊映射到所述設備中的特定設備上。在附加和或替代的實現方式中,可以使用各種協議來以快速、安全、能源有效以及可靠的方式向所述分布式監視服務注冊新的設備和所部署的監視器服務,即使在設備加入或離開所述設備網絡時也是如此。文檔編號G06Q10/00GK101083587SQ20071010872公開日2007年12月5日申請日期2007年5月31日優先權日2006年5月31日發明者克里斯托弗·博恩霍夫德,布賴恩·S·莫,馬賽厄斯·M·韋曼申請人:Sap股份公司