基于流程是不是SOA的本质?

标签:重磅推荐SOA技术前沿

访客:17869  发表于:2012-02-24 15:20:56

提起SOA,用户可能首先会想到是它们基于流程的,因为没有ESB总线控制流程,就谈不上SOA。但是,我们换一个角度想,我们身边的企业绝大多数并不是基于流程设立的,而是采用职能制设立的。那么,基于流程的SOA要解决基于职能制设立的部门的业务问题,这中间是否存在着冲突呢?

其实,这不是一个新话题。针对职能制的部门设置,1990年麻省理工学院 Hammer、Champy以及哈佛大学的Davenport就提出了企业流程再造(Business Process Re-engineering)观念。此后,Hammer又发表了《企业再造之后》,宣告流程化组织的必然性与重要性,并且预言BPR将改变人的工作方式。

然而,BPR成长一直伴随着高失败率,以至于企业一直视BPR为畏途。当ERP被引入中国国内时,打前阵的还是BPR,但随着ERP实施失败率的增高,相当数量的用户开始对BPR抱负面的看法。

也正是在这种形势之下,BPR (流程再造)逐渐为更为温和的BPM(流程管理)所取代。这是一种必然,也是一种务实的做法。由于企业的流程发生剧烈变革时,围绕着流程和与流程相关的组织架构生成的企业文化,完成调整过来需要最少一年甚至几年的时间,这样,革命性的快速改变,若无充分的准备与良好管理体质,反而让企业乱了原有的脚步。

然而,BPM在发展过程中,也遇到了一系列的问题,企业推行BPM,往往以流程计算机化这种短程目标为主,BPM的终极目标在于提高管理水平。这样,当企业员工将手头的工作计算机化以后,反而无法把握BPM的管理焦点,因流程变化带来的效率提高自然也难以完全实现了。

这样,BPM的影响开始变得日渐微弱。也正是在这个时候,SOA出现了。SOA的萌芽期与BPM的衰落期相重合,这使得利用IT改变流程以提高效率的声音越来越弱。然而,从用户需求的角度考虑,利用信息技术和业务管理提高效率是大势所趋。尽管中间遇到问题,也最终会有人解决这些问题,让这种趋势得以实现。在这方面,BPM代表了管理方向上结合IT的最新尝试,而SOA则是信息技术试图以屏蔽技术细节和提供更高程度的系统功能抽象,用业务方向能够理解的语言来表达技术核心价值。

如果我们审视多年以前盖茨刚刚提出.Net概念时的情形,我们会发现这时.Net的概念与日后真正实用的.Net概念有极大的区别。而事实上,SOA概念恐怕也是如此。SOA在初期被看做是一项打破业务管理和IT技术之间障碍的技术。时至今时,由于SOA的出现,信息技术和业务管理的鸿沟正在逐渐弥合。但SOA已不是一个万能型选手了,它开始和BPM搭成了一个组合,而这个组合可能优胜于以往的任何一种方法。但有这个过程中,SOA的外延也许会发生变化,从而使得明天的SOA概念只是今天SOA概念的一个子集。而这对组合所起到的作用,可能比单独一个SOA要大许多。

在SOA出现以前,对于业务流程的分析研究,始终都有一个从模型向应用系统转化的问题。在管理学中,对业务流程的分析研究虽说发明了许多成熟的建模工具,帮助业务人员方便有效的构建和优化流程模型。但问题是这些工具只是停留在可视化辅助建模上,所有最后的模型还要交付给IT人员去实施。但就算按照面对对象的方法,IT人员在拿到模型之后,无论是把它转化成用例图还是活动图,总之先要转化为IT的语言,然后再细化实现。管理语言表述的流程模型和IT方法复述的信息系统模型之间,总会有概念理解和表达方式导致的差异问题。而解决这个问题的最好办法,无疑就是SOA。

相比于BPM,SOA的另一项功能也与BPM形成了互补的关系。当BPM把流程理顺之后,流程与流程之间由于存在通讯需求,而这也是SOA的长项。SOA还支持从BPM套件中获得对它所连接到的系统的更好可见度。IT小组可以在服务注册库中注册服务,流程开发人员(甚至可能是业务分析师)可以在构建流程时浏览这样的注册库。这确保了服务可以被正确地使用和重用,而且通常简化了业务流程,因为使用正确的服务可以将流程本身的复杂性降至最低。

尽管SOA的许多功能都和BPM开成了互补,但BPM阵营还是认为,SOA对于实现BPM来说不是必需的。只需部署一个BPM套件,就可以更快地实现目标而不会带来多少复杂性。但这样一来,如果部署一个不使用SOA的BPM套件时,BPM套件支持使用各种不同的技术,但其实现由代码和来自于并依赖于底层系统接口的元数据组成,因此,对底层数据库和应用程序的任何更改都将导致对业务流程的更改。

与此同时,来自SOA阵营也发出了一些不和谐的声音。该阵营通常声称BPM是SOA的一个特性,但是它是SOA解决方案的一部分,而不是一个单独的东西。

事实上,通过上述分析,我们不难发现SOA与BPM各有所长,只不过侧重点并不相同。因此,SOA与BPM配合使用,效果肯定会更好,因此一开始就要让业务运作团队和IT企业架构小组保持良好的对话。而如果由于技术限制,一定要做出一个选择,应该首先开发出BPM,而将SOA组件留待以后考虑。

再回到开头的问题,基于流程的确是SOA的特点之一,但由于BPM的存在,SOA基于流程的优势,只能在流程管理的局部发挥出来。换句话说,基于流程确实是SOA的本质,但这还不确切。更为精确的说法,是基于流程的IT实现和互通互联,才是SOA的本质。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");