SOS的實(shí)現(xiàn)教學(xué)講解課件_第1頁(yè)
SOS的實(shí)現(xiàn)教學(xué)講解課件_第2頁(yè)
SOS的實(shí)現(xiàn)教學(xué)講解課件_第3頁(yè)
SOS的實(shí)現(xiàn)教學(xué)講解課件_第4頁(yè)
SOS的實(shí)現(xiàn)教學(xué)講解課件_第5頁(yè)
已閱讀5頁(yè),還剩201頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

SOA的實(shí)現(xiàn)馮志勇天津大學(xué)計(jì)算機(jī)學(xué)院2008年10月SOA的實(shí)現(xiàn)馮志勇編程模型SCA(ServiceComponentArchitecture)服務(wù)組件架構(gòu)SDO(ServiceDataObject)服務(wù)數(shù)據(jù)對(duì)象UseCase(SimplifiedBigbank)2大綱編程模型2大綱編程模型編程模型建立和部署應(yīng)用軟件和解決方案的模式。定義和代表應(yīng)用軟件的結(jié)構(gòu)和運(yùn)行4什么是編程模型?建立和部署應(yīng)用軟件和解決方案的模式。4什么是編程模型?定義復(fù)雜應(yīng)用的結(jié)構(gòu)和運(yùn)行howtouseserviceshowtoaggregateservicestogether定義的關(guān)鍵要素howelementsarecreatedhowelementsarelinkedtogetherhowthesolutionisdeployed5SOA模型定義復(fù)雜應(yīng)用的結(jié)構(gòu)和運(yùn)行5SOA模型來(lái)自基本服務(wù)概念的動(dòng)力:6SOA模型“服務(wù)僅僅是一個(gè)抽象的概括了軟件功能.”“開(kāi)發(fā)者通過(guò)聚合服務(wù)構(gòu)建服務(wù),使用服務(wù)和開(kāi)發(fā)解決方案.”“組成服務(wù)轉(zhuǎn)變?yōu)榫C合的解決方案是一個(gè)關(guān)鍵的活動(dòng)”來(lái)自基本服務(wù)概念的動(dòng)力:6SOA模型“服務(wù)僅僅是一個(gè)抽象的概7SOA模型—概念視圖7SOA模型—概念視圖8SOA模型—元素8SOA模型—元素9SOA模型—元素IntegrationAssemblySCAAssemblyModelAssembleheterogeneouscomponentsintoservicenetworksSCABinding&PolicyModelExposecomponentsasServicesregardlessofunderlyingtechnologyDevelopmentSCAClient&

ImplementationModelSimplifyimplementationofbusinessservicesbyfocusingonbusinesslogicnotoninfrastructureSDO-ServiceDataObject

Makesiteasytomanagedataexchangeacrossserviceswithheterogeneousdataformats.InteroperabilityacrossHeterogeneousEnvironmentsSimplifiedCompositionandImplementationforServicesandDataBusinessProcessModeling&ManagementGovernance9SOA模型—元素IntegrationAssemblySCSOA模型中服務(wù)組件體系結(jié)構(gòu)SCA&服務(wù)數(shù)據(jù)對(duì)象SDO基于SOA模型構(gòu)建解決方案的新技術(shù)將SOA解決方案分解成合適的元素簡(jiǎn)化面向服務(wù)的業(yè)務(wù)邏輯及其相關(guān)聯(lián)的數(shù)據(jù)表示10SOA模型中的SCA和SDOSOA模型中服務(wù)組件體系結(jié)構(gòu)SCA&服務(wù)數(shù)據(jù)對(duì)象SDO10S服務(wù)組件體系結(jié)構(gòu)(SCA)是一個(gè)規(guī)范,它描述用于使用SOA構(gòu)建應(yīng)用程序和系統(tǒng)的模型。它可簡(jiǎn)化使用SOA進(jìn)行的應(yīng)用程序開(kāi)發(fā)和實(shí)現(xiàn)工作。SCA可簡(jiǎn)化使用SOA構(gòu)建的業(yè)務(wù)應(yīng)用程序的創(chuàng)建和重用。SCA提供了構(gòu)建粗粒度組件的機(jī)制,這些粗粒度組件由細(xì)粒度組件組裝而成,因而容易被集成。SCA將傳統(tǒng)中間件編程從業(yè)務(wù)邏輯中分離出來(lái),從而使程序員免受其復(fù)雜性的困擾使用SCA使得開(kāi)發(fā)人員集中精力編寫(xiě)業(yè)務(wù)邏輯,而不必將大量的時(shí)間花費(fèi)在更為底層的技術(shù)實(shí)現(xiàn)11SOA模型中的SCA和SDO服務(wù)組件體系結(jié)構(gòu)(SCA)是一個(gè)規(guī)范,它描述用于使用SOASDO—服務(wù)數(shù)據(jù)對(duì)象可簡(jiǎn)化數(shù)據(jù)訪問(wèn);可簡(jiǎn)化數(shù)據(jù)表示;提供一致和統(tǒng)一的方式來(lái)訪問(wèn)數(shù)據(jù),而不管數(shù)據(jù)的物理訪問(wèn)方式。12SOA模型中的SCA和SDOSDO—服務(wù)數(shù)據(jù)對(duì)象12SOA模型中的SCA和SDO通過(guò)使用SDO:開(kāi)發(fā)者從訪問(wèn)后端數(shù)據(jù)源的技術(shù)細(xì)節(jié)中解脫出來(lái);編程者得益于靜態(tài)和動(dòng)態(tài)的API支持;也得益于非連接編程的支持13SOA模型中的SCA和SDO通過(guò)使用SDO:13SOA模型中的SCA和SDOSCA&SDO可分開(kāi)使用;SCA&SDO可一起使用以提供強(qiáng)有力和靈活的SOA的解決途徑;在SOA模型的實(shí)現(xiàn)中,業(yè)務(wù)組件可表示為SCA組件,組件之間使用的數(shù)據(jù)可表示為SDO對(duì)象14SOA模型中的SCA和SDOSCA&SDO可分開(kāi)使用;14SOA模型中的SCA和SDO實(shí)現(xiàn)應(yīng)用的實(shí)現(xiàn)提供了靈活性。表現(xiàn)為:技術(shù)中性;可重用;合成;動(dòng)態(tài)適應(yīng)性靈活性是soa編程模型最大的優(yōu)點(diǎn)之一:從業(yè)務(wù)的角度來(lái)說(shuō),靈活性有下面幾方面的含義技術(shù)中立:與實(shí)現(xiàn)無(wú)關(guān)重用:服務(wù)和業(yè)務(wù)過(guò)程的重用,用清楚地定義和松散的服務(wù)耦合組合:通過(guò)sca中的服務(wù)裝配,可以將服務(wù)組裝在一起。對(duì)變化的動(dòng)態(tài)適用性:當(dāng)業(yè)務(wù)人員提交一個(gè)業(yè)務(wù)流程變化后,不需要等待很長(zhǎng)時(shí)間就可以得到程序?qū)崿F(xiàn)15SCA和SDO商業(yè)價(jià)值實(shí)現(xiàn)應(yīng)用的實(shí)現(xiàn)提供了靈活性。表現(xiàn)為:技術(shù)中性;可重用;合成;ImprovedFlexibility16SCA和SDO商業(yè)價(jià)值ImprovedFlexibility16SCA和SDO商提高編程人員的生產(chǎn)效率松散耦合的服務(wù)模型能夠使soa的開(kāi)發(fā)團(tuán)隊(duì)中的人員并行工作,互相之間具有一定的獨(dú)立性服務(wù)重用:重用不僅僅增加了服務(wù)業(yè)務(wù)的靈活性,同時(shí)也降低了開(kāi)發(fā)soa應(yīng)用的成本,提高了系統(tǒng)的開(kāi)發(fā)效率。使用sca可以將一流資源和新建的組建用進(jìn)行統(tǒng)一的建模。支持由低向上的應(yīng)用開(kāi)發(fā)方式。同時(shí)自頂向下的開(kāi)發(fā):soa支持自頂向下的應(yīng)用開(kāi)發(fā)方式。組建可以在實(shí)現(xiàn)之前就可以進(jìn)行裝配,而組建的實(shí)現(xiàn)可以放在開(kāi)發(fā)周期之后完成。改進(jìn)的組織管理:sca使用模型的概念。模型用來(lái)組織組建。技術(shù)中立:sca和sdo提供了對(duì)復(fù)雜過(guò)程和復(fù)雜數(shù)據(jù)對(duì)象的抽象。隱藏了服務(wù)提供者和服務(wù)消費(fèi)者之間的的復(fù)雜關(guān)聯(lián)細(xì)節(jié)。17SCA和SDO商業(yè)價(jià)值提高編程人員的生產(chǎn)效率17SCA和SDO商業(yè)價(jià)值IncreasedProgrammerProductivity18SCA和SDO商業(yè)價(jià)值SCASolutionJ2EESolutionIncreasedProgrammerProductiv有助于提高業(yè)務(wù)的敏捷性;將IT構(gòu)建為組合應(yīng)用;關(guān)注業(yè)務(wù)目標(biāo)和業(yè)務(wù)過(guò)程;組合應(yīng)用中粗粒度且松耦合服務(wù)19SOA的簡(jiǎn)單總結(jié)有助于提高業(yè)務(wù)的敏捷性;19SOA的簡(jiǎn)單總結(jié)SCA—服務(wù)組件架構(gòu)SCA—服務(wù)組件架構(gòu)SCAmodelsthe“A”inSOA-可重用服務(wù)組成的系統(tǒng)基于服務(wù)的系統(tǒng)的一個(gè)編程模型,:構(gòu)造construction裝配assembly部署deployment異質(zhì)性元數(shù)據(jù)驅(qū)動(dòng)多語(yǔ)言多容器技術(shù)21SCA概要SCAmodelsthe“A”inSOA-可重用一套規(guī)范描述了一個(gè)使用面向服務(wù)的體系結(jié)構(gòu)建設(shè)應(yīng)用程序和系統(tǒng)的模型擴(kuò)展和補(bǔ)充實(shí)施服務(wù)的已有辦法建立如Web服務(wù)的開(kāi)放標(biāo)準(zhǔn),22What?...the“A”inSOA一套規(guī)范22What?...the“A”inSOASCA將建立SOA應(yīng)用的過(guò)程分解成兩個(gè)主要的部分組件的實(shí)現(xiàn)為外部提供服務(wù)為外部提供服務(wù)組件的組裝將服務(wù)引用與真實(shí)的服務(wù)連接起來(lái),使用各組件之間建立真實(shí)而不是虛擬的程序調(diào)用與數(shù)據(jù)傳遞通道。23What?...the“A”inSOASCA將建立SOA應(yīng)用的過(guò)程分解成兩個(gè)主要的部分23WhatSCA規(guī)范著重強(qiáng)調(diào)要將服務(wù)的實(shí)現(xiàn)和服務(wù)的組裝與實(shí)現(xiàn)的細(xì)節(jié)進(jìn)行解藕與底層平臺(tái)的細(xì)節(jié)解藕合與如何調(diào)用服務(wù)的具體方式進(jìn)行解藕合SCA組件在“業(yè)務(wù)邏輯”層面是進(jìn)行設(shè)計(jì)使用最少的中間件API24What?...the“A”inSOASCA規(guī)范著重強(qiáng)調(diào)要將服務(wù)的實(shí)現(xiàn)和服務(wù)的組裝與實(shí)現(xiàn)的細(xì)節(jié)進(jìn)行25What?...the“A”inSOA25What?...the“A”inSOA支持多種編程語(yǔ)言面向?qū)ο蠛瓦^(guò)程語(yǔ)言

