服务和系统改造
--------------------------------------------------------------------------------------------------------------
SOA需要原来的系统进行改造,暴露出服务给别的系统调用。但是,在评估工作量的时候,系统改造就仅仅是写几个Web Services吗?
我遇到过这样的开发商,他很快就把服务定义出来,花了一个月开发,又花了一个星期进行测试,然后进入等待其它系统联调的状态。联调开始后,问题就出现了。联调的场景是OA系统发送一个审批通过的消息给他的系统,然后他的系统才能开始进入招标流程。就是这么一个简单的场景,在测试的时候发生了错误。这是因为该开发商的用户界面并没有改造,用户可以直接在OA审批通过之前通过手工录入的方式进入招标流程。这样就造成了数据前后不一致,流程无法进行下去。
其实,这家开发商还需要做的工作是根据SOA流程的要求,改造他的系统,在上面的例子中,他就应该把用户界面改成只有OA审批通过了,启动招标流程的页面才会显示。
SOA的系统改造不仅仅是写几个Web Services这么简单,在通常情况下,它都会导致系统内部数据的处理发生变化,在评估改造的工作量的时候,一定要全面的审视系统的变化。特别是在原来不需要和其它系统交互的,现在需要调用别系统的服务,或者需要提供一个服务给别的系统调用,在这种情况下,一般都会导致处理逻辑连串的变化。
多提一句,错误估计工作量的结果就是,在SOA项目进入功能验收阶段,才发现还有很多功能还需改造,这样,无论对开发商和对客户,都是非常郁闷的。