用Java开发基于Web的定制工作流周浩华.docx
《用Java开发基于Web的定制工作流周浩华.docx》由会员分享,可在线阅读,更多相关《用Java开发基于Web的定制工作流周浩华.docx(10页珍藏版)》请在冰豆网上搜索。
用Java开发基于Web的定制工作流周浩华
用Java开发基于Web的定制工作流_周浩华
用Java开发基于Web的定制工作流*
周浩华 蔡坚铮
(华南理工大学计算机工程与科学系 广州 510641)
摘 要 用Java开发一个基于Web和数据组织使用关系型数据库的工作流系统.与传统工作流
系统进行了比较,最后对采用Java开发大型应用给出了建议.
关键词 Java;工作流;关系型数据库;Web
中图资料分类号 TP311.52
Web的应用对人们生活的影响越来越大,Java在Internet中(特别是Web编程中)起着越
来越重要的作用.目前,Java的开发环境还不完全成熟,还没有一个成熟的面向用户的象
Notes那样的大型开发、应用系统.本文是在这方面进行的一次有意义的尝试.
1 对工作流的研究
工作流(Workflow)是一种计算机化的业务过程,工作流软件能根据路由将处理从一个程
序传到下一个程序,帮助使用者形成数据,并可以
编号.步骤的负责人进入系统时,如果有处
在这一步骤的工作流的实例,将弹出一个工作表,可以在其中选择一个工作流实例进行工
作.
计算一个步骤处在空闲状态(没有一个工作流实例在它上面工作)的时间,并作出统计,
以便发现哪个步骤的利用率最低进而改进工作流.
图1 系统结构模型
Fig.1 Themodelofsystemstructure
3 系统的结构模型
系统取名为WebbasedJavaGroupWare(WJGW),
图1是系统结构模型.
WebServer(用MSⅡS3.0).放置HTML文档、
JavaApplet及其所需的资源等.
DBMS(用MSSQLServer6.5).管理各种数据,并
充分利用其存贮过程等机制.
WJGWServer.用Java写的一个TCP应用程序,
完成数据的转发、监控、统计等服务.
WebClient.JavaEnable的浏览器,主要运行Java
Applet,这是用户的操作界面.
4 工作流中的实体及在RDBMS中的表示
工作流的定义时环境包括设计工作流的数据元素、设计工作路由(设计各步骤及其属
性)、设计各种人机交互界面;运行时环境包括对工作流的实例化、生成各种人机交互界面、
对工作流状态的查询、各种监控及统计.图2是本系统中各种实体的对象模型.
以下是工作流中各种对象在关系型数据库中的静态表示.
(1)工作流
工作流编号:
创建工作流时,系统给的编号,是工作流的唯一标识;
工作流名称:
面向用户的标识;
描述:
一些备注性说明.
(2)工作流实例
实例编号:
工作流实例编号是系统给定的、工作流实例的唯一标识;
工作流编号:
指明实例是哪个工作流的实例;
当前步骤:
实例当前所处的步骤,如果工作流可能同时处于多个步骤,则本项为0,由另
一数据表(结构为“工作流实例编号”、“步骤编号”)指明其所处的各个步骤;
实例状态:
“创建”、“运行”、“挂起”、“完成”等.
图2 各种实体的对象模型
Fig.2 Theobjectmodelofvariousentities
(3)步骤
步骤编号:
步骤在系统中的唯一标识;
工作流编号:
步骤所属的工作流的编号;
步骤名称:
这个名称将出现在用户的工作表中;
负责人:
步骤的负责人在系统中的标识;
角色:
负责人应具备的角色编号,当“负责人”项为空时,本项才起作用;
类别:
指明步骤是“起始”、“结束”还是“一般”步骤;
分流类别:
指明步骤的分流类型,是“单流向”、“选择分流”还是其他;
状态:
工作流运行过程中步骤的状态,当有一个工作流实例处于本步骤时,本步骤即处
于“忙”状态;
空闲时间:
系统统计到的本步骤处于空闲的时间以分钟的计数;
实例计数:
处于本步骤的工作流实例的计数;
最近一次空闲时刻:
步骤最近一次从“忙”转入“闲”的时刻,即“实例计数”由大于零的值
变为零的时刻;
其他:
步骤在系统的图形化设计工具中的位置等信息.
(4)应用数据及由输入类型确定的关联数据
数据元素编号:
数据元素在系统中的唯一标识;
工作流编号:
数据元素所属的工作流的编号;
数据元素名称:
这个名称在数据的输入界面上将成为相应输入项的标签;
输入方式:
指明以怎样的方式输入数据,如TextField、TextArea、Choice、CheckBox、
List、RadioButton等等;
类型:
数据的类型,如Int、varChar(n)、Float、Money等.输入方式是TextArea时,类
型一定是varChar;输入方式是Choice、CheckBox、List或RadioButton时,类型一定是Int;仅
当输入方式是TextField时,才需人工指定本项;
长度:
字符型数据的长度;
在数据表中的字段编号:
系统将根据以上设置自动生成一个以“工作流实例编号”为主键
的数据表(Table)来存贮数据(称这个数据表为工作流数据表),工作流数据表的名称为“WF
+工作流编号”,各字段名为“f+字段编号”,每个工作流实例将占用该表中的一条记录.本
项即指定各数据元素在工作流数据表中的字段编号.
这些数据最初都是应用数据,输入方式是Choice、CheckBox、List或RadioButton的数据,
称为可判断数据,如果它们用于判断步骤结束后的流向,就转变为关联数据了.可判断数据
在工作流数据中以整型(Int)方式存贮,其含义定义如下:
数据元素编号:
是数据元素在系统中的唯一标识;
取值:
是从0开始的整数;
含义:
取不同值所表示的意义.
(5)步骤对数据元素的引用
步骤编号:
由这两项指明哪个步骤使用哪些数据元素;
可编辑:
指明该数据元素在步骤的输入界面上是否可被修改;
其他:
输入数据元素的界面元素在输入界面上的大小、位置等等.
(6)流向
步骤编号下
一步骤编号:
由“步骤编号”指定的步骤完成后,将流向“下一步骤编号”指定的步骤;
数据元素编号:
用于判断流向的数据元素;
数据元素取值:
当数据元素取该值时,按本方式流动;
其他:
在图形化设计器中的位置等控制信息.
5 定义时工具的设计
提供工具帮助用户进行业务分析、确定各种数据、定义数据的输入方式等等.这些工具
由Java的类实现,图3是这些类及其关系的示意图.
数据类型设计器指定数据元素的类型、长度及其输入方式等.如果数据元素是可判断数
据,数据定义器就自动引用取值定义器,为数据设定可取的值.例如,对于数据元素“性别”,
指定它的输入方式为RadioButton,就可以在取值定义器中依次指定“男”和“女”为它可取的
值,取值定义器自动设定“男”对应的值为0,而“女”对应值为1.
数据定义器最初定义的数据都是应用数据,其中的可判断数据将可能被步骤定义器进一
步定义为关联数据.
步骤定义器可定义步骤的负责人、流向、使用的数据元素等属性.它将产生关联数据,
图形化设计器根据这些数据生成工作流程的图形化表示.
界面设计器用于设计输入属于某个步骤的数据元素的界面,包括指定各数据元素在输入
界面上的以下属性:
是否可编辑、输入控件的位置及大小.它引用界面布置器对界面上各控
件的位置大小进行直观的、图形化的设计.
图形化设计器使用步骤节点和节点连线两个类来模拟步骤和步骤流向这两个实体.利用
这个图形化工具可以直观地对业务进行分析,可以用它来起草业务流程模型,初步建立各步
骤并指定它们之间的流向关系,然后再用步骤定义器来精确定义它们.
图3 类的相互关系示意图
Fig.3 Theschemeofrelationsofvariousclasses
6 运行时工具的设计
运行时工具的设计提供了管理、监控、工作三方面的工具,包括以下功能:
启动:
工作流定义好后,在正式使用它之前必须启动它;
创建:
创建工作流的一个新的实例;
查询:
凭工作流实例编号查询某工作流实例当前的状态,如处在哪个步骤等;
工作:
工作流实例所处的当前步骤的负责人可以用本方法对工作进行处理;
流向:
步骤完成后提交给服务器,用本方法进行检查,并确定下一步骤;
统计:
对一个工作流各步骤的利用率等进行统计;
停止:
一个工作流不再被使用或需重新定义时,调用本方法.
限于篇幅,还有其他功能不再详述.
7 本系统的特色
(1)基于Web
所有客户端的功能都在一个浏览器中完成,这是有别于MSExchange和IBMNotes等现
有系统的一大特色.在Web上进行各种业务处理是Internet应用的一个明显趋势.客户端只
需普通的浏览器,而无需另外开发一个独立的系统(象Exchange和Notes那样),使系统的通
用性更好,更易于操作(浏览器的使用已很广泛)、开发和维护.
(2)用Java实现
这是本系统的另一大特色,带来了系统的平台无关性.在实现过程中,充分利用了Java
的各种技术,收到了较好的效果,如语言级多线程、JDBC对存贮过程的操作能力以节约网络
带宽等.
(3)用RDBMS组织数据
在数据的存贮组织上,传统的工作流系统,如MSExchange和IBMNotes等都是自行开
发一个文档的数据库;而本系统则利用大型关系数据库.这是一个尝试,也是本系统的一个
特色.与采用文档型数据库相比,大型关系型数据库应用广泛,久经考验,有各种成熟的开
发、管理工具,它是建立企业级应用的基础;比较容易与其它应用共享数据,避免了自行开
发一个数据库系统而带来的开放性方面的问题,同时也大大减小了开发的复杂度和工作量;
大型关系型数据库能保证数据有更好的完整性,而且效率较高;SQL标准已比较成熟,在不
同关系型数据库间的转换比较容易.但是,大型关系型数据库对非结构化或半结构化信息的
表现能力不强,例如对大篇的文字、复合文档就很难表示和管理,这使一些功能难以实现.
(4)共享数据库以实现工作流信息传递
传统的工作流系统在各个用户间传递信息主要通过电子邮件:
一个步骤完成后,把这一
步骤包含的信息打包用电子邮件发给下一步骤的负责人.本系统的信息传递通过共享数据库
进行;一个步骤完成后,只需在数据库中设置相应的标志,就能把工作流推到下一步骤.与
电子邮件方式相比,共享数据库方式避免了大量的数据传递(电子邮件将数量庞大的数据在
网络上发生物理的移动),提高了效率,节省了数据的存贮空间和带宽.它的缺点是在数据处
理上受关系数据库的限制,有时显示不够灵活.例如,在用电子邮件方式中可以在信件上附
上一个其他的说明信息等.
8 实现情况及讨论
本系统用JDK1.1.4编译通过,在Netscape4.04及IE4中成功运行.
本系统只是一个简单的定制工作流模型,对于一个大表格中又含有小表格的情形,可能
考虑用Master与Detail两个数据表来表示;目前只支持单流向和选择分流两种分流类型,需
进一步加强;一个步骤只能使用单一的关联数据来判断流向,应考虑它们的组合,等等.
9 结 语
Java的跨平台能力、面向对象性、简洁性、固有安全性、良好的分布计算环境在本系统
的开发中给人留下了美好的印象.JDBC访问数据库的机制很好,适合在Internet上使用,为
用JavaApplet实现大型应用打下了基础,但它对Cursor的支持太弱.本系统说明用Java建
立基于Web的大型应用是可行的.
但目前Java还存在以下诸多不足:
标准化程度还很低、国际化(特别是对汉字的支持)做
得不好、开发环境还不成熟、效率有待提高等等.在本系统的开发中,常为解决一个小问题
而大费心神,所以,马上要用Java开发大型应用系统是不适合的(特别是在中国).如果要建
立基于Windows的Intranet应用,可考虑用ActiveX,它可与Windows完好地整合,利用已有
代码资源快速建立应用;但是,如果是为一个长期的跨平台项目作准备,Java将是最佳的选
择.随着Java成为ISO标准,Java将成为Internet上最主要的编程工具.
参 考 文 献
1 陈根才等编.LotusNotes实用指南.北京:
石油工业出版社,1996.1~4
THEDEVELOPMENTOFAWEB_BASEDWORKFLOW
SYSTEMBYMEANSOFJAVA
ZhouHaohua CaiJianzheng
(Det.ofComputerEng.andScience,SouthChinaUniv.ofTech.,Guangzhou 510641)
Abstract ThispaperdiscusseshowtodevelopaWeb_basedworkflowsystembymeansofJava,
inwhichRDBMSisusedtomanagethedata.Acomparisonismadebetweenthisnewsystemand
thetraditionalworkflowsystems.ThepaperalsoofferssomesuggestionabouthowtouseJavato
designanddevelopbigframeapplications.
Keywords Java;workflow;RDBMS;Web
64 华南理工大学学报第26卷