第六种武器: 离别钩——面向服务(SO)法
Wiki百科是这样解释SOA(Service-Oriented Architecture,面向服务架构)的:“因特网环境下企业业务集成的需要,通过连接能够完成特定任务的、独立功能的一种软件系统架构。”
据Garnter预计,到2008年大多数的企业将使用面向服务的方法和架构来规划部署新的企业系统。
SOA乍一看是件新事物,根据认识论我们会问自己What、Why、How的问题。
SOA是什么?
SOA是一种组件模型,它将应用程序的不同功能单元化。我们看到,传统的WEB/Http技术完成了人与信息沟通的使命,它是一种B2C的应用,而SOA基于XML/SOAP/WSDL的面向服务体系,则能够使信息系统之间交互和沟通, 导致了B2B/EAI/CB2C的服务网络应用。系统间呈现松耦合、整合和协同度高的特点。本质上处于SOA环境的系统个体能在沟通基础上形成协同工作,很好地实现协同商务。
SOA有什么好处?
服务驱动方法能使企业体验到业务和IT上的好处,如下:
- 业务方面
效率: 业务流从传统“蜂窝式”重复的流程向高度利用共享服务应用转变。
响应:迅速适应和传递关键业务服务来满足市场需求为客户、雇员和合作伙伴带来更高水准的服务。
适应性: 降低了业务的复杂度,从而节约时间和资金。
- IT方面:复杂性减低,容易管理; 服务的可重用性增强使项目交付更及时;能有效集成现有系统。
目前商业企业信息化存在的问题,大多是封闭运行状态导致企业间上游供应商和下游客户信息不对称,无法协同和更好地满足消费者的协同需求和企业间商务协同与智能化的需求。同时,IT信息化标准不健全,包括电子交换接口标准、业务流程单据标准、票据格式标准等等。
SOA的出现能够有效地解决传统技术带来的系统封闭厂商依赖度强、耦合度高、扩展性差的问题,因为基于开放标准HTTP/SOAP/WSDL技术更容易扩展组合和变更,符合业务发展变化快的特点。
如何用SOA的方法建立系统?
SOA的构建遵循如下步骤:建模、组装、部署、管理、控制。
建立基于SOA的系统要注意三个原则:
- 业务驱动服务,服务驱动技术。
从抽象层次看,服务是业务和技术的中间层。 - 业务敏捷是基本的业务需求。
提供响应变化需求的能力是新的“元需求”。 - 应变而变的SOA。
IBM是随需而变,招商银行是因您而变, SOA是为变化而生,,到底为谁而变?SOA作为一种服务是因客户变而变。
SOA依照协议进行访问,客户只需要服务却不需要知道服务在哪里,客户只要知道完成了,不需要知道你做了什么。
从技术层面上讲, 面向服务的实现是在于寻址、自举和通信协议三大机制的基础之上的。服务的寻址问题解决了服务如何才能被客户访问到的问题;服务的自举则是种机制,解决了新的服务如何被客户了解,如自己的功能参数和返回结果;通信协议则解决了异质网络间客户和服务的通信问题。
解决了此三个问题, 就可以构建一个分布式的、低耦合的、动态可扩充和发展规律的面向服务的基础架构,面前典型代表就是基于UDDI和SOAP的Web Service。