基于面向服務(wù)體系架構(gòu)(SOA)和面向資源體系架構(gòu)(ROA)的業(yè)務(wù)組件模型_第1頁(yè)
基于面向服務(wù)體系架構(gòu)(SOA)和面向資源體系架構(gòu)(ROA)的業(yè)務(wù)組件模型_第2頁(yè)
基于面向服務(wù)體系架構(gòu)(SOA)和面向資源體系架構(gòu)(ROA)的業(yè)務(wù)組件模型_第3頁(yè)
基于面向服務(wù)體系架構(gòu)(SOA)和面向資源體系架構(gòu)(ROA)的業(yè)務(wù)組件模型_第4頁(yè)
基于面向服務(wù)體系架構(gòu)(SOA)和面向資源體系架構(gòu)(ROA)的業(yè)務(wù)組件模型_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于面向服務(wù)體系架構(gòu)(soa)和面向資源體系架構(gòu)(roa)的業(yè)務(wù)組件模型 多終端多技術(shù)平臺(tái)可復(fù)用的組件模型引言在面向服務(wù)體系架構(gòu)(soa)和業(yè)務(wù)組件(bc)的思考(以下簡(jiǎn)稱(chēng)soa和bc) 一文屮介紹了基于面向服務(wù)體系架構(gòu)(soa)的組件模型,木文按照吩離”的原則,通過(guò)比 較當(dāng)前多種流行的客戶(hù)端和服務(wù)器端的通訊機(jī)制,進(jìn)一步把業(yè)務(wù)組件進(jìn)行分離,采用面向資 源體系架構(gòu)(roa)把業(yè)務(wù)組件界面層和業(yè)務(wù)邏輯層分離開(kāi),構(gòu)建一個(gè)多終端多技術(shù)平臺(tái) 可復(fù)用的組件模型多層架構(gòu)中的通訊方式軟件體系架構(gòu)是沿著單機(jī)到cs架構(gòu),再到bs的三層架構(gòu)甚至多層架構(gòu)逐步發(fā)展過(guò)來(lái) 的,關(guān)于多層架構(gòu),本文不再詳細(xì)介紹,可以參考相關(guān)的

2、資料,下面首先來(lái)分析一下當(dāng)前比 較流行的客戶(hù)端技術(shù)以及客戶(hù)端和服務(wù)器之間的通訊方式?;趍vc的j2ee多層模型在一個(gè)標(biāo)準(zhǔn)的基于mvc的j2ee的模型架構(gòu)的代碼屮,從對(duì)象的類(lèi)別來(lái)看,一般包含bo、dao、pojo等java類(lèi),另外還包含jsp、servlet等,如下圖所示:圖1基于mvc的j2ee多層模型pojo:簡(jiǎn)單 java 對(duì)象(plain ordinary java object, pojo),個(gè)中間對(duì)象,在不同 階段可以轉(zhuǎn)化為po、dto、vo, pojo持久化以后就是p0,在應(yīng)用中的不同層次傳遞 為dto,直接用來(lái)對(duì)應(yīng)表示層就是v0。p0:持久對(duì)象(persistantobject

3、, p0),也稱(chēng)為data對(duì)象,對(duì)應(yīng)數(shù)據(jù)庫(kù)中的entity, 可以簡(jiǎn)單認(rèn)為一個(gè)p0對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一條記錄。p0中不包含任何對(duì)數(shù)據(jù)庫(kù)的操作。v0 :表現(xiàn)層對(duì)象(view object, v0)主要對(duì)應(yīng)界面顯示的數(shù)據(jù)對(duì)象。對(duì)于一個(gè)web頁(yè) 面,或者swt、swing界面,用一個(gè)v0對(duì)象對(duì)應(yīng)整個(gè)界面的值。根據(jù)業(yè)務(wù)的需要可 以和表對(duì)應(yīng),也可以不對(duì)應(yīng)。dto :數(shù)據(jù)傳輸對(duì)象(data transfer object, dto)主要用于遠(yuǎn)程調(diào)用等需要大量傳輸 對(duì)象的地方。對(duì)象不應(yīng)該包含業(yè)務(wù)邏輯,其僅僅需要傳遞需要的屬性,而不是p0的所有 屬性。b0:業(yè)務(wù)對(duì)象(business object, b0)主要作

