《基于SOA架构的解决方案》由会员分享,可在线阅读,更多相关《基于SOA架构的解决方案(27页珍藏版)》请在金锄头文库上搜索。
1、SOA面向服务面向服务 架构简介架构简介2021/3/241授课:XXX内容目录内容目录2 23 3SOA SOA 架构概述架构概述3 31 12 2SOASOA 架构体系架构体系SOASOA 实施目标实施目标3 34 4SOA SOA 实例展示实例展示2021/3/242授课:XXX第一部分第一部分:SOA :SOA 架构概述架构概述2021/3/243授课:XXXSOA概述概述-”信息孤岛信息孤岛”问题问题 信息化的发展,企业间协同商务和企业信息门户等要求企业的应用系统是一个高度集成和开放的系统。然而大型企业往往拥有着异构系统,导致系统间信息的交互与互操作非常困难,形成了一个个“信息孤岛”
2、,为了实现企业全局的业务过程自动化,需要投入大量的人力和财力来进行系统集成。“信息孤岛信息孤岛”定义定义 所谓“信息孤岛”是指,在一个单位的各个部门之间由于种种原因造成部门与部门之间完全孤立,各种信息(如财务信息、各种计划信息等)无法或者无法顺畅地在部门与部门之间流动。这样就会形成信息孤岛。是重硬轻软,重网络轻数据的表现。2021/3/244授课:XXXSOA概述概述-”信息孤岛信息孤岛”问题问题 “信息孤岛信息孤岛”类型类型 企业在信息化过程中存在各种类型的信息孤岛。大体可分为数据孤岛、系统孤岛、业务孤岛、管控孤岛四种类型。 1、数据孤岛、数据孤岛数据孤岛是最普遍的形式,存在于所有需要进行数
3、据共享和交换的系统之间。随着企业计算机技术运用的不断深入,不同软件间,尤其是不同部门间的数据信息不能共享,设计、管理、生产的数据不能进行交流,数据出现脱节,即产生信息孤岛,势必给企业的运用带来信息需要重复多次的输入、信息存在很大的冗余、大量的垃圾信息、信息交流的一致性无法保证等困难。2、系统孤岛、系统孤岛系统孤岛指在一定范围内,需要集成的系统之间相互孤立的现象。原先各自为政所实施的局部应用使得各系统之间彼此独立,信息不能共享,成为一个个信息孤岛。有条件的企业投入资金将以前的系统重新升级、设计,在一定范围内实现了信息的共享,业务可以跨部门按照流程顺序执行。经过一段时间后,又有新的系统要上,又发现
4、这些系统所需要的数据不能从现有系统中提取,仍然要从现有系统统计打印出来再输入到新系统中,又出现了信息孤岛。2021/3/245授课:XXXSOA概述概述-”信息孤岛信息孤岛”问题问题 3、业务孤岛、业务孤岛业务孤岛表现为企业业务不能通过网络系统完整、顺利的执行和处理。在企业内部网络系统和网络环境的建设中,以企业发展为目标的信息化要求日益迫切,企业的业务需要在统一的环境下,在部门之间进行处理。企业里经常遇到的头痛问题是“产供销严重脱节”、“财务账与实物账不同步”,其实质就是生成流程、供应流程、销售流程和财务流程都是孤立运行,没有能够形成一个有机的整体。信息孤岛的要害就是割断了本来是密切相连的业务
5、流程,不能满足企业业务处理的需要。4、管控孤岛、管控孤岛管控孤岛指智能控制设备和控制系统与管理系统之间脱离的现象,影响控制系统作用的发挥。企业需要向其上级主管部门上报企业的经营情况、接收上级的各种指令和计划,同时管理层也需要通过信息系统了解和掌握现有信息做出明确的决断,然而由于信息孤岛的存在不能满足信息共享需要。信息孤岛的问题已经严重地阻碍了企业信息化建设的整体进程,使企业在进行新一轮投入时,难于决断。2021/3/246授课:XXXSOA概述概述-”信息孤岛信息孤岛”问题问题 ”信息孤岛信息孤岛”问题主要表现问题主要表现 第一,信息化发展的阶段性。不论是企业信息化,还是政务信息化,都有一个从
6、初级阶段到中级阶段,再到高级阶段的发展过程。在计算机应用的初级阶段,人们容易从文字处理、报表打印开始使用计算机。进而围绕一项项业务工作,开发或引进一个个应用系统。这些分散开发或引进的应用系统,一般不会统一考虑数据标准或信息共享问题,追求“实用快上”的目标而导致“信息孤岛”的不断产生。“信息孤岛”的产生带有一定的必然性,这并不可怕;可怕的是总停留在初级阶段而不发展,不去解决“信息孤岛”问题,还让新的“信息孤岛”继续出现。 第二,认识误区。长期以来,由于信息化教育的深度和广度不够,在企业和政府部门中普遍存在着“重硬轻软,重网络轻数据”的认识误区。他们在设备选型和网络构筑上肯下工夫,肯花大钱,甚至成
7、了“追新族”,使网络设备“换了一茬又一茬”而造成很大的浪费,就是没有用心去进行信息资源的开发与利用,因而导致对“信息孤岛”问题熟视无睹,使其得以长期存在而得不到解决。 2021/3/247授课:XXXSOA概述概述-软件体系发展软件体系发展软件体系结构发展过程软件体系结构发展过程2021/3/248授课:XXXSOA概述概述-企业应用集成企业应用集成 EAI (Enterprise Application Integration)企业应用集成企业应用集成 EAI狭义上指企业内部不同应用系统之间的互连,以期通过应用整合实现数据在多个系统之间的同步和共享。 EAI广义上它已经被扩展到业务整合(Bu
8、siness Integration)的范畴,业务整合相对EAI来说是一个更宽泛的概念,它将应用整合进一步拓展到业务流程整合的级别。业务整合不仅要提供底层应用支撑系统之间的互连,同时要实现存在于企业内部应用与应用之间,本企业和其他合作伙伴之间的端到端的业务流程的管理,它包括应用整合,B2B整合,自动化业务流程管理,人工流程管理,企业门户以及对所有应用系统和流程的管理和监控等方方面面。2021/3/249授课:XXXSOA概述概述-企业应用集成企业应用集成 EAI 企业应用集成企业应用集成的分层的分层 EAI技术层次体系应该包括应用接口层,应用整合层,流程整合层和用户交互层四个大的层面。1.应用
9、接口层应用接口层 EAI要解决的问题是独立应用系统之间的连接,传统的应用系统之间的连接方式包括了:CORBA, SOCKET通讯, RMI, RPC, EJB, COM/COM+, HTTP和FTP等,数据库系统之间常见的连接规范包括:ODBC, JDBC。而在EAI的应用接口层,主要是通过适配器技术将原有数据库系统、应用系统和原有网络服务组件封装起来,实现系统之间的互通互联。适配器的引入主要有以下优点:适配器的引入主要有以下优点:为独立的系统之间提供重用的、统一的接口; 支持事务管理、安全性和连接管理与应用系统连接; 增加企业数据资源的共享程度; 适配器封装了对数据操作的缓冲区,可以提高对数
10、据批处理访问的效率; 增强了基于组件或面向对象开发模块的网络应用的功能,这些组件或对象包括:如COM, DCOM或CORBA等。 2021/3/2410授课:XXXSOA概述概述-企业应用集成企业应用集成 2.应用整合层应用整合层 应用整合层是EAI技术层次体系中的核心层次,该层次是连接业务流程管理层和应用接口层的桥梁。数据信息在业务流程中的流转以及在各个应用系统之间的交互必须建立在数据源和数据目的地都能理解该数据信息的基础之上。在应用整合层我们定义了能为数据产生源、数据处理地、数据投送地都能理解的信息处理规范方式、方法和规则,也就是数据格式定义、数据转换和消息路由。3.流程整合层流程整合层2
11、021/3/2411授课:XXXSOA概述概述-企业应用集成企业应用集成 EAI 企业应用集成企业应用集成的分层的分层 EAI技术层次体系应该包括应用接口层,应用整合层,流程整合层和用户交互层四个大的层面。 EAI企业应用集成主要解决用户界面集成、数据集成、业务流程集成、函数方法集成,这4种集成方法不能方便、灵活、低代价地实现异构系统的集成,难以快速适应企业现代业务变化的需求。所以企业级应用要求新的软件系统不再是从底层做起,而只是依据企业逻辑需求重新组织己有的数据存储,将现有的数据和事务通过新的渠道,如浏览器或者手持设备呈现给用户。基于面向服务架构(Service Oriented Archi
12、tecture ,SOA)的应用集成开发方案就是企业的首选。2021/3/2412授课:XXXSOA概述概述-EAI是什么是什么? EAI (Enterprise Application Integration)企业应用集成企业应用集成 信息化的发展,企业间协同商务和企业信息门户等要求企业的应用系统是一个高度集成和开放的系统。然而大型企业往往拥有着异构系统,导致系统间信息的交互与互操作非常困难,形成了一个个“信息孤岛”,为了实现企业全局的业务过程自动化,需要投入大量的人力和财力来进行系统集成。 EAI企业应用集成主要解决用户界面集成、数据集成、业务流程集成、函数方法集成,这4种集成方法不能方便
13、、灵活、低代价地实现异构系统的集成,难以快速适应企业现代业务变化的需求。所以企业级应用要求新的软件系统不再是从底层做起,而只是依据企业逻辑需求重新组织己有的数据存储,将现有的数据和事务通过新的渠道,如浏览器或者手持设备呈现给用户。基于面向服务架构(Service Oriented Architecture ,SOA)的应用集成开发方案就是企业的首先。2021/3/2413授课:XXXSOA概述概述-SOA是什么是什么? SOA(Service-Oriented Architecture)面向服务的架构面向服务的架构 SOA是一种分布式的软件组件模型。整个应用程序被设计和实现为一组相互交互的服务
14、,它使得系统中的某些服务能够充分利用其他的服务同时却无需考虑其物理位置。在该模型中,任何的业务功能被作为提供的一个服务使用。应用程序的不同功能(服务)通过这些服务之间定义良好的接口和契约联系起来,使得构建在系统中的服务可以以一种统一和通用的方法进行调用。这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松藕合。松藕合系统的好处有两点:它的灵活性;当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。2021/3/2414授课:XXXSOA概述概述-SOA特征特征是什么是什么? SOA架构具有以下特征架构具有以下特征: 1.可从企业外部询问。 2.随
15、需应变。 3.粗粒度的服务接口。 4.分级。 5.松散耦合。 6.可重用的服务。 7.标准化的服务接口。 8.支持各种消息模式。 9.精确定义的服务契约。2021/3/2415授课:XXXSOA概述概述-SOA优势是优势是什么什么? SOA架构具有以下优势架构具有以下优势: 1.基于SOA架构的信息系统建设投资少、周期短、使用成本低、灵活性高。 2.SOA架构更能适应国内企业业务流程和商业模式的快速变化。 3.与传统架构的ERP相比,SOA架构更能适应国内企业管理模式,符合现阶段信息化变革的要求。 4.SOA架构能够充分得用原有信息资源,保护投资。 5.SOA架构可能降低软件系统对硬件资源的依
16、赖程度。 6.SOA架构的建设改变了企业信息化推进模式,且有助于建立自己的开发队伍,管理队伍和运维队伍。 2021/3/2416授课:XXX第二部分第二部分:SOA:SOA 架构体系架构体系2021/3/2417授课:XXXSOA体系体系-三大三大核心部件核心部件 一、ESB(Enterprise Service Bus)企业服务总线 ESB是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并
17、可以提供一系列的标准接口。 ESB的五个基本功能:1)服务的MetaData管理:在总线范畴内对服务的注册命名及寻址管理功能。2)传输服务: 必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。3)中介:提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。4)多种服务集成方式: 如JCA,Web服务,Messaging ,Adaptor等.5)服务和事件管理支持: 如服务调用的记录、测量和监控数据;提供事件检测、触发和分布功能; 2021/3/2418授课:XXXSOA体系体系-三大核心部件三大核心部件 二、BPM(Business P
18、rocess Management)业务流程管理所谓业务流程管理是指根据业务环境的变化,推进人与人之间、人与系统之间的整合及调整经营方法与解决方案的IT工具。BPM可以使系统更为强壮,通过BPM组件,SOA能够更好地监控它连接的系统。三、Portal 门户 门户是一个基于WEB的应用程序,它提供个性化、单点登录、不同来源内容整合及存放信息系统的表示层。 Portal是低成本的集成技术。如果企业已经有了很多信息系统,Portal可以很容易的将这些系统集成到一起,并以统一界面方式提供给用户。2021/3/2419授课:XXXSOA体系体系-组件模型组件模型(1)服务提供者:服务提供者是一个可通过网
19、络寻址的实体,它接受和执行来自使用者的请求;(2)服务使用者:服务使用者是一组使用服务提供者所提供的一项或多项服务的组件;(3)服务储备库:服务储备库包含服务的描述,服务提供者在该储备库中注册其服务,而服务使用者访问该储备库已发现的所提供的服务。2021/3/2420授课:XXXSOA体系体系-架构模型架构模型2021/3/2421授课:XXXSOA体系体系-具体实现具体实现 SOA是一种软件架构,而不是局限于某个技术的组合,它超越了技术范围。SOA的关键是“服务”。W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常是使用者的状态发生变化,但也可能是提供
20、者的状态改变,或者双方都产生变化”。服务是网络中可用的软件资源。服务提供者通过标准机制提供服务,使用者通过网络有计划地使用服务。服务储备库发布服务所在位置,并在使用者请求服务时定位服务。服务使用者和提供者的角色不是唯一的,服务提供者也可以是使用者,反之亦然。SOA具体的实现有很多,包括Web Service,Ses-sionBean,JINI等,但随着Web Service技术被越来越重视,其己经成为构建SOA的主要技术。2021/3/2422授课:XXXSOA体系体系- Web ServiceWeb Service是SOA中服务的主要实现技术,也是一种广泛采用的新的组件技术。SOA是一种软件
21、架构,面向商业应用;Web则是一种技术架构,面向实现模式。Web Service所涉及的关键技术包括:1. XMLXML标准是一个基于文本的W3C规范标记语言。2. SOAP(Simple Object Access Protocol)简单对象访问协议 客户端请求和Web服务响应通过简单对象访问协议在HTTP上传输,以运行于不同平台和地点的客户端与Web服务之间建立完全的互操作。HTTP是在互联网上发送消息时常用的请求与响应标准 协议,而SOAP是一种基于XML的协议,仍然继承HTTP请求和响应模式。3. WSDL (Web Services Description Language) Web
22、服务描述语言 Web服务描述语言是一种描述网络Web服务的XML标准格式。描述的内容包括:服务名称、服务地点、如何与服务通信。众多WSDL可以存放于UDDI注册表, 并在Web上公布。4. UDDI (Universal Description,Discovery,and Integration -UDDI) 通用描述,发现与集成,基于XML的标准,使企业可以将有关其产品和Web服务的信息发布在互联网上,并使这些信息可以被全球任何一个想做生意的客户端访问到。可 以将UDDI想像成一个Web服务的黄页。 2021/3/2423授课:XXXSOA体系体系- SCA架构思想架构思想 SCA和SDO标
23、准是IBM和BEA等公司推出的,SCA实现了业务组件和传输协议的分离,可以处理各种平台组件的集成。SDO可以自由读取各种不同数据源的数据。另外,BPEL本质上是一种集成Web Service服务的语言,也可以算作为SOA的一部分。 SCA(Service Component Architecture)中文翻译为“服务组件架构”,是一种全新的软件架构思想。SCA中,最重要的一个概念是Service-服务,它的内涵式独立于具体的技术。因此,SCA不会称之为 Java组件架构,或Web Service 组件架构。所谓的具体技术,主要有两层含义:一是程序语言,而是传输协议。现有的组件是和传输协议紧密耦
24、合的。比如EJB组件采用的是RMI传输协议,Web Service组件采用的是SOAP传输协议。SCA组件则能自由地绑定各种传输协议。SCA目标是让服务组件能自由绑定各种传输协议,集成其他的组建与服务。 SCA与传统的业务组件最大区别在于SCA实现了两个功能:一是组件和传输协议的分离,二是接口和实现语言的分离。 SCA的本质是一种软件架构思想,SCA架构是独立于程序语言的SOA架构。SCA主要是为集成的需要。使用SCA可以使组件之间处于一种松耦合的状态,不需要在自己的代码中加入对方组件的接口代码。2021/3/2424授课:XXXSOA体系体系- SCA架构思想架构思想 SDO(Service
25、 Data Objects)服务数据对象,SDO是SOA体系结构中的一个用来简化和统一数据应用的开发框架,也是SCA Module的基本组成部分。SDO支持与XML的集成并且适用于J2EE模式和最佳实践。与其他的数据集成模型不同,SDO不仅仅是数据的抽象,SDO框架也是一个断开连接的编程模型,即可以在不连接任何数据源的情况下进行编程。 BPEL( Business Process Execution Language) Web服务的业务流程执行语言,BPEL提供了一种XML注释和语义,用于指定基于Web服务的业务流程行为。使用合作伙伴的交互方式,定义了该BPEL4WS流程。合作伙伴可以将服务提
26、供给流程,也可以向流程请求服务,或者参与到流程的双向交互中。BPEL通过指定顺序来编排Web服务,这对服务集合的调用来说意义深远。BPEL还针对每个服务分配了合作伙伴的责任。您可以使用它来指定合作伙伴的公共接口和可执行流程的描述。2021/3/2425授课:XXXSOA体系体系- SCA架构思想架构思想 SDO(Service Data Objects)服务数据对象,SDO是SOA体系结构中的一个用来简化和统一数据应用的开发框架,也是SCA Module的基本组成部分。SDO支持与XML的集成并且适用于J2EE模式和最佳实践。与其他的数据集成模型不同,SDO不仅仅是数据的抽象,SDO框架也是一
27、个断开连接的编程模型,即可以在不连接任何数据源的情况下进行编程。 BPEL( Business Process Execution Language) Web服务的业务流程执行语言,BPEL提供了一种XML注释和语义,用于指定基于Web服务的业务流程行为。使用合作伙伴的交互方式,定义了该BPEL4WS流程。合作伙伴可以将服务提供给流程,也可以向流程请求服务,或者参与到流程的双向交互中。BPEL通过指定顺序来编排Web服务,这对服务集合的调用来说意义深远。BPEL还针对每个服务分配了合作伙伴的责任。您可以使用它来指定合作伙伴的公共接口和可执行流程的描述。2021/3/2426授课:XXXThank you!2021/3/2427