隨著移動(dòng)通信業(yè)務(wù)的發(fā)展,增值業(yè)務(wù)市場(chǎng)也呈快速發(fā)展的趨勢(shì),增值市場(chǎng)規(guī)模逐年增長(zhǎng)。用戶對(duì)業(yè)務(wù)的需求也呈現(xiàn)出多樣化的趨勢(shì),移動(dòng)通信運(yùn)營(yíng)商在激烈的市場(chǎng)競(jìng)爭(zhēng)中,利用現(xiàn)有的業(yè)務(wù)平臺(tái)及資源,靈活組合,適時(shí)推出用戶所需的各種新業(yè)務(wù),將會(huì)極大地增加運(yùn)營(yíng)商的市場(chǎng)競(jìng)爭(zhēng)能力。然而傳統(tǒng)的服務(wù)實(shí)現(xiàn)使用不同的語(yǔ)言和技術(shù),并且運(yùn)行于不同平臺(tái)和操作系統(tǒng)之上。因此,各個(gè)系統(tǒng)相互孤立,難以進(jìn)行通信,并且其內(nèi)部信息處理手段的差異較大,數(shù)據(jù)存在不一致性,彼此之間難以進(jìn)行信息、數(shù)據(jù)的交換和共享,F(xiàn)在,隨著SOA(service-oriented architecture,面向服務(wù)的架構(gòu))技術(shù)的出現(xiàn)和快速發(fā)展,可以很好地解決該問(wèn)題。SOA架構(gòu)以服務(wù)為基本單元,通過(guò)把不同應(yīng)用封裝成統(tǒng)一的Web服務(wù)來(lái)屏蔽系統(tǒng)間的差異性;以服務(wù)作為構(gòu)建時(shí)的基礎(chǔ)組件,通過(guò)服務(wù)組合技術(shù)對(duì)散列的組件進(jìn)行組合,從而解決服務(wù)間數(shù)據(jù)的交互和共享,以松耦合的方式實(shí)現(xiàn)跨機(jī)構(gòu)的協(xié)作業(yè)務(wù)流程;通過(guò)服務(wù)組合技術(shù)對(duì)業(yè)務(wù)流程的全過(guò)程進(jìn)行監(jiān)管,實(shí)現(xiàn)流程的簡(jiǎn)化和優(yōu)化。
1.面向服務(wù)的體系架構(gòu)SOA
SOA 是以服務(wù)為基礎(chǔ)的組件模型。服務(wù)作為封裝特定功能的實(shí)體,以業(yè)務(wù)為其核心理念,通過(guò)定義良好的接口的契約彼此間進(jìn)行聯(lián)系。同時(shí),服務(wù)是中立的,可以獨(dú)立于特定的技術(shù)和平臺(tái)。服務(wù)具有可重用性,一個(gè)定義良好的服務(wù)可以在多個(gè)業(yè)務(wù)流程的組裝中使用。也正是因?yàn)镾OA 中所有應(yīng)用都是服務(wù),基于SOA 的系統(tǒng)平臺(tái)可以采用服務(wù)組合技術(shù)將單獨(dú)的、中立的、封裝完善的服務(wù)組合成新的、復(fù)雜的服務(wù),從而實(shí)現(xiàn)數(shù)據(jù)共享。又因?yàn)榉⻊?wù)之間的交互是通過(guò)標(biāo)準(zhǔn)定義的接口進(jìn)行的,基于SOA 的系統(tǒng)平臺(tái)可以屏蔽由于平臺(tái)、操作系統(tǒng)以及實(shí)現(xiàn)語(yǔ)言不同而造成的差異。
基于SOA 的IT 架構(gòu)以一系列執(zhí)行業(yè)務(wù)功能的服務(wù)為基礎(chǔ),通過(guò)服務(wù)的形式重用企業(yè)現(xiàn)有資產(chǎn)。同時(shí),通過(guò)服務(wù)的不同組合不僅實(shí)現(xiàn)異構(gòu)環(huán)境中的消息、數(shù)據(jù)的交互和共享,還可以使業(yè)務(wù)流程變得更加靈活,從而迅捷有效地滿足現(xiàn)實(shí)生活中快速變化的業(yè)務(wù)需求?梢(jiàn),要使搭建的架構(gòu)靈活多變,就要考慮服務(wù)構(gòu)建、數(shù)據(jù)模型和服務(wù)編排這三方面采用何種技術(shù)來(lái)實(shí)現(xiàn)。如圖1 所示為SOA關(guān)鍵技術(shù)及其關(guān)系。
本文重點(diǎn)研究服務(wù)組合技術(shù)。SOA架構(gòu)中的服務(wù)組合編排模型不僅要滿足異構(gòu)、松耦合的要求,還要是敏捷的,因此與Web 服務(wù)關(guān)聯(lián)的服務(wù)組合技術(shù)BPEL (Business Process Execution Lan原guage)以其基于服務(wù)、松耦合、高度敏捷等特點(diǎn)成為構(gòu)建SOA 架構(gòu)的首選服務(wù)編排模型。BPEL 的描述文件是WSDL,不僅支持Web 服務(wù),也可以更好地支持SCA定義的服務(wù)。同時(shí),BPEL 規(guī)范可以把其定義的流程本身暴露為Web 服務(wù)對(duì)外提供服務(wù)。同時(shí)由XML Schema 定義的BPEL 規(guī)范可以直接把SDO 定義引入到自己的變量到中,作為其變量進(jìn)行操作?傊,BPEL 是SOA 服務(wù)編排的核心技術(shù),同時(shí)也是具體業(yè)務(wù)流程的體現(xiàn)。
圖1 SOA關(guān)鍵技術(shù)及其關(guān)系
2.基于BPEL 的服務(wù)組合技術(shù)
BPEL 技術(shù)規(guī)范即業(yè)務(wù)流程執(zhí)行語(yǔ)言規(guī)范,是以Web服務(wù)、XML 為基礎(chǔ)的諸多規(guī)范上提出的一種新型的業(yè)務(wù)流程的定義語(yǔ)言規(guī)范。它的靈感來(lái)源于IBM 的WSFL 以及微軟的XLANG。其中,WSFL是一種以圖為基礎(chǔ)的流程模型,其特點(diǎn)是靈活、直觀;XLANG 即工作流程描述語(yǔ)言,它以過(guò)程代數(shù)為基礎(chǔ),具有結(jié)構(gòu)化構(gòu)造的優(yōu)勢(shì)。BPEL 作為兩者結(jié)合的產(chǎn)物,以用Web 服務(wù)接口標(biāo)準(zhǔn)描述的伙伴和業(yè)務(wù)流程的交互為基礎(chǔ),定義了描述業(yè)務(wù)流程的語(yǔ)法規(guī)范,主要用于業(yè)務(wù)流程建模。作為一個(gè)Web 服務(wù)組合標(biāo)準(zhǔn),BPEL可以直接描述一組Web 服務(wù)的操作順序,以及服務(wù)間交互時(shí)共享的數(shù)據(jù),還可以處理Web 服務(wù)使用過(guò)程中發(fā)生的異常;作為執(zhí)行流程的建模語(yǔ)言,BPEL 可以組合現(xiàn)有的服務(wù),從而生成一個(gè)新的更為復(fù)雜的Web服務(wù)。
BPEL是一個(gè)基于開放標(biāo)準(zhǔn)的技術(shù)規(guī)范,這些技術(shù)規(guī)范為BPEL 流程的執(zhí)行提供環(huán)境。圖2展示了BPEL 規(guī)范與其相關(guān)技術(shù)標(biāo)準(zhǔn)的關(guān)系。
圖2 BPEL規(guī)范與相關(guān)技術(shù)標(biāo)準(zhǔn)的關(guān)系示意圖
BPEL規(guī)范描述的是各成員服務(wù)何時(shí)、為何、以何種順序被調(diào)用,還為服務(wù)提供錯(cuò)誤處理和補(bǔ)償機(jī)制。因此,基于BPEL 規(guī)范的流程定義總體可分為三個(gè)部分,這三部分之間的關(guān)系如圖3所示。
圖3 BPEL流程規(guī)范分類示意圖
3.基于BPEL 的服務(wù)組合實(shí)現(xiàn)方法
基于BPEL 的服務(wù)組合方法可歸納為兩個(gè)部分,一是為業(yè)務(wù)流程中涉及的每個(gè)活動(dòng)設(shè)定一個(gè)抽象服務(wù),形成抽象服務(wù)流程定義;二是執(zhí)行前通過(guò)中間環(huán)節(jié)進(jìn)行服務(wù)匹配和綁定,將每個(gè)抽象服務(wù)替換成一個(gè)實(shí)體服務(wù),將抽象服務(wù)轉(zhuǎn)換成實(shí)際的符合BPEL 規(guī)范的業(yè)務(wù)流程文檔,此部分是整個(gè)方法實(shí)現(xiàn)的核心。
3.1 抽象服務(wù)流程定義
由于BPEL 業(yè)務(wù)流程通過(guò)WSDL 技術(shù)規(guī)范對(duì)其與成員服務(wù)之間交互的接口進(jìn)行描述,相關(guān)活動(dòng)的實(shí)現(xiàn)要發(fā)布成WSDL 文件描述的服務(wù)。這些生成的WSDL 文件即為抽象服務(wù)流程定義。在本文中Web 服務(wù)是基于Axis2 框架搭載Tomcat 服務(wù)器發(fā)布實(shí)現(xiàn)的,把Axis2 與平臺(tái)開發(fā)環(huán)境進(jìn)行整合,整合后開發(fā)好的類直接在Tomcat 服務(wù)器上發(fā)布即可通過(guò)在瀏覽器中鍵入網(wǎng)址獲得相應(yīng)的WSDL描述。
3.2 服務(wù)接口的調(diào)用
在BPEL 流程中,流程與成員服務(wù)之間的交互是通過(guò)伙伴鏈接調(diào)用WSDL 描述的服務(wù)接口實(shí)現(xiàn)的,因此,服務(wù)接口的調(diào)用是對(duì)伙伴鏈接的定義。在實(shí)際執(zhí)行過(guò)程中,難免會(huì)發(fā)生錯(cuò)誤或者異常,需要對(duì)其進(jìn)行處理以及進(jìn)行一些必要的補(bǔ)償操作。使用流程處理器可以提高服務(wù)質(zhì)量,增強(qiáng)BPEL 流程的健壯性。在業(yè)務(wù)流程中,可能發(fā)生人工審批和業(yè)務(wù)取消同時(shí)操作并生效的錯(cuò)誤,此時(shí)需要添加錯(cuò)誤處理器捕獲錯(cuò)誤和補(bǔ)償處理器添加補(bǔ)償措施。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:基于SOA的服務(wù)組合技術(shù)研究
本文網(wǎng)址:http://www.oesoe.com/html/support/11121512241.html