soa2 apac architectday casestudy&bestpractices.ppt [只读] · 3...
TRANSCRIPT
<Insert Picture Here>
SOA实施的最佳实践和案例分析
© 2008 Oracle Corporation – Proprietary and Confidential 2
<Insert Picture Here>
内容
• SOA实践经验
• 案例介绍:江苏省电力公司企业级SOA架构
© 2008 Oracle Corporation – Proprietary and Confidential 3
为什么要选择SOA
• 客户为什么选择SOA?• Google ‘SOA Benefits’
• 投资回报率
• 灵活架构
• ……
• 现实中,我遇到的客户:• 客户的IT部门今年申请了一大笔预算,想要搞个新技术,SOA是新技术,听说不错,就用它了。
• 客户在ERP和SOA中摇摆不定,ERP风险大,成本高,SOA成本相对低,但是没有人做过,风险也大,还是找个成本低的吧。
© 2008 Oracle Corporation – Proprietary and Confidential 4
为什么要选择SOA
• 现实中(续)• 某部门在选取SOA后,取得了巨大成功,这时兄弟部门就有压力了,“不如我们也用SOA吧,有成功案例可以取取经”。
• 客户要做一个系统,有笔钱,但他什么都不懂,找来厂商A,B,C,“我这里有这么一个活,你们说说,该怎么做?”A,B,C全部说,“用SOA吧。”于是,从此走上了SOA的道路。
© 2008 Oracle Corporation – Proprietary and Confidential 5
SOA是否适合你?
• 在决定采用SOA之前,必须进行详细的调研,明确SOA是否适合你?• 明确企业现有IT的现状(架构、系统、模块)
• 明确企业将来IT的目标(架构、系统、模块)
• 明确从现状到目标的过渡中,SOA起什么作用?启动SOA的条件是否成熟?
• 制定详细的实施计划
• SOA的弱点
• 松耦合的性能上没有紧耦合的好
• Web Services的安全和事务标准都不成熟
• SOA的初期投入耗费巨大
• SOA本身仍在不断发展中,没有被业界普遍接收的方法论
• SOA项目的一个特点,项目和项目的差异性比较大,很多时候经验不能套用
© 2008 Oracle Corporation – Proprietary and Confidential 6
SOA管理委员会和SOA项目的范围
• SOA项目一般都会成立一个管理委员会(SOA committee),对SOA项目进行管理。
• SOA项目在启动之前,必须明确项目的范围(工作内
容)。
• 理论来说,两者没有必然的关系。
• 从现有的经验来看,两者是有联系的。
© 2008 Oracle Corporation – Proprietary and Confidential 7
SOA的角色
• SOA需要把紧耦合的系统打散了,做成松耦合的服
务,为了达到这个目的,需要对企业中的各种各样的系统都进行改造,使之服务化。
• 在系统改造的过程中,会遇到各种角色,比如各个系统的开发商,企业的业务部门,下级部门的人员,项目开发商,项目监理方等等。
© 2008 Oracle Corporation – Proprietary and Confidential 8
SOA项目的角色
IT部门
业务部门A 业务部门C
SOA委员会
业务部门B
IT部门
业务部门A 业务部门C
业务部门B IT部门
业务部门A 业务部门C
业务部门B
省公司
地市A 地市B
开发商A 开发商B
开发商C
开发商A1
开发商B1
开发商C
开发商A
开发商B1
开发商C1
© 2008 Oracle Corporation – Proprietary and Confidential 9
SOA的角色
• 有些时候,某些角色会起到不良的阻碍作用。• 开发商
• 开发商一般会有自己的产品,比如一套营销系统,他可以卖给江苏省的客户,也可以卖给北京上海的客户,这样的成本是很低的。而SOA需要他对他的产品进行改造,进行定制,对于他来说,成本会提高。有的开发商就会不愿意对他的系统做改动,能不改就不改。
• 业务部门
• 业务部门对SOA的不重视,也会导致SOA项目不能顺利开展。
• 开发人员
• 服务需求多变,会导致开发人员频繁修改代码,从而导致抵触心理。
• ……
© 2008 Oracle Corporation – Proprietary and Confidential 10
SOA管理委员会
• SOA管理委员会最好具备下列能力:
• 有企业高层领导的授权,能协调其他部门,尤其是平级的部门或者更高级的部门。
• 对开发商有强的掌控能力。
• 有很强的协调能力,帮助SOA项目小组解决遇到难题,获取相关的资源。
• SOA管理委员会的成员最好包括
• 企业的高层领导
• 各业务部门的负责人
• IT部门负责人
• 开发商的高层领导
• 监理方的高层领导
• SOA管理委员会的重要职责之一就是协调其它部门,开发商,各种资源来完成SOA项目的推进。
© 2008 Oracle Corporation – Proprietary and Confidential 11
SOA项目的范围
• 尽量保证SOA项目涉及到的系统、角色都是能被SOA管理委员会管控的。
• SOA管理委员会的管控力度越小,项目风险越大。
© 2008 Oracle Corporation – Proprietary and Confidential 12
SOA实施不理想的原因技术还是管控?
需求分析 开发 测试 集成测试
Risk of SOA Project Failures
管控风险
技术风险
较少风险
更多
风险
时间
© 2008 Oracle Corporation – Proprietary and Confidential 13
SOA和业务流程
• 理论上,SOA的流程是很容易实现,
• 业务逻辑都在服务中实现
• 流程起到的是编排的作用
• 现实生活中• 对于流程的开发,一个项目用了两个人一个月就完成了,另一个项目却用了两个人四个月。两者的流程开发量都是差不多的。
• 差异的原因• 第二个项目的需求不断变化
© 2008 Oracle Corporation – Proprietary and Confidential 14
SOA和业务流程
OA系统
生产系统
项目管理系统
物资系统
财务系统
客户管理系统门户系统
企业级
业务流程
SOA流程的业务需求确定,需要多个部门的人员配合 。
© 2008 Oracle Corporation – Proprietary and Confidential 15
SOA和业务流程
• 第一个项目用户的做法• 项目启动后,客户立刻从所有业务部门都抽调了人员,组成了一个流程小组,这个小组的人被封闭了两个月,专门梳理企业级业务流程的需求,形成了文档,每个参与人员必须对这份文档进行确认。如果发现业务需求与实际不符,需要追究责任人。
• 第二个项目用户的做法• 项目启动后,客户也成立了流程小组,但是流程小组的成员是开发商,经过了一个月,也形成了文档,没有业务部门的确认。
© 2008 Oracle Corporation – Proprietary and Confidential 16
SOA和业务流程
• 建议• 如果要开发企业级流程,流程的业务调研和业务需求确认的
工作必须尽快开始,越快越好。
• 流程的业务需求文档在服务分析之前必须完成。
• 流程的业务调研和业务需求确定必须有业务人员参与。
• 不建议分别找业务人员确认需求,最好把他们集中起来讨论。
• 流程需求必须经过业务人员确认,必须形成详细的文档,描述清楚系统之间的数据交换,流程的出错处理等等。
© 2008 Oracle Corporation – Proprietary and Confidential 17
不要忽视对开发人员的培训
• 在开发之前,最好了解开发人员的技术水平• 是否了解Web Services,使用过常见的Web Services框架
• 是否了解XML,JEE,.Net• 是否了解业务
• 原因• 开发人员大多来自各个开发商,能力参差不齐。
• 开发商未必会把最好的技术人员配给SOA项目。
• SOA的服务有依赖关系,比如流程,某个开发人员的进度缓慢
会影响其他参与方的人员的测试工作。
© 2008 Oracle Corporation – Proprietary and Confidential 18
正确的评估工作量
• SOA需要原来的系统进行改造,暴露出服务给别的系
统调用。但是,在评估工作量的时候,系统改造就仅仅是写几个Web Services吗?
© 2008 Oracle Corporation – Proprietary and Confidential 19
正确的评估工作量
• 场景• OA系统发送一个审批通过的消息给项目管理系统,然后项目管理系统才能开始进入招标流程。
• 工作量• 接收审批结果服务
• 该服务判断审批是否通过,如果通过,启动招标流程。
• 屏蔽项目管理系统原有的直接启动招标流程的功能。
© 2008 Oracle Corporation – Proprietary and Confidential 20
正确的评估工作量
• 在评估改造的工作量的时候,一定要全面的审视系统的变化。以下两种情况,一般都会导致处理逻辑连串的变化。• 原来不需要和其它系统交互的,现在需要调用别的系统的服务。
• 需要提供一个服务给别的系统调用,根据传入的不同数据做不同的业务逻辑。
© 2008 Oracle Corporation – Proprietary and Confidential 21
1 选择一个起点
2 制定一个两到三年的愿景
3 依据实施路线图搭建SOA架构,制定服务工程方法论,逐步进行项目实施
4 兼顾多个维度
Bus
ines
s Sp
onso
rshi
p
High
Low
Low HighSOA Complexity
ProcessProjects
IT-LedProjects
Business-Led
ProjectsMega
Projects
实施 SOA 的明智做法
© 2008 Oracle Corporation – Proprietary and Confidential 22
选择合适的实施起点与范围
基于服务的集成
对重用的期望比较低
无状态、跨度不长的流程
单个业务域的项目
对性能要求不高
部门级 SOA
服务使用方比较少
复合的流程应用
重视重用
有状态、人工交互为主的流程
跨多个业务域的项目
高吞吐量和可扩展性
企业级SOA
较多的服务使用方
© 2008 Oracle Corporation – Proprietary and Confidential 23
时间
部门 2
LOB 2
部门 1 部门 n
SOA 架构小组,管控小组
SOA 管理
委员会
参考架构、实施图线图
业务视图
Conceptual
服务视图
Logical
技术视图
Technical
部署视图Physical
应用 31 2 3
应用 1
功能模块
私有服务
共享服务
应用 24
5
应用 46321 5
规范
、模
板逐步进行项目实施
© 2008 Oracle Corporation – Proprietary and Confidential 24
SOA规划与实施路线图
24 周 6 周 10 周 11周 5 周 9 周 12周 2 周 3 周 4 周 7 周 8周 1
正在进行的项目向参考架构和服务工程规范迁移
管理层的赞助和企业架构的领导
设计
实施SOA基础设施
现状评估
路线图参考架构规划未来愿景
未来愿景
路线图
现状评估
管控规划
参考架构和管控是服务工程的一个重要输入
SOA基础设施规
划基于参考架构实施路线图制定
分析
实现
管理服务工程规划
规划的成果分发给各个项目
技术评估
制定技术培训需求与计划
© 2008 Oracle Corporation – Proprietary and Confidential 25
<Insert Picture Here>
Presentation Agenda
• SOA实践经验
• 案例介绍:江苏省电力公司企业级SOA架构
© 2008 Oracle Corporation – Proprietary and Confidential 26
江苏电力信息化现状与需求• 客户介绍
• 江苏省电力公司是国家特大型企业,下辖13个地市供电公司、63个县供
电公司。江苏电力信息化建设起步较早,具有相当规模,其信息系统覆盖了公司的日常业务管理和社会服务功能,在支撑岗位工作方面达到了较高的实用化水平。
• 问题与需求
• 虽然电力企业的业务相对固定,但电力企业的企业管理、业务发展和市场需求随着市场化的发展不断变化,同时由于大型电力企业内部具有众多的业务部门,组织结构又是省地市甚至于到县乡分布式的,部门间的信息互通和协同工作的需求越来越高,因此对企业信息化建设提出了极高的要求。
• 江苏电力在不同的时期分别构建了几十个不同类型的业务系统,系统间关联度低,最后形成了一个个“信息孤岛”,限制了业务之间的横向沟
通,割裂了业务之间的联系,信息的共享度和利用率比较低,一方面造成了业务运营缺乏灵活性,很多新的业务也开展不起来,另一方面导致了对企业生产、经营、管理、决策等方面的支撑不足。
• 打破信息孤岛成为江苏电力信息化建设最为急迫的课题。
© 2008 Oracle Corporation – Proprietary and Confidential 27
• 江苏电力在多年的企业信息化建设中,认识到如果没有统一的规划,而仅仅为了集成需求而集成,即每当应用之间有集成需要了,就将这两个应用打通从而建立连接进行集成,必然会导致企业内部的信息流呈现一种网状,难于进行管理和跟踪。
• 企业信息化建设应该从多个应用解决方案过渡到企业级整体信息架构和应用阶段。江苏电力决定采用SOA理念搭建企业级的SOA信息平台。
规划建设企业级SOA架构
© 2008 Oracle Corporation – Proprietary and Confidential 28
江苏电力SOA实施策略
• 依据SOA方法,统一目标远景,对IT建设进行整体规划,制定SOA架构蓝图和分阶段实施路线图,逐步进
行以下工作:• 搭建SOA基础架构
• 制定SOA相关服务/流程分析、设计、开发、测试等规范
• 梳理与分析跨部门需求,定义企业级流程、服务和数据
• 逐步进行SOA应用开发。
• 各项工作以迭代递增的方式进行,彼此促进与验证,确保江苏电力SOA实施的成功。
3 月6 月
12 月
路线图架构蓝图
© 2008 Oracle Corporation – Proprietary and Confidential 29
江苏电力SOA实施路线
29 2008 200920072006
SOA Workshop
SOA规划
投资回报分析 PoC
架构实现 – 1期架构扩展 – 2期
SOA基础架构实现
SOA现状评估
实施路线图
参考架构规划
架构优化 – 3期
SOA领导小组
分析规范
实现规范管理SOA规范
MIS 系统 销售,财务,生产系统等
企业级业务流程实现
SOA项目
服务管理规划
流程需求分析
制定业务目标和范围
流程、服务、数据定义
SOA集成
© 2008 Oracle Corporation – Proprietary and Confidential 30
ESB服务总线
ESB服务总线
地市
省公司
地市
OA 门户
Data
共享服务
101011
Bus Pres
私有
服务目录
公有
服务目录
Service Metrics
流程门户 业务门户 监控门户 管理门户
CA AD
安全框架
Audit
安全服务
Enc DSig
ATN AZNCredMap
BPM
服务库
Data
共享服务
101011
Bus Pres
公有
服务目录
私有
服务目录
BPM
OA 门户 监控门户
服务库
安全框架
Audit
安全服务
Enc DSig
ATN AZNCredMap
AD
ESB服务总线
Data
共享服务
101011
Bus Pres
公有
服务目录
私有
服务目录
BPM
OA 门户 监控门户
服务库
安全框架
Audit
安全服务
Enc DSig
ATN AZNCredMap
AD
Service Metrics
Service Metrics
业务模块
业务模块
业务模块
江苏电力SOA参考架构
© 2008 Oracle Corporation – Proprietary and Confidential 31
ESB服务总线 服务目录Sales
DW
Trading
BI
DMIS
Call Centre
Project
HR
OA/DominoFinance
Asset Planning
GIS
PMS
DMISESB服务总线 ESB服务总线
地市
省公司
地市
OA 门户
Portlets
OA 门户
Portlets
OA 门户
Portlets
OA/Domino
Sales
Call Centre
Inte
grat
ion
Laye
r
GIS
PMS
DMIS
OA/Domino
Sales
Call Centre
Inte
grat
ion
Laye
r
CA AD
ADAD
BPM
BPM BPM
依据路线图分阶段实施:一期SOA架构
© 2008 Oracle Corporation – Proprietary and Confidential 32
梳理与分析业务流程和服务跨部门需求分析
目标模块总览
4招投标管理
15审计管理
3物资管理
1计划统计
7供电生产
地理信息系统
生产MIS
8调度生产
DMIS
DMS
16安全监察
综合管理
10营销管理
营销管理
14电能量管理
13协同办公
12人力资源管理
11档案管理
9配电生产
6财务管理
5合同管理
2项目管理
03. 02物资采购
02. 01 前期管理
02. 02初设管理
02. 03施工管理
02. 04竣工管理
03. 03物资配送
03. 01物资计划
03. 04物资结算
01. 01 综合计划
08. 02配网自动化
06. 04资金管理
08. 04 配网调度管理
06. 02业务管理
08. 03 配网在线监视
05. 01合同签定
08. 01EMS/DTS
06. 03工程管理
06. 01预算管理
14. 01数据分析
11. 04系统设置
10. 03银行代收
13. 02办公业务
10. 02电费管理
10. 01业务管理
12. 04保险管理
10. 04用检管理
16. 04现场监察
13. 03工作交流
11. 01档案管理
14. 03电量平衡
15. 02综合管理
09. 01设备管理
15. 03项目审计
09. 02 运行维护管理
11. 02档案网站
15. 04业务管理
13. 01我的办公桌
16. 03设备监察
15. 01计划管理
12. 02招聘与配置
11. 03档案利用
12. 01 劳动组织管理
12. 03薪酬管理
13. 04信息资源
16. 02事故信息
14. 04基础数据
14. 02电量统计
16. 01安全指标
02. 05费用管理
02. 08安全管理
02. 06 达标创优管理
02. 07质量管理
03. 06物资编码
03. 05物资仓储
03. 09供应商管理
06. 05资产管理
06. 06合同管理
06. 08帐务管理
06. 07往来管理
06. 10财务分析
06. 09报表管理
06. 11系统维护
08. 05 配网图资管理
08. 06调度管理
10. 05 VIP客户管理
10. 08系统管理
10. 07计量管理
10. 06业务稽查
10. 09 电力负荷管理
10. 11需求侧管理
10. 10 95598客户服务
11. 05个人专区
12. 06绩效管理
12. 08应用服务
12. 07 专项事务管理
12. 05培训管理
12. 09系统管理
13. 05公共服务
14. 05运行参数
14. 06事件日志
15. 06技术支持
15. 05档案管理
15. 07辅助系统
16. 06安全要求
16. 05安全检查
15. 08综合查询
01. 02投资计划
01. 03 生产经营计划
01. 04投资统计
03. 10系统维护
05. 02合同纠纷
09. 05系统维护
16. 08 专项监督
16. 07 安全组织
16. 09教育培训
16. 10 系统维护
08. 07 运方管理
08. 08保护管理
08. 12 保护故障信息
08. 10通信管理
08. 14电力市场
08. 09 自动化管理
08. 13 电网动态监测
08. 11 综合管理
02. 09 进度管理
02. 10投资管理
01. 06 统计直报
01. 07 报表管理
01. 05 生产统计
01. 08 数据查询分析
01. 09 系统维护
14. 10用户自定义
14. 09系统管理
14. 07系统生成
14. 08日常维护
09. 04报表统计
09. 03 配电工程管理
07. 05标准化作业指导
07. 09综合查询
07. 11输电 GIS
07. 02绝缘监督
07. 08报表统计
07. 03输电管理
07. 06设备评价
07. 04状态检修
07. 07班组管理
07. 10系统维护
07. 14系统维护
07. 01变电管理
07. 13污区图管理
07. 12雷电定位
02. 11质量监督
02. 12 基本信息及报表
05. 03合同监控
05. 04变更解除
05. 05合同考核
05. 06报表管理
05. 07基础信息管理
14. 11线损管理
04. 04报表管理
04. 02物资招投标
04. 01 工程招投标
04. 03 招投标网站
04. 05 系统管理
© 2008 Oracle Corporation – Proprietary and Confidential 33
分阶段实施选择首期实现的三条业务主线
• 项目全过程管理主线
• 综合计划
• 财务管理
• 项目管理
• 物资管理
• 招投标管理
• 合同管理
• 审计管理
•生产内部集成• 生产管理
• 配电管理
• 输电GIS
• 绝缘监督
• 雷电定位
• 污区图管理
•电能量数据集成和线损分析• 电量数据融合
• 线损分析
© 2008 Oracle Corporation – Proprietary and Confidential 34
10、采购
需求
11、招标
结果
12、拟办
合同
13、正式
合同
8、资金
申请、
下达
14、费用
报销
以批概为依据控制造价
以进度为依
据安排资金
6、投资、
资金
计划
19、资产变更、
退役、
报废流程
项目全过程管理关联关系图
17、新
设
备
7、投资
、进
度计划
4、35KV以上用
投需求
9、概
预算
5、10KV用投需求
18、10KV设备
22、10KV配网工程项目
24、新资
产信
息
23、10KV新资产
1、投资
进度
需求
2、基建需求
3、技改、大修需求
21、工程资料
20、竣工决算
15、审计
申请
16、审计
结果
项目全过程管理关联关系图
© 2008 Oracle Corporation – Proprietary and Confidential 35
制定服务开发规范与开发流程
SOA需求管理
SOA需求管理
服务识别与发现服务识别与发现
发布规划发布规划
服务定义服务定义
服务设计服务设计
服务实现
服务测试服务测试
服务部署服务部署
服务管控服务管控
应用组装应用组装
应用测试应用测试
应用部署应用部署
应用维护应用维护
.
.
.
项目
企业需求
功能模型
待选服务
待选服务重用
发布计划
服务架构
服务契约
接口
测试案例
代码
测试结果
服务开发
项目
开发
服务工程活动
输入/输出
服务工程指南
项目活动(范围外)
图例
服务
管理
服务分析
© 2008 Oracle Corporation – Proprietary and Confidential 36
• 流程• 工程发包合同签订流程
• 物资采购合同签订流程
• …
• 服务• 工程结算
• 项目变更
• …
• 数据• 项目基本信息
• 设备台帐
流程模板、服务模板、数据模板
© 2008 Oracle Corporation – Proprietary and Confidential 37
服务模板(样例)
© 2008 Oracle Corporation – Proprietary and Confidential 38
流程模板
© 2008 Oracle Corporation – Proprietary and Confidential 39
服务分层实现模板
© 2008 Oracle Corporation – Proprietary and Confidential 40
服务封装模板
© 2008 Oracle Corporation – Proprietary and Confidential 41
公共服务
业务流程服务
业务服务
应用系统服务化开发与改造
项目管理
项目列表查询
项目基本信息查询
项目开工信息查询项目年度形象进度计划查询项目施工单位信息查询
项目投产规模查询
项目投产规模建议查询
项目物资需求清单查询项目月度形象进度完成情况查询 财
务管理
设备资产变更业务
冻结预算可用值业务
竣工决算信息查询
设备台帐查询供电生产
合同签定业务合同管理
合同信息查询
固定资产投资计划查询
计划统计
工程结算审计审计管理
供应商信誉维护
物资管理
入库帐务核算信息查询
物资采购计划查询
物资采购结果查询
物资招标结果查询
出入库明细帐查询
出入库总帐查询
供应商信息查询
物资费用结算业务
工程发包信息更新
采购信息更新
配送信息更新
项目费用结算信息查询
物资付款信息更新
项目变更物资退料
物资配送信息查询
项目投资计划查询
项目资金计划查询
固定资产卡片生成及暂估
项目发包信息查询
物资出库业务
物资入库业务
工程竣工决算
项目结算合同列表查询
项目物资预算检查
工程付款业务
项目一级进度查询
项目二级进度查询
业务办理情况查询
入库暂估业务
入库处理标识更新
出库处理标识更新
物资采购合同列表查询
工程付款信息更新
合同流转信息查询
竣工决算审计
物资结算业务工程结算业务
决算调整业务
责任中心查询
预算项目查询
物资领料
项目设备资产卡片查询
设备资产卡片查询 物资招投标、采购、配送信息查询
单位帐套查询
工程签证
设备台帐新增更新供电设备资产卡片编号发包方案审批状态更新
招标申请审批状态更新
招标结果信息更新
更新物资招投标结果
招投标
接受工程发包方案
接受工程招标申请
接受物资招标需求
查询工程招标状态
查询物资招标状态
物资编码树状查询
物资编码模糊查询
输变电工程查询
项目包查询
往来单位查询
待办事宜查询
项目前期文档查询
待办事宜查询
待办事宜查询
待办事宜查询
待办事宜查询
待办事宜查询
待办事宜查询
待办事宜查询
启动工程发包合同签订流程 启动物资采购合同签订流程
启动物资配送合同签订流程 启动工程费用结算流程启动物资费用结算流程 启动物资入库流程
启动物资出库流程 启动项目竣工决算流程 启动工程投运流程 接收异步服务返回结果
统一代码
统一用户
组织机构信息查询
人员信息查询
流程跟踪
业务流程跟踪
项目验收报告查询
代码生成
代码注册申请
代码变更申请
代码引用申请
代码废止申请
业务变更
代码目录查询
代码值查询
代码对照信息查询
流程控制管理
© 2008 Oracle Corporation – Proprietary and Confidential 42