4、用是把業(yè)務(wù)邏輯封裝為一個(gè)對(duì)象。這個(gè)對(duì) 象可以包插一個(gè)或多個(gè)其它的對(duì)象。通常一個(gè)b0包含多個(gè)p0,通常需要將b0轉(zhuǎn)化成p0,才能進(jìn)行數(shù)據(jù)的持久化,反z,從db屮得到的p0,需要轉(zhuǎn)化成b0才能在業(yè)務(wù) 層使用。b0建議只包含業(yè)務(wù)方法,屬性在pojo中。dao:數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象(data access object, dao)主要用來(lái)封裝對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)。通過(guò) 它可以把pojo持久化為p0,用p0組裝出來(lái)vo、dto。主要用來(lái)封裝對(duì)db的訪(fǎng) 問(wèn),把pojo持久化為poojsp是通過(guò)http請(qǐng)求,直接調(diào)用servlet的。當(dāng)前,在j2ee架構(gòu)下,有struts、 spring、hibernate等開(kāi)源架構(gòu)完美

5、的實(shí)現(xiàn)了界面、邏輯和實(shí)例化的操作。applet和j2ee的通訊applet可以直接連接數(shù)據(jù)庫(kù),可以使用象jdbc、rmi這樣的協(xié)議來(lái)訪(fǎng)問(wèn)象數(shù)據(jù)庫(kù)、ldap 目錄和enterprise javabeans組件這樣的后端信息。也可以通過(guò)http連接后臺(tái)的java servlet,和jsp連接方式相同,通過(guò)servlet處理后臺(tái)邏輯,applet僅僅用來(lái)處理前端 的工作。flex和j2ee的通訊flex是macromedia發(fā)布的展現(xiàn)服務(wù)(presentation server),根據(jù)mxml文件(純粹的 xml描述文件和actionscript)產(chǎn)生相應(yīng)得swf文件,傳送到客戶(hù)端,由客戶(hù)端的解釋執(zhí)

6、 行。flex提供了三種方式和java進(jìn)行數(shù)據(jù)交互:httpservice, remoteobject和 web 服務(wù)。其屮,httpservice 方式可以傳輸 text、xml 或者 json (javascript object notation)等。由于flex具有flash打下的良好用戶(hù)基礎(chǔ),同時(shí)具有豐富的展現(xiàn)效果,正 在成為一種流行的客戶(hù)端展示實(shí)現(xiàn)技術(shù)。ajax和j2ee的通訊ajax(asynchronous javascript and xml)是多種技術(shù)的綜合,它使用 xhtml 和 css 標(biāo)準(zhǔn)化呈現(xiàn),使用dom實(shí)現(xiàn)動(dòng)態(tài)顯示和交互,使用xml和xstl進(jìn)行數(shù)據(jù)交換與處理,

7、使用javascript綁定和處理所有數(shù)據(jù),javascript是一種粘合劑使ajax應(yīng)用的各部分集 成在一起,中javascript主要被用來(lái)傳遞用戶(hù)界面上的數(shù)據(jù)到服務(wù)端并返回結(jié)果。ajax 使用xmlhttprequest對(duì)象進(jìn)行異步數(shù)據(jù)讀収,xmlhttprequest對(duì)象用來(lái)響應(yīng)通過(guò) http傳遞的數(shù)據(jù),一旦數(shù)據(jù)返回到客戶(hù)端就可以立刻使用dom將數(shù)據(jù)放到網(wǎng)面上。在 ajax中,xmlhttprequest是核心,xmlhttprequest對(duì)象在大部分瀏覽器上已經(jīng)實(shí)現(xiàn)而 且擁有一個(gè)簡(jiǎn)單的接口允許數(shù)據(jù)從客戶(hù)端傳遞到服務(wù)端,但并不會(huì)打斷用戶(hù)當(dāng)前的操作。使 用xmlhttprequest傳送

8、的數(shù)據(jù)可以是任何格式,包括可以傳輸text. xml或者json。 其他客戶(hù)端和j2ee的通訊除了前文所描述常見(jiàn)的瀏覽器支持的技術(shù)標(biāo)準(zhǔn),當(dāng)前富客戶(hù)端(rich internet applications , ria)發(fā)展也很快,比較流行的有air、wpf、javafx等。air (adobe integrated runtime)是macromedia發(fā)布一個(gè)跨操作系統(tǒng)運(yùn)行的ria技術(shù) 解決方案,利用現(xiàn)有的web開(kāi)發(fā)技術(shù)(flash, flex, html, javascript, ajax)來(lái)構(gòu)建 富客戶(hù)端,并部署為桌面應(yīng)用程序,其本質(zhì)上采用的是前述web開(kāi)發(fā)技術(shù)和后臺(tái)通訊。 由于air可以

