规划SOA(1)了解SOA
SOA:一种新的思维方式
Albert Einstein曾说过,“如果我们面临的重大问题在思维认识水平与我们创建它们时处于同一水平上,我们不可能解决这些问题。”把这个概念应用到当今的企业计算领域,如果我们不改变关于IT的思维习惯,就不可能解决IT界所面临的提供成功商业解决方案的挑战。对于开发人员和企业架构师,SOA为这种变革提供一种结构。要考虑的问题是:我们如何迁移到这种新水平呢?我们如何为这种根本变革做准备呢?我们如何确保证以成本最低、企业创伤最少的方式实现这种变革呢?全部答案始于正确的规划。
SOA与其说是一种技术,不如说是一种的思维方式。它是一项大胆的基础架构变革议程,表达我们如何通过技术和协同工作来实现文化变迁。它的突然普及不是大规模宣传的结果,而是对SOA作为一种使业务和IT系统更密切结合的演化的认知。这种演化是震撼的,必将为企业的成功带来深远的影响。
SOA 是真正什么?
面向服务的架构是一种IT战略,它把包含在各种企业应用中的分散的功能组织为可互操作的、基于标准的服务,而这些服务可以再被迅速组合和重用以满足业务需求。
一个服务就是一个代码模块,它由可通过基于标准的接口访问的服务水平协议管理。每个服务表示一部分功能,它明确地映射到业务流程中的一个步骤。服务可以从头开始编写,或通过公开原有孤立的应用程序中现有系统功能模块挖掘出来。
经过一段时间后,可以建立起服务目录,允许跨许多不同系统流畅地访问和重用业务功能。这样,在支持战略变革的同时,SOA能消除数据冗余,避免信息重新录入和技巧层面的人为错误。例如,使用SOA能创建一个消费者的单一视图,在此过程中,开启了交叉销售和往上销售的新的可能性,因此提供更有吸引力的用户体验的服务。
新的基础架构范例
SOA的部分范例转移是一个从应用基础架构(Application Infrastructure)迁移到服务基础架构(Service Infrastructure)的过程。在SOA之前,各种应用程序用点对点的连接方式孤立地组织在一起。除了利用一个聚合的服务基础架构层(Service Infrastructure Layer)之外,SOA使用同样的后端应用引擎和中间件,如图1所示。
560)this.style.width=560; onmousewheel = javascript:return big(this) style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://images.51cto.com/files/uploadimg/20060331/1001300.gif">
图1. 服务基础架构层
实施SOA
按以下步骤开始实施SOA:
- 从战略上考虑,从战术上实施:首先,用简单的、跨越多个业务单元的不可知服务来实现单一的核心过程。
- 从上到下考虑:找出支持这个单一核心过程所需的服务。
- 从下到上考虑:找出现有系统中能作为服务公开以支持这个过程的功能。
- 考虑基础架构服务:找出公共的支持功能需求。
- 缓慢扩展:在最初的项目证明成功之后,可以同时承担技术上富有挑战性的项目。
- 建立一个应用目录:在逐个项目的基础上,经过一段时间后,获取和重用服务模块,降低成本。
- 关注受益:按投资回报率(ROI)分阶段实施项目,在每一阶段要巩固原有的水平。
使用BEA域模型有效地规划
为了保证成功,SOA以一种新的方式要求IT和业务协同工作。开始SOA规划时,需要在技术性和非技术性要素之间进行有效的平衡。为此BEA开发了一个域模型(如图2所示),帮助指导您规划必须同等重视的六个关键方面,以确保成功实施。
560)this.style.width=560; onmousewheel = javascript:return big(this) style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://images.51cto.com/files/uploadimg/20060331/1001301.gif">
图2. BEA域模型
最好从业务战略与过程、架构以及成本与受益三个方面开始规划。
业务战略与过程:把SOA映射到业务
SOA把IT功能映射到业务流程,使业务随着时间而改善。这个映射过程的最佳表达如下:
- 分析:研究业务流程,找出所需的支持功能。
- 开发:从现有的IT资产中获取功能,开发新的功能,确保所有服务都有清晰的服务水平协议。
- 利用:将服务编排进流程,让其与战略保持一致,识别最佳机会。
架构: 定义长期需求
为IT组织建立参考架构很重要。这种参考架构不是当前的状态图,而是一个长远视图,合并了未来2到3年架构上的发展需要。花些时间来定义架构的指导原则和策略,但要避免使这些指导原则走入死胡同。优先考虑SOA系统的灵活性和模块化。
成本和受益:直接证明业务价值
SOA反对四处出击,重要的是按成本受益顺序确定服务开发的优先级,这样SOA从一开始就显示出ROI。通过仔细的规划,启动成本要限制在现有预算内。经过一段时间后,服务模块的重用会确保以后每个新业务应用程序的启动成本很低。在实施开始时设置好基线,确保可测量性,避免临时修路的效果。
使用SOA成熟度模型
BEA的SOA成熟度矩阵(如图3所示)帮助监视SOA效果,这样您可以检查不同开发阶段的进度。这个矩阵被划分成三个阶段:探索(Exploring)、扩展(Expanding)和开拓(Exploiting)。可以使用像BEA Online Self-Assessment Tool这样的工具来评估架构的成熟度。
560)this.style.width=560; onmousewheel = javascript:return big(this) style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://images.51cto.com/files/uploadimg/20060331/1001302.gif">
图3:BEA的SOA成熟度矩阵
如图所示,采纳通常不是一种要么全有要么全无的方法。典型的采纳是一种分阶段的方法,这就是为什么在本文里其他题目(比如定义长期的架构和发现直接的业务价值)是很重要的。
结束语 本文的目的是为您提供成功组织SOA规划的指导方针,我们相信,采用这个方法能使您最平稳地实施SOA,使您的企业发展和业务敏捷性达到一个新的高度。
(责任编辑:铭铭)- · Informix动态服务器onstat选项
- · Informix SQL 的使用技巧
- · 在UNIX下的Informix-online中合理地组织表
- · 开发优质高效的Informix数据库应用程序(1)
- · Informix数据备份技巧
- · Informix 4GL写的转换成大写金额字串的函数
- · 一个批量删除临时表的sh用于informix
- · 影响CPU使用率的配置参数和环境变量
- · Ontape -r 恢复总结(1)
- · 用shell实现Informix的性能监控
- · Windows xp下的Informix connect配置方法
- · OnLine非正常结束后处理办法
- · OnLine进程被挂起后处理办法
- · Informix动态服务器表分片策略的计划和调整
- · 备份Informix-Online数据库三法
- · datetime类型简介
- · 配置Informix动态服务器中CPU虚处理器
- · online的备份详解
- · 配置和实现Informix ON-Bar的备份解决方案
- · Informix sysmaster表详解
- · JDBC连接Informix IDS
- · Sybase数据库死锁对策
- · SYBASE ASA数据库恢复方法
- · Sybase数据库简介(1)
- · SYBASE零售行业解决方案
- · SYBASE数据库日志详解
- · SQL Server 的通用分页显示存储过程
- · Oracle数据库中索引的维护(1)
- · Oracle9i的索引监视及注意事项
- · Oracle 的位图索引简述
- · 在ORACLE里按用户名重建索引的方法
- · Oracle数据库强制索引
- · 改善Oracle的索引
- · Oracle管理查询管用的sql语句
- · Oracle中的模糊查询
- · Oracle 中使用层次查询方便处理财务报表
- · 使用Oracle的Instr()与decode()函数进行多条件组合查询
- · MS SQL Server查询优化方法
- · Access使用查询
- · Access的跨库查询
- · Access 创建索引
- · 为数据库建立索引
- · 优化Microsoft Access提高速度
- · Sybase数据库的性能优化
- · 查询优化
- · 提高ORACLE数据库的查询统计速度
- · ORACLE SQL性能优化 (上)(1)
- · ORACLE SQL性能优化 (下)(1)
- · SQL Server性能分析参数
- · SQL Server 性能优化工具(1)
- · 使用索引调节向导调整应用程序的性能
- · 优化SQL Server服务器内存配置的策略
- · 影响SQL server性能的关键三个方面
- · MySQL性能优化的参数简介
- · MYSQL数据库的查询优化技术
- · 确定Oracle数据库表中重复的记录
- · Access数据库与SQLserver2000的数据互导
- · SQLServer和Access、Excel数据传输简单总结
- · SQL Server到Oracle连接服务器的实现
- · 使用SQL Server数据转换服务升迁Access数据库(1)
- · 将Access移植到SQL Server
- · 联系使用Excel和SQL(1)
- · 避免Access和SQL Server的空值冲突
- · 保护SQL Server:为安全性而安装
- · SQL Server 2000 客户端实用程序
- · 执行一个安全的SQL Server安装
- · SQL Server安全-加密术和SQL注入攻击
- · 指定文件位置优化性能
- · SQL Server备份的三个恢复模型
- · SQL Server的空值处理策略
- · 两个SQL Server维护技巧
- · 用SQL Server保持会话状态
- · 使用SQL服务器内置的错误寻找器寻找和剖析错误
- · 安装SQL Server 2000
- · SQL Server 2000 与 SQL Server 7.0 版兼容性问题
- · MS SQL Server 7.0 性能优化指南
- · MS SQL Server 7.0 的 SAP R/3 性能优化指南
- · 基于WEB的数据库查询
- · Sql Server全文搜索中文出错的问题
- · SQL Server7移动数据的6种方法

