基于SOA模式的企业架构设计

日期: 2010-03-14 来源:TechTarget中国 英文

  传统的企业构架有两种:一是面向功能的企业构架,二是面向过程的企业构架。这两种企业架构所采用的技术基本上是紧密藕合的,它们往往是不同平台、不同开发工具、不同管理规范、不同需求的一个信息模块集。这些应用程序整合在一起构成一个软件包。现有企业架构实现整合应用程序功能的代码通常与功能本身的代码混合在一起,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本,而且还使重新使用应用程序功能变得较困难,这严重影响了企业系统的稳定性。一种被誉为下一代面向服务的技术架构,以其高度开放型和可重用性、灵活性再一次引起业内关注,这就是SOA。

  一、SOA的概念及其特征

  SOA是指为了解决在Intenret环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。

  SOA的基本特征是:(1)独立的功能实体。SOA非常强调架构中提供服务的功能实体的完全独立自主的能力,以及实体自我管理和恢复能力。常见的用来进行自我恢复的技术,比如事务处理,消息队列,冗余部署和集群系统在SOA中都起到至关重要的作用。(2)大数据量低频率访问。对于传统的分布式计算模型而言,他们的服务提供都是通过函数调用的方式进行的,一个功能的完成往往需要通过客户端和服务器来回很多次函数调用才能完成,这些调用在Internet环境下往往是决定整个系统是否能正常工作的一个关键决定因素。因此SOA系统推荐采用大数据量的方式一次性进行信息交换。(3)基于文本的消息传递。SOA系统采用基于文本而非二进制的消息传递方式。在Internet环境下,不同语言,不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于基于文本的消息本身是不包含任何处理逻辑和数据类型的,因此服务间只传递文本,对数据的处理依赖于接收端。数据处理端可以只选择性的处理自己理解的那部分数据,而忽略其它的数据,从而得到的非常理想的兼容性。

  二、基于SOA模式的企业架构

  SOA目标是整合业务过程,必须具备下面要求:异构性,横跨现有应用系统;可伸缩性,根据环境变化非常容易地能够提升系统性能;适用性,将应用错误和通讯错误隔离开来,不至于因为一点失败导致全局混乱;分布式,跨部门跨地域交互操作;机动性,允许各个部门以最小的代价很容易更改与应用相关的设计和实现,也就是各个部门系统相互独立,没有藕合性;可见性,可以对各种处理和服务运行情况进行管理监视。

  SOA是一种松散藕合的软件体系结构,在这种体系结构中,由各自独立可复用的服务去构成系统功能。这些服务向外公布有意义明确的接口,软件的开发是通过对这些实现透明的接口的调用来完成。

  在面向服务的体系结构中主要有三种角色:(1)服务消费者是需要使用服务的应用程序或其它的服务。通过对注册中心的服务进行查询后,根据接口说明信息并使用某种传输协议与服务绑定并执行服务功能。(2)服务提供者是创建服务的实体。可以从服务消费者处接受请求并可以远程执行所请求服务。通过向注册中心发布服务接口信息以供服务消费者发现和访问服务。(3)服务注册中心处于中心位置提供了展示服务的功能。服务消费者通过查询存储有服务信息库的注册中心以找到感兴趣服务的接口信息。

  在面向服务的体系结构中主要的操作有:发布为了被访问,服务的描述信息必须被发布以便服务消费者发现和调用。发现服务请求者通过查询注册中心去定位符合其需求标准的服务。绑定和调用在获得服务描述信息之后,服务消费者据此去调用服务。服务是SOA中的基础设施,位于业务需求和底层技术之间的抽象层次中。

  面向服务架构是让IT更加关注于业务流程而非底层IT基础结构,从而获得竞争优势的更高级别的应用程序开发架构。

  与传统开发方法相比,SOA的特点在于具有基于标准、松散藕合、共享服务和粗粒度等,其优势可表现为:(1)易于集成现有系统。在对现有系统不做修改的前提下,SOA可将现有系统和应用迅速转换为服务。通过封装可以提供服务接口的应用层来访问遗留系统,因此不用修改现有系统体系结构。(2)具有标准化的架构。只要符合相关标准,无论何时开发的组件都可以合并在一个结构良好的SOA系统中。并且不同开发者开发出的组件将被作为服务方便的添加部署在现有的基础构架中。(3)提升开发效率。由于SOA在可复用方面的特点,新的软件在设计、开发、测试和部署时可以充分利用已有服务。因此,其开发周期可以显着缩短。

  (4)降低开发维护复杂度。通过采用SOA体系结构,在进行二次开发时成本急剧减少。同时.由于系统具有松散祸合的特征,维护成本也大大减少。

  企业开始可以让SOA用于内部服务,然后扩大范围,用于面向客户的应用。这需要与商业合作伙伴交换XML数据,这种做法在电信业和旅游业变得越来越常见。SOA还有助于面向客户的B2B应用,在这种情况下,用户并不知道底层的基础设施。

  SOA的灵活性还可以让组织受益,因为可以加快应用开发,通过重复使用硬件部件和软件组件来降低成本。用这种办法开发应用程序的质量可能比独立开发的还要高,因为组件预先经过了测试,Web服务接口也已经得到了验证。

  SOA可以采用诸多方案通过诸多方法来实施,不过对每个组织来说,它们各自的好处还不明显。如果用户在设计和扩建方面的需求压倒一切,SOA和Web服务会带来巨大影响。衡量成功的尺度要与组织的目标和业绩联系起来。即便业务和IT没有紧密联系,SOA也会给内部的IT系统带来好处,从而提高内部客户的满意度。

  SOA可以降低开发成本,提高系统集成度和响应速度等,还能帮助解决因为系统升级带来的烦恼。未来SOA构架下的企业软件就像是一个不断进化的生态过程,某些“服务(业务组件)”不断地局部升级,新的“服务”不断地加人,只有这样的系统才能真正做到实时企业,快速适应业务变化。

  三、目前企业实施SOA的风险

  作为一种概念,SOA已成熟。但实现还有困难。首先标准仍不完备。Web服务是实现SOA最好的方式,但Web服务本身还有很多不成熟的方面。除了SOAP和WSDL相对成熟外,在可靠消息传递、安全Web服务、Web事务处理等方面的标准还有待完善。另外,就SOA架构来说,服务颗粒大小问题,在某种程度上决定着整个系统的灵活性和效率,要在灵活和效率之间找到一个平衡点。而平衡点需要由实践来检验。

  实施SOA存在两个风险:一个风险是,向SOA迁移过早或者过晚、未能充分发掘节省成本的潜力;另一个风险就是,SOA实施不当可能会导致组织被过时、专有的技术缚住手脚。

  总之,作为一个刚刚步放实践的事物,SOA面临的挑战还有很多。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