Java,PHP,C++,COBOL以XML為核心技術(shù)的語(yǔ)言BPELandXSLT描述性語(yǔ)言SQLandXQuery26What?...the“A”inSOA支持多種編程語(yǔ)言26What?...the“A”inSCA還支持多種程序設(shè)計(jì)風(fēng)格異步程序設(shè)計(jì)和面向消息的程序設(shè)計(jì) 同步程序設(shè)計(jì),即調(diào)用——返回的程序設(shè)計(jì)風(fēng)格 靜態(tài)程序設(shè)計(jì) 動(dòng)態(tài)程序設(shè)計(jì) 基于連接的 非連接的27What?...the“A”inSOASCA還支持多種程序設(shè)計(jì)風(fēng)格27What?...the“同時(shí)支持多種服務(wù)調(diào)用方式WebservicesMessagingsystemsCORBAIIOP重點(diǎn)關(guān)注服務(wù)的申明,不依賴于服務(wù)的具體實(shí)現(xiàn)技術(shù)BindingsInfrastructurecapabilities28What?...the“A”inSOA同時(shí)支持多種服務(wù)調(diào)用方式28What?...the“A”29SCA和SOA基礎(chǔ)結(jié)構(gòu)AssemblyModelClientModelSCAESBServiceRegistryRoutingTransportsPolicyTransactionsSecurityClusteringQoSContainerSCAJavaSpringEJBComposition,VisualizationandManagementArchitecturalDesignDevelopmentOperations29SCA和SOA基礎(chǔ)結(jié)構(gòu)AssemblyModelC一系列文檔,即組裝模型linkingofcomponentsthroughwiringindependentofimplementationlanguage客戶端以及服務(wù)實(shí)現(xiàn)規(guī)范implementationofservicecomponentsandofserviceclientsJava&C++specificationsBEPL30SCA家族說(shuō)明一系列文檔,即30SCA家族說(shuō)明發(fā)布的SCA白皮書(shū)ChangesintheSCAAssemblyspecificationsincethe0.9releaseTheRecursiveAssemblyModelWS-BPELandSCAWhitePaperEJBIntegrationWhitePaperJAX-WSServicesIntegrationPHPandSCAWhitePaperSCABindingsforWebServices,JMSandEIS/JCA31SCA家族說(shuō)明發(fā)布的SCA白皮書(shū)31SCA家族說(shuō)明SCA規(guī)范草案SCAAssemblyModelV0.96SCAClientandImplementationModelforJava(V0.95)SCAClient&ImplementationforBPEL(V0.95)\SCAClient&ImplementationforSpring(V0.95)SCAClient&ImplementationforC++(V0.95)SCAPolicyFrameworkSCAWebServicebindingsSCAJMSBindingSCAEIS/JCABindings32SCA家族說(shuō)明SCA規(guī)范草案32SCA家族說(shuō)明DevelopersOSOA(OpenSOACollaboration)33開(kāi)發(fā)者和支持者Developers33開(kāi)發(fā)者和支持者Supporters34開(kāi)發(fā)者和支持者Supporters34開(kāi)發(fā)者和支持者SCAvs.WS-*Specifications提供了一個(gè)統(tǒng)一的描述服務(wù)實(shí)現(xiàn)的模型更容易組成服務(wù)網(wǎng)絡(luò)在組裝時(shí)客戶化服務(wù)實(shí)現(xiàn)提供了一個(gè)業(yè)務(wù)邏輯層的服務(wù)實(shí)現(xiàn)模型沒(méi)有像JDBC,

