资源描述
*,*,*,面 向 服 务 的 软 件 体 系 结 构,什么是面向服务的体系结构,面向服务的体系结构,(SOA),是一个组件模型,它将应用程序的不同功能单元,(,称为服务,),通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。,1,什么是面向服务的体系结构,这种具有中立的接口定义,(,没有强制绑定到特定的实现上,),的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,;,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而与此相对,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。,2,什么是面向服务的体系结构,3,什么是面向服务的体系结构,对松耦合系统的需求来源于业务应用程序需要根据业务的变动变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需,(On Demand),业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。,4,什么是面向服务的体系结构,虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于,SOA,的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然,SOA,是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。,SOA,系统原型的一个典型例子是通用对象请求代理体系结构,(Common Object Request Broker Architecture,,,CORBA),,它已经出现很长时间了,其定义的概念与,SOA,相似。,5,什么是面向服务的体系结构,然而,现在的,SOA,已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言,(,eXtensible,Markup Language,,,XML),为基础的。通过使用基于,XML,的语言,(,称为,Web,服务描述语言,,Web Services Definition Language,,,WSDL),来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前,CORBA,中的接口描述语言,(Interface Definition Language,,,IDL),可比了。,6,构成SOA的技术是什么,SOA,本身应该是“如何将软件组织在一起”的抽象概念。它依赖于用,XML,和,Web,服务实现并以软件的形式存在的更加具体的观念和技术。此外,它还需要安全性、策略管理、可靠消息传递以及会计系统的支持,从而有效地工作。您还可以通过分布式事务处理和分布式软件状态管理来进一步地改善它。,7,构成SOA的技术是什么,SOA,服务和,Web,服务之间的区别在于设计。,SOA,概念并没有确切地定义服务具体如何交互,而仅仅定义了服务如何相互理解以及如何交互。其中的区别也就是定义如何执行流程的战略与如何执行流程的战术之间的区别。而另一方面,,Web,服务在需要交互的服务之间如何传递消息有具体的指导原则,;,从战术上实现,SOA,模型最常见的方式是通过,HTTP,传递的,SOAP,消息。因而,从本质上讲,,Web,服务是实现,SOA,的具体方式之一。,8,构成SOA的技术是什么,既为了建立所有这些信息的适当控制,又为了应用安全性、策略、可靠性以及会计方面的要求,在,SOA,体系结构的框架中加入了一个新的软件对象。这个对象就是企业服务总线,(ESB),,它使用许多可能的消息传递协议来负责适当的控制、流甚至还可能是服务之间所有消息的传输。虽然,ESB,并不是绝对必需的,但它却是在,SOA,中正确管理您的业务流程至关重要的组件。,ESB,本身可以是单个引擎,甚至还可以是由许多同级和下级,ESB,组成的分布式系统,这些,ESB,一起工作,以保持,SOA,系统的运行。在概念上,它是从早期比如消息队列和分布式事务计算这些计算机科学概念所建立的存储转发机制发展而来的。,9,如何构建SOA系统,利用,SOA,的好处不仅仅在于它是一个软件开发流程,而且还是一个业务开发流程。采用,SOA,有四个层次,您的实现可以跨越从创建特定的软件服务到将您的业务模型全面转换到按需系统的过程。,10,如何构建SOA系统,第一个层次是最简单的,因为它只需创建单独的服务。,在第二个层次中,您不仅可以创建服务,而且可以开始将业务功能集成到,SOA,中。这涉及多个层次的集成,其中包括应用程序集成、信息集成、流程集成和整个系统的集成。,第三个层次涉及将您的企业,IT,基础设施转换到,SOA,模型,而采用,SOA,的第四个层次集中于转换您的业务模型,以使之成为随需应变的模型。,11,如何构建SOA系统,从,IT,专业人员的角度来看,(,与业务层相比,),,要创建,SOA,应用程序,通常将经历四个阶段:构建、部署、使用和管理。,在构建阶段中,您可以定义业务模型或流程、软件模型和,SOA,模型。之后,就可以创建一组服务,这组服务可以与已发布的通用接口一起重用。,在部署阶段,提取创建的服务,并把它们放在一个可执行、可管理的环境之中。,在使用阶段,根据前面所讲的,SOA,和软件模型来装配应用程序,并且测试其软件质量以及非功能性需求,比如性能、可伸缩性等等。应用程序现在已经准备完毕并且可交付用户。,最后的管理阶段是一个长期的过程,在这个阶段中,可以监控并管理安全性和使用,以及在许多与可能已经为,SOA,制订好的服务级协定或策略相对应的方面比较其性能。,12,近距离审视面向服务的体系结构,面向服务的体系结构提供了一种方法,通过这种方法,可以构建分布式系统来将应用程序功能作为服务提供给终端用户应用程序或其他服务。其组成元素可以分成功能元素和服务质量元素。,面向服务的体系结构的元素,:,体系结构堆栈分成两半,左边的一半集中于体系结构的功能性方面,而右边的一半集中于体系结构的服务质量方面。,13,近距离审视面向服务的体系结构,14,近距离审视面向服务的体系结构,功能性方面包括:,传输是一种机制,用于将来自服务使用者的服务请求传送给服务提供者,并且将来自服务提供者的响应传送给服务使用者。,服务通信协议是一种经过协商的机制,通过这种机制,服务提供者和服务使用者可以就将要请求的内容和将要返回的内容进行沟通。,服务描述是一种经过协商的模式,用于描述服务是什么、应该如何调用服务以及成功地调用服务需要什么数据。,服务描述实际可供使用的服务。,业务流程是一个服务的集合,可以按照特定的顺序并使用一组特定的规则进行调用,以满足业务要求。注意,可以将业务流程本身看作是服务,这样就产生了业务流程可以由不同粒度的服务组成的观念。,服务注册中心是一个服务和数据描述的存储库,服务提供者可以通过服务注册中心发布它们的服务,而服务使用者可以通过服务注册中心发现或查找可用的服务。服务注册中心可以给需要集中式存储库的服务提供其他的功能。,15,近距离审视面向服务的体系结构,服务质量方面包括:,策略是一组条件和规则,在这些条件和规则之下,服务提供者可以使服务可用于使用者。策略既有功能性方面,也有与服务质量有关的方面;因此,我们在功能和服务质量两个区中都有策略功能。,安全性是规则集,可以应用于调用服务的服务使用者的身份验证、授权和访问控制。,传输是属性集,可以应用于一组服务,以提供一致的结果。例如,如果要使用一组服务来完成一项业务功能,则所有的服务必须都完成,或者没有一个完成。,管理是属性集,可以应用于管理提供的服务或使用的服务。,16,实现面向服务体系结构的技术代表,HTTP,协 议:一个典型的,S OA,实现,S O A,与,Web S e r v i c e s,17,HTTP 协 议:一个典型的 S OA实现,每一项新技术都是在一些原有技术基础上发展出来的。正如XML根本思想来自于在20世纪60年代就已经出现的早期标记性语言一样,S O A虽然近几年才出现,但是它所表达的观念应该说在网络这种分布式系统结构出现不久就已经广泛应用了。例如我们最熟悉的HT T P 协议就是一个非常典型的S O A架构设计。,18,HTTP 协 议:一个典型的 S OA实现,H T T P,协议满足了,S OA,的三个基本特点:,(1),独立的功能实体,作为服务器端的,WEB,服务器总是非常稳定地按照 自己的内在逻辑运行,响应外部的请求,管理自己的资源和数据。,(2),大数据量低频率访问,对于一个,HT T P,请求来说,客户端与服务器端之间访问的边界就是一个请求,一个响应,没有任何其它的信息往返。对于客户端来说,它发出的请求只是简单的告诉,We b,服务器它所需要的网页的位置;,(3),基于文本的消息传递,迄今为止兼容性最好的系统可能就是,HT T P,协议支撑的大部分的,w e b,应用了,这里的关键就是所有内容都是以格式化的文本方式传递的,而由于不同的操作系统上对于相同的,H T ML,的解释遵循相同的规范,因此不同操作系统下仍然能够看到一致的用户界面。,19,SOA与 Web Service s,这里值得说明的是S OA不是 We b S e r v i c e s。根据,2003,年,4,月的报道,,这个问题是这样解释的:“We,b S e r v i c e s,是技术规范,,而S OA是设计原则。特别是 We b S e r v i c e s 中的WS D L,是一个S O A配套的接口定义标准:这是 We b S e r v i c e s 和 S OA的根本联系。”从本质上来说,S OA是一种架构模式,而 We b S e r v i c e s,是利用一组标准实现的服务,。We b S e r v i c e,s是实现,S OA的方式之一。用 We b S e r v i c e s,来实现,S OA的好处就是可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的,WEB,服务规范,可以取得更好的通用性,。,20,结束语,SOA的概念并非什么新东西,S O A不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现S O A的平台或应用程序。S O A能够在最新的和现有的应用之上创建应用;S O A能够使客户或服务消费者免予服务实现的改变所带来的影响;S O A能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。,总而言之根据,S O A体系结构模型、基本特征及服务品质特性,结合海洋环境监测数据通信与管理的基本业务需求将先进 S OA设计理念引入到海洋监测领域是可行的,使各类海洋环境监测集成系统功能变得更加灵活,推动了集成系统技术发展。,21,
展开阅读全文