2012-04-12 13:54:15 来源:中国论文下载中心
采用工作流技术,将以上各个子系统整合到一起,以便将各环节纵横交错的信息有效地集成在一起,使一个环节产生的结果能自动传递到下一个环节,为下一环节所利用,以保证通信部门及时、准确的做出决策,同时,反映到用户操作上,每个用户所有需要完成的工作反映在一个统一的界面中,用户根据轻重缓急有选择的进行业务处理。工作流服务器具有流程监控功能,如果监控系统发现在接近预定时间内任务还没有完成或发现任务已经拖延,可以向有关的业务处理人员发出催办通知,甚至可以通知该部门的主管,要求予以督促。[page] 3.3 工作流状态引擎
由于各个岗位在业务处理的过程中会不断的改变状态,所以系统需要有一种状态通知、调整的机制,来执行实时传递与接收业务流程管理信息以及变换各个岗位在不同业务流程中多个流程实例所处状态的功能并调整对应的操作。
因此,我们专门在系统中设计了“状态引擎”模块来完成以上功能。其中业务流程管理信息的实时传送与接收可以通过网络通信来完成,因此在工作流“状态引擎”中需要设计一个实时通信子模块。为了对工作流状态进行操作,“状态引擎”中需要设计一个状态操作子模块。
某个岗位完成对某个流程实例的操作后,“状态引擎”的状态操作子模块修改本岗位有关状态,然后实时通信子模块发送信息;接收岗位的“状态引擎”的实时通信子模块接收信息,状态操作子模块根据接收的信息来调整本岗位当前的状态并提示用户进行相应操作。
3.4 工作流引擎选择
本工作流系统应用采用Java网站中著名的“Open For Business"开源项目作为工作流引擎,此工作流引擎具有稳定、高效率、占用资源小等特性,并且完全按照WMFC的工作流标准接口开发,后期维护简易,可扩展性好等特点。采用此系统可以方便地对业务流程进行维护,用户只要懂得XPDL(XML过程定义语言)并且熟悉系统对用户和表单的配置,即可根据业务需要自己制定业务流程。
OFBIZ工作流主要用到Xml文件进行定义:
services_ FormName.xml:定义了本应用中用到的service,每一个实现工作流的表单定义一个xml文件,运行一个独立的服务。
controller.xml: OFBIZ ControlServlet的配置文件,我们主要在其中配置request-map, view-map.FormNameXPDL.xml:工作流流程定义文件。
entitymodel_FormName.xml:实体定义文件,每一个表单需要一个定义,在本工作流中关联到一个数据库表。具体需要定义表名和字段名、字段类型和约束条件等。
entitygroup.xml: OFBIZ的entitygroup定义文件,Entity可以分Group,在实体引擎的配置文件中可以为不同的Group指定不同的数据源。
4 工作流模块实现的关键技术
分布式数据库技术是实现工作流的常用方法,也是系统中实现业务工作流运转的基础。我们利用SQLSERVER数据库,在JBUILDER集成开发环境上实现了系统中通信业务的工作流处理,系统中数据库连接采用了JDBC技术,其主要工作包括以下几个方面:
4.1 JSP和Servlet技术
JSP技术能让Web开发员和网页设计员快速地开发容易维护的动态Web主页。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP有2种结构,本系统采用Model2即MVC结构如图2。MVC是模型、视图、控制的缩写,也就是说在使用jsp时,有相应的文件去实现相应的操作通常jsp只负责显示页面。业务逻辑等由javabean去实现。
图2 MVC结构图
Servlet技术是JSP技术的前身, JSP技术其实就是Servlet技术的一个高层封装。实际上JSP引擎要把JSP标签、JSP页中的Java代码甚至连同静态HTML内容都转换为大块的Java代码。这些代码块被JSP引擎组织到用户看不到的Java Servlet中去,然后Servlet自动把它们编译成Java字节码。这样,当网站的访问者请求一个JSP页时,在他不知道的情况下,一个已经生成的、预编译过的Servlet实际上将完成所有的工作。非常隐蔽而且高效。因为Servlet是编译过的,所以网页中的JSP代码不需要在每次请求该页时被解释一遍。JSP引擎只需在Servlet代码最后被修改后编译一次,然后这个编译过的Servlet就可以被执行了。由于是JSP引擎自动生成并编译Servlet,不用程序员动手编译代码,所以JSP能带给你高效的性能和快速的灵活性。
4.2 数据库连接技术
4.2.1 JDBC技术
JDBC是对各种各样的关系型或对象—关系型数据库进行访问的最主要的API之一,是一个使JAVA程序能与数据库服务器通信的JAVA应用程序接口,它不针对任何特定的数据库。JDBC技术由两大部分组成,一部分是访问数据库的高级接口,即通常所说的JDBC API,包括核心API与扩展API;另一部分是一些由数据库厂家提供的使JAVA程序能够与数据库连接通信的驱动程序,JDBC数据库驱动程序必须针对特定的数据库系统实现JDBC API中定义的方法。使用JDBC API编写访问数据库的JSP程序时,调用的方法实际上是由JDBC数据库驱动程序实现的。JDBC API大部分都是一些JAVA接口,仅仅定义了方法的名字,没有定义方法的实体。高性能的JDBC数据库驱动程序实现了真正接口,在JAVA应用程序与数据库服务器之间搭起了一座桥梁,使得它们之间可以迅捷地交换数据,提供服务或者享受服务。
4.2.2 JDBC数据库连接方式
常用的2种数据库连接方式:JDBC driver和JDBC-ODBC bridge,本系统采用JDBC driver。首先,在服务器上安装driver,大多数数据库都有JDBC driver;然后和数据库建立连接。必须创建一个Connection class的实例,其中包括数据库的信息。
对于一个简单的数据库应用,对数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它。但是对于一个复杂的数据库应用,频繁的建立、关闭连接,会极大的减低系统的性能,因此对于连接的使用成了系统性能的瓶颈。
本系统给出的方法可以有效的解决这个问题。在本方法中提出了一个合理、有效的连接管理策略,避免了对于连接的随意、无规则的使用。该策略的核心思想是:连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。另外,由于对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的使用(特别是对于事务处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。
本系统的数据库连接池包括一个管理类DBConnectionManager,负责提供与多个连接池对象(DBConnectionPool类)之间的接口。每一个连接池对象管理一组JDBC连接对象,每一个连接对象可以被任意数量的Servlet共享。
类DBConnectionPool提供以下功能:
1) 从连接池获取(或创建)可用连接。
2) 把连接返回给连接池。
3) 在系统关闭时释放所有资源,关闭所有连接。
此外, DBConnectionPool类还能够处理无效连接(原来登记为可用的连接,由于某种原因不再可用,如超时,通讯问题),并能够限制连接池中的连接总数不超过某个预定值。
管理类DBConnectionManager用于管理多个连接池对象,它提供以下功能:
1) 装载和注册JDBC驱动程序。
2) 根据在属性文件中定义的属性创建连接池对象。
3) 实现连接池名字与其实例之间的映射。
4) 跟踪客户程序对连接池的引用,保证在最后一个客户程序结束时安全地关闭所有连接池。
5 结束语
本系统研究了基于工作流管理技术的电话业务系统,能够将诸多项工作集成在一起,通过Intranet进行电话业务处理。采用跨平台的JSP技术开发,具有模块化设计、实现工作流程自定义、部门功能自定义、采用SQLServer 2000数据库作为后台支撑。系统具有运行效率高,操作简单、方便、安全性好、可靠性高等特点,并已得到实际应用。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。
