【HongSoft: BPM&SOA】

【工作流,BPEL,SCA,SDO,DAS】[BPM&SOA技术讨论群号,14455633]

杨洪波ID:hongbo781202
[修改头像]
621753次访问,排名53好友0人,关注者7
hongbo781202的文章
原创 239 篇
翻译 1 篇
转载 8 篇
评论 1416 篇
杨洪波(HongSoft)的公告
www.oasis-open.org Member of SDO TC Member of BPEL4People TC
最近评论
zxy:楼主你好:能否给我一份《工作流(OSWorkFlow)例子修改》的代码,万分感谢!!!

Email:zxy1004@qq.com
ttxm:楼主你好,我想要一份国内工作流比较报告,能否发给我?谢谢
邮箱:txm.shz@gmail.com
一平:不知道哪儿配置数据源
一平:数据库必须是本地的吗
小隐:楼主你好,我想要一份国内工作流比较报告,能否发给我?谢谢
邮箱:xyyyy.com@gmail.com
订阅我的博客
XML聚合  FeedSky
文章分类
收藏
    相册
    《程序员》
    j2se发展演变史(RSS)
    有效实施业务敏捷(RSS)
    《软件世界》
    SOA标准规范组织与案例分析(RSS)
    从世界是平的看软件架构(RSS)
    企业应用开发2.0开源趋势(RSS)
    工作流:三分天下(RSS)
    《微型机与应用》
    安全文件系统PGPDisk的设计与实现
    《银弹》
    SOA与开源双剑合一 (RSS)
    SOA浪潮下的BPM(RSS)
    工作流培训与咨询客户
    上海复旦金仕达卫宁(RSS)
    华信邮电研究院软件研究发展中心(RSS)
    深圳市国税局信息中心(RSS)
    我的BPEL活动
    ActiveBPEL开源文档(RSS)
    BEA UG活动(RSS)
    BPEL采访(RSS)
    我的SOA活动
    CSDN 2007 MVB(RSS)
    SOA聚会采访(RSS)
    我的工作流活动
    goCom技术日(RSS)
    工作流专题(RSS)
    工作流开发框架AgileFLow(RSS)
    智能工作流系统Smart(RSS)
    存档

    原创 谈谈各大框架/产品的流程应用

    新一篇: JSF的PhaseListener的扩展

    1  长子:业务流
       业务流程了解得比较多,这里就不废话了。举几个例子用做广告:) EOS工作流/jBPM/其他的BPEL产品 等,我的博客上写了不少其他的产品(blog.csdn.net/hongbo781202/)。业务流程可能横跨多个用户的多次对话,流程的状态被保存在数据库中,所以流程被认为是长时间运行的。

    2   老二:无状态的页面流

       无状态的页面流早已经存在,大家也都非常熟悉。就比如webwork框架等。无状态的页面流定义了一种映射,把事件的的逻辑结果用命名规则直接映射到视图的结果页面。新近的两个无状态的页面流是JSF和Seam框架。
        JSF举例如下:
    <navigation-rule>
        <from-view-id>/numberGuess.jsp</from-view-id>
           
        <navigation-case>
            <from-outcome>guess</from-outcome>
            <to-view-id>/numberGuess.jsp</to-view-id>
            <redirect/>
        </navigation-case>

        <navigation-case>
            <from-outcome>win</from-outcome>
            <to-view-id>/win.jsp</to-view-id>
            <redirect/>
        </navigation-case>
           
        <navigation-case>
            <from-outcome>lose</from-outcome>
            <to-view-id>/lose.jsp</to-view-id>
            <redirect/>
        </navigation-case>

    </navigation-rule>
         Seam举例如下:
    <page view-id="/numberGuess.jsp">
           
        <navigation>
            <rule if-outcome="guess">
                <redirect view-id="/numberGuess.jsp"/>
            </rule>
            <rule if-outcome="win">
                <redirect view-id="/win.jsp"/>
            </rule>
            <rule if-outcome="lose">
                <redirect view-id="/lose.jsp"/>
            </rule>
        </navigation>

    </page>(说明:这两个example是从seam的userguide中抄过来的)。

    3  老三:有状态的页面流
      用过业务流程和无状态的页面流的同学大都有过心痒痒的感觉,是不是这两个东西可以合起来用啊?因为我以前一直是做业务流程的,所以我在05年就做过一套“自认为创世纪的东东”,其实就是把业务流程用到页面上来。后来终于有一天,知道了这个东西的名字是“页面流”,也知道那个“自认为创世纪的东东”早就在业界有了产品了。  我最早是用BEA workshop试验的页面流,当时挺撼动的,毕竟比自己捣鼓
    的那个东东强多了。现在想来也就很一般的功能。
      BEA的jpf毕竟不是标准,(应该不是吧?呵呵)为了推广市场,BEA的Beehive包含了一个jpf框架:Pollinate的NetUI。NetUI Page Flow(页面流)是一个基于Apache Sruts的Web应用程序框架,基于JSR-175元数据,它构建在模型/视图/控制器元素的核心Struts分离的基础之上。
      如果说NetUI Page Flow更偏重于无状态的页面流(使用简单),那么Spring WebFlow更偏重于业务流程(功能强大)。Spring WebFlow以有限自动机(Finite State machine)的概念为基础。Web应用内部的用户交互行为和事务被建模为一般的状态机。
      EOS的页面流更是同时吸收了BEA JPF的优点(eclipse插件方便用户开发)和Spring WebFlow的优点(功能全面),大家可以下载EOS6.0试试用用。
      页面流领域给我最大振撼的还是是jBPM。(注意,我认为seam的页面流功能是jBPM的功劳,不是Seam自己的)。因为我05年做的那套“自认为创世纪的东东”,开始是想过要用这个思路的(我当时就已经用了好久的jBPM了),可惜当时我们团队掌握jBPM的人太少,没有用这个方案。
     下面是一个使用jPDL定义页面流的例子(摘自Seam2.0 userguide):

    <pageflow-definition name="numberGuess">
       
       <start-page name="displayGuess" view-id="/numberGuess.jsp">
          <redirect/>
          <transition name="guess" to="evaluateGuess">
              <action expression="#{numberGuess.guess}" />
          </transition>
       </start-page>
      
       <decision name="evaluateGuess" expression="#{numberGuess.correctGuess}">
          <transition name="true" to="win"/>
          <transition name="false" to="evaluateRemainingGuesses"/>
       </decision>
      
       <decision name="evaluateRemainingGuesses" expression="#{numberGuess.lastGuess}">
          <transition name="true" to="lose"/>
          <transition name="false" to="displayGuess"/>
       </decision>
      
       <page name="win" view-id="/win.jsp">
          <redirect/>
          <end-conversation />
       </page>
      
       <page name="lose" view-id="/lose.jsp">
          <redirect/>
          <end-conversation />
       </page>
      
    </pageflow-definition>
        用过jBPM的同学们,看到这个感觉怎么样?亲切吧?一个简单的页面流定义看起来跟业务流程定义非常相似(是同一种类型的东西),不同的是用 <page>节点替换了<task-node> 节点。

    4.老四:逻辑流
       逻辑流应该是EOS首创(应该是吧?),在EOS中他们是.bizx文件,基本上等同一个java 方法,内部可以调用服务/运算逻辑和另外一个逻辑流。

    不要把这些个事情弄混了!逻辑流/页面流/业务流 它们运行在非常不同的层面或粒度中。逻辑流来自于一次与单一用户的单一交互; 页面流来自于与单一用户的多次同一上下文的交互;而业务流则横跨许多用户和交互。从另外一个角度看,他们三个是完全正交的,可以在一起使用或是分开单独使用,或者都不用。

    发表于 @ 2008年01月07日 21:17:00|评论(loading...)|编辑

    旧一篇: sdo的三种实现方法

    评论

    #ttxm 发表于2008-05-04 18:08:09  IP: 60.13.182.*
    楼主你好,我想要一份国内工作流比较报告,能否发给我?谢谢
    邮箱:txm.shz@gmail.com
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 杨洪波(HongSoft)