文章目录
1. 构建 SOA架构时应该注意的问题
1.1 原有系统架构中的集成需求
- 需要考虑的具体集成类型:
应用程序
集成的需求- 终端用户
界面
集成的需求 流程
集成的需求- 已有系统
信息
集成的需求
1.2 服务粒度的控制
- 暴露在系统外部的服务
- 建议使用
粗粒度
的服务接口(非强制)
- 建议使用
- 企业架构内部
- 细粒度的服务接口
如:
- 粗粒度的服务暴露给外部用户,提交购买表单的操作
- 系统内部细粒度的服务,实现其后的内部服务(建购买记录、设置客户地址和更新数据库等)
- 外部服务使用粗粒度服务接口的原因:
- 细粒度服务接口易于变化
- 粗粒度服务接口保证请求者以一致的方式使用系统暴露出的服务
1.3 无状态服务的设计
- SOA的服务不应依赖于其他服务
- 必须依赖其他服务时,将其定义成业务流程
如:
- EJB组件来实现粗粒度的服务
- 利用无状态 Session Bean来实现具体的服务(Web Service中可将其暴露给用户)
2. SOA实施的过程
2.1 选择SOA解决方案
- 尽量选择能进行全局规划的方案
- 选择时充分考虑企业自身的需求
- 技术方面
- 应该从平台的选择
- 实施方法与途径
- 业务战略和流程
- 基础架构
- 构建模块
- 项目和应用
- 成本和效益
- 规划和管理
- 供应商:
- 产品是否符合要求、成功案例、客户评价
- 专业服务能力
2.2 业务流程分析
2.2.1 建立服务模型
1)自顶向下分解法
- 分解方法
- 从业务着手进行分析
- 逐层分解至业务活动
- 对业务活动和业务对象变化进行分析
- 业务领域分解的两个输入
- 业务组件模型
- 端到端的业务流程
- 业务组件模型
- 作用:是业务咨询和转型的工具
- 根据业务职责、职责间的关系等因素
- 将业务细分为业务领域、业务执行层次和业务组件
- 作用:是业务咨询和转型的工具
- 端到端的业务流程
- 作用:将业务流程分解成子流程或业务活动
逐级进行,直到每个业务活动都是具备业务含义的最小单元
- 作用:将业务流程分解成子流程或业务活动
2)业务目标分析法
- 目标服务树
- 从企业的业务目标出发
- 目标分解为子目标
- 子目标再分派给相关的服务来实现
- 首先,必须分析企业
关键性能指标
3)自底向上分析法
- 概述
- 利用已有资产来实现服务
- 也称为“遗留资产分析”
- 来源:原有系统的分析和设计文档
- 结果:可重用的服务列表
- 过程:
- 建立已有系统的功能模块目录列表
- 发现可重用模块(包括已重用模块、重复实现的功能模块)
- 包装并发布这些模块
2.2.2 建立业务流程
1)建立业务对象
- 概念:
- 是对数据进行检索和处理的组件
- 通常位于中间层或者业务逻辑层
- 分类
- 实体业务对象
- 表达:一个人、地点、事物(如,客户、订单、物品)
- 根据业务中的名词,从业务域中提取
- 过程业务对象
- 依赖于实体业务对象
- 是业务的动词
- 事件业务对象
- 表达:应用程序中由于系统操作产生的事件
- 实体业务对象
2)建立服务接口
- 建议:无状态接口
- 传入操作的请求消息,应该包含完成该操作的所有必要信息
3)建立业务流程
- 业务流程
- Business Process
- 是指定的活动顺序
- 包含确定的用于提供业务值的输入和输出
- 流程建模注意点
- 确保捕获的相关信息的一致性及完整性
- 捕获信息包括:正常操作、异常操作