Board logo

标题: 通用页面流程框架及实例介绍(4)BTT 通用页面流程设计和各种流程 [打印本页]

作者: look_w    时间: 2018-8-10 20:40     标题: 通用页面流程框架及实例介绍(4)BTT 通用页面流程设计和各种流程

在 BTT 中,流程(Flow Processor)是最基本的,然后可以基于流程,扩展出业务流程(Operation Flow Processor)、Web 页面流程(HTML Flow Processor)和 Java 富客户端页面流程(Java Flow Processor)。对于 Java 富客户端页面流,BTT 有两种,一种是导航 Swing 和 SWT 页面的页面流程,另外一种是导航由 XML 生成的页面的页面流程。
流程(Flow Processor)流程是一个状态机框架,它是各种流程的基础,所有的 BTT 的业务流程和页面流程都是基于流程(Flow Processor)扩展而来。开发人员,也可以根据自己的需要扩展自己需要的页面流程。
流程本质上是一个状态机,它由一系列的状态组成。一个流程包含一个初始状态,一个或多个的结束状态,和一系列中间状态。流程的所有状态和步骤都可以定义在 XML 文件中。在 BTT 中,可以定义在流程定义文件中 (processor.xml) 或者独立流程定义文件(Self-Defined)中。
图 4. 流程的状态机结构BTT 提供了一系列关于实现流程的接口:Action(动作), GuardCondition(条件), Processor(流程), State(状态)和 Transition(跳转)。同时还有 entry actions(入口动作),exit actions(出口动作)和 event(事件)。
流程中还有一个重要的概念:状态。流程管理器根据状态来管理流程的生命周期。状态是流程的执行情况,BTT 中的流程有以下几种状态:
业务流程(Operation Flow Processor)业务流程是由业务操作组成的流程。它是对流程的扩展,业务流程中的每一个状态都可以用于执行一个或多个的业务操作。架构上它实现了业务操作接口,流程中的状态可以执行业务操作。业务流程和流程之间的关系如下图所示:
图 5. 业务流程和流程之间的关系BTTOperationProcessor 类是业务流程的实现类,它实现了流程类 BTTProcessor 。下面是业务流程的一个实例:
清单 1. 业务流程(Operation Flow Processor)实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!-- 业务流程 -->
<opProcessor id="genFlow">
  <!—开始状态 -->
  <state id="initial" type="initial">
    <!— 状态入口动作 -->
    <entryActions>
      <!— Step是业务操作,执行用户编写的业务逻辑 -->
      <Step  id="dummyJournalAct"
      implClass="com.ibm.btt.samples.appl.JournalHostRequestDataStep"/>
    </entryActions>
    <!— 根据业务操作的执行结果,流程相应进行到下一个状态,
    如果业务操作成功就进入state2,如果业务操作执行失败,则到状态finalNotOk。 -->
    <transitions>
      <transition id="dummyJournalAct.ok" targetState="state2"/>
      <transition id="dummyJournalAct.error" targetState="finalNotOk"/>
    </transitions>
  </state>
  <state id="state2">
    <entryActions>
      <Step implClass="com.ibm.btt.samples.appl.SendHostStep"
      id="dummyHostAct"/>
    </entryActions>
    <transitions>
      <transition id="dummyHostAct.ok" targetState="state3"/>
      <transition id="dummyHostAct.error" targetState="finalNotOk"/>
    </transitions>
  </state>
  <state id="state3">
    <entryActions>
      <Step implClass="com.ibm.btt.samples.appl.JournalHostReplyDataStep"
      id="dummyJournalAct"/>
    </entryActions>
    <transitions>
      <transition id="dummyJournalAct.ok" targetState="finalOk"/>
      <transition id="dummyJournalAct.error" targetState="finalNotOk"/>
    </transitions>
  </state>
  <state id="finalOk" type="final" typeIdInfo="ok"/>
  <state id="finalNotOk" type="final" typeIdInfo="error"/>
</opProcessor>




Web 页面流程(HTML Flow Processor)BTT 为 B/S 的应用系统提供了 Web 页面流程,用于把一个交易中的所有 HTML 页面、JSP 页面、业务流程和业务操作组织成一个流程,并根据状态机进行业务的执行和页面的导航。通用页面流程中的 BTTHtmlProcessor 就是用于驱动 Web 页面流程的。
图 6. Web 页面流程和流程之间的关系Web 页面流程为了支持导航 Web 页面,在流程状态机中增强了下面特性:








欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0