在IT中应用SOA的一个基本前提就是松耦合原则,也即在信息系统的设计中应避免临时性的技术约束和组织约束,或者说至少要对其进行封装。松耦合系统支持在系统运行时的组件间动态绑定,从而可以调和组件在结构、安全模型、协议以及语义方面的差异,达到对系统易变部分进行抽象化处理的目的。SOA中的松耦合指的是一个服务的实现细节不应对其它服务和应用程序产生不良影响。应用程序和服务间的交互只能通过发布的接口进行。这就意味着,应用程序并不关心服务的实现细节。
位置透明意味着服务的消费者不用关心服务的实现放在哪里。它可以是网络上同一个服务器或者其它服务器。消费者的调用不会知道服务的位置。
SOA遵循Web服务,因此应用程序运行在任何一个平台上的也可以运行服务在其他的平台上,因而促进重用。适当的设计实现SOA应用程序提供基础设施,使得在异构环境(如C,C++,Java,.Net等)中的重用变得可能。
管理环境也可以封装COBOL的遗留系统使之作为服务。这无限期地延长了很多核心遗留系统的使用寿命,不管他们原来使用什么语言编写实现。
由于SOA提供了基于层次的架构,因此它将测试分为特定的测试领域,如服务,安全,和管理等等。这些测试领域要分别用最好的工具与方法进行测试。参考JUnit或 NUnit允许创建一个测试套件。测试套件由许多程序组成,每个程序都是被设计来测试一项服务或组件。在SOA环境,自动化测试对频繁变化的企业服务非常常见,它促进了回归测试的效率。SOA测试的另一个方面是对独立的可重用服务的测试,这些服务能被独立的测试,它迫使测试者不要测试全部的应用,除非所有的服务都已经成功通过测试。更多又更好的测试意味着更少的缺陷以及整体上更好的质量水平。
在开发环境下,面向服务的架构支持更多的并行性,因为它是基于层次架构的。由于面向服务的架构提供基于层次的架构,所以它支持更多的并行开发。SOA由基于合约的独立服务目录组成,这些服务可以被并行开发。
上图显示了开发者可以以并行的方式开发独立的服务,服务开发可以在同一个计划时间完成。商务程序将访问这些独立的服务,精心安排它们,并且提供具体的商务功能。
多层的SOA架构可以单独聚集并被赋予合适的负载平衡,以便扩展整个系统。我们知道冗余是高可用性的关键,SOA通过聚集引入冗余元素进而获得冗余度。SOA使用层次架构来简化逻辑解耦,这允许设计一个每一层都富有弹性的系统,从双通道链接,到冗余路由器和交换机,再到群集服务器和冗余数据库。
路由负载均衡器如F5,它具有服务器反向代理和软件负载平衡器,进一步增加了SOA环境下的可用性和可扩展性。
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务