JCA,

JMS…這樣的技術(shù)API支持多種服務(wù)綁定方式,包括Web服務(wù)WSDL,SOAPRMI,

IIOPOthers定義了具體的數(shù)據(jù)轉(zhuǎn)輸格式和協(xié)議互操作獨(dú)立于編程模型需要將服務(wù)接口顯式定義到WSDL文件中35SCAvs.WS-*Specifications提供了Scenario1:Integrate2EJBs,1JavaBean,andtwoWebServicesintoaJSPbasedwebapplication:36SCAvs.J2EEWithoutSCADeveloperhardcodesEJBaccess,JavaBean,andWebServiceinvocationintheirwebapplicationSpecificlow-levelAPIsmustbeusedforeachtechnology(EJB,JavaBean,WebService)TightCoupling:AdditionalcodingrequiredtoreplaceoneEJBwithanotherEJBIfonecomponentneedstobeinvokedasynchronously,lowlevelcodingisnecessaryStructureofthecompositeapplicationishardtovisualizeWithSCADeveloperwiresEJBaccess,JavaBean,andWebServicestogetherusingaVisualTool.Developerusesonewiringeditorforallcomponents(developerdoesnotneedtousespecificAPIs)–nolowlevelAPIsatallLooseCoupling:NewcomponentscanbewiredintoexistingapplicationseasilyNoadditionalcodingneededtoinvokeacomponentasynchronouslyStructureofthesolutioncapturedinassemblymodelScenario1:36SCAvs.J2EEWithoScenario2:Integrate1Rule,1WebService,1EJB,and1CICSTransactionintoaBPELBusinessProcess:37SCAvs.J2EEWithoutSCADeveloperuseswizardstogenerateWSDLforeachcomponentTightCoupling:BusinessprocessmustbemodifiedifaserviceisreplacedbyanotherserviceIfonecomponentneedstobeinvokedasynchronously,acomplexsetofstepsarerequiredtobuildanasynchronousservice.IntegrationDeveloper=HighlyskilledcomponentdeveloperWithSCADeveloperassemblescomponentsdevelopedbyotherdevelopersorcreatesbusinesscomponentsusingWizards/Tools.Theassemblerdoesn’tcarehoweachcomponentisimplementedLooseCoupling:Businessprocessdoesnotneedtobemodifiedifanewservicereplacesanotherservice(thenewserviceissimplyrewiredintotheapplication)SimpletoinvokeacomponentasynchronouslyIntegrationDeveloper=Adeveloperwhocanbuildacompositeapplicationwithoutlow-levelcomponentdevelopmentSkillsScenario2:37SCAvs.J2EEWitho38Roles/Tools/RuntimeSCA=SCAComponentServiceComponentDeveloperIntegrationDeveloperRolesTasksRuntimeTask:Build/AssembleJ2EEComponentsTask:Build/AssembleBusinessProcessesTask:BuildMediationsUsesJavaApplicationDeveloperToolsProcess&IntegrationDeveloperToolsProcessServerESB/ConnectionServerEJB1POJOWebServiceJSF1BusinessProcessStateMachineBusinessRuleI/ForBOTransformAdapterMediation1Mediation2ApplicationServer(w/SCA)WebContainerEJBContainerProcessContainerMediationContainerSCACompositeSCACompositeSCACompositeThisPerson...usesthistool…toperformthistask… …tobuildthistypeofapplication…anddeploysittothisruntime38Roles/Tools/RuntimeSCA=SCA39SCA應(yīng)用程序架構(gòu)39SCA應(yīng)用程序架構(gòu)40基于SCA的服務(wù)組合CompositeAComposite

BComponentAComponentBComponentCComponentD

ServiceRefe-renceRefe-renceRefe-renceCompositeCServiceAServiceBSystemSDOSDOFlexible,powerfulserviceconstructionFlexible,powerfulassemblyFlexible,powerfulbindingServicesareassembledand“wired”together.SCAallowswiringtobedoneusingadiversebindingssuchasWS-*andJMSSCAcomponentsmaybeimplementedusingavarietyoftechnologiesincludingPOJOs,BPEL,SpringBeans,EJBs,etc.

Service40基于SCA的服務(wù)組合CompositeCompositContents:AssemblyModelIntroduction,Overview,Composite,System,Binding,ExtensionModelAppendix1:PackagingandDeployment,XMLSchemas,UMLModel,SCAConceptsAppendix2:Policy,Security,Transactions,ReliableMessaging41服務(wù)裝配模型

Contents:41服務(wù)裝配模型provides:42服務(wù)裝配模型

提供一個(gè)統(tǒng)一的、語(yǔ)言無(wú)關(guān)的服務(wù)提供機(jī)制JavaandC++availablenowBPELandinterpretivelanguages(e.g.XSLT,XQuery)otherlanguagesviaextensibility(including.NET)提供一個(gè)與底層技術(shù)無(wú)關(guān)的服務(wù)網(wǎng)絡(luò)建模與組合機(jī)制ServicedependenciesResolutionthroughwiring提供服務(wù)動(dòng)態(tài)配置與管理的機(jī)制PropertiesProtocolsQualitiesofserviceprovides:42服務(wù)裝配模型提供一個(gè)統(tǒng)一的、語(yǔ)言無(wú)關(guān)DiagramsusedtoRepresentSCAArtifacts43裝配模型概述

