|
SOA 的内涵和外延太丰富了,今天恐怕不是简单的一个技术标准和架构规范能简单的来涵盖。下面让我摘抄一段来自IBM 的通用定义:
SOA(Service Oriented Architecture — SOA), SOA是一个IT策略,它将企业应用中的分散功能编排成具有互操作性的标准服务,机构可以快速组合和重用这些服务,以满足业务需要。
从中,我们看到,不仅仅是 IT 的层面,业务的层面也涵盖在其中。这也许就是今天 SOA 能被大家普遍认可和接受,不仅技术人员在谈,业务人员也在其中津津乐道。
稍微展开些,什么是SOA?
SOA是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA的关键是“服务”的概念,W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化”。
Service-architecture.com将SOA定义为:“本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。”
Looselycoupled.com将SOA定义为:“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合关系。”
Gartner则将SOA描述为:“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。”
Gartner相信BPM和SOA的结合对所有类型的应用集成都大有助益??“SOA极大的得益于BPM技术和方法论,但是SOA面临的真正问题是确立正确的企业意识,即:强化战略化的SOA计划(针对供应和使用)并鼓励重用。”
虽然不同厂商或个人对SOA有着不同的理解,但是我们仍然可以从上述的定义中看到SOA的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。
IBM 在SOA方面有方法论、有规范、有技术、有产品、有最佳实践、有服务等等。
以上只是简单的内容,让我们能更多的交流大家各自的理解,让我们深入的了解和认识 SOA. |
|