<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    追尋生活的動力!

    自強不息

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      5 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

    2009年1月20日 #

    什么是SOA?SOA的基本特征?SOA有什么優(yōu)點?SOA現(xiàn)狀?

    什么是SOA?

    SOA是一種架構(gòu)模型,它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。

    SOA:Service-Oriented Architecture,面向服務(wù)架構(gòu),SOA是一種架構(gòu)模型,它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理互聯(lián)網(wǎng)紓的人為依賴性。

    SOA的幾個關(guān)鍵特性:一種粗粒度、松耦合服務(wù)架構(gòu),服務(wù)之間通過簡單、精確定義適配器進(jìn)行通訊,不涉及底層編程適配器和通訊模型。

    SOA的關(guān)鍵是“服務(wù)”的概念,W3C將服務(wù)定義為:“服務(wù)提供者完成一組工作,為服務(wù)使用者交付所需的最終結(jié)果。最終結(jié)果通常會使使用者的狀態(tài)發(fā)生變化,但也可能使提供者的狀態(tài)改變,或者雙方都產(chǎn)生變化”。

    Service-architecture.com將SOA定義為:“本質(zhì)上是服務(wù)的集合。服務(wù)間彼此通信,這種通信可能是簡單的數(shù)據(jù)傳送,也可能是兩個或更多的服務(wù)協(xié)調(diào)進(jìn)行某些活動。服務(wù)間需要某些方法進(jìn)行連接。所謂服務(wù)就是精確定義、封裝完善、獨立于其他服務(wù)所處環(huán)境和狀態(tài)的函數(shù)。”

    Looselycoupled.com將SOA定義為:“按需連接資源的系統(tǒng)。在SOA中,資源被作為可通過標(biāo)準(zhǔn)方式訪問的獨立服務(wù),提供給網(wǎng)絡(luò)中的其他成員。與傳統(tǒng)的系統(tǒng)結(jié)構(gòu)相比,SOA規(guī)定了資源間更為靈活的松散耦合關(guān)系。”

    Gartner則將SOA描述為:“客戶端/服務(wù)器的軟件設(shè)計方法,一項應(yīng)用由軟件服務(wù)和軟件服務(wù)使用者組成……SOA與大多數(shù)通用的客戶端/服務(wù)器模型的不同之處,在于它著重強調(diào)軟件組件的松散耦合,并使用獨立的標(biāo)準(zhǔn)接口。”

    Gartner相信BPM和SOA的結(jié)合對所有類型的應(yīng)用集成都大有助益??“SOA極大的得益于BPM技術(shù)和方法論,但是SOA面臨的真正問題是確立正確的企業(yè)意識,即:強化戰(zhàn)略化的SOA計劃(針對供應(yīng)和使用)并鼓勵重用。”

    雖然不同廠商或個人對SOA有著不同的理解,但是我們?nèi)匀豢梢詮纳鲜龅亩x中看到SOA的幾個關(guān)鍵特性:一種粗粒度、松耦合服務(wù)架構(gòu),服務(wù)之間通過簡單、精確定義接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。

    需著重注意的是,SOA并不是新生事物??大型IT組織成功構(gòu)建和部署SOA應(yīng)用已有多年的歷史??這要比現(xiàn)有的XML和Web服務(wù)長很多。IBM CICS和BEA TUXEDO就是過去被用于構(gòu)建SOA應(yīng)用的兩種技術(shù)范例。

    重點說明的是SOA并不是一種現(xiàn)成的技術(shù),而是一種架構(gòu)和組織IT基礎(chǔ)結(jié)構(gòu)及業(yè)務(wù)功能的方法。SOA是一種在計算環(huán)境中設(shè)計、開發(fā)、部署和管理離散邏輯單元(服務(wù))的模型。這一定義闡明了SOA的范圍。

    SOA要求開發(fā)人員將應(yīng)用設(shè)計為服務(wù)的集合。SOA要求開發(fā)人員跳出應(yīng)用本身進(jìn)行思考,考慮現(xiàn)有服務(wù)的重用,或思索他們的服務(wù)如何能夠被其他項目重用。“單獨的”、“獨立的”、“封裝完善的”服務(wù)所具有的一個關(guān)鍵的好處是,可以采用多種不同方法將它們組合成較大型的服務(wù),由此來實現(xiàn)重用。

    但是,SOA并不僅僅是一種開發(fā)方法??它還具有管理上的優(yōu)點。例如,現(xiàn)在管理員可直接管理開發(fā)人員所構(gòu)建的相同服務(wù),這遠(yuǎn)勝于以往管理單個應(yīng)用的方式。通過分析服務(wù)間的交互,SOA可以幫助企業(yè)了解何時以及為什么業(yè)務(wù)邏輯被切實執(zhí)行了,這使管理員或分析師能夠有針對性的優(yōu)化業(yè)務(wù)流程。

     

    SOA的基本特征

    SOA的實施具有幾個鮮明的基本特征。實施SOA的關(guān)鍵目標(biāo)是實現(xiàn)企業(yè)IT資產(chǎn)的最大化重用。要實現(xiàn)這一目標(biāo),就要在實施SOA的過程中牢記以下特征:

    1 可從企業(yè)外部訪問

    通常被稱為業(yè)務(wù)伙伴的外部用戶也能像企業(yè)內(nèi)部用戶一樣訪問相同的服務(wù)。業(yè)務(wù)伙伴采用先進(jìn)的B2B協(xié)議(ebXML或RosettaNet)相互合作。當(dāng)業(yè)務(wù)伙伴基于業(yè)務(wù)目的交換業(yè)務(wù)信息時,他們就參與了一次會話。會話是業(yè)務(wù)伙伴間一系列的一條或多條業(yè)務(wù)信息的交換。會話類型(會話復(fù)雜或簡單、長或短等)取決于業(yè)務(wù)目的。

    除了B2B協(xié)議外,外部用戶還可以訪問以Web服務(wù)方式提供的企業(yè)服務(wù)。

     

    2 隨時可用

    當(dāng)有服務(wù)使用者請求服務(wù)時,SOA要求必須有服務(wù)提供者能夠響應(yīng)。大多數(shù)SOA都能夠為門戶應(yīng)用之類的同步應(yīng)用和B2B之類的異步應(yīng)用提供服務(wù)。同步應(yīng)用對于其所使用的服務(wù)具有很強的依賴性。

    許多同步應(yīng)用通常部署在前臺,其最終用戶很容易受到服務(wù)提供者短缺的影響。很多情況下,同步應(yīng)用利用分布式服務(wù)提供者,這樣可以響應(yīng)更多的用戶請求。但是,隨著提供特定服務(wù)功能的服務(wù)器數(shù)量的增長,出現(xiàn)短缺的可能性也呈指數(shù)級上升。

    相比之下,異步應(yīng)用要更為穩(wěn)健,因為其采用隊列請求設(shè)計,因此可以容許出現(xiàn)服務(wù)提供者短缺或遲滯的情況。異步應(yīng)用大多數(shù)情況下部署在后臺,用戶通常不會覺察到短暫的短缺。大部分情況下異步應(yīng)用能夠穩(wěn)健應(yīng)對短時間短缺,但是長時間短缺則會引發(fā)嚴(yán)重問題。在服務(wù)短缺解決、隊列引擎將罕見的大量工作推到共享的應(yīng)用資源中時,可能會出現(xiàn)隊列溢出甚至服務(wù)死鎖。

    服務(wù)使用者要求提供同步服務(wù)時,通常是基于其自身理解或使用習(xí)慣。在多數(shù)情況下,采用異步模型可以達(dá)到同樣的效果,但更能夠體現(xiàn)SOA的最佳特性。

    當(dāng)然,并不是所有情況下都應(yīng)當(dāng)采用異步設(shè)計模式。但大多數(shù)情況下,異步消息可以確保系統(tǒng)在不同負(fù)荷下的伸縮性,在接口響應(yīng)時間不是很短時尤其如此。

    3 粗粒度服務(wù)接口

    粗粒度服務(wù)提供一項特定的業(yè)務(wù)功能,而細(xì)粒度服務(wù)代表了技術(shù)組件方法。舉個例說明最為清楚??向計費系統(tǒng)中添加一個客戶是典型的粗粒度服務(wù),而你可以使用幾個細(xì)粒度服務(wù)實現(xiàn)同一功能,如:將客戶名加入到計費系統(tǒng)中,添加詳細(xì)的客戶聯(lián)系方式、添加計費信息等等。

    采用粗粒度服務(wù)接口的優(yōu)點在于使用者和服務(wù)層之間不必再進(jìn)行多次的往復(fù),一次往復(fù)就足夠。Internet環(huán)境中有保障的TCP/IP會話已不再占據(jù)主導(dǎo)、建立連接的成本也過高,因此在該環(huán)境中進(jìn)行應(yīng)用開發(fā)時粗粒度服務(wù)接口的優(yōu)點更為明顯。

    除去基本的往復(fù)效率,事務(wù)穩(wěn)定性問題也很重要。在一個單獨事務(wù)中包含的多段細(xì)粒度請求可能使事務(wù)處理時間過長、導(dǎo)致后臺服務(wù)超時,從而中止。與此相反,從事務(wù)的角度來看,向后臺服務(wù)請求大塊數(shù)據(jù)可能是獲取反饋的唯一途徑。

    4 分級

    一個關(guān)于粗粒度服務(wù)的爭論是此類服務(wù)比細(xì)粒度服務(wù)的重用性差,因為粗粒度服務(wù)傾向于解決專門的業(yè)務(wù)問題,因此通用性差、重用性設(shè)計困難。解決該爭論的方法之一就是允許采用不同的粗粒度等級來創(chuàng)建服務(wù)。這種服務(wù)分級包含了粒度較細(xì)、重用性較高的服務(wù),也包含粒度較粗、重用性較差的服務(wù)。

    在服務(wù)分級方面,須注意服務(wù)層的公開服務(wù)通常由后臺系統(tǒng)(BES's)或SOA平臺中現(xiàn)有的本地服務(wù)組成。因此允許在服務(wù)層創(chuàng)建私有服務(wù)是非常重要的。正確的文檔、配置管理和私有服務(wù)的重用對于IT部門在SOA服務(wù)層快速開發(fā)新的公開服務(wù)的能力具有重要影響。

     

    5 松散耦合

    SOA具有“松散耦合”組件服務(wù),這一點區(qū)別于大多數(shù)其他的組件架構(gòu)。該方法旨在將服務(wù)使用者和服務(wù)提供者在服務(wù)實現(xiàn)和客戶如何使用服務(wù)方面隔離開來。

    服務(wù)提供者和服務(wù)使用者間松散耦合背后的關(guān)鍵點是服務(wù)接口作為與服務(wù)實現(xiàn)分離的實體而存在。這是服務(wù)實現(xiàn)能夠在完全不影響服務(wù)使用者的情況下進(jìn)行修改。

    大多數(shù)松散耦合方法都依靠基于服務(wù)接口的消息。基于消息的接口能夠兼容多種傳輸方式(如HTTP、JMS、TCP/IP、MOM等)。基于消息的接口可以采用同步和異步協(xié)議實現(xiàn),Web服務(wù)對于SOA服務(wù)接口來講是一個重要的標(biāo)準(zhǔn)。
    當(dāng)使用者調(diào)用一個Web服務(wù)時,被調(diào)用的對象可以是CICS事務(wù)、DCOM或CORBA對象、J2EE EJB或TUXEDO服務(wù)等,但這與服務(wù)使用者無關(guān)。底層實現(xiàn)并不重要。

    消息類Web服務(wù)通常是松散耦合和文檔驅(qū)動的,這要優(yōu)于與服務(wù)特定接口的連接。當(dāng)客戶調(diào)用消息類Web服務(wù)時,客戶通常會發(fā)送的是一個完整的文檔(如采購訂單),而非一組離散的參數(shù)。Web服務(wù)接收整個文檔、進(jìn)行處理、而后可能或者不會返回結(jié)果信息。由于客戶和Web服務(wù)間不存在緊密耦合請求響應(yīng),消息類 Web服務(wù)在客戶和服務(wù)器間提供了更為松散的耦合。

     

    6 可重用的服務(wù)及服務(wù)接口設(shè)計管理

    如果完全按照可重用的原則設(shè)計服務(wù),SOA將可以使應(yīng)用變得更為靈活。可重用服務(wù)采用通用格式提供重要的業(yè)務(wù)功能,為開發(fā)人員節(jié)約了大量時間。設(shè)計可重用服務(wù)是與數(shù)據(jù)庫設(shè)計或通用數(shù)據(jù)建模類似的最有價值的工作。由于服務(wù)設(shè)計是成功的關(guān)鍵因此,因此SOA實施者應(yīng)當(dāng)尋找一種適當(dāng)?shù)姆椒ㄟM(jìn)行服務(wù)設(shè)計過程管理。

    服務(wù)設(shè)計管理根本上講是服務(wù)設(shè)計問題,服務(wù)設(shè)計需要在兩點間折衷??走捷徑的項目戰(zhàn)術(shù)與企業(yè)構(gòu)建可重用通用服務(wù)的長期目標(biāo)。

    超越項目短期目標(biāo)進(jìn)行服務(wù)接口的開發(fā)和評估是邁向精確定義服務(wù)接口的重要一步,同時還需要為接口文檔、服務(wù)實現(xiàn)文檔及所有重要的非功能性特征設(shè)立標(biāo)準(zhǔn)。

    在大型組織中實現(xiàn)重用的一個先決條件是建立通用(設(shè)計階段)服務(wù)庫和開發(fā)流程,以保證重用的正確性和通用性。此外,對記述服務(wù)設(shè)計和開發(fā)的服務(wù)文檔進(jìn)行評估也是成功利用服務(wù)庫的關(guān)鍵。

    簡言之,不按規(guī)則編寫服務(wù)將無法保證可提供重用性的SOA的成功實施。在執(zhí)行規(guī)則的過程中會產(chǎn)生財務(wù)費用,需要在制定SOA實施計劃時加以考慮。

     

    7 標(biāo)準(zhǔn)化的接口

    近年來出現(xiàn)的兩個重要標(biāo)準(zhǔn)XML和Web服務(wù)增加了全新的重要功能,將SOA推向更高的層面,并大大提升了SOA的價值。盡管以往的SOA產(chǎn)品都是專有的、并且要求IT部門在其特定環(huán)境中開發(fā)所有應(yīng)用,但XML和Web服務(wù)標(biāo)準(zhǔn)化的開放性使企業(yè)能夠在所部署的所有技術(shù)和應(yīng)用中采用SOA。這具有巨大的意義!

    Web服務(wù)使應(yīng)用功能得以通過標(biāo)準(zhǔn)化接口(WSDL)提供,并可基于標(biāo)準(zhǔn)化傳輸方式(HTTP和JMS)、采用標(biāo)準(zhǔn)化協(xié)議(SOAP)進(jìn)行調(diào)用。例如,開發(fā)人員可以采用最適于門戶開發(fā)的工具輕松創(chuàng)建一個新的門戶應(yīng)用,并可以重用ERP系統(tǒng)和定制化J2EE應(yīng)用中的現(xiàn)有服務(wù),而完全無須了解這些應(yīng)用的內(nèi)部工作原理。采用XML,門戶開發(fā)人員無須了解特定的數(shù)據(jù)表示格式,便能夠在這些應(yīng)用間輕松地交換數(shù)據(jù)。

    你也可以不采用Web服務(wù)或XML來創(chuàng)建SOA應(yīng)用,但是這兩種標(biāo)準(zhǔn)的重要性日益增加、應(yīng)用日趨普遍。盡管目前只有幾種服務(wù)使用者支持該標(biāo)準(zhǔn),但未來大多數(shù)的服務(wù)使用者都會將其作為企業(yè)的服務(wù)訪問方法。

     

    8 支持各種消息模式

    SOA中可能存在以下消息模式。在一個SOA實現(xiàn)中,常會出現(xiàn)混合采用不同消息模式的服務(wù)。

    A. 無狀態(tài)的消息。使用者向提供者發(fā)送的每條消息都必須包含提供者處理該消息所需的全部信息。這一限定使服務(wù)提供者無須存儲使用者的狀態(tài)信息,從而更易擴展。

    B. 有狀態(tài)的消息。使用者與提供者共享使用者的特定環(huán)境信息,此信息包含在提供者和使用者交換的消息中。這一限定使提供者與使用者間的通信更加靈活,但由于服務(wù)提供者必須存儲每個使用者的共享環(huán)境信息,因此其整體可擴展性明顯減弱。該限定增強了服務(wù)提供者和使用者的耦合關(guān)系,提高了交換服務(wù)提供者的服務(wù)難度。

    C. 等冪消息。向軟件代理發(fā)送多次重復(fù)消息的效果和發(fā)送單條消息相同。這一限定使提供者和消費者能夠在出現(xiàn)故障時簡單的復(fù)制消息,從而改進(jìn)服務(wù)可靠性。

     

    9 精確定義的服務(wù)接口

    服務(wù)是由提供者和使用者間的契約定義的。契約規(guī)定了服務(wù)使用方法及使用者期望的最終結(jié)果。此外,還可以在其中規(guī)定服務(wù)質(zhì)量。此處需要注意的關(guān)鍵點是,服務(wù)契約必須進(jìn)行精確定義。

    META將SOA定義為:“一種以通用為目的、可擴展、具有聯(lián)合協(xié)作性的架構(gòu),所有流程都被定義為服務(wù),服務(wù)通過基于類封裝的服務(wù)接口委托給服務(wù)提供者,服務(wù)接口根據(jù)可擴展標(biāo)識符、格式和協(xié)議單獨描述。”該定義的最后部分表明在服務(wù)接口和其實現(xiàn)之間有明確的分界。

     

    SOA的優(yōu)點

    了解了SOA的定義和基本特征,最后我們再來看看SOA潛在的優(yōu)點:

    A.編碼靈活性

    可基于模塊化的低層服務(wù)、采用不同組合方式創(chuàng)建高層服務(wù),從而實現(xiàn)重用,這些都體現(xiàn)了編碼的靈活性。此外,由于服務(wù)使用者不直接訪問服務(wù)提供者,這種服務(wù)實現(xiàn)方式本身也可以靈活使用。

    B.明確開發(fā)人員角色

    例如,熟悉BES的開發(fā)人員可以集中精力在重用訪問層,協(xié)調(diào)層開發(fā)人員則無須特別了解BES的實現(xiàn),而將精力放在解決高價值的業(yè)務(wù)問題上。

    C.支持多種客戶類型

    借助精確定義的服務(wù)接口和對XML、Web服務(wù)標(biāo)準(zhǔn)的支持,可以支持多種客戶類型,包括PDA、手機等新型訪問渠道。

    D.更易維護(hù)

    服務(wù)提供者和服務(wù)使用者的松散耦合關(guān)系及對開放標(biāo)準(zhǔn)的采用確保了該特性的實現(xiàn)。

    E.更好的伸縮性

    依靠服務(wù)設(shè)計、開發(fā)和部署所采用的架構(gòu)模型實現(xiàn)伸縮性。服務(wù)提供者可以彼此獨立調(diào)整,以滿足服務(wù)需求。

    F.更高的可用性

    該特性在服務(wù)提供者和服務(wù)使用者的松散耦合關(guān)系上得以體現(xiàn)。使用者無須了解提供者的實現(xiàn)細(xì)節(jié),這樣服務(wù)提供者就可以在WebLogic集群環(huán)境中靈活部署,使用者可以被轉(zhuǎn)接到可用的例程上。

    SOA可以看作是B/S模型、XML/Web Service技術(shù)之后的自然延伸。SOA將能夠幫助我們站在一個新的高度理解企業(yè)級架構(gòu)中的各種組件的開發(fā)、部署形式,它將幫助企業(yè)系統(tǒng)架構(gòu)者以更迅速、更可靠、更具重用性架構(gòu)整個業(yè)務(wù)系統(tǒng)。較之以往,以SOA架構(gòu)的系統(tǒng)能夠更加從容地面對業(yè)務(wù)的急劇變化。

    面向服務(wù)架構(gòu)(SOA)是讓IT更加關(guān)注于業(yè)務(wù)流程而非底層IT基礎(chǔ)結(jié)構(gòu),從而獲得競爭優(yōu)勢的更高級別的應(yīng)用程序開發(fā)架構(gòu)。

    IT人士如何滿足那些日益增長的需求以便快速實現(xiàn)IT價值呢?答案是開發(fā)和部署面向服務(wù)的架構(gòu)(SOA)。SOA方法能夠更好地讓IT與業(yè)務(wù)目標(biāo)看齊,使得IT組織可以高效復(fù)用資產(chǎn)、為企業(yè)更快地創(chuàng)造價值,進(jìn)而更輕松地應(yīng)對不斷變化的業(yè)務(wù)需求。

    SOA對需要使用信息技術(shù)解決關(guān)鍵業(yè)務(wù)問題的企業(yè)(包括希望減少冗余架構(gòu)、創(chuàng)建跨客戶和員工系統(tǒng)的公共業(yè)務(wù)接口的企業(yè);需要基于角色和工作流對用戶提供個性化信息的業(yè)務(wù)的企業(yè);希望通過Internet實現(xiàn)跨區(qū)銷售、升級銷售和經(jīng)由移動設(shè)備的訪問來提升客戶服務(wù)的組織)很有價值。

    采用服務(wù)驅(qū)動型方法的企業(yè)體驗著以下業(yè)務(wù)和IT好處:

    面向服務(wù)架構(gòu)的業(yè)務(wù)好處

    <!--[if !supportLists]-->l    <!--[endif]-->效率:將業(yè)務(wù)流程從"煙囪"狀的、重復(fù)的流程向維護(hù)成本較低的高度利用、共享服務(wù)應(yīng)用轉(zhuǎn)變。

    <!--[if !supportLists]-->l    <!--[endif]-->響應(yīng):迅速適應(yīng)和傳送關(guān)鍵業(yè)務(wù)服務(wù)來滿足市場需求,為客戶、雇員和合作伙伴更高水準(zhǔn)的服務(wù)。

    <!--[if !supportLists]-->l    <!--[endif]-->適應(yīng)性:更高效地轉(zhuǎn)入轉(zhuǎn)出讓整個業(yè)務(wù)變得復(fù)雜性和難度更小,達(dá)到節(jié)約時間和資金的目的。

    面向服務(wù)架構(gòu)的IT好處

    <!--[if !supportLists]-->l    <!--[endif]-->復(fù)雜性降低:基于標(biāo)準(zhǔn)的兼容性,與點到點的集成相比降低了復(fù)雜性。

    <!--[if !supportLists]-->l    <!--[endif]-->重用增加:通過重用以前開發(fā)和部署的共享服務(wù),實現(xiàn)了更有效的應(yīng)用程序/項目開發(fā)和交付。

    <!--[if !supportLists]-->l    <!--[endif]-->遺留集成:用作可重用服務(wù)的遺留應(yīng)用程序降低了維護(hù)和集成的成本。

    如今的服務(wù)驅(qū)動型企業(yè)都在體驗著開發(fā)的高效率,服務(wù)的高可靠性和服務(wù)的高質(zhì)量,以最大限度獲得業(yè)務(wù)機會所帶來的這些好處。

     

    IBM發(fā)布31種SOA產(chǎn)品 加速實現(xiàn)面向服務(wù)架構(gòu)

    IBM在它的客戶中加速實現(xiàn)面向服務(wù)架構(gòu)的努力當(dāng)中,已經(jīng)發(fā)布了IBM的11項新產(chǎn)品和22項基于WebSphere的軟件的更新,IBM還宣布將會對咨詢服務(wù)增加人力投入,以使得該項目能夠在接下來的六個月中完成。

    IBM Software 集團的高級副總裁和執(zhí)行總裁Steve Mills認(rèn)為SOA軟件市場還沒有成熟,但是本周發(fā)布的軟件將會幫助客戶開始SOA軟件的開發(fā)和應(yīng)用。

    posted @ 2009-01-20 10:48 NewSea 閱讀(163) | 評論 (0)編輯 收藏

    <!--[endif]--> <!--[if !vml]--><!--[endif]-->

    圖1:共享服務(wù)生命周期的設(shè)計和運行時階段

    SSLC中的設(shè)計時注意事項

    現(xiàn)在我們來看看共享服務(wù)周期的設(shè)計時方面。提到設(shè)計時,我主要關(guān)注服務(wù)投入生產(chǎn)和使用之前的生命周期。本文不涉及設(shè)計時建模的許多需求,如開發(fā)服務(wù)建模方法學(xué),但如有興趣,我將在未來的文章中闡述這一主題。

    確定業(yè)務(wù)流程

    SOA的一個核心原則是業(yè)務(wù)和IT保持一致以及建立競技場(playing field)。通過識別企業(yè)通過服務(wù)定位提供價值的業(yè)務(wù)流程,服務(wù)工程團隊(通常是業(yè)務(wù)、分析師和IT人員的組合)可能在討論的出發(fā)點方面達(dá)成一致。

    許多企業(yè)發(fā)覺很難理解從何處開始SOA以及哪些是最合適的業(yè)務(wù)流程。一種好的方法是首先在白板上定義需求目錄。將白板劃分為3條泳道,分別代表短期需求(3到6個月——通常本質(zhì)上更有戰(zhàn)術(shù)性),中期需求(6到18個月)和長期需求(超過18個月——通常為戰(zhàn)略需求,可能隨業(yè)務(wù)需求的變化而變化)。劃分泳道之后,開始為每個區(qū)域添加需求。盡量避免按應(yīng)用系統(tǒng)(如,電子商務(wù)網(wǎng)站)思考;看得越遠(yuǎn),越有可能達(dá)到您要求的高度(例如,我需要完善自己的清單系統(tǒng))。在生命周期的這一階段,主要著眼于可能成為業(yè)務(wù)組成部分的業(yè)務(wù)流程,如電子商務(wù)站點。

    完成初步分析之后,服務(wù)工程團隊可能開始尋找依賴性,試圖決定優(yōu)先級、揭示重用可能性或確定需求之間的依賴性。觀察下面的需求目錄示例,可以看到對于該企業(yè)來說,最初集中在用戶注冊流程上是再合理不過了,因為許多其他流程依賴于該流程,而且它可以在整個電子商務(wù)功能和企業(yè)內(nèi)部網(wǎng)中重用。

    <!--[if !vml]--><!--[endif]-->

    圖2:需求目錄示例,它向服務(wù)工程團隊提供了實現(xiàn)公司未來狀態(tài)的路線圖

    根據(jù)公司在服務(wù)設(shè)計和開發(fā)方面的成熟度,選擇首先開發(fā)哪種服務(wù)可能很自然地導(dǎo)致構(gòu)建沒有很多依賴性的服務(wù),同時積累經(jīng)驗。盡管這些想法是對的,但是在企業(yè)成熟度中,熟悉增強重用的服務(wù)建模技術(shù)是很重要的,如強大的契約和策略定義。服務(wù)工程團隊必須意識到重用概念以前曾在業(yè)務(wù)中提到過多次,但沒有多大成效。由于相對于傳統(tǒng)應(yīng)用程序生命周期來說,服務(wù)開發(fā)周期較短,服務(wù)工程團隊有能力從短期目錄創(chuàng)建一系列可以跨計劃快速利用的基礎(chǔ)服務(wù),從而實現(xiàn)早期的成功。

    無論如何,對初始服務(wù)(特別是依賴服務(wù))的選擇應(yīng)與服務(wù)工程團隊的能力相一致。這是很重要的。新的團隊需要時間才能在SSLC的設(shè)計階段具有更多經(jīng)驗。在服務(wù)目錄中確定的依賴服務(wù)可能由于具有較高的重用水平,看似是一個好的侯選服務(wù),但是不適合于尚未成熟的團隊。若一個服務(wù)已涉及到跨業(yè)務(wù)線、提供企業(yè)級功能或遵守嚴(yán)格的服務(wù)質(zhì)量規(guī)章的依賴性,則它可能不是一個理想的初始侯選服務(wù)。

    另一方面,對于一個具有已定義流程和已知端點的服務(wù),如果這些端點是受控的、成熟的并且范圍很小,在必要的情況下,服務(wù)本身的離散程度足以構(gòu)建或重構(gòu),那么在很短的時間內(nèi),這種服務(wù)是初始開發(fā)的主要侯選服務(wù)。這樣的初始服務(wù)應(yīng)該可以很快地驗證假設(shè)、方法學(xué)和流程。正確的設(shè)計需要經(jīng)驗和實踐。反復(fù)進(jìn)行試驗并糾正錯誤,尤其在SOA計劃的成型階段,這種方法是判斷在您的企業(yè)內(nèi)哪些SOA實踐可以發(fā)揮作用的重要機制。早期選擇沒有依賴性的孤立服務(wù)可能會限制服務(wù)工程團隊在成型階段獲取更多的學(xué)習(xí)機會。

    服務(wù)設(shè)計和建模

    服務(wù)設(shè)計和建模階段的目標(biāo)是,基于需求目錄中確定的業(yè)務(wù)流程建立一種定義侯選服務(wù)的一致方法。真到開始做的時候,服務(wù)工程團隊通常用白板描繪業(yè)務(wù)流程、分解步驟以及討論當(dāng)前和未來的需求。為此,一致的設(shè)計方法學(xué)應(yīng)該使用業(yè)務(wù)和IT均可理解的常用語言來建立。

    服務(wù)設(shè)計方法學(xué)為服務(wù)工程團隊提供了一系列用于分解業(yè)務(wù)流程的步驟或活動,基于面向服務(wù)的設(shè)計原則確定服務(wù)中開發(fā)哪些方面是合理的。對于這種設(shè)計方法學(xué),許多企業(yè)最初有一些爭執(zhí),尤其是服務(wù)粒度。過細(xì)的粒度可能產(chǎn)生不可重用的服務(wù)增殖;過粗的粒度,又很難著手。在團隊對建模流程滿意之前,它應(yīng)該將其活動集中在定義良好的業(yè)務(wù)流程中,這些業(yè)務(wù)流程可能并沒有較大企業(yè)需求(如高生產(chǎn)量、長期事務(wù))。

    盡管從技術(shù)上來說不是建模階段的一部分(但可能是建模方法學(xué)的一部分),但我的經(jīng)驗表明:在定義服務(wù)分類原則方面投入時間對企業(yè)來說是很重要的。這些指導(dǎo)方針應(yīng)該定義服務(wù)的哪些方面決定了服務(wù)是業(yè)務(wù)線(LOB)或應(yīng)用程序級服務(wù),還是具有特殊需求的企業(yè)服務(wù)。這些指導(dǎo)方針可能包括生產(chǎn)量、服務(wù)質(zhì)量(QoS)、正常運行時間、服務(wù)關(guān)鍵程度以及多少客戶將使用該服務(wù)。另外,開始定義與建立和管理服務(wù)相關(guān)的企業(yè)治理控制時,這些指導(dǎo)方針至關(guān)重要。開發(fā)指導(dǎo)方針可能本身是貫穿始終的工作,但開頭很簡單,只定義當(dāng)前需求所要求的部分就可以。而且,服務(wù)分類可能有助于將相似功能分組并確認(rèn)這些功能的業(yè)務(wù)所有者。記住,后續(xù)出現(xiàn)新的需求時可以重新調(diào)整指導(dǎo)方針。

    <!--[if !vml]--><!--[endif]-->

    圖3:服務(wù)分類及其與SOA治理的關(guān)系;此分類可能有助于定義SOA資產(chǎn)的企業(yè)治理控制。

    根據(jù)服務(wù)目錄示例,企業(yè)可能已經(jīng)建立了企業(yè)服務(wù)和業(yè)務(wù)線服務(wù)類別。以下進(jìn)行詳細(xì)描述。

    企業(yè)服務(wù)

    企業(yè)服務(wù)具有水平影響,可能包括:

    1. 無論在是周邊或核心部門,安全性都需要符合行業(yè)規(guī)范。
    2. 活動審計。記住審計可能是某一特定功能的一個方面,如外匯交易,而不是進(jìn)行交易的流程。
    3. 一般異常處理。
    4. 服務(wù)要求24x7可靠性,并且必須據(jù)此進(jìn)行治理。
    5. 服務(wù)要求大容量和(或)低延遲吞吐量。
    6. 根據(jù)使用環(huán)境,服務(wù)可能要求更高級別的客戶服務(wù)或響應(yīng)時間。例如,客戶個人信息表明他們是貴賓客戶,則服務(wù)契約會要求不同的SLA。
    7. 若服務(wù)要求跨業(yè)務(wù)線進(jìn)行交互,則可能具有必須滿足的企業(yè)基礎(chǔ)架構(gòu)需求。
    8. 服務(wù)與企業(yè)數(shù)據(jù)進(jìn)行交互。這方面可能意味著企業(yè)擁有通用模型,而具體用戶數(shù)據(jù)存儲的實現(xiàn)則由業(yè)務(wù)線控制。經(jīng)驗和實踐表明,大量的用戶數(shù)據(jù)存儲存在于企業(yè)中。SOA目標(biāo)的一部分就是為了長期鞏固這些方面,但在定義未來計劃時,不應(yīng)脫離現(xiàn)實,而是要充分利用現(xiàn)有資源。

    業(yè)務(wù)線服務(wù)

    這些服務(wù)具有垂直影響,可能包括:

    1. 特定業(yè)務(wù)功能,如采購單(PO)或新的租賃處理。
    2. 具有特定UI和外觀的表示服務(wù),或者通常用于提供某一特定業(yè)務(wù)功能的可視化表示的向?qū)А?/span>
    3. 支持業(yè)務(wù)線的CRUD(創(chuàng)建、讀取、更新、刪除)活動的信息和訪問服務(wù)。
    4. 應(yīng)用服務(wù),如基于特定業(yè)務(wù)線數(shù)據(jù)的銷售跟蹤或預(yù)測。

    此分類并不完整,但應(yīng)該可以提供企業(yè)如何開始分類工作的概念。

    通過檢查以上類別,可將以前定義的需求目錄中的某些侯選服務(wù)放至治理組中,并識別出以前并不明顯的許多典型結(jié)構(gòu):

    企業(yè)服務(wù)

    業(yè)務(wù)線服務(wù)

    登錄企業(yè)內(nèi)部網(wǎng)(內(nèi)部網(wǎng)基礎(chǔ)架構(gòu)主要由IT或特殊的LOB管理)

    更新個人信息(個人信息范例)

    更新個人信息(服務(wù))

    登錄電子商務(wù)網(wǎng)站

    銷售人員個人信息范例

    創(chuàng)建銷售人員個人信息

    清單項范例

    購買電影

    清單項范例

    購買書籍

    查看我的訂單狀態(tài)

    支付范例

    提供支付信息

    清單項范例

    出售書籍

    查看企業(yè)新聞

    清單范例

    檢查電影清單

    清單范例

    檢查書籍清單

    檢查所有清單

    整合清單系統(tǒng)(通常按實際服務(wù)進(jìn)行長期計劃)

    服務(wù)生命周期主要是為了解決業(yè)務(wù)需求問題,而不是過度陷于具體的分類練習(xí)。SSLC評估階段是為了支持基于實際應(yīng)用和環(huán)境的再評估。我想到電影《夢幻之地》中凱文·科斯特納聽到的聲音重復(fù)說:“你蓋好了,他們就會來”。這與在企業(yè)中公開服務(wù)沒有什么區(qū)別。在某一時間點上以某一使用級別定義的內(nèi)容實際上可能會以完全不同的方式使用,也就是通常在最初設(shè)計時并未考慮到的方式。指導(dǎo)方針在重分類階段應(yīng)該有所幫助。

    在流程的這一階段,我主要談?wù)摵钸x服務(wù)與服務(wù)實現(xiàn)的概念。Erl(2004)建議侯選服務(wù)是潛在的服務(wù),這些服務(wù)可能在最后的設(shè)計中實現(xiàn),也可能不實現(xiàn)。設(shè)計流程是為了確定設(shè)計和開發(fā)的未來階段的輸入。理解企業(yè)中哪些服務(wù)已存在以及哪些需要開發(fā)對服務(wù)工程團隊來說特別重要。支持服務(wù)發(fā)現(xiàn)的工具(如兼容UDDI的注冊庫)是促進(jìn)服務(wù)重用和了解現(xiàn)有可用資源的重要組件。

    最后,在建模階段,隨著逐漸理解了團隊正在定義侯選服務(wù),服務(wù)工程團隊?wèi)?yīng)通過獨立于技術(shù)架構(gòu)和物理環(huán)境約束的已確定方法學(xué)繼續(xù)進(jìn)行設(shè)計。服務(wù)設(shè)計和建模階段的目的就是定義期望的未來狀態(tài)。SSLC的構(gòu)建和組合階段將使侯選服務(wù)遵守組織約束以定義最后的服務(wù)實現(xiàn)。

    構(gòu)建和組合

    為更加快速經(jīng)濟地開發(fā)新的功能,服務(wù)生命周期的構(gòu)建和組合重點集中在開發(fā)新服務(wù)以及利用企業(yè)中現(xiàn)有資源所要求的任務(wù)上。這一方法可以縮短上市時間,從而實現(xiàn)SOA的一項關(guān)鍵財務(wù)收益。

    在本階段,服務(wù)建模和設(shè)計階段確定的侯選服務(wù)被具體化成服務(wù)操作,并將基礎(chǔ)架構(gòu)和環(huán)境實體映射到它們。正如在建模階段提到的,確定SOA計劃的目標(biāo)是很重要的。由于當(dāng)前環(huán)境的限制,實現(xiàn)這些目標(biāo)可能比較困難,但是可能會促進(jìn)某些良性討論以及某種成本利潤分析,從而確定如何實現(xiàn)期望的未來狀態(tài)。但是,現(xiàn)在的企業(yè)需要繼續(xù)發(fā)展,所以您的侯選服務(wù)在企業(yè)環(huán)境中必須具有現(xiàn)實意義。

    理解了哪些服務(wù)操作和實現(xiàn)比較現(xiàn)實之后,就可以著眼于重用的可能性以及在上一階段確定的組合。要充分利用SOA,組合的概念對業(yè)務(wù)敏捷性來說非常重要。開發(fā)環(huán)境和服務(wù)基礎(chǔ)架構(gòu)工具必須推動設(shè)計時發(fā)現(xiàn)服務(wù),并可組合這些服務(wù),完成整個業(yè)務(wù)流程。

    沒有這些工具,SOA計劃的成功可能會受到阻礙。隨著初始服務(wù)對業(yè)務(wù)線團隊和其他工程團隊可用,組合的機會可能得以實現(xiàn)。在這種情況下,在分類的同時已確定了初始依賴性。這些依賴性應(yīng)描述為構(gòu)建組合服務(wù)的直接可能性,并應(yīng)提供重用的切實收益。本文中只稍微提到了組合,但這些活動的重要性與SSLC的構(gòu)建和組合階段直接相關(guān)。

    考慮需求目錄示例:一個稱為整合清單系統(tǒng)的計劃已在長期目標(biāo)中確定。在第一次瀏覽時,該任務(wù)可能被描述為物理上廢棄舊清單系統(tǒng),并將存儲庫整合到一個主數(shù)據(jù)源中。盡管可能真的會是這樣(如果成本利潤分析表明廢棄舊系統(tǒng)更加經(jīng)濟有效的話),活動也可能表述為一種沒這么具體的形式。服務(wù)工程團隊可能產(chǎn)生一系列邏輯數(shù)據(jù)服務(wù),對客戶隱藏物理端點。構(gòu)建普適數(shù)據(jù)訪問層的這一方法將通過組合直接利用在中期需求目錄中開發(fā)的現(xiàn)有檢查清單X服務(wù)。整合清單系統(tǒng)計劃可能要求根據(jù)清單文檔的典型表示來決定哪些端點需要修改。這種分散式CRUD邏輯應(yīng)在“服務(wù)基礎(chǔ)架構(gòu)工具”中提供,這樣的一個示例是BEA AquaLogic Data Services Platform。

    通常,服務(wù)起源于業(yè)務(wù)線級別而不是通過企業(yè)計劃,因為一般情況下這是驅(qū)動項目建立和需求的地方。結(jié)果,“你蓋好了,他們就來了”方案可能導(dǎo)致設(shè)計時發(fā)現(xiàn)的服務(wù)不是良好的重用侯選服務(wù)。它們可能不提供足夠的性能或一致模式。盡管它們在企業(yè)中可用,但仍為應(yīng)用程序級服務(wù)。最后,企業(yè)必須開始創(chuàng)建管理流程以控制服務(wù)的企業(yè)可見性。在通常情況下,服務(wù)注冊提供確保服務(wù)質(zhì)量的管理機制和流程。這些問題必須在服務(wù)生命周期的發(fā)布和準(zhǔn)備階段予以解決。

    最后,要進(jìn)行快速的開發(fā),經(jīng)驗表明,工具標(biāo)準(zhǔn)化可使企業(yè)充分利用現(xiàn)有知識并在整個SOA計劃中重用。這不是說每個人都必須使用相同的IDE或某個特定工具,而是說使用的任何工具必須以類似的模式工作,必須支持標(biāo)準(zhǔn);若開發(fā)人員需要使用不同的工具支持其他項目,則必須降低學(xué)習(xí)的難度。另外,這些工具必須能夠輕松地度量服務(wù)的重用性和控制上市時間。通過服務(wù)生命周期獲得度量可以為企業(yè)提供價值巨大的信息,幫助SOA計劃獲得成功。

    BEA域模型

    正如許多方法學(xué)所述,需要建立一種底層模式來統(tǒng)一所有其他活動。在BEA和SOA環(huán)境中,就是BEA的域模型(需要注冊)。Dev2Dev中有許多文章描述理解SOA各個方面的重要性(詳見David Groves撰寫的Successfully Planning for SOA)。共享服務(wù)生命周期使用該模型并按此方式提供切實的控制點。在本文定義的設(shè)計時階段中,域模型的影響通過定義項目和應(yīng)用程序的需求以及架構(gòu)方法的需求目錄來表述。

    該方法通常開始于遠(yuǎn)景,最初通過基礎(chǔ)服務(wù)或構(gòu)造塊實現(xiàn)。盡管治理在設(shè)計階段沒有在SSLC的運行時那么關(guān)鍵,但是治理已開始在流程中產(chǎn)生了一定的影響,特別是在決定初始服務(wù)實現(xiàn)時。

    本系列文章的第二部分將揭示評估部署服務(wù)成本和收益的重要性,并繼續(xù)關(guān)注在運行時如何對服務(wù)進(jìn)行治理。另外,SSLC的設(shè)計時和運行時階段都要求緊密結(jié)合業(yè)務(wù)策略和流程。這就要求確定和設(shè)計可能成為侯選服務(wù)的業(yè)務(wù)流程,并將它們組合成可重用服務(wù),以實現(xiàn)業(yè)務(wù)的靈活性。

    結(jié)束語

    通過進(jìn)一步理解與共享服務(wù)生命周期相關(guān)的設(shè)計時需求,正在尋求使用SOA促進(jìn)重用和增加業(yè)務(wù)靈活性的企業(yè)可能認(rèn)識到及早建立基礎(chǔ)架構(gòu)(如方法學(xué)、分類指導(dǎo)方針以及開發(fā)工具)是實現(xiàn)早期及后續(xù)成功的重要因素。通過突破傳統(tǒng)應(yīng)用程序開發(fā)范型以及關(guān)注作為發(fā)展藍(lán)圖的業(yè)務(wù)流程,服務(wù)工程團隊可以及時有效地緊密結(jié)合業(yè)務(wù)需求。

    本文的第二部分將關(guān)注共享服務(wù)生命周期的運行時。

    posted @ 2009-01-20 10:47 NewSea 閱讀(174) | 評論 (0)編輯 收藏

    SOA (Service Oriented Architecture,面向服務(wù)體系架構(gòu))是將開發(fā)和業(yè)務(wù)流程所需的各項操作開發(fā)成“服務(wù)”(Service)的一種IT體系架構(gòu)。在這種架構(gòu)支撐下開發(fā)和組成的業(yè)務(wù)流程本身還可以通過流程編排與其它“服務(wù)”組合,從而實現(xiàn)松耦合的復(fù)雜“服務(wù)”。
    目前,SOA技術(shù)已經(jīng)從理論走向了現(xiàn)實,越來越多的企業(yè)正在或準(zhǔn)備享受SOA帶來的回報。與傳統(tǒng)IT項目類似,采用SOA技術(shù)同樣是一個循序漸進(jìn)的過程,從簡單SOA項目到SOA型企業(yè),從技術(shù)平臺到技術(shù)標(biāo)準(zhǔn)遵循都是漸進(jìn)過程的一部分。
    盡管采用SOA技術(shù)同樣是一個漸進(jìn)的過程,但是與傳統(tǒng)IT項目相比,它仍然具有明顯的獨特性。面向服務(wù)的架構(gòu)思想不僅提供了一條解決問題的思路,也同樣對整個項目的管理過程提出了一個新的挑戰(zhàn)。
    影響SOA項目成功的主要因素
    在SOA的世界里,“業(yè)務(wù)模式”和“技術(shù)實現(xiàn)”比以往任何時候都結(jié)合得更緊密。這是由于通過服務(wù)間松耦合編排方式構(gòu)建的應(yīng)用具有極大的靈活性,可以更敏捷的適應(yīng)業(yè)務(wù)需求的變化。換句話說,SOA型的IT架構(gòu)為業(yè)務(wù)開展提供了更新、更有效的技術(shù)支撐。
    正是因為SOA與業(yè)務(wù)的密切關(guān)系,使得影響SOA項目成功的因素跨越了傳統(tǒng)IT項目管理的范疇。
    從下面的SOA項目成功因素三維模型可以看出,除了傳統(tǒng)的“使能工具、平臺和應(yīng)用”因素之外,“實施方法論”和“企業(yè)文化”也是保證SOA項目成功不可或缺的重要因素。其中“實施方法論”要解決的是從何入手、如何建設(shè)的問題;“企業(yè)文化”要解決的則是如何建立SOA型企業(yè)的問題。
    從另一方面來看,影響SOA項目成功的關(guān)鍵因素又可分為技術(shù)因素和管理因素兩大類:技術(shù)因素包括技術(shù)的采納和相關(guān)技術(shù)標(biāo)準(zhǔn)的遵循;管理因素包括企業(yè)發(fā)展策略、組織架構(gòu)和IT架構(gòu)、信息和資源共享模型、IT治理、流程等。
     
    SOA項目分級模型
    從影響SOA項目成功的關(guān)鍵因素來看,“實施方法論”是其中的一個重點。在企業(yè)準(zhǔn)備采納SOA的技術(shù)的時候,必須考慮清楚從何入手、如何建設(shè)的問題,因為實現(xiàn)SOA型企業(yè)需要一個循序漸進(jìn)的過程。目前全球范圍內(nèi),已經(jīng)有眾多企業(yè)成功應(yīng)用了SOA,根據(jù)從這些成功者中提煉的經(jīng)驗,可以將SOA項目分為5個不同的層級模型。(如圖2)
    需要特別指出的是,這一分級模型并不要求從低到高逐級實現(xiàn),而僅提供一個理論模型,企業(yè)可以根據(jù)自身的具體情況,以及項目的特點,綜合各方因素,從任意層級開始自己的SOA之旅。
     
    第一級:簡單SOA應(yīng)用
    簡單SOA應(yīng)用模型主要針對構(gòu)造和使用Web Services,并對使用情況監(jiān)控管理的需求而提出。這一級別中,技術(shù)上需要使用應(yīng)用服務(wù)器平臺和掌握支持 Web Services 的開發(fā)工具;要遵循的相關(guān)標(biāo)準(zhǔn)包括WSDL、SOAP、XML、WSRP、JSR168;在項目選擇方面,應(yīng)該選擇能快速實施的項目以求短期能見效益。
    具有35年歷史的The Hartford是美國最大的保險公司之一,企業(yè)內(nèi)運行的傳統(tǒng)系統(tǒng)效率極為低下,由于過分依賴代碼,3-4月/30人的維護(hù)周期成為家常便飯。2003年,The Hartford采用Web Service方式的服務(wù)單元實現(xiàn)了傳統(tǒng)業(yè)務(wù)功能,并通過松耦合的方式對業(yè)務(wù)進(jìn)行編排,一下將系統(tǒng)的維護(hù)周期提速到了3-4周/5-8人。SOA模式允許The Hartford 從大型機 “one service at a time”模式遷移到更靈活的模式。例如,在SOA之前,創(chuàng)建.Net與Java的橋接需要花費3-5周時間,采用SOA (WSDL接口)后,時間減少至2小時。The Hartford的SOA項目是典型的“服務(wù)”驅(qū)動的項目,是從第一級模型開始的典型案例之一 。
    第二級:SOA戰(zhàn)術(shù)應(yīng)用
    SOA戰(zhàn)術(shù)應(yīng)用模型主要針對傳統(tǒng)的數(shù)據(jù)集成及相應(yīng)的安全管理需求而提出。這一級別中,技術(shù)平臺要求有BPEL 流程編排 (Orchestration)、企業(yè)服務(wù)總線(ESB -  Enterprise Service Bus)、服務(wù)注冊(Registry)和Web Services 管理和安全(WSM);要遵循的相關(guān)標(biāo)準(zhǔn)包括BPEL、WSIF、JMS、JCA、UDDI、WS-Security;在策略方面要注重信息的共享模式、明確衡量SOA是否成功的主要指標(biāo)、保證“Web Service”的管理和安全性政策的有效實行。
    Deutsche Post World Net是世界上最大的物流公司之一。它的SOA需求是如何利用靈活的基礎(chǔ)架構(gòu)來幫助公司減少多個業(yè)務(wù)系統(tǒng)集成的時間和費用。通過在IT集成平臺上采用先進(jìn)的企業(yè)服務(wù)總線 (ESB)技術(shù),Deutsche Post World Net使SOA項目很好的滿足了企業(yè)IT需求。這是從架構(gòu)著手,通過服務(wù)總線,實現(xiàn)SOA的一個例子,也是由第二級模型啟用SOA的典型案例。
    第三級:SOA戰(zhàn)略級應(yīng)用
    SOA戰(zhàn)略級應(yīng)用的目標(biāo)是建立SOA型的業(yè)務(wù)流程處理系統(tǒng)。技術(shù)上要求包括業(yè)務(wù)流程建模( Process Modeling)、業(yè)務(wù)規(guī)則引擎 (Rule Engines)、數(shù)據(jù)集成中心(Data Hubs)、集成服務(wù)環(huán)境(ISE - Integrated Services Environment)、元數(shù)據(jù)管理等;要遵循的相關(guān)標(biāo)準(zhǔn)包括BPMN(Business Process Modeling Notation )、BPEL、Industry XML;此時已經(jīng)開始實施業(yè)務(wù)處理流程自動化。
    ING LEASE(以下簡稱ING)是世界最大的金融服務(wù)公司之一。由于不斷通過收購擴大企業(yè)規(guī)模,ING內(nèi)部形成了相當(dāng)復(fù)雜的IT架構(gòu),其中包括三個完全不同的后臺系統(tǒng),具有明顯的處理瓶頸。為了有效的支撐公司業(yè)務(wù)運營,ING需要將復(fù)雜的IT系統(tǒng)集成。在專家的協(xié)助下,通過自上而下的設(shè)計方式,ING從流程處理影射開始,并經(jīng)過反復(fù)的原型修正,用了不到6個月時間便實現(xiàn)了“報價到合同”處理的自動化。而這個過程僅用了5個有經(jīng)驗的系統(tǒng)開發(fā)人員。這套自動化的系統(tǒng)目前正在歐洲的16個國家部署實施。ING的SOA項目是個典型的業(yè)務(wù)驅(qū)動的范例,重點是塊系統(tǒng)的自動化業(yè)務(wù)流程實現(xiàn)。同時,這也是由第三級模型開始實施SOA的典型案例。
    第四級:企業(yè)級SOA的實施
    企業(yè)級SOA實施的目標(biāo)是著手建立SOA型企業(yè)。技術(shù)手段要提高到業(yè)務(wù)流程模擬、業(yè)務(wù)活動監(jiān)測(BAM)、復(fù)雜事件處理、元數(shù)據(jù)管理系統(tǒng)、網(wǎng)格計算技術(shù);要遵循的相關(guān)標(biāo)準(zhǔn)需進(jìn)步到Service Component Architecture (SCA)、WS-Addressing, WS-Eventing、WS-Trust, WS Secure Conversations 等;企業(yè)級SOA要求企業(yè)全面的信息、資源共享,IT規(guī)劃和治理也將上升到新的高度。
    第五級:行業(yè)SOA的和諧
    這一級模型的目標(biāo)是通過企業(yè)SOA的實踐,將SOA應(yīng)用擴大到業(yè)務(wù)合作伙伴,實現(xiàn)行業(yè)范圍的產(chǎn)能最大化。
    posted @ 2009-01-20 10:47 NewSea 閱讀(172) | 評論 (0)編輯 收藏

    IBM® 面向服務(wù)體系結(jié)構(gòu)(Service-Oriented ArchitectureSOA)編程模型使非程序員可以創(chuàng)建和重用 IT 資產(chǎn),而不需要掌握 IT 技能。該模型包括組件類型,布線,模板,應(yīng)用程序適配器,統(tǒng)一數(shù)據(jù)表示和企業(yè)服務(wù)總線(Enterprise Service BusESB)。本文是系列文章的第一部分,該系列文章介紹了 IBM SOA 編程模型,選擇、開發(fā)、部署工作所需的內(nèi)容,以及建議的編程模型元素。本文陳述的內(nèi)容考慮了使用該模型的開發(fā)人員可能具備不同的技術(shù)水平和工作角色。

    SOA 編程模型系列
    對于任何獨立程序員來說,有效的掌握和應(yīng)用飛速增長的軟件技術(shù)、實踐、工具和平臺,變得越來越困難,當(dāng)然更不用說非程序員了。然而,如果業(yè)務(wù)流程轉(zhuǎn)換能夠成功進(jìn)行,很多的非程序員就可以使用現(xiàn)有的 IT 資產(chǎn)來進(jìn)行他們的工作,而不用去學(xué)習(xí)繁瑣的底層技術(shù)細(xì)節(jié)。本系列文章描述了一個新的面向服務(wù)體系結(jié)構(gòu)(SOA)編程模型,該模型實現(xiàn)了業(yè)務(wù)關(guān)系的分離,因此企業(yè)中具備不同技術(shù)水平和工作角色的人,即使不是專業(yè)的 IT 人員,也可以在軟件開發(fā)生命周期每個階段創(chuàng)建和使用 IT 資產(chǎn)。這可以顯著提高隨需應(yīng)變企業(yè)的業(yè)務(wù)靈活性。

    引言
    IBM 產(chǎn)品逐漸應(yīng)用了 SOA 和編程模型。程序員構(gòu)建服務(wù)、使用服務(wù),并且開發(fā)聚集服務(wù)的解決方案。我們在這里使用"程序員(programmer"這個泛稱,因為 SOA 編程模型的一個關(guān)鍵方面是將"編程"的概念擴展到非傳統(tǒng)開發(fā)人員的工作角色和技能,比如業(yè)務(wù)分析員和腳本語言用戶。

    大多數(shù)關(guān)于 Web 服務(wù)的文章主要集中在服務(wù)接口和這些接口的使用方面。為了補充接口標(biāo)準(zhǔn)和最佳實踐,IBM 引入了一個編程模型,來實現(xiàn)服務(wù)并將它們組合為解決方案。擴展 IBM 軟件平臺的范圍,使之能夠被更多的用戶團體使用 -- 包括非傳統(tǒng)的開發(fā)人員 -- 這個模型提供了新的組件類型與用戶的角色、目標(biāo)、技能和概念框架相匹配。這些組件類型使更直觀的開發(fā)工具可以使用。另一個主要的主題是通過編程模型特性和功能的逐步透明化來增強可使用性

    這是關(guān)于 SOA 編程模型系列文章中的第一篇,特別針對軟件開發(fā)專業(yè)人員。在本系列中,我們介紹了實現(xiàn)這些目標(biāo)的一些新的編程模型元素。我們介紹了如何利用它們來使您選擇、開發(fā)、建議或管理的軟件能夠更加容易的開發(fā)、重用和消費。將軟件構(gòu)造為服務(wù)對于按需的企業(yè)來說更加有價值,因為不具備太多技能的開發(fā)人員可以將其"接入"到解決方案中,或者編入一個業(yè)務(wù)流程編排流中來滿足快速變更的業(yè)務(wù)需求。不管你是大型企業(yè)或者小型業(yè)務(wù)的開發(fā)人員、獨立軟件供應(yīng)商(ISV),還是應(yīng)用程序提供者或者中間件供應(yīng)商,你都可以通過這種方式構(gòu)造你的軟件,從而從中受益。那么,讓我們立即開始應(yīng)用 SOA 原理。

    SOA 編程模型的亮點
    讓我們首先重點介紹 SOA 編程模型的幾個主要特性。

    服務(wù)數(shù)據(jù)對象SDO)是 IBM SOA 中的一個基礎(chǔ)概念。SDO 大大提高了開發(fā)人員的生產(chǎn)力,并且將你從如何訪問特定后端數(shù)據(jù)源、應(yīng)用程序和服務(wù)的技術(shù)細(xì)節(jié)中解脫出來。它們提供了簡化的抽象,使程序員可以更多的集中在業(yè)務(wù)邏輯上。SDO 還提供了統(tǒng)一的消息表示來與服務(wù)交互,淘汰了用于數(shù)據(jù)表示的復(fù)雜技術(shù)迷宮,僅僅訪問單個統(tǒng)一模型。

    SOA 編程模型同樣需要統(tǒng)一的范型來創(chuàng)建和訪問業(yè)務(wù)邏輯。為了易于使用,服務(wù)應(yīng)該隱藏實現(xiàn)技術(shù)之間的差別,并應(yīng)該建立在比現(xiàn)有編程結(jié)構(gòu)(比如 Enterprise Java™BeanEJB))更高級別的抽象上。服務(wù)可以通過組裝到模塊(這些模塊可以組成解決方案)中的組件來實現(xiàn)。通過組件公開的服務(wù)可以使用可定位的接口來調(diào)用。您可以使用 Web 服務(wù)描述語言(WSDL)、Java 或其他語言來描述接口。這個實現(xiàn)類型可以有對所需服務(wù)的待定引用,在將組件結(jié)合在一起執(zhí)行之前,這些服務(wù)是滿足需求的。

    這個編程模型還引入了良好定義的組件類型,對程序員開發(fā)和部署到解決方案中的常用構(gòu)件建模。例子包括"無格式舊 Java 對象"、業(yè)務(wù)流程執(zhí)行語言(BPEL)流程、結(jié)構(gòu)化查詢語言(SQL)服務(wù)、Adaptive Business Objects、通過 Java 連接器體系結(jié)構(gòu)(J2C)資源適配器訪問的 CICS®程序、使用 SAP 業(yè)務(wù)應(yīng)用程序編程接口的應(yīng)用程序、Java 2 Enterprise EditionJ2EE)無狀態(tài)會話 bean MQSeries® 應(yīng)用程序。

    企業(yè)服務(wù)總線是多協(xié)議結(jié)構(gòu)的一個關(guān)鍵角色,將服務(wù)組件編成無縫的交互,通過在消息路徑中加入被稱為中介的特別組件,來代理服務(wù)間的交互,而不用更改現(xiàn)有的端點,從而允許在核心級別上處理企業(yè)關(guān)注的內(nèi)容 -- 比如審核、日志、路由、不匹配接口的適配、等價組件的增量替換、安全等。

    新的流程語言縮小了 IT 概念和業(yè)務(wù)構(gòu)件之間的間隙。很重要的一個是 BPEL。雖然流程可以通過業(yè)務(wù)分析員引入圖形化工具來定義,但它也是一個可執(zhí)行程序。流程在按需業(yè)務(wù)轉(zhuǎn)換中占有重要的地位,例如為擴展價值鏈描述長時間運行的可執(zhí)行流程。通過擴展價值鏈,我們可以跨越多個供應(yīng)商和 IT 域來進(jìn)行業(yè)務(wù)安排,比如一個零售商和他的多個獨立的供應(yīng)商,保險公司及其眾多的第三方理賠員,IT 外購狀況等。

    業(yè)務(wù)狀態(tài)機(business state machine是業(yè)務(wù)分析師可以通過圖形工具創(chuàng)建流程的另一個編程框架,并且在流程設(shè)計引擎中執(zhí)行。狀態(tài)機可以表示業(yè)務(wù)構(gòu)件 -- 比如采購單、保險索賠等 -- 這些轉(zhuǎn)換通過一些良好定義的狀態(tài)來響應(yīng)特定的生命周期"事件"

    需要重用的組件可以封裝為具有可變點(points of variability的模板,可以在放入解決方案中時進(jìn)行設(shè)計。這種適配成為我們的編程模型的第一部分,同時結(jié)合規(guī)則語言和相關(guān)的工具,為新型用戶提供定制的能力。

    另一個創(chuàng)新領(lǐng)域是新的解決方案模型,它讓部署者、管理者和其它業(yè)務(wù)用戶可以將組件組裝成解決方案。在開發(fā)的時候,你可以將服務(wù)實現(xiàn)與托管服務(wù)的拓?fù)洌ㄏ到y(tǒng)架構(gòu)師建模的部署拓?fù)洌╆P(guān)聯(lián)在一起。模型捕捉的系統(tǒng)需求和環(huán)境假設(shè)在早期的實現(xiàn)中進(jìn)行校驗,降低了應(yīng)用程序生命周期的費用,并且極大的提高了可靠性和可計賬性(accountability)。該模型的特性還包括現(xiàn)有應(yīng)用程序的后期綁定、數(shù)據(jù)轉(zhuǎn)換中介和適配器,可以通過企業(yè)服務(wù)總線來實現(xiàn)面向服務(wù)的交互。

    總的來說,SOA 編程模型將開發(fā)和部署活動分割為不同的階段,這些階段可以發(fā)生在不同的時間,并且可以通過不同的個人使用不同的技能來實現(xiàn)。這就產(chǎn)生了關(guān)系的分離,使軟件組件可以被重用。它也將軟件體驗劃分為單獨用戶的業(yè)務(wù)角色、技能和任務(wù)。最終,它使軟件生命周期可以適應(yīng)按需企業(yè)的需要,因為它們通過針對業(yè)務(wù)靈活性重新設(shè)計 IT 流程來尋求更高的有效性。

    編程模型的概念
    編程模型通常是 IBM SOA IBM 產(chǎn)品的核心。它定義了程序員可以構(gòu)建和使用的概念和抽象。運行時產(chǎn)品,例如 WebSphere® Application ServerDB2® CICS,可以運行或托管編程模型構(gòu)件。開發(fā)工具支持編程模型構(gòu)件的建模和實現(xiàn)、組裝到應(yīng)用程序(解決方案),以及部署到運行時環(huán)境中。最后,系統(tǒng)管理產(chǎn)品、代理和設(shè)備支持對運行時和它們托管的編程模型構(gòu)件的管理。

    編程模型是什么?雖然目前沒有公認(rèn)的一般定義,但我們喜歡將它定義為:

    • 程序員構(gòu)建的一套部件類型。部件類型包括多種編程模型構(gòu)件:超文本標(biāo)記語言(HTML)文件、數(shù)據(jù)庫存儲過程、Java 類、可擴展標(biāo)記語言(XMLSchema 定義、定義 MQSeries 消息的 C 結(jié)構(gòu),等等。
    • 一系列角色,將具備相似技能和知識的開發(fā)和管理人員分組。用這種方式對開發(fā)人員分類有助于生產(chǎn)適應(yīng)于角色的工具,使非程序員可以實現(xiàn)服務(wù)并將服務(wù)組裝為解決方案。業(yè)務(wù)分析人員定義業(yè)務(wù)流程,銷售專家定義顧客分類的策略并計算產(chǎn)品折扣。每一種角色包含:
      • 角色所具備的技能。例如,用戶界面開發(fā)人員開發(fā)界面,用來呈現(xiàn)應(yīng)用程序或者解決方案的功能構(gòu)件。假設(shè)這個角色了解正在開發(fā)的應(yīng)用程序和它的業(yè)務(wù)目標(biāo),充分了解應(yīng)用程序的用戶及他們的任務(wù),精通一些用戶界面設(shè)計方法,能夠通過為每個任務(wù)選擇恰當(dāng)?shù)念愋蛠韯?chuàng)建易于使用的用戶接口。
      • 角色交互(消費或者生產(chǎn))所用的部件類型和應(yīng)用程序接口。例如,動態(tài)頁面設(shè)計人員 -- 角色 -- 生產(chǎn) JavaServer PageJSP)并消費 EJB -- 部件類型 -- 包裝現(xiàn)有的信息資源和應(yīng)用程序。
      • 角色使用的工具。例如,Web 開發(fā)人員所用的適合于角色的工具是所見即所得的頁面設(shè)計工具,用來構(gòu)建動態(tài)頁面,使用與 HTML JSP 標(biāo)簽庫相關(guān)的控件,并將控件連接到 EJB

    使 Web 服務(wù)易于實現(xiàn)和使用的關(guān)鍵是對現(xiàn)有技術(shù)和知識進(jìn)行增量擴展,從而使 SOA 可以被消費。以 CICS COBOL 事務(wù)程序形式存在的服務(wù)與用 BPEL 編寫的服務(wù)差別很大。從數(shù)據(jù)庫存儲過程中調(diào)用服務(wù)與從 JSP 中調(diào)用也是不同的;技能和期望值是不同的。通過提供工具的分類來使部件類型適應(yīng)于各種技能,并適應(yīng)于開發(fā)流程的階段,你可以實現(xiàn)可消費性(consumability)。

    本系列的后續(xù)文章更加詳細(xì)的介紹了 SOA 編程模型的部件類型。

    產(chǎn)品架構(gòu)

    1. 產(chǎn)品架構(gòu)
    <!--[if !supportLineBreakNewLine]-->
    <!--[endif]-->

    支持 IBM SOA 方案的產(chǎn)品分成兩個主要類別:服務(wù)端點和連接它們的消息傳送結(jié)構(gòu)。這個通用的架構(gòu) -- 包含了許多產(chǎn)品,這些產(chǎn)品都不是 IBM SOA 的專用傳輸工具 -- 1 所示。

    核心是服務(wù)間的 ESB 提供的連通性。ESB 是多協(xié)議的,支持點到點和發(fā)布-訂閱兩種通信類型,并支持快速處理消息的中介服務(wù)。IBM WebSphere MQIBM WebSphere MQ Integrator Broker 以及支持 Web 服務(wù)和 Java 消息服務(wù)(JMS)的 WebSphere 都屬于第一個類別。

    服務(wù)存在于抽象的托管環(huán)境(容器)中,并且提供了特定的編程框架。容器加載服務(wù)的實現(xiàn)代碼,提供到 ESB 的連接性,并管理服務(wù)實例。不同類型的服務(wù)存在于不同的容器中。(在典型的遞規(guī)設(shè)計的例子中,ESB 本身被認(rèn)為是用于中介服務(wù)的容器。) 1 列出了一些主要的 IBM SOA 托管環(huán)境和托管的組件類型。

    1. 托管各種組件和服務(wù)類型的容器

    服務(wù)/組件類型

    容器

    COBOLPL/1 和其他語言編寫的事務(wù)處理程序

    CICS 或者 IMS(信息管理系統(tǒng) -- 一種企業(yè)事務(wù)處理系統(tǒng))。程序員可以使用 SOAP/HTTPWebSphere MQ J2EE J2C 連接來訪問服務(wù)。

    業(yè)務(wù)流程編排

    WebSphere Business Integration Server Foundation。該容器支持長期存在的工作流,這些工作流實現(xiàn)了 Web 服務(wù)接口并調(diào)用其他 Web 服務(wù)上的操作。它同樣支持長期運行的業(yè)務(wù)活動事務(wù)。

    應(yīng)用程序適配器 -- 為現(xiàn)有的應(yīng)用程序和系統(tǒng)提供 SOA/Web 服務(wù)的會話虛包(facade)。

    WebSphere Business Integration Server Foundation 提供的應(yīng)用程序適配器容器。適配器在 SOA 協(xié)議和格式,以及現(xiàn)有應(yīng)用程序和系統(tǒng)的協(xié)議和格式之間進(jìn)行轉(zhuǎn)換。例如,SAP 適配器將 SOA 編碼并通過 HTTP 傳輸?shù)?/span> XML 轉(zhuǎn)換到 SAP 的現(xiàn)有業(yè)務(wù)應(yīng)用程序編程接口格式和 Remote Function CallRFC)。

    預(yù)定義的 SQL 查詢、XML 查詢或數(shù)據(jù)庫存儲過程實現(xiàn)的服務(wù)

    DB2 結(jié)合 WebSphere Application Server。查詢的參數(shù)來自 SOA 操作的輸入消息以及提供輸出消息的結(jié)果。

    使用 Java 類和 EJB 實現(xiàn)的服務(wù)。

    WebSphere Application Server

    結(jié)束語
    IBM SOA 編程模型系列文章的第一篇概述了 IBM 工具和產(chǎn)品如何適用于模型,以及開發(fā)人員如何有效的在應(yīng)用程序開發(fā)中使用它。

    • 使用 SDO 簡化數(shù)據(jù)訪問
    • 服務(wù)定義以及組件模型發(fā)展?fàn)顩r的介紹
    • 用組件類型來簡化開發(fā)
    • 基本組件類型
    • 服務(wù)組合和定制
    • 流程組件:BPEL 和業(yè)務(wù)狀態(tài)機
    • 定制服務(wù):設(shè)計模式,模板和可變點
    • 面向服務(wù)的用戶接口
    • 用于管理的 SOA 方法
    • SOA 軟件生命周期開發(fā)工具
    • SOA 的安全性
    posted @ 2009-01-20 10:46 NewSea 閱讀(168) | 評論 (0)編輯 收藏

    2008年10月18日 #

    期待。
    posted @ 2008-10-18 21:47 NewSea 閱讀(121) | 評論 (0)編輯 收藏

    僅列出標(biāo)題  
    主站蜘蛛池模板: 男女猛烈无遮掩视频免费软件 | 国产伦一区二区三区免费| 韩国免费三片在线视频| 亚洲国产精品成人网址天堂 | 亚洲中文字幕久久精品无码喷水 | 亚洲精品国产自在久久 | 亚洲av无码精品网站| 亚洲国产综合自在线另类| 亚洲av午夜电影在线观看| 人妻18毛片a级毛片免费看| 亚洲免费视频在线观看| 久久久久久99av无码免费网站| 国产又黄又爽又猛的免费视频播放| 国产成人综合亚洲亚洲国产第一页| 日韩亚洲Av人人夜夜澡人人爽 | 中文字幕成人免费高清在线| 最近中文字幕国语免费完整| 日本一道本高清免费| 国产亚洲综合成人91精品| 亚洲av成人综合网| 四虎影视久久久免费| 最近中文字幕完整免费视频ww| 成人免费无码精品国产电影| 国产亚洲美女精品久久久久狼| 麻豆狠色伊人亚洲综合网站| 丰满少妇作爱视频免费观看| 黄色网址免费大全| 亚洲狠狠爱综合影院婷婷| 亚洲黄色网址在线观看| 日韩在线观看免费| 91久久精品国产免费直播| 亚洲精品NV久久久久久久久久| 亚洲精品91在线| av成人免费电影| 拍拍拍又黄又爽无挡视频免费| 亚洲一区精品无码| 亚洲精品国产av成拍色拍| 日本人成在线视频免费播放| 国产片免费福利片永久| 亚洲欧洲综合在线| 久久久受www免费人成|