專利名稱:從公布/訂閱服務(wù)接收電子消息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于公布(publish)/訂閱(subscribe)的系統(tǒng)和方法,更具體地說,涉及分布式計算機用戶通過公布/訂閱(Pub/Sub)信道安全地訂閱和公布的系統(tǒng)和方法。
背景技術(shù):
圖1描繪構(gòu)成呈交和維護應(yīng)用的典型計算機的部件。計算機100由基礎(chǔ)計算機101構(gòu)成,它包含處理器106、類似于磁盤107的存儲介質(zhì)和高速易失性主存儲器105等。操作系統(tǒng)和應(yīng)用程序111駐留在存儲介質(zhì)107上并在處理器106進行的計算需要時按頁面調(diào)入主存儲器105中?;A(chǔ)計算機可以包括可選的外圍設(shè)備,包括視頻顯示器102、打印機或掃描儀110、鍵盤104、定位設(shè)備(鼠標器)103以及到網(wǎng)絡(luò)109的連接108。在客戶機環(huán)境中,用戶將在應(yīng)用程序(應(yīng)用1)112控制下,使用鍵盤104和鼠標器103并結(jié)合顯示器102上的信息顯示,與一個圖形用戶界面(GUI)進行交互。然后,客戶機應(yīng)用程序112將利用網(wǎng)絡(luò)109與遠程用戶進行交互。
圖2中顯示一個因特網(wǎng)系統(tǒng)示例。在客戶機1201的用戶使用他的系統(tǒng)上的應(yīng)用。在客戶機1201處的這一用戶(用戶1210)能通過客戶服務(wù)器計算機206與客戶機2-4 202-204進行交互。應(yīng)用112可由每個客戶機201-205和/或客戶服務(wù)器206提供,或由某個遠程服務(wù)器208利用網(wǎng)絡(luò)207提供。在客戶機1201處的用戶能利用因特網(wǎng)207與客戶機5205處的遠程用戶(用戶5211)進行交互。
近來,對等(P2P)互連已成為令人感興趣的替代做法。圖3顯示一個P2P網(wǎng)絡(luò)示例300,這里對等組元(peer)1301能直接與其他對等組元直接通信。每個對等組元基本上包括客戶機和服務(wù)器功能。這樣,對等組元1301在向?qū)Φ冉M元2302發(fā)送消息時起客戶機的作用。對等組元2完成某種功能作為接收該消息的結(jié)果并可能向?qū)Φ冉M元1返回一個消息。這樣,對等組元2302起對等組元1301的服務(wù)器的作用。P2P網(wǎng)格(grids)提供連網(wǎng)的計算機,它們協(xié)作完成分布式計算。
連網(wǎng)的客戶機包含用于通信的應(yīng)用。電子郵件應(yīng)用提供向郵件服務(wù)器發(fā)送消息的功能,然后該郵件服務(wù)器使接收者知道這等待的郵件。然后,接收者可選擇打開該消息并在他的客戶機上觀看它。電子郵件消息能被發(fā)送給單一接收者或者能包含一個若干接收者的清單(一對多)。一對多電子郵件事務(wù)對廣告商來說是受歡迎的,而且使用一對多電子郵件已被授予“發(fā)關(guān)垃圾郵件(SPAM-ing)”的稱號。近來,發(fā)送即時消息(IM,InstantMessage)已得到普及,它采取的形式是直接向另一計算機發(fā)送文本消息。第一用戶編寫一個IM并選擇一個第二個用戶作為目標。于是一個消息被直接發(fā)送給這第二用戶并作為消息或消息的通知出現(xiàn)在他的顯示器上。
現(xiàn)在參考圖4,它描繪了先有技術(shù)的pub/sub系統(tǒng)的邏輯圖。一個pub/sub服務(wù)404接收源自內(nèi)容服務(wù)401-403的消息并把它們發(fā)送給訂閱客戶405 406。一個被公布的消息示例包括一個主題串,一組屬性名-值對,以及消息體。訂閱者識別主題串模式和屬性測試,并根據(jù)一個標準(例如JAVA消息服務(wù)(JMS))接收匹配的消息。
pub/sub系統(tǒng)由內(nèi)容提供者應(yīng)用(服務(wù))401-403、訂閱者(客戶機)405-406以及pub-sub(公布-訂閱)服務(wù)404構(gòu)成。這些應(yīng)用可以實現(xiàn)這些角色中的一個或多個。內(nèi)容提供者401-403產(chǎn)生通過pub/sub系統(tǒng)400分發(fā)的內(nèi)容。內(nèi)容提供者401-403向pub/sub服務(wù)404的一個或多個實例(instance)發(fā)送結(jié)構(gòu)化的內(nèi)容。訂閱者405-406向pub/sub服務(wù)404的一個實例發(fā)送訂閱請求407,并以特定的訂閱請求被接受為條件,訂閱者405-406從pub/sub服務(wù)接收內(nèi)容408。所收到的實際內(nèi)容將決定于訂閱和消息選擇過程。
pub/sub服務(wù)404起訂閱管理器410和內(nèi)容分發(fā)代理411二者的作用。實現(xiàn)pub/sub服務(wù)角色404的應(yīng)用接收來自訂閱者405的訂閱請求407,并以任何可適用的認證或訪問控制規(guī)則為條件,接受或拒絕訂閱請求,并把內(nèi)容408分發(fā)給有效訂閱者405。
由pub/sub服務(wù)404發(fā)送給每個訂閱者405-406的實際內(nèi)容將決定于訂閱過程410并要通過消息選擇過程411。
實現(xiàn)pub/sub系統(tǒng)某個方面的應(yīng)用可以在不同環(huán)境中起不同的作用。例如,實現(xiàn)pub/sub服務(wù)角色404的應(yīng)用本身可以作為訂閱者,向該pub/sub服務(wù)的另一實例訂閱內(nèi)容和從那里接收內(nèi)容。類似地,擔(dān)任訂閱者角色的應(yīng)用可以作為內(nèi)容生產(chǎn)者,如果該應(yīng)用的最終用戶希望向該服務(wù)公布消息的話。
pub/sub系統(tǒng)提供實現(xiàn)應(yīng)用角色的各應(yīng)用之間的通信。在pub/sub系統(tǒng)中有兩種主要的通信從內(nèi)容提供者向pub/sub服務(wù)發(fā)送消息;以及pub/sub服務(wù)向訂閱者408、412發(fā)送消息。
內(nèi)容提供者401-403可以由任何內(nèi)容源產(chǎn)生消息,而訂閱者可以以他們選擇的任何方式處置這些消息。例如,內(nèi)容提供者可以只是原始內(nèi)容源(例如電子郵件或網(wǎng)頁)到pub/sub服務(wù)之間的一個網(wǎng)關(guān)。類似地,訂閱者405、406可以作為pub-sub服務(wù)和一個外部服務(wù)(如NNTP或電子郵件)之間的網(wǎng)關(guān)。實現(xiàn)該pub/sub系統(tǒng)中定義的一個特定角色(作用)的應(yīng)用可以在不同的時候?qū)崿F(xiàn)不同的角色。
例如,實現(xiàn)pub/sub服務(wù)角色404的一個應(yīng)用本身可以作為訂閱者。通過該pub/sub服務(wù)的另一實例訂閱內(nèi)容并從那個服務(wù)接收消息。
發(fā)明內(nèi)容
本發(fā)明(Shotgun,獵槍)講授了一個通過多個信道(channel)公布電子信息的系統(tǒng)。用戶訂閱一個信息“信道”類似于選擇一個電視頻道。于是,由那個信道廣播的信息消息被指向訂閱者應(yīng)用,該訂閱者應(yīng)用包含過濾機制來有選擇地允許消息傳送到Shotgun客戶機用戶。該系統(tǒng)維護一個應(yīng)用的數(shù)據(jù)庫目錄,可通過管理用的SOAP服務(wù)進行訪問。該目錄包含安全性信息、信道訪問控制、所有者標識、幫助文本等。
公布/訂閱系統(tǒng)包含信息生產(chǎn)者和信息消費者。消息生產(chǎn)者向該系統(tǒng)公布事件,而信息消費者訂閱該系統(tǒng)內(nèi)特定類別的事件。該“系統(tǒng)”保證向所有感興趣的訂閱者及時地分發(fā)公布的事件。除了支持多對多通信外,由公布/訂閱系統(tǒng)滿足的主要要求是消息的生產(chǎn)者和消費者彼此是匿名的,因此,公布者和訂閱者的數(shù)量可以動態(tài)地改變,而且單個公布者和訂閱者可以演變而不干擾整個系統(tǒng)。
最早的公布/訂閱系統(tǒng)是基于主題的。在這些系統(tǒng)中,每個消息屬于固定的一組主題(也稱作組、信道或話題)之一。公布者被要求以主題對每個消息加標簽;消息者訂閱一個特定主題內(nèi)的全部消息。例如,用于股票交易的一個基于主題的公布/訂閱系統(tǒng)可以為每個股票發(fā)行(issue)定義一個組;公布者可以把信息放到適當(dāng)?shù)慕M,而訂閱者可以訂閱關(guān)于任何股票發(fā)行的信息。
本發(fā)明的一些實施例概述在一個實施例中,描述了通過pub/sub服務(wù)公布的電子消息的接收方法,其中該pub/sub服務(wù)與一個或多個客戶機系統(tǒng)進行網(wǎng)絡(luò)通信,該方法包含如下步驟在客戶機應(yīng)用處接收一個消息(可選地包含例如XML字段、HTML、即時消息、電子郵件、JPG、JIF、MPEG或SOAP協(xié)議),該消息由pub/sub服務(wù)公布,其中含有第一標識信息;根據(jù)預(yù)先定義的判據(jù)(criteria)檢驗該消息的內(nèi)容(包含關(guān)鍵字查詢、布爾查詢等),這里預(yù)定義的判據(jù)是用GUI界面創(chuàng)建的;以及當(dāng)?shù)谝粯俗R信息滿足該預(yù)定義判據(jù)時,由該客戶機應(yīng)用接受該消息。
在另一版本中,該接受步驟進一步包含下列步驟的任何一個顯示該消息,把該消息傳送給另一程序模塊或在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)該消息。
在另一實施例中,在一個pub/sub消息公布環(huán)境中的一個組內(nèi)公布電子消息,該組包含被授權(quán)參加與pub/sub服務(wù)進行網(wǎng)絡(luò)通信的那些客戶機,該方法包含如下步驟認證(authenticate)第一客戶機標識;接收一個消息(可選地包含例如XML字段、HTML、即時消息、電子郵件、JPG、JIF、MPEG或SOAP協(xié)議),該消息來自預(yù)定了向第一組的公布消息的認證過的第一客戶機;證實(verify)該第一客戶機標識是為第一組而被授權(quán)的;利用pub/sub服務(wù)向該組的客戶機公布消息。
在該實施例的另一版本中,該消息包含一個消息信封,該信封包含一個消息體(body)和一個消息頭段(header)。
在該實施例的另一版本中,第一服務(wù)向第一應(yīng)用、自動即時消息地址(Bot)、小服務(wù)(servlet)或移動設(shè)備中的任何一個公布。該公布可以是一個要在被授權(quán)的訂閱者客戶機上運行的應(yīng)用,而在使用LDAP服務(wù)的一種情況中,客戶機標識可選地與授權(quán)數(shù)據(jù)庫(或表)中的客戶機組相關(guān)聯(lián)。
在另一實施例中,在一個系統(tǒng)中提供安全的公布與訂閱,該系統(tǒng)有一個具有一個或多個信道的pub/sub服務(wù)器,該方法包含如下步驟向一個組信道提供第一訂閱訪問能力,該第一訂閱訪問要求用戶授權(quán);向一個公共信道提供第二訂閱訪問能力,其中的第二訂閱訪問被普遍地(universally)授權(quán)。
在另一實施例中,提供了一種方法用于調(diào)用系統(tǒng)中的第一客戶機應(yīng)用,其中該系統(tǒng)包括pub/sub服務(wù)器和第二客戶機應(yīng)用,該方法包含如下步驟向pub/sub服務(wù)器的一個信道訂閱;在第二客戶機應(yīng)用處從pub/sub服務(wù)器接收一個用于調(diào)用第一客戶機應(yīng)用的消息;以及使用該消息提供的信息調(diào)用第一客戶機應(yīng)用。
在一個選項中,該實施例進一步包含一個步驟延時調(diào)用該第一客戶機應(yīng)用,直至在第二客戶機應(yīng)用中采取了一個預(yù)先規(guī)定的動作。
在另一選項中,該實施例進一步包含如下步驟創(chuàng)建一個用于調(diào)用第一客戶機應(yīng)用的消息;從第三客戶機應(yīng)用將該消息發(fā)送給pub/sub服務(wù)器信道,該消息供通過該pub/sub服務(wù)器信道公布。
在另一實施例中,提供了一種方法,用于由用戶動態(tài)管理pub/sub用戶應(yīng)用,該方法包含如下步驟創(chuàng)建一個用戶可得到的pub/sub用戶應(yīng)用的列表;使用該用戶應(yīng)用列表創(chuàng)建一個給用戶的GUI界面,該GUI界面包含下列中的至少一個第一用戶應(yīng)用標識符、激活(啟動,activate)第一用戶應(yīng)用功能、停用(deactivate)第一用戶應(yīng)用功能、第一用戶應(yīng)用活動指示符、或用于顯示關(guān)于第一用戶信息的方法。
在一個版本中,訂閱第一用戶應(yīng)用的可選步驟使用該GUI界面。
另一版本包含結(jié)合該列表執(zhí)行授權(quán)動作,以允許一個用戶應(yīng)用出現(xiàn)在給該用戶的GUI界面上的步驟。
在再另一個版本中,該訂閱步驟進一步包含只當(dāng)用戶被授權(quán)時才允許訂閱該第一用戶應(yīng)用的步驟。
在另一實施例中,提供了一種方法用于過濾來自pub/sub信道的消息,該方法包含如下步驟接收來自該pub/sub信道的一個消息;對該消息進行操作,這里該操作是下列操作中的任何一個操作把信息保存到一個用戶文件、執(zhí)行由該消息標識的應(yīng)用、只當(dāng)預(yù)先規(guī)定的判據(jù)允許時才向該用戶呈現(xiàn)信息、允許用戶越過由該消息指定的功能、把該消息變換成預(yù)先確定的介質(zhì)格式或向另一節(jié)點轉(zhuǎn)發(fā)該消息。
在該實施例的一個版本中,對該消息的變換是從文本、音頻、視頻或圖像格式中的任何一種到加密的、解密的、壓縮的、解壓縮的、文本、音頻、視頻或圖像格式中的任何一種。
在該實施例的另一版本中,另一節(jié)點包含計算機、電話、無線電設(shè)備(radio)、電視或數(shù)據(jù)文件中的任何一個。
在另一實施例中,提供了一種方法用于調(diào)用在一個系統(tǒng)中的第一客戶機中的一個附屬(adjunct)應(yīng)用,該系統(tǒng)包含一個pub/sub服務(wù)器與該第一客戶機進行網(wǎng)絡(luò)通信,該方法包含如下步驟使用一個客戶機應(yīng)用訂閱一個pub/sub服務(wù)器信道;從該pub/sub服務(wù)器信道接收第一消息;獲得一個附屬應(yīng)用;把該附屬應(yīng)用與該客戶機應(yīng)用結(jié)合;調(diào)用由該pub/sub服務(wù)器信道以該客戶機應(yīng)用公布的一個應(yīng)用。
在該實施例的一個版本中,獲得一個附屬應(yīng)用是通過下列方式中的任何一種第一消息、用戶提供的附屬應(yīng)用或由第三方提供的附屬應(yīng)用。
在另一實施例中,提供了一種用于訪問web(萬維網(wǎng))服務(wù)的方法,該方法包含如下步驟檢索一個訂閱者列表,其中包含協(xié)作用戶的群體;根據(jù)該列表向該協(xié)作用戶群體公布一個消息,該消息包含用于該web服務(wù)的接口信息。
在該實施例的一個可選版本中,進一步描述了一個步驟用于使用該接口信息訪問該web服務(wù)。
在一個實施例中,在一個pub/sub系統(tǒng)中安全地公布服務(wù)的方法提供安全的web服務(wù)。該web服務(wù)進行認證和授權(quán),而訂閱者通過一個被授權(quán)的訂閱者表被授權(quán)。
另一實施例提供公布自動代理,該方法包含如下步驟創(chuàng)建一個自動代理;提供一個到pub/sub信道的接口用于公布該自動代理;向該pub/sub信道的被授權(quán)訂閱者公布該自動代理。
另一實施例描述提供一種包含一個或多個程序指令的模塊的程序服務(wù),該程序服務(wù)是訂閱客戶機可以得到的,包含如下步驟執(zhí)行第一程序指令模塊;通過網(wǎng)絡(luò)協(xié)議(如HTTP)訪問遠程網(wǎng)絡(luò)服務(wù)(例如萬維網(wǎng)的因特網(wǎng));與遠程網(wǎng)絡(luò)服務(wù)交換信息,從而執(zhí)行在該遠程網(wǎng)絡(luò)服務(wù)處的部分程序服務(wù)。
所以,本發(fā)明的一個目的是提供一種電子服務(wù),用于通過使用pub/sub服務(wù)的信道公布消息。
本發(fā)明的另一目的是提供用戶對訂閱信道消息的控制。
本發(fā)明的再另一目的是提供客戶機消息過濾機制,該機制包含基于消息內(nèi)容的過濾。
在下文的書面描述中,本發(fā)明的上述以及其他目的、特征和優(yōu)點將變得顯然。
圖1是描繪一計算機系統(tǒng)的示例部件的圖示;圖2是描繪一客戶機-服務(wù)器網(wǎng)絡(luò)的示例部件的圖示;圖3是描繪一對等網(wǎng)絡(luò)的示例部件的圖示;圖4是描繪一個pub/sub系統(tǒng)的邏輯部件的圖示;
圖5是描繪本發(fā)明的一個pub/sub系統(tǒng)的邏輯部件的圖示;圖6是描繪包含有本發(fā)明的即時消息發(fā)送的pub/sub系統(tǒng)的邏輯部件的圖示;圖7描繪本發(fā)明的一個優(yōu)選實施例;圖8是本發(fā)明的一個Shotgun客戶機的功能流程圖;圖9是本發(fā)明的Shotgun客戶機應(yīng)用的流程圖;圖10是本發(fā)明的服務(wù)選擇GUI的顯示示例;圖11描繪本發(fā)明的服務(wù)選擇GUI的第二顯示示例;圖12是信道選擇菜單的顯示示例;圖13是為選定應(yīng)用創(chuàng)建過濾器的顯示示例;圖14是本發(fā)明的一個告警消息的示例;圖15是本發(fā)明的公布者功能的示例流程圖;圖16是編碼的消息的示例流程圖;圖17是“設(shè)置”(setup)選項的示例流程圖;圖18是消息使用的示例流程圖;圖19是訂閱服務(wù)的示例流程圖;圖20是客戶機消息處理的示例流程圖;圖21是根據(jù)本發(fā)明的客戶機與服務(wù)之間交互的邏輯描繪;圖22描繪Shotgun的web服務(wù)實現(xiàn);圖23是用于選擇選項的示例GUI;以及圖24是用于設(shè)置“插件(Plugin)”的示例GUI。
具體實施例方式
本發(fā)明提供一種在pub/sub服務(wù)器系統(tǒng)中通過信道(channel)公布電子消息的方法,這里利用一個安全的GUI應(yīng)用提供對應(yīng)用和信道的訂閱。采用了本發(fā)明的示例系統(tǒng)在這里稱作“Shotgun”。
在一個優(yōu)選實施例中,Shotgun包含一個Shotgun服務(wù)器應(yīng)用和一個Shotgun客戶機應(yīng)用。Shotgun服務(wù)器應(yīng)用包含
1.pub/sub部件,用于廣播由提供者服務(wù)應(yīng)用提供的內(nèi)容。
2.公布者安全性部件,用于支持和認證公布內(nèi)容的提供者服務(wù)應(yīng)用。
4.訂閱者安全性部件,用于支持和認證訂閱者。
5.可選的訂閱者定制部件,它與訂閱者協(xié)作,定制與該訂閱者相關(guān)的行動,如基于主題、主題標記或消息內(nèi)容等對廣播內(nèi)容進行過濾。
Shotgun客戶機應(yīng)用駐留在客戶機的機器中。Shotgun客戶機應(yīng)用提供1.與Shotgun服務(wù)器應(yīng)用的通信。
2.用于訂閱者的GUI界面,用以訂閱服務(wù);向Shotgun服務(wù)器應(yīng)用提供憑證(credential);以及定制從Shotgun服務(wù)器應(yīng)用和/或代理應(yīng)用那里傳輸和接收的信息。
3.可選的API接口,用于附加代理應(yīng)用。
圖5顯示圖4的先有技術(shù)的系統(tǒng)加上本發(fā)明一個方面的概念圖示。Shotgun把信道和消息過濾引入pub/sub環(huán)境404。服務(wù)401-403可以利用pub/sub服務(wù)404通過“信道”向許多訂閱者提供信息。信道為服務(wù)提供了對其功能進行劃分的一種方式,這樣,股票經(jīng)紀人服務(wù)可以提供一個信道用于股票報價,而另一信道用于公司簡檔(profile)信息。
在一個優(yōu)選實施例中,一個信道是附加在消息上的一個“主題”字段。該主題還可以有副主題字段與它關(guān)聯(lián)。當(dāng)一個訂閱者訂閱一個服務(wù)信道時,pub/sub服務(wù)向該訂閱者公布具有該選定主題字段的消息。Shotgun進一步提供一種過濾器機制,以允許用戶定義他所感興趣的副主題。Shotgun將只向訂閱者公布具有根據(jù)訂閱者選擇的主題和副主題的消息。
Shotgun提供一種機制,允許訂閱者訂閱服務(wù)401-403以及由該服務(wù)提供的信道。Shotgun還提供一種機制,允許用戶對信道以及由pub/sub服務(wù)公布的消息內(nèi)容(消息標識信息)創(chuàng)建過濾器,從而用戶只接收選定的信道消息(那些消息含有根據(jù)預(yù)先確定的檢測判據(jù)的標識信息)。這樣,用戶能創(chuàng)建一個只接收股票報價消息的信道過濾器和一個只接收包括IBM股票的那些消息的消息過濾器。
服務(wù)A-C 401-403是可用于訂閱的。客戶機1和2 405-406分別包含應(yīng)用1和2 503-504。在客戶機1 405處的用戶利用pub/sub服務(wù)器404訂閱服務(wù)B 402。用戶使用這里在后面描述的GUI界面進行訂閱操作。服務(wù)B402利用pub/sub服務(wù)器404向訂閱者發(fā)送消息。通過檢驗消息體的內(nèi)容中的關(guān)鍵詞、進行布爾比較或本領(lǐng)域公知的其他方法,這些消息被過濾器501-502過濾。過濾判據(jù)是由客戶機1 405的用戶預(yù)先編程的,使得只有含有用戶感興趣的信息的那些消息才出現(xiàn)在用戶的顯示器上。在一個實施例中Shotgun應(yīng)用1 503控制過濾判據(jù)但實際的過濾可以在pub/sub服務(wù)器中完成,而在另一個實施例中則在客戶機405的機器上完成(應(yīng)用1 503)。取決于具體實現(xiàn),可根據(jù)關(guān)鍵詞或更復(fù)雜的布爾測試對到來的消息進行內(nèi)容過濾。在一個實施例中,當(dāng)一個消息可用(已通過過濾器測試)時用戶被告警,而且用戶能作出選擇接收整個消息或是放棄它。
只要Shotgun客戶機應(yīng)用是活動的(active),對服務(wù)401-403的訂閱就繼續(xù)存在,或者能基于其他判據(jù)維護,如經(jīng)過時間或特定的用戶動作(例如通/斷選擇)。在一個優(yōu)選實施例中,用戶可選地使Shotgun客戶機應(yīng)用能在本地保存訂閱者信息,并且每當(dāng)該客戶機被激活(通電)時,便用該信息自動訂閱預(yù)先確定的服務(wù)并帶有預(yù)先確定的過濾。
在一個優(yōu)選實施例中,Shotgun客戶機應(yīng)用503-504包括一個應(yīng)用程序接口(API)508,它提供一個接口以使附屬應(yīng)用能被提供給Shotgun客戶機應(yīng)用503-504。這提供了與應(yīng)用插件(plug-ins)類似的功能,該應(yīng)用插件被用于在web(萬維網(wǎng))環(huán)境中擴展Web瀏覽器的功能。在一個優(yōu)選實施例中,在一個會話期間提供一個即時消息發(fā)送(IM)應(yīng)用,從而使各客戶機能使用IM實用工具(facilities)彼此通信。
在另一優(yōu)選實施例中,Shotgun客戶機應(yīng)用503-504提供一個用戶API508,使第三方應(yīng)用能被插入列Shotgun客戶機應(yīng)用。
在另一優(yōu)選實施例中,參考圖6,客戶機1 405通過pub/sub服務(wù)器404訂閱服務(wù)A 401。服務(wù)A提供一個活動代理IM A 602,它如同一個用戶那樣與該系統(tǒng)接口。IM A 602有一個IM地址(它把該地址提供給它的訂閱者),并且訂閱者能使用IM實用工具與服務(wù)A 401通信。
使用上述實施例,一個Shotgun客戶機能通過IM從服務(wù)A接收信息并與其他用戶或服務(wù)A通信,猶如服務(wù)A是另一個用戶(客戶機)。
Shotgun使用于控制誰能公布數(shù)據(jù)和在哪些信道上公布的安全性機制自動化。Shotgun維護一個應(yīng)用的數(shù)據(jù)庫目錄,可通過管理性SOAP服務(wù)訪問。(SOAP是一種輕量XML,基于在非集中化的分布式環(huán)境中的信息交換協(xié)議。它包括一個信封,該信封定義一個框架以描述在一個消息中有什么和如何處理它,以及一個傳輸綁定框架用于使用一個基礎(chǔ)協(xié)議交換消息。)該應(yīng)用目錄包含信道訪問控制、所有者標識、幫助文本以及其他應(yīng)用參數(shù)。
Shotgun基礎(chǔ)設(shè)施圍繞公布和訂閱(pub/sub)服務(wù)。在一個優(yōu)選實施例中,它是IBM WEBSPHERE服務(wù),稱作“MQ公布與訂閱”(MQ Publishsubscribe)。任何pub/sub應(yīng)用能被用于創(chuàng)建如本申請教授的Shotgun服務(wù)。WEBSPHERE服務(wù)在公共廣播部件頂上添加了企業(yè)級安全性。LDAP(輕量目錄訪問協(xié)議)目錄提供認證,而分組技術(shù)提供授權(quán)。應(yīng)用注冊在樹形協(xié)作體系結(jié)構(gòu)的頂上提供附加的授權(quán)級。
LDAP是一種公知的目錄服務(wù)協(xié)議,它在TCP/IP上運行。LDAP提供一種方法,用于客戶機向目錄服務(wù)器認證或證明它的標識,以幫助保護服務(wù)器具有的信息。
安全公布者優(yōu)選實施例(Web服務(wù)接口)公布者的安全性(認證/授權(quán))是由專用LDAP目錄、應(yīng)用注冊數(shù)據(jù)庫或任何適當(dāng)?shù)氖跈?quán)技術(shù)提供的。優(yōu)選地,公布者使用Web服務(wù)SOAP接口并通過在HTTPS安全套接字(socket)之上提供主題(信道)、消息、用戶ID以及口令來調(diào)用pub/sub服務(wù),可替代地,公布者通過在HTTPS之上提供主題(信道)和消息調(diào)用該pub/sub服務(wù),這里用戶名和口令存儲在HTTP指定的REMOTE USER(遠程用戶)字段。
在從國際商用機器(公司)可得到的IBM WEBSPHERE中可以得到Gryphon功能,特別是還可從國際商用機器(公司)得到部件IBMWEBSPHERE MQEVENT BROKER,Gryphon提供基于主題的系統(tǒng)的一個新的替代物,它是基于內(nèi)容的消息發(fā)布系統(tǒng)。與Gryphon相關(guān)聯(lián)的功能可在下列美國專利中找到US 6,216,132“使消費者與事件匹配的方法和系統(tǒng)”(“METHOD AND SYSTEM FOR MATCHING CONSUMERS TOEVENTS”)(Chandra等人);US 6,091,724“使用消息的數(shù)據(jù)內(nèi)容在網(wǎng)絡(luò)內(nèi)為消息選擇路由”(“ROUTING MESSAGES WITHIN ANETWORK USING THE DATA CONTENT OF THE MESSAGE”)(Chandra等人);US 6,336,119“將基于群集的組多點傳播應(yīng)用于基于內(nèi)容的公布-訂閱系統(tǒng)的方法和系統(tǒng)”(“METHOD AND SYSTEM FORAPPLYING CLUSTER-BASED GROUP MULTICAST TOCONTENT-BASED PUBLISH-SUBSCRIBE SYSTEM”)(Banavar等人)。這些專利每個都被轉(zhuǎn)讓給國際商用機器(公司),在這里被引用作為參考。
對基于主題的公布/訂閱的重要限制在于訂閱的選擇性被局限于預(yù)先規(guī)定的主題。而基于內(nèi)容的系統(tǒng)支持若干個信息空間,那里訂閱者可以針對所公布的消息內(nèi)容表達一個“查詢”。
Gryphon系統(tǒng)提供基于內(nèi)容的公布/訂閱功能??蛻魴C通過Java消息服務(wù)(JMS)API訪問該系統(tǒng)。Gryphon消息中介器(broker)是可伸縮的、可用的和安全的可伸縮性中介器可被添加到網(wǎng)絡(luò)中以提供對附加客戶機的支持。配置支持是靈活的,足以有效地支持中介器的地理分布。在多個地理位置的服務(wù)器農(nóng)場(server farm)可以通過若干顯式鏈路鏈接,而不是需要在全部中介器之間有N×N連通性。
可用性Gryphon通過在有故障的中介器附近重新選擇傳輸路由對網(wǎng)絡(luò)中一個中介器的故障做出的響應(yīng)。重新配置是自動的,不需要管理員干預(yù)。
安全性Gryphon支持用于限定誰可以公布和訂閱信息應(yīng)用中的一些部分的訪問控制。再有,Gryphou當(dāng)前支持四種認證機制以核實客戶機標識簡單口令(例如telnet)、相互安全口令認證(從不在線路上發(fā)送口令)、非對稱SSL(在安全的SSL連接上向服務(wù)器發(fā)送口令)以及對稱SSL(客戶機和服務(wù)器二者都使用證書彼此認證)。敏感消息的保密和完整性是通過最新的加密機制來保護的。
Gryphon是用于消息中介的一種分布式計算范型(paradigm),它是以事件流的形式從消息提供者向信息消費者傳送信息。
在Gryphon中,通過一個信息流圖描述事件流的流動。信息流圖指定事件的選擇性分發(fā)、事件的轉(zhuǎn)換以及導(dǎo)致事件的產(chǎn)生,作為從事件歷史計算出的狀態(tài)的函數(shù)。
在大量用戶和應(yīng)用之間有效地分發(fā)信息的需求推動了消息中介的發(fā)展,這種信息分發(fā)所處環(huán)境有如下特點異構(gòu)計算平臺、信息生產(chǎn)者和消費者之間的匿名性以及由于系統(tǒng)演變造成的動態(tài)改變。在單項業(yè)務(wù)范圍內(nèi),如股票交易或氣象預(yù)報機構(gòu),那里有動態(tài)變化的子應(yīng)用提交事件數(shù)和變化的消費事件數(shù)。供應(yīng)者和消費者不必要彼此知道對方;代之以供應(yīng)者可以只是向任何感興趣的消費者提供某類信息,而每個消費者可能感興趣的是這一信息中具有特定屬性的子集。例如,在股票交易中,一個消費者可能對大于1000股的所有股票交易感興趣,而另一個消費者可能對特定的市場趨勢感興趣,如代表比前一天高值下降超過10點的所有股票交易。
對于在多種業(yè)務(wù)范圍內(nèi)把各應(yīng)用“粘”在一起的需求也在增長,以支持業(yè)務(wù)間的網(wǎng)絡(luò)商務(wù)或者可能是作為合并和收購的結(jié)果。例如一個零售商可能需要與它的供應(yīng)商和消費者連接,或者一個消費者可能需要與各種零售商或財務(wù)組織連接。這可能需要把來自不同來源的事件變換成一種可兼容的形式,合并它們并從這些事件中進行選擇。
消息中介是公布-訂閱技術(shù)的一個擴展。Gryphon方法為公布-訂閱范型增添如下特征1.基于內(nèi)容的訂閱,其中是根據(jù)對事件內(nèi)容的判定(predicate)而不是由預(yù)先賦予的主題類別來選擇事件;2.事件變換,它通過對事件中的數(shù)據(jù)投影和應(yīng)用函數(shù)來轉(zhuǎn)換事件;
3.事件流解釋,它允許事件序列被緊縮成一個狀態(tài)和/或反過來被展開成新的事件序列;以及4.反射,它允許通過元事件(meta-event)進行系統(tǒng)管理。
Gryphon技術(shù)包括一個有效實現(xiàn)的集合以支持這一范型,同時仍提供可伸縮性、高吞吐量和低延遲。
Gryphon模型如前所述,在Gryphon中的事件處理是通過信息流圖描述的。信息流圖是一個有方向的非循環(huán)圖,構(gòu)成系統(tǒng)中事件流的一個抽象。在一個例子中,來自兩個信息源NYSE和NASDAQ的股票交易被組合、變換、過濾和分發(fā)給客戶機。這兩個來源產(chǎn)生類型(價格,量)的事件,它們被合并到單一的流中。一個路徑計算新的類型事件流,而另一個路徑濾掉資本少于$1,000,000的事件。
Gryphon信息流圖是一個抽象,因為Gryphon可以以它選擇的任何方式自由地物理實現(xiàn)這個流程,可能會完全地改變流程模式(Pattern),只要消費者能看到與到來的事件以及由該圖指定的變換相一致的事件流。Gryphon優(yōu)化這些圖并把它們布置在中介器(或服務(wù)器)的網(wǎng)絡(luò)上。該中介器網(wǎng)絡(luò)負責(zé)處理客戶機連接和分發(fā)事件。
該圖的節(jié)點被稱作信息空間。信息空間或為1.事件歷史一單調(diào)增長的事件集合,例如形式為(價格,量)的股票交易事件,或為2.事件解釋一代表對事件序列解釋的各狀態(tài),如表(最新價格,最高價格)。每個信息空間有一個鋼要(schema)定義它包含的歷史或狀態(tài)的結(jié)構(gòu)。在信息流圖中的每個弧(路徑)定義一種操作,以從該弧的尾部處的信息空間導(dǎo)出在該弧頭部處的信息空間。弧可以是下列各類型之一“選擇(P)”指定目標事件歷史含有源事件歷史中滿足判定(predicate)P的事件子集。這兩個事件歷史有相同的綱要。
“變換(T)”指定目的事件歷史中的每個事件是通過對源事件歷史中的相應(yīng)事件應(yīng)用函數(shù)T得到的。
“合并”把具有相同綱要的兩個或更多個事件歷史組合成單一歷史。當(dāng)多個弧引向同一信息空間時,這一操作是隱含的。
“解釋(I)”通過對歷史應(yīng)用解釋函數(shù)I把源事件歷史轉(zhuǎn)換成目標狀態(tài)。每次一個新事件到達時,這一解釋將被(增量式地)重新評估。
“擴展(I)”是解釋的反轉(zhuǎn)把一個狀態(tài)轉(zhuǎn)換成事件歷史,該歷史等效于在函數(shù)I下的狀態(tài)。這是一個非確定性函數(shù)具體地說,解釋一個事件歷史并以相同的I再展開它可以產(chǎn)生完全相同的事件歷史,但也可以產(chǎn)生一個不同的歷史,它在I作用下產(chǎn)生等效的狀態(tài)。
Gryphon系統(tǒng)包含若干部件,用于在一個大的分布式中介器網(wǎng)絡(luò)上有效地實現(xiàn)信息流圖。感興趣的領(lǐng)域包括事件匹配-對每個事件確定與該事件匹配的N個訂閱的子集。
多點廣播-將事件從源引導(dǎo)到全部目的,同時避免對中介器處的消息以及事件上的長消息頭段進行不必要的處理。在先有技術(shù)中多點廣播技術(shù)使用組的概念,并且不用于基于內(nèi)容的pub/sub系統(tǒng)。
圖變換-對選擇、變換和解釋重新排序,以使通過網(wǎng)絡(luò)發(fā)送的事件數(shù)以及中介器上的負載達到最小。
容錯-在存在故意的情況下保持持續(xù)的信息流圖的外觀。此外,當(dāng)需要時,保證即使在存在故障的情況下客戶機也能看到一致的信息空間,從而當(dāng)一些客戶機看見一個信息空間已丟失了一個消息時,另一些客戶機看不見該同一信息空間含有該消息。
有序傳遞-當(dāng)需要時,保證各客戶機看到信息空間中一致的事件順序。
最優(yōu)傳遞-當(dāng)客戶機是通過解釋觀看信息空間時,利用等效狀態(tài)的不確定性早期、無序地傳遞消息或丟掉消息。
壓縮-當(dāng)客戶機是通過解釋觀看信息空間而且該客戶機斷開連接又再連接時,利用等效狀態(tài)的不確定性,發(fā)送獲取這同一狀態(tài)的壓縮的事件序列。
重配置-允許物理的中介器網(wǎng)絡(luò)被動態(tài)更新和擴展,無需擾亂持久的信息流圖的邏輯視圖。
反射(reflection)-獲取與改變信息流圖的請求和在一個特殊元事件空間中對信息流圖的確認的改變對應(yīng)的事件。
安全性-處置涉及物理中介器網(wǎng)絡(luò)中各域之間缺乏充分的相互信任的問題。
現(xiàn)在參考圖7,Shotgun 700是一個端到端公布/訂閱電子工具(e-Utility)。它包括三個主要部件IBM GRYPHON“pub/sub”中介器711,Web服務(wù)公布者710以及普通IBM SASH訂閱者應(yīng)用(Shotgun客戶機訂閱者應(yīng)用)。這些服務(wù)一起工作,為需要消息廣播能力的應(yīng)用提供一個完全的、易于使用的解決方案。
GRYPHON消息中介系統(tǒng)使用“信息流圖”概念把pub/sub通信與數(shù)據(jù)庫功能合并到一起。該信息流圖指定從提供者到信息消費者的選擇性的事件傳遞、事件變換以及新事件的產(chǎn)生。在先有技術(shù)的pub/sub范型中,通過一組主題(也稱作話題、信道或組)對分布式環(huán)境中的事件分類。GRYPHON擴展這一范型,允許以內(nèi)容(和/或主題)而不是簡單地通過主題選擇事件,并允許事件變換。GRYPHON提供了消息變換的一般結(jié)構(gòu)。事件可以改變格式、去掉字段或增加新字段。
也是可以從國際商用機器(公司)得到的SASH應(yīng)用是一個可動態(tài)配置的編程環(huán)境,用于使用JavaScript和DHTML快速構(gòu)建和布置由平臺集成的桌面應(yīng)用。這一編程環(huán)境使Web編程超出瀏覽器之外,所作為結(jié)果的應(yīng)用被無縫集成到一般桌面環(huán)境中并利用Web服務(wù)中的最新標準。
pub/sub模型允許應(yīng)用在“信道”上公布數(shù)據(jù),類似于電視或無線電廣播,而客戶機能“調(diào)諧”收聽以得到數(shù)據(jù)-甚至同時在許多信道上收聽。
Shotgun支持多個應(yīng)用704-706,全都使用同一基礎(chǔ)設(shè)施進行公布,每個應(yīng)用在一個或多個信道上廣播數(shù)據(jù)。例如,應(yīng)用A可能類似于一個有線電視公司向你家廣播若干個節(jié)目頻道,而你甚至可能在觀看球賽,同時又兼顧天氣頻道(例如使用PIP)。應(yīng)用B可能類似于一個無線電臺,在AM和FM兩個信道上向你家廣播。而應(yīng)用C可能類似于開過你的鄰里的緊急救援車,在使用揚聲器大聲宣布撤離程序-在這種情況中,是一個“單頻道”信息廣播,你可以通過打開你的窗口來選擇“訂閱”。
Shotgun GRYPHON Web服務(wù)710對應(yīng)用開發(fā)者提供兩個主要好處。第一,它提供了一個方便的SOAP接口,以通過GRYPHON pub/sub服務(wù)器711公布消息,無需納入其較低層的API,同時支持最通用的廣播要求。第二,它使控制誰能在信道上公布數(shù)據(jù)的安全機制自動化。這是通過集成口令授權(quán)實現(xiàn)的。
Shotgun維護一個應(yīng)用的DB2數(shù)據(jù)庫目錄,可通過管理性SOAP服務(wù)訪問(它能被用于用戶寫的應(yīng)用的受控自行注冊)。該目錄包含信道訪問控制、所有者標識、幫助文本、以及Shotgun客戶機使用的其他應(yīng)用參數(shù)。
Shotgun客戶機701-703是一個Sash web應(yīng)用(weblication),它是從Web下載的。Shotgun客戶機用作該客戶機的機器上運行的所有允許pub/sub的web應(yīng)用到GRYPHON服務(wù)器711的接口。用戶能從Web下載他選擇的允許Shotgun(shotgun-enabled)的應(yīng)用,并能使用來自Shotgun客戶機GUI的設(shè)置控制選項容易地選擇應(yīng)用和信道,定義消息過濾器和控制新消息告警。
圖10描繪Shotgun客戶機GUI菜單顯示的一個優(yōu)選實施例。該顯示包括當(dāng)前被允許用于Shotgun消息傳遞(即注冊在應(yīng)用目錄中)的全部應(yīng)用1003(Java web應(yīng)用和Sash web應(yīng)用)的列表1001。列標題1002指明表1001中每列的下列功能?!癘n/Off(通/斷)”指明該用戶是否被訂閱到該應(yīng)用,“alert(告警)”指明該用戶是否想從該應(yīng)用得到告警消息,“application(應(yīng)用)”是一個應(yīng)用的名稱,“?”是一個用戶接口(UI)按鈕,用于請求關(guān)于該應(yīng)用的信息,如對其功能的簡要描述,“Channels(信道)”是一個UI按鈕,用于在該應(yīng)用內(nèi)選擇信道,以及“filters(過濾器)”是一個UI按鈕,用于為該應(yīng)用選擇過濾判據(jù)。如在例子1003中可看到的那樣,應(yīng)用“quickpoll(快速輪詢)”被訂閱(On/Off被打叉),告警被請求(alert被打叉)。其他功能1004對所有選定的應(yīng)用是共同的。在例子1004中,選擇的應(yīng)用在開始時刻開始運行,對選定的應(yīng)用使聲音效果可用,使自動登錄可用以允許Shotgun系統(tǒng)自動登錄到這些應(yīng)用,允許告警消息自動顯示。網(wǎng)絡(luò)狀態(tài)指示1005顯示該Shotgun客戶機與GRYPHON服務(wù)器相連。
“QuickPoll”和“SkillTap”是作為Sash web應(yīng)用實現(xiàn)的,它們必須分別從Web(Sash web應(yīng)用工廠)下載。“TradIt”是一個Java Websphere應(yīng)用,它不要求Shotgun客戶機下載?!癟est”可由用戶用來向仿真應(yīng)用公布發(fā)送測試消息和測試信道告警處理和文本過濾器。如前所述,某些應(yīng)用支持多信道,而另一些應(yīng)用不需要選擇信道。在例子1100中,QuickPoll允許用戶選擇收聽信道。
在圖12中,對于“quickpoll”應(yīng)用按“Channels(信道)”欄中的按鈕“edit(編輯)”,則在Shotgun客戶機終端引出窗口1200。如果該應(yīng)用提供一個公共廣播信道(意思是任何人都能訂閱),則首先顯示它的名稱(在這一情況中是“openmic”1203)。任何具有有效ID的人都被允許在這一信道上公布消息。為收聽公共信道1203上的消息,用戶選擇檢查框1203。接下來,如果該應(yīng)用允許,則為個人信道1205,它與用戶的個人網(wǎng)絡(luò)ID匹配。只有該用戶能在這一信道上公布消息,但其他用戶能選擇收聽。在個人框1205中打叉使該用戶能接收他公布的任何數(shù)據(jù)。
在該優(yōu)選實施例中,用戶可任選添加任意多其他個人信道1208(即你的經(jīng)理的內(nèi)連網(wǎng)ID)或“組”信道1207。組1207是使用稱作BlueGroup(藍組)的程序定義的。Shotgun GRYPHON Web服務(wù)將認證公布者的網(wǎng)絡(luò)ID,以保證它是該組的成員并且其上公布數(shù)據(jù)的信道名與該組名匹配。在例子1200中,只有組“webahead”(通過LDAP查詢過濾器定義為一組部門成員)的成員允許在webahead信道1207上公布。
現(xiàn)在參考圖13,除信道選擇外,用戶可以使用設(shè)置菜單1001上的“edit(編輯)”按鈕為任何應(yīng)用設(shè)置消息“過濾器”。該消息過濾器允許用戶使用簡單的“與”和“或”表達式或者甚至評估其真或偽的復(fù)雜的編程風(fēng)格的表達式來測試某些詞、短語或組合,以確定是否向他呈現(xiàn)一個告警框顯示到來的消息。這允許用戶過濾掉不想要的消息。
圖14顯示兩個示例過濾器。當(dāng)一個合作者發(fā)布一個該用戶需要交易的物品(item)時,tradeIt應(yīng)用過濾器1301便告知該用戶。這里該用戶已選擇接收含有關(guān)鍵短語“ethernet switch(以太網(wǎng)交換機)”或“Ethernethub(以太網(wǎng)集線器)”的消息。第二個例子是SkillTap應(yīng)用過濾器1302,它允許該用戶立即看到由同事雇員發(fā)布的協(xié)助請求。這里,只有包含(“AIX”或“LINUX”或“UNIX”)中任何一個而且還包含(“APACHE”或“WEB SPHERE”或“TOMCAT”)中任何一個的消息才會在該用戶屏幕上顯示一個“告警”消息,指明一個到來的消息。
當(dāng)在設(shè)置菜單中為一個應(yīng)用選定了“alert(告警)”選項時,含有由信道和過濾器設(shè)置規(guī)定的信息的那些消息將引起顯示一個通知窗口,而不是立即顯示過濾后的消息。圖14顯示一個用于“tradeit”應(yīng)用的告警消息示例1400(在告警窗口1401中標識),它在告警消息1402中包括了過濾器判據(jù)“Ethernet switch(以太網(wǎng)交換機)”。告警顯示包括動作UI按鈕功能1403,它允許用戶決定他是否想繼續(xù)該應(yīng)用,在這一情況中他點擊“yes(是)”按鈕。
在圖14的告警窗口1400中顯示該應(yīng)用(在這一情況中為“Tradeit”),以及一個“blast(爆炸)”消息1402以及與被引發(fā)的過濾器規(guī)則匹配的詞凸顯為紅色。然后,用戶有選項1402以忽略該事件,或者選擇“yes(是)”以觸發(fā)由該應(yīng)用設(shè)置的“backfire(回火)URL”。在該例中,選擇“yes(是)”將使因特網(wǎng)瀏覽器窗口開始一個HTTP URL(在web應(yīng)用的情況中,如Tradeit)。在另一實施例中,可以由backfire(回火)URL(如QuickPoll或SkillTop)開始另一個Sash應(yīng)用。在這種情況中,Ttradeitbackfile(回火)URL調(diào)用一個小服務(wù)(servlet),它顯示由應(yīng)答者發(fā)布的供交易物品的細節(jié)。請注意1000,如果在選擇表中未選擇“alert(告警)”選項,但該應(yīng)用是可用的(經(jīng)由“on/off”),而且一個到來的消息通過了該信道和過濾器規(guī)則,則backfire(回火)URL將被立即開始。
表1顯示一個優(yōu)選實施例的示例消息字段。表2顯示“reqnest forpublish(請求公布)”消息及相應(yīng)的“publicsh(公布)”消息的示例。
表1消息字段爆發(fā)(Blast)·可能值字符串·如果告警機制是活動的,被用作呈現(xiàn)給用戶的消息,靜載荷(Payload)·可能值字符串·非Shotgun應(yīng)用指定信息回火(Backfire)·可能值空,格式為proto‖params and args(協(xié)議‖參數(shù)和變元)的字符串·URI,定義為完成任務(wù)需采取的動作信道(由公布機制增加)·可能值空,字符串·該消息要使用的信道公布者(由公布機制增加)·可能值字符串·公布者的ID代理(由公布機制增加)·可能值字符串·正在進行公布的公布者所代表的用戶的ID
表2“請求發(fā)布”消息<shotgun><blast><![CDATA[This is a blast message.]]></blast><payload><![CDATA[This is a payload message.]]></payload><backfire><![CDATA[sash//{81fb0181-3c37-40bO-8e6d-dfl602bdd820},{C60A405E-A3C1-4B14-B3A4-C2366ADCFOFC}]]></backfire></shotgun>公布的消息<shotgun><channel>w3alert</channel><publisher>w3alerteus.ibm.com</publisher><proxy>bgoodman@us.ibm.com</proxy><blast><![CDATA[This is a blast message.]]></blast><payload><![CDATA[This is a payload message.]]></payload><backfire>sash//{81fb0181-3c37-40b0-8e6d-df1602bdd820},{C60A405E-A3C1-4B14-B3A4-C2366ADCFOFC}</backfire></shotgun>
圖15代表一個示例流程,描繪對通過pub/sub引擎公布消息的內(nèi)容公布者的Shotgun驗證。請求進行公布的內(nèi)容公布者應(yīng)用經(jīng)由客戶機/Shotgun接口在SOAP信封中呈送標識信息(組名、信道ID等)。Shotgun對信封1503解碼以提取標識信息并把它傳送給一個認證/授權(quán)模塊1504。模塊1504負責(zé)檢查授權(quán)和認證并提取與該內(nèi)容公布者相關(guān)聯(lián)的預(yù)先確定的應(yīng)用參數(shù)(配置)。Shotgun檢查該信道是公共的或只讀的1505,在那種情況下無需用戶授權(quán)。如果需要用戶授權(quán),該信道必須與用戶ID匹配,該用戶必須是由信道名1507標識的組的成員(例如通過一個查找表),或者該用戶必須是該應(yīng)用的所有者1508。如果不滿足這些條件,則向客戶機1501返回1511一個錯誤消息1509。
圖16顯示Shotgun消息內(nèi)容過濾的示例流程。如果用戶希望訂閱服務(wù)“A”則優(yōu)選的作法是,使用由Shotgun提供的GUI窗口從可得到的各服務(wù)1605中選擇服務(wù)“A”1601。在一個實施例中,該GUI選擇允許選擇這些服務(wù)和/或它們的信道的各種組合。信道是一個服務(wù)內(nèi)的副主題(sub-topics)。圖19顯示為一個服務(wù)對用戶授權(quán)的一個實施例流程。Shotgun檢查該信道是否為公共信道1902,如果是,則用戶不需要授權(quán)1603,如果不是,則用戶向Shotgun提供憑證以獲得授權(quán)。如果用戶的憑證是正確的,則該用戶得到對服務(wù)的訂閱1603,否則采取安全性動作1905,如提示用戶提供正確憑證,為用戶提供手段以得到憑證(支付訂閱費,同意一個許可證等),把此訂閱嘗試報告給該服務(wù)所有者等。該GUI窗口支持用戶選擇各種選項1602,以與選定的服務(wù)或信道交互。圖17中的選項1606包括設(shè)置消息過濾器參數(shù)1701,從而使來自該服務(wù)或信道的到來消息內(nèi)容針對下列各項進行篩選關(guān)鍵詞、關(guān)鍵短語、文本的布爾組合、介質(zhì)類型、通配符、比較圖像等。節(jié)流(throttling)參數(shù)1702被選擇,這些包括限制來自該信道或服務(wù)的到來消息的頻次或大小或介質(zhì)類型(txt、gif、jpg、mpg……),按內(nèi)容或相對于其他信道消息給到來的消息以優(yōu)選權(quán)(賦予優(yōu)先次序),為呈現(xiàn)信道消息提供基于時間的窗口(時間窗),為到來的消息提供用戶GUI控制(暫停/開始)等。用戶能選擇調(diào)用選項1703,如當(dāng)用戶采取一個動作時的自動訂閱(如給他的計算機通電,基于時間的訂閱,向用戶提醒當(dāng)前訂閱狀態(tài)的消息等)。在一個實施例中,當(dāng)一個服務(wù)提供多個信道時,它們作為一組被訂閱,而用戶可得到信道過濾器以協(xié)調(diào)來自一個服務(wù)的可用信道的消息。可以得到其他“定制”選項,如編程者可以經(jīng)由API擴展Shotgun的能力。
優(yōu)選地,用戶通過在其Shotgun設(shè)置GUI上選擇“訂閱”按鈕的一個動作來訂閱服務(wù)“A”103。一旦用戶已成功地訂閱了該服務(wù),pub/sub引擎便在來自該服務(wù)的消息廣播中包括該用戶1608。Shotgun客戶機使用預(yù)先定義的功能支持1607與用戶GUI 1604的消息的交互。
在一個優(yōu)選實施例圖18中,消息1609被顯示在用戶終端或經(jīng)由API1803轉(zhuǎn)發(fā)給定制(custom)應(yīng)用1801。定制應(yīng)用可以是來自該信道的消息中提供的(插件),或單獨電子提供的,或通過本領(lǐng)域技術(shù)人員熟悉的其他介質(zhì)提供的。這些應(yīng)用支技1802變換消息,以控制機械機器、顯示視頻或播放音頻(mpeg)、從文本變換到聲音或從聲音變換到文本的、發(fā)送電子郵件、使用客戶機瀏覽器調(diào)用URL或本領(lǐng)域技術(shù)人員熟悉的任何其他變換。在一個實施例中,本地應(yīng)用1801可選地1805向用戶1804發(fā)送一個告警信號,通告調(diào)用該客戶機應(yīng)用1801或消息,用戶通過進行一個動作選擇1806執(zhí)行該應(yīng)用1801的功能或者放棄它。
在一個實施例圖20中,本地客戶機應(yīng)用1801可以調(diào)用一個“活動應(yīng)用”插件,它是用于pub/sub引擎的一個內(nèi)容服務(wù)。該活動應(yīng)用1802通過pub/sub信道接收來自內(nèi)容提供者的消息2001。該活動應(yīng)用把第二消息(可以包括所收到的消息2001)傳送給pub/sub服務(wù)用于向訂閱者公布。這樣,該用戶可以成為從pub/sub引擎接收的被公布的消息的一個“一對多”再公布者。
圖21是使用被公布的消息和響應(yīng)提供雙向通信的本發(fā)明一個優(yōu)選實施例的部件的邏輯圖。內(nèi)容服務(wù)“B”2101包括一個自動代理2103。該自動代理2103是一個應(yīng)用,它運行執(zhí)行通常由用戶/操作員完成的功能。該自動代理可選地可以包含人工智能(AI),它能與用戶交互,并使用AI技術(shù)(推理)能提示和響應(yīng)用戶的輸入。服務(wù)“B”2101進一步包含網(wǎng)絡(luò)接口,從而客戶機應(yīng)用2106能按照網(wǎng)絡(luò)協(xié)議通過使用適當(dāng)?shù)腎D/地址機制2104與服務(wù)“B”2101通信。服務(wù)2101經(jīng)由Shotgun 2105向訂閱者公布消息,包括標識服務(wù)“B”的網(wǎng)絡(luò)ID及地址的信息2104。訂閱服務(wù)“B”的客戶機2108包括應(yīng)用(App“1” 2106),用于經(jīng)由網(wǎng)絡(luò)接口2107從服務(wù)“B”2101接收公布的消息2015和與服務(wù)“B”2101通信作為響應(yīng)。這樣,在該實施例中,服務(wù)2010通過Shotgun pub/sub服務(wù)2013向各訂閱者2108(對于服務(wù)“B”2101可以是匿名的)公布內(nèi)容,而每個訂閱者反過來能通過網(wǎng)絡(luò)協(xié)議對該服務(wù)做出響應(yīng)。
Web服務(wù)接口在萬維網(wǎng)(Web)中,提供服務(wù)的程序應(yīng)用被稱作“Web服務(wù)”。這些程序應(yīng)用是可由程序員使用來實現(xiàn)他正在提供的部分應(yīng)用的程序(位于遠程服務(wù)器上)。例如,一個程序員可能創(chuàng)建一個Web頁(awebpage.com),它顯示地區(qū)的天氣。該程序員能使用HTML及支持圖像(例如jpg、gif)來創(chuàng)建他的Web頁。對于地區(qū)天氣,該程序員利用Web服務(wù)來實現(xiàn)所需功能,他在他的awebpage.com HTML中“調(diào)用”一個天氣Web服務(wù)程序。該調(diào)用通過網(wǎng)絡(luò)向天氣Web服務(wù)提供參數(shù)(如本地郵局的郵政編碼)。該Web服務(wù)問該客戶機返回所請求的將由瀏覽器作為awebpage.com頁面的一部分顯示的信息。
Web服務(wù)在減少程序員必須寫和維護的代碼量方面是有用的。他只需在其程序中提供用于該服務(wù)的接口。
近來,已定義了基于標準XML的接口(WSDL),它允許程序員容易地與各Web服務(wù)接口。
在本發(fā)明中,參考圖22,安全的pub/sub公布利用Web服務(wù)2202進行pub/sub服務(wù)。這樣,Shotgun實現(xiàn)各種功能,包括認證,并“調(diào)用”pub/sub服務(wù)GRYPHON以進行實際的“一對多”公布。
在客戶機/服務(wù)器環(huán)境2208中運行的Shotgun 2201通過Web訪問所需要的服務(wù)2202-2207。該功能類似于一個函數(shù)調(diào)用。當(dāng)Shotgun應(yīng)用2201已認證了一個內(nèi)容服務(wù)2209時,Shotgun“調(diào)用”pub/sub服務(wù)2202(一個Web服務(wù),由Shotgun通過Web訪問)以對內(nèi)容服務(wù)2209提供的內(nèi)容實現(xiàn)公布功能,該內(nèi)容通過因特網(wǎng)2210公布給列表中的用戶(他們是對該內(nèi)容服務(wù)的訂閱者)。
在本發(fā)明的一個優(yōu)選實施例中使用的其他Web服務(wù)包括安全公布2202(經(jīng)由pub/sub服務(wù)器在各信道上安全地公布)這一服務(wù)2202是一個賦能(enabling)服務(wù)。它提供一個公共接口以在pub/sub基礎(chǔ)設(shè)施上公布Shotgun消息。由于它是由Web服務(wù)提供的,如果Shotgun協(xié)議改變,該Web服務(wù)不需要改變。改變將在Web服務(wù)級發(fā)生。而調(diào)用該服務(wù)的代碼將保持相同。如果GRYPHON被放棄而需要一個不同的工具軟件提供pub/sub,則程序員將使新的pub/sub服務(wù)替換到位,而公布會繼續(xù)進行,因為對客戶機代碼沒有修改。
IIP檢驗2207
(針對一個團體的(corporate)LDAP目錄核實用戶名和口令)當(dāng)用戶登錄到Shotgun時,他使用他的團體ID和口令。核實(授權(quán))是由安全性Web服務(wù)2207代表該用戶進行的。這允許程序員把后端LDAP服務(wù)器改變?yōu)槔鏒B2數(shù)據(jù)庫而不會干擾該用戶。Web服務(wù)接口保持不變。
組檢查(GroupCheck)2203(針對團體目錄核實組員資格)組檢查服務(wù)2203保證訂閱pub/sub信道的用戶是那個信道的被授權(quán)成員。不是向每個客戶機分發(fā)這一代碼,而是代之以通過公共接口提供組檢測代碼作為一個Web服務(wù)。這一服務(wù)與團體LDAP服務(wù)器接口,以核實組員資格。如果后端系統(tǒng)需要改變,它能夠無需修改客戶機代碼。
定制應(yīng)用列表2206(當(dāng)啟動時,一個被認證的Web服務(wù)根據(jù)用戶ID/組員資格提供一個定制應(yīng)用列表)通過Web服務(wù)接口訪問定制應(yīng)用列表服務(wù)2206。實際數(shù)據(jù)被保存在DB2數(shù)據(jù)庫中。根據(jù)用戶ID和成員資格,在XML中標出可用應(yīng)用的定制子集,并作為對該Web服務(wù)調(diào)用的結(jié)果返回。如果程序員想那樣做的話,他能決定把數(shù)據(jù)保存在LDAP中而不是在DB2數(shù)據(jù)庫中,而且會有效地切換Web服務(wù)。該列表的改變不要求對客戶機代碼有任何改變。
“你作為其中一部分的那些組”列表2204(提供你作為其成員的所有組的列表的能力,以幫助pub/sub信道訂閱)隨著組員資格的增加,用戶將需要繼續(xù)知道他們是哪些信道/組的一部分。這一Web服務(wù)2204構(gòu)造一個查詢,它返回一個列表,列出一個用戶是其成員的所有組。該用戶可能被添加到一個組,但此事沒有告訴他。利用這一服務(wù),該組將提示給該用戶,而且所提供的UI將能被集成列需要組瀏覽的任何應(yīng)用。
應(yīng)用報告系統(tǒng)(ARS)2205
(提供產(chǎn)生事務(wù)日志的通用方式,帶有/不帶有可付賬單位類型信息)ARS 2205被用于幕后提供“日志”。例如,它記錄何時一個用戶登錄,他登錄了哪些信道以及何時退出登錄。這向客戶機提供了登錄中央數(shù)據(jù)庫的能力,而無需從屬的DB2庫或DB2代碼。代替地,他們與該Web服務(wù)接口,這意味著如果DB2不再是選擇的數(shù)據(jù)庫,mySQL可以被投入(dropin),而每個客戶機保持不變。任何改變都在Web服務(wù)處完成。
在一個優(yōu)選實施例中,由Shotgun發(fā)明支持一個“插件”模塊。該模塊包含執(zhí)行附加功能的程序。該模塊通過應(yīng)用程序接口(API)有選擇地附加到Shotgun客戶機并接收指向該用戶的消息。
圖23中顯示了本發(fā)明的插件方法的一個應(yīng)用例。允許用戶選擇他感興起的信道和過濾器選項的用戶GUI也允許他“設(shè)置插件”2306。當(dāng)他選擇這一選項時,顯示出屏幕圖24 2401。用戶被提示插件信息2402,于是他把想對到來的消息執(zhí)行的功能(程序)輸入文本窗口2403。
在一個實施例中,插件是預(yù)先定義的功能,它們能經(jīng)由GUI提示被選擇。在本例中,用戶被允許確定他想啟動(“轉(zhuǎn)發(fā)”)的代碼的文件位置以及他想讓該程序使用的參數(shù)。在本例中,該用戶輸入GUI提示2401中的轉(zhuǎn)發(fā)插件模塊示于表3表3C\SGplugin\Forward\ap12win-hostwin off-sm piped-input″′)load′′C\SGplugin\Forward\MSG.apl′′′′To′′EMAIL9995551212@messaging.sprintpcs.com′′TOPICshotgun/w3alert/*′′LOGon,C\SGplugin\Forward\SGmsglog.txt′′&xml′′)off′″為把Shotgun告警轉(zhuǎn)發(fā)給一個郵箱、一個SKYTEL傳呼機或使用SMS消息發(fā)送轉(zhuǎn)發(fā)給一個蜂窩電話,用戶將把這一代碼作為他的Shotgun“插件”拷貝下來(在“File(文件)”1101菜單選項下選擇“Set plugin”(設(shè)置插件)2306),以他自己的發(fā)消息ID代替該代碼中的“EMAIL”標記。
上述示例將把所有Shotgun“w3alert”應(yīng)用消息(‘TOPICshotgun/w3alert/*)作為SMS告警轉(zhuǎn)發(fā)給SprintPCS電話號碼9995551212。如果一個用戶只想轉(zhuǎn)發(fā)發(fā)送給特定BlueGroup信道的w3alert消息,他將以組名代替“*”(通配符)。“LOGon,pathname”選項啟動日志,從而經(jīng)此插件轉(zhuǎn)發(fā)的消息將被記錄在一個指定文件中并帶有來自郵件轉(zhuǎn)發(fā)Web服務(wù)的返回狀態(tài)。如果在安裝過程中用戶在安裝期間修改缺省目錄,他將需要在上述適當(dāng)?shù)拿钚兄行薷穆窂矫?br>
表4顯示支持該優(yōu)選轉(zhuǎn)發(fā)實施例的APL代碼示例。表4)LOAD MOBALERTSAVED 2002-07-16 13.26.26 (GMT-4)VTo
V
To;CH;F;FROM;L;LF;MSG;P;SUBJ;SV1;TF;TO;TOP;XML[1] A FORWARD A SHOTGUN ALERT TO A MOBILE DEVICE[2] TO←6↓0[3] TOP←UPC 6↓0[4] LF←′ON,′UPC3↑F←4↓L←0[5] F←3↓F[6] LAST_XML ←XML←∈AFV TF←0[7] DELETE TF[8] →(0=pCH←′topic′ XGET XML)/END[9] A IS THIS A CHANHEL NE ARE INTERESTED IN?[10] →(-(UPC CH)MATCH TOP)/END[11] A NHO IS THE SENDER?[12] FROM←′publicher′ XGET XML[13] ±(0≠pP←′proxy′ XGET XML)/′FROM←P′[14] ±(′<! [CDATA[′≡9↑MSG←′blast′XGKT XML)/′MSG←9↓ˉ3↓MSG′[15] SUBJ←′Shotgun ′,8↓CH[16] A SKND THL ALERT VIA THE SMTP SERVICE[17] P←MAIL FROM TO SUBJ MSG[18] A LOG THE EVENT IF REQUESTED BY THE USER[19] P←P,′(Fron′,F(xiàn)ROM,′,To′,TO,′,Subject′,SUBJ[20] ±LF/′F LOG P,″, Message. ″,MSG,″)″′[21] ENDV 2002-07-15 14.01.14(GMT-4)VXGET
V
Z+TAG XGET STRING[1] Z←2(′<′,TAG ,′>′ ) (′ </′,TAG,′>′ ) EXTEACT STRINGV 2002-02-09 23.30.09(GMT-4)VLOG
V
F LOG D;RC[1] A SV100←((-(φF)L′\′)↓F),′\HOW ′,(DBLQUOTE∈D),′>>′,F(xiàn)[2] A RC←SV100[3] F APPENDFILEV(′[′,(NICE_DATETIME DTS),′| ′),∈DV|2002-02-25 22.27.52
VMATCH
V
Z←STR MATCH PAT;I;OIO[1]A DOES STRING MATCH PATTERN(NITH+AS WILDCARDS)?[2]DIO←0[3]LP[4]A EXIT IF FIRST PART OF STRING DOES NOT MATCH[5]→(-Z←(I↑STR)≡(I←PAL′→′)↑PAT)/END[6]A PATTERN ENDS NITH NILDCARD AFTER MATCH SO FAR - OK[7]+(Z←(0=pPAT←(I+1)↓PAT)A′→′=ˉ1↑PAT)/END[8]A DONE IF EXACT MATCH OF REMAINING TEXT(NO OTHER → )[9]→(Z←(0=pSTR←I↓STR)A0=pPAT)/END[10] A NO MATCH IF END OF STRIHG,BUT NOT END OF PATTERN[11] →(-Z+0≠pSTR)/END[12] A NO HATCH IF ≠ STRING END & PATTERN END & NO END→[13] →(-Z←0≠pPAT)/END[14] A DROP NILDCARD MATCHES.IF HOTHING LEFT,NO MATCH[15] →(-Z←0≠pSTR+((((PATL′←′)↑PAT)∈STR)L1)↓STR)/END[16] →LP[17] ENDV 2002-07-16 13.21.35(GHT-4)VMAIL
V
Z←MAIL ARGS;FROM;MSG;SUBJ;T;TO[1]A SEND MAIL VIA SMTP SERVER. ARGSFROM TO SUBJ TEXT[2]A MAIL ′neeEoo.com′′edebar.com′′shotgun alert′′Hi!′[3](FR0M TO SUBJ MSG)←ARGS[4]Z←′webservices.ibn.con/soap/servlet/rpcrouter′″[5]Z←Z,′urnBlueMail′′simplesend′″10[6]T←′ <nyTo xsitype=″xsdstring″> ′,TO,′</nyTo>′[7]T←T,′<nyFrom xsitype=″xsdstring″>′,F(xiàn)ROH,′</nyFrom>′[8]T←T,′<nySub xsitype=″xsdstring″>′,SUBJ,′</nySub>′[9]T←T,′<nyMsg xsitype=″xsdstring″>′,MSG,′</nyMsg′[10] Z←Z S0APNS T[11] T←′<return′[12] Z←(ˉ1+((′</′,1↓T)EZ)(1)↑Z←(Zl′>′)↓Z←((TEZ)(1)↓ZV 2002-07-16 13.26.23(CMT-4)
VSOAPNS
V
XML_OUT+PARMS SOAPNS XML_IN;ENDPOINT;ACTION;NAMESPACE;METHOD;IDPW;TIMEOUT;PROXY;USEPROXY;PORT;HOST;INDX;LEN;REQ;RC;SOCR;VAR119;SOAP119[1] A ISSUE A NEB SERVICE REQUEST VIA SOAP HTTP IHTERFACE[2] A PARMSSOAP ENDPOINT URL,SOAP ACTION,NAMESPACE URI,METHOD NAME,USERIDPN,TIMEOUT[,PROXY URL)[3] (ENDPOINT ACTION NAMESPACE METHOD IDPN TIMEOUT PROXY)← 7↑PARMS,c″[4] →(2≠RC←119 SVOFFER VAR119←′SOAP119′)/ER[5] USEPROXY←0≠pPROXYA USING PROX?[6] PORT←80 A DEFAULT EP PORT NUMBER[7] →((pHOST)<INDX←(HOST←(LEN←ˉ1+ENDPOINTL′/′)↑ENDPOINT)L′′)/NOPORT[8] PORT+′80′DEA INDX↓HOSTA EXTRACT EP PORT NUMBER[9] HOST←(INDX-1)↑HOST A AND EP HOST DOMAIN NAME[10] NOPORT[11] REQ←(HOST ACTION NAMESPACE METHOD IDPN)SOAPENV XML_IN[12] REQ←′POST′,(USEPROXY/′http//′),((LENx-USEPROXY)↓ENDPOINT),REQ[13] →(ˉ1≡↑RC←SOCK+GETSOCR″)/ER A GET A S0CKET[14] →(ˉ1≡↑RC←BLOCRING SOCK 0)/ER A N0N-BLOCKING MODE[15] →(ˉ1≡↑RC+CONHECT SOCK(↑USEPROXYφPORT,80)(↑USEPROXYφHOST PROXY))/ER[16] →((ˉ1≡↑RC)v-(,SOCR)≡2 RC←SELECT(,SOCK′N′TIMEOUT)/ER[17] →(ˉ1≡↑RC←SENDALL SOCK REQ)/ER A HTTP POST[18] LEN+pXHL_OUT←″ A INIT XML RESPOHSE[19] RECVLOOP[20] →((ˉ1≡↑RC)v-(,SOCK)≡1 RC←SELECT(,SOCK)′R′TIMEOUT)/ER[21] +(ˉ1≡↑RC←RECV SOCR)/ER A READ NEXT CHDCK[22] XML_OUT←XML_OUT,RC A ADD TO RESPONSE BUFF[23] →((LEN+pXML_OUT))≠LEN)/RECVLOOP A MORE TO RECEIVE?[24] +DISCON A COMPLETED,DISCONNECT[25] ER[26] XML_OUT←RCA RETURN ERROR CODES[27] →EXIT[28] DISCON[29] RC←CLOSE SOCK A CLOSE SOCKET[30] EXITV |2002-07-16 13.50.03(GMT-4)
VSOAPENV
V
ENV←PARMS SOAPENV XML_IN;ACTION;HOST;IDPN;NAMESPACE;METHOD;HL;XML[1] A GENERATE SOAP ENVELOPE FOR HTTP TRANSPORT[2] A PARMSHOST,SOAP ACTIOH,NAMESPACE URI,METHOD NAME,USERIDPN[3] (HOST ACTION NAMESPACE METHOD IDPN)←PARMS[4] NL←DTC[DIO+1 2][5] XML←′s?xml version=″1.0″ encoding=″UTF-8″?>′[6] XML+XML,′<SOAP-ENVEnvelope′[7] XML+XML,′xmlnsSOAP-ENV=″http//schemas.xmlsoap. org/soap/envelope/″ ′[8] XML←XML,′xmlnsxsi=″http//www.w3.org/1999/XMLSChema-instance″′[9] XML+XML, ′xmlns xsd=″http//www. w3,orq/1999/XMLSChema″>′[10] XML←XML, ′<SOAP-ENVBody>′[11] XML+XML′<nsl′,METHOD,′xnlnsnsl=″′,NAMESPACE,′″′[12] XML+XML ′SOAP-ENVencodingstyle=″http//schemas.xnlsoap,org/soap/encodng/″>′[13] XML←XML,XML_IN[14] XML←XML,′</ns1′,METHOD,′>′[15] XML←XML,′</SOAP-ENVBody>′[16] XML←XML ′</SOAP-ENVEnvelope>′[17] ENV←′HTTP/1.0′,NL[18] ±(0≠pIDPN)/′ENV←ENV,″AuthorizationBasic ″,(BASE64_ENCODE IDPN),NL′[19] ENV+ENV′Host′,HOST,NL[20] ENV←ENV,′Content-Typetext/xml;charset=utf-8′,NL[21] ENV+ENV,′Contnt-Length′,(TpXML),NL[22] ENV←ENV,′SOAPACtion ″′,ACTIOH,″″,NL[23] ENV+ENV,NL,XMLV 2001-12-11 23.16.19(GMT-4)
VBASE64_ENCODE
V
BASE64←SPLIT BASE64_KNCODE DATA;DIO;AV64;BINARY[1] A Encode using MIME Content-Trausfer-EncodingBase64as specified in RFC 2045.[2] A ArgunentsDATA-Network character data to be eacoded[3] ASPLIT-Whether result should be split into 76 byte records[4] A ResultEncoded data in network character representation[5] DIO←0[6] ADES(1<ppDATA)/5 2 A Must be scalar or vector[7] ADES(255x,<DAVLDATA)/5 4 A Must be siogle-byte character[8] →(0=pDATA)/0 BASE64←″[9] SPLIT←′0′ DEA ′SPLIT′[10] A Eacoding alphabet[11] AV64←′ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopgrstuvwxyz0123456789+/′[12] A Convert alphabet to network character representation.[13] AV64←HTONC AV64[14] A Easure data is a vector[15] DATA←,DATA[16] A Convert to bits[17] BINARY←′B1 1 ←′RTA DATA[18] A Reshape to 6 coluno bit matrix[19] BINARY←((((pBINARYY)÷6),6)pBINARY,6p0[20] A Add two columns on the left[21] BINARY←(-0 2+pBINARY)↑BINARY[22] A Convert to alphabet selections[23] BASE64←AV64[DAF ′B1 1 +′ATR,BIMARY][24] A Pad to multlple oE 4 byte length[25] BASE64←(4×((pBASE64)÷4)↑BASE64,HTONC ′===′[26] →(SPLIT≡0)/0[27] A Partition into 76 byte records[28] BASE64←((pBASE64)p(76↑2,75pl))CBASE64[29] A Add carriage return line feeds[30] BASE64←∈BASE64,″CHTOHC DTC[1 2]V 2002-07-16 13.52.53(GHT-4)
本發(fā)明的插件能力通過允許定制的應(yīng)用對到來的消息執(zhí)行功能極大地擴展了本發(fā)明的功能。它進一步允許這些定制的應(yīng)用通過簡單的接口(API)與Shotgun應(yīng)用接口。此外,經(jīng)由API轉(zhuǎn)發(fā)給定制應(yīng)用的消息使用對Shotgun應(yīng)用可用的強大的信道和過濾功能。
盡管這里已經(jīng)顯示和描述了本發(fā)明的優(yōu)選實施例,但應(yīng)該理解,本發(fā)明不限于這里公開的特定的結(jié)構(gòu),對于進入所附權(quán)利要求定義的本發(fā)明范圍的所有改變和修改都保留權(quán)利。
權(quán)利要求
1.一種用于接收通過公布/訂閱服務(wù)公布的電子消息的方法,該公布/訂閱服務(wù)與一個或多個客戶機系統(tǒng)進行網(wǎng)絡(luò)通信,該方法包含如下步驟在客戶機應(yīng)用處接收由所述內(nèi)容提供者通過所述公布/訂閱服務(wù)公布的消息,其中所述消息包含第一標識信息。根據(jù)預(yù)先規(guī)定的判據(jù)檢查所述第一標識信息;以及當(dāng)所述第一標識信息滿足所述預(yù)先規(guī)定的判據(jù)時,由所述客戶機應(yīng)用有選擇地接受所述消息。
2.根據(jù)權(quán)利要求1的方法,其特征在于,所述預(yù)先規(guī)定的判據(jù)包含關(guān)鍵詞比較、布爾比較或短語比較的任何一個。
3.根據(jù)權(quán)利要求1的方法,其特征在于,進一步包含顯示所述消息的步驟。
4.根據(jù)權(quán)利要求1的方法,其特征在于,進一步包含把所述消息傳送給另一程序模塊的步驟。
5.根據(jù)權(quán)利要求1的方法,其特征在于,進一步包含在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)所述消息的步驟。
6.根據(jù)權(quán)利要求1的方法,其特征在于,所述消息包含即時消息、電子郵件消息、WSDL、XML、HTML、MIME或SOAP協(xié)議的任何一個。
7.根據(jù)權(quán)利要求1的方法,其特征在于,進一步包含訂閱授權(quán)接收來自內(nèi)容提供者的消息的步驟。
8.一種用于接收通過公布/訂閱服務(wù)公布的電子消息的系統(tǒng),該公布/訂閱服務(wù)與一個或多個客戶機系統(tǒng)進行網(wǎng)絡(luò)通信,該系統(tǒng)包含接收器,在客戶機應(yīng)用處接收由所述內(nèi)容提供者通過所述公布/訂閱服務(wù)公布的消息,其中所述消息包含第一標識信息;檢查器,根據(jù)預(yù)先規(guī)定的判據(jù)檢查所述第一標識信息;以及接受器,當(dāng)所述第一標識信息滿足所述預(yù)先規(guī)定的判據(jù)時,由所述客戶機應(yīng)用有選擇地接受所述消息。
9.根據(jù)權(quán)利要求8的系統(tǒng),其特征在于,所述預(yù)先規(guī)定的判據(jù)包含關(guān)鍵詞比較、布爾比較或短語比較的任何一個。
10.根據(jù)權(quán)利要求8的系統(tǒng),其特征在于,進一步包含一個顯示所述消息的顯示器。
11.根據(jù)權(quán)利要求8的系統(tǒng),其特征在于,進一步包含一個用于向另一程序模塊轉(zhuǎn)發(fā)所述消息的接口。
12.根據(jù)權(quán)利要求8的系統(tǒng),其特征在于,所述消息包含即時消息、電子郵件消息、WSDL、XML、HTML、MIME或SOAP協(xié)議的任何一個。
13.根據(jù)權(quán)利要求8的系統(tǒng),其特征在于,進一步包含一個用于訂閱授權(quán)接收來自內(nèi)容提供者的消息的訂閱器。
14.一種計算機程序產(chǎn)品,用于接收通過公布/訂閱服務(wù)公布的電子消息,該公布/訂閱服務(wù)與一個或多個客戶機系統(tǒng)進行網(wǎng)絡(luò)通信,該計算機程序產(chǎn)品包含其中具有計算機可讀程序代碼的計算機可讀介質(zhì),該計算機程序產(chǎn)品包含用于在客戶機應(yīng)用處接收由所述內(nèi)容提供者通過所述公布/訂閱服務(wù)公布的消息的計算機可讀程序代碼,其中所述消息包含第一標識信息;用于根據(jù)預(yù)先規(guī)定的判據(jù)檢查所述第一標識信息的計算機可讀程序代碼;以及用于當(dāng)所述第一標識信息滿足所述預(yù)先規(guī)定的判據(jù)時由所述客戶機應(yīng)用有選擇地接受所述消息的計算機可讀程序代碼。
15.根據(jù)權(quán)利要求14的計算機程序產(chǎn)品,其特征在于,所述預(yù)先規(guī)定的判據(jù)包含關(guān)鍵詞比較、布爾比較、或短語比較的任何一個。
16.根據(jù)權(quán)利要求14的計算機程序產(chǎn)品,其特征在于,進一步包含用于顯示所述消息的計算機可讀程序代碼。
17.根據(jù)權(quán)利要求14的計算機程序產(chǎn)品,其特征在于,進一步包含用于把所述消息傳送給另一程序模塊的計算機可讀程序代碼。
18.根據(jù)權(quán)利要求14的計算機程序產(chǎn)品,其特征在于,進一步包含用于在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)所述消息的計算機可讀程序代碼。
19.根據(jù)權(quán)利要求14的計算機程序產(chǎn)品,其特征在于,所述消息包含即時消息、電子郵件消息、WSDL、XML、HTML、MIME或SOAP協(xié)議的任何一個。
20.根據(jù)權(quán)利要求14的計算機程序產(chǎn)品,其特征在于,進一步包含用于訂閱授權(quán)接收來自內(nèi)容提供者的消息的計算機可讀程序代碼。
全文摘要
電子消息通過pub/sub(公布/訂閱)服務(wù)公布給訂閱客戶機。客戶機應(yīng)用根據(jù)用戶預(yù)先規(guī)定的判據(jù)過濾到來的消息,只有通過了過濾判據(jù)的消息才呈現(xiàn)給用戶。優(yōu)選地,這些消息是以SOAP協(xié)議傳輸?shù)募磿r消息。
文檔編號G06Q10/00GK1477575SQ0314981
公開日2004年2月25日 申請日期2003年7月25日 優(yōu)先權(quán)日2002年7月26日
發(fā)明者B·D·古德曼, B D 古德曼, F·賈尼亞, 嵫, K·C·拉加德, 拉加德, D 莫伊倫, 舒晨, M·V·D·莫伊倫 申請人:國際商業(yè)機器公司