SOA论文——精选推荐

阅读: 评论:0

2024年1月29日发(作者:)

SOA论文——精选推荐

SOA学习总结

面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。

一、什么是面向服务的体系结构

我们知道传统的IT程序发展史经历了以下四个阶段:

1、面向过程的编程,如C语言。

2、面向对象的编程,如Java、C++。

3、面向组件的编程,如EJB,JMS。

4、标准化的Web Service编程,也属于组件编程。

从本质上讲,面向对象是对面向过程的一次解耦和封装,就是把面向过程的程序进行分解,把逻辑紧密相关的程序结合在一起,发布成独立的对象单元,对象单元里含有API。

面向组件的编程是对面向对象的程序进一步封装,发布成独立的组件,里面含有一些粒度大于API的接口。面向组件和面向对象的最大区别在于组件是通过传输协议来进行远程调用的,组件是和传输协议绑定、应用服务器和端口绑定在一起的。

理解了上面的编程思想,就可以进一步理解什么是面向服务了,面向服务的编程是对面向组件编程的进一步解耦和封装。所谓解耦,就是将业务组件和传输协议和端口解耦,也就是说业务组件可以自由的绑定各种传输协议。

作为面向服务编程,由于服务组件可以和各种传输协议自由绑定。这样作为服务的消费者,就不需要特别关心服务的提供者的具体技术细节。只需要知道有这么一个完全和技术无关的业务接口。我们就可以把这种完全和技术无关的接口称为:服务接口。作为客户,不需要去理解这到底是Web Service 的接口,还是

EJB的接口等,这个接口,只和业务相关,而和技术无关。

因此可以这么说:所谓服务,就是只和业务相关,独立于技术业务接口。所谓面向服务,就是如何实现独立于技术的服务接口。

SOA 是一种 IT 体系结构样式,支持将业务作为链接服务或可重复业务任务进行集成,可通过网络访问这些服务和任务。

服务可以将自己组装为按需应用程序——即相互连接的服务提供者和使用者集合,彼此结合以完成特定业务任务,使业务能够适应不断变化的情况和需求。

服务是自包含的,具有定义良好的接口,允许这些服务的用户——称为客户机或使用者——了解如何与其进行交互。

二、SOA的基本原则

粗粒度

在SOA中服务粒度有两种相关的意思,即服务是如何实现的,服务使用和返回了多少数据或多少消息。细粒度服务执行了最小的功能,发送和接收少量的数据。粗粒度服务执行了较大的业务功能,并交换了更多的数据。

原则:细粒度服务是供粗粒度服务或组合服务使用的,而不是由终端应用直接使用的。如果应用是使用细粒度服务建立的,则应用将不得不调用网络上多个服务,并且发生在每个服务上的数据量较少,因而会对对系统整体性带来影响。所以,粗粒度服务的用户不能直接调用他所使用的细粒度服务。同时,由于粗粒度服务可能使用多个细粒度服务,因此它们不能提供粒度级的安全和访问控制。

松散耦合

松耦合的系统特点是灵活,而应用到SOA中的目的就是将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔离开来。服务提供者和服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下进行修改。

大多数松散耦合方法都依靠基于服务接口的消息。基于消息的接口能够兼容多种传输方式(如HTTP、JMS、TCP/IP、MOM等)。基于消息的接口可以采用同步和异步协议实现。

可重用部件/服务

如果完全按照可重用的原则设计服务,SOA将可以使应用变得更为灵活。可重用服务采用通用格式提供重要的业务功能,为开发人员节约了大量时间。

设计可重用服务应该是与数据库设计或通用数据建模类似的最有价值的工作。

基于标准

Web Service是目前实现SOA应用的一项基本的,适用的技术,它为服务的访问提供了一个被广泛接受的开放标准。

JBI(JSR208)是SUN推出的基于Java的SOA标准,随着在JSR 208中被定义,它也成为了把服务容器组装为合成应用的标准。

Service Component Architecture (SCA)和Service Data Objects (SDOs)标准是IBM和BEA所推出的SOA标准,并在Apache Group建立了Apache Tuscany项目。

在我看来,标准之争并不是关键所在,但就JBI和SCA/SDO标准而言,JBI的应用范围更严格,可能最终会成为更大的标准中的一部分Java实现。

三、实现SOA的好处

更高的业务和 IT 一致性

基于组件的系统

基于网络的基础设施,允许分散于各地且采用不同技术的资源协同工作