DiagramsusedtoRepresentSCASOS的實(shí)現(xiàn)教學(xué)講解課件SOS的實(shí)現(xiàn)教學(xué)講解課件一個(gè)SCA的組合是一系列SCA組件的邏輯聚合。一個(gè)組合可以包含一個(gè)或多個(gè)服務(wù)組件、服務(wù)、引用或連接。一個(gè)組合還被賦予一系列屬性,通過(guò)配置這些屬性,可以實(shí)現(xiàn)對(duì)組合內(nèi)部組件的配置。從更高的邏輯層次進(jìn)行SCA系統(tǒng)建模時(shí),一個(gè)組合還可以被看作是一個(gè)服務(wù)組件的實(shí)現(xiàn)。46服務(wù)組合的具體規(guī)范一個(gè)SCA的組合是一系列SCA組件的邏輯聚合。46服務(wù)組合的可以通過(guò)定義“Include”來(lái)實(shí)現(xiàn)對(duì)現(xiàn)有服務(wù)組合的復(fù)用SCA服務(wù)組合是一個(gè)部署的基本單元部署時(shí),一個(gè)服務(wù)組合存儲(chǔ)成一個(gè)以.composite為擴(kuò)展名的文本文件,文件遵循XML規(guī)范一個(gè)服務(wù)組合在XML中使用一個(gè)<composite>節(jié)點(diǎn)來(lái)表示,.composite文件的格式在SCA規(guī)范中作了詳細(xì)描述47服務(wù)組合的具體規(guī)范可以通過(guò)定義“Include”來(lái)實(shí)現(xiàn)對(duì)現(xiàn)有服務(wù)組合的復(fù)用47AsampleAsample一個(gè).composite文件中,”composite”節(jié)點(diǎn)必須具有一個(gè)“name”屬性,屬性的值為該服務(wù)組合的名字“composite”節(jié)點(diǎn)中可以有0個(gè)或多個(gè)“service”節(jié)點(diǎn)”component”節(jié)點(diǎn)“reference”節(jié)點(diǎn)”wire”節(jié)點(diǎn),還可以包含0個(gè)或多個(gè)”include”節(jié)點(diǎn)。分別表示該組合使用了0個(gè)或多個(gè)服務(wù)實(shí)例,組件,引用,連接或現(xiàn)有服務(wù)組合的復(fù)用。49服務(wù)組合的具體規(guī)范一個(gè).composite文件中,”composite”節(jié)點(diǎn)必component50服務(wù)組合的具體規(guī)范Componentsareconfiguredinstancesofimplementations.Componentsprovideandconsumeservices.Cponent50服務(wù)組合的具體規(guī)范ComponentsImplementation51服務(wù)組合的具體規(guī)范Componentimplementationsareconcreteimplementationsofbusinessfunctionwhichprovideservicesand/orconsumeservices.SCAallowsyoutochoosefromanyoneofawiderangeofimplementationtechnologies,suchasJava,BPELorC++.Services,referencesandpropertiesaretheconfigurableaspectsofanimplementation,SCAreferstothemcollectivelyasthecomponenttype.Atruntime,animplementationinstanceisaspecificruntimeinstantiationoftheimplementationImplementation51服務(wù)組合的具體規(guī)范CompoSOS的實(shí)現(xiàn)教學(xué)講解課件Interface53服務(wù)組合的具體規(guī)范Interfacesdefineoneormorebusinessfunctions.JavainterfacesWSDL1.1portTypesWSDL2.0interfacesCurrentlysupports:Interface53服務(wù)組合的具體規(guī)范InterfacesComponentConfiguration54服務(wù)組合的具體規(guī)范ComponentConfiguration54服務(wù)組合的SOS的實(shí)現(xiàn)教學(xué)講解課件SOS的實(shí)現(xiàn)教學(xué)講解課件Referencerepresentlinkstoservicesusebindingstodescribetheaccessmethodsrepresentedbyareferenceelement57服務(wù)組合的具體規(guī)范Reference57服務(wù)組合的具體規(guī)范Referencerepresentlinkstoservicesusebindingstodescribetheaccessmethodsrepresentedbyareferenceelement58服務(wù)組合的具體規(guī)范Reference58服務(wù)組合的具體規(guī)范Reference59服務(wù)組合的具體規(guī)范Reference59服務(wù)組合的具體規(guī)范Serviceusedtopublishservicesprovidedbyimplementationsaddressablebyothercomponents.60服務(wù)組合的具體規(guī)范Service60服務(wù)組合的具體規(guī)范Serviceusedtopublishservicesprovidedbyimplementationsaddressablebyothercomponents.61服務(wù)組合的具體規(guī)范Service61服務(wù)組合的具體規(guī)范Service62服務(wù)組合的具體規(guī)范Service62服務(wù)組合的具體規(guī)范Inclusion63服務(wù)組合的具體規(guī)范Inclusion63服務(wù)組合的具體規(guī)范一個(gè)完整的運(yùn)行環(huán)境,它往往是由一系列分布的互相連接的運(yùn)行環(huán)境組成的配置信息往往跟組裝的規(guī)范沒(méi)有必然的聯(lián)系,盡可能的做的靈活,具有很強(qiáng)的適應(yīng)性一個(gè)純粹的概念,沒(méi)有具體的實(shí)體文件和它對(duì)應(yīng)。由一系列composite文件組成的。是一個(gè)目錄或者某種抽象的容器,將composite文件部署到容器中就構(gòu)成了system的一部分??梢钥闯墒且幌盗衖nclude語(yǔ)句,將所有的composite文件包含進(jìn)來(lái)。一個(gè)system中的composite并不是固定的,可以通過(guò)部署和刪除操作來(lái)改變整個(gè)系統(tǒng)的組成結(jié)構(gòu)。64System一個(gè)完整的運(yùn)行環(huán)境,它往往是由一系列分布的互相連接的運(yùn)行環(huán)境65System--example65System--exampleBinding被Service和Reference所使用。Reference使用binding來(lái)說(shuō)明如何去調(diào)用一個(gè)service而service使用binding來(lái)說(shuō)明客戶端應(yīng)該如何來(lái)調(diào)用本服務(wù),這跟WSDL中的binding概念一致66BindingBinding被Service和Reference所使用。6Differenttypesofbindings:SCAserviceWebservicestatelesssessionEJBdatabasestoredprocedureEISservice67BindingDifferenttypesofbindings:67SCA提供一個(gè)簡(jiǎn)單、一致的模型來(lái)創(chuàng)建和調(diào)用服務(wù),他具有如下特點(diǎn)。從協(xié)議和中間件中解脫出來(lái),著重關(guān)注業(yè)務(wù)邏輯;Java和C++規(guī)范均可使用用可以使用業(yè)務(wù)層面接口來(lái)訪問(wèn)服務(wù);支持遲綁定各種傳輸重用服務(wù)實(shí)現(xiàn)使用依賴injection,因此并不需要使用SCAAPI

