自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SOA攜手開(kāi)源軟件 IT行業(yè)的未來(lái)趨勢(shì)

開(kāi)發(fā) 項(xiàng)目管理
作者分析了目前最為前沿的IT行業(yè)趨勢(shì),認(rèn)為把SOA與開(kāi)源軟件的優(yōu)點(diǎn)相結(jié)合將是IT行業(yè)發(fā)展的方向。為了響應(yīng)客戶需求,IBM、BEA、Oracle、SAP、Primeton等公司正在合作制定用于構(gòu)建SOA系統(tǒng)的規(guī)范,而其中的開(kāi)源實(shí)現(xiàn)則以Tuscany項(xiàng)目最為引人注目。

目前最為前沿的IT行業(yè)趨勢(shì),第一是面向服務(wù)的體系結(jié)構(gòu)(SOA),第二就是開(kāi)源軟件。而把SOA與開(kāi)源軟件的優(yōu)點(diǎn)相結(jié)合,不僅可以降低客戶的IT成本,同時(shí)還能敏捷地應(yīng)對(duì)不斷變化的業(yè)務(wù)需求。

在現(xiàn)有的軟件開(kāi)發(fā)項(xiàng)目里面,一直存在一個(gè)沒(méi)有辦法解決的問(wèn)題:業(yè)務(wù)功能的理解和技術(shù)功能的理解是由同一個(gè)人負(fù)責(zé)的,也就是讓同一個(gè)人或同一些人完成業(yè)務(wù)與技術(shù)領(lǐng)域的銜接。實(shí)際環(huán)境中想要找到一個(gè)這樣的人是非常不容易的,而如果沒(méi)有這個(gè)人,軟件開(kāi)發(fā)項(xiàng)目基本就離失敗不遠(yuǎn)了,這是IT領(lǐng)域的老問(wèn)題,也是面向服務(wù)的體系結(jié)構(gòu)SOA(Service-Oriented Architecture)要解決的主要問(wèn)題之一。

SOA限制IT部門考慮采用最佳的組織與能力的組合,從而獲得Web服務(wù)、SOA以及BPM技術(shù)的全部?jī)?yōu)勢(shì)。就好象一個(gè)汽車公司一樣,它不一定有能力發(fā)明制造輪胎、發(fā)動(dòng)機(jī)、音響等全套的汽車零件。它的音響可能是從A公司批量購(gòu)買的,它的剎車系統(tǒng)可能是B公司提供的,汽車公司利用了其他零件供應(yīng)商的服務(wù),來(lái)為最終的汽車用戶服務(wù)。

在SOA架構(gòu)中也是這樣,技術(shù)人員必須能夠適應(yīng)從做全部工作到做部分工作,并與他人共同完成整個(gè)工作的轉(zhuǎn)變。與對(duì)象或者過(guò)程相比,服務(wù)的開(kāi)發(fā)應(yīng)面向一個(gè)更為寬廣的環(huán)境,因?yàn)樗恢赜玫臋C(jī)會(huì)更大。實(shí)際上,定義可重用的服務(wù)也許是SOA中最重要的方面,也是SOA現(xiàn)在如此流行的重要原因。

OSOA規(guī)范三架馬車

為了響應(yīng)客戶需求,IBM、BEA、Oracle、SAP、Primeton等公司正在合作制定用于構(gòu)建SOA系統(tǒng)的規(guī)范,為開(kāi)發(fā)人員提供構(gòu)造基于SOA應(yīng)用程序的更簡(jiǎn)單更強(qiáng)大方法。目前,制定規(guī)范的工作交由這些公司組成的OSOA(Open Service Oriented Architecture)協(xié)作組織負(fù)責(zé),另外OSOA還負(fù)責(zé)在Apache推出開(kāi)源的SCA/SDO實(shí)現(xiàn),用來(lái)更快的催化市場(chǎng)的發(fā)展。

OSGi

OSOA目前正在起草一系列的規(guī)范,并以免版稅的許可方式提供給業(yè)界使用。OSOA的業(yè)界伙伴們現(xiàn)在主要在兩個(gè)項(xiàng)目上協(xié)同工作,分別是SCA(Service Component Architecture,服務(wù)構(gòu)件架構(gòu))和SDO(Service Data Objects,服務(wù)數(shù)據(jù)對(duì)象),這兩個(gè)項(xiàng)目就象OSOA的兩架馬車一樣,為SOA架構(gòu)立下了汗馬功勞。根據(jù)筆者掌握的最新情報(bào),OSOA正在準(zhǔn)備啟動(dòng)第三架馬車:DAS(Service Data Objects,服務(wù)數(shù)據(jù)對(duì)象)。