9、訪(fǎng)問(wèn)客戶(hù)端的資源,并可以實(shí)現(xiàn)離線(xiàn)操作,所有具有廣闊的應(yīng)用前景。wpf (windows presentation foundation)是 microsoft 的.net 平臺(tái)的 ria 技術(shù)解決方 案,wpf 通過(guò)擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言(extensible application markup language , xaml) 把界面和業(yè)務(wù)邏輯分開(kāi),以開(kāi)發(fā)出界面炫麗,功能強(qiáng)大的應(yīng)用程序。wpf可以通過(guò)基于 soap的web服務(wù)或者restful web服務(wù)跟后臺(tái)j2ee服務(wù)器交互。另外輕量級(jí)的基 于瀏覽器的silverlight可以采用這種技術(shù)。javafx是java的ria技術(shù)解決方案,和

10、早期的applet、java web start等技術(shù)一脈 相承,其使用的是領(lǐng)域?qū)S谜Z(yǔ)言(domain specific language, dsl),和后臺(tái)通訊方式 同 appleto 通訊方式總結(jié)如前文所述,客戶(hù)端和服務(wù)器端的通信有很多種,但是有兩種是都支持的,基于soap的 web服務(wù)和restful web服務(wù)。web服務(wù)是通過(guò)簡(jiǎn)單対象訪(fǎng)問(wèn)協(xié)議(simple object access protocol, soap)傳輸?shù)?,soap是一種基于xml的協(xié)議,可以和現(xiàn)存的許多因特網(wǎng)協(xié)議和格式結(jié)合使用,包括超 文本傳輸協(xié)議(http),簡(jiǎn)單郵件傳輸協(xié)議(smtp),多用途網(wǎng)際郵件擴(kuò)充協(xié)議(m

11、ime), 基于“通用”傳輸協(xié)議是soap的一個(gè)優(yōu)點(diǎn)。它還支持從消息系統(tǒng)到遠(yuǎn)程過(guò)程調(diào)用(remote procedure call, rpc)等大量的應(yīng)用程序。soap提供了一系列的標(biāo)準(zhǔn),如wsrm(ws-reliable messaging)形式化契約確??煽啃耘c安全性,確保異步處理與調(diào)用: ws-security ws-transactions和 ws-coordination等標(biāo)準(zhǔn)提供了上下文信息與對(duì)話(huà)狀 態(tài)管理。相對(duì)而言,soap協(xié)議屬于復(fù)雜的、重量級(jí)的協(xié)議,當(dāng)前隨著web2.0的興起,表述性狀 態(tài)轉(zhuǎn)移(representational state transfer, rest)逐步成

12、為一個(gè)流行的架構(gòu)風(fēng)格。rest是 一種輕量級(jí)的web service架構(gòu)風(fēng)格,其實(shí)現(xiàn)和操作比soap和xml-rpc更為簡(jiǎn)潔, 可以完全通過(guò)http協(xié)議實(shí)現(xiàn),還可以利用緩存cache來(lái)提高響應(yīng)速度,性能、效率和 易用性上都優(yōu)于soap協(xié)議。rest架構(gòu)對(duì)資源的操作包插獲取、創(chuàng)建、修改和刪除資源 的操作正好對(duì)應(yīng)http協(xié)議提供的get、post、put和delete方法,這種針對(duì)網(wǎng) 絡(luò)應(yīng)用的設(shè)計(jì)和開(kāi)發(fā)方式,可以降低開(kāi)發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性。rest架構(gòu)尤 其適用于完全無(wú)狀態(tài)的crud (create、read、update、delete,創(chuàng)建、讀取、更新、 刪除)操作。基于rest的軟件

13、體系結(jié)構(gòu)風(fēng)格(software architecture style)稱(chēng)z為面向資源體系架構(gòu) (resource-oriented architecture, roa)。按照rest原則設(shè)計(jì)的軟件、體系結(jié)構(gòu),通 常被稱(chēng)為“rest式的” (restful),在本文中以下稱(chēng)之為restful web服務(wù),以便于和 基于soap的web服務(wù)區(qū)別。服務(wù)器端采用j2ee,客戶(hù)端采用jsp、flex、javafx、air等可以直接調(diào)用servlet, 其他的實(shí)現(xiàn)技術(shù)基本上不能直接調(diào)用,但是無(wú)論是那種客戶(hù)端,對(duì)于基于soap的web 服務(wù)或者基于restful web服務(wù)務(wù)都是支持的,如ajax的xmlh

