亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

服務(wù)發(fā)現(xiàn)及發(fā)布的制作方法

文檔序號:6475081閱讀:258來源:國知局
專利名稱:服務(wù)發(fā)現(xiàn)及發(fā)布的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字計算,尤其涉及在計算設(shè)備和計算網(wǎng)絡(luò)中的服務(wù)發(fā)現(xiàn)(service discovery)。
(2)背景技術(shù)在計算設(shè)備和計算機(jī)網(wǎng)絡(luò)上運(yùn)行的應(yīng)用程序,有時會需要使用由其他與計算設(shè)備或網(wǎng)絡(luò)相連接的物理或邏輯設(shè)備所提供的服務(wù)。目前,應(yīng)用程序使用大范圍的應(yīng)用編程接口(API)、協(xié)議、和用于發(fā)現(xiàn)、列舉及描述服務(wù)和設(shè)備的對象模型,而這些服務(wù)和設(shè)備是在本地計算設(shè)備上或是在計算機(jī)網(wǎng)絡(luò)中的多個設(shè)備上。即使所涉及的服務(wù)和設(shè)備在概念上是相似的,但用來發(fā)現(xiàn)、列舉和描述服務(wù)和設(shè)備的機(jī)制相差很大。
例如,設(shè)想一個應(yīng)用程序試圖列舉可用的打印機(jī)的情形。當(dāng)程序運(yùn)行在一個被管理的、團(tuán)體環(huán)境下時,應(yīng)用程序會需要使用簡便目錄訪問協(xié)議(LDAP)來與Microsoft(現(xiàn)用目錄)目錄服務(wù)存儲器通信以發(fā)現(xiàn)注冊的團(tuán)體打印機(jī)、或使用NetBT以發(fā)現(xiàn)打印隊(duì)列服務(wù)器、或使用藍(lán)牙以發(fā)現(xiàn)私人領(lǐng)域的網(wǎng)絡(luò)打印機(jī)。此外,應(yīng)用程序或許必須調(diào)用設(shè)備管理API以發(fā)現(xiàn)直接與本機(jī)相連的打印機(jī)、或調(diào)用UPnPTMAPI以發(fā)現(xiàn)UPnP打印機(jī)。這些機(jī)制中的每一個都要求對特定的API、協(xié)議和查詢語義的理解。
用于發(fā)現(xiàn)、列舉和描述服務(wù)的應(yīng)用程序所需的API和協(xié)議的數(shù)量之大使得軟件發(fā)展的任務(wù)復(fù)雜化了。
(3)發(fā)明內(nèi)容在說明書和權(quán)利要求書中所描述的具體實(shí)現(xiàn)通過提供一種將發(fā)現(xiàn)和發(fā)布任務(wù)簡化的統(tǒng)一接口而解決了上述和其他問題。該統(tǒng)一接口允許發(fā)揮基礎(chǔ)協(xié)議的優(yōu)勢,不再需要應(yīng)用程序開發(fā)者去理解下層協(xié)議。該統(tǒng)一接口提供了一個對于服務(wù)以及以在大范圍的低級API、協(xié)議、存儲和網(wǎng)絡(luò)環(huán)境上發(fā)現(xiàn)和發(fā)布服務(wù)細(xì)節(jié)位目標(biāo)的相關(guān)聯(lián)操作的一致的、高度的抽象。
在一個示例實(shí)現(xiàn)中,提供了一種發(fā)現(xiàn)在計算環(huán)境中可用的服務(wù)的方法。該方法包括在一應(yīng)用程序中,定義一發(fā)現(xiàn)范圍,定義一發(fā)現(xiàn)過濾器,及向第一應(yīng)用編程接口發(fā)出一搜索請求;及在該第一應(yīng)用編程接口中解析該搜索請求,檢索與所請求的發(fā)現(xiàn)范圍和發(fā)現(xiàn)過濾器相對應(yīng)的服務(wù)信息,和將該服務(wù)信息返還給該應(yīng)用程序。
在另一個示例實(shí)現(xiàn)中,提供了一種發(fā)布計算環(huán)境中可用的服務(wù)的方法。該方法包括在一應(yīng)用程序中定義一服務(wù)條目對象,定義一發(fā)布范圍,分配給服務(wù)一個唯一的鍵,分配一服務(wù)類型,定義服務(wù)的屬性,定義服務(wù)的端點(diǎn),及向第一應(yīng)用編程接口發(fā)出一發(fā)布請求;及在第一應(yīng)用編程接口中解析該搜索請求,和執(zhí)行至少一個低級API調(diào)用來發(fā)布該服務(wù)。
在另一個示例實(shí)現(xiàn)中,提供了一種刪除計算環(huán)境中的一個已發(fā)布的服務(wù)的方法。該方法包括在一應(yīng)用程序中定義服務(wù)條目對象,指定一個對應(yīng)于已發(fā)布的服務(wù)的鍵,定義刪除范圍,及向第一應(yīng)用編程接口發(fā)出一刪除請求;及在第一應(yīng)用編程接口中解析該搜索請求,執(zhí)行至少一個低級API調(diào)用來刪除服務(wù)。
在另一個示例實(shí)現(xiàn)中,提供了一種訂閱計算環(huán)境中服務(wù)事件的方法。該方法包括在一應(yīng)用程序中定義一范圍,定義一過濾器,定義一調(diào)回函數(shù)(callbackfunction),及向第一應(yīng)用編程接口發(fā)出一訂閱請求;及在第一應(yīng)用編程接口中解析該搜索請求,運(yùn)執(zhí)至少一個低級API調(diào)用來訂閱服務(wù)事件,及將服務(wù)事件的信息返還給該應(yīng)用程序。
在另一個示例實(shí)現(xiàn)中,提供了一種管理有關(guān)計算環(huán)境中可用的服務(wù)的信息的系統(tǒng)。該系統(tǒng)包括第一應(yīng)用編程接口,其配置成接受來自應(yīng)用程序的服務(wù)查詢,其中第一應(yīng)用編程接口以第一服務(wù)查詢協(xié)議接收服務(wù)查詢、處理該服務(wù)查詢、和向第二協(xié)議發(fā)出至少一個相應(yīng)服務(wù)查詢;與該第一應(yīng)用編程接口通信地相連的發(fā)現(xiàn)持續(xù)服務(wù),其中發(fā)現(xiàn)持續(xù)服務(wù)從第一應(yīng)用編程接口處接收服務(wù)信息,并將服務(wù)信息存儲在一個數(shù)據(jù)存儲器中。
(4)


