观辰软件

SOA是什么?

作者:网络收集发布时间:2010-11-08编辑:观辰管理员更新时间:2010-11-08 11:22

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

这种中立的接口定义(没有强制绑定到特定实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性;另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。相对来说,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构紧密相连,因而当需要对部分或整个应用程序进行调整更改时,它们就显得非常脆弱(容易发生错误)。

对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。

虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。

随着技术的不断发展,现在的SOA已经与以前有所不同,当前的SOA更依赖于一些新的技术进展,这些技术进展主要是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言(称为 Web 服务描述语言(Web Services Definition Language,WSDL))来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Definition Language,IDL)可比了。

Web 服务并不是实现 SOA 的惟一方式。前面刚讲的 CORBA 是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,比如 IBM 的 MQseries。但是为了建立体系结构模型,您所需要的并不只是服务描述。您可能需要定义如何在服务之间执行其工作流,您尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA 应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。例如,给供应商付款的操作是商业流程,而更新您的零件数据库,以包括进新供应的货物却是技术流程。因而,工作流还可以在 SOA 的设计中扮演重要的角色。

此外,动态业务的工作流不仅可以包括部门之间的操作,甚至还可以包括与外部合作伙伴进行的操作。因此,为了提高效率,您需要定义应该如何得知服务之间的关系的策略,这种策略常常采用服务级协定和操作策略的形式。

最后,所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何 SOA 中都起着重要的作用。

 

观辰OA协同办公系统(跨越版)

计划、任务/报告、备忘录、通讯录、物品购借领、物流收发、前端财务、知识文档、公告通知、BBS论坛、短信/消息...OA协同办公系统必用功能融入考勤&薪酬&绩效&招聘用工&劳动合同等一体化人力资源管理功能,应用完整、流程通透、逻辑清晰。实施操作无师自通,简约不简单。观辰OA实现了文件的飞跃,工作更有效,管理更科学,执行力和竞争力更高。

咨询热线

028-61297191
观辰软件 版权所有 © 2003-2015