SOA与 共同实现IT架构的“非常完美”
|
软件与企业IT
在上世纪九十年代,BPR(业务流程再造)的概念曾风靡一时。BPR的理念是通过摒弃过时的、低效的流程,从零开始设计与运用最优化的业务流程,达到在相对较短的时间内取得效益的最大化的目的。
其后各大企业和咨询公司都对BPR寄予厚望、并尝试使用BPR的理论对企业流程进行改造。不幸的是,大多数案例都以失败告终。大家在惨痛的教训中得出的教训是,在现实世界中,真的想要完全摒弃原来的业务流程,设计一套完美的流程来进行执行,无论是对企业本身还是企业的员工,都不是那么容易的事情。更何况世界上本就没有完美的流程,因为市场的需求总是在不断变化和前进的。
在BPR的风潮过去一段时间后,一种新的概念-流程管理软件(业务流程管理)应运而生。流程管理软件与BPR之间的最大区别就在于:BPR是摒弃已存在的流程,从零开始;而流程管理软件则是在原先已存在的流程上进行增量改变与优化,以达到提高流程效率的目的。
ARIS流程管理平台
随着IT在企业中发挥越来越大的作用,有一个问题无法避免地产生了。当管理部门为了达到快速适应市场需求变化或者追求更高效率的目的对流程进行优化时,我们的IT系统能否快速适应这种改变?
当业务人员在描述需求时一定会以业务的角度来进行阐述,然而当技术人员接收到该信息后会以技术的角度考虑如何实现。如图2所示,这种思维方式的不对称性看似不会带来太大的问题, 然而如果仔细观察,还是会发现一些有趣的现象。
业务需求与系统实现
技术人员在潜意识中,只会将他认为可能重复出现的代码进行封装,以备将来的重复使用,但技术人员常常不清楚哪些业务上的功能在将来可能会需要进行频繁修改和重复使用。所以在实现企业的业务逻辑时,技术人员通常会使用面向过程的方法对现实业务进行描述。
如此一来,最常见的情况就是实现不同详细流程的代码常常会掺和在一起(如详细流程1与详细流程2)、共用一批内存变量。这就直接导致了实现不同流程的程序代码不可分离和重组,这在技术上称为高耦合。最终,在将来当企业希望改变流程的顺序时,就不得不对代码进行大量的重新编写和调整;当希望在别的流程中希望使用另一个流程中已实现的详细流程时,代码却无法顺利地从原来的流程中进行分离。所以当企业的业务流程发生变化时,技术人员不得不花费极大的精力去进行维护和修改,这样做不但增加了企业构建IT的成本,对原先程序功能的修改可能还会带来许多无法控制的风险。
SOA的出现解决了上述问题
SOA(面向服务架构)
提到SOA,大多数人首先会联想到Web Service技术,甚至很很多人认为SOA就是将不同应用系统的功能以Web Service的方式部署出来,做到跨系统、跨平台的调用,以此降低企业IT实现总体拥有成本的效果。而事实上,这些特点和益处都仅仅是Web Service这一特定技术所提供的,而非SOA最主要的目的和功效。
服务的意义非常广泛,现实生活中的服务无处不在,那么SOA(面向服务架构)中的服务究竟指的是什么?SOA中的服务又如何能帮助企业的IT系统快速敏捷地应对业务流程的变化呢?
如果仔细观察企业的运作,我们会发现其实企业的各个部门都在提供各式各样的服务,财务部门提供与资金相关的服务,后勤部门提供物流、仓储相关的服务。
由于流程管理软件的理念是采用增量的方式优化流程,通常情况下业务流程的改变不会大幅度影响各个部门所提供的基础服务的性质,而是通过重新组合这些基础的业务服务,构建新的业务服务以及达到优化流程的效果。 流程管理软件的这个特点给了我们一个很大的启示:如果能够运用企业的业务服务进行建模,然后再运用技术进行实现,那么这样构建出的程序将非常地敏捷和高效。由于通过这种方式实现的程序功能的粒度粗细完全符合企业业务服务的粒度,当企业的流程发生变化时,IT系统可以运用重用已有系统功能的方式快速地适应变化。
所以,SOA中的服务指的企业各个部门所提供的业务服务。
所以当企业构建SOA时,首先要做的第一步就是对企业的业务服务进行建模,建模方式应该如图3所示。首先按企业的业务流程自上而下的进行建模,然后根据已经完成建模的业务流程,自下而上地对企业的业务服务进行建模。只有用这种顺序进行建模,才能保证最后得到的服务颗粒粗细能够满足企业流程变化的需要。
运用业务服务进行建模
IDS Scheer ARIS建模工具的一大特色,就是可以将不同层面的模型联系在一起,无论是业务流程与业务服务之间的、还是业务服务与技术服务之间的。如图3所示,由于最终的技术服务是根据业务服务得出的,而业务服务又是根据企业的业务流程得出的,这三者之间最终形成了统一。对于企业业务流程的变化,IT系统可以运用重新组合已有技术服务的做法轻松应对。
流程管理软件与SOA之间的关系非常巧妙。通过上文可以看出,运用SOA可以轻松灵活地应对流程管理软件对流程进行的增量改变。反之,如果企业的IT实施了SOA架构,却没有使用流程管理软件对流程进行管理,那么SOA架构的价值将大打折扣,所以流程管理软件与SOA之间是一种相辅相成的关系。灵活地结合运用流程管理软件与SOA,才能使企业的业务流程变得更加高效,企业IT架构变得更加敏捷。
信息发布:广州名易软件有限公司 http://www.myidp.net
|
|
|