【SOA】2.Service Oriented Architecture (SOA)

面向服务的体系结构(Service oriented architecture,SOA)是一种独立的系统和应用程序通过暴露和使用服务相互通信的体系结构。使用开放的标准定义服务,使通信更容易实现,并减少依赖于专有的通信协议。

Distributed Object Architecture (DOA) 是这样一种思想:应用中的对象可以在服务之间*移动,并且可以相互远程调用。SOA也正是遵循了这一理念。一个调用对象调用另一个被调用对象时,调用对象不需要知道被调用对象
是本地还是远程的,被调用对象对于调用对象来说应该是透明的。这种架构正在慢慢被抛弃,因为太细粒度的分布式对象通信是非常复杂的,并没有表现良好。分布式对象是复杂的,因为调用远程对象相对于调用本地对象来说有更大的出错可能性。例如,通常需要两阶段提交事务来协调分布式事务,其中单事务可以在本地进行。此外,你对来自不必要的进程通信所产生的通信开销以及底层的的“容器”或“服务器”之间移动对象的控制较少,因此,应用程序设计者希望能够控制对象的位置,以降低复杂性和提高性能。

【SOA】2.Service Oriented Architecture (SOA)

图1.分布式对象体系结构


取而代之的是,大粒度的移动服务已经推出- SOA。服务可以移动,但它们通常不像人们想象的那样动态地移动分布式对象。此外,当调用服务时,通常意识到你正在调用远程实体。这意味着你可以更好地控制复杂性和性能。

【SOA】2.Service Oriented Architecture (SOA)

图2.面向服务的体系结构

有人讽刺地说,SOA是“新瓶装旧酒”。今天的服务与昨天远程程序调用协议惊人地相似。主要的区别是,今天的服务通信更多是通过开放的标准,如SOAP,REST等。这意味着通信层变得更容易实现。然而,SOA并不是一些作者想要你相信的“投资回报”大增。另一个不同之处在于SOA引入了一组新概念,并试图对行业内现有的一些概念进行规范化。其中一些概念是:

  • Enterprise Service Bus
  • Service Composition
  • Service Transactions
  • Service Repositories
  • Service Orchestration
后续的文章中将围绕这些概念深入探讨。