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环境下的可用性和可扩展性。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
购买应用集成工具可以采取平衡做法
购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。