SOA (service-oriented architecture),面向服务的架构,恐怕是近一段时间以来最热门的话题之一。在2004年中国软件业评出的10大热点名词中,SOA名列榜首。ZapThink调研公司在最近发表的一份报告中也预测,到2006年,基于SOA架构的中间件产品将成为网络化商业系统的主要设计思路。Gartner集团的分析师也指出,今年,SOA架构下的中间件产品将进入主流应用之中。Gartner 还预言:“到了 2008 年,至少 60% 的企业将使用 SOA 作为创建任务苛刻的应用程序和过程的‘指导原则’”。
SO 是对 OO的补充, SO是为服务的整合而生, SO 把互联作为首要的目标, 提供平台无关互操作能力, 提供更多的互联:同步,异步,one-way, two-way, request-response, queued, streamed communication, SO是松耦合而OO是紧耦合, 基于OO的系统往往通过类库之间的依赖耦合, 基于SO的系统通过Message互相关联
本书的主要例子是采用的具有中国特色的房屋贷款的例子,即根据客户房屋数量的不同,银行将会采用不同的首付比率和贷款利率。例子的详细说明参见本书第6章“6.2.1 房屋贷款案例介绍”。同一个例子将会贯穿本书的各种SOA实现技术,使读者能够专注于具体技术的学习。
对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(businesslogic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用。NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。