




已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构10面向服务的体系结构,刘旭东cameranSaturday,May9,2020,主要内容,企业应用软件(EnterpriseSoftware)企业应用集成EAI(EnterpriseApplicationIntegration)面向服务的体系结构SOA(ServiceOrientedArchitecture),10.1企业应用软件EnterpriseSoftwareandApplications,软件系统的类型,个人软件企业软件企业管理软件:ERP、SCM、CRM、财务软件等;办公软件:Office、Email等;辅助设计软件:CAD、CAM、CAPP、CASE工具等;系统软件DBMSOSMiddleware开发工具:CASE工具、IDE等;,企业应用软件(EnterpriseSoftwareandApplications),企业软件是为了解决企业范围内业务问题的软件系统,而不是针对局部问题;企业软件是支持企业业务和企业内各业务单元之间进行沟通的核心;企业软件通常由一组软件产品+开发工具构成;,企业应用软件的类型,从企业应用软件的功能上来分:办公软件:OA(OfficeAutomation)管理软件:ERP/SCM/CRM/e-Business辅助设计软件:CAD/CAM/CAPP,企业应用软件分类,ERP,CRM,SCM,E-Business,CAD,CAM,CAPP,PM,OA,KM,BPM,BI,EIP,PLM,TOC,EAM,HRM,DRP,企业应用软件的行业分类,钢铁冶金饮料食品物流电信家用电器日用品医药金融集团企业机械电机旅游咨询,软件集成交通运输烟草地产能源电力连锁分销服装纺织电子电器制造业石化建筑,企业应用软件的提供商,企业应用软件的特点,以流程管理(BusinessProcess)为主线以数据/知识管理(DataService-orientedcomputing(SOC);RemoteProcedureCall(RPC)(远程过程调用):faciliatatesthecall-return-basedsynchronousinteractionamongadapters(在各适配器之间进行基于函数调用-返回机制的同步交互)CORBAJ2EE.Net,EAI中的集成层次,Data-levelintegration(数据层集成)Application-levelintegration(应用层集成)Process-levelintegration(过程层集成)Userinterface(UI)-levelintegration(用户界面层集成),数据集成(Data-levelIntegration),数据集成的目的是将不同的数据库集成起来,提供一种单一的虚拟数据库。两种实现手段:数据集成中间件共享数据库应用场合?当应用系统不向外提供访问其数据的接口时。缺点?数据模型向外暴露,安全性差;一个应用系统需要了解其他应用系统的数据格式,导致紧密耦合;难以保证数据的完整性。,应用层集成(Application-levelIntegration),一个应用系统的源代码中可调用其他应用系统所提供的API,通过系统之间的API调用实现集成。实现技术:RPC,例如CORBA、.Net、JavaBean等缺点?应用程序之间紧密耦合无法实现异步的交互模式,b.f();,functionf(),Appa,Appb,CORBA,过程层集成(Process-levelIntegration),为什么要做“过程集成”?一个业务流程的各个环节分布在不同应用系统的代码中,如果不将这些应用集成起来,就需要跨部门的手工合作来完成整个流程。过程集成是将跨越不同部门或不同企业的业务流程利用EAI技术集成在一起,实现跨部门、跨系统、跨企业的流程共用。将多个应用中的业务流程集成在一起,使之看起来像一个“流程”。,接收客户订单,货物运输,生成发票,生产计划,检查订单的可满足性,记录客户信息,不可满足,可满足,订单管理系统,库存管理系统,客户关系管理系统,ERP系统,运输系统,财务系统,一个过程集成的例子,面向服务的过程集成,用户界面层集成(UI-levelIntegration),为什么要做“用户界面集成”?各个应用系统都有自己的用户界面,而且每个用户界面使用的终端设备有限,从而导致用户不得不同时使用多个应用的不同界面,降低了工作效率。开发一个跨应用、跨设备、统一的用户界面,从该界面就可调用各个不同应用的后台业务逻辑或数据,集成代码被放置在统一用户界面的代码之中。目前的热点技术:Portal(门户)Mashup(Web2.0),用户界面层集成(UI-levelIntegration),EAI的集成层次,10.3面向服务的体系结构SOA,关于SOA的几个初步观点,目前的软件系统及其开发方法,面临着以下的变化趋势:技术让位于业务:技术变得越来越次要,对业务需求的理解变得越来越困难;封闭向开放转移:软件系统的规模越来越大,复杂性越来越高,逐渐从封闭组织内部扩展到企业与企业之间,乃至开放的全球化环境中;内部功能让位于协同:开发一个封闭的功能非常容易,难的是多组织之间的协同性功能的开发;按需应变:软件系统越来越要求快速、容易的发生变化。传统的软件开发方法/技术越来越力不从心,于是SOA粉墨登场。,(1)Internet环境下的企业交互,现代企业已经不再是封闭的企业,市场分工的日益专业化使得企业之间可能存在大量频繁的交互行为,以发挥各自的竞争优势:供应链:供应商-制造商;客户关系管理:制造商-物流商-客户服务:顾客、中介、服务提供者这种业务上的交互体现为企业业务流程的交互/互操作,同时一定需要企业信息系统的支持,因此体现为软件系统之间的集成与互操作。互操作(Interoperability):能够在异构的、分布式的系统之间交换和使用信息的能力;不仅是不同企业之间,甚至一个企业内部的各个部门之间都有可能存在大量的交互。,(2)异构系统的集成与互操作,不同企业甚至是同一企业的不同部门所应用的软件系统可能是异构的:技术平台(编程语言)不同:J2EE-based、.Net-based软件体系结构不同:message-based、file-based、process-based数据格式不同:同样的“订单”对象,不同的属性集合集成这些分布式的软件系统,在它们之间传递数据和消息,是一件非常困难的事情。,异构系统的集成,(3)频繁变化的互操作与集成需求,企业业务流程是频繁变化的;企业间的集成需求也不是固定的,随着业务流程的变化而随之变化;企业间应用系统的集成要能够快速适应这种变化的需求。例如:东航与上航的合并,使得二者的业务系统随之发生变化;国航加入StarAlliance,其业务系统如何支持联盟的业务;商务部要求网店进行工商登记,的系统如何应对;新医改方案一旦出台,医院、药店、医疗器械厂商、卫生监管部门的系统如何应对。,示例:灵活可变的企业流程,Change:CustomerOrderEntry,Change:SharedServiceMarketing,Billing,Receivables,Change:SupplierHandlesInventory(VMI),Change:ShippingbyFedEx,DHLorUPS,归纳:SOA所要解决的问题,分布式企业间业务的协同。通过Internet连接在一起的异构企业应用软件系统的集成、交互与互操作。当业务过程发生变化时,软件系统能够快速响应。,协同交互异构分布式环境业务频繁变化,10.4什么是SOA?,软件开发方法的发展与演化,系统(程序)=算法+数据结构(1960s)系统=子程序+子程序(1970s)系统=对象+对象关联机制(1980s)系统=软构件+连接件(1990s)系统=服务+服务总线(2000s),简单,复杂,系统规模与复杂度,SOA的关注点:技术业务封闭开放个人企业内企业间全球封闭性功能协同性功能稳定快速变化,面向服务的体系结构,从字面上看,SOA=Service(服务)+体系结构(Architecture)SOC=Service(服务)+计算(Computing),从业务的角度看SOA,Asetofbusinessservicescomposedtocapturethebusinessdesignthatanenterprisewantstoexposetoitscustomersandclients,从体系结构的角度看SOA,Anarchitecturalstylethatrequiresaserviceprovider,requesterandaservicedescription,从编程模式的角度看SOA,Aprogrammingmodelcompletewithstandards,tools,methodsandtechnologiessuchasWebservices,从应用的角度看SOA,t3,t6,t5,t4,t2,PrepareSample,PrepareClonesandSequence,GetSequences,TestQuality,Assembly,t7,SequenceProcessing,+,t1,Setup,t8,ProcessReport,+,OrganizationA,OrganizationB,OrganizationC,从开发过程的角度看SOA:面向服务的分析与设计,RealizationDecisions,SpecificationofServices,Components,Flows,IdentificationofcandidateServices,Components,Flows,Whateverportionweneed,wedesignandbuildwithpartsofSOMA,识别、设计和实现服务(services)、用来支持服务的构件(components)、以及服务之间形成的协同。,SOA(ESB)与EAI的主要区别,第一个区别在于拓扑结构EAI是星形结构,星型结构模型是一种集中式的架构,所有的数据交流都由中心点来处理。而ESB是总线结构。采用分布式架构,ESB功能,可以由几个其他物理产品来实现其功能。第二个用于区别在于是否使用开放标准EAI的产品,如WebSphere的消息代理,TIBCO的BusinessWorks,和SonicXQ使用一种专利技术来实现信息功能及传送逻辑。而ESB产品是基于开放标准,如Java消息服务(JMS的),XML和J2EE连接器架构(JCA的),和Web服务标准。,10.5SOA的分层体系结构,SOA应用的多层参考架构(IBM),TheSOALayers,Layer1:遗留系统Existingcustombuiltapplications,calledlegacysystemsCRMandERPpackagedapplicationsolderobject-orientedsystemimplementations,businessintelligenceapplications.Toleverageexistingsystemsandintegratethemusingservice-orientedintegrationtechniques.Layer2:服务构件层EnterprisecomponentsthatareresponsibleforrealizingfunctionalityandmaintainingtheQoSoftheexposedservices.Managed,governedsetofenterpriseassetsthatarefundedattheenterpriseorthebusinessunitlevel.Typicallyusescontainer-basedtechnologiessuchasapplicationserverstoimplementthecomponents,workloadmanagement,high-availability,andloadbalancing.,TheSOALayers,Layer3:服务层TheservicesthebusinesschoosestofundandexposeCanbediscoveredorbestaticallyboundandtheninvoked,orpossibly,choreographedintoacompositeservice.Mechanismtotakeenterprisescalecomponents,businessunitspecificcomponents,andinsomecases,project-specificcomponents,andexternalizesasubsetoftheirinterfacesintheformofservicedescriptions.Provideservicerealizationatruntimeusingthefunctionalityprovidedbytheirinterfaces.Existinisolationorasacompositeservice.Level4:业务过程层(服务组合与协同层)Servicesarebundledintoaflowthroughorchestrationorchoreography,andthusacttogetherasasingleapplication.Theseapplicationssupportspecificusecasesandbusinessprocesses.,TheSOALayers,Layer5:访问层(表现层)SOAdecouplestheuserinterfacefromthecomponents,thelayerprovidesanaccesschanneltoaserviceorcompositionofservices.Level6:集成(ESB)Enablestheintegrationofservicesthroughtheintroductionofareliablesetofcapabilities,suchasintelligentrouting,protocolmediation,andothertransformationmechanisms,oftendescribedastheESB.Level7:服务质量(QoS)Thecapabilitiesrequiredtomonitor,manage,andmaintainQoSsuchassecurity,performance,andavailability.Abackgroundprocessthroughsense-and-respondmechanismsandtoolsthatmonitorthehealthofSOAapplications.,10.6SOA的基本构件和连接件,SOA基本构件类型:服务,SOA中可用的基本构件是“服务”;从外特性上看,一个服务被定义为显式的、独立于服务具体实现技术细节的接口。从内特性上看,服务封装了可复用的业务功能,这些功能通常是大粒度业务,如业务过程、业务活动等。服务的实现可采用任何技术平台,如J2EE、.Net等。,SOA基本构件类型:服务,ServiceConsumer,InterfaceProxy,ServiceInterface,ServiceImplementation,NewService,WrappedLegacy,CompositeService,服务之间的“连接件”,通过接口,采用位置透明的、可互操作的协议进行调用,与客户端以“松散耦合”(looselycoupling)的方式绑定在一起。SOA中所有协议均是基于XML的文本文件。,ServiceConsumers,ServiceProducers,常用的SOA构件类型,WebServicesWS-HumanTaskREST(REpresentationalStateTransfer)SCA(ServiceComponentArchitecture)SDO(ServiceDataObject)WS-Resource,1)WebServices,WS编程模式所基于的协议:XML-RPCSOAP,WSDL:描述webservice的XML规范,Operation,Message,Binding,Port,Services,Supports,InputpublicinterfaceAddInterfacedoubleadd(doublen1,doublen2);,packageserver;publicclassAddimplementsAddInterfacepublicdoubleadd(doublen1,doublen2)returnn1+n2;,一个计算器构件的实现,packageserver;publicinterfaceCalculatorInterfacedoubleadd(doublen1,doublen2);doublesubtract(doublen1,doublen2);doublemultiply(doublen1,doublen2);doubledivide(doublen1,doublen2);,packageserver;importorg.osoa.sca.annotations.Reference;publicclassCalculatorimplementsCalculatorInterfaceprivateAddInterfaceadd;privateSubtractInterfacesubtract;privateMultiplyInterfacemultiply;privateDivideInterfacedivide;publicdoubleadd(doublen1,doublen2)returnadd.add(n1,n2);publicdoublesubtract(doublen1,doublen2)returnsubtract.subtract(n1,n2);.ReferencepublicvoidsetAdd(AddInterfaceadd)this.add=add;publicSubtractInterfacegetSubtract()returnsubtract;ReferencepublicvoidsetSubtract(SubtractInterfacesubtract)this.subtract=subtract;.,一个计算器构件的实现,packageclient;importorg.apache.tuscany.sca.host.embedded.SCADomain;importserver.CalculatorInterface;publicclassCalculatorServiceClientpublicstaticvoidmain(Stringargs)throwsExceptionSCADomainscaDomain=SCADomain.newInstance(server/Cposite);CalculatorInterfacecalculator=scaDomain.getService(CalculatorInterface.class,CalculatorServiceComponent);System.out.println(3+2=+calculator.add(3,2);System.out.println(3-2=+calculator.subtract(3,2);System.out.println(3*2=+calculator.multiply(3,2);System.out.println(3/2=+calculator.divide(3,2);scaDomain.close();,KWIC的SCA实现版,5)SDO(ServiceDataObject),SDO:用于简化和统一应用程序处理数据的方式,编程人员可采用统一的方式访问和操作来自异构数据源的数据,包括关系数据库、XML数据源、Web服务以及企业信息系统等。,SDO(ServiceDataObject),5)SDO(ServiceDataObject),目前已存在的数据访问技术?ODBC、JDBC、Entity-EJB、JDO/Hibernate、JCA、JAX-RPC、JAXB、DOM/SAX/XQuery、ADO.Net、,10.7SOA的原子体系结构样式,SOA的基本体系结构模式之一:发布-访问,发布(Publish):为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。发现(Find):服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。调用(invoke):在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。,WebService中该模式的实现机制,WSDL:Web服务描述语言用于服务接口的描述Whatcantheservicedo?UDDI:统一描述、发现和集成协议服务使用者通过UDDI发现相应的服务并据此将服务集成在自身的系统中Whatkindofservicesareneeded?SOAP:简单对象访问协议用户在服务客户端与服务提供者之间传递信息,通过HTTP或JMS等各类基于文本的消息传递协议来运输,SOA的基本体系结构模式之二:适配器模式,企业中存在若干遗留系统(legacysystem);这些系统采用较传统的技术开发,无法提供清晰的接口(interface);但其他系统仍然需要访问这些遗留系统的功能;怎么办?通过构造适配器(adaptor,wrapper),将遗留系统中的功能进行二次包装,从而开放出接口供其他系统使用。典型技术:Java2ConnectorWebSphereBusinessIntegrationAdaptor,服务适配器,以上几种SOA模式的缺陷,客户端为了使用服务,必须在自己的程序中写入调用服务的代码,即通过服务的URI地址来访问服务。这导致客户端与服务之间的耦合度过大,系统的灵活性受到限制。例如,客户端需要在多个候选服务之间进行灵活替换,以获得更好的QoS。怎么办?将这种绑定关系从代码中抽取出来。,SOA的基本体系结构模式之三:远程服务策略,客户端直接绑定服务接口(WSDL/URI);客户端通过“serviceregistry”来访问服务,当希望访问其他服务时,只要手工修改该registry即可相当于一个配置文件;客户端通过“servicebroker”来动态决定需访问那个服务;完全动态的服务选择,很困难,需要用到服务语义的相关技术。,以上模式存在的问题,如果客户端需要同时或连续调用多个服务的功能,它必须在自己的系统中分别写出多个调用;非常麻烦;而且,对多个服务的调用次序也是容易发生变化的,需要频繁的修改;难以做到;怎么办?降低耦合度将remoteservicestrategy的思想进一步发挥,客户端不去逐一调用服务,而是首先将这些被调用的服务按逻辑关系集成起来,形成一个集成的、大粒度的服务;客户端只需调用这一个服务即可;当该服务执行时,集成器(integrator)依靠配置信息来分别调用一个个小粒度的服务;对这些配置信息进行修改,即可方便的做到变更。,SOA的基本体系结构模式之四:服务集成器,服务集成器,OperationalSystems,Service-Oriented,BusinessProcess,Component-based,Presentation,QoS,Security,Management&Monitoring(InfrastructureService),IntegrationArchitecture(EnterpriseServiceBus),Object-oriented,CICS/COBOL,CRM,ERP,ProcessChoreography,CompositeServices,Portlets,5,4,3,2,1,6,7,EnterpriseComponents,SOA中的“集成”:服务组合(servicecomposition),服务编排(ServiceOrchestration):将多个小粒度的Web服务按照特定的业务逻辑规则构造为一个可执行的业务过程,同时又可以看作是一个大粒度的复合Web服务。侧重点:如何使用已有的服务来构造新的服务。,BPEL和BPEL4WS面向Web服务的过程建模语言;由IBM、Microsoft和BEA共同提出;实现基于WSDL的WebServices之间的流程编排;,BPEL的一个例子,服务编排的执行过程,需要有一个中心控制引擎,负责调用各个离散的服务,示例:Oracle的BPEL执行引擎,仍然存在问题,SOA的重要目标就是要在分布式环境下实现多组织之间业务的交互与协同;因此独立存在的服务是没有意义的;即使采用上面的service
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州瓮安县瓮水街道招聘公益性岗位人员20人模拟试卷及一套参考答案详解
- 2025年5月西南石油大学考试招聘事业编制辅导员15人(四川)模拟试卷附答案详解(模拟题)
- 2025湖南岳阳市屈原管理区凤凰乡人民政府公益性岗位招聘考前自测高频考点模拟试题及一套答案详解
- 2025年潍坊诸城市恒益燃气有限公司公开招聘工作人员考前自测高频考点模拟试题附答案详解
- 乡镇企业实物抵债协议6篇
- 2025福建厦门市集美区英村(兑山)幼儿园非在编教职工招聘4人模拟试卷及答案详解(名校卷)
- 2025年湖南长沙市望城区公开招聘事业单位工作人员31人考前自测高频考点模拟试题及一套参考答案详解
- 2025广东广州市中山大学孙逸仙纪念医院康复医学科医教研岗位和医技岗位招聘2人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025河北沧州孟村饶安高级中学招聘1人模拟试卷及一套完整答案详解
- 2025国际关系学院应届毕业生招聘1人(第2号)考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年矿业权评估师考试(矿业权评估地质与矿业工程专业能力)全真冲刺试题及答案
- 【公开课】两种电荷-2025-2026学年物理人教版(2024)九年级全一册
- 汽车发动机课件
- 殡葬行业专业知识培训课件
- 直播游戏基础知识培训
- 重庆市城市建设投资(集团)有限公司招聘笔试题库2025
- 3.2 中国的矿产资源教学课件 初中地理湘教版(2024)八年级上册
- 学堂在线 高技术与现代局部战争 章节测试答案
- 新房外部电梯拆除方案(3篇)
- 蓝豚医陪陪诊服务发展研究报告2025
- 社会责任班会课件
评论
0/150
提交评论