1.SCA

早在2005年11月,OSOA就發(fā)布了SCA 0.9規(guī)范草稿。SCA是一種全新的、跟語(yǔ)言無(wú)關(guān)的編程模型,這種面向服務(wù)構(gòu)件的編程模型可以大大簡(jiǎn)化客戶的編程,提高應(yīng)用的靈活性,將會(huì)對(duì)現(xiàn)有軟件開(kāi)發(fā)方式產(chǎn)生顛覆性的影響。

2.SDO

SDO致力于為應(yīng)用系統(tǒng)中處理數(shù)據(jù)提供統(tǒng)一的方式,而不論數(shù)據(jù)的來(lái)源、格式是什么樣的。SCA和SDO都可以獨(dú)自使用,沒(méi)有規(guī)定說(shuō)在同一個(gè)應(yīng)用程序中必須同時(shí)使用兩種技術(shù)。然而SCA和SDO可以結(jié)合起來(lái)一起使用,從而為采用面向服務(wù)的架構(gòu)搭建應(yīng)用系統(tǒng)提供一種強(qiáng)有力的、靈活的方式。

3.DAS

DAS是與SDO密切相關(guān)的。DAS提供了一種對(duì)數(shù)據(jù)庫(kù)和對(duì)服務(wù)來(lái)說(shuō)統(tǒng)一的數(shù)據(jù)處理方式,它也提供了相應(yīng)的機(jī)制,用來(lái)實(shí)現(xiàn)當(dāng)數(shù)據(jù)同其來(lái)源分離時(shí)的處理。DAS設(shè)計(jì)用于簡(jiǎn)化和統(tǒng)一應(yīng)用程序處理數(shù)據(jù)的方式。通過(guò)使用DAS,應(yīng)用程序編程人員可以采用統(tǒng)一的方式訪問(wèn)和操作來(lái)自異類數(shù)據(jù)源的數(shù)據(jù),包括關(guān)系數(shù)據(jù)庫(kù)、XML數(shù)據(jù)源、Web服務(wù)以及企業(yè)信息系統(tǒng)。

開(kāi)源SOA四將軍

SOA作為新生事物,它的開(kāi)源實(shí)現(xiàn)并不多。就筆者在行業(yè)內(nèi)的了解,目前共有下面四個(gè)開(kāi)源SOA項(xiàng)目,就如同戰(zhàn)場(chǎng)上的將軍一樣,為SOA陣營(yíng)攻城略地,開(kāi)拓了不少疆土。

1.大將軍Tuscany

Tuscany是Apache軟件基金會(huì)的孵化項(xiàng)目,由在Apache軟件基金會(huì)占有重要份量的IBM和BEA主導(dǎo)。Tuscany原本是意大利行政區(qū)名,一般中文翻譯為托斯卡納區(qū),這里被借用作為項(xiàng)目名稱。Tuscany的主要目標(biāo)是為用戶提供一組SOA基礎(chǔ)設(shè)施,其中包括Java和C++實(shí)現(xiàn)的SCA/SDO/DAS標(biāo)準(zhǔn)。

2.驃騎將軍STP

STP(SOA Tools Platform)項(xiàng)目是Eclipse基金會(huì)的重要項(xiàng)目。STP的目標(biāo)是為技術(shù)人員提供一個(gè)靈活可擴(kuò)展的框架,技術(shù)人員能夠在這個(gè)框架的基礎(chǔ)之上圍繞SOA方便地進(jìn)行設(shè)計(jì)、配置、組裝、布署、監(jiān)控和管理等工作。STP提供相關(guān)工具來(lái)支持開(kāi)發(fā)人員使用面向服務(wù)的體系結(jié)構(gòu)進(jìn)行解決方案構(gòu)建,而面向服務(wù)的體系結(jié)構(gòu)則使用服務(wù)組件體系結(jié)構(gòu)作為其核心模型。

3.左車騎將軍SOA PHP

PECL(PHP Extension Community Library)庫(kù)在PHP社區(qū)是無(wú)人不知無(wú)人不曉,不過(guò)知道PECL庫(kù)新納入的SOA PHP項(xiàng)目的人卻并不多見(jiàn)。SOA PHP項(xiàng)目的主要目標(biāo)是用PHP來(lái)實(shí)現(xiàn)SOA中的SCA/SDO標(biāo)準(zhǔn),這對(duì)PHP社區(qū)的同志們真是個(gè)莫大的福音。

4.右車騎將軍牛頓(Newton)

