锁定老帖子 主题:SOA——中小系统的不能承受之重
精华帖 (0) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-17
工作流机制是SOA的灵魂,下面咱就谈谈这个灵魂。 完整的工作流系统包含三个部分: 第一,工作流本身的数据模型以及控制流程实例流转的引擎; 第二,与业务数据密切相关的工作流边界,负责关联业务数据和工作流; 第三,工作流的流程管理子系统,最理想的是可视化编辑。 目前,开源的工作流引擎有osworkflow,jbpm,shark等,这些工作流都符合工作流联盟的规范。但是要让他们符合你的需求比较难。最重要的原因是,你的系统里层级和架构设计,比如DAO的方式等规范,与他们对工作流本身数据模型管理的方式出入比较大。osworkflow里有几种可选的DAO方式,JDBC支持,hibernate支持,hibernate+spring也支持。但是整合方式未必和你的系统规范吻合。 除了在数据模型操作上有出入外,在流程管理上也未必符合你的要求。流程管理的最高境界就是让客户按需求自己去配置业务流程。而从osworkflow等提供的方式来看,客户还必须得精通xml等技术,客户还不把我们这些人宰了?因此,用他们的东西,一定程度上可以解放工作量,灵活修改流程配置,但是要求是提前跟客户沟通好有哪些具体流程,万一流程有变,还得程序员自己去修改,做不到让客户来可视化的自己拖放流程。不过IBM的dominao等做的不错,流程设计还是挺牛的。 如果工作流引擎有了,程序员要做的就是开发将业务和工作流关联起来的边界程序。别以为你有个工作流放那了,你就轻松了。引擎不知道业务数据要被如何计算,以及不知道你什么用例下才触发工作流。而且对于角色权限控制也不知道你是怎么规定的。边界程序就是要做这些事。 有几个概念容易混淆:工作流,控制流,业务流。 工作流是可以被取代的:在业务模型上多加几个控制状态的字段就可以了。 使用工作流虽然很好,但是要付出代价的:开发成本高,程序运行成本高,维护成本也高。 如果你的业务流程设计时可以用控制流,那就尽量用状态字段取代工作流吧,毕竟SOA不是用来杀鸡的刀 。 写于在公司开发完一套工作流系统后。 --------------------------------------------------------------------------------- SOA的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要 工作流和业务流程实际上是一回事情。SOA中用工作流引擎做集成,和基于工作流的开发类不类似,关键看粒度。当然,开发工作流引擎和使用工作流引擎,那肯定是两回事情。 可能有些人比较关注异构的问题,这个是webservice技术要解决的,如果你说这个技术就是soa,那就大错特错,还不如说cobar就是SOA呢。 OO和JAVA以及是设计模式三者的关系你理解吗? SOA和webservice和工作流三者的关系也就好理解了哈。 引用一句话说:“WebServices是SOA的基础资源;工作流用于调用WebServices,构成了SOA的大脑和灵魂”。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-17
工作流机制是SOA的灵魂?
不觉得 ESB是SOA灵魂倒有可能 |
|
返回顶楼 | |
发表时间:2007-12-17
rEloaD_cn 写道 工作流机制是SOA的灵魂?
不觉得 ESB是SOA灵魂倒有可能 火车,铁轨,调度中心,你觉得哪个是灵魂呢?该不会是铁轨吧 |
|
返回顶楼 | |
发表时间:2007-12-17
你说得很对,我错了
|
|
返回顶楼 | |
发表时间:2007-12-17
shuidrinking 写道 rEloaD_cn 写道 工作流机制是SOA的灵魂?
不觉得 ESB是SOA灵魂倒有可能 火车,铁轨,调度中心,你觉得哪个是灵魂呢?该不会是铁轨吧 赫赫,第一次听说SOA的灵魂是工作流 |
|
返回顶楼 | |
发表时间:2007-12-17
哦,对了:
“火车,铁轨,调度中心,你觉得哪个是灵魂呢?该不会是铁轨吧” 你的言外之意是说ESB是铁轨吗?如果是的话,我斗胆纠正一下:ESB应该是调度中心。 |
|
返回顶楼 | |
发表时间:2007-12-17
rEloaD_cn 写道 哦,对了:
“火车,铁轨,调度中心,你觉得哪个是灵魂呢?该不会是铁轨吧” 你的言外之意是说ESB是铁轨吗?如果是的话,我斗胆纠正一下:ESB应该是调度中心。 那工作流应该是什么呢? 能不能说ESB和WorkFlow是2选1的调度中心?在同一个SOA中能否同时存在ESB和WF呢?小弟不才,对ESB了解不多,望多指点。 |
|
返回顶楼 | |
发表时间:2007-12-17
我觉得Service才是比较需要关心的吧,SOA个人认为只是一个概念层次的东西,只是一个框架,用来处理多个服务之间的通信。
|
|
返回顶楼 | |
发表时间:2007-12-18
xiaoxiaodi5834 写道 我觉得Service才是比较需要关心的吧,SOA个人认为只是一个概念层次的东西,只是一个框架,用来处理多个服务之间的通信。
呵呵,看来你对这个东西的认识还是停留在概念层 |
|
返回顶楼 | |
发表时间:2007-12-18
简单说,ESB是为服务提供者和服务消费者建立一个通道,当然它的功能不仅仅如此。
Workflow我认为只是一种服务,我们可以称之为“组装服务”。 目前来看只有SCA和JBI可以作为实现SOA构架的技术指导方案。但SCA中并没有ESB的概念,不过如果要去实现一个SCA容器的话,我想ESB肯定是少不了的。 另外,SOA的确只是个概念,或者说是方法论,和OOP一样。所以那些所谓的SOA技术标准,也都只是大公司的噱头而已。 所以说,其实讨论SOA的灵魂这个话题本身就没有太多的意义,或许我们可以关注一下SOA这种新的解决问题的思想,如何在我们的开发和生活中得以应用。 |
|
返回顶楼 | |