14、ttprequest、flex的 httpservice等。如下圖所示:圖2.客戶(hù)端和服務(wù)器端的通訊方式客戶(hù)端服務(wù)器端終端實(shí)現(xiàn)技術(shù)v0dtosoapasp. net irest nethtmldhtmlservletxml.其他基于soap和rest的分層模型結(jié)合前文所述客戶(hù)端和服務(wù)器端的通訊方式比較和分析以及在soa和bc一文中描 述的業(yè)務(wù)組件模型,下文給出了在界面層和業(yè)務(wù)邏輯層采用輕量級(jí)的restful web服務(wù), 不同業(yè)務(wù)組件之i'可采用基于soap的web服務(wù)的業(yè)務(wù)組件模型?;趓oa的業(yè)務(wù)組件界面層和業(yè)務(wù)邏輯層接口在多層架構(gòu)下,特別是當(dāng)前客戶(hù)端技術(shù)發(fā)展迅速,有不同的技術(shù)實(shí)現(xiàn)

15、方式,將界面層和業(yè)務(wù) 邏輯層分離將能更好的實(shí)現(xiàn)業(yè)務(wù)組件的重用,業(yè)務(wù)邏輯不受不同客戶(hù)端技術(shù)技術(shù)影響,從而 更好的保證了業(yè)務(wù)邏輯的重用。為了支持各種客戶(hù)端技術(shù),需要采用各種客戶(hù)端技術(shù)都能支 持的標(biāo)準(zhǔn)的接口方式,在前文所述兩種通用標(biāo)準(zhǔn)中,soap相對(duì)來(lái)講屬于重量級(jí)協(xié)議,而 且基于soap的web服務(wù)將會(huì)增加軟件開(kāi)發(fā)的難度,影響系統(tǒng)的性能,因此采用輕量級(jí) 的restful web服務(wù)務(wù),來(lái)實(shí)現(xiàn)界面層和業(yè)務(wù)邏輯層的分離,如下圖所示:圖3.界面層和業(yè)務(wù)邏輯層的通信模式客戶(hù)端服務(wù)器端數(shù)據(jù)庫(kù)1支持層air實(shí)現(xiàn)技術(shù)jspflex協(xié)議層業(yè)務(wù)邏輯層asp. netsoapdhtmlj2ee平臺(tái)rest為了保持和基于

16、soap的web服務(wù)方式傳輸?shù)膬?nèi)容一致,其傳輸?shù)臄?shù)據(jù)格式均采用標(biāo)準(zhǔn) 的xml,比如傳遞一個(gè)客戶(hù)信息,基于soap的web服務(wù)傳遞的參數(shù)和restful web 服務(wù)格式分別如下: 清單1.xml樣例<?xml version=m1.0'* encoding=*gb2312*?> <customer><org_code> 1000 </org_code><cust_code> 100010001</cust_code> vcust_name> 張三 v/cust_name><cust_type_c0

17、de>11 v/cust_type_code><cust_status>01 v/cust_status> </customer>這樣不管是通過(guò)基于soap的web服務(wù)和和基于rest的xml,在業(yè)務(wù)邏輯層,可 以通用一個(gè)tostring方法,轉(zhuǎn)換成一個(gè)xml文件就可以了。最終是采用soap的web 服務(wù)還是restful web服務(wù),只是通過(guò)配置輸出不同的協(xié)議就可以了。axis2可以很好的 支持這個(gè)架構(gòu),axis2是一套嶄新的webservice引擎,該版本是對(duì)axisl.x重新設(shè)計(jì)的 產(chǎn)物。axis2不僅支持soap1.1和soap1.2,還集成了