Newton是一個(gè)分布式的運(yùn)行時(shí)框架,用來(lái)對(duì)企業(yè)級(jí)環(huán)境下復(fù)雜的SOA系統(tǒng)做動(dòng)態(tài)的實(shí)例化和可持續(xù)管理。Newton利用SCA系統(tǒng)描述,對(duì)OSGi的組件做動(dòng)態(tài)的布署,由此實(shí)現(xiàn)對(duì)分布式的異構(gòu)數(shù)據(jù)源的監(jiān)控和管理。

#p#

Tuscany開(kāi)源架構(gòu)分析

從以上可以看出,世界上兩大開(kāi)源軟件基金會(huì)(Apache軟件基金會(huì)和Eclipse基金會(huì))還有其他的不同社區(qū)都已經(jīng)開(kāi)始了SOA開(kāi)源軟件的研發(fā)進(jìn)程。下面將主要討論Tuscany開(kāi)源項(xiàng)目架構(gòu)和它在SOA標(biāo)準(zhǔn)化進(jìn)程中的影響。

1.Tuscany的問(wèn)題域

tuscany   

問(wèn)題域是一個(gè)軟件產(chǎn)品解決方案的首要目標(biāo)。BEA Systems CTO辦公室的Jim Marino告訴我們,Tuscany的問(wèn)題域用一句話概括,就是解決怎么樣來(lái)構(gòu)造和組裝服務(wù)的問(wèn)題。

服務(wù)是表示一個(gè)業(yè)務(wù)功能的代碼單元,它可以被客戶端在本地或者遠(yuǎn)程定位并構(gòu)造。服務(wù)可以布署在不同的運(yùn)行環(huán)境中,比如可以是J2EE Server,也可以是J2SE客戶端、可以是Servlet容器,也可以是OSGi容器等。

服務(wù)可以用不同的程序語(yǔ)言來(lái)編寫,然后在異構(gòu)環(huán)境中被組裝。這里的服務(wù)和Web Service中的服務(wù)有很大區(qū)別。Web Service中的服務(wù)是用低層級(jí)的協(xié)議來(lái)約束系統(tǒng)間的互操作,而Tuscany中的服務(wù)是從高層級(jí)的業(yè)務(wù)組合來(lái)屏蔽Web Service中的服務(wù)所考慮的問(wèn)題。Tuscany可以使用Web Service中的技術(shù),但并不限制于它,應(yīng)該說(shuō)Tuscany對(duì)外封裝了WS-*和RMI等服務(wù)調(diào)用細(xì)節(jié)。

用一句話概括就是Web Service描述了服務(wù)間的協(xié)議,但并沒(méi)有描述服務(wù)間的關(guān)系,而后者正是Tuscany所要做的主要工作之一。

2.Tuscany的Service Network架構(gòu)

以上面確定的問(wèn)題域?yàn)橹行?,Tuscany為我們解決了很多現(xiàn)有的技術(shù)架構(gòu)問(wèn)題。我們用現(xiàn)有的技術(shù)架構(gòu),在平常的開(kāi)發(fā)中總會(huì)碰到如下一些問(wèn)題:

◆大規(guī)模軟件系統(tǒng)的開(kāi)發(fā)和配置的復(fù)雜性。

◆缺乏動(dòng)態(tài)性,比如對(duì)目標(biāo)功能服務(wù)點(diǎn)的動(dòng)態(tài)切換,這一直是軟件業(yè)的一大核心問(wèn)題。

◆異構(gòu)環(huán)境下的模塊功能不能復(fù)制。

◆很難構(gòu)建一個(gè)可平滑地對(duì)用戶規(guī)模伸縮的系統(tǒng)。比如1999年,Ebay網(wǎng)絡(luò)在用戶數(shù)急增的情況下,曾經(jīng)宕機(jī)20小時(shí),導(dǎo)致股價(jià)下跌9%,損失慘重。

在這樣的情況下,Tuscany在SOA基礎(chǔ)上設(shè)計(jì)為Service NetWork架構(gòu)。SCA用來(lái)組裝一個(gè)服務(wù)網(wǎng)絡(luò),而SDO表達(dá)了服務(wù)網(wǎng)絡(luò)內(nèi)流動(dòng)的數(shù)據(jù),DAS則對(duì)這些流動(dòng)的數(shù)據(jù)進(jìn)行統(tǒng)一格式的存儲(chǔ)。

Tuscany的異構(gòu)Service NetWork架構(gòu)如圖1所示。從圖中可以看出,在Service NetWork中,業(yè)務(wù)邏輯是包含在Component(組件)中。Component對(duì)外提供服務(wù),一個(gè)Component可以引用其他Component提供的服務(wù),還可以依賴于其他Component提供的服務(wù)。Component之間的引用或者依賴關(guān)系,可以用一定的Policy(策略)表達(dá),比如事務(wù)策略、可靠性策略等。

