專(zhuān)利名稱:用于語(yǔ)義網(wǎng)更新的可伸縮分發(fā)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及語(yǔ)義網(wǎng)技術(shù),更具體地,涉及用于語(yǔ)義網(wǎng)更新的可伸縮分發(fā)(scalable distribution)的方法和系統(tǒng)。甚至更具體地,本發(fā)明涉及特別適用于使用資源描述框架(RDF)語(yǔ)言的這種方法和系統(tǒng)。
背景技術(shù):
RDF是一種語(yǔ)言,用于表示萬(wàn)維網(wǎng)中可用資源的信息,特別是元數(shù)據(jù)。例如,RDF可被用于表示關(guān)于網(wǎng)絡(luò)上文檔的版權(quán)或許可證信息,或具體網(wǎng)頁(yè)的作者和標(biāo)題。RDF還可被用于表示能在萬(wàn)維網(wǎng)上被識(shí)別的項(xiàng)目(item)或事件(matter)的數(shù)據(jù)或元數(shù)據(jù),即使這些項(xiàng)目不能直接從網(wǎng)絡(luò)中提取(retrieve)。這些后者的項(xiàng)目的例子可包括關(guān)于用戶網(wǎng)絡(luò)偏好的數(shù)據(jù),和在網(wǎng)上購(gòu)物工具上的銷(xiāo)售的項(xiàng)目信息,諸如價(jià)錢(qián)和可獲得性。由萬(wàn)維網(wǎng)協(xié)會(huì)建立了RDF規(guī)范。RDF規(guī)范還描述了如何序列化RDF數(shù)據(jù)以便用于網(wǎng)絡(luò)服務(wù)等等(例如RDF/XML)。
RDF使用被稱為統(tǒng)一資源標(biāo)識(shí)符或URI的標(biāo)識(shí)符,并基于特殊的術(shù)語(yǔ)學(xué)。RDF語(yǔ)句(statement)包括主語(yǔ)、謂語(yǔ),和賓語(yǔ)。主語(yǔ)識(shí)別語(yǔ)句所涉及的事物,諸如人或網(wǎng)頁(yè)。謂語(yǔ)標(biāo)識(shí)RDF語(yǔ)句的賓語(yǔ)的屬性或特征,諸如標(biāo)題或所有者,以及賓語(yǔ)標(biāo)識(shí)該屬性或特征的值。例如,如果RDF語(yǔ)句涉及寵物主人,則主語(yǔ)可以是“主人”,謂語(yǔ)可以是“名字”,賓語(yǔ)可以是“Joe”。在其他優(yōu)點(diǎn)中,這種格式允許RDF以點(diǎn)和弧線的圖表來(lái)表示語(yǔ)句。在圖表中,主語(yǔ)和賓語(yǔ)可以用例如橢圓、圓形或方形,或它們的某種組合來(lái)表示,而RDF語(yǔ)句的謂語(yǔ)可以用連接每個(gè)語(yǔ)句的主語(yǔ)和語(yǔ)句的賓語(yǔ)的圓弧或箭頭來(lái)表示。
RDF的一個(gè)重要特性在于它提供了一種用于表述信息的通用框架。這允許信息在應(yīng)用程序之間交換,而不會(huì)丟失信息的任何含義。由于這種通用框架,應(yīng)用程序開(kāi)發(fā)者可以使用通用工具和解析器的可用性來(lái)處理RDF信息。
當(dāng)RDF規(guī)范描述數(shù)據(jù)模型時(shí),存在著許多查詢語(yǔ)言,沒(méi)有用于發(fā)布更新的語(yǔ)義網(wǎng)數(shù)據(jù)到分布式客戶端的標(biāo)準(zhǔn)方法。更具體地,傳統(tǒng)語(yǔ)義網(wǎng)解決方案(1)提供查詢語(yǔ)言和ARI用于從RDF圖表獲得具體的數(shù)據(jù)模式,(2)提供初步(rudimentary)事件系統(tǒng),允許客戶端在無(wú)論何時(shí)任何RDF語(yǔ)句被添加到倉(cāng)庫(kù)/存儲(chǔ)器或移除都接收通知(notification)。但是,這些傳統(tǒng)解決方案不能有效地傳輸更新到分布式客戶端,更具體地,不能分發(fā)更新以便客戶端只接收它們需要或請(qǐng)求的信息。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是為了提供一種用于發(fā)布更新的語(yǔ)義網(wǎng)數(shù)據(jù)到分布式客戶端的標(biāo)準(zhǔn)方法。
本發(fā)明的另一個(gè)目的是為了利用(leverage)發(fā)布/訂閱技術(shù)來(lái)分發(fā)更新的諸如RDF的語(yǔ)義網(wǎng)數(shù)據(jù),以便客戶端只接收它們需要的信息。
本發(fā)明的另一個(gè)目的是為了提供一種用于分發(fā)和加強(qiáng)語(yǔ)義網(wǎng)訪問(wèn)控制信息的結(jié)構(gòu)。
本發(fā)明的另一個(gè)目的是為了使用相同的發(fā)布/訂閱消息基礎(chǔ)結(jié)構(gòu)來(lái)既分發(fā)更新的語(yǔ)義網(wǎng)數(shù)據(jù),又分發(fā)相關(guān)改變到用于限制訪問(wèn)更新的語(yǔ)義網(wǎng)數(shù)據(jù)的控制信息。
這些或其他目的通過(guò)用于語(yǔ)義網(wǎng)更新的可伸縮分發(fā)的方法和系統(tǒng)來(lái)實(shí)現(xiàn)。本發(fā)明的第一個(gè)實(shí)施例利用發(fā)布/訂閱技術(shù)來(lái)分發(fā)那些更新以便客戶端只接收它們需要的信息。本發(fā)明的第二個(gè)實(shí)施例用訪問(wèn)控制特性來(lái)限制允許客戶端閱讀的語(yǔ)句??蛇x地,在第二個(gè)實(shí)施例中,可用相同的發(fā)布/訂閱消息基礎(chǔ)結(jié)構(gòu)來(lái)既分發(fā)更新的語(yǔ)義網(wǎng)數(shù)據(jù),又分發(fā)相關(guān)改變到訪問(wèn)控制信息。
本發(fā)明特別好地適用于資源描述框架(RDF)語(yǔ)言。在本發(fā)明的優(yōu)選實(shí)施例中,客戶端通過(guò)同步網(wǎng)絡(luò)服務(wù)操作和異步JMS更新的結(jié)合來(lái)與RDF存儲(chǔ)服務(wù)器通信,且客戶端可以只注冊(cè)它們感興趣的更新。
從詳述和顯示本發(fā)明優(yōu)選實(shí)施例的參考附圖的下列詳細(xì)描述的考慮,本發(fā)明的進(jìn)一步益處和優(yōu)點(diǎn)將變得明顯。
圖1顯示實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)。
圖2顯示可以用于本發(fā)明的實(shí)現(xiàn)的示例消息。
圖3是描述由圖1系統(tǒng)的客戶端的啟動(dòng)和事件處理的流程圖。
圖4是顯示由圖1服務(wù)器的啟動(dòng)和請(qǐng)求處理的流程圖。
圖5顯示圖1的系統(tǒng)的變化形式。
圖6描述圖5的系統(tǒng)的更新管理器的更新消息流程和內(nèi)部狀態(tài)。
圖7是描述圖5的系統(tǒng)的更新管理器的操作的流程圖。
圖8顯示用在圖5的系統(tǒng)中的樣本消息。
圖9描述對(duì)圖7的結(jié)構(gòu)的可選變化形式。
圖10顯示圖9的更新管理器的更新消息流程和內(nèi)部狀態(tài)。
圖11是描述圖9的系統(tǒng)的更新管理器的操作的流程圖。
圖12顯示用在圖9的系統(tǒng)中的樣本消息。
具體實(shí)施例方式
圖1描述可用于本發(fā)明實(shí)踐的分布式計(jì)算機(jī)系統(tǒng)100。具體地,圖1顯示了服務(wù)器計(jì)算機(jī)102、多個(gè)客戶端計(jì)算機(jī)104,和發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)106。系統(tǒng)100的設(shè)備通過(guò)任何適合的網(wǎng)絡(luò)連接在一起。優(yōu)選地,例如,該網(wǎng)絡(luò)可以是英特網(wǎng),也可以是內(nèi)部網(wǎng)、局域網(wǎng)、廣域網(wǎng),或其他網(wǎng)絡(luò)。
任何適合的服務(wù)器102可被用在系統(tǒng)100中,例如,該服務(wù)器可以是IBMRS/6000服務(wù)器。而且,系統(tǒng)的客戶端104可以是例如個(gè)人計(jì)算機(jī)、膝上計(jì)算機(jī)、服務(wù)器、工作站、主要框架計(jì)算機(jī),或其他能在網(wǎng)絡(luò)上通信的設(shè)備。同樣,系統(tǒng)100的設(shè)備可以用諸如電線、光纖或無(wú)線通信鏈接的寬范圍的適合的連接器或鏈接連接到網(wǎng)絡(luò)。分布式系統(tǒng)100可以包括未在圖1中示出的附加服務(wù)器、客戶端和其他設(shè)備。
如上所述,在所描述的例子中,系統(tǒng)100的設(shè)備可以經(jīng)由英特網(wǎng)連接在一起,英特網(wǎng)即用TCP/IP協(xié)議組來(lái)相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全世界范圍的集合。在系統(tǒng)100的操作中,服務(wù)器102提供數(shù)據(jù)和應(yīng)用程序給客戶端。在其它功能中,服務(wù)器和客戶端存儲(chǔ)諸如RDF語(yǔ)句的語(yǔ)義網(wǎng)語(yǔ)句。由于這個(gè)原因,如圖1中所描述的,服務(wù)器102被稱為RDF存儲(chǔ)服務(wù)器,客戶端104被成為RDF存儲(chǔ)客戶端。
任何適合的機(jī)制可被用于存儲(chǔ)RDF語(yǔ)句。例如,所提交的待決的申請(qǐng)(律師案號(hào)POU920050098US1)“用于控制對(duì)語(yǔ)義網(wǎng)語(yǔ)句的訪問(wèn)的方法和系統(tǒng)”和所提交的待決的申請(qǐng)(律師案號(hào)POU920050099US1)“用于有效地在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)語(yǔ)義網(wǎng)語(yǔ)句的方法和系統(tǒng)”中披露了可被用于存儲(chǔ)RDF語(yǔ)句的關(guān)系數(shù)據(jù)庫(kù),其公開(kāi)文件以其整體被引用合并于此。
本發(fā)明通常定向于這種語(yǔ)義語(yǔ)句的分發(fā)。更具體地,本發(fā)明利用在106所示的現(xiàn)有JMS發(fā)布/訂閱技術(shù)(例如,IBM Websphere事件代理(EventBroker)),以分發(fā)RDF更新以便客戶端只接收它們需要的信息。更新包括添加、改變或移除RDF語(yǔ)句。
在系統(tǒng)100中,客戶端104用JMS標(biāo)準(zhǔn)所提供的特性、基于內(nèi)容的消息選擇來(lái)監(jiān)聽(tīng)事件。服務(wù)器102發(fā)布所有事件到發(fā)布/訂閱云106中,允許代理(broker)丟棄不匹配任何客戶端訂閱的事件。圖2所描述的示例消息顯示可用于由客戶端選擇的屬性。具體地,在202顯示了用于添加語(yǔ)句的消息,在204顯示了用于改變語(yǔ)句的消息,在206顯示了用于移除語(yǔ)句的消息。使用JMS消息選擇器語(yǔ)言(類(lèi)似于SQL),客戶端可以監(jiān)聽(tīng)影響具體語(yǔ)句或匹配具體主語(yǔ)/謂語(yǔ)/賓語(yǔ)模式的語(yǔ)句的改變。因此,客戶端可以不能接收由服務(wù)器102產(chǎn)生的所有事件,但是它們能有效地監(jiān)聽(tīng)涉及具體主語(yǔ)資源的所有語(yǔ)句。
圖3描述保持子圖實(shí)時(shí)更新的客戶端啟動(dòng)和事件處理。在此例程中,在步驟302,客戶端104連接到JMS代理云106,用基于內(nèi)容消息選擇來(lái)訂閱事件。在步驟304,客戶端開(kāi)始接收更新。在步驟306,客戶端執(zhí)行服務(wù)器端RDF(例如RDQL(RDF Data Query Language)查詢或SPARQL(簡(jiǎn)單協(xié)議和RDF查詢語(yǔ)言)),經(jīng)由網(wǎng)絡(luò)服務(wù),來(lái)發(fā)送(populate)初始數(shù)據(jù)。
在步驟310,例程檢查以確定是否有任何JMS消息未決(pend)。如果沒(méi)有消息未決,重復(fù)該步驟直到消息未決;以及當(dāng)消息未決時(shí),例程移動(dòng)到步驟312。在這一步,客戶端檢查以確定未決消息是否指示RDF語(yǔ)句以及被移除。如果正是這種情況,在步驟314語(yǔ)句從本地RDF存儲(chǔ)器中被移除,則例程返回到步驟310。
如果在步驟312,未決消息不指示正移除RDF語(yǔ)句,那么該未決消息指示正添加或修改語(yǔ)句,且例程從步驟312前進(jìn)到步驟316。在這一步,檢查消息上的時(shí)間戳。如果,如在步驟320所呈現(xiàn)的,該時(shí)間戳顯示更新陳舊了,然后例程回到步驟310。如果消息不陳舊,然后在步驟322,用新語(yǔ)句信息更新本地存儲(chǔ)器,然后例程回到步驟310。
圖4顯示服務(wù)器102的啟動(dòng)和請(qǐng)求處理。在步驟402,服務(wù)器啟動(dòng)并連接發(fā)布/訂閱代理云106作為發(fā)布者;在步驟404,服務(wù)器開(kāi)始監(jiān)聽(tīng)網(wǎng)絡(luò)服務(wù)器請(qǐng)求。在步驟406,服務(wù)器檢查以確定是否有任何請(qǐng)求未決。如果沒(méi)有,服務(wù)器繼續(xù)監(jiān)聽(tīng)請(qǐng)求直到有請(qǐng)求未決。當(dāng)發(fā)生這種情況時(shí),例程繼續(xù)前進(jìn)到步驟410,此處例程確定該請(qǐng)求是否導(dǎo)致任何改變。如果不,于是在步驟412處理請(qǐng)求并返回?cái)?shù)據(jù),然后例程返回步驟406。
但是,如果在步驟410,請(qǐng)求不導(dǎo)致改變,例程繼續(xù)前進(jìn)到步驟414,處理請(qǐng)求并返回?cái)?shù)據(jù)。然后在步驟416,為每個(gè)被修改的語(yǔ)句發(fā)布更新消息,然后例程返回步驟406。
在系統(tǒng)100的操作中,客戶端通過(guò)同步網(wǎng)絡(luò)服務(wù)操作和異步JMS更新的結(jié)合來(lái)與RDF存儲(chǔ)服務(wù)器通信。語(yǔ)句等級(jí)訪問(wèn)控制列表限制了哪些客戶端被允許讀取哪些語(yǔ)句,可能會(huì)極大地復(fù)雜該操作。這種訪問(wèn)控制等級(jí)意味著不能只依賴于簡(jiǎn)單的發(fā)布/訂閱,因?yàn)樾枰恍?yīng)用程序等級(jí)驗(yàn)證(authentication)和消息過(guò)濾。另外,在事務(wù)的范圍內(nèi)添加、修改和移除RDF語(yǔ)句。這也復(fù)雜了該情形,因?yàn)槿魏尉唧w的客戶端可能只被允許閱覽事務(wù)中包含的某些語(yǔ)句。
圖5顯示了適應(yīng)這種訪問(wèn)控制的系統(tǒng)500的結(jié)構(gòu)。與系統(tǒng)100類(lèi)似,系統(tǒng)500包括存儲(chǔ)服務(wù)器502,一個(gè)或多個(gè)存儲(chǔ)客戶端504,和發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)506。系統(tǒng)500還包括一個(gè)或多個(gè)更新管理器510和ACL數(shù)據(jù)庫(kù)512。如圖所示,服務(wù)器502、發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)506、更新管理器510和數(shù)據(jù)庫(kù)512形成可信服務(wù)器網(wǎng)絡(luò)514。
在系統(tǒng)500,客戶端可以連接于許多更新管理器中的一個(gè)(最可能使用例如IBM WebSphere MQ的點(diǎn)到點(diǎn)JMS上的網(wǎng)絡(luò)服務(wù))。在驗(yàn)證后,客戶端對(duì)感興趣的語(yǔ)句更新指定模式。這些模式可以匹配語(yǔ)句的主語(yǔ)、謂語(yǔ)或賓語(yǔ),或服務(wù)器選擇來(lái)包括在更新中的其它元數(shù)據(jù),諸如語(yǔ)句產(chǎn)生的日期和時(shí)間。
由存儲(chǔ)服務(wù)器一次一個(gè)地在內(nèi)部發(fā)布/訂閱代理云上發(fā)布所有語(yǔ)句更新。更新管理器基于它們的客戶端提供的模式來(lái)訂閱語(yǔ)句更新,并監(jiān)聽(tīng)所有事務(wù)完成消息。每個(gè)語(yǔ)句更新被標(biāo)有ACL(訪問(wèn)控制列表)標(biāo)識(shí)符。每次更新管理器接收更新時(shí),在傳遞該信息之前必須保證該客戶端被允許閱覽該信息。
參考圖5和6,在此結(jié)構(gòu)中,RDF存儲(chǔ)服務(wù)器直接與所有更新管理器服務(wù)器共享ACL數(shù)據(jù)庫(kù)??梢宰⒁獾剑ǔCL數(shù)據(jù)改變比語(yǔ)句更新頻率小得多。不需要附加的優(yōu)化,每個(gè)更新管理器在每次接收代表客戶端的相關(guān)語(yǔ)句更新時(shí)可能需要聯(lián)系A(chǔ)CL數(shù)據(jù)庫(kù)。
如果安全策略強(qiáng)制允許在對(duì)訪問(wèn)控制數(shù)據(jù)庫(kù)改變后的一些延時(shí),則可以在此應(yīng)用HTTP式緩存。依賴于由ACL數(shù)據(jù)庫(kù)支持的、存儲(chǔ)服務(wù)器配置的過(guò)期時(shí)間或修改即獲取(get-if-modified)操作,可允許更新管理器緩存ACL信息??梢宰⒁獾?,連接于不同更新管理器的客戶端用緩存能看到數(shù)據(jù)的不同視角(對(duì)應(yīng)于訪問(wèn)控制數(shù)據(jù)的不同版本)。
圖7更詳細(xì)地顯示更新管理器的操作。在步驟702,更新管理器接受來(lái)自客戶端的連接;在步驟704,進(jìn)行客戶端驗(yàn)證。然后,在步驟706,例程確定是否有來(lái)自存儲(chǔ)服務(wù)器的語(yǔ)句更新未決。如果沒(méi)有,例程前進(jìn)到步驟710,此處例程確定是否有來(lái)自存儲(chǔ)服務(wù)器的完成的事務(wù)未決。如果事務(wù)未完成,則例程返回步驟706并從那里繼續(xù)下去。如果事務(wù)完成了,則例程繼續(xù)前進(jìn)到步驟712,此處經(jīng)由點(diǎn)到點(diǎn)JMS連接將完成的事務(wù)發(fā)送到用戶。在此之后,例程返回步驟706,然后從那里繼續(xù)下去。
在步驟706,如果有語(yǔ)句更新未決,則在步驟714,例程在訪問(wèn)控制數(shù)據(jù)庫(kù)中查詢更新ACL URI,然后在步驟716確定用戶是否有讀取該更新的許可。如果用戶沒(méi)有許可,然后例程前進(jìn)到步驟720和722。在步驟720,經(jīng)由點(diǎn)到點(diǎn)連接發(fā)送更新到用戶;在步驟722,添加更新事務(wù)ID到未決事務(wù)的列表中。例程從步驟722前進(jìn)到步驟710。在步驟714,如果確定用戶沒(méi)有讀取該更新的許可,例程跳到步驟710并從那里繼續(xù)下去。
圖8顯示可用于系統(tǒng)500的操作中的樣品消息。具體地,在802顯示樣品語(yǔ)句更新消息,在804和806顯示樣品事務(wù)完成消息。
在本發(fā)明的實(shí)踐中可使用任何適合的更新管理器。例如,所提交的未決應(yīng)用(律師案號(hào)POU920050059US1)“用于追蹤和存儲(chǔ)語(yǔ)義網(wǎng)修改歷史的系統(tǒng)和方法”中,和所提交的未決應(yīng)用(律師案號(hào)POU920050060US1)“用于用分布式更新事件選擇的追蹤語(yǔ)義網(wǎng)數(shù)據(jù)的方法和系統(tǒng)”中描述了適合的更新管理器,其公開(kāi)文件以其整體被引用合并于此。
圖9描述本發(fā)明的另一可選特性。具體地,用圖9中所示的系統(tǒng)900,使用相同的發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)906來(lái)分發(fā)更新的語(yǔ)義網(wǎng)數(shù)據(jù),也分發(fā)對(duì)訪問(wèn)控制信息的相關(guān)改變。在該結(jié)構(gòu)中,優(yōu)選地,不需要犧牲可伸縮性,快速地施加對(duì)訪問(wèn)控制數(shù)據(jù)的修改到更新管理器910,在可信服務(wù)網(wǎng)絡(luò)內(nèi)的發(fā)布/訂閱消息被用于分發(fā)相關(guān)ACL信息(連同語(yǔ)句更新和事務(wù)完成事件)到每個(gè)更新管理器。
參考圖9和10,當(dāng)用戶連接于更新管理器910時(shí),服務(wù)器獲取相關(guān)ACL的當(dāng)前列表和組成員資格,然后訂閱經(jīng)由發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)506的數(shù)據(jù)中的改變。通過(guò)只訂閱包含用戶詢問(wèn)的參考的ACL更新消息或它們組的一個(gè),每個(gè)更新管理器避免接收無(wú)關(guān)的更新??梢宰⒁獾?,組修改(相對(duì)不頻繁地)需要更新管理器來(lái)改變它的發(fā)布/訂閱預(yù)定(subscription)。由于發(fā)布/訂閱的異步操作,更新管理器可能需要請(qǐng)求來(lái)自存儲(chǔ)服務(wù)器的ACL信息的完整抽點(diǎn)打印(snapshot)(類(lèi)似于啟動(dòng))。
這種結(jié)構(gòu)允許更新管理器來(lái)立即、無(wú)需聯(lián)系任何其他節(jié)點(diǎn)地過(guò)濾輸入的語(yǔ)句更新消息。
圖11顯示系統(tǒng)900的更新管理器910的操作。通過(guò)比較圖7和11能看出,系統(tǒng)900的管理器910的操作類(lèi)似于系統(tǒng)700的管理器710的操作,有一些附加的步驟和一些修改的步驟。
具體參考圖11,在步驟1102,更新管理器接受來(lái)自客戶端的連接;在步驟1104,進(jìn)行客戶端驗(yàn)證。然后,在步驟1106,用戶管理器聯(lián)系RDF存儲(chǔ)服務(wù)器,請(qǐng)求用戶被允許讀取的ACL URI列表并請(qǐng)求組成員資格。然后,在步驟1110,例程確定是否有來(lái)自存儲(chǔ)服務(wù)器的ACL或組更新未決。如果有,則在步驟1112,用戶被允許讀取來(lái)自服務(wù)器的刷新的ACL URI列表被更新,如果用戶組改變則訂閱改變。在步驟1112被完成后,例程前進(jìn)到步驟1114。如果在步驟1110沒(méi)有來(lái)自存儲(chǔ)服務(wù)器的ACL或組更新未決,例程也從步驟1110去往步驟1114。
在步驟1114,例程確定是否有來(lái)自存儲(chǔ)服務(wù)器的語(yǔ)句更新未決。如果沒(méi)有,例程前進(jìn)到步驟1116,此處,例程確定是否有來(lái)自存儲(chǔ)服務(wù)器的可應(yīng)用的完成的事務(wù)未決。如果沒(méi)有這樣的完成的事務(wù)未決,例程返回步驟1110并從那里繼續(xù)下去。如果在步驟1114有這樣完成的事務(wù)未決,則例程繼續(xù)前進(jìn)到步驟1120,此處,經(jīng)由點(diǎn)到點(diǎn)JMS連接發(fā)送完成的事務(wù)到用戶,且從未決事務(wù)列表中移除該事務(wù)。這之后,例程返回步驟1110,然后從那里繼續(xù)下去。
如果在步驟1114,有更新語(yǔ)句未決,例程繼續(xù)前進(jìn)到步驟1122,此處,關(guān)于用戶是否被授權(quán)于該更新進(jìn)行確定。如果用戶未被授權(quán),則例程前進(jìn)到步驟1116;但是,如果用戶被授權(quán)于該更新,例程去往步驟1124。在這一步,經(jīng)由點(diǎn)到點(diǎn)連接將更新發(fā)送到用戶。然后,在步驟1126,添加更新的事務(wù)ID到未決事務(wù)列表,然后從步驟1126,例程去往步驟1116,并從那里繼續(xù)下去。
圖12顯示可以被用在系統(tǒng)900的操作中的樣品消息。更具體地,在1202顯示了樣品語(yǔ)句更新消息,在1204和1206顯示了樣品事務(wù)完成消息。在1210、1212和1214描述了樣品ACL和組更新消息。更新管理器將訂閱包含用戶姓名或連接或一個(gè)該用戶組的消息。
同時(shí)很明顯,在此公開(kāi)的發(fā)明是被精確計(jì)算以滿足上述目標(biāo)的,將理解,由本領(lǐng)域技術(shù)人員可以作出無(wú)數(shù)的修改和實(shí)施例,意圖是,所附權(quán)利要求書(shū)覆蓋了落入本發(fā)明真實(shí)精神和范圍內(nèi)的所有這種修改和實(shí)施例。
權(quán)利要求
1.一種向分布式客戶端發(fā)布更新的語(yǔ)義網(wǎng)數(shù)據(jù)的方法,包括步驟在服務(wù)器中存儲(chǔ)語(yǔ)義網(wǎng)數(shù)據(jù);更新所述語(yǔ)義網(wǎng)數(shù)據(jù);服務(wù)器發(fā)布對(duì)所述語(yǔ)義網(wǎng)數(shù)據(jù)的一組更新;以及多個(gè)分布式客戶端的每個(gè)注冊(cè)所述更新的相應(yīng)的一個(gè)子集,并只接收在所述相應(yīng)的一個(gè)子集內(nèi)的更新。
2.根據(jù)權(quán)利要求1所述的方法,其中所述發(fā)布步驟包括步驟服務(wù)器發(fā)布所述更新到給定的發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu);以及所述注冊(cè)步驟包括步驟所述多個(gè)客戶端的每個(gè)向所述給定的發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)注冊(cè)以接收所述更新的相應(yīng)的一個(gè)子集。
3.根據(jù)權(quán)利要求2所述的方法,還包括步驟所述給定的發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)只向每個(gè)所述客戶端分發(fā)該客戶端已注冊(cè)的更新。
4.根據(jù)權(quán)利要求3所述的方法,其中所述更新是對(duì)語(yǔ)句的更新;還包括步驟提供識(shí)別哪些客戶端被允許讀取哪些語(yǔ)句的訪問(wèn)控制列表;以及其中所述分發(fā)步驟包括步驟發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)只向如在所述訪問(wèn)控制列表上所標(biāo)識(shí)的、被許可讀取語(yǔ)句的客戶端分發(fā)語(yǔ)句。
5.根據(jù)權(quán)利要求4所述的方法,還包括步驟在ACL數(shù)據(jù)庫(kù)中存儲(chǔ)所述訪問(wèn)控制列表;以及其中所述發(fā)布步驟包括步驟發(fā)布每個(gè)帶有屬性的所述語(yǔ)句,該屬性具備標(biāo)識(shí)訪問(wèn)控制列表之一的標(biāo)識(shí)符;以及所述只向被許可讀取語(yǔ)句的客戶端分發(fā)語(yǔ)句的步驟包括步驟i)提供更新管理器,以及ii)當(dāng)發(fā)布每個(gè)所述語(yǔ)句時(shí),所述更新管理器在ACL數(shù)據(jù)庫(kù)中找到由所發(fā)布的語(yǔ)句的屬性的標(biāo)識(shí)符所標(biāo)識(shí)的訪問(wèn)控制列表,并用所找到的訪問(wèn)控制列表來(lái)確定哪些客戶端被授權(quán)讀取所述語(yǔ)句。
6.根據(jù)權(quán)利要求4所述的方法,還包括步驟更新所述訪問(wèn)控制列表;提供更新管理器;以及所述服務(wù)器使用被用來(lái)分發(fā)對(duì)所述語(yǔ)義網(wǎng)數(shù)據(jù)的更新的相同的發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu),來(lái)向更新管理器分發(fā)對(duì)訪問(wèn)控制列表的更新。
7.一種用于向分布式客戶端發(fā)布更新的語(yǔ)義網(wǎng)數(shù)據(jù)的服務(wù)器/客戶端系統(tǒng),包括存儲(chǔ)包括更新的語(yǔ)義網(wǎng)數(shù)據(jù)的語(yǔ)義網(wǎng)數(shù)據(jù)的服務(wù)器,所述服務(wù)器包括用于發(fā)布一組更新的所述語(yǔ)義網(wǎng)數(shù)據(jù)的指令;多個(gè)分布式客戶端,所述多個(gè)分布式客戶端的每個(gè)包括用于注冊(cè)所述更新的相應(yīng)的一個(gè)子集的指令;以及基礎(chǔ)結(jié)構(gòu),用于僅向每個(gè)所述客戶端分發(fā)該客戶端已注冊(cè)的、所述更新的相應(yīng)的一個(gè)子集內(nèi)的更新。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述基礎(chǔ)結(jié)構(gòu)是發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu);所述服務(wù)器向所述發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)發(fā)布所述更新;以及所述多個(gè)客戶端的每個(gè)向所述發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)注冊(cè)以接收所述更新的相應(yīng)的一個(gè)子集。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)僅向每個(gè)所述客戶端分發(fā)客戶端已注冊(cè)的更新。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述更新是對(duì)語(yǔ)句的更新,其還包括標(biāo)識(shí)哪些客戶端被允許讀取哪些語(yǔ)句的訪問(wèn)控制列表;以及其中所述發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)只向由于被標(biāo)識(shí)在所述訪問(wèn)控制列表上而被許可讀取語(yǔ)句的客戶端分發(fā)語(yǔ)句。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述服務(wù)器發(fā)布每個(gè)帶有屬性的所述語(yǔ)句,該屬性具備所述標(biāo)識(shí)訪問(wèn)控制列表之一的標(biāo)識(shí)符,且所述系統(tǒng)還包括存儲(chǔ)所述訪問(wèn)控制列表的ACL數(shù)據(jù)庫(kù);以及更新管理器,其中當(dāng)發(fā)布每個(gè)語(yǔ)句時(shí),所述更新管理器在ACL數(shù)據(jù)庫(kù)中找到由所發(fā)布的語(yǔ)句的屬性的標(biāo)識(shí)符所標(biāo)識(shí)的訪問(wèn)控制列表,并用所找到的訪問(wèn)控制列表來(lái)確定哪些客戶端被授權(quán)讀取所述語(yǔ)句。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),還包括更新管理器;以及其中所述訪問(wèn)控制列表被更新;以及所述服務(wù)器使用被用來(lái)分發(fā)對(duì)所述語(yǔ)義網(wǎng)數(shù)據(jù)的更新的相同的發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu),來(lái)向更新管理器分發(fā)對(duì)訪問(wèn)控制列表的更新。
全文摘要
所公開(kāi)的是用于語(yǔ)義網(wǎng)更新的可伸縮性分發(fā)的方法和系統(tǒng)。本發(fā)明的第一個(gè)實(shí)施例利用發(fā)布/訂閱技術(shù)來(lái)分發(fā)那些更新以便客戶端只接收它們需要的信息。本發(fā)明的第二個(gè)實(shí)施例用訪問(wèn)控制特性來(lái)限制客戶端被允許讀取的語(yǔ)句??蛇x地,在這第二個(gè)實(shí)施例中,相同的發(fā)布/訂閱消息基礎(chǔ)結(jié)構(gòu)可以被用于分發(fā)更新的語(yǔ)義網(wǎng)數(shù)據(jù),也可用于分發(fā)對(duì)訪問(wèn)控制信息的相關(guān)改變。本發(fā)明特別適合于使用資源描述框架(RDF)語(yǔ)言。
文檔編號(hào)H04L12/42GK101090337SQ20071010901
公開(kāi)日2007年12月19日 申請(qǐng)日期2007年6月12日 優(yōu)先權(quán)日2006年6月12日
發(fā)明者約瑟夫·P·貝茨, 馬修·N·羅伊, 克里斯托弗·R·文森特 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司