动态构建的按需应用程序

更高的代码重用率

更好地标准化整个企业内的流程

更易于集中企业控制

四、SOA的基础结构

要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。

SOAP, WSDL, UDDI

WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。

WS-I Basic Profile

WS-I Basic Profile,由Web服务互用性组织(Web Services

Interoperability Organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。

J2EE 和 .Net

尽管J2EE和.NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML

Binding),用于将XML文档定位到Java类;JAXR(Java API for XML

Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API

for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如。NET)的服务互用。

SOA本身应该是“如何将软件组织在一起”的抽象概念。它依赖于用 XML 和

Web 服务实现并以软件的形式存在的更加具体的观念和技术。此外,它还需要安全性、策略管理、可靠消息传递以及会计系统的支持,从而有效地工作。您还可以通过分布式事务处理和分布式软件状态管理来进一步地改善它。

SOA服务和Web服务之间的区别在于设计。SOA 概念并没有确切地定义服务具体如何交互,而仅仅定义了服务如何相互理解以及如何交互。其中的区别也就是定义如何执行流程的战略与如何执行流程的战术之间的区别。而另一方面,Web服务在需要交互的服务之间如何传递消息有具体的指导原则;从战术

上实现SOA模型最常见的方式是通过HTTP传递的SOAP消息。因而,从本质上讲,Web 服务是实现SOA的具体方式之一。

尽管我们觉得 Web 服务是实现SOA最好的方式,但是SOA并不局限于Web服务。其他使用WSDL直接实现服务接口并且通过XML消息进行通信的协议也可以包括在SOA之中。正如在别处指出的,CORBA和 IBM的MQ系统通过使用能够处理WSDL的新特征也可以参与到SOA中来。如果两个服务需要交换数据,那么它们还会需要使用相同的消息传递协议,但是数据接口允许相同的信息交换。

既为了建立所有这些信息的适当控制,又为了应用安全性、策略、可靠性以及会计方面的要求,在SOA体系结构的框架中加入了一个新的软件对象。这个对象就是企业服务总线(Enterprise Service Bus,ESB),它使用许多可能的消息传递协议来负责适当的控制、流甚至还可能是服务之间所有消息的传输。虽然ESB并不是绝对必需的,但它却是在SOA中正确管理您的业务流程至关重要的组件。ESB本身可以是单个引擎,甚至还可以是由许多同级和下级ESB组成的分布式系统,这些 ESB一起工作,以保持SOA系统的运行。在概念上,它是从早期比如消息队列和分布式事务计算这些计算机科学概念所建立的存储转发机制发展而来的。

五、如何构建SOA系统

利用SOA的好处不仅仅在于它是一个软件开发流程,而且还是一个业务开发流程。采用SOA有四个层次,您的实现可以跨越从创建特定的软件服务到将您的业务模型全面转换到按需系统的过程。

第一个层次是最简单的,因为它只需创建单独的服务。

在第二个层次中,您不仅可以创建服务,而且可以开始将业务功能集成到SOA中。这涉及多个层次的集成,其中包括应用程序集成、信息集成、流程集成和整个系统的集成。

第三个层次涉及将您的企业IT基础设施转换到 SOA模型,而采用SOA的第四个层次集中于转换您的业务模型,以使之成为随需应变的模型。

从IT专业人员的角度来看(与业务层相比),要创建SOA应用程序,您通常将经历四个阶段:构建、部署、使用和管理。在构建阶段中,您可以定义业务模型或流程、软件模型和SOA模型。之后,您就可以创建一组服务,这组服务可以与已发布的通用接口一起重用。

在部署阶段,您提取创建的服务,并把它们放在一个可执行、可管理的环境之中。在使用阶段,您根据前面所讲的SOA和软件模型来装配应用程序,并且测试其软件质量以及非功能性需求,比如性能、可伸缩性等等。应用程序现在已经准备完毕并且可交付用户。最后的管理阶段是一个长期的过程,在这个阶段中,您可以监控并管理安全性和使用,以及在许多与您可能已经为 SOA制订好的服务级协定或策略相对应的方面比较其性能。

通过这学期对SOA的学习,对它有了初步的认识,SOA的时代已经来临,必须扎实的学好SOA,掌握其精髓。

SOA论文——精选推荐

本文发布于:2024-01-29 09:46:50,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170649281014418.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:soa标准调用
标签:服务   接口   业务   使用   实现   面向   组件
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23