Tuscany的Service NetWork就好比一桌滿漢全席,而Service NetWork中的Component就好比滿漢全席中的108道菜。我們要自己去做一個(gè)好吃的菜是很難的,而如果有不同的廚師掌握了不同的菜的手藝,我們就可以自己來(lái)從108道菜中挑選我們自己愛(ài)吃的菜了。在SOA的軟件開(kāi)發(fā)環(huán)境下,顯然“由一個(gè)廚師來(lái)決定消費(fèi)者口味”的時(shí)代將很快結(jié)束。

Tuscany的Service NetWork中的Component是可大可小的,服務(wù)可以在本地也可以在遠(yuǎn)端。對(duì)Java而言,服務(wù)實(shí)現(xiàn)可以在單個(gè)JVM中也可以在多JVM中。還有非常重要的一點(diǎn),Component是自包含的,Component中還可以包括另外的Component,甚至可以包括本Component。實(shí)際上,Service NetWor本身也作為一個(gè)Component對(duì)待。

3.Tuscany的業(yè)務(wù)調(diào)用流程

在上面的架構(gòu)下,Tuscany的服務(wù)可以用各種各樣的語(yǔ)言來(lái)實(shí)現(xiàn),并分布在各種各樣的環(huán)境中。它的業(yè)務(wù)調(diào)用流程如下,我們用114撥號(hào)進(jìn)行比對(duì)分析:

◆客戶向Tuscany服務(wù)發(fā)起調(diào)用。就好象我們撥打“號(hào)碼百事通”一樣,使用的是中國(guó)電信的統(tǒng)一服務(wù)。

◆Tuscany的綁定功能模塊負(fù)責(zé)把調(diào)用分發(fā)到不同的傳輸功能實(shí)現(xiàn)。比如“號(hào)碼百事通”的座席或者后臺(tái)程序會(huì)根據(jù)您的選擇,把您要問(wèn)的問(wèn)題轉(zhuǎn)發(fā)到不同的業(yè)務(wù)后端去。

◆對(duì)應(yīng)的傳輸功能實(shí)現(xiàn)把調(diào)用進(jìn)行傳輸,傳輸方式可能是SOAP/HTTP、JMS、RMI或者AMQP等。比如“號(hào)碼百事通”和“攜程網(wǎng)”的通信方式,還有和“螞蟻搬家”的通信方式可能是不同的。

◆Tuscany綁定功能服務(wù)模塊收到調(diào)用請(qǐng)求,把它轉(zhuǎn)發(fā)給對(duì)應(yīng)的目標(biāo)服務(wù)?!皵y程網(wǎng)”收到請(qǐng)求后,把客戶想訂什么酒店轉(zhuǎn)發(fā)到不同的酒店集團(tuán)。

◆目標(biāo)服務(wù)執(zhí)行服務(wù)功能。不同的酒店集團(tuán)確認(rèn)是否還有空房等。

看起來(lái)好象和Web Service等差別不大。不過(guò)要注意,這里的第五步不需要判斷是否需要返回信息。是否需要返回信息是不同的服務(wù)功能已經(jīng)確定好的,由Tuscany已經(jīng)實(shí)現(xiàn)。

4.Tuscany的內(nèi)核分析

Tuscany采用微內(nèi)核加擴(kuò)展插件的結(jié)構(gòu)。它的工程本身加上全部依賴工程只有4M代碼,而它的可擴(kuò)展插件都是一個(gè)獨(dú)立的SCA Component。實(shí)際上,它的內(nèi)核中的bootstrap就是由一系列的Component組成的。 Tuscany對(duì)外提供一個(gè)非侵入的編程模型,具有自動(dòng)化配置功能,并且這些配置都是有缺省值的。就如同富捷軟件集團(tuán)總裁周強(qiáng)說(shuō)的一樣,Tuscany和射雕英雄傳中的周伯通一樣,已經(jīng)學(xué)會(huì)了“左右手互搏”的武功,它的內(nèi)核和插件就如同自己的左手和右手一樣,互相競(jìng)爭(zhēng)功能,互相彌補(bǔ)缺憾,恰到好處。

Tuscany的內(nèi)核被控制在30K行代碼之內(nèi)。它提供擴(kuò)展點(diǎn)來(lái)提供功能,而且這些功能都是在運(yùn)行期動(dòng)態(tài)加入的。Tuscany允許多樣化的技術(shù)選擇,比如它不會(huì)限制你用什么Web Service實(shí)現(xiàn)。

