第三部分,SOA项目的运维
在这一部分主要介绍运维阶段的工作,以及如何进行系统的改进和优化工作。

1         运维管理

运维管理就是对SOA系统的运行进行监控和管理。运维对象包括SOA基础设施(也包括基础运行环境)以及各种服务。运维工作包括运行状态监控和运行过程管理。
通过对SOA系统运行状态信息的了解,可以从整体角度了解SOA系统运行效果是否达到了预期的目标。通过对系统的跟踪可以
l        理解基础设施和业务服务的各自价值
l        对运行问题提供响应处理能力
l        为系统性能调整提供决策依据
l        为系统和业务流程的改变积累数据和经验
为了有效的进行运维管理有必要建立度量体系,度量对象就是运维管理对象:SOA基础设施和业务服务对象。具体度量指标可以根据业务需要来确定,把服务度量指标定义到服务描述信息中,使服务从定义设计,到实施,到运维过程保持一致性。服务的度量信息可以存储到服务库或资源库中,可以供运行系统使用,也可以供运行维护和决策支持使用

1.1     运行监控

SOA基础设施的运维信息包括:
l        各种基础上设施的启动时间,持续运行时间
l        自系统建立以来故障次数,平均故障恢复时间,有效工作时间
l        各基础设施服务的处理能力,如处理请求数,失败请求数,平均响应时间等
对业务服务需要关注原子服务,也需要跟踪组装服务和流程服务,可关注的运维信息包括:
l        当前正常运行的服务和流程列表
l        各服务当前运行状态
l        各流程的当前运行状态
l        各服务处理请求数,失败请求数,平均响应时间等
对基础设施和业务的管理控制功能包括:
l        启动、停止、暂停和恢复操作
l        自动部署,自动更新
l        其它的特殊管理操作
总之通过对运行过程的跟踪,可以了解整个系统的运行情况,如哪些服务被请求的次数最多,哪些服务运行最稳定,哪些服务的运行不太符合设计要求(如响应时间超过要求);可以了解哪些节点运行负载比较高,可以了解数据通讯的流量。通过这些信息一方面可以了解整个系统是否满足系统的初始需求,另一方面也为系统的优化提供数据依据。通过这些监控数据,可以更好地对系统进行优化完善,体现SOA逐步改进的特点。

1.2     项目优化

在一个项目实施后,可以根据运行情况和总体规划,确定下一步的工作计划和优化改进计划。
可能的优化改进包括:
l        发现服务运行达不到设计要求,需要在实现上加以改进
l        业务流程有不合理的地方需要改进
l        因业务需要对业务流程的改进
l        技术实现能力的提高,可以将部分手工业务通过系统来实现
SOA系统强调松耦合局部的改变一般不应该对系统整体产生影响。因为强调服务接口和合约,对服务实现的改变不会影响业务流程和使用服务的消费者。因为支持业务流程的灵活重组,支持服务的尽量复用,可以支持服务流程的快速改变。
示例,人力资源系统的优化改进
可能的改进方面包括:
1)建立一个基本的人力资源系统
因为人力资源系统本身的重要性,有必要建立一个基础的人力资源系统,实现员工信息管理,工资管理,考勤管理,培训管理,招聘管理等业务的各个方面。
在实现该系统时需要考虑基础功能的服务化,能够为其它业务系统提供服务。如提供员工信息服务,工资信息的授权访问,考勤信息服务。
如考勤服务,当前信息都存储于文档中,不便于管理,也需要花费大量人力来手工处理,可以建立一个公司统一的考勤管理系统,建成B/S架构,所有数据公司统一集中管理,就可以简化考勤统计服务。同时也便于开放考勤信息服务。
需要将各种业务流程化,一个业务很可能是跨部门的,如绩效考核,培训管理,招聘管理等。这样在有了大量服务积累的情况下,可以快速建立和优化业务流程。
2)建立业务审核流程
在公司范围内建立审核流程的管理系统,引入流程管理功能,这样可以将审核流程纳入各业务流程的服务实现中。
3)财务系统服务开放
财务系统也是一个重要的基础服务,可以将财务的基本业务功能服务化,简化员工的报销、借款和领取支票等基本业务的操作,可以将财务功能的服务接口直接纳入业务流程中
4)与各分公司的连接
有些分公司业务可能扩展,这样分公司也可以建立一个服务中心,分公司内部流程可以在本地执行,只有与公司本部联系时才需要进行交互,提高系统运行效率,如各分公司可以形成自己独立域
5)与业务合作伙伴的互联
与银行,物业等业务系统的直接连接,可以减少相关的人工活动时间。如银行开放转帐,工资发放等服务接口后,可以直接纳入工资发放等流程中,提高整个的工作效率。