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

基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng)及方法

文檔序號(hào):7809159閱讀:723來(lái)源:國(guó)知局
專利名稱:基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明屬于信息技術(shù)領(lǐng)域,建立了一種基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng)及其服務(wù)方法。
背景技術(shù)
網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)技術(shù)構(gòu)成了分布式計(jì)算的基本技術(shù)支撐,也成為構(gòu)建現(xiàn)代信息大廈的基石,大量的數(shù)據(jù)采集、存儲(chǔ)、分析依賴于分布式計(jì)算。異構(gòu)的計(jì)算機(jī)硬件系統(tǒng)、軟件平臺(tái)使得現(xiàn)代分布式系統(tǒng)依賴于共同遵循的契約和協(xié)議,比如TCP/IP協(xié)議、HTTP協(xié)議等。軟件開(kāi)發(fā)人員易于接受程序開(kāi)發(fā)模式,在分布式計(jì)算領(lǐng)域產(chǎn)生了一系列方便程序開(kāi)發(fā),屏蔽網(wǎng)絡(luò)通信細(xì)節(jié)的分布式組件技術(shù),如Windows平臺(tái)的上RPC (Remote Procedure Call)>DC0M (Distributed Component Object Model)的 CORBA (Common Object Request Broker Architecture), Java 的 RMI (Remote Method Interface)等。近年來(lái),Web 技術(shù)的廣泛應(yīng)用使得以HTTP協(xié)議為載體的XML Web Service, Ajax等又構(gòu)成新一代分布式SOA (Service-Oriented Archit)的基礎(chǔ)。這些分布式服務(wù)組件技術(shù)以程序設(shè)計(jì)語(yǔ)言為原型進(jìn)行構(gòu)建,如RPC協(xié)議以面向過(guò)程的語(yǔ)言為原型,遠(yuǎn)程計(jì)算資源被以遠(yuǎn)程函數(shù)的形式提供給開(kāi)發(fā)者;DC0M、CORBA則以面向?qū)ο笳Z(yǔ)言為基礎(chǔ),以接口的形式公布功能給使用者;XML Web Service和Ajax技術(shù)雖然暴露的是面向?qū)ο蟮慕涌?,但是由于其依賴于無(wú)狀態(tài)的HTTP協(xié)議,因此不同操作之間也是無(wú)狀態(tài)的。但是無(wú)論哪種模式,計(jì)算模型是隱含了客戶端請(qǐng)求, 服務(wù)端響應(yīng)的計(jì)算模式。

發(fā)明內(nèi)容
本發(fā)明的目的是建立一種基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng),能夠表達(dá)服務(wù)執(zhí)行行為和交互行為。本發(fā)明的另外一個(gè)目的是提供基于該系統(tǒng)的服務(wù)方法,能夠滿足服務(wù)端與客戶端密集的交互請(qǐng)求需求。為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明的服務(wù)系統(tǒng)采用的技術(shù)方案如下
基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng),包括狀態(tài)機(jī)-交互事件模型和基于該模型的分布式服務(wù)組件規(guī)范,其中,狀態(tài)機(jī)-交互事件模型包括狀態(tài)機(jī)和交互事件兩種基本元素,狀態(tài)機(jī)包含狀態(tài)和狀態(tài)遷移兩種集合,每個(gè)狀態(tài)由狀態(tài)名稱定義,所述狀態(tài)機(jī)用以表達(dá)服務(wù)程序的運(yùn)行邏輯,在服務(wù)運(yùn)行時(shí)根據(jù)自身邏輯對(duì)外發(fā)布狀態(tài)變遷;交互事件包含事件名稱、傳出數(shù)據(jù)和傳入數(shù)據(jù),服務(wù)用傳出數(shù)據(jù)向客戶端發(fā)送數(shù)據(jù),用傳入數(shù)據(jù)從客戶端請(qǐng)求數(shù)據(jù),所述交互事件用以定義和實(shí)現(xiàn)服務(wù)的交互行為;
所述分布式服務(wù)組件規(guī)范包括服務(wù)行為描述契約、服務(wù)組件接口模型和服務(wù)消息協(xié)作模型,服務(wù)行為描述契約遵循所述狀態(tài)機(jī)-交互事件模型,用以描述服務(wù)的執(zhí)行行為和交互行為,服務(wù)的使用者基于所述服務(wù)行為描述契約建立與服務(wù)的交互代碼;服務(wù)組件接口模型使用面向?qū)ο蟮姆椒ǘx所述狀態(tài)機(jī)-交互事件模型的服務(wù)組件接口,包括服務(wù)上下文接口和服務(wù)對(duì)象接口,服務(wù)上下文接口負(fù)責(zé)服務(wù)對(duì)象與外界的通信,服務(wù)對(duì)象接口負(fù)責(zé)服務(wù)的實(shí)現(xiàn);服務(wù)消息協(xié)作模型包含服務(wù)端回調(diào)客戶端的持久連接和服務(wù)端等待客戶端查詢兩種消息協(xié)作模型,所述服務(wù)端回調(diào)客戶端的持久連接消息協(xié)作模型如下客戶端與服務(wù)建立雙向通信,服務(wù)器將狀態(tài)轉(zhuǎn)換和交互事件序列化成消息發(fā)送到客戶端,并從客戶端獲得響應(yīng)消息;所述服務(wù)端等待客戶端查詢消息協(xié)作模型如下服務(wù)器端建立一個(gè)消息等待對(duì)象,服務(wù)器引發(fā)狀態(tài)切換和交互事件后,將信息更新到消息等待對(duì)象,服務(wù)即進(jìn)入等待,客戶端查詢得到消息內(nèi)容,通過(guò)網(wǎng)絡(luò)進(jìn)行響應(yīng),更新等待對(duì)象的狀態(tài),服務(wù)進(jìn)入重新執(zhí)行。本發(fā)明的服務(wù)方法采用的技術(shù)方案如下客戶端與服務(wù)器端通過(guò)網(wǎng)絡(luò)進(jìn)行通信并協(xié)同工作,完成計(jì)算任務(wù);服務(wù)執(zhí)行引發(fā)系統(tǒng)的所述狀態(tài)遷移和交互事件,并將它們轉(zhuǎn)換為網(wǎng)絡(luò)消息,所述客戶端通過(guò)截獲處理消息,完成與服務(wù)的交互事件。本發(fā)明基于服務(wù)系統(tǒng)的狀態(tài)機(jī)表達(dá)服務(wù)的運(yùn)行行為,通過(guò)服務(wù)系統(tǒng)的交互事件實(shí)現(xiàn)服務(wù)的交互行為,客戶端通過(guò)響應(yīng)服務(wù)引發(fā)的交互事件使用服務(wù)的功能,建立了以服務(wù)端為主導(dǎo)的分布式計(jì)算模型,能夠滿足服務(wù)端與客戶端密集的交互請(qǐng)求需求。對(duì)于某些特定領(lǐng)域,比如科學(xué)計(jì)算、過(guò)程模擬、交互式仿真等領(lǐng)域,本發(fā)明的系統(tǒng)和方法具有很強(qiáng)的針對(duì)性。


圖1是本發(fā)明基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng)結(jié)構(gòu)圖。圖2是本發(fā)明狀態(tài)機(jī)-交互事件模型的客戶端/服務(wù)器體系結(jié)構(gòu)圖。圖3是本發(fā)明分布式服務(wù)系統(tǒng)中狀態(tài)機(jī)的結(jié)構(gòu)圖。圖4是狀態(tài)機(jī)的UML結(jié)構(gòu)圖。圖5是本發(fā)明分布式服務(wù)系統(tǒng)中服務(wù)組件描述契約的結(jié)構(gòu)圖。圖6是服務(wù)組件描述契約的XML形式。圖7是本發(fā)明分布式服務(wù)系統(tǒng)中服務(wù)組件接口模型示意圖。圖8是本發(fā)明分布式服務(wù)系統(tǒng)中服務(wù)消息協(xié)作模型示意圖。圖9是服務(wù)消息協(xié)作模型的消息格式。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明的基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng)包含兩個(gè)不可分割的部分
A.狀態(tài)機(jī)-交互事件模型,定義了建立滿足此模型的此分布式服務(wù)系統(tǒng)的原理;
B.基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)組件規(guī)范,定義了實(shí)現(xiàn)符合A所定義的模型的在軟件層次的實(shí)現(xiàn)機(jī)制。本發(fā)明符合一般的客戶/服務(wù)器(Client/Server、C/S)的模型,包括服務(wù)器和客戶端兩部分,客戶端與服務(wù)器端通過(guò)網(wǎng)絡(luò)進(jìn)行通信并協(xié)同工作,完成計(jì)算任務(wù)。附圖1所示基于狀態(tài)機(jī)-交互事件模型的交互式服務(wù)方法,服務(wù)執(zhí)行引發(fā)狀態(tài)遷移和交互事件,并將它們轉(zhuǎn)換為網(wǎng)絡(luò)消息,客戶端通過(guò)截獲處理消息,完成與服務(wù)的交互事件。下面發(fā)明內(nèi)容基于面向?qū)ο蟪绦蛟O(shè)計(jì)(Object-Oriented Programming)相關(guān)術(shù)語(yǔ)進(jìn)行陳述,服務(wù)器程序和客戶端程序被視為基于網(wǎng)絡(luò)消息進(jìn)行交互的對(duì)象,因此也成為服務(wù)器對(duì)象和客戶端對(duì)象。(一)狀態(tài)機(jī)-交互事件模型
狀態(tài)機(jī)-交互事件模型包含狀態(tài)機(jī)和交互事件兩種基本要素,狀態(tài)機(jī)用以表達(dá)服務(wù)的運(yùn)行行為,交互事件用以實(shí)現(xiàn)與客戶端的交互。I.狀態(tài)機(jī)
本發(fā)明所述狀態(tài)機(jī),符合狀態(tài)機(jī)的一般形態(tài),包括狀態(tài)(Mate)和狀態(tài)遷移 (Transition )兩種集合。狀態(tài)是服務(wù)對(duì)象的運(yùn)行特征,一個(gè)服務(wù)對(duì)象包含若干狀態(tài),服務(wù)對(duì)象在運(yùn)行時(shí)處于其中的一種狀態(tài),稱為活動(dòng)狀態(tài)。狀態(tài)遷移,服務(wù)運(yùn)行時(shí)根據(jù)運(yùn)行邏輯切換活動(dòng)狀態(tài),從一個(gè)活動(dòng)狀態(tài)切換到另一個(gè)活動(dòng)狀態(tài)的過(guò)程成為狀態(tài)遷移。狀態(tài)遷移可以由源狀態(tài)(Source)和目標(biāo)狀態(tài)(Target) 構(gòu)成的二元組(Source,Target)來(lái)表達(dá)。假定服務(wù)運(yùn)行時(shí)狀態(tài)遷移是立即完成的,不存在等待和時(shí)間。一個(gè)服務(wù)對(duì)象的運(yùn)行可以由狀態(tài)機(jī)表達(dá),將服務(wù)的關(guān)鍵過(guò)程看成是狀態(tài)的遷移過(guò)程。附圖2是本發(fā)明所述狀態(tài)機(jī)的示意圖,服務(wù)包含A、B、C三個(gè)狀態(tài),A-B,B-C兩個(gè)狀態(tài)遷移。服務(wù)執(zhí)行時(shí)從一個(gè)狀態(tài)遷移到另一個(gè)狀態(tài),比如初始化狀態(tài)、運(yùn)行狀態(tài),關(guān)閉狀態(tài), 程序從初始化、執(zhí)行到卸載,構(gòu)成了一個(gè)服務(wù)的生存周期。狀態(tài)機(jī)在實(shí)現(xiàn)本發(fā)明所述基于狀態(tài)機(jī)-交互事件模型的服務(wù)方面有兩個(gè)作用
(1. 1)公開(kāi)服務(wù)的執(zhí)行行為,服務(wù)提供者通過(guò)公開(kāi)服務(wù)對(duì)象的狀態(tài)機(jī),表達(dá)服務(wù)的內(nèi)部執(zhí)行邏輯,服務(wù)使用者通過(guò)分析服務(wù)的狀態(tài)機(jī)了解服務(wù)的執(zhí)行行為。(1. 2)運(yùn)行時(shí)公開(kāi)服務(wù)執(zhí)行狀態(tài),服務(wù)運(yùn)行時(shí)總處于一個(gè)確定的活動(dòng)狀態(tài),基于自身運(yùn)行邏輯服務(wù)發(fā)生狀態(tài)遷移并通知客戶端,使客戶端獲得服務(wù)當(dāng)前的運(yùn)行特征,并有針對(duì)性的進(jìn)行處理。本發(fā)明所述狀態(tài)機(jī)中的狀態(tài)由唯一標(biāo)示此狀態(tài)的名字定義,狀態(tài)遷移是包含源狀態(tài)和目標(biāo)狀態(tài)的二元組。II.交互事件(Interactive Event)
本發(fā)明所述狀態(tài)機(jī)-交互事件模型中的交互事件屬于狀態(tài),也就是一個(gè)狀態(tài)包含多個(gè)交互事件,交互事件在服務(wù)運(yùn)行過(guò)程中觸發(fā),交互事件包含唯一標(biāo)示此事件的名字、傳出數(shù)據(jù)和傳入數(shù)據(jù)。本發(fā)明對(duì)于事件中的傳入數(shù)據(jù)和傳輸數(shù)據(jù)參照點(diǎn)是服務(wù)對(duì)象,如果通過(guò)事件將服務(wù)中的數(shù)據(jù)傳遞給客戶端,則為傳出數(shù)據(jù);如果通過(guò)事件將客戶端的數(shù)據(jù)返回給服務(wù)對(duì)象, 則為傳入數(shù)據(jù)。本發(fā)明規(guī)定傳入數(shù)據(jù)和傳出數(shù)據(jù)不可同時(shí)為空,且定義如果傳入數(shù)據(jù)為空,稱事件為無(wú)響應(yīng)的事件(No Respsonse Event),反之為需要用戶響應(yīng)的事件(Response Event)。本發(fā)明的交互事件在建立狀態(tài)機(jī)-交互事件模型的服務(wù)時(shí),作用有如下兩個(gè)
(2. 1)公開(kāi)服務(wù)的交互行為,服務(wù)提供者通過(guò)在狀態(tài)中聲明交互事件,公開(kāi)此狀態(tài)支持的交互行為,服務(wù)使用者根據(jù)事件聲明,編寫處理代碼。(2. 2)進(jìn)行服務(wù)交互,服務(wù)運(yùn)行時(shí),通過(guò)引發(fā)交互事件,等待客戶端對(duì)事件處理,實(shí)現(xiàn)客戶與服務(wù)端的交互功能。本發(fā)明所述I狀態(tài)機(jī)、II交互事件共同構(gòu)成了狀態(tài)機(jī)-交互事件模型,狀態(tài)機(jī)、狀態(tài)、狀態(tài)遷移、事件的結(jié)構(gòu)可由附圖3所示的UML類圖定義。(二)基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)組件規(guī)范
本發(fā)明所述基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)組件規(guī)規(guī)范包括基于狀態(tài)機(jī)-交互事件模型的服務(wù)組件行為描述契約(簡(jiǎn)稱服務(wù)組件行為描述契約),基于狀態(tài)機(jī)-交互事件模型的服務(wù)組件接口模型(簡(jiǎn)稱服務(wù)組件接口模型)和基于狀態(tài)機(jī)-交互事件模型的服務(wù)消息模型(簡(jiǎn)稱服務(wù)消息模型)。A.服務(wù)組件行為描述契約
本發(fā)明所述服務(wù)組件行為描述契約用以描述服務(wù)組件的執(zhí)行行為,基于狀態(tài)機(jī)-交互事件模型分為如下描述部分。(3. 1)數(shù)據(jù)聲明部分,定義了服務(wù)組件引發(fā)的事件所需要的數(shù)據(jù)結(jié)構(gòu)定義,本發(fā)明不對(duì)數(shù)據(jù)結(jié)構(gòu)的定義方式有任何傾向性選擇,具體的數(shù)據(jù)結(jié)構(gòu)定義方式可以采用各種已經(jīng)存在的數(shù)據(jù)結(jié)構(gòu)定義方式,比如XML Schema, DTD以及編程語(yǔ)言相關(guān)的定義方式,每個(gè)數(shù)據(jù)定義必須擁有唯一的名字。(3. 2)狀態(tài)聲明部分,定義了服務(wù)組件運(yùn)行可能的狀態(tài)。按照狀態(tài)機(jī)-交互事件模型,交互事件聲明包含在狀態(tài)定義中,交互事件包含的傳入數(shù)據(jù)和傳出數(shù)據(jù)定義依賴于 (3.1)數(shù)據(jù)聲明部分。(3. 2)狀態(tài)遷移定義部分,定義了狀態(tài)遷移的集合,狀態(tài)遷移基于源狀態(tài)和目標(biāo)狀態(tài)二元組進(jìn)行定義。服務(wù)組件行為描述契約基于上述機(jī)制定義了服務(wù)組件的數(shù)據(jù)、運(yùn)行與交互行為, 附圖4是服務(wù)組件行為描述契約的結(jié)構(gòu)圖示。將服務(wù)組件描述契約映射為基于文本的描述語(yǔ)言,共享給服務(wù)組件的使用者。附圖5是給出了基于XML的描述的服務(wù)行為契約的一種形式的樣例,在這個(gè)樣例中〈Behavior〉是最外層標(biāo)簽,<Datas>和<Data>定義數(shù)據(jù)聲明, 〈States〉和<Mate>定義了服務(wù)的狀態(tài)空間,〈Event〉定義服務(wù)的事件,〈Transitions〉和 <Transition>定義了狀態(tài)遷移。B.服務(wù)組件接口模型
本發(fā)明所述服務(wù)組件接口模型定義了基于狀態(tài)機(jī)-交互事件模型的服務(wù)系統(tǒng)實(shí)現(xiàn)的編程實(shí)現(xiàn)框架。服務(wù)接口模型采用服務(wù)容器與服務(wù)組件相分離的原則,服務(wù)容器承載服務(wù)組件,容器負(fù)責(zé)與外部進(jìn)行通信,服務(wù)組件通過(guò)服務(wù)容器上下文引發(fā)狀態(tài)遷移和交互事件, 附圖6是服務(wù)組件接口調(diào)用關(guān)系的示意圖。服務(wù)組件接口模型包含服務(wù)容器上下文件接口 (IServiceContext)與服務(wù)對(duì)象(IServiceObject)兩個(gè)接口,下面具體闡述服務(wù)組件接口模型。(4. 1)服務(wù)容器上下文接口(IServiceContext)
服務(wù)容器上下文接口作用是提供給服務(wù)對(duì)象,服務(wù)對(duì)象運(yùn)行時(shí)用以將服務(wù)內(nèi)部的狀態(tài)遷移和事件轉(zhuǎn)發(fā)出去,服務(wù)容器上下文提供了服務(wù)對(duì)象按照狀態(tài)機(jī)-交互事件模型與外界交互唯一機(jī)制,包含如下函數(shù)
χ.引發(fā)狀態(tài)遷移函數(shù)(SwitchMate)
函數(shù)原型的偽代碼是void SwitchState (string target),函數(shù)參數(shù)是target,表示目標(biāo)狀態(tài),因每次狀態(tài)遷移都是從當(dāng)前狀態(tài)發(fā)生,此函數(shù)的語(yǔ)義是從當(dāng)前狀態(tài)切換到目標(biāo)狀態(tài)。服務(wù)組件用此函數(shù)通知客戶端狀態(tài)遷移。y.引發(fā)無(wú)響應(yīng)的交互事件函數(shù)(FireNoResponseEvent)
函數(shù)原型的偽代碼 void FireNoResponseEvent (string event_name, DataObject output_data)。該函數(shù)包含兩個(gè)參數(shù),event_name是事件的名稱,output_data是輸出的數(shù)據(jù)對(duì)象,DataObject的具體實(shí)現(xiàn)依賴服務(wù)系統(tǒng)的需求。該函數(shù)提供服務(wù)運(yùn)行時(shí)引發(fā)無(wú)響應(yīng)的事件。ζ.引發(fā)需要用戶輸入響應(yīng)的交互事件函數(shù)
函數(shù)原型的偽代碼是 DataObject FireResponseEvent(string event_ name, DataObject output_data) 該函數(shù)包含兩個(gè)參數(shù),含義與y中相同。該函數(shù)包含一個(gè)返回值,用以返回客戶端輸入的數(shù)據(jù)。此函數(shù)可用于從客戶端請(qǐng)求數(shù)據(jù)。綜合x(chóng)、y、z,IkrviceContext接口的偽代碼可表示為如下形式。interface IServiceContext
{
void SwitchState (string state—name); void FireNoResponseEvent(string event—name,DataObject output_data); DataObject FireResponseEvent(string event—name, DataObject output_data);
ι
(4. 2)服務(wù)對(duì)象接口
服務(wù)對(duì)象接口(KerviceObject)定義了服務(wù)對(duì)象必須實(shí)現(xiàn)的函數(shù),主要目標(biāo)是與服務(wù)容器上下文產(chǎn)生關(guān)聯(lián),僅包含一個(gè)必須實(shí)現(xiàn)的執(zhí)行函數(shù)(Execute),函數(shù)包含一個(gè)參數(shù),既服務(wù)容器上下文接口(IServiceContext)。Execute函數(shù)原型是void Execute (IServiceContext context),接 Π 的偽代碼定義如下所示。interface ISeviceObject
{
void Execute(IServiceContext context);
ι
C.服務(wù)消息協(xié)作模型
本發(fā)明所述服務(wù)消息協(xié)作模型定義了基于狀態(tài)機(jī)-交互事件模型下,客戶端與服務(wù)組件通過(guò)消息進(jìn)行交互的機(jī)制,服務(wù)消息協(xié)作模型依賴于服務(wù)容器接口將服務(wù)組件的狀態(tài)和事件轉(zhuǎn)換為網(wǎng)絡(luò)消息。服務(wù)容器、服務(wù)組件、服務(wù)容器、客戶端之間的交互關(guān)系如附圖7?;跔顟B(tài)機(jī)-交互事件模型的服務(wù)器與客戶端的服務(wù)消息協(xié)作按照如下基本模式進(jìn)行。U.首先連接服務(wù),客戶端連接服務(wù)器,服務(wù)器開(kāi)始運(yùn)行。v.其次服務(wù)交互,服務(wù)向客戶端發(fā)送消息,客戶端響應(yīng)消息,進(jìn)行與服務(wù)的交互。 狀態(tài)和事件均轉(zhuǎn)換為網(wǎng)絡(luò)消息,其轉(zhuǎn)換規(guī)則如下
(i)狀態(tài)轉(zhuǎn)換為消息碼SWITCH_STATE+[狀態(tài)名稱]。返回消息碼為SUCCESS。(ii)無(wú)響應(yīng)事件轉(zhuǎn)換消息碼FIRE_N0_RESP0NSE_EVENT+ [事件名稱]+ [輸出數(shù)據(jù)]。返回值消息碼為SUCCESS。
(iii)響應(yīng)事件轉(zhuǎn)換為消息嗎FIRE_RESPONSE_EVENT+[事件名稱]+輸出數(shù)據(jù)。返回消息碼為SUCCESS+[輸入數(shù)據(jù)]。其中SWITCH_STATE、FIRE_N0_RESP0NSE_EVENT、FIRE_RESPONSE_EVENT、SUCCESS 均表示為整數(shù)。附圖8給出了消息格式的示意圖?;诰W(wǎng)絡(luò)連接模式的不同,服務(wù)消息協(xié)作可以有服務(wù)端回調(diào)客戶端持久連接和服務(wù)端等待客戶端查詢兩種通信模式。(1)服務(wù)端回調(diào)客戶端的持久連接
該模式下,服務(wù)器端與客戶端建立持久的網(wǎng)絡(luò)連接,并且可以基于此連接進(jìn)行雙向通信。此模式下服務(wù)組件的狀態(tài)遷移和事件都被序列化為消息,通過(guò)網(wǎng)絡(luò)發(fā)送到客戶端,服務(wù)端等待客戶端返回對(duì)此消息的響應(yīng),客戶端響應(yīng)完成之后,服務(wù)組件繼續(xù)之心。(2)服務(wù)端等待客戶端查詢
該模式下,服務(wù)端與客戶端不建立持久的網(wǎng)絡(luò)連接,客戶端建立與服務(wù)端建立一個(gè)網(wǎng)絡(luò)連接。服務(wù)容器上下文將消息緩存在服務(wù)端,建立一個(gè)等待對(duì)象(WaitObject)當(dāng)使當(dāng)前執(zhí)行線程等待,并設(shè)置等待信號(hào)的值為(true)??蛻舳送ㄟ^(guò)網(wǎng)絡(luò)查詢等待對(duì)象是否為真,如果有消息需要處理,則將消息取回,如果沒(méi)有消息處理,則等待有消息處理時(shí)才返回,消息處理完畢后,該連接即可關(guān)閉,客戶端與服務(wù)端重新建立一個(gè)網(wǎng)絡(luò)連接,進(jìn)行下一次查詢。
權(quán)利要求
1.基于狀態(tài)機(jī)-交互事件模型的分布式服務(wù)系統(tǒng),其特征在于,所述系統(tǒng)包括狀態(tài)機(jī)-交互事件模型和基于該模型的分布式服務(wù)組件規(guī)范,其中,狀態(tài)機(jī)-交互事件模型包括狀態(tài)機(jī)和交互事件兩種基本元素,狀態(tài)機(jī)包含狀態(tài)和狀態(tài)遷移兩種集合,每個(gè)狀態(tài)由狀態(tài)名稱定義,所述狀態(tài)機(jī)用以表達(dá)服務(wù)程序的運(yùn)行邏輯,在服務(wù)運(yùn)行時(shí)根據(jù)自身邏輯對(duì)外發(fā)布狀態(tài)變遷;交互事件包含事件名稱、傳出數(shù)據(jù)和傳入數(shù)據(jù), 服務(wù)用傳出數(shù)據(jù)向客戶端發(fā)送數(shù)據(jù),用傳入數(shù)據(jù)從客戶端請(qǐng)求數(shù)據(jù),所述交互事件用以定義和實(shí)現(xiàn)服務(wù)的交互行為;所述分布式服務(wù)組件規(guī)范包括服務(wù)行為描述契約、服務(wù)組件接口模型和服務(wù)消息協(xié)作模型,服務(wù)行為描述契約遵循所述狀態(tài)機(jī)-交互事件模型,用以描述服務(wù)的執(zhí)行行為和交互行為,服務(wù)的使用者基于所述服務(wù)行為描述契約建立與服務(wù)的交互代碼;服務(wù)組件接口模型使用面向?qū)ο蟮姆椒ǘx所述狀態(tài)機(jī)-交互事件模型的服務(wù)組件接口,包括服務(wù)上下文接口和服務(wù)對(duì)象接口,服務(wù)上下文接口負(fù)責(zé)服務(wù)對(duì)象與外界的通信,服務(wù)對(duì)象接口負(fù)責(zé)服務(wù)的實(shí)現(xiàn);服務(wù)消息協(xié)作模型包含服務(wù)端回調(diào)客戶端的持久連接和服務(wù)端等待客戶端查詢兩種消息協(xié)作模型,所述服務(wù)端回調(diào)客戶端的持久連接消息協(xié)作模型如下客戶端與服務(wù)建立雙向通信,服務(wù)器將狀態(tài)轉(zhuǎn)換和交互事件序列化成消息發(fā)送到客戶端,并從客戶端獲得響應(yīng)消息;所述服務(wù)端等待客戶端查詢消息協(xié)作模型如下服務(wù)器端建立一個(gè)消息等待對(duì)象,服務(wù)器引發(fā)狀態(tài)切換和交互事件后,將信息更新到消息等待對(duì)象,服務(wù)即進(jìn)入等待,客戶端查詢得到消息內(nèi)容,通過(guò)網(wǎng)絡(luò)進(jìn)行響應(yīng),更新等待對(duì)象的狀態(tài),服務(wù)進(jìn)入重新執(zhí)行。
2.利用如權(quán)利要求1所述分布式服務(wù)系統(tǒng)的服務(wù)方法,其特征在于,客戶端與服務(wù)器端通過(guò)網(wǎng)絡(luò)進(jìn)行通信并協(xié)同工作,完成計(jì)算任務(wù);服務(wù)執(zhí)行引發(fā)所述狀態(tài)遷移和交互事件, 并將它們轉(zhuǎn)換為網(wǎng)絡(luò)消息,所述客戶端通過(guò)截獲處理消息,完成與服務(wù)的交互事件。
全文摘要
本發(fā)明公開(kāi)了一種基于狀態(tài)機(jī)-交互事件的分布式服務(wù)系統(tǒng)及其方法,屬于信息技術(shù)領(lǐng)域。系統(tǒng)包括狀態(tài)機(jī)-交互事件服務(wù)模型以及基于此模型的分布式服務(wù)組件規(guī)范狀態(tài)機(jī)-交互事件服務(wù)模型的特征是服務(wù)運(yùn)行邏輯用狀態(tài)機(jī)表達(dá),每個(gè)狀態(tài)包含一組交互事件;分布式服務(wù)組件規(guī)范包括服務(wù)行為描述契約、服務(wù)服務(wù)組件接口模型和服務(wù)消息協(xié)作模型,服務(wù)行為描述契約描述服務(wù)的執(zhí)行行為和交互行為,服務(wù)服務(wù)組件接口模型定義用以實(shí)現(xiàn)服務(wù)的面向?qū)ο蠼涌?,服?wù)消息協(xié)作模型定義服務(wù)與客戶端交互的消息協(xié)作機(jī)制。本發(fā)明建立的服務(wù)與客戶端的互操作機(jī)制,可以支持具有豐富交互行為服務(wù)描述、服務(wù)實(shí)現(xiàn)與服務(wù)訪問(wèn)。
文檔編號(hào)H04L29/08GK102546791SQ20111045436
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者吳明光, 溫永寧, 胡迪, 閭國(guó)年, 陳旻, 陶虹 申請(qǐng)人:南京師范大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1