Tuscany的內(nèi)核組成如圖2所示,從圖中可以看出,Tuscany主要由五大部分組成:

◆一個(gè)Ioc(Inversion of Control)的單JVM的織入引擎;

◆組件狀態(tài)管理容器;

◆策略布署框架;

◆數(shù)據(jù)訪問(wèn)服務(wù);

◆依賴管理和SPI管理容器。

5.Tuscany與其他項(xiàng)目的異同

從上面的內(nèi)核分析可以看出,Tuscany與我們平常知道的項(xiàng)目是完全不同的。Tuscany是基于SCA而實(shí)現(xiàn)的,它通過(guò)組裝的方法來(lái)表達(dá)自己的Service NetWork架構(gòu)概念。它可以用各種各樣的語(yǔ)言比如Java、C++、BPEL來(lái)構(gòu)造組件,并能和已經(jīng)存在的各種編程模型進(jìn)行集成,它還提供了一個(gè)用來(lái)表達(dá)服務(wù)關(guān)聯(lián)關(guān)系的策略模型。

Tuscany可以布署在J2EE Server上,也可以使用J2EE中的很多技術(shù),Tuscany中的Components也可以用J2EE中的EJB或者JAX-WS實(shí)現(xiàn)。不過(guò),Tuscany提供的功能和J2EE是不相同的。Tuscany可以用多種語(yǔ)言實(shí)現(xiàn),包括C++、BPEL和PHP等。和J2EE相比,Tuscany對(duì)業(yè)務(wù)子系統(tǒng)間的通信做了更好的抽象,在J2EE中,必須確定系統(tǒng)哪里需要一個(gè)Web Service或EJB;但Tuscany可以容許你在后面才決定這里是一個(gè)Web Service或者是一個(gè)POJO。Tuscany中的服務(wù)還可以是輕量級(jí)的實(shí)現(xiàn)。

Tuscany所做的事情和JBI(Java Business Integration)也不相同。對(duì)于中間件供應(yīng)商而言,JBI是在NMR(Normalized Message Router)的基礎(chǔ)上,把SPI(Server Provider Interface)標(biāo)準(zhǔn)化了。Tuscany沒(méi)有NMR的概念,而是使用點(diǎn)對(duì)點(diǎn)的織入模型,用來(lái)起到“服務(wù)交換機(jī)”的作用。和SPI一樣,Tuscany也有一個(gè)擴(kuò)展模型,但它主要是針對(duì)服務(wù)開(kāi)發(fā)者和服務(wù)組裝者而設(shè)置。

Tuscany目前已經(jīng)發(fā)展成為了SOA的試金石,在OSOA等開(kāi)放組織的帶領(lǐng)下,它將為我們發(fā)現(xiàn)更多的金礦,相信隨著OSOA的不斷發(fā)展,Tuscany這樣的開(kāi)源SOA產(chǎn)品將取得更輝煌的成功。

【編輯推薦】

  1. TechTarget調(diào)查表明SOA勢(shì)頭正勁
  2. 化解云計(jì)算與SOA沖突的三把利器
  3. IBM加大對(duì)SOA、SaaS、云計(jì)算、Web2.0投入
責(zé)任編輯:yangsai 來(lái)源: IT168
相關(guān)推薦

2021-01-13 10:22:51

區(qū)塊鏈支付金融

2010-03-19 12:02:17

開(kāi)源發(fā)展趨勢(shì)

2012-07-04 13:08:58

軟件開(kāi)發(fā)軟件編程

2012-11-28 10:07:33

開(kāi)源通信軟件

2012-11-28 10:27:57

開(kāi)源統(tǒng)一通信

2012-11-28 09:39:08

統(tǒng)一通信通信網(wǎng)絡(luò)開(kāi)源代碼

2024-02-29 16:28:57

2009-12-21 16:57:25

2009-11-26 10:45:41

Linux手機(jī)軟件趨勢(shì)分析

2015-10-27 13:17:35

生物識(shí)別生物識(shí)別技術(shù)

2024-02-27 12:29:00

2010-12-31 09:31:15

開(kāi)源軟件

2022-03-08 08:00:00

開(kāi)源開(kāi)發(fā)數(shù)據(jù)庫(kù)

2011-08-31 13:59:42

人大金倉(cāng)

2016-02-24 16:25:08

2016MWC華為

2022-05-13 11:17:12

紅帽開(kāi)源邊緣計(jì)算

2022-06-27 08:00:00

無(wú)代碼軟件編程程序員

2011-06-08 17:51:17

軟件開(kāi)發(fā)平臺(tái)Rational協(xié)作

2012-11-30 13:24:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)