从上图可以看出,参考模型位于抽象级别的顶部,也就是说参考模型提供了SOA实现的抽象基础。每个SOA架构设计者都要考虑参考架构、模式、模型以及由参考架构派生出的概念架构,审慎思考实际环境(需求、动机和目标等)对实现架构的影响,同时利用已有的标准和协议,这样就形成了一个比较完整的SOA设计方法论。总而言之,SOA参考模型使得我们能够系统地考虑SOA架构的实现,并给出最基本的概念和设计模式。
下面介绍一下SOA的背景信息:
面向服务的体系结构(Service-Oriented Architecture,SOA,也叫面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
从计算模型上讲,软件服务是SOC/SOA的基本实体,较对象、构件又有了新的发展,具有较高的抽象级别、更大的粒度与更强的独立性与可用 性,更加便于使用者直接使用。在此基础上,基于软件服务的SOC/SOA借助了开放的社会系统中较为成熟的基于服务的松耦合运营模式的理念,以服务为基本 单元封装各类网络资源,以服务集成为基本手段提供开放环境下的资源共享与集成的高层次抽象模型,以服务交互和协同为基本支撑,提供松耦合的计算模型。
传统的Web(HTML/HTTP)技术有效的解决了人与信息系统的交互和沟通问题,极大的促进了B2C模式的发展。WEB服务(XML/SOAP/WSDL)技术则是要有效的解决信息系统之间的交互和沟通问题,促进B2B/EAI/CB2C的发展。SOA则是采用面向服务的商业建模技术和WEB服务技术,实现系统之间的松耦合,实现系统之间的整合与协同。WEB服务和SOA的本质思路在于使得信息系统个体在能够沟通的基础上形成协同工作。
对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(Business Logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员 或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用.NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。