论坛首页 Java企业应用论坛

SOA——中小系统的不能承受之重

浏览 21678 次
精华帖 (0) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-22  
工作流本身和SOA没有什么直接的关系,工作流引擎可以实现为一个或若干个service,当然也可以实现为其它的依赖实现方式,仅此而已。SOA方式是一种系统架构间层次结构间进行依赖的一种方式。在当前技术条件下,中小系统完全可以很好地依据SOA原理进行构造,倒是按SOA方法构造大型系统却还一些问题点需要解决或验证。楼主可能了解一点工作流,但对SOA却基本没什么概念。
0 请登录后投票
   发表时间:2007-12-23  
shuidrinking 写道
    最近开发了一套工作流系统,当然,相对比较简单,对于复杂的自动机没有实现。开发完之后对SOA有了更深入的理解。

    工作流机制是SOA的灵魂,下面咱就谈谈这个灵魂。

    完整的工作流系统包含三个部分:

    第一,工作流本身的数据模型以及控制流程实例流转的引擎;
    第二,与业务数据密切相关的工作流边界,负责关联业务数据和工作流;
    第三,工作流的流程管理子系统,最理想的是可视化编辑。

    目前,开源的工作流引擎有osworkflow,jbpm,shark等,这些工作流都符合工作流联盟的规范。但是要让他们符合你的需求比较难。最重要的原因是,你的系统里层级和架构设计,比如DAO的方式等规范,与他们对工作流本身数据模型管理的方式出入比较大。osworkflow里有几种可选的DAO方式,JDBC支持,hibernate支持,hibernate+spring也支持。但是整合方式未必和你的系统规范吻合。
    除了在数据模型操作上有出入外,在流程管理上也未必符合你的要求。流程管理的最高境界就是让客户按需求自己去配置业务流程。而从osworkflow等提供的方式来看,客户还必须得精通xml等技术,客户还不把我们这些人宰了?因此,用他们的东西,一定程度上可以解放工作量,灵活修改流程配置,但是要求是提前跟客户沟通好有哪些具体流程,万一流程有变,还得程序员自己去修改,做不到让客户来可视化的自己拖放流程。不过IBM的dominao等做的不错,流程设计还是挺牛的。
    如果工作流引擎有了,程序员要做的就是开发将业务和工作流关联起来的边界程序。别以为你有个工作流放那了,你就轻松了。引擎不知道业务数据要被如何计算,以及不知道你什么用例下才触发工作流。而且对于角色权限控制也不知道你是怎么规定的。边界程序就是要做这些事。
   
    有几个概念容易混淆:工作流,控制流,业务流。

    工作流是可以被取代的:在业务模型上多加几个控制状态的字段就可以了。
    使用工作流虽然很好,但是要付出代价的:开发成本高,程序运行成本高,维护成本也高。

    如果你的业务流程设计时可以用控制流,那就尽量用状态字段取代工作流吧,毕竟SOA不是用来杀鸡的刀


                                                             写于在公司开发完一套工作流系统后。

lz,看完之后只能说没看到什么有价值的内容。
首先,所述内容是工作流相关,SOA无关,请修改标题,避免不必要的误会。
再者,工作流应用的核心不是工作流引擎本身,也不是DAO方式和系统开发规范统一、也不是界面友好的流程管理工具,而是系统中工作流与业务模型整合方式,这直接决定了系统中业务操作的处理模式和流程的可配置性,却被定格为边界程序。这个问题没有弄清楚其他岂不是空谈。


0 请登录后投票
   发表时间:2007-12-24  


引用
一路看来,现在有一个问题在我脑间回荡。 工作流和业务逻辑是一个什么关系? 工作流和SOA应该没有直接关系吧。 感觉现在大家讨论工作流就是应用一些工作流框架实现你自己定义的工作流业务逻辑。而SOA是站在系统构架角度上,完成各种服务之间的交互工作。

赞同jnn的观点哈
0 请登录后投票
   发表时间:2007-12-24  
jasonhsu 写道
工作流本身和SOA没有什么直接的关系,工作流引擎可以实现为一个或若干个service,当然也可以实现为其它的依赖实现方式,仅此而已。

这是什么话呀,感觉你连工作流都不了解,谈什么SOA
0 请登录后投票
   发表时间:2007-12-24  
shuidrinking 写道
jasonhsu 写道
工作流本身和SOA没有什么直接的关系,工作流引擎可以实现为一个或若干个service,当然也可以实现为其它的依赖实现方式,仅此而已。

这是什么话呀,感觉你连工作流都不了解,谈什么SOA


真可笑,呵呵
0 请登录后投票
   发表时间:2007-12-28  
shuidrinking 写道
jasonhsu 写道
工作流本身和SOA没有什么直接的关系,工作流引擎可以实现为一个或若干个service,当然也可以实现为其它的依赖实现方式,仅此而已。

这是什么话呀,感觉你连工作流都不了解,谈什么SOA


从一开始大家就很含蓄的指出了你的错误,有问题大家一起讨论嘛
0 请登录后投票
   发表时间:2008-08-22  
仅仅从业务上看工作流和业务流程是对应的,从技术上来看SOA不仅仅是这点东西!
0 请登录后投票
   发表时间:2008-10-03  
soa的业务流程更多的提法是:process
而楼主所提到的工作流是:workflow
这两个在单词语义上面就是有区别的。


至于process 在soa当中的地位问题
我举一个具体应用soa的案例:
在客户的需求中,需要将域中所有的系统所有的操作 实时归纳到一个统一的日志系统中。这样在这个soa应用中,我们仅仅需要将监听的系统所作的操作信息转存到日志数据库中。这个仅仅需要esb。而根本没有出现process,更没有workflow。



0 请登录后投票
   发表时间:2008-11-30  
看了一点,偶不懂啥是soa,但是面向服务应该和工作流扯不上啥关系吧,他们就不像一个层次上的事情,假设lz的那个假设是正确的,那如果系统里有workflow他就叫soa?笑话
0 请登录后投票
   发表时间:2008-12-09  
明白一个概念,SOA的工作流程的目的是更高层次的协同工作(比如部门间,不同行业间)。不要被EOS和一些书本给影响了。如果SOA拿去开发一个紧密联系的流程那么和EOS有什么不同。工作流是一个具体的业务流程,SOA是的流程更多是个桥梁作用。A B C三个点A同时要B C和协同工作这个才是SOA的流程。B C对SOA来说都是服务,所以SOA流程内只有简单的一个控制逻辑。
ESB是一个调度中心 不是铁轨,ESB提供流程的内核服务。一个SOA平台没有可能做到具体化一个具体业务,它只能协调业务服务的工作。

太多打着SOA的旗号卖工作流的人了。SOA的目的就是协同工作和信息共享,不是业务处理。业务的处理是服务关心的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics