工作流详细设计解读.docx
《工作流详细设计解读.docx》由会员分享,可在线阅读,更多相关《工作流详细设计解读.docx(14页珍藏版)》请在冰豆网上搜索。
工作流详细设计解读
XiorkFlow详细设计
修订历史记录
日期
版本
说明
作者
2006-8-2
1.0
初始版本
Xio
第一章引言1
§1.1编写目的1
§1.2背景1
§1.3定义1
§1.4参考资料1
第二章概述2
第三章Java服务器端结构设计3
§3.1服务器端主要结构3
§3.2主要类结构3
3.2.1Process4
3.2.2ProcessResult4
3.2.2.1ProcessResult.convertXml4
3.2.2.2ProcessResult.convertFilesToXml4
3.2.3ProcessService4
3.2.3.1ProcessService.listProcess4
3.2.3.2ProcessService.getProcess4
3.2.3.3ProcessService.addProcess4
3.2.3.4ProcessService.deleteProcess5
3.2.3.5ProcessService.updateProcess5
3.2.4AddProcess5
3.2.4.1AddProcess.handleRequest5
3.2.5DeleteProcess5
3.2.5.1DeleteProcess.handleRequest5
3.2.6GetProcess5
3.2.6.1GetProcess.handleRequest6
3.2.7ListProcess6
3.2.7.1ListProcess.handleRequest6
3.2.8UpdateProcess6
3.2.8.1UpdateProcess.handleRequest6
第四章JavaScript客户端结构设计7
§4.1JavaScript基本包7
4.1.1扩展JavaScript原型7
4.1.1.1Array、String7
4.1.1.2Observable、Observer7
4.1.2JavaScript界面组件7
4.1.2.1Component9
4.1.2.2ListenerProxy9
§4.2XiorkFlow模型9
4.2.1.1XiorkFlow11
4.2.1.2XiorkFlowModel11
4.2.1.3XiorkFlowModelConverter11
§4.3数据传送包11
4.3.1Ajax11
4.3.1.1Ajax.loadXMLHttpRequest11
4.3.1.2Ajax.onReadyStateChange11
4.3.1.3Ajax.processXMLHttpRequest12
第一章引言
§一.1编写目的
本文档制定根据XiorkFlow需求分析、概要设计文档对系统进行详细设计,主要对系统的架构进行详细设计。
本文档适合系统开发人员、维护人员阅读。
§一.2背景
“XiorkFlow”是项目开发组内部命名,其完整拼写为:
XioWorkFlow。
XiorkFlow项目的正式命名为:
基于B/S结构的可视化工作流定制软件。
XiorkFlow项目设计、实现基于Browser/Server结构、图形化界面、通用的工作流定制软件,这个软件支持企业业务流程的动态重组。
§一.3定义
参照《XiorkFlow需求分析》、《XiorkFlow概要设计》
§一.4参考资料
《XiorkFlow需求分析》
《XiorkFlow概要设计》
第二章概述
XiorkFlow项目设计、实现基于Browser/Server结构、图形化界面、通用的工作流定制软件,这个软件支持企业业务流程的动态重组。
XiorkFlow是一个B/S(Browser/Server)结构的系统。
其结构如图:
服务器端是文件管理系统,管理工作流程图数据文件。
文件管理包括:
获取文件列表、添加文件、获取文件、删除文件、更新文件。
客户端使用浏览器浏览,本系统使用胖客户端(RichClient),工作流程图的可视化编辑是在客户端进行。
在数据传输上,由客户端使用XMLHttpRequest向服务器提交数据,服务器端返回XML文档。
第三章Java服务器端结构设计
服务器端使用Java作为文件管理服务,客户端提交XMLHttpRequest请求,服务器端返回相应的XML文档。
§三.1服务器端主要结构
服务器端的UML图如下:
ProcessService接口是文件管理的服务类,对文件的管理均通过它来完成。
它的实现类是ProcessServiceImpl。
各个控制器AddProcess、DeleteProcess、GetProcess、ListProcess、UpdateProcess调用ProcessService实现功能。
服务器端使用Spring框架,文件保存目录可配置,默认使用“processes”。
Web控制器的服务地址规范按照《XiorkFlow概要设计》的规范进行部署。
§三.2主要类结构
三.2.1Process
Package:
name.xio.xiorkflow.domain
Attribute:
Stringname
org.domDocumentdoc
三.2.2ProcessResult
Package:
name.xio.xiorkflow.domain
Attribute:
intstatus可选
Stringname可选
Stringmes可选
Processprocess可选
Process与其他属性不同时存在。
status、name、mes为操作状态信息。
三.2.2.1ProcessResult.convertXml
Params:
ProcessResultprocessResponse
Return:
org.dom.Document
静态方法。
将ProcessResult转化成Document对象。
三.2.2.2ProcessResult.convertFilesToXml
Params:
ListfileList
Return:
org.dom.Document
静态方法。
将文件列表转化成Document对象。
三.2.3ProcessService
Package:
name.xio.xiorkflow.domain.logic
三.2.3.1ProcessService.listProcess
Return:
List
获取工作流程图文件保存目录的所有文件,返回工作流程图文件列表。
三.2.3.2ProcessService.getProcess
Params:
Stringname
Return:
ProcessResult
获取制定名称的工作流程图,如果操作正常,将该工作流程图文件数据存储在Process,并至于ProcessResult的属性中;如果操作出错,在ProcessResult中设置操作状态、出错信息。
三.2.3.3ProcessService.addProcess
Params:
Processprocess
Return:
ProcessResult
添加工作流程图,将工作流程图以xml文件方式保存到工作流程图文件保存目录,操作结果设置在ProcessResult中。
三.2.3.4ProcessService.deleteProcess
Params:
Processprocess
Return:
ProcessResult
删除工作流程图,操作结果设置在ProcessResult中。
三.2.3.5ProcessService.updateProcess
Params:
Processprocess
Return:
ProcessResult
更新工作流程图,操作结果设置在ProcessResult中。
三.2.4AddProcess
Package:
name.xio.xiorkflow.web
添加工作流程图控制器。
三.2.4.1AddProcess.handleRequest
Params:
HttpServletRequestrequest
HttpServletResponseresponse
Return:
ModelAndView
RequestParameter:
name:
工作流程图文件名
xml:
工作流程图的xml文本
将操作结果写在response输出流。
返回null。
三.2.5DeleteProcess
Package:
name.xio.xiorkflow.web
删除工作流程图控制器。
三.2.5.1DeleteProcess.handleRequest
Params:
HttpServletRequestrequest
HttpServletResponseresponse
Return:
ModelAndView
RequestParameter:
name:
工作流程图文件名
将操作结果写在response输出流。
返回null。
三.2.6GetProcess
Package:
name.xio.xiorkflow.web
获取工作流程图控制器。
三.2.6.1GetProcess.handleRequest
Params:
HttpServletRequestrequest
HttpServletResponseresponse
Return:
ModelAndView
RequestParameter:
name:
工作流程图文件名
将操作结果写在response输出流。
返回null。
三.2.7ListProcess
Package:
name.xio.xiorkflow.web
获取工作流程图列表控制器。
三.2.7.1ListProcess.handleRequest
Params:
HttpServletRequestrequest
HttpServletResponseresponse
Return:
ModelAndView
将操作结果写在response输出流。
返回null。
三.2.8UpdateProcess
Package:
name.xio.xiorkflow.web
更新工作流程图控制器。
三.2.8.1UpdateProcess.handleRequest
Params:
HttpServletRequestrequest
HttpServletResponseresponse
Return:
ModelAndView
RequestParameter:
name:
工作流程图文件名
xml:
工作流程图的xml文本
将操作结果写在response输出流。
返回null。
第四章JavaScript客户端结构设计
XiorkFlow的客户端采用JavaScript解决方案,包括用户界面、数据传送均使用JavaScript完成。
首先,由于没有合适的JavaScript的组件包,本项目将自行开发基本的界面组件包,完成基本的界面组件,这些组件将模仿Javaawt、swing的组件接口,并且采用MVC的设计模式。
此外,还需要编写一些必要的基础类。
在XiorkFlow的实际开发上,也将采用MVC的设计模式,以便代码开发、后期维护达到更好的效果。
§四.1JavaScript基本包
四.1.1扩展JavaScript原型
为了开发中的方便,有必要对JavaScript中的原型对象进行接口扩展,增加这些原型对象的功能方法;以及编写一些常用的类。
主要的UML图:
四.1.1.1Array、String
Array、String是对JavaScript的原型对象扩展方法。
四.1.1.2Observable、Observer
这对类实现了观察者模式,这两个类模仿了Java的Observable类的结构。
这两个类主要应用在用户界面开发中的MVC模式实现。
四.1.2JavaScript界面组件
XiorkFlow将自己实现一套用户界面基础包,利用该包,可以方便开发用户界面。
UML结构图如下:
四.1.2.1Component
基本组件。
将传进的HTMLDomElement封装。
包括使用ListenerProxy的事件代理管理改HTML元素的事件。
四.1.2.2ListenerProxy
HTML元素事件的监听代理。
§四.2XiorkFlow模型
XiorkFlow模型使用MVC设计模式进行设计,以便于开发、维护。
XiorkFlow的UML图:
四.2.1.1XiorkFlow
XiorkFlow类是主程序,它将传递进来的HTMLDomElement作为容器,在容器中组建用户界面。
四.2.1.2XiorkFlowModel
XiorkFlowModel是工作流程图的数据模型。
它的表现浏览器有XiorkFlowWrapper、XiorkFlowTableViewer。
四.2.1.3XiorkFlowModelConverter
XiorkFlowModelConverter是XiorkFlowModel的转换器,可以将模型与XML对象互相转换。
§四.3数据传送包
数据传送包主要实现Ajax的通讯,向服务器传送数据、接收处理数据。
四.3.1Ajax
Ajax主要功能是进行XMLHttpRequest的数据传送。
该类封装好底层对象,可以方便进行编程开发。
四.3.1.1Ajax.loadXMLHttpRequest
Params:
Stringurl
Stringmethod
Stringparams
执行该方法后,将自动建立XMLHttpRequest对象,XMLHttpRequest向url地址发送params参数,使用method方法。
在该方法中,自动将onReadyStateChange绑定到XMLHttpRequest.onreadystatechange的属性。
四.3.1.2Ajax.onReadyStateChange
Params:
XMLHttpRequesthttpRequest
该方法控制XMLHttpRequest的接收数据状态。
在接收数据成功后,自动调用Ajax.processXMLHttpRequest。
如果需要掌握XMLHttpRequest的接收状态,需要重写该方法,这种情况下Ajax.processXMLHttpRequest方法功能将失效。
四.3.1.3Ajax.processXMLHttpRequest
Params:
XMLHttpRequesthttpRequest
该方法为XMLHttpRequest接收数据成功后自动执行的方法。
重写该方法以进行数据的处理。