18、 restful web服務(wù),同吋還支 持spring> json等技術(shù)。清單2.生成xml代碼示例public string tostring ()string strxml=,if (nuli != orgcode) sb. append(f,<org_code>f,);sb.append(orgcode: sb.append(,t</org_code>,>if (nuli != custcode) sb.append(f,<cust_code>°);sb.append(cust:code);sb. append(m</cus

19、t_code>,r);return strxml;這樣業(yè)務(wù)組件只是提供一個(gè)標(biāo)準(zhǔn)的xml格式輸出,由axis2來(lái)管理生成基于soap的 web服務(wù)或者restful web服務(wù)。界面層和業(yè)務(wù)邏輯層的通訊全部通過(guò)restful web 服務(wù),不管客戶(hù)端采用什么實(shí)現(xiàn)技術(shù),可以重用一個(gè)接口。在業(yè)務(wù)組件內(nèi)部可以進(jìn)一步分層,把協(xié)議層和業(yè)務(wù)邏輯層分離開(kāi),不管是采用直接調(diào)用 servlet還是rest、soap等,其后臺(tái)業(yè)務(wù)邏輯不變,使得業(yè)務(wù)邏輯更加獨(dú)立。如果是 采用多層架構(gòu),如上圖所示,其業(yè)務(wù)邏輯部分的代碼甚至可以在單機(jī)程序屮使用,這樣分離 之后,可以更方便的對(duì)代碼進(jìn)行測(cè)試,本文不再進(jìn)一步詳述。應(yīng)用程

20、序數(shù)痕陳霽孌匾業(yè)務(wù)采用rest架構(gòu),實(shí)現(xiàn)界面層和業(yè)務(wù)邏輯層分離,業(yè)務(wù)邏輯在業(yè)務(wù)組件中實(shí)現(xiàn)重用,不會(huì) 因?yàn)榻缑鎸拥淖兓饦I(yè)務(wù)邏輯層面的變化,實(shí)現(xiàn)界面層和業(yè)務(wù)邏輯層的獨(dú)立升級(jí)而不會(huì) 有大的彫響。界血層分離出來(lái)之后就可以實(shí)現(xiàn)界面開(kāi)發(fā)和業(yè)務(wù)邏輯開(kāi)發(fā)分開(kāi),在界面層可以 任意采用基于 bs 架構(gòu)白勺白勺 jsp、html (dhtml)、asp.net、php、applet、flex 等, 基于cs架構(gòu)的java、.net、air等任何一種界面開(kāi)發(fā)技術(shù),界面層的開(kāi)發(fā)可以由獨(dú)立的 ui小組完成,其成員可以不用關(guān)心業(yè)務(wù)邏輯,從而更加專(zhuān)注于人機(jī)交互體驗(yàn)的完善。基于soap和rest的業(yè)務(wù)組件(bc)接口模型

21、一個(gè)完整的業(yè)務(wù)組件需要實(shí)現(xiàn)松耦合,需要對(duì)外提供三種類(lèi)別的接口:界面、服務(wù)、數(shù)據(jù)。 界面主要是實(shí)現(xiàn)業(yè)務(wù)組件和人z間的人機(jī)交互媒介,服務(wù)是業(yè)務(wù)組件和業(yè)務(wù)組件或者系統(tǒng)z 間的交互,是信息系統(tǒng)之間的交互媒介,數(shù)據(jù)是業(yè)務(wù)組件和共享數(shù)據(jù)庫(kù)之間的交互媒介(參 見(jiàn)面向服務(wù)體系架構(gòu)(soa)和數(shù)據(jù)倉(cāng)庫(kù)(dw)的思考所述共亨庫(kù)的概念),其中月艮 務(wù)根據(jù)作用又可以進(jìn)一步分成三小類(lèi):和人機(jī)交互相關(guān)的服務(wù)、和業(yè)務(wù)組件之間的交換以及 和數(shù)據(jù)庫(kù)之間的交換。如下圖所示:圖4.業(yè)務(wù)組件接口模型業(yè)務(wù)組件怙耳股務(wù)«人機(jī)交互媒介:采用portlet標(biāo)準(zhǔn),對(duì)外提供標(biāo)準(zhǔn)的門(mén)戶(hù)程序,通過(guò)門(mén)戶(hù)集成平臺(tái) 進(jìn)行門(mén)戶(hù)集成。對(duì)外的門(mén)戶(hù)程序

22、可以以?xún)煞N方式提供,一種是完全獨(dú)立的門(mén)戶(hù)程序, 可以任意的集成到任何一個(gè)獨(dú)立的門(mén)戶(hù)界血,但是如果所有的界血都定制,考慮到 性能和定制工作量比較大,可以采用另外的一種方式,即把多個(gè)界面定義到一個(gè)門(mén) 戶(hù)程序中,可以將一系列的界面在一個(gè)門(mén)戶(hù)程序中完成,減少配置以及管理的工作, 使得系統(tǒng)更加易于集成。比如可以把客戶(hù)信息展示作為一個(gè)簡(jiǎn)單的門(mén)戶(hù)程序,僅僅 實(shí)現(xiàn)客戶(hù)信息展示,也可以把客戶(hù)維護(hù),客戶(hù)信息展示、客戶(hù)拜訪(fǎng)管理、客戶(hù)分類(lèi) 管理等所有客戶(hù)相關(guān)的信息在一個(gè)門(mén)戶(hù)程序中實(shí)現(xiàn),并且在門(mén)戶(hù)程序中以菜單的方 式進(jìn)行選擇,相當(dāng)于是內(nèi)嵌了一個(gè)小的應(yīng)用功能界面。1. portlet屈于比較重量級(jí)的標(biāo)準(zhǔn),但是由于web2