圖1是一個示例計算設(shè)備的示意性說明;圖2是一個說明示例軟件體系結(jié)構(gòu)的結(jié)構(gòu)圖;圖3是闡明服務(wù)發(fā)現(xiàn)操作的流程圖;圖4是闡明服務(wù)發(fā)布操作的流程圖5是闡明服務(wù)刪除操作的流程圖;圖6是闡明訂閱服務(wù)事件操作的流程圖;圖7是闡明具體范圍和抽象范圍之間關(guān)系的結(jié)構(gòu)圖;圖8是闡明如何使用C#編程語言利用現(xiàn)用目錄協(xié)議上的SimpleFilter對象來定位那些每分鐘能打印50頁的彩色打印機(jī)的偽代碼;圖9是闡明如何使用C#編程語言來定位網(wǎng)絡(luò)服務(wù)的偽代碼;圖10是闡明如何使用C#編程語言利用SimpleFilter對象和UDDI協(xié)議來查找支持特定的tModel接口的偽代碼;圖11是闡明利用SimpleFilter對象和UDDI協(xié)議來查找支持特定的tModel接口Visual Basic.NET的使用方法的偽代碼;圖12是闡明利用現(xiàn)用目錄支持下的RichFilter來定位一個名如OfficePrinter的打印機(jī)的C#編程語言的使用方法的偽代碼;圖13是闡明利用現(xiàn)用目錄支持下的RichFilter來定位一個名如OfficePrinter的打印機(jī)的Visual Basic.NET的使用方法的偽代碼;圖14是闡明利用SSDP協(xié)議來發(fā)布一個由特定的唯一的標(biāo)識符所確定的特定類型的服務(wù)的C#編程語言的使用方法的偽代碼;圖15是闡明利用SSDP協(xié)議來發(fā)布一個由特定的唯一的標(biāo)識符所確定的特定類型的服務(wù)的Visual Basic.NET的使用方法的偽代碼;圖16是闡明來刪除一個來自SSDP協(xié)議的服務(wù)的C#編程語言的使用方法的偽代碼;圖17是闡明來刪除一個來自SSDP協(xié)議的服務(wù)的Visual Basic.NET的使用方法的偽代碼;圖18是闡明利用SimpleFilter來注冊那些使用SSDP協(xié)議的特定類型的事件的C#編程語言的使用方法的偽代碼。這個注冊了的調(diào)回函數(shù)將為每個與過濾器相匹配的事件調(diào)用,且相應(yīng)的ServiceEntry對象將被提供給該處理器;和圖19是闡明利用SimpleFilter來注冊那些使用SSDP協(xié)議的特定類型的事件的Visual Basic.NET的使用方法的偽代碼。
(5)具體實(shí)施方式
這里描述的是用于服務(wù)發(fā)現(xiàn)和發(fā)布的示例性方法和軟件體系結(jié)構(gòu)。這里描述的方法可被具體化為計算機(jī)可讀媒體上的邏輯指令。當(dāng)運(yùn)行在處理器上時,這些邏輯指令使得通用計算設(shè)備被編程為執(zhí)行上述方法的專用機(jī)。當(dāng)處理器由邏輯指令配置成執(zhí)行這里所表述的方法時,它就組成適于執(zhí)行上述方法的結(jié)構(gòu)。
示例性運(yùn)行環(huán)境圖1是可被用來實(shí)現(xiàn)根據(jù)所述具體實(shí)施方式
的一個或多個計算設(shè)備的示例性計算設(shè)備130的示意性說明。計算設(shè)備130可被用來實(shí)現(xiàn)根據(jù)所述具體實(shí)施方式
的各種不同實(shí)現(xiàn)。
計算設(shè)備130包括一個或多個處理器或處理單元132、系統(tǒng)存儲器134、和耦合包括系統(tǒng)存儲器134和處理器132在內(nèi)的多個系統(tǒng)組件的總線136??偩€136表示若干類型的總線結(jié)構(gòu)中任意的一種或多種,包括存儲器總線或存儲器控制器、外部總線、圖形加速端口、以及采用多種總線結(jié)構(gòu)中任意一種的處理器或本地總線。系統(tǒng)存儲器134包括只讀存儲器(ROM)138和隨機(jī)存取存儲器(RAM)140。基本輸入輸出系統(tǒng)(BIOS)142包含幫助在計算設(shè)備130內(nèi)的組件之間傳輸信息的基本例行程序,諸如在啟動時,BIOS被存儲在ROM 138中。
計算設(shè)備130還包括用來從硬盤(未示出)中讀取數(shù)據(jù)和向硬盤寫入數(shù)據(jù)的硬盤驅(qū)動器144、用來從可移動式磁盤148(未示出)中讀取數(shù)據(jù)和向可移動式磁盤148寫入數(shù)據(jù)的磁盤驅(qū)動器146、和用來從可移動光盤152如CD ROM或其他光媒中讀取數(shù)據(jù)和向可移動光盤152寫入數(shù)據(jù)的光盤驅(qū)動器150。硬盤驅(qū)動器144、磁盤驅(qū)動器146和光盤驅(qū)動器150通過SCSI接口154或其他適合的接口與總線136相連接。這些驅(qū)動器和及其相關(guān)聯(lián)計算機(jī)可讀媒體給計算設(shè)備130提供對計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性存儲。盡管這里所述的示例性運(yùn)行環(huán)境使用了硬盤、可移動磁盤148和可移動光盤152,但本領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識到其他類型的能夠存儲計算機(jī)可存取數(shù)據(jù)的計算機(jī)可讀媒體,如磁帶、閃存卡、數(shù)字影碟、隨機(jī)存取存儲器(RAM),只讀存儲器(ROM)等都可被用在該示例性運(yùn)行環(huán)境中。
眾多程序模塊可存儲在硬盤144、磁盤148、光盤152、ROM 138,和RAM 140上,包括操作系統(tǒng)158、一個或多個應(yīng)用程序160、其它程序模塊162和程序數(shù)據(jù)164。用戶可通過輸入設(shè)備,如鍵盤166和定位設(shè)備168向計算設(shè)備130輸入命令和信息。其它可用的輸入設(shè)備(未示出)可以是麥克風(fēng)、操縱桿、游戲手柄、圓盤式衛(wèi)星電視天線、掃描儀等。這些或其它輸入設(shè)備通過耦合至總線136上的接口170與處理單元132相連接。通過諸如視頻適配器174的接口,監(jiān)視172或其它顯示設(shè)備同樣與總線136相連接。除監(jiān)視器之外,個人計算機(jī)通常包括其他外部輸出設(shè)備(未示出),諸如揚(yáng)聲器和打印機(jī)。
計算設(shè)備130通常運(yùn)行在利用與一個或多個遠(yuǎn)程計算機(jī)如遠(yuǎn)程計算機(jī)176的邏輯連接的網(wǎng)絡(luò)環(huán)境下。遠(yuǎn)程計算機(jī)176可以是另一臺個人計算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),而且遠(yuǎn)程計算機(jī)176通常包括上述與計算設(shè)備130相關(guān)所描述的元件中的多個或者全部,盡管在圖1中只示出了一個存儲器178。圖1中所描述的邏輯連接包括局域網(wǎng)(LAN)180和廣域網(wǎng)(WAN)182。這種網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍計算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)和因特網(wǎng)中都很常見。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算設(shè)備130通過網(wǎng)絡(luò)接口或適配器184連接至本地網(wǎng)絡(luò)180接。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算設(shè)備130通常包括調(diào)制解調(diào)器186或其它手段,用于在廣域網(wǎng)182如因特網(wǎng)上建立通信。調(diào)制解調(diào)器186可以是內(nèi)置的或外置的,它通過串行接口156連接至總線136。在網(wǎng)絡(luò)環(huán)境中,與計算設(shè)備130相關(guān)描述的程序模塊或其中的部分,可以存儲在遠(yuǎn)程存儲器設(shè)備中。將會認(rèn)識到,所示出的網(wǎng)絡(luò)連接是示例性的,其它在計算機(jī)間建立通信連接的方法也可以使用。
一般,計算設(shè)備130中的數(shù)據(jù)處理器通過在不同時期存儲在計算機(jī)的各種計算機(jī)可讀存儲媒體中的指令來編程。程序和操作系統(tǒng)通常是分布在在例如軟盤或CD-ROM中的。它們被從軟盤或光盤上安裝或裝載至計算機(jī)輔助存儲器。當(dāng)執(zhí)行時,它們至少會被部分地裝入計算機(jī)主要電子存儲器中。這里所描述的發(fā)明包括這些或其它類型的計算機(jī)可讀存儲媒體,如果這些媒體包含以下用于實(shí)現(xiàn)結(jié)合微處理器和其它數(shù)據(jù)處理器所描述步驟的指令或程序。當(dāng)計算機(jī)被根據(jù)下述方法和技術(shù)編程時,本發(fā)明還包括計算機(jī)本身。
示例性軟件體系結(jié)構(gòu)概述圖2是在可以駐留在圖1的系統(tǒng)存儲器134中的用于服務(wù)發(fā)現(xiàn)的示例性軟件體系結(jié)構(gòu)200的結(jié)構(gòu)圖。在這種實(shí)現(xiàn)中,系統(tǒng)存儲器134可包含多個應(yīng)用程序210。在網(wǎng)絡(luò)化環(huán)境中,應(yīng)用程序可以是客戶程序的作用,而在PC環(huán)境中應(yīng)用程序可以是單機(jī)程序。應(yīng)用程序的特別性質(zhì)是無關(guān)緊要的。
應(yīng)用程序210調(diào)用服務(wù)發(fā)現(xiàn)API 214以發(fā)現(xiàn)在計算機(jī)環(huán)境中可用的服務(wù)。服務(wù)發(fā)現(xiàn)API 214提供高級文法來用于表達(dá)發(fā)現(xiàn)查詢。這種文法可以用Opath-一種用于表達(dá)發(fā)現(xiàn)查詢的自然查詢語言來實(shí)現(xiàn)。這種高級文法向軟件開發(fā)者提供一種更概念化的機(jī)制來表達(dá)開發(fā)者所尋找的服務(wù),而不是要求由協(xié)議220-234所要求的顆粒度更高的和協(xié)議特定的表達(dá)。開發(fā)者可以用高級文法來構(gòu)建一個查詢,其可隨后或者被轉(zhuǎn)給一個特定的協(xié)議集,稱之為眾多“具體的范圍”,或者給一個“抽象的范圍”,其為預(yù)定義的或配置的具體范圍的集合,。除了支持服務(wù)發(fā)現(xiàn),系統(tǒng)還支持服務(wù)發(fā)布/刪除和對事件的監(jiān)視。
服務(wù)發(fā)現(xiàn)API 214進(jìn)而調(diào)用在圖中用Protocol 1 220到Protocol 8 234所表示的一個或多個基礎(chǔ)協(xié)議(underlying protocol)?;A(chǔ)協(xié)議的確切數(shù)目是不重要的。協(xié)議220-234中的幾個是目錄支持協(xié)議,比如LDAP、通用描述(Universal Description)、發(fā)現(xiàn)和集成(UDDI)、和域名系統(tǒng)(DNS)服務(wù)器()。其它的協(xié)議可以是特殊的協(xié)議,諸如Bluetooth(藍(lán)牙)、UpnP、和NetBT。協(xié)議220-234中的一個或多個使用通信連接236來與計算環(huán)境中可用的其它組件或服務(wù)進(jìn)行通信。
響應(yīng)于發(fā)現(xiàn)請求,服務(wù)發(fā)現(xiàn)API返回一組表示在本地機(jī)器或網(wǎng)絡(luò)上發(fā)現(xiàn)的匹配服務(wù)的ServiceEntry對象。ServiceEntry對象是一個通用數(shù)據(jù)結(jié)構(gòu),它能夠代表許多由系統(tǒng)支持的協(xié)議所返回的相關(guān)細(xì)節(jié)。每個ServiceEntry對象對應(yīng)于一個單一的服務(wù)實(shí)例。在一種實(shí)現(xiàn)中,ServiceEntry對象提供描述性的和辨識性的屬性,包括(1)服務(wù)名稱;(2)服務(wù)描述;(3)端點(diǎn),其通常包含服務(wù)的網(wǎng)絡(luò)地址;(4)鍵值,其標(biāo)識該服務(wù)實(shí)例;(5)屬性,例如,服務(wù)或設(shè)備特性的名稱-值對可擴(kuò)展表;和(6)供應(yīng)商,例如,一個標(biāo)識提供該服務(wù)的實(shí)體的標(biāo)識符。
發(fā)現(xiàn)持續(xù)服務(wù)212與服務(wù)發(fā)現(xiàn)API 214通信。其中,發(fā)現(xiàn)持續(xù)服務(wù)212登記在特別協(xié)議上的聲明事件。當(dāng)聲明事件被檢測到時,即通知發(fā)現(xiàn)持續(xù)服務(wù),發(fā)現(xiàn)持續(xù)服務(wù)將服務(wù)聲明的相關(guān)信息復(fù)制到數(shù)據(jù)存儲240中的存儲單元。在存儲單元中存儲服務(wù)細(xì)節(jié)使得目前不可用的服務(wù)也能被發(fā)現(xiàn)。例如,即使一個打印機(jī)現(xiàn)在被關(guān)閉電源,打印機(jī)的有關(guān)細(xì)節(jié)可被登記在存儲單元內(nèi),且可被發(fā)現(xiàn)。除此之外,服務(wù)查詢不局限于與服務(wù)通信的協(xié)議。此外,查詢存儲單元的性能可遠(yuǎn)遠(yuǎn)好于處理一個廣泛的網(wǎng)絡(luò)發(fā)現(xiàn)查詢。
示例性操作在示例性實(shí)現(xiàn)中,服務(wù)發(fā)現(xiàn)API 214提供用于服務(wù)發(fā)現(xiàn)、服務(wù)發(fā)布和訂閱服務(wù)事件通知的方法。圖3是闡明服務(wù)發(fā)現(xiàn)的操作300的流程圖。在操作310處,應(yīng)用程序定義了一個范圍,在操作315處應(yīng)用程序定義了一個過濾器,在操作320處應(yīng)用程序發(fā)出搜索請求。服務(wù)發(fā)現(xiàn)API 214收到了搜索請求,在操作325處,服務(wù)發(fā)現(xiàn)API 214解析這個搜索請求。在可任選操作330處,服務(wù)發(fā)現(xiàn)API 214確定這個搜索請求是否可利用存儲在發(fā)現(xiàn)持續(xù)服務(wù)212中的信息解決。在一種實(shí)現(xiàn)中,由發(fā)現(xiàn)持續(xù)服務(wù)212所管理的信息包括一個生存時間指示器,其指定在發(fā)現(xiàn)持續(xù)服務(wù)212中的信息的生存期限。取決于控制和配置,服務(wù)發(fā)現(xiàn)API 214會查詢發(fā)現(xiàn)持續(xù)服務(wù)212來確定這個發(fā)現(xiàn)請求能否利用發(fā)現(xiàn)持續(xù)服務(wù)212在數(shù)據(jù)存儲器240上管理的那些信息去滿足。如果該發(fā)現(xiàn)請求可利用發(fā)現(xiàn)持續(xù)服務(wù)212解決,那么控制傳給操作350,且從發(fā)現(xiàn)持續(xù)服務(wù)212中檢索到的服務(wù)條目對象被返回給應(yīng)用程序。
相反,如果發(fā)現(xiàn)請求是利用發(fā)現(xiàn)持續(xù)服務(wù)212沒有解決或不能夠解決的,那么控制傳給操作335,服務(wù)發(fā)現(xiàn)API 214執(zhí)行為實(shí)現(xiàn)該發(fā)現(xiàn)請求所要求的低級API(一個或多個)調(diào)用。在操作340處,從低級API調(diào)用中返回的服務(wù)信息被格式化成服務(wù)條目對象,在可任選操作345處,服務(wù)條目對象被傳給能夠在數(shù)據(jù)存儲器240上儲服務(wù)條目對象的發(fā)現(xiàn)保存服務(wù)。在可任選操作347處,可以執(zhí)行進(jìn)一步的對服務(wù)條目結(jié)果的處理和過濾,諸如冗余檢測和去除。在操作350處,服務(wù)條目對象被返回給應(yīng)用程序進(jìn)行在操作355處的進(jìn)一步處理。由應(yīng)用程序執(zhí)行的進(jìn)一步處理的精確細(xì)節(jié)是不重要的。
圖4是闡述服務(wù)發(fā)布操作的流程圖。在操作410處,應(yīng)用程序?yàn)榉?wù)發(fā)布定義服務(wù)條目對象。在操作415處,應(yīng)用程序給服務(wù)發(fā)布定義范圍。在操作420處,應(yīng)用程序給服務(wù)發(fā)布分配一個唯一的鍵,在操作425處,應(yīng)用程序給服務(wù)發(fā)布分配一個服務(wù)類型。在操作430處,應(yīng)用程序給服務(wù)發(fā)布定義端點(diǎn),在操作432處,應(yīng)用程序?yàn)榉?wù)發(fā)布定義屬性,在操作435處,應(yīng)用程序生成一個發(fā)布請求。根據(jù)將要發(fā)布的信息的細(xì)節(jié)以及將會使用的低級API,所執(zhí)行的步驟可有所變化。
服務(wù)發(fā)現(xiàn)API 214接收到發(fā)布請求,并在操作440處,解析該發(fā)布請求。在操作450處,服務(wù)發(fā)現(xiàn)API 214執(zhí)行低級API調(diào)用來執(zhí)行服務(wù)發(fā)布請求。在可任選操作455處,服務(wù)發(fā)布被存儲在發(fā)現(xiàn)持續(xù)服務(wù)212中。
服務(wù)發(fā)現(xiàn)API 214的服務(wù)發(fā)布工具也可用來刪除一個已發(fā)布的服務(wù)。圖5是闡述服務(wù)刪除操作的流程圖。在操作510處,應(yīng)用程序定義服務(wù)發(fā)布的服務(wù)條目對象。在操作515處,應(yīng)用程序給服務(wù)指定一個唯一的鍵。在操作520處,應(yīng)用程序給服務(wù)刪除定義范圍。在操作530處,應(yīng)用程序生成一個服務(wù)刪除請求。
服務(wù)發(fā)現(xiàn)API 214接收刪除請求,并且在操作540處,解析該刪除請求。在操作550處,服務(wù)發(fā)現(xiàn)API 214執(zhí)行低級API調(diào)用來執(zhí)行服務(wù)刪除請求。在可任選操作555處,服務(wù)發(fā)布被從發(fā)現(xiàn)持續(xù)服務(wù)212中刪除。
服務(wù)發(fā)現(xiàn)API 214也可被用來允許向應(yīng)用程序通知服務(wù)事件,如一項(xiàng)新的服務(wù)或特定類型的設(shè)備的到來和離去。圖6是闡述訂閱服務(wù)事件操作600的流程圖。在操作610處,應(yīng)用程序定義一個向監(jiān)視器指定特定低級協(xié)議的范圍。在操作615處,應(yīng)用程序定義一個指定事件類型的過濾器。在操作620處,應(yīng)用程序定義一個調(diào)回函數(shù),它將在匹配事件發(fā)生時接收ServiceEntry細(xì)節(jié)。在操作625處,應(yīng)用程序生成一個訂閱請求,其被傳給服務(wù)發(fā)現(xiàn)API 214。
服務(wù)發(fā)現(xiàn)請求API 214接收該訂閱請求,并且在操作630處,解析該訂閱請求,在操作635處,服務(wù)發(fā)現(xiàn)請求執(zhí)行實(shí)現(xiàn)訂閱服務(wù)所要求的低級協(xié)議調(diào)用。當(dāng)服務(wù)事件發(fā)生時,低級協(xié)議會向服務(wù)發(fā)現(xiàn)API提供事件的通知。在操作640處,事件的通知被格式化成服務(wù)條目對象。在可任選操作645處,服務(wù)條目對象可被存儲在發(fā)現(xiàn)持續(xù)服務(wù)212中,在操作650中,該服務(wù)條目對象利用先前指定的調(diào)回函數(shù)返回給應(yīng)用程序。在操作655處,應(yīng)用程序?qū)Ψ?wù)條目對象進(jìn)行進(jìn)一步的處理。應(yīng)用程序的進(jìn)一步處理的精確細(xì)節(jié)是不重要的。
系統(tǒng)的組件和操作在以下做更詳細(xì)的說明。
API類過濾器過濾器是借以評估服務(wù)描述的一組規(guī)則,得到的結(jié)果是真(即服務(wù)描述與過濾器相匹配)或假(即服務(wù)描述與過濾器不匹配)。一個過濾器可以表達(dá)成一個指定具體屬性的簡單過濾器,或表達(dá)成一個利用更有表達(dá)力的文法的復(fù)雜過濾器。不論是表達(dá)為簡單過濾器還是復(fù)雜過濾器,查詢能夠通過不止一個的協(xié)議遵從所用協(xié)議的能力來指定和執(zhí)行而不需修改。服務(wù)發(fā)現(xiàn)請求API 214將高層查詢重新表達(dá)成用于基礎(chǔ)低級協(xié)議的正確格式。例如,服務(wù)發(fā)現(xiàn)請求API214可以接收一個用于特定服務(wù)類型的查詢,并且利用為現(xiàn)用目錄服務(wù)的LDAP和為UDDI Web服務(wù)注冊服務(wù)的UDDI協(xié)議來表達(dá)和評估該項(xiàng)查詢。不要求應(yīng)用程序開發(fā)者直接處理個別的協(xié)議。
在一示例性的實(shí)現(xiàn)中,服務(wù)發(fā)現(xiàn)請求API 214要求發(fā)現(xiàn)模塊支持簡單過濾器,提供給出標(biāo)準(zhǔn)的精確的匹配語義、和含有用OPath文法表達(dá)的查詢的復(fù)雜過濾器。將會理解,各自也會支持附加的“天生的”過濾器類型。不同的發(fā)現(xiàn)模塊可能擁有協(xié)議專用的天生的過濾類型,如,UPnP可使用XPath過濾器,現(xiàn)用目錄可以天生地使用LDAP過濾器,UDDI可以天生的使用UDDI過濾器。
模塊上的OPath過濾器功能的底層進(jìn)一步將應(yīng)用程序與基礎(chǔ)發(fā)現(xiàn)協(xié)議隔絕。過濾器類用模塊間共享的方式展露了其他的解析和解釋過濾器的方法。
一個簡單過濾器通過指定服務(wù)類型、服務(wù)接口、和/或?qū)傩远?guī)定查詢的表達(dá)。這些設(shè)置的任意組合可在一個搜索查詢中提供,只有在每個標(biāo)準(zhǔn)都精確地匹配時,服務(wù)才會被包括在所得服務(wù)條目集之中。
服務(wù)類型可以被實(shí)現(xiàn)為一個指定必須與服務(wù)實(shí)例相匹配的類型的串。一個常用的服務(wù)類型集在服務(wù)發(fā)現(xiàn)請求API 214中被預(yù)定義。當(dāng)有在協(xié)議和存儲器中的鍵實(shí)體被標(biāo)識到時,這個集合可以被擴(kuò)展。例如,對于現(xiàn)用目錄中的打印機(jī),其可指定為filter.ServiceType=CommonServiceTypes.Printer。
服務(wù)接口可被實(shí)現(xiàn)為一個指定用于服務(wù)必須匹配的接口的標(biāo)識符的串集合。作為一個例子,對于在UDDI中的web服務(wù),下述tModel標(biāo)識符可以被指定filter.ServiceInterfaces.Add(″uuidac104dcc-d623-452f-88a7-f8acd94d9b2b″);filter.ServiceInterfaces.Add(″uuid4d2aclca-e234-142f-e217-4d9b2f8acd9b″)
屬性可在指定服務(wù)必須匹配的服務(wù)特性的屬性字典中實(shí)現(xiàn)。作為一個例子,對于在現(xiàn)用目錄中的打印機(jī),下述屬性可被指定filter.Properties.Add(″printcolor″,″TRUE″);filter.Properties.Add(″pagesperminute″,″50″)通過設(shè)定Query串屬性,一個復(fù)雜過濾器提供一種利用例如OPath文法表達(dá)顯著復(fù)雜的查詢語義的機(jī)制。作為一個例子,對于UDDI中的web服務(wù),Query串會指定所需的名稱和所需的支持的接口filter.Query=″WebService[name=’Fabrikam’andServiceInterface=’uuidac104dcc-d623-452f-88a7-f8acd94d9b2b’]″作為一個在沒有A4紙可用時查找現(xiàn)用目錄中有能力每分鐘打印25頁紙以上的打印機(jī)的更有表達(dá)力的例子filter.Query=″Printer[printPagesPerMinuter>20+5 and not(printmediaReady=’A4’)]″。
由于基礎(chǔ)協(xié)議和存儲器的能力很不相同,從基本的NetBT到復(fù)雜的現(xiàn)用目錄查詢語義,使用具有更強(qiáng)表達(dá)力的OPath結(jié)構(gòu)的能力將取決于所選擇的范圍(協(xié)議)。
范圍范圍標(biāo)識一個可以被搜索的查詢域,通常是粗略的且由網(wǎng)絡(luò)位置或管理權(quán)限所及給出。發(fā)現(xiàn)查詢被發(fā)往一個或多個范圍,且查詢結(jié)果包括這些范圍內(nèi)的服務(wù)的子集,即,查詢結(jié)果是所有在此范圍內(nèi)匹配給定過濾器的服務(wù)的子集。示例性的范圍包括工作組、本地機(jī)器和域。
服務(wù)發(fā)現(xiàn)API 214提供具體的范圍和抽象的范圍。具體的范圍以三個部分來指定查詢域一個標(biāo)識具體協(xié)議的協(xié)議(Protocol)標(biāo)識符,例如映射到單個發(fā)現(xiàn)模塊,諸如ConcreteScope.NetBtProtocol.或ConcreteScope.ADProtocol;一個地址(Address)(可任選)標(biāo)識符,其指定一個在此范圍上向其指引操作的服務(wù)器,諸如用于企業(yè)內(nèi)部互聯(lián)網(wǎng)UDDI服務(wù)器的″http//intrauddi/uddi/inquire.asmx″;和一個路徑標(biāo)識符(可任選),其標(biāo)識模塊名空間的分割,諸如一個LDAP搜索基,其可被設(shè)置成″CN=j(luò)oedev,CN=Computer,DC=corp,DC=fabrikam,DC=com″,或者一個UPnPv2范圍名。
服務(wù)發(fā)現(xiàn)請求API 214將具體范圍傳給模塊。服務(wù)發(fā)現(xiàn)請求API 214不排除模塊執(zhí)行其它在具體范圍上的間接操作,比如以有線方式傳輸具體范圍給另一臺機(jī)器和將具體范圍傳給該另一臺機(jī)器上的相應(yīng)的API。
抽象范圍是一個或多個具體范圍的別稱,也可以是其它抽象范圍的別稱。抽象范圍提供一種在邏輯預(yù)定義的或配置了的具體范圍集上定標(biāo)查詢的機(jī)制。這提供了允許開發(fā)者來定標(biāo)例如,“enterprise”范圍的附加抽象,不需要清楚的協(xié)議、地址和特定目錄服務(wù)器的連接細(xì)節(jié)。
將抽象范圍映射到具體范圍是全機(jī)器范圍的,且是可配置的。例如,抽象范圍AbstractScope.Enterprise可以映射以包括表1中兩個具體范圍。
表1圖7是闡明具體范圍和抽象范圍之間示例關(guān)系的結(jié)構(gòu)圖。具體范圍730-750給出在其上評估查詢的域的規(guī)格。具體范圍730-750包括協(xié)議標(biāo)識細(xì)節(jié),及所要求的要用的存儲器或服務(wù)器的具體情況,具有進(jìn)一步在該存儲器或服務(wù)器內(nèi)進(jìn)行范圍確定的潛能。在服務(wù)發(fā)現(xiàn)API 214中,這些分別在協(xié)議、地址和路徑屬性中指定。
抽象范圍710-725在具體范圍之上提供更高層次的分級抽象。抽象范圍被設(shè)置成包括組成它們的具體范圍或抽象范圍。這一范圍映射系統(tǒng)管理員可用的,他們能夠精確地配置如何解析例如AbstractScope.EnterpriseScope。
具體范圍和抽象范圍都能夠被服務(wù)發(fā)現(xiàn)API 214的用戶所使用。在提供了抽象范圍的場合,服務(wù)發(fā)現(xiàn)API 214會將其沿等級向下分解為一定數(shù)目的具體范圍。
抽象范圍允許應(yīng)用程序210的程序員能在較高層次上工作,并且在代碼中可以包含諸如“AbstractScope.Enterprise”的范圍標(biāo)識術(shù)語。這樣,例如,程序員就不必將特定UDDI服務(wù)器的具體情況硬代碼寫入他的代碼中。這種抽象提供了更大是代碼重用性和可移殖性。同一代碼段可以不經(jīng)修改和重新編譯地用于各種各樣的企業(yè)環(huán)境中。只有抽象范圍的配置會在環(huán)境改變時改變。
在抽象范圍到具體范圍的映射中可以有多重等級。在圖7中,AbstractScope.LocalMachine不能映射進(jìn)AbstractScope.All,盡管它的所有組件都包括了。
在一個示例性實(shí)現(xiàn)中,范圍映射配置能由系統(tǒng)管理員通過組政策進(jìn)行操控以控制企業(yè)中服務(wù)發(fā)現(xiàn)API 214的使用。作為例子,一個管理員能定義一個或多個可用于企業(yè)計算環(huán)境中或部分的企業(yè)計算環(huán)境中的抽象范圍。這使得系統(tǒng)管理員能夠調(diào)控應(yīng)用程序的發(fā)現(xiàn)和對資源的使用。
ServiceEntry服務(wù)條目結(jié)果應(yīng)用程序員能夠選擇合適的范圍和過濾器表達(dá),這些可以設(shè)置成服務(wù)發(fā)現(xiàn)者對象的屬性。于是應(yīng)用程序就可用FindOne或FindAll方法來執(zhí)行發(fā)現(xiàn)請求。FindAll方法返回所有匹配所提供的標(biāo)準(zhǔn)的服務(wù),而FindOne方法只返回單個匹配的服務(wù)。這些方法可以應(yīng)用同步或異步的調(diào)用模式來執(zhí)行。
假定在指定的范圍內(nèi)有匹配所提供的過濾器的服務(wù),F(xiàn)indOne或FindAll方法會返回一個或一組服務(wù)條目對象。服務(wù)條目對象是對各種基礎(chǔ)協(xié)議可提供的服務(wù)的表示法的抽象。每個服務(wù)條目對象對應(yīng)于一個服務(wù)的單個實(shí)例,照此提供包括在表2中所述那些在內(nèi)的描述性和標(biāo)識性的屬性。
表2提供了一公共空白(public void)Save()函數(shù)來創(chuàng)建或更新在范圍集之中所指定的范圍內(nèi)的服務(wù)條目表示。
公共空白Delete()方法將ServiceEntry對象從在范圍屬性中所指定的范圍內(nèi)去除。如果服務(wù)尚未發(fā)布,則造成異常。
偽代碼圖8-19所示是用于各種服務(wù)發(fā)現(xiàn)、發(fā)布和訂閱函數(shù)的偽代碼。
圖8是闡述利用現(xiàn)用目錄協(xié)議上的SimpleFilter對象如何使用C#編程語言來查找每分鐘打印50頁的彩色打印機(jī)的偽代碼。
圖9是闡述利用UDDI協(xié)議上的RichFilter對象如何使用C#編程語言來查找實(shí)現(xiàn)uddi-orginquiry_v2接口且名稱為Fabrikam的web服務(wù)的偽代碼。
圖10是闡述利用UDDI協(xié)議上和SimpleFilter對象使用C#編程語言來查找支持特定的tModel接口的服務(wù)的偽代碼。
圖11是闡述利用UDDI協(xié)議上和SimpleFilter對象使用Visual Basic.NET來查找支持特定的tModel接口的服務(wù)的偽代碼。
圖12是闡述利用現(xiàn)用目錄下的RichFilter使用C#編程語言來查找名字如Office Prihter的打印機(jī)的偽代碼。
圖13是闡述利用現(xiàn)用目錄下的RichFilter使用Visual Basic.NET來查找名字如Office Printer的打印機(jī)的偽代碼。
圖14是闡述利用SSDP協(xié)議使用C#編程語言來發(fā)布由特定的唯一的標(biāo)識符所標(biāo)識的特定類型的服務(wù)的偽代碼。
圖15是闡述利用SSDP協(xié)議使用Visual Basic.NET來發(fā)布由特定的唯一的標(biāo)識符所標(biāo)識的特定類型的服務(wù)的偽代碼。
圖16是闡述使用C#編程語言來刪除一個來自SSDP協(xié)議的服務(wù)的偽代碼。
圖17是闡述使用Visual Basic.NET來刪除一個來自SSDP協(xié)議的服務(wù)的偽代碼。
圖18是闡述利用SimpleFilter使用C#編程語言來登記使用SSDP協(xié)議的特定類型事件的偽代碼。已登記的調(diào)回函數(shù)會為每一個匹配過濾器的事件而調(diào)用,且相應(yīng)的ServiceEntry對象會被提供給該處理者(handler)。
圖19是闡述利用SimpleFilter使用Visual Basic.NET來登記使用SSDP協(xié)議的特定類型事件的偽代碼。
示例性的OPath語法標(biāo)3給各種發(fā)現(xiàn)函數(shù)提供了示例性的OPath語法。
表3表4包含可以在UDDI協(xié)議上使用的OPath語法的示例。
表4表5包含了可以在NetBT協(xié)議上使用的OPath語法的示例。
表5發(fā)現(xiàn)持續(xù)服務(wù)如上文概要描述,發(fā)現(xiàn)持續(xù)服務(wù)212為服務(wù)信息管理一個服務(wù)信息的持久數(shù)據(jù)存儲器。周期性地,或當(dāng)某些預(yù)定事件發(fā)生時,比如啟動,發(fā)現(xiàn)持續(xù)服務(wù)會登記以接收特別的設(shè)備/服務(wù)通知。作為一個例子,當(dāng)一個新的UPnP設(shè)備被引入時,它會生成一個會由UPnP協(xié)議模塊處理的設(shè)備通知。該UPnP協(xié)議模塊會將此事件(設(shè)備及其服務(wù))通過服務(wù)發(fā)現(xiàn)API 214傳給發(fā)現(xiàn)持續(xù)服務(wù)。
利用其持久數(shù)據(jù)存儲器,發(fā)現(xiàn)持續(xù)服務(wù)隨后確定這是一個新的設(shè)備/服務(wù)還是一個回歸的設(shè)備/服務(wù)。如果是新的設(shè)備/服務(wù),那么此設(shè)備及其服務(wù)的細(xì)節(jié)會被登記在持久數(shù)據(jù)存儲器中。當(dāng)另一個服務(wù)發(fā)現(xiàn)API 214的消費(fèi)者試圖查找服務(wù)時,服務(wù)發(fā)現(xiàn)API 214將能夠返回特別的設(shè)備/服務(wù)的服務(wù),即使該設(shè)備當(dāng)前不可用。對于上述例子,在設(shè)備/服務(wù)當(dāng)前可用的情況中,根據(jù)所指定的范圍,UPnP協(xié)議模塊和持久數(shù)據(jù)存儲器模塊都會返回該設(shè)備的結(jié)果。除了UpnP之外,這種功能性也適用于其他特別的發(fā)現(xiàn)機(jī)制。
如此,發(fā)現(xiàn)持續(xù)服務(wù)212、服務(wù)發(fā)現(xiàn)API 214和本地數(shù)據(jù)庫存儲器240給用于設(shè)備和服務(wù)發(fā)現(xiàn)的各種低級協(xié)議提供了一個抽象層。這個附加的抽象層建立了一個應(yīng)用程序員在開發(fā)應(yīng)用程序時可使用的通用的、改進(jìn)了的搜索語義。
此外,發(fā)現(xiàn)抽象服務(wù)212、服務(wù)發(fā)現(xiàn)API 214和本地數(shù)據(jù)庫存儲器240給本地機(jī)器、家庭網(wǎng)絡(luò)、企業(yè)網(wǎng)絡(luò)和因特網(wǎng)上的服務(wù)和設(shè)備提供了一個統(tǒng)一的發(fā)現(xiàn)模型。如此,通過編寫一個統(tǒng)一的API,應(yīng)用程序開發(fā)員能夠在范圍廣泛的位置中發(fā)現(xiàn)服務(wù)。
結(jié)論盡管所描述的內(nèi)容是用一種針對結(jié)構(gòu)特征和/或方法性操作的語言描述的,但應(yīng)該認(rèn)識到,在所附權(quán)利要求中定義的主題內(nèi)容不必局限于所描述的具體特征和操作。相反,這些具體特征和方法是作為實(shí)現(xiàn)權(quán)利要求中的本發(fā)明優(yōu)選形式來揭示的。
權(quán)利要求
1.一種用于發(fā)現(xiàn)在計算環(huán)境中可用的服務(wù)的方法,包括在一應(yīng)用程序中定義一發(fā)現(xiàn)范圍;定義一發(fā)現(xiàn)過濾器;和向第一應(yīng)用程序接口發(fā)出一搜索請求;在第一應(yīng)用程序接口中解析所述搜索請求;檢索對應(yīng)于所請求的發(fā)現(xiàn)范圍和發(fā)現(xiàn)過濾器的服務(wù)信息;和將所述服務(wù)信息返還給所述應(yīng)用程序。
2.如權(quán)利要求1所述的方法,其中檢索對應(yīng)于所請求的發(fā)現(xiàn)范圍和發(fā)現(xiàn)過濾器的服務(wù)信息包括執(zhí)行針對至少一個低級API或協(xié)議的調(diào)用。
3.如權(quán)利要求1所述的方法,其中檢索對應(yīng)于所請求的發(fā)現(xiàn)范圍和發(fā)現(xiàn)過濾器的服務(wù)信息包括查詢一個持續(xù)數(shù)據(jù)存儲服務(wù)。
4.如權(quán)利要求1所述的方法,還包括將所檢索的服務(wù)信息格式化成一個一致的服務(wù)條目對象數(shù)據(jù)格式。
5.如權(quán)利要求2所述的方法,還包括在持續(xù)數(shù)據(jù)存儲中保存從所述至少一個低級API或協(xié)議接收的信息。
6.一種用于發(fā)布在計算環(huán)境中可用的服務(wù)的方法,包括在一應(yīng)用程序中定義一服務(wù)條目對象;定義一發(fā)布范圍;給所述服務(wù)分配一個唯一的鍵;和分配一服務(wù)類型;定義服務(wù)的屬性;定義服務(wù)的端點(diǎn);和向第一應(yīng)用程序接口發(fā)出一發(fā)布請求;在第一應(yīng)用程序接口中解析所述搜索請求;和執(zhí)行至少一個低級API調(diào)用以發(fā)布所述服務(wù)。
7.如權(quán)利要求6所述的方法,還包括將所述服務(wù)信息存儲在一個持續(xù)數(shù)據(jù)存儲器中。
8.一種用于刪除在計算環(huán)境中已發(fā)布的服務(wù)的方法,包括在一應(yīng)用程序中定義一服務(wù)條目對象;指定一對應(yīng)于所述已發(fā)布的服務(wù)的鍵;定義一刪除范圍;和對第一應(yīng)用程序接口發(fā)出一刪除請求;在第一應(yīng)用程序接口中解析所述搜索請求;和執(zhí)行至少一個低級API調(diào)用來刪除所述服務(wù)。
9.如權(quán)利要求8所述的方法,還包括從一個持續(xù)數(shù)據(jù)存儲器中刪除所述服務(wù)信息。
10.如權(quán)利要求8所述的方法,還包括在一個持續(xù)數(shù)據(jù)存儲器中登記所刪除的服務(wù)信息。
11.一種訂閱在計算環(huán)境中的服務(wù)事件的方法,包括在一應(yīng)用程序中定義一范圍;定義一過濾器;定義一調(diào)回函數(shù);和對第一應(yīng)用程序接口發(fā)出一訂閱請求;在第一應(yīng)用程序接口中解析所述搜索請求;和執(zhí)行至少一個低級API調(diào)用來訂閱服務(wù)事件;和將信息從服務(wù)事件返回給所述應(yīng)用程序。
12.如權(quán)利要求11所述的方法,還包括將所檢索的服務(wù)信息格式化成服務(wù)條目對象數(shù)據(jù)格式。
13.如權(quán)利要求12所述的方法,還包括在持續(xù)數(shù)據(jù)存儲器中保存從所述至少一個低級API接收的信息。
14.一種管理有關(guān)在計算環(huán)境中可用的服務(wù)的信息的系統(tǒng),包括第一應(yīng)用程序接口,用于接受來自應(yīng)用程序的服務(wù)查詢,其中所述第一應(yīng)用程序接口接收第一服務(wù)查詢協(xié)議中的服務(wù)查詢、處理所述服務(wù)查詢、且對第二協(xié)議至少發(fā)起一個相應(yīng)的服務(wù)查詢;發(fā)現(xiàn)持續(xù)服務(wù),通信地連接至所述第一應(yīng)用程序接口,其中所述發(fā)現(xiàn)持續(xù)服務(wù)從所述第一應(yīng)用程序接口處接收服務(wù)信息并將所述服務(wù)信息存儲在數(shù)據(jù)存儲器中。
15.如權(quán)利要求14所述的系統(tǒng),其中所述第一應(yīng)用程序接口提供接口給至少一個基于目錄的協(xié)議和至少一個特別協(xié)議。
16.如權(quán)利要求14所述的系統(tǒng),其中所述第一應(yīng)用程序接口發(fā)現(xiàn)在本地計算設(shè)備上可用的服務(wù)。
17.如權(quán)利要求14所述的系統(tǒng),其中所述第一應(yīng)用程序接口發(fā)現(xiàn)在遠(yuǎn)程計算設(shè)備上可用的服務(wù)。
18.如權(quán)利要求14所述的系統(tǒng),其中所述第一應(yīng)用程序接口實(shí)現(xiàn)一范圍映射,且其中所述范圍映射可由系統(tǒng)管理員配置。
全文摘要
本文內(nèi)容包括服務(wù)的發(fā)現(xiàn)和發(fā)布的系統(tǒng)和方法。應(yīng)用程序描述了服務(wù)發(fā)現(xiàn)、發(fā)布和訂閱(subscription)服務(wù)發(fā)現(xiàn)應(yīng)用編程接口的要求。服務(wù)發(fā)現(xiàn)應(yīng)用程序接口援用一個或多個低等級協(xié)議來滿足該發(fā)現(xiàn)、發(fā)布和/或訂閱的要求。從低級協(xié)議中得到的服務(wù)信息被編組成一個統(tǒng)一的數(shù)據(jù)模型,并返還給用戶應(yīng)用程序。此外,服務(wù)信息可被存儲在一個由與服務(wù)發(fā)現(xiàn)API通訊相連的發(fā)現(xiàn)持續(xù)服務(wù)所管理的一個長期數(shù)據(jù)存儲器中。
文檔編號G06F17/00GK1705947SQ200480001324
公開日2005年12月7日 申請日期2004年7月21日 優(yōu)先權(quán)日2003年10月24日
發(fā)明者A·D·米利根, C·R·里夫斯, J·B·帕爾漢姆, G·K·R·卡其瓦亞, L·A·布爾克, A·米爾斯, R·L·哈薩 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1