技术开发 频道

企业可从面向服务的体系结构中获益

        【IT168 评论】SOA,面向服务的体系结构,是当今市场的发展趋势。SOA虽然是个很能打动人的词,但是我们还是需要了解,采用SOA后我们到底能得到什么好处。在探讨可以获得的好处之前,需要先来讨论一个共识。简言之,面向服务的体系结构是一种范型(paradigm),它包含一个服务层,服务层中的服务即为可在应用程序间进行共享的功能特性(functionality)。SOA的主要目的是拉近业务用户和IT技术之间的距离。SOA可以增加业务灵活性,改善业务工作流,提高架构的可扩展性,促进重用并延长应用程序的生存期。采用SOA将受益颇多。

  松耦合

  在IT中应用SOA的一个基本前提就是松耦合原则,也即在信息系统的设计中应避免临时性的技术约束和组织约束,或者说至少要对其进行封装。松耦合系统支持在系统运行时的组件间动态绑定,从而可以调和组件在结构、安全模型、协议以及语义方面的差异,达到对系统易变部分进行抽象化处理的目的。SOA中的松耦合指的是一个服务的实现细节不应对其它服务和应用程序产生不良影响。应用程序和服务间的交互只能通过发布的接口进行。这就意味着,应用程序并不关心服务的实现细节。

松耦合及位置透明

  位置透明

  位置透明意味着服务的消费者不用关心服务的实现放在哪里。它可以是网络上同一个服务器或者其它服务器。消费者的调用不会知道服务的位置。

  可重用性

  SOA遵循Web服务,因此应用程序运行在任何一个平台上的也可以运行服务在其他的平台上,因而促进重用。适当的设计实现SOA应用程序提供基础设施,使得在异构环境(如C,C++,Java,.Net等)中的重用变得可能。

松耦合及位置透明

  管理环境也可以封装COBOL的遗留系统使之作为服务。这无限期地延长了很多核心遗留系统的使用寿命,不管他们原来使用什么语言编写实现。

  丰富的可测试性

  由于SOA提供了基于层次的架构,因此它将测试分为特定的测试领域,如服务,安全,和管理等等。这些测试领域要分别用最好的工具与方法进行测试。参考JUnit或 NUnit允许创建一个测试套件。测试套件由许多程序组成,每个程序都是被设计来测试一项服务或组件。在SOA环境,自动化测试对频繁变化的企业服务非常常见,它促进了回归测试的效率。SOA测试的另一个方面是对独立的可重用服务的测试,这些服务能被独立的测试,它迫使测试者不要测试全部的应用,除非所有的服务都已经成功通过测试。更多又更好的测试意味着更少的缺陷以及整体上更好的质量水平。

  并行开发

  在开发环境下,面向服务的架构支持更多的并行性,因为它是基于层次架构的。由于面向服务的架构提供基于层次的架构,所以它支持更多的并行开发。SOA由基于合约的独立服务目录组成,这些服务可以被并行开发。

丰富的可测试性

  上图显示了开发者可以以并行的方式开发独立的服务,服务开发可以在同一个计划时间完成。商务程序将访问这些独立的服务,精心安排它们,并且提供具体的商务功能。

  更高的可用性&更好的可扩展性

  多层的SOA架构可以单独聚集并被赋予合适的负载平衡,以便扩展整个系统。我们知道冗余是高可用性的关键,SOA通过聚集引入冗余元素进而获得冗余度。SOA使用层次架构来简化逻辑解耦,这允许设计一个每一层都富有弹性的系统,从双通道链接,到冗余路由器和交换机,再到群集服务器和冗余数据库。

丰富的可测试性

  路由负载均衡器如F5,它具有服务器反向代理和软件负载平衡器,进一步增加了SOA环境下的可用性和可扩展性。

0
相关文章