23、.0尚未統(tǒng)一標(biāo)準(zhǔn),如果輕量級(jí)的 web2.0有通用標(biāo)準(zhǔn)z后,采用widget等將會(huì)是未來(lái)的發(fā)展方向。2. 對(duì)于同一一個(gè)開(kāi)發(fā)商來(lái)說(shuō),在內(nèi)部可以采用自己定制的widget標(biāo)準(zhǔn)方式,包含 widget的定義、widget之間的數(shù)據(jù)交互、界面風(fēng)格設(shè)定等。服務(wù)接口:服務(wù)接口按照類(lèi)型可以分為6種,其中人交互服務(wù)和信息服務(wù)比較特 殊,分別實(shí)現(xiàn)人機(jī)交互和數(shù)據(jù)交換的功能,是以服務(wù)的方式提供人機(jī)交互媒介和 數(shù)據(jù)接口內(nèi)容。1. 人機(jī)交互服務(wù),將人機(jī)交互內(nèi)容以服務(wù)的方式提供,通過(guò)處理后在界面層次統(tǒng)一展 示,通過(guò)這種方式,可以實(shí)現(xiàn)將不同的業(yè)務(wù)組件的服務(wù)混搭(mashup)成一個(gè)門(mén)戶(hù) 程序,而不是通過(guò)兩個(gè)門(mén)戶(hù)程序進(jìn)行整合

24、。人機(jī)交互服務(wù)和portlet的差異是采用 的標(biāo)準(zhǔn)不同,前者基于portlet標(biāo)準(zhǔn),后者基于基于soa的web服務(wù)或 restful web服務(wù);前者直接以界面的方式對(duì)外提供,后者主要提供數(shù)據(jù)(可以同 時(shí)提供展示方式,即一段html代碼),通過(guò)前端的定制工具實(shí)現(xiàn)界面展示,通 過(guò)這種方式,在門(mén)戶(hù)系統(tǒng)進(jìn)行界面整合,將不同系統(tǒng)的數(shù)據(jù)在界面進(jìn)行統(tǒng)一展示, 比如可以將財(cái)務(wù)系統(tǒng)的人員工資信息、人力資源信息等分別以服務(wù)的方式對(duì)外提供, 然后在門(mén)戶(hù)的界面整合工具在門(mén)戶(hù)中統(tǒng)一進(jìn)行展現(xiàn),而不是通過(guò)portlet的方式實(shí) 現(xiàn)。如前文所述,采用restful web服務(wù)2. 業(yè)務(wù)服務(wù),業(yè)務(wù)組件為實(shí)現(xiàn)的業(yè)務(wù)組件核型功能

25、的対外相關(guān)服務(wù),是業(yè)務(wù)組件核心 服務(wù),主要用于本業(yè)務(wù)組件和其他的業(yè)務(wù)組件之間的業(yè)務(wù)交互,使得多個(gè)業(yè)務(wù)組件 或者系統(tǒng)共同完成企業(yè)的業(yè)務(wù)流程。為了保證業(yè)務(wù)組件的髙內(nèi)聚,松耦合,要合理 的規(guī)劃業(yè)務(wù)組件對(duì)外提供的服務(wù)的粒度,即能保持靈活性,乂可以保證對(duì)外提供的 服務(wù)不至于太多,不宜管理。業(yè)務(wù)組件的web服務(wù)結(jié)構(gòu)是企業(yè)業(yè)務(wù)組件規(guī)劃中的 最為重要的標(biāo)準(zhǔn)化功能,用于確定不同業(yè)務(wù)組件之間的邊界。3. 主數(shù)據(jù)服務(wù),主數(shù)據(jù)相關(guān)的服務(wù),是共用的服務(wù),主數(shù)據(jù)管理業(yè)務(wù)組件也是屬于企 業(yè)公共服務(wù)平臺(tái)管理范圍,是企業(yè)級(jí)的公共業(yè)務(wù)組件。4. 流程服務(wù),涉及工作流程的服務(wù),相關(guān)信息提供到工作流引擎,是共用的服務(wù),流 程管理業(yè)務(wù)

