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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

ImplementationModelSimplifyimplementationofbusinessservicesbyfocusingonbusinesslogicnotoninfrastructureSDO-ServiceDataObject

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

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

JCA,

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

IIOPOthers定義了具體的數(shù)據(jù)轉輸格式和協(xié)議互操作獨立于編程模型需要將服務接口顯式定義到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應用程序架構39SCA應用程序架構40基于SCA的服務組合CompositeAComposite

BComponentAComponentBComponentCComponentD

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

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

Contents:41服務裝配模型provides:42服務裝配模型

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

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

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

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

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

disconnecteddataarchitecture

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

withOtherTechnologies82Relationship

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

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

ImplementationModelSimplifyimplementationofbusinessservicesbyfocusingonbusinesslogicnotoninfrastructureSDO-ServiceDataObject

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

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

JCA,

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

IIOPOthers定義了具體的數(shù)據(jù)轉輸格式和協(xié)議互操作獨立于編程模型需要將服務接口顯式定義到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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論