68客戶端和實(shí)現(xiàn)模型68客戶端和實(shí)現(xiàn)模型69客戶端和實(shí)現(xiàn)模型ServiceImplementationwithSCA?BusinessLogicJ2EE1.2J2EE1.3J2EE1.4J2EE5JAX-RPCJAX-WSJSR109JSR181JSR277JSR-*SOAPWSDLWS-AddressingWS-SecurityWS-TransactionWS-ReliableMessagingWS-*AssemblyBindingPolicyProfilesImplementationPolicyProfilesFocusonthebusinesslogicnottheenablement?InfrastructureInfrastructure69客戶端和實(shí)現(xiàn)模型ServiceImplementatiContents(SCAJavaversion):基本組件實(shí)現(xiàn)模型基本客戶端模型錯(cuò)誤處理異步編程JavaAPIJava標(biāo)注70客戶端和實(shí)現(xiàn)模型Contents(SCAJavaversion):70BriefIntroduction(JavaVersion)SCAJava的客戶端實(shí)現(xiàn)模型制定了一系列Java類和接口用于實(shí)現(xiàn)SCA裝配模型中定義的概念??蛻舳四P涂梢院鸵延械木幊棠P鸵黄鹗褂?,或者構(gòu)建在已有的編程模型上,比如Spring和J2SE71客戶端和實(shí)現(xiàn)模型BriefIntroduction(JavaVersiBriefIntroduction(JavaVersion)裝配模型概念到Java的映射,例如組件,組件類型,服務(wù),引用,屬性實(shí)現(xiàn)異步和會(huì)話服務(wù)在Java的中的實(shí)現(xiàn)組件生命周期管理在Java中的實(shí)現(xiàn)指定服務(wù)和實(shí)現(xiàn)的作用域在Java中的實(shí)現(xiàn)72客戶端和實(shí)現(xiàn)模型BriefIntroduction(JavaVersiContents(C++version):基本的組件實(shí)現(xiàn)模型基本的客戶端模型錯(cuò)誤處理C++API73客戶端和實(shí)現(xiàn)模型Contents(C++version):73客戶端和實(shí)SpecificationDocuments,APIpackages,Samplecodes,etc.canbedownloadedfromOSOA’swebsite:ApacheTuscany/tuscany/home.html74客戶端和實(shí)現(xiàn)模型SpecificationDocuments,APIp服務(wù)數(shù)據(jù)對(duì)象SDO

--ServiceDataObjects服務(wù)數(shù)據(jù)對(duì)象SDO

--ServiceDataObjecSDO規(guī)范草案ServiceDataObjectsSpecificationssdo的技術(shù)報(bào)告什么是SDO2.1;PHP和SDO白皮書(shū);比較SDO和數(shù)據(jù)訪問(wèn)對(duì)象模式;比較SDO與EJB3.0數(shù)據(jù)持久性76與SDO相關(guān)的規(guī)范文檔SDO規(guī)范草案76與SDO相關(guān)的規(guī)范文檔SDO是ServiceDataObject的縮寫(xiě)用于訪問(wèn)和更新數(shù)據(jù)。其特點(diǎn)就是對(duì)松耦合的數(shù)據(jù)進(jìn)行了優(yōu)化,應(yīng)用樂(lè)觀鎖支持Checkin/Checkout模型在SCA中,SDO是推薦使用的數(shù)據(jù)訪問(wèn)模型,但并不是必須的SCA也支持其他的數(shù)據(jù)訪問(wèn)模型,比如JAX-B(forJava)SCA和SDO配合使用是最合適的,SDO提供了一套與數(shù)據(jù)源無(wú)關(guān)的API接口SDO數(shù)據(jù)訪問(wèn)服務(wù)本身也可以認(rèn)為是SCA的一個(gè)組件77SDOwithSCASDO是ServiceDataObject的縮寫(xiě)77SD78SDOServiceDataObjectsmakesiteasytomanagedataexchangeacrossserviceswithheterogeneousdataformats.Results(DataGraph)QueryRelationalAnydatasource(XML,JMS,JCA,etc.)Update(DataGraph)Webservices78SDOServiceDataObjectsmakeSDO的核心規(guī)范提供了最基本的API接口用于訪問(wèn)任何類型的的數(shù)據(jù)源。SDO核心規(guī)范對(duì)底層的的數(shù)據(jù)源不做任何假設(shè),因此SQL,XPath,XQuery以及其他任何數(shù)據(jù)訪問(wèn)語(yǔ)言都可以作為SDO的查詢語(yǔ)言。這也意味著關(guān)系數(shù)據(jù)庫(kù),對(duì)象數(shù)據(jù)庫(kù)和XML數(shù)據(jù)源都可以作為SDO的后端存儲(chǔ)。SDO的架構(gòu)基于無(wú)連接數(shù)據(jù)圖(

disconnecteddataarchitecture

)的概念。在無(wú)連接數(shù)據(jù)圖模型中,客戶端從數(shù)據(jù)源接收一個(gè)數(shù)據(jù)圖,更新圖中的數(shù)據(jù),并將更新的數(shù)據(jù)傳回?cái)?shù)據(jù)源。通常更新操作是并行優(yōu)化執(zhí)行的,這意味著,如果數(shù)據(jù)圖中任何一個(gè)數(shù)據(jù)在客戶端提交之前已經(jīng)被更新過(guò),那么這個(gè)更新請(qǐng)求就會(huì)被拒絕,客戶端必須提供相應(yīng)的錯(cuò)誤處理。79SDO(Java)ArchitectureSDO的核心規(guī)范提供了最基本的API接口用于訪問(wèn)任何類型的的1.SDOCore;這個(gè)核心規(guī)范包含了程序員需要面對(duì)的主要的組件,包括Dataobject和datagraph。同時(shí)這個(gè)核心規(guī)范也提供了一套API用于對(duì)數(shù)據(jù)模型進(jìn)行操作。這套數(shù)據(jù)模型和API使得應(yīng)用程序可以無(wú)差別的對(duì)待異構(gòu)數(shù)據(jù)源。2.SDODataAccessServices:這是一個(gè)SCA服務(wù),為客戶端提供數(shù)據(jù)訪問(wèn)接口。這個(gè)服務(wù)從后端數(shù)據(jù)源讀取數(shù)據(jù)構(gòu)造數(shù)據(jù)圖,并且可以根據(jù)數(shù)據(jù)圖中的變化更新后端數(shù)據(jù)源。3.SDO-enabledTools:這是一系列相關(guān)的輔助工具,包括代碼生成器(codegenerator),元模型轉(zhuǎn)換器(metamodelconvertor),模式轉(zhuǎn)換器(schemaconverter),建模工具(datamodelingtool)等4.SDO-enabledRuntimesandFrameworks:這是一套運(yùn)行時(shí)環(huán)境和框架,和各種SDO組件一起完成各種任務(wù),比如將數(shù)據(jù)綁定到UI(userinterface)組件上80SDOArchitecture1.SDOCore;這個(gè)核心規(guī)范包含了程序員需要面對(duì)的主Disconnecteddataarchitecture81SDOArchitectureDisconnecteddataarchitecture82Relationship

withOtherTechnologies82Relationship

withOtherTechDataObject:數(shù)據(jù)對(duì)象保存具體的數(shù)據(jù),包括原始數(shù)據(jù)以及指向其他數(shù)據(jù)對(duì)象的引用。數(shù)據(jù)對(duì)象也包含了指向元數(shù)據(jù)(metadata)的引用,這使得SDO的元數(shù)據(jù)能夠被讀取,包括數(shù)據(jù)的類型,關(guān)系和約束等。這方面和Java中的反射機(jī)制類似。DataGraph:數(shù)據(jù)圖是一個(gè)概念上的數(shù)據(jù)集合。具體的講,數(shù)據(jù)圖是一個(gè)有多個(gè)樹(shù)根(multi-rooted)的數(shù)據(jù)對(duì)象的集合。數(shù)據(jù)圖可以記錄所有對(duì)數(shù)據(jù)對(duì)象的操作,比如創(chuàng)建,刪除,更新等。Metadata:元數(shù)據(jù)使得開(kāi)發(fā)工具和運(yùn)行時(shí)環(huán)境能夠動(dòng)態(tài)地或者靜態(tài)的查看數(shù)據(jù)的屬性,包括數(shù)據(jù)的類型,關(guān)系和約束等SDO提供了一組與數(shù)據(jù)源無(wú)關(guān)的元數(shù)據(jù)APIDataMediatorService:數(shù)據(jù)訪問(wèn)服務(wù)負(fù)責(zé)與后臺(tái)的數(shù)據(jù)源進(jìn)行通信,完成構(gòu)造數(shù)據(jù)圖,更新數(shù)據(jù)圖等操作。83SDO(Java)ComponentsDataObject:數(shù)據(jù)對(duì)象保存具體的數(shù)據(jù),包括原始數(shù)據(jù)84SDOComponents84SDOComponents85SDO中核心組件的UML描述85SDO中核心組件的UML描述Dataobject將數(shù)據(jù)保存為一個(gè)屬性(property)的集合。這些屬性既可以是原始的數(shù)據(jù)類型,也可以是指向其他數(shù)據(jù)對(duì)象的引用DataObject可以通過(guò)SDO的元數(shù)據(jù)API進(jìn)行內(nèi)觀(introspect),這使得程序可以在運(yùn)行時(shí)獲取數(shù)據(jù)的類型,關(guān)系,約束等信息。Dataobject應(yīng)該至少提供一組動(dòng)態(tài)API用于讀取和修改對(duì)象,包括對(duì)象中的屬性(property)。這組動(dòng)態(tài)API使用XPath表達(dá)式在datagraph中定位dataobject。另一方面,靜態(tài)的Java接口也可以通過(guò)模型(model)或者模式(schema)生成。SDO中沒(méi)有定義靜態(tài)接口的生成方法,已有的工具可以直接應(yīng)用到SDO中,比如JAXB的一些實(shí)現(xiàn)。Dataobject支持豐富的關(guān)系(relationship,其實(shí)就是量詞),包括1:1,1:n,n:m,當(dāng)對(duì)象進(jìn)行復(fù)制刪除等操作的時(shí)候,這些關(guān)系由Dataobject負(fù)責(zé)管理。86SDO(Java)__DataObjectDataobject將數(shù)據(jù)保存為一個(gè)屬性(propertyDatagraph表示一個(gè)數(shù)據(jù)集合,具體的講,它保存了一個(gè)Dataobject的集合。Datagraph是數(shù)據(jù)傳遞的最小單位。Datagraph負(fù)責(zé)記錄數(shù)據(jù)的改變:包括添加,刪除,更新。可選的,Datagraph可以記錄數(shù)據(jù)變更的整個(gè)歷史,提供類似版本管理的功能。最終變更歷史會(huì)被ChangeSummary模塊訪問(wèn),并對(duì)后端數(shù)據(jù)源進(jìn)行相應(yīng)的更新。87SDO__DataGraphDatagraph表示一個(gè)數(shù)據(jù)集合,具體的講,它保存了一個(gè)88SDO__DataGraph88SDO__DataGraph89SDO__Matadata89SDO__MatadataVirtualDataAccess90SDO(Java)__UseCasesVirtualDataAccess90SDO(Java)RelationalDatabaseAccess91SDO(Java)__UseCasesRelationalDatabaseAccess91SDReadingandWritingXML92SDO(Java)__UseCasesReadingandWritingXML92SDO(JUseCase—SimplifiedBigbankUseCase—SimplifiedBigbankIntroduction:BigBank是一虛擬金融機(jī)構(gòu),提供商業(yè)的和面向客戶的服務(wù)。BigBank的客戶能夠查看帳戶信息,轉(zhuǎn)帳和借貸。Requirements:建立一服務(wù)查看帳戶,可被Web應(yīng)用和Web服務(wù)客戶端訪問(wèn)將應(yīng)用分為兩個(gè)模塊,1.帳戶模塊(accountmodule)來(lái)訪問(wèn)遺留系統(tǒng)中的客戶信息,

2.Web前端模塊(webfront-endmodule)除了能夠重用已有組件,還要能夠進(jìn)行獨(dú)立的開(kāi)發(fā)和測(cè)試服務(wù)94TheSimplifiedBigBankScenarioIntroduction:94TheSimplifiedAccountmodule:95TheSimplifiedBigBankScenarioAccountmodule:95TheSimplifieAccountmodule:bigbank.accountmodule該組件為一個(gè)客戶帳號(hào)服務(wù)用于訪問(wèn)遺留系統(tǒng)中用戶的帳號(hào)信息,可以通過(guò)web服務(wù)的協(xié)議棧對(duì)其進(jìn)行訪問(wèn)遠(yuǎn)程帳號(hào)服務(wù)組件,將支票,存款以及當(dāng)前股票信息集中在一起contains:Accountdataservicecomponent代表了遺留系統(tǒng),為Accountservice提供支票賬戶,存款賬戶,股票賬戶的信息該賬戶組件調(diào)用一個(gè)外部的服務(wù)stackquoteservice為股票提供實(shí)時(shí)的報(bào)價(jià)Entrypoint將Accountservice發(fā)布成一個(gè)web服務(wù),可以通過(guò)web服務(wù)客戶端訪問(wèn)96TheSimplifiedBigBankScenarioAccountmodule:96TheSimplifieWebfront-endmodule:97TheSimplifiedBigBankScenarioWebfront-endmodule:97TheSimWebfront-endmodule:bigbank.webclientmoduleprovidesbrowser-basedfunctionalityforloggingintothesystemandaccessingaccountinformation.contains:loginservice&profileservicecomponentsexternalaccountserviceassemblythatconfiguresandwirestheelements98TheSimplifiedBigBankScenarioWebfront-endmodule:98TheSim創(chuàng)建bigbank.accountmoduleAccountDataServiceImplementationAccountDataServiceComponentStockQuoteWebServiceExternalServiceAccountServiceImplementationAccountServiceComponentAccountServiceWebServiceEntryPoint99開(kāi)發(fā)創(chuàng)建bigbank.accountmodule99開(kāi)發(fā)創(chuàng)建bigbank.webclientmoduleLoginServiceImplementation提供了LoginService的實(shí)現(xiàn),然后將其定義成一個(gè)SCAcomponentProfileServiceImplementation提供了ProfileService的實(shí)現(xiàn),然后將其定義成為一個(gè)SCAcomponentAccountService是一個(gè)外部引用,通過(guò)Web服務(wù)的協(xié)議棧訪問(wèn)。LoginHTMLPage和LoginServlet負(fù)責(zé)處理用戶提交的Web請(qǐng)求,最終SummaryJSP通過(guò)調(diào)用AccountService獲取帳戶信息,并將結(jié)果通過(guò)HTML顯示給web用戶。100開(kāi)發(fā)創(chuàng)建bigbank.webclientmodule100開(kāi)創(chuàng)建bigbank.accountsubsystem創(chuàng)建bigbank.webclientsubsystem模塊和子系統(tǒng)部署101部署創(chuàng)建bigbank.accountsubsystem101部102部署102部署SOA的編程模型,SCA和SDO的概念,SCA和SDO是SOA編程模型的重要組成部分。應(yīng)用案例:Bigbank,這個(gè)案例基本覆蓋了SCA和SDO的基本概念103總結(jié)SOA的編程模型,103總結(jié)SCASpecification/technologies/commonj/index.jsp/developerworks/library/specification/ws-sca//devcenter/sca//technology/webservices/sca//scaSDOSpecification/technologies/commonj/index.jsp/developerworks/library/specification/ws-sdo//technology/webservices/sca/http://www.xcalia/xdn/specs/sdohttp://scaSCASampleapplication“Buildingyourfirstapplication–SimplifiedBigBank”/technologies/commonj/index.jsp/developerworks/library/specification/ws-sca//devcenter/sca//technology/webservices/sca//scaWS-IBasicProfile/deliverables/workinggroup.aspx?wg=basicprofile104ReferencesSCASpecification104ReferencesSOA的實(shí)現(xiàn)馮志勇天津大學(xué)計(jì)算機(jī)學(xué)院2008年10月SOA的實(shí)現(xiàn)馮志勇編程模型SCA(ServiceComponentArchitecture)服務(wù)組件架構(gòu)SDO(ServiceDataObject)服務(wù)數(shù)據(jù)對(duì)象UseCase(SimplifiedBigbank)106大綱編程模型2大綱編程模型編程模型建立和部署應(yīng)用軟件和解決方案的模式。定義和代表應(yīng)用軟件的結(jié)構(gòu)和運(yùn)行108什么是編程模型?建立和部署應(yīng)用軟件和解決方案的模式。4什么是編程模型?定義復(fù)雜應(yīng)用的結(jié)構(gòu)和運(yùn)行howtouseserviceshowtoaggregateservicestogether定義的關(guān)鍵要素howelementsarecreatedhowelementsarelinkedtogetherhowthesolutionisdeployed109SOA模型定義復(fù)雜應(yīng)用的結(jié)構(gòu)和運(yùn)行5SOA模型來(lái)自基本服務(wù)概念的動(dòng)力:110SOA模型“服務(wù)僅僅是一個(gè)抽象的概括了軟件功能.”“開(kāi)發(fā)者通過(guò)聚合服務(wù)構(gòu)建服務(wù),使用服務(wù)和開(kāi)發(fā)解決方案.”“組成服務(wù)轉(zhuǎn)變?yōu)榫C合的解決方案是一個(gè)關(guān)鍵的活動(dòng)”來(lái)自基本服務(wù)概念的動(dòng)力:6SOA模型“服務(wù)僅僅是一個(gè)抽象的概111SOA模型—概念視圖7SOA模型—概念視圖112SOA模型—元素8SOA模型—元素113SOA模型—元素IntegrationAssemblySCAAssemblyModelAssembleheterogeneouscomponentsintoservicenetworksSCABinding&PolicyModelExposecomponentsasServicesregardlessofunderlyingtechnologyDevelopmentSCAClient&

ImplementationModelSimplifyimplementationofbusinessservicesbyfocusingonbusinesslogicnotoninfrastructureSDO-ServiceDataObject

Makesiteasytomanagedataexchangeacrossserviceswithheterogeneousdataformats.InteroperabilityacrossHeterogeneousEnvironmentsSimplifiedCompositionandImplementationforServicesandDataBusinessProcessModeling&ManagementGovernance9SOA模型—元素IntegrationAssemblySCSOA模型中服務(wù)組件體系結(jié)構(gòu)SCA&服務(wù)數(shù)據(jù)對(duì)象SDO基于SOA模型構(gòu)建解決方案的新技術(shù)將SOA解決方案分解成合適的元素簡(jiǎn)化面向服務(wù)的業(yè)務(wù)邏輯及其相關(guān)聯(lián)的數(shù)據(jù)表示114SOA模型中的SCA和SDOSOA模型中服務(wù)組件體系結(jié)構(gòu)SCA&服務(wù)數(shù)據(jù)對(duì)象SDO10S服務(wù)組件體系結(jié)構(gòu)(SCA)是一個(gè)規(guī)范,它描述用于使用SOA構(gòu)建應(yīng)用程序和系統(tǒng)的模型。它可簡(jiǎn)化使用SOA進(jìn)行的應(yīng)用程序開(kāi)發(fā)和實(shí)現(xiàn)工作。SCA可簡(jiǎn)化使用SOA構(gòu)建的業(yè)務(wù)應(yīng)用程序的創(chuàng)建和重用。SCA提供了構(gòu)建粗粒度組件的機(jī)制,這些粗粒度組件由細(xì)粒度組件組裝而成,因而容易被集成。SCA將傳統(tǒng)中間件編程從業(yè)務(wù)邏輯中分離出來(lái),從而使程序員免受其復(fù)雜性的困擾使用SCA使得開(kāi)發(fā)人員集中精力編寫(xiě)業(yè)務(wù)邏輯,而不必將大量的時(shí)間花費(fèi)在更為底層的技術(shù)實(shí)現(xiàn)115SOA模型中的SCA和SDO服務(wù)組件體系結(jié)構(gòu)(SCA)是一個(gè)規(guī)范,它描述用于使用SOASDO—服務(wù)數(shù)據(jù)對(duì)象可簡(jiǎn)化數(shù)據(jù)訪問(wèn);可簡(jiǎn)化數(shù)據(jù)表示;提供一致和統(tǒng)一的方式來(lái)訪問(wèn)數(shù)據(jù),而不管數(shù)據(jù)的物理訪問(wèn)方式。116SOA模型中的SCA和SDOSDO—服務(wù)數(shù)據(jù)對(duì)象12SOA模型中的SCA和SDO通過(guò)使用SDO:開(kāi)發(fā)者從訪問(wèn)后端數(shù)據(jù)源的技術(shù)細(xì)節(jié)中解脫出來(lái);編程者得益于靜態(tài)和動(dòng)態(tài)的API支持;也得益于非連接編程的支持117SOA模型中的SCA和SDO通過(guò)使用SDO:13SOA模型中的SCA和SDOSCA&SDO可分開(kāi)使用;SCA&SDO可一起使用以提供強(qiáng)有力和靈活的SOA的解決途徑;在SOA模型的實(shí)現(xiàn)中,業(yè)務(wù)組件可表示為SCA組件,組件之間使用的數(shù)據(jù)可表示為SDO對(duì)象118SOA模型中的SCA和SDOSCA&SDO可分開(kāi)使用;14SOA模型中的SCA和SDO實(shí)現(xiàn)應(yīng)用的實(shí)現(xiàn)提供了靈活性。表現(xiàn)為:技術(shù)中性;可重用;合成;動(dòng)態(tài)適應(yīng)性靈活性是soa編程模型最大的優(yōu)點(diǎn)之一:從業(yè)務(wù)的角度來(lái)說(shuō),靈活性有下面幾方面的含義技術(shù)中立:與實(shí)現(xiàn)無(wú)關(guān)重用:服務(wù)和業(yè)務(wù)過(guò)程的重用,用清楚地定義和松散的服務(wù)耦合組合:通過(guò)sca中的服務(wù)裝配,可以將服務(wù)組裝在一起。對(duì)變化的動(dòng)態(tài)適用性:當(dāng)業(yè)務(wù)人員提交一個(gè)業(yè)務(wù)流程變化后,不需要等待很長(zhǎng)時(shí)間就可以得到程序?qū)崿F(xiàn)119SCA和SDO商業(yè)價(jià)值實(shí)現(xiàn)應(yīng)用的實(shí)現(xiàn)提供了靈活性。表現(xiàn)為:技術(shù)中性;可重用;合成;ImprovedFlexibility120SCA和SDO商業(yè)價(jià)值ImprovedFlexibility16SCA和SDO商提高編程人員的生產(chǎn)效率松散耦合的服務(wù)模型能夠使soa的開(kāi)發(fā)團(tuán)隊(duì)中的人員并行工作,互相之間具有一定的獨(dú)立性服務(wù)重用:重用不僅僅增加了服務(wù)業(yè)務(wù)的靈活性,同時(shí)也降低了開(kāi)發(fā)soa應(yīng)用的成本,提高了系統(tǒng)的開(kāi)發(fā)效率。使用sca可以將一流資源和新建的組建用進(jìn)行統(tǒng)一的建模。支持由低向上的應(yīng)用開(kāi)發(fā)方式。同時(shí)自頂向下的開(kāi)發(fā):soa支持自頂向下的應(yīng)用開(kāi)發(fā)方式。組建可以在實(shí)現(xiàn)之前就可以進(jìn)行裝配,而組建的實(shí)現(xiàn)可以放在開(kāi)發(fā)周期之后完成。改進(jìn)的組織管理:sca使用模型的概念。模型用來(lái)組織組建。技術(shù)中立:sca和sdo提供了對(duì)復(fù)雜過(guò)程和復(fù)雜數(shù)據(jù)對(duì)象的抽象。隱藏了服務(wù)提供者和服務(wù)消費(fèi)者之間的的復(fù)雜關(guān)聯(lián)細(xì)節(jié)。121SCA和SDO商業(yè)價(jià)值提高編程人員的生產(chǎn)效率17SCA和SDO商業(yè)價(jià)值IncreasedProgrammerProductivity122SCA和SDO商業(yè)價(jià)值SCASolutionJ2EESolutionIncreasedProgrammerProductiv有助于提高業(yè)務(wù)的敏捷性;將IT構(gòu)建為組合應(yīng)用;關(guān)注業(yè)務(wù)目標(biāo)和業(yè)務(wù)過(guò)程;組合應(yīng)用中粗粒度且松耦合服務(wù)123SOA的簡(jiǎn)單總結(jié)有助于提高業(yè)務(wù)的敏捷性;19SOA的簡(jiǎn)單總結(jié)SCA—服務(wù)組件架構(gòu)SCA—服務(wù)組件架構(gòu)SCAmodelsthe“A”inSOA-可重用服務(wù)組成的系統(tǒng)基于服務(wù)的系統(tǒng)的一個(gè)編程模型,:構(gòu)造construction裝配assembly部署deployment異質(zhì)性元數(shù)據(jù)驅(qū)動(dòng)多語(yǔ)言多容器技術(shù)125SCA概要SCAmodelsthe“A”inSOA-可重用一套規(guī)范描述了一個(gè)使用面向服務(wù)的體系結(jié)構(gòu)建設(shè)應(yīng)用程序和系統(tǒng)的模型擴(kuò)展和補(bǔ)充實(shí)施服務(wù)的已有辦法建立如Web服務(wù)的開(kāi)放標(biāo)準(zhǔn),126What?...the“A”inSOA一套規(guī)范22What?...the“A”inSOASCA將建立SOA應(yīng)用的過(guò)程分解成兩個(gè)主要的部分組件的實(shí)現(xiàn)為外部提供服務(wù)為外部提供服務(wù)組件的組裝將服務(wù)引用與真實(shí)的服務(wù)連接起來(lái),使用各組件之間建立真實(shí)而不是虛擬的程序調(diào)用與數(shù)據(jù)傳遞通道。127What?...the“A”inSOASCA將建立SOA應(yīng)用的過(guò)程分解成兩個(gè)主要的部分23WhatSCA規(guī)范著重強(qiáng)調(diào)要將服務(wù)的實(shí)現(xiàn)和服務(wù)的組裝與實(shí)現(xiàn)的細(xì)節(jié)進(jìn)行解藕與底層平臺(tái)的細(xì)節(jié)解藕合與如何調(diào)用服務(wù)的具體方式進(jìn)行解藕合SCA組件在“業(yè)務(wù)邏輯”層面是進(jìn)行設(shè)計(jì)使用最少的中間件API128What?...the“A”inSOASCA規(guī)范著重強(qiáng)調(diào)要將服務(wù)的實(shí)現(xiàn)和服務(wù)的組裝與實(shí)現(xiàn)的細(xì)節(jié)進(jìn)行129What?...the“A”inSOA25What?...the“A”inSOA支持多種編程語(yǔ)言面向?qū)ο蠛瓦^(guò)程語(yǔ)言

Java,PHP,C++,COBOL以XML為核心技術(shù)的語(yǔ)言BPELandXSLT描述性語(yǔ)言SQLandXQuery130What?...the“A”inSOA支持多種編程語(yǔ)言26What?...the“A”inSCA還支持多種程序設(shè)計(jì)風(fēng)格異步程序設(shè)計(jì)和面向消息的程序設(shè)計(jì) 同步程序設(shè)計(jì),即調(diào)用——返回的程序設(shè)計(jì)風(fēng)格 靜態(tài)程序設(shè)計(jì) 動(dòng)態(tài)程序設(shè)計(jì) 基于連接的 非連接的131What?...the“A”inSOASCA還支持多種程序設(shè)計(jì)風(fēng)格27What?...the“同時(shí)支持多種服務(wù)調(diào)用方式WebservicesMessagingsystemsCORBAIIOP重點(diǎn)關(guān)注服務(wù)的申明,不依賴于服務(wù)的具體實(shí)現(xiàn)技術(shù)BindingsInfrastructurecapabilities132What?...the“A”inSOA同時(shí)支持多種服務(wù)調(diào)用方式28What?...the“A”133SCA和SOA基礎(chǔ)結(jié)構(gòu)AssemblyModelClientModelSCAESBServiceRegistryRoutingTransportsPolicyTransactionsSecurityClusteringQoSContainerSCAJavaSpringEJBComposition,VisualizationandManagementArchitecturalDesignDevelopmentOperations29SCA和SOA基礎(chǔ)結(jié)構(gòu)AssemblyModelC一系列文檔,即組裝模型linkingofcomponentsthroughwiringindependentofimplementationlanguage客戶端以及服務(wù)實(shí)現(xiàn)規(guī)范implementationofservicecomponentsandofserviceclientsJava&C++specificationsBEPL134SCA家族說(shuō)明一系列文檔,即30SCA家族說(shuō)明發(fā)布的SCA白皮書(shū)ChangesintheSCAAssemblyspecificationsincethe0.9releaseTheRecursiveAssemblyModelWS-BPELandSCAWhitePaperEJBIntegrationWhitePaperJAX-WSServicesIntegrationPHPandSCAWhitePaperSCABindingsforWebServices,JMSandEIS/JCA135SCA家族說(shuō)明發(fā)布的SCA白皮書(shū)31SCA家族說(shuō)明SCA規(guī)范草案SCAAssemblyModelV0.96SCAClientandImplementationModelforJava(V0.95)SCAClient&ImplementationforBPEL(V0.95)\SCAClient&ImplementationforSpring(V0.95)SCAClient&ImplementationforC++(V0.95)SCAPolicyFrameworkSCAWebServicebindingsSCAJMSBindingSCAEIS/JCABindings136SCA家族說(shuō)明SCA規(guī)范草案32SCA家族說(shuō)明DevelopersOSOA(OpenSOACollaboration)137開(kāi)發(fā)者和支持者Developers33開(kāi)發(fā)者和支持者Supporters138開(kāi)發(fā)者和支持者Supporters34開(kāi)發(fā)者和支持者SCAvs.WS-*Specifications提供了一個(gè)統(tǒng)一的描述服務(wù)實(shí)現(xiàn)的模型更容易組成服務(wù)網(wǎng)絡(luò)在組裝時(shí)客戶化服務(wù)實(shí)現(xiàn)提供了一個(gè)業(yè)務(wù)邏輯層的服務(wù)實(shí)現(xiàn)模型沒(méi)有像JDBC,

JCA,

JMS…這樣的技術(shù)API支持多種服務(wù)綁定方式,包括Web服務(wù)WSDL,SOAPRMI,

IIOPOthers定義了具體的數(shù)據(jù)轉(zhuǎn)輸格式和協(xié)議互操作獨(dú)立于編程模型需要將服務(wù)接口顯式定義到WSDL文件中139SCAvs.WS-*Specifications提供了Scenario1:Integrate2EJBs,1JavaBean,andtwoWebServicesintoaJSPbasedwebapplication:140SCAvs.J2EEWithoutSCADeveloperhardcodesEJBaccess,JavaBean,andWebServiceinvocationintheirwebapplicationSpecificlow-levelAPIsmustbeusedforeachtechnology(EJB,JavaBean,WebService)TightCoupling:AdditionalcodingrequiredtoreplaceoneEJBwithanotherEJBIfonecomponentneedstobeinvokedasynchronously,lowlevelcodingisnecessaryStructureofthecompositeapplicationishardtovisualizeWithSCADeveloperwiresEJBaccess,JavaBean,andWebServicestogetherusingaVisualTool.Developerusesonewiringeditorforallcomponents(developerdoesnotneedtousespecificAPIs)–nolowlevelAPIsatallLooseCoupling:NewcomponentscanbewiredintoexistingapplicationseasilyNoadditionalcodingneededtoinvokeacomponentasynchron

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論