SOA 帮助企业信息系统迁移到"leave-and-layer"架构之上,这意味着在不用对现有的企业系统做修改的前提下,系统可对外提供 Web 服务接口,这是因为它们已经被可以提供 Web 服务接口的应用层做了一层封装,所以在不用修改现有系统架构的情况下,SOA 可以将系统和应用迅速转换为服务。SOA 不仅覆盖来自于打包应用、定制应用和遗留系统中的信息,而且还覆盖来自于如安全、内容管理、搜索等 IT 架构中的功能和数据。因为基于 SOA 的应用能很容易地从这些基础服务架构中添加功能,所以基于SOA的应用能更快地应对市场变化,为使企业业务部门设计开发出新的功能应用。
与传统的企业应用集成架构的主要区别在于该系统使用基于标准的服务,并包括过程/数据服务、编排和组合。基于标准的服务成了应用间的集成点。服务的编排和组合增加了服务的灵活性、重用性和集成性。
下表强调了分布式组件架构和 SOA 的区别:
表1:分布式服务与面向服务的架构比较
分布式组件架构 |
面向服务的架构 |
面向功能性 |
面向流程 |
设计目的是为了维持现状 |
设计目的是为了适应变化 |
开发周期长 |
交互式和重用性开发 |
成本为中心 |
业务为中心 |
应用阻塞 |
服务协调 |
紧密耦合 |
敏捷的和可适应的 |
同构技术 |
异构技术 |
面向对象 |
面向消息 |
需深入了解实施细节 | 对实施细节进行概要抽象 |
与传统方法相比,SOA具有以下更多优势:基于标准、松散耦合、共享服务、粗粒度和联合控制。
提供者在服务约定中以标准语言描述其服务,并向代理发布服务。客户从服务代理处(或登记处)查询所需的服务,并接收有关服务访问的约定和信息。随后,客户或使用者便可绑定到服务,并可与提供者直接通信。
服务实现包含了服务的功能或业务逻辑。对于服务使用者来说,服务实现应该是一个"黑匣子";用户没必要知道服务的功能实现细节。 有五种类型的服务:
1. 数据访问-允许对不同数据源进行统一访问
2. 组件-提供对打包应用服务的访问,如ERP
3. 业务-提供使用一个以上打包应用或定制应用功能的复杂服务
4. 组合-使用以上三种类型的服务来创建包括新功能和现有功能的新服务
5. 共享的或企业基础架构服务?-?消息日志之类的低级服务,其重用性使快速创建新的高级服务成为可能
在SOA的架构下,不管是数据访问、组件访问还是业务访问,都是对于服务的访问,并可在此基础上组合和共享。企业就此有了标准的服务规范和接口,计算环境变得简单了。
BEA WebLogic,构建SOA的“服务仓库”
企业基础架构服务或共享服务为 SOA 增加了很大价值。共享服务由于自身的功能和位置特点,通常是在逻辑层实现的。这些特性由共享服务层实现,该层在逻辑上由几个服务层组成。
让我们再来看看部署及其后续工作:
部署
部署模型的选择需要依赖于网络架构,同时还取决于应用、运行和管理需要如何从逻辑和物理上进行分离。而以上这些通常是由企业的IT策略决定的。BEA提供了联合部署或独立部署的灵活性,因此可以选择任意的部署模型来支持IT策略。可以按层(表示、集成、流程和数据)分离应用,也可以从经营和管理来分离应用。这样可以实现最佳的控制和灵活性,但额外的硬件服务器和软件许可也确实增加了成本。采用WSM产品增加了需要在同一服务器中部署的组件数量,或增加了所需管理的服务器数量。
运行、经营和管理(OA&M)
但是,SOA将开发和OA&M分离开来,这显著减少了不同类型用户所使用的接口数量。采用基于策略的计算模式,绝大部分控制交由OA&M人员来操作。这意味着他们可以采用WSM产品的用户界面,而非WebLogic控制台。
这样在BEA的WebLogic框架之上,不断地构筑业务需要的各种标准服务,实实在在地形成一个“服务仓库”。按需服务,最终实现企业的商务自主!