26、組件也是屬于企業(yè)公共服務(wù)平臺(tái)管理范圍,是企業(yè)級(jí)的公共業(yè)務(wù)組件。5. 系統(tǒng)管理服務(wù),是由系統(tǒng)管理公共組件提供的服務(wù),主要包含用戶(hù)認(rèn)證、權(quán)限管理 等相關(guān)的服務(wù),是共用的服務(wù),系統(tǒng)管理相關(guān)業(yè)務(wù)組件屬于企業(yè)公共服務(wù)平臺(tái)管理 范i韋i,是企業(yè)級(jí)的公共業(yè)務(wù)組件。主數(shù)據(jù)服務(wù)、流程服務(wù)和系統(tǒng)管理服務(wù)是企業(yè)架 構(gòu)平臺(tái)提供的公共服務(wù),是集成平臺(tái)的核心內(nèi)容。6. 信息服務(wù),和數(shù)據(jù)庫(kù)相關(guān)的服務(wù),直接從數(shù)據(jù)庫(kù)獲取相關(guān)信息。由于業(yè)務(wù)組件的數(shù) 據(jù)是私有的,為了保證業(yè)務(wù)組件的數(shù)據(jù)能夠得到更好的應(yīng)用,需要將業(yè)務(wù)組件的數(shù) 據(jù)公布出來(lái),基于企業(yè)的數(shù)據(jù)模型,把業(yè)務(wù)組件的私有數(shù)據(jù)公開(kāi)為企業(yè)數(shù)據(jù)中的數(shù) 據(jù)。信息服務(wù)可以采用實(shí)時(shí)、或者準(zhǔn)實(shí)

27、時(shí)的方式對(duì)外提供。在某些特殊悄況下,可 以認(rèn)為業(yè)務(wù)組件不存放數(shù)據(jù),業(yè)務(wù)組件僅僅是獲得數(shù)據(jù),處理數(shù)據(jù),然后將數(shù)據(jù)在 放到企業(yè)數(shù)據(jù)庫(kù)中。數(shù)據(jù)接口:基于視圖或者表直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,即業(yè)務(wù)組件對(duì)外提供一個(gè)直接 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的接口,如果數(shù)據(jù)庫(kù)結(jié)構(gòu)是按照這個(gè)接口設(shè)計(jì)的,這個(gè)業(yè)務(wù)組件可以直 接訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),而不需要通過(guò)其它的服務(wù),需要明確每個(gè)組件對(duì)表的讀寫(xiě)權(quán)限,并 進(jìn)行嚴(yán)格管理,通過(guò)數(shù)據(jù)接口的方式,核心是需要建立企業(yè)數(shù)據(jù)架構(gòu),建立共享的 數(shù)據(jù)結(jié)構(gòu)。通過(guò)數(shù)據(jù)聯(lián)邦、數(shù)據(jù)復(fù)制實(shí)現(xiàn)。一般來(lái)說(shuō),不建議這樣實(shí)現(xiàn),特別是跨 應(yīng)用的數(shù)據(jù)訪(fǎng)問(wèn),盡量通過(guò)信息服務(wù)實(shí)現(xiàn)。以上通對(duì)業(yè)務(wù)組件模型對(duì)外提供的接口類(lèi)型進(jìn)行分析,規(guī)劃了一個(gè)業(yè)務(wù)組件接口模型,所有 的業(yè)務(wù)組件將對(duì)外提供以上三類(lèi)對(duì)外的接口?;趕oa和roa的整體技術(shù)架構(gòu)結(jié)合當(dāng)前流行的soa、web2.0、3g、三網(wǎng)融合等技術(shù),在基于soap和rest的分層 模型的基礎(chǔ)上,開(kāi)發(fā)的時(shí)候釆用組件化開(kāi)發(fā),業(yè)務(wù)組件和業(yè)務(wù)組件之間的交互采用基于 soap的web服務(wù)作為接口模

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論