3.6
SOA项目实施与传统项目实施的比较
SOA项目实施与传统项目实施相比较存在很大差异,主要体现在以下几个方面:
1.在实施过程上
SOA项目的实施过程重点放在前期的业务流程梳理、服务规划、服务提取及服务定义上,而传统项目的实施重点放在开发实现阶段。同时,在SOA项目实施中业务人员的参与广度、深度、所承担的责任及介入周期都较传统项目高。业务与IT的进一步共融是SOA项目实施的重要特点之一。
传统应用系统的开发是从头开发,从零开始,一蹴而就。而SOA项目的部署实施往往是对现存企业或组织内部应用的修补,对现有计算资源的整合,并不是从头开始。同时,SOA的实施往往是从小范围开始,逐渐地迁移现存应用到新的计算环境中,是循序渐进的过程,所以SOA项目的实施往往是长期的。
企业或组织部署SOA最好是通过迭代方式来实现。使用迭代式开发部署SOA,可通过允许组织逐步纳入到系统中,从而减少出现业务故障的风险。而传统应用程序开发时往往使用的是“瀑布式”开发方法部署SOA。
2.在实施团队上
SOA项目的实施团队比传统项目的实施团队更复杂,主要体现在如下两个方面:
一方面强调将高层决策者及业务部门工作人员的全程、深入参与。高层决策者需在SOA项目规划初期参与决策,确定相关的实施路线和治理策略、并确保各相关业务部门负责人和工作人员的参与;对于相关业务人员,在3.2节的各实施过程中,除开发测试过程以及部署过程之外,其他过程业务人员均可以参与,并与IT人员共同进行SOA系统的规划、设计、监控和流程更改。
另一方面,SOA项目中的实施角色及职责也与传统的项目实施不同,比如SOA架构师与传统IT架构师的职责相比更为重要,其工作往往是整个团队的核心;服务开发工程师与传统开发工程师不同,其工作更多采用参数配置、组装、流程定义等技术,代码编程工作量会明显少于传统开发工程师。此外,SOA项目中新增了一些重要角色,比如服务建模工程师、互操作性测试工程师等。SOA项目中各相关实施人员的描述如表3-2所示。
表3-2 SOA实施团队角色及技能表
项目角色 |
职责 |
合作对象 |
技能要求 |
支持工具 |
SOA
架构师 |
方案设计、需求分析、架构确定、服务构件建模、运维建模、业务与服务组件的转换 |
任何其他项目团队成员,包括业务处室代表 |
通常的IT架构能力,J2EE/.NET技术XML、XML
schema、Web Services、SOA概念、平台、项目实践经验、业务知识等 |
UML编辑器、Office套件等 |
服务建模工程师 |
接口设计、WSDL编辑
(自顶向下、 自底向上等) |
业务分析师、SOA架构师、服务开发工程师 |
WSDL、XML
schema、J2EE/.NET命名空间技术等 |
WSDL编辑器或等 |
续表
项目角色 |
职责 |
合作对象 |
技能要求 |
支持工具 |
流程设计师 |
业务建模、服务流程组装 |
服务建模工程师、业务分析师、SOA
架构师、业务代表 |
BPEL4WS、BPEL4People、WSDL等 |
图形化流程设计工具、 BPEL4WS
generators、 实时通信支持 |
服务开发工程师 |
服务提供方编程、服务需求方编程、SOAP消息包的解析、文档编程 |
服务建模工程师、业务分析师、SOA架构师、测试工程师 |
J2EE/.NET、XML、SOAP、WSDL等 |
J2EE/.NET开发平台、SCA/SDO开发平台等 |
互操作性测试工程师 |
WSDL检查、SOAP封装跟踪、性能测试、问题定位 |
服务开发工程师 |
SOAP、WSDL、WS-I
profiles等 |
TCP/IP tunnels and monitors、互操作性测试工具等 |
|