介绍
基于组件的体系结构/基于组件的开发是 RUP
采用的一种做法,因为组件是一种有效的方法可将复杂的系统分成多个可管理的部分,并且组件能够重复利用。面向服务的体系结构(SOA)是基于组件的体系结构的一种专业化形式,它基于已发布和可动态发现的服务的使用。
什么是 SOA?
服务是一个定义了一组接口的逻辑组件,它并不分配给某个定义的用户,而是分配给可以共享该服务的多个客户端。服务提供者是一个用于实施服务接口的组件。服务和服务提供者是通过称为服务代理程序的存储库发布和访问的。其他组件(用户应用程序或其他服务)可以通过服务代理程序发现和访问这些服务,它们遵循下图所示的原则。

图 1 - SOA 原则及其主要操作
通过服务提供者将服务接口与它们的实施分开,使得同一服务可以有多个提供者,并且可以对提供者进行动态添加或替换,而不会对服务请求者产生影响。服务请求者可以动态地发现服务以及这些服务所需的相关服务提供者。发布/发现原则使 SOA
成为一个比传统的体系结构更为灵活和耦合更松散的体系结构。这种体系结构在对多个不同的系统(例如含有套装应用程序以及 J2EE 或 .NET 应用程序的旧系统)进行集成或组合时特别有用。有关这种集成的更多信息,请参阅概念:企业应用程序集成和应用程序接口级别集成。
服务特性
以下是服务的主要特性:
-
粗放和面向业务:因为始终存在由于网络通信而造成的一些延迟,所以服务必须隐藏应用程序逻辑的实体,这是为了在一次调用中给予消费者实在的业务价值。
-
基于接口的设计:一个服务实施一组定义的接口。
-
调用和可发现:其他系统可以发现和调用服务及其提供者。
-
分布式:组成应用程序的服务可分布到一个机构内不同的系统中,甚至可以分布到多个机构中。
-
松散耦合:服务之间通过松散耦合的接口连接,这样在修改某个接口时就无需断开其他服务。
SOA 和 Web 服务
迄今为止讨论的所有问题都可以用不同的技术实现,例如 CORBA 和 .Net 技术。那么为什么 Web 服务与面向服务的体系结构密切相关呢?
Web 服务基于因特网标准,例如使用 XML(可扩展标记语言)对数据进行格式化、使用 SOAP(简单对象访问协议)进行通信而使用 WSDL(Web 服务描述语言)和
UDDI(统一描述、发现和集成)发布描述。通过使用这些被广泛接受的标准,在不同的供应商解决方案之间提供了更广阔的互操作性,降低了实施 SOA 的难度和费用。
有关如何使用 Web 服务和基于组件的开发来实施 SOA 的更详细讨论,请参阅白皮书:Using Service-Oriented Architecture and Component-Based Development to Build Web
Service Applications。
|