第1章 面向服务的企业应用架构概要

SOA的“服务”是IT架构现在及未来的核心

也许你会发现,在不少SOA项目中,一般所指的架构设计,要么是架构总览层面,要么是设计文档层面,应用架构部分往往不充分,或欠缺系统化的架构产出件。这是导致SOA项目不了了之的主要原因。从实践中得知,重视企业应用架构的企业,SOA相对容易落实。面向服务的企业应用,其成功与否,就目前而言,与其具体所采用的技术并非密切关联,既使一个项目全部采用SOA产品,技术或Web服务标准,如果架构不当,其效果甚微或导致失败。

在从事SOA项目时,我们常会听到一些对现有架构或技术的疑惑。例如,SOA的主要架构原则与ERP有何不同?简单地说,ERP的核心思想是把企业的生产组织模式固定化。但当企业的管理水平达不到ERP核心思想所倡导的业务模式时,企业就变得水土不服、消化不良。比较而言,SOA架构的核心是把企业的业务模式看成是动态的,随时可以调整的,SOA的目标就是要解决这种动态灵活的需求性。

再如,面向服务的企业应用与中间件(Middleware)是何等关系?回答这个问题,我们可以使用汽车架构设计来作一个大致的比喻:中间件能较快地为客户创建和管理各种服务功能组件(零部件),但这种平台缺乏快速装配这些组件、形成最终产品的能力,相当于汽车的底盘和发动机,没有行业性限制。而面向服务的上层中间件(Upper Middleware)则提供构建各种功能车的组件、装配工具和装配方法,让用户可以在底盘上DIY(自己动手做)定制功能车,并且可以随时更换功能部件,从而满足随需应变的环境需求。

那么,为何要使用SOA服务呢?在企业应用架构中,我们有太多的专用术语,但使用者所关心的仅仅是服务而已,无论是业务服务或技术服务。同时,企业应用架构不能单靠实体概念(如组件)描绘清楚,所以服务好比是企业应用的通用语言,有了服务这一语言,受众之间的沟通交流才能变得顺畅。显然,SOA的现实意义并不局限于IT本身,它是提高企业适变能力的必然步骤。无论是使用中间件或是上层中间件,无论是云计算或是“宇”计算,服务始终是考虑的核心部分。

虽然安妮(Anne Thomas Manes)曾发博客文指出,SOA已死,引起业界轰动,但不可否认的是,她也同时表示,对于面向服务架构的需求会日趋强烈,SOA服务万岁。所谓的SOA已死,是指无谓的SOA技术辩论,例如,什么是最好的ESB(企业服务总线), WS-*与Rest何者为优,JAX-RS(JSR311)/微软. NET Web API/Restful Objects何为规范等。

本书主要侧重于面向服务的架构设计和架构方法的阐述,不对面向服务的实现技术加以详细描述,也不针对某些SOA产品技术。