專利名稱:業(yè)務(wù)混搭的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web服務(wù)(Web Service)組合技術(shù),具體地,涉及能夠集成基于業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language,以下簡稱BPEL)的業(yè)務(wù)流程和窗ロ小部件(Widget)的業(yè)務(wù)混搭方法及系統(tǒng)。
背景技術(shù):
一般地,Web服務(wù)組合技術(shù)用于將多個Web服務(wù)組合成新的Web服務(wù)以描述業(yè)務(wù)流程。例如,面向Web服務(wù)的業(yè)務(wù)流程執(zhí)行語言BPEL是ー種常用的Web服務(wù)組合技木。這樣的Web服務(wù)組合技術(shù)著重于已有的Web服務(wù)在接ロ層面的組合。Web服務(wù)組合技術(shù)通常是預(yù)裝軟件的,而不是基于網(wǎng)絡(luò)的,即Web服務(wù)組合的設(shè)計(jì)、開發(fā)和測試是在本地利用預(yù)裝軟件工具進(jìn)行的。然后,所組合的Web服務(wù)被部署到運(yùn)行環(huán)境中。在部署之后,Web服務(wù)組合的邏輯并不能根據(jù)新的服務(wù)組合的要求而方便地定制。通常,如果Web服務(wù)組合有新的要求,則需要重新進(jìn)行Web服務(wù)組合的設(shè)計(jì)、開發(fā)和測試,這需要花費(fèi)較長的時間。因此,現(xiàn)有的Web服務(wù)組合技術(shù)并不能靈活地支持人機(jī)交互用戶接ロ的動態(tài)變化。如上所述,傳統(tǒng)的Web服務(wù)組合技術(shù)提供預(yù)裝軟件的開發(fā)平臺以組合不同的服務(wù),并將其部署到運(yùn)行服務(wù)器中。這些服務(wù)組合技術(shù)都依賴于Web服務(wù)和面向服務(wù)的架構(gòu)(SOA)技術(shù),并且是以服務(wù)器為中心的。另外,傳統(tǒng)的Web服務(wù)組合技術(shù)要求使用者具有必要的專業(yè)知識,主要適合于專業(yè)的程序開發(fā)人員,而對于非專業(yè)的人員,則使用很困難?;齑钍荳eb 2.0的核心技術(shù)之一,與BPEL技術(shù)相比,其提供了更簡單有效且自助的服務(wù)組合的方式。另外,相對于BPEL技木,混搭技術(shù)在應(yīng)用層面更粗粒度化,并著重于用戶界面呈現(xiàn)和信息級別的集成,而缺乏流程活動級別的集成?,F(xiàn)有的混搭技術(shù)工具通常提供易于使用的圖形用戶接口和可擴(kuò)展的組件集合,這樣,不具有相關(guān)知識的非專業(yè)人員也能夠方便地使用。下面簡要介紹幾種現(xiàn)有的混搭工具。Yahoo公司的Pipes (詳細(xì)信息可參見http://pipes, yahoo, com)著重于簡易信息聚合(Really Simple Syndication,簡稱RSS)源或Atom源的數(shù)據(jù)集成,但并不支持用戶接ロ的集成。Microsoft公司的Popf Iy提供用于數(shù)據(jù)訪問應(yīng)用和用戶接ロ組件的組合的圖形用戶接ロ,但不支持服務(wù)的編制。JackBe公司的Presto (詳細(xì)信息可參見http://www. jackbe. com)采用了類似于Pipes的方法以進(jìn)行數(shù)據(jù)混搭,并允許類似門戶的用戶接ロ Web小部件(Widget)的聚合以可視化這種混搭的輸出。然而,Presto并不支持服務(wù)的編制。Intel 公司的 Mash Maker (詳細(xì)信息可參見 http://mashmaker. intel. com)提供了一種用于說明網(wǎng)頁中的注釋的瀏覽器插件,其允許用Widget對網(wǎng)頁進(jìn)行個性化。該MashMaker工具唯一可使用的信息源是可通過已使用特殊插件擴(kuò)展的瀏覽器訪問的網(wǎng)頁所展示的信息源。雖然Mash Maker工具易于使用,但它對于可集成的信息源有很大的限制,例如,RSS源和Atom源等 都不可使用。Serena公司的業(yè)務(wù)混搭平臺(詳細(xì)信息可參見http://www. serena. com)提供了一種預(yù)裝軟件的工具以幫助用戶通過畫出結(jié)合已有的內(nèi)容、應(yīng)用和服務(wù)的工作流來開發(fā)自動業(yè)務(wù)流程,而無需寫代碼。雖然混搭運(yùn)行是在主機(jī)上執(zhí)行并基于瀏覽器,但用戶仍然需要下載并安裝使用預(yù)裝軟件工具已開發(fā)業(yè)務(wù)流程和混搭。另外,用戶接ロ的組合和服務(wù)的編制很復(fù)雜,并且沒有使用Widget標(biāo)準(zhǔn)技木,因此,很難與其它混搭工具相結(jié)合或集成。
發(fā)明內(nèi)容
本發(fā)明正是鑒于上述技術(shù)問題而提出的,其目的在于提供一種新的業(yè)務(wù)混搭的方法及系統(tǒng),其能夠提供非預(yù)裝軟件的業(yè)務(wù)流程開發(fā)平臺以集成基于BPEL的業(yè)務(wù)流程和窗ロ小部件,并使業(yè)務(wù)流程能夠支持混搭窗ロ小部件應(yīng)用。另外,該方法及系統(tǒng)適于非專業(yè)用戶使用。根據(jù)本發(fā)明的ー個方面,提供一種業(yè)務(wù)混搭的方法,包括根據(jù)所期望的業(yè)務(wù)的要求,生成與所述業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯,其中所述業(yè)務(wù)應(yīng)用邏輯包含Web服務(wù)和窗ロ小部件;混搭所述業(yè)務(wù)應(yīng)用邏輯中的所述窗ロ小部件以創(chuàng)建窗ロ小部件混搭應(yīng)用;在所述Web服務(wù)與所述窗ロ小部件混搭應(yīng)用中的窗ロ小部件之間建立適配關(guān)系;基于所述業(yè)務(wù)應(yīng)用邏輯和所述適配關(guān)系生成用于所述業(yè)務(wù)的業(yè)務(wù)流程;以及基于所述窗ロ小部件混搭應(yīng)用和所述適配關(guān)系,生成混搭窗ロ小部件應(yīng)用。根據(jù)本發(fā)明的另ー個方面,提供ー種業(yè)務(wù)混搭的系統(tǒng),包括應(yīng)用邏輯生成裝置,用于根據(jù)所期望的業(yè)務(wù)的要求,生成與所述業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯,其中所述業(yè)務(wù)應(yīng)用邏輯包含Web服務(wù)和窗ロ小部件;窗ロ小部件混搭裝置,用于混搭所述業(yè)務(wù)應(yīng)用邏輯中的所述窗ロ小部件以創(chuàng)建窗ロ小部件混搭應(yīng)用;適配裝置,用于在所述網(wǎng)絡(luò)服務(wù)與所述窗ロ小部件混搭應(yīng)用中的窗ロ小部件之間建立適配關(guān)系;業(yè)務(wù)流程生成裝置,用于基于所述業(yè)務(wù)應(yīng)用邏輯和所述適配關(guān)系生成用于所述業(yè)務(wù)的業(yè)務(wù)流程;以及混搭窗ロ小部件應(yīng)用生成裝置,用于基于所述窗ロ小部件混搭應(yīng)用和所述適配關(guān)系,生成混搭窗ロ小部件應(yīng)用。
圖I是根據(jù)本發(fā)明的一個實(shí)施例的業(yè)務(wù)混搭的方法的流程圖;圖2是說明業(yè)務(wù)流程中網(wǎng)絡(luò)服務(wù)與窗ロ小部件之間的適配的示意圖;圖3是根據(jù)本發(fā)明的另ー個實(shí)施例的業(yè)務(wù)混搭的方法的流程圖;圖4是根據(jù)本發(fā)明的一個實(shí)施例的業(yè)務(wù)混搭的系統(tǒng)的示意性方框圖;圖5是根據(jù)本發(fā)明的另ー個實(shí)施例的業(yè)務(wù)混搭的系統(tǒng)的示意性方框圖。
具體實(shí)施例方式相信通過以下結(jié)合附圖對本發(fā)明的具體實(shí)施方式
的詳細(xì)描述,本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)將更加明顯。圖I是根據(jù)本發(fā)明的一個實(shí)施例的業(yè)務(wù)混搭的方法的流程圖。下面結(jié)合附圖,對本實(shí)施例進(jìn)行詳細(xì)描述。如圖I所示,在步驟S101,根據(jù)所期望的業(yè)務(wù)的要求,生成與該業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯。在本實(shí)施例中,首先 ,根據(jù)業(yè)務(wù)的要求,獲取與該業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù)和窗ロ小部件元數(shù)據(jù),作為業(yè)務(wù)應(yīng)用邏輯的構(gòu)成要素。通常,Web服務(wù)元數(shù)據(jù)采用SOA元數(shù)據(jù)的形式,存儲在服務(wù)元數(shù)據(jù)存儲庫中。通過對服務(wù)元數(shù)據(jù)存儲庫的集中訪問,可以發(fā)現(xiàn)、使用和再使用這些服務(wù)元數(shù)據(jù),例如,Web服務(wù)描述語言(WSDL)文件、XML結(jié)構(gòu)定義(XSD)文件等。窗ロ小部件(Widget)是能夠在網(wǎng)頁上執(zhí)行的小插件或小應(yīng)用,用于實(shí)現(xiàn)一定的功能。在本實(shí)施例中,Widget遵循iWidget規(guī)范??捎玫腤idget被存儲在相應(yīng)的Widget存儲庫中,通過對Widget存儲庫的集中訪問,可以發(fā)現(xiàn)、使用和再使用這些Widget。當(dāng)獲取Web服務(wù)元數(shù)據(jù)時,從服務(wù)元數(shù)據(jù)存儲庫中取出與所期望的業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù)。這些Web元數(shù)據(jù)包括操作接口和數(shù)據(jù)類型,例如WSDL、XML結(jié)構(gòu)等。由于這些Web服務(wù)元數(shù)據(jù)可能來自不同的文件,因此,進(jìn)ー步對這些Web服務(wù)元數(shù)據(jù)進(jìn)行組裝。然后,從Widget存儲庫中取出與所期望的業(yè)務(wù)有關(guān)的Widget元數(shù)據(jù)。Widget元數(shù)據(jù)可以包含由用于客戶端的的JavaScript腳本文件和用于對標(biāo)記提供樣式的CSS(層疊樣式表)文件所提供并支持的標(biāo)記。然后,將所獲取的Web服務(wù)元數(shù)據(jù)和Widget元數(shù)據(jù)組合成業(yè)務(wù)應(yīng)用邏輯,其中,Web服務(wù)元數(shù)據(jù)形成業(yè)務(wù)應(yīng)用邏輯中的Web服務(wù),Widget元數(shù)據(jù)形成業(yè)務(wù)應(yīng)用邏輯中的Widget0在業(yè)務(wù)應(yīng)用邏輯中,Web服務(wù)用語實(shí)現(xiàn)所期望的業(yè)務(wù),而Widget可提供人機(jī)交互接ロ,以接收用戶的輸入。下面是使用基于JavaScript 對象表不(JavaScript Objection Notation,簡稱JS0N)的數(shù)據(jù)格式表示關(guān)于引用實(shí)現(xiàn)的業(yè)務(wù)應(yīng)用邏輯的例子{" VARIABLE":[{" type" :" string" , " name" :" firstName" },____{" type" :" http://Hellofforld: Incentive;/ , " name" :" incentiveVar"," location" :" http://{ip} : {port}/a25fb2a2-e0a6-46a9. b4ee. d701eld7ee8f;/ },____]," activities" : {" WEBSERVICE":[{" output"" interface" :" HellofforldProcessPartner;/ ," name" :" receivehttp4_Receive"," location " : " http://{ip}:{port}/Content/fl063cfl-a8d0-40b4. afOl. a24289a20167"," source"" target"" operation" :" startHelIofforldProcess"," portType" :" HellofforldProcess" }
],
" REST":[{ " password" : " pwd"," href" :" http://localhost:8080/resources/incentive/{firstName}"," output" : [____]," name" :" Rest_Get"," location " : " http://{ip}:{port}/Content/ldc2b51d-e5ea-4a71. bc59.f81689f85934// ," httpMethod" : " GET"," source"" target"" username" :" user" },{ ____" httpMethod" : " POST",____},____]," WIDGET":[{ " id" :" http://ibm.com/samples/widgets/widigetl"," name" :" Sampleffidiget"," version" :" I. 0"," source"" target"" context"],____}}可以看出,在該業(yè)務(wù)應(yīng)用邏輯中,“WEBSERVICE”部分描述Web服務(wù),“REST”和“WIDGET” 部分描述 Widget。接著,在步驟S105,混搭在步驟SlOl生成的業(yè)務(wù)應(yīng)用邏輯中的Widget以創(chuàng)建Widget混搭應(yīng)用。在本實(shí)施例中,混搭可使用現(xiàn)有的基于網(wǎng)絡(luò)的混搭工具來完成。當(dāng)進(jìn)行混搭時,從所生成的業(yè)務(wù)應(yīng)用邏輯中發(fā)現(xiàn)Widget,并基于事件組裝這些Widget以獲得Widget混搭應(yīng)用,也就是說,在Widget混搭應(yīng)用中的Widget之間根據(jù)事件建立聯(lián)結(jié)以共享信息。在本實(shí)施例中,可以使用兩種類型的事件發(fā)布事件和接收事件。發(fā)布事件是指Widget發(fā)布某些數(shù)據(jù)的事件,而接收事件是指Widget從其它Widget接收某些數(shù)據(jù)的事件。通過步驟S105獲得的Widget混搭應(yīng)用也表現(xiàn)為ー個Widget。然后,在步驟SI 10,在Web服務(wù)與Widget混搭應(yīng)用中的相關(guān)Widget之間建立適配關(guān)系。通過上述所獲得的業(yè)務(wù)應(yīng)用邏輯,Web服務(wù)與Widget已在應(yīng)用層上建立了聯(lián)系,在業(yè)務(wù)流程運(yùn)行時 為了使Web服務(wù)能夠與Widget交互,需要進(jìn)ー步在底層對Web服務(wù)和Widget建立適配關(guān)系。具體地,分別建立Web服務(wù)與相關(guān)的Widget在信息格式和傳輸協(xié)議上的轉(zhuǎn)換關(guān)系。通過適配,可以在Web和Widget服務(wù)之間建立雙向的聯(lián)結(jié),這樣,當(dāng)運(yùn)行業(yè)務(wù)流程時,來自Web服務(wù)的操作和輸入/輸出參數(shù)可通過轉(zhuǎn)換被傳送到相應(yīng)的Widget,而來自Widget的信息也可通過轉(zhuǎn)換被傳送到相應(yīng)的Web服務(wù)以啟動Web服務(wù)或重啟Web服務(wù)中的某些活動。在步驟SI 15,基于在步驟SlOl中獲得的業(yè)務(wù)應(yīng)用邏輯和在步驟SllO中建立的適配關(guān)系,生成用于所期望的業(yè)務(wù)的業(yè)務(wù)流程。在本實(shí)施例中,首先,根據(jù)業(yè)務(wù)應(yīng)用邏輯和適配關(guān)系,將業(yè)務(wù)應(yīng)用邏輯中的Web服務(wù)組合成基于BPEL的應(yīng)用。如前所述,BPEL技術(shù)可用于執(zhí)行Web服務(wù)的組合。所得到的基于BPEL的應(yīng)用是中間應(yīng)用格式,其獨(dú)立于特定的運(yùn)行環(huán)境。然后,根據(jù)實(shí)際的運(yùn)行環(huán)境,將基于BPEL的應(yīng)用轉(zhuǎn)換成可執(zhí)行的基于BPEL的業(yè)務(wù)流程。該業(yè)務(wù)流程是ニ進(jìn)制的形式,能夠在BPEL運(yùn)行環(huán)境中運(yùn)行。接著,在步驟S120,基于在步驟S105中生成的Widget混搭應(yīng)用和在步驟SllO中建立的適配關(guān)系,生成可執(zhí)行的混搭Widget應(yīng)用。該可執(zhí)行的混搭Widget應(yīng)用能夠直接部署到Widget運(yùn)行環(huán)境中運(yùn)行。圖2示出了通過步驟SI 15和S120分別生成的BPEL業(yè)務(wù)流程和混搭Widget應(yīng)用之間的適配的示意圖。為了清楚起見,圖2僅示出了 BPEL業(yè)務(wù)流程中ー個Web服務(wù)與Widget之間的適配的情形,本領(lǐng)域的普通技術(shù)人員能夠理解,多個Web服務(wù)的情形是類似的。在圖2的左側(cè)示出了 BPEL業(yè)務(wù)流程,其中各節(jié)點(diǎn)代表Web服務(wù),右側(cè)示出了與BPEL業(yè)務(wù)流程中的Web服務(wù)相關(guān)的Widget??梢钥闯觯ㄟ^適配,在BPEL業(yè)務(wù)流程的Web服務(wù)與相關(guān)的Widget之間建立了雙向的聯(lián)結(jié)。Web服務(wù)對Widget的操作和輸入/輸出參數(shù)在經(jīng)過信息格式和傳輸協(xié)議的轉(zhuǎn)換之后被傳輸給Widget,同時,通過Widget的運(yùn)行獲得的或者從外部接收的信息也通過信息格式和傳輸協(xié)議的轉(zhuǎn)換而傳輸給Web服務(wù)。通過以上描述可以看出,本實(shí)施例的業(yè)務(wù)混搭的方法提供了無需預(yù)裝軟件的業(yè)務(wù)流程開發(fā)平臺,非專業(yè)用戶能夠無需編碼地開發(fā)所需的業(yè)務(wù)流程。本實(shí)施例的方法通過對Web服務(wù)和Widget的組合而生成業(yè)務(wù)應(yīng)用邏輯,并創(chuàng)建Widget混搭應(yīng)用以提供人機(jī)交互用戶接ロ,從而使得BPEL業(yè)務(wù)流程能夠支持基于混搭用戶接ロ的人機(jī)交互,這樣,以流程為中心的業(yè)務(wù)混搭能夠更好地反映業(yè)務(wù)要求的變化。另外,本實(shí)施例的業(yè)務(wù)混搭的方法通過適配Web服務(wù)和Widget而在Web服務(wù)和Widget之間建立雙向聯(lián)結(jié),這樣,通過集成Widget、Web服務(wù)和數(shù)據(jù),可以使流程活動自動化。圖3示出了根據(jù)本發(fā)明的另ー個實(shí)施例的業(yè)務(wù)混搭的方法的流程圖。下面結(jié)合附圖,對本實(shí)施例進(jìn)行詳細(xì)描述,其中,對于與前面實(shí)施例相同的部分,使用相同的附圖標(biāo)記,并適當(dāng)省略其說明。在圖3所示的實(shí)施例中,步驟SlOl至S120都與圖I所示的實(shí)施例的步驟相同。在執(zhí)行了上述步驟之后,在步驟S301,部署包括業(yè)務(wù)流程運(yùn)行環(huán)境和窗ロ小部件運(yùn)行環(huán)境的運(yùn)行環(huán)境。在本實(shí)施例中,自動地提供業(yè)務(wù)流程運(yùn)行環(huán)境和網(wǎng)絡(luò)小部件運(yùn)行環(huán)境,并利用云計(jì)算能力進(jìn)行部署。業(yè)務(wù)流程運(yùn)行環(huán)境例如是專用的BPEL運(yùn)行環(huán)境,窗ロ小部件運(yùn)行環(huán)境例如是專用的Widget運(yùn)行環(huán)境。
接著,在步驟S305,將在步驟S115中生成的BPEL業(yè)務(wù)流程發(fā)布到業(yè)務(wù)流程運(yùn)行環(huán)境中。在本實(shí)施例中,BPEL業(yè)務(wù) 流程的發(fā)布是利用云計(jì)算能力自動將BPEL業(yè)務(wù)流程提供給專用的BPEL運(yùn)行環(huán)境。在步驟S310,將在步驟S120中生成的混搭Widget應(yīng)用發(fā)布到窗ロ小部件運(yùn)行環(huán)境中。同樣,混搭Widget應(yīng)用的發(fā)布是利用云計(jì)算能力自動將混搭Widget應(yīng)用提供給專用的Widget運(yùn)行環(huán)境。然后,在步驟S315,分別在業(yè)務(wù)流程運(yùn)行環(huán)境和窗ロ小部件運(yùn)行環(huán)境中運(yùn)行BPEL業(yè)務(wù)流程和混搭Widget應(yīng)用。在運(yùn)行時,BPEL業(yè)務(wù)流程和混搭Widget應(yīng)用能夠經(jīng)由適配而相互交換信息。通過以上描述可以看出,本實(shí)施例的業(yè)務(wù)混搭方法進(jìn)ー步提供了利用云計(jì)算能力的自動部署,它可自動地提供業(yè)務(wù)流程運(yùn)行環(huán)境和窗ロ小部件運(yùn)行環(huán)境,并將BPEL業(yè)務(wù)流程和混搭Widget應(yīng)用部署到相應(yīng)的運(yùn)行環(huán)境中。在同一個發(fā)明構(gòu)思下,圖4示出了根據(jù)本發(fā)明的一個實(shí)施例的業(yè)務(wù)混搭的系統(tǒng)的示意性方框圖。以下結(jié)合附圖,對本實(shí)施例進(jìn)行詳細(xì)描述,其中,對于與前面實(shí)施例相同的部分,適當(dāng)省略其說明。如圖4所示,本實(shí)施例的業(yè)務(wù)混搭的系統(tǒng)400包括應(yīng)用邏輯生成裝置401,其根據(jù)所期望的業(yè)務(wù)的要求,生成與該業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯,其中該業(yè)務(wù)應(yīng)用邏輯包含Web服務(wù)和窗ロ小部件;窗ロ小部件混搭裝置402,其混搭在應(yīng)用邏輯生成裝置401中生成的業(yè)務(wù)應(yīng)用邏輯中的窗ロ小部件以創(chuàng)建窗ロ小部件混搭應(yīng)用;適配裝置403,其在業(yè)務(wù)應(yīng)用邏輯中的Web服務(wù)與窗ロ小部件混搭應(yīng)用中的窗ロ小部件之間建立適配關(guān)系;業(yè)務(wù)流程生成裝置404,其基于業(yè)務(wù)應(yīng)用邏輯和適配關(guān)系生成用于所期望的業(yè)務(wù)的業(yè)務(wù)流程;以及混搭窗ロ小部件應(yīng)用生成裝置405,其基于窗ロ小部件混搭應(yīng)用和適配關(guān)系,生成混搭窗ロ小部件應(yīng)用。當(dāng)生成業(yè)務(wù)應(yīng)用邏輯時,在應(yīng)用邏輯生成裝置401中,獲取模塊4011獲取與業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù)和Widget元數(shù)據(jù)。如前所述,Web服務(wù)元數(shù)據(jù)和Widget分別存儲在各自的存儲庫中,通過訪問對應(yīng)的存儲庫可以發(fā)現(xiàn)、使用和再使用Web服務(wù)元數(shù)據(jù)和Widget0在本實(shí)施例中,獲取模塊4011包括服務(wù)組裝器,其從存儲Web服務(wù)元數(shù)據(jù)的存儲庫中取出有關(guān)的Web服務(wù)元數(shù)據(jù),并組裝Web服務(wù)元數(shù)據(jù);以及Widget取出単元,其從存儲Widget的存儲庫中取出Widget元數(shù)據(jù)。當(dāng)通過獲取模塊4011獲得了組裝的Web服務(wù)元數(shù)據(jù)和Widget元數(shù)據(jù)之后,應(yīng)用邏輯組合器4012將這些Web服務(wù)元數(shù)據(jù)和Widget元數(shù)據(jù)組合成業(yè)務(wù)應(yīng)用邏輯,其中,Web服務(wù)元數(shù)據(jù)形成Web服務(wù),Widget元數(shù)據(jù)形成Widget。對于所生成的業(yè)務(wù)應(yīng)用邏輯,在窗ロ小部件混搭裝置402中,發(fā)現(xiàn)模塊4021從該業(yè)務(wù)應(yīng)用邏輯中發(fā)現(xiàn)各個Widget,并由組裝模塊4022基于事件組裝這些Widget以獲得Widget混搭應(yīng)用。在組裝Widget時,各個Widget之間通過事件來建立關(guān)聯(lián)。如前所述,事件包括表明Widget發(fā)布數(shù)據(jù)的發(fā)布事件和表明Widget從其它Widget接收數(shù)據(jù)的接收事件。通過窗ロ小部件混搭裝置402,業(yè)務(wù)應(yīng)用邏輯中的多個Widget被混搭成ー個Widget。通過業(yè)務(wù)應(yīng)用邏輯,Web服務(wù)和Widget在應(yīng)用層面建立了聯(lián)結(jié)關(guān)系,為了提供運(yùn)行時Web服務(wù)和Widget之間的雙向聯(lián)結(jié),需要在Web服務(wù)和Widget混搭應(yīng)用中的Widget之間建立適配關(guān)系。因此,在 適配裝置403中,信息格式適配模塊4031建立Web服務(wù)與相關(guān)的Widget在信息格式上的轉(zhuǎn)換關(guān)系,傳輸協(xié)議適配模塊4032建立Web服務(wù)與相關(guān)的Widget在傳輸協(xié)議上的轉(zhuǎn)換關(guān)系。這樣,在運(yùn)行時,來自Web服務(wù)的操作和輸入/輸出參數(shù)通過適配裝置403傳輸?shù)絎idget混搭應(yīng)用,而來自Widget的信息通過適配裝置403提供給Web服務(wù)。然后,在業(yè)務(wù)流程生成裝置404中,應(yīng)用生成模塊4041基于所生成的業(yè)務(wù)應(yīng)用邏輯和適配關(guān)系,將業(yè)務(wù)應(yīng)用邏輯中的Web服務(wù)組合成基于BPEL的應(yīng)用。該BPEL應(yīng)用是獨(dú)立于具體的運(yùn)行環(huán)境的,因此,可以根據(jù)實(shí)際的運(yùn)行環(huán)境進(jìn)行轉(zhuǎn)換以在不同的運(yùn)行環(huán)境中運(yùn)行。然后,轉(zhuǎn)換模塊4042根據(jù)運(yùn)行環(huán)境,將該BPEL應(yīng)用轉(zhuǎn)換成可執(zhí)行的業(yè)務(wù)流程。同吋,在混搭窗ロ小部件應(yīng)用生成裝置405中,基于窗ロ小部件混搭應(yīng)用和適配關(guān)系,生成混搭Widget應(yīng)用。應(yīng)當(dāng)指出,本實(shí)施例的業(yè)務(wù)混搭的系統(tǒng)400在操作上能夠?qū)崿F(xiàn)如圖I所示的業(yè)務(wù)混搭的方法。圖5示出了根據(jù)本發(fā)明的另ー個實(shí)施例的業(yè)務(wù)混搭的系統(tǒng)500的示意性方框圖。下面結(jié)合附圖,對該實(shí)施例進(jìn)行詳細(xì)描述,其中,對于與前面實(shí)施例相同的部分,使用相同的附圖標(biāo)記,并適當(dāng)省略其說明。如圖5所示的系統(tǒng)500除了包括應(yīng)用邏輯生成裝置401、窗ロ小部件混搭裝置402、適配裝置403、業(yè)務(wù)流程生成裝置404和混搭窗ロ小部件應(yīng)用生成裝置405之外,還包括運(yùn)行環(huán)境部署裝置501,其部署包括業(yè)務(wù)流程運(yùn)行環(huán)境600和窗ロ小部件運(yùn)行環(huán)境700的運(yùn)行環(huán)境;業(yè)務(wù)流程應(yīng)用發(fā)布裝置502,其將業(yè)務(wù)流程發(fā)布到業(yè)務(wù)流程運(yùn)行環(huán)境600中;以及混搭窗ロ小部件應(yīng)用發(fā)布裝置503,其將混搭Widget應(yīng)用發(fā)布到窗ロ小部件運(yùn)行環(huán)境700 中。在運(yùn)行環(huán)境部署裝置501中,可以利用云計(jì)算能力自動地提供業(yè)務(wù)流程運(yùn)行環(huán)境600和窗ロ小部件運(yùn)行環(huán)境700,并調(diào)用業(yè)務(wù)流程應(yīng)用發(fā)布裝置502和混搭窗ロ小部件應(yīng)用發(fā)布裝置503。在本實(shí)施例中,業(yè)務(wù)流程運(yùn)行環(huán)境600例如是專用的BPEL運(yùn)行環(huán)境,窗ロ小部件運(yùn)行環(huán)境700例如是專用的Widget運(yùn)行環(huán)境。然后,業(yè)務(wù)流程應(yīng)用發(fā)布裝置502和混搭窗ロ小部件應(yīng)用發(fā)布裝置503分別利用云計(jì)算能力將業(yè)務(wù)流程和混搭Widget應(yīng)用提供給業(yè)務(wù)流程運(yùn)行環(huán)境600和窗ロ小部件運(yùn)行環(huán)境700。在運(yùn)行吋,業(yè)務(wù)流程在業(yè)務(wù)流程運(yùn)行環(huán)境600中運(yùn)行,混搭Widget應(yīng)用在窗ロ小部件運(yùn)行環(huán)境700中運(yùn)行,并且業(yè)務(wù)流程與混搭Widget應(yīng)用能夠通過適配裝置403交互信
o應(yīng)當(dāng)指出,本實(shí)施例的業(yè)務(wù)混搭的系統(tǒng)500在操作上能夠?qū)崿F(xiàn)如圖3所示的業(yè)務(wù)混搭的方法。以上所公開的實(shí)施例的方法可以在軟件、硬件、或軟件和硬件的結(jié)合中實(shí)現(xiàn)。硬件部分可以利用專用邏輯來實(shí)現(xiàn)。例如,上述實(shí)施例中的業(yè)務(wù)混搭的系統(tǒng)及其各個組成部分可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。軟件部分可以存儲在存儲器中,由適當(dāng)?shù)闹噶顖?zhí)行系統(tǒng),例如微處理器、個人計(jì)算機(jī)(PC)或大型機(jī)來執(zhí)行。
以上雖然通過示例性的實(shí)施例詳細(xì)描述了本發(fā)明的業(yè)務(wù)混搭的方法及系統(tǒng),但是以上這些實(shí)施例并不是窮舉 的,本領(lǐng)域技術(shù)人員可以在本發(fā)明的精神和范圍內(nèi)實(shí)現(xiàn)各種變化和修改。因此,本發(fā)明并不限于這些實(shí)施例,本發(fā)明的范圍僅由所附的權(quán)利要求限定。
權(quán)利要求
1.一種業(yè)務(wù)混搭的方法,包括 根據(jù)所期望的業(yè)務(wù)的要求,生成與所述業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯,其中所述業(yè)務(wù)應(yīng)用邏輯包含Web服務(wù)和窗ロ小部件; 混搭所述業(yè)務(wù)應(yīng)用邏輯中的所述窗ロ小部件以創(chuàng)建窗ロ小部件混搭應(yīng)用; 在所述Web服務(wù)與所述窗ロ小部件混搭應(yīng)用中的窗ロ小部件之間建立適配關(guān)系; 基于所述業(yè)務(wù)應(yīng)用邏輯和所述適配關(guān)系生成用于所述業(yè)務(wù)的業(yè)務(wù)流程;以及 基于所述窗ロ小部件混搭應(yīng)用和所述適配關(guān)系,生成混搭窗ロ小部件應(yīng)用。
2.根據(jù)權(quán)利要求I所述的方法,其中,所述根據(jù)所期望的業(yè)務(wù)的要求,生成與所述業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯的步驟包括 獲取與所述業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù)和窗ロ小部件元數(shù)據(jù);以及將所獲取的Web服務(wù)元數(shù)據(jù)和窗ロ小部件元數(shù)據(jù)組合成所述業(yè)務(wù)應(yīng)用邏輯,其中所述Web服務(wù)元數(shù)據(jù)形成所述Web服務(wù),所述窗ロ小部件元數(shù)據(jù)形成所述窗ロ小部件。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述獲取與所述業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù)和窗ロ小部件元數(shù)據(jù)的步驟包括 從存儲Web服務(wù)元數(shù)據(jù)的存儲庫中取出與所述業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù); 組裝所述Web服務(wù)元數(shù)據(jù);以及 從存儲窗ロ小部件的存儲庫中取出窗ロ小部件元數(shù)據(jù)。
4.根據(jù)權(quán)利要求I所述的方法,其中,所述混搭所述業(yè)務(wù)應(yīng)用邏輯中的所述窗ロ小部件以創(chuàng)建窗ロ小部件混搭應(yīng)用的步驟包括 從所述業(yè)務(wù)應(yīng)用邏輯中發(fā)現(xiàn)所述窗ロ小部件;以及 基于事件組裝所述窗ロ小部件以獲得所述窗ロ小部件混搭應(yīng)用,其中,所述事件包括發(fā)布事件和接收事件。
5.根據(jù)權(quán)利要求I所述的方法,其中,所述在所述Web服務(wù)與所述窗ロ小部件混搭應(yīng)用中的窗ロ小部件之間建立適配關(guān)系的步驟包括 建立所述Web服務(wù)與相關(guān)的所述窗ロ小部件在信息格式上的轉(zhuǎn)換關(guān)系;以及 建立所述Web服務(wù)與相關(guān)的所述窗ロ小部件在傳輸協(xié)議上的轉(zhuǎn)換關(guān)系。
6.根據(jù)權(quán)利要求I所述的方法,其中,所述基于所述業(yè)務(wù)應(yīng)用邏輯和所述適配關(guān)系生成用于所述業(yè)務(wù)的業(yè)務(wù)流程的步驟包括 基于所述業(yè)務(wù)應(yīng)用邏輯和所述適配關(guān)系,將所述Web服務(wù)組合成基于業(yè)務(wù)流程執(zhí)行語言的應(yīng)用;以及 根據(jù)運(yùn)行環(huán)境,將所述基于業(yè)務(wù)流程執(zhí)行語言的應(yīng)用轉(zhuǎn)換成可執(zhí)行的業(yè)務(wù)流程。
7.根據(jù)權(quán)利要求I所述的方法,還包括 部署運(yùn)行環(huán)境,所述運(yùn)行環(huán)境包括業(yè)務(wù)流程運(yùn)行環(huán)境和窗ロ小部件運(yùn)行環(huán)境; 將所述業(yè)務(wù)流程發(fā)布到所述業(yè)務(wù)流程運(yùn)行環(huán)境中; 將所述混搭窗ロ小部件應(yīng)用發(fā)布到所述窗ロ小部件運(yùn)行環(huán)境中;以及運(yùn)行所述業(yè)務(wù)流程和所述混搭窗ロ小部件應(yīng)用,其中,在運(yùn)行時,所述業(yè)務(wù)流程與所述混搭窗ロ小部件應(yīng)用能夠基于所述適配關(guān)系交互信息。
8.ー種業(yè)務(wù)混搭的系統(tǒng),包括 應(yīng)用邏輯生成裝置,用于根據(jù)所期望的業(yè)務(wù)的要求,生成與所述業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯,其中所述業(yè) 務(wù)應(yīng)用邏輯包含Web服務(wù)和窗ロ小部件; 窗ロ小部件混搭裝置,用于混搭所述業(yè)務(wù)應(yīng)用邏輯中的所述窗ロ小部件以創(chuàng)建窗ロ小部件混搭應(yīng)用; 適配裝置,用于在所述Web服務(wù)與所述窗ロ小部件混搭應(yīng)用中的窗ロ小部件之間建立適配關(guān)系; 業(yè)務(wù)流程生成裝置,用于基于所述業(yè)務(wù)應(yīng)用邏輯和所述適配關(guān)系生成用于所述業(yè)務(wù)的業(yè)務(wù)流程;以及 混搭窗ロ小部件應(yīng)用生成裝置,用于基于所述窗ロ小部件混搭應(yīng)用和所述適配關(guān)系,生成混搭窗ロ小部件應(yīng)用。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述應(yīng)用邏輯生成裝置包括 獲取模塊,用于獲取與所述業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù)和窗ロ小部件元數(shù)據(jù);以及應(yīng)用邏輯組合器,用于將所獲取的Web服務(wù)元數(shù)據(jù)和窗ロ小部件元數(shù)據(jù)組合成所述業(yè)務(wù)應(yīng)用邏輯,其中所述Web服務(wù)元數(shù)據(jù)形成所述Web服務(wù),所述窗ロ小部件元數(shù)據(jù)形成所述窗ロ小部件。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述獲取模塊包括 服務(wù)組裝器,用于從存儲Web服務(wù)元數(shù)據(jù)的存儲庫中取出與所述業(yè)務(wù)有關(guān)的Web服務(wù)元數(shù)據(jù),并組裝所述Web服務(wù)元數(shù)據(jù);以及 窗ロ小部件取出単元,用于從存儲窗ロ小部件的存儲庫中取出窗ロ小部件元數(shù)據(jù)。
11.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述窗ロ小部件混搭裝置包括 發(fā)現(xiàn)模塊,用于從所述業(yè)務(wù)應(yīng)用邏輯中發(fā)現(xiàn)所述窗ロ小部件;以及 組裝模塊,用于基于事件組裝所述窗ロ小部件以獲得所述窗ロ小部件混搭應(yīng)用,其中,所述事件包括發(fā)布事件和接收事件。
12.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述適配裝置包括 信息格式適配模塊,用于建立所述Web服務(wù)與相關(guān)的所述窗ロ小部件在信息格式上的轉(zhuǎn)換關(guān)系;以及 傳輸協(xié)議適配模塊,用于建立所述Web服務(wù)與相關(guān)的所述窗ロ小部件在傳輸協(xié)議上的轉(zhuǎn)換關(guān)系。
13.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述業(yè)務(wù)流程生成裝置包括 應(yīng)用生成模塊,用于基于所述業(yè)務(wù)應(yīng)用邏輯和所述適配關(guān)系,將所述Web服務(wù)組合成基于業(yè)務(wù)流程執(zhí)行語言的應(yīng)用;以及 轉(zhuǎn)換模塊,用于根據(jù)運(yùn)行環(huán)境,將所述基于業(yè)務(wù)流程執(zhí)行語言的應(yīng)用轉(zhuǎn)換成可執(zhí)行的業(yè)務(wù)流程。
14.根據(jù)權(quán)利要求8所述的系統(tǒng),還包括 運(yùn)行環(huán)境部署裝置,用于部署運(yùn)行環(huán)境,其中所述運(yùn)行環(huán)境包括業(yè)務(wù)流程運(yùn)行環(huán)境和窗ロ小部件運(yùn)行環(huán)境; 業(yè)務(wù)流程應(yīng)用發(fā)布裝置,用于將所述業(yè)務(wù)流程發(fā)布到所述業(yè)務(wù)流程運(yùn)行環(huán)境中;以及混搭窗ロ小部件應(yīng)用發(fā)布裝置,用于將所述混搭窗ロ小部件應(yīng)用發(fā)布到所述窗ロ小部件運(yùn)行環(huán)境中; 其中,在所述業(yè)務(wù)流程運(yùn)行環(huán)境中運(yùn)行所述業(yè)務(wù)流程,在所述窗ロ小部件運(yùn)行環(huán)境中運(yùn)行所述混搭窗ロ小部件 應(yīng)用,在運(yùn)行吋,所述業(yè)務(wù)流程與所述混搭窗ロ小部件應(yīng)用能夠通過適配裝置交互信息。
全文摘要
本發(fā)明提供一種業(yè)務(wù)混搭的方法,包括根據(jù)所期望的業(yè)務(wù)的要求,生成與所述業(yè)務(wù)對應(yīng)的業(yè)務(wù)應(yīng)用邏輯,其中該業(yè)務(wù)應(yīng)用邏輯包含Web服務(wù)和窗口小部件;混搭業(yè)務(wù)應(yīng)用邏輯中的窗口小部件以創(chuàng)建窗口小部件混搭應(yīng)用;在Web服務(wù)與窗口小部件混搭應(yīng)用中的窗口小部件之間建立適配關(guān)系;基于業(yè)務(wù)應(yīng)用邏輯和適配關(guān)系生成用于所述業(yè)務(wù)的業(yè)務(wù)流程;以及基于窗口小部件混搭應(yīng)用和適配關(guān)系,生成混搭窗口小部件應(yīng)用。本發(fā)明的業(yè)務(wù)混搭方法提供了無需預(yù)裝軟件的業(yè)務(wù)流程開發(fā)平臺以使非專業(yè)用戶能夠無需編碼地開發(fā)所需的業(yè)務(wù)流程。本發(fā)明的方法使得業(yè)務(wù)流程能夠支持混搭窗口小部件應(yīng)用,并建立業(yè)務(wù)流程與窗口小部件之間的雙向聯(lián)結(jié)。還提供了相應(yīng)的業(yè)務(wù)混搭的系統(tǒng)。
文檔編號G06F9/44GK102622212SQ20111003214
公開日2012年8月1日 申請日期2011年1月30日 優(yōu)先權(quán)日2011年1月30日
發(fā)明者劉昕鵬, 周宇辰, 孫長華, 梁雙, 梁曉星, 王夕寧, 薛亮 申請人:國際商業(yè)機(jī)器公司