毕业设计(论文)-业余体育联盟系统--基于工作流的会员中心、系统管理平台设计与实现.doc_第1页
毕业设计(论文)-业余体育联盟系统--基于工作流的会员中心、系统管理平台设计与实现.doc_第2页
毕业设计(论文)-业余体育联盟系统--基于工作流的会员中心、系统管理平台设计与实现.doc_第3页
毕业设计(论文)-业余体育联盟系统--基于工作流的会员中心、系统管理平台设计与实现.doc_第4页
毕业设计(论文)-业余体育联盟系统--基于工作流的会员中心、系统管理平台设计与实现.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计) 题题 目:目: 业余体育联盟系统业余体育联盟系统 基于工作流的会员中心、系统管理平台设计与实现基于工作流的会员中心、系统管理平台设计与实现 学学 院:院: 信息与工程学院信息与工程学院 专专 业:业: 信息系统与信息管理信息系统与信息管理 学学 号:号: 姓姓 名:名: 指导老师:指导老师: 职称:职称: 讲讲 师师 成成 绩:绩: 温州医学院教温州医学院教务处务处制制 i 毕业设计(论文)诚信声明书毕业设计(论文)诚信声明书 本人承诺:在毕业论文撰写过程中,将严格遵守学校有关规定, 恪守学术规范,在指导老师指导下独立完成研究课题。本人在论文 中参考的其他个人或集体的研究成果,将均在文中以明确方式标明。 本人依法享有和承担由此论文而产生的权利和责任。 声明人:声明人: (签字)(签字) 时间:时间: 年年 月月 日日 ii 摘摘 要要 工作流的概念起源于生成组织和办公自动化领域。随着internet的普及和web技术的 发展,工作流技术的使用从两层的c/s结构发展到三层的b/s结构,各方面的技术更趋于 成熟,促进了电子商务应用的极大发展。这使得组织与组织之间、组织内部部门之间的 业务处理成为可能,为工作流技术更好的与各类web mis结合应用提供了契机。温州市体 育局同温州地区的俱乐部、球馆、教练的合作中存在着一些工作流程。本课题业余体 育联盟系统是针对体育局的需求而专门设计实现的一个web项目。同时该项目对以 struts、spring、hibernate为主要技术的三种架构进行介绍和使用,并通过实例说明了jbpm 流程的基本运行过程。 关键词:关键词:spring;hibernate;工作流;jbpm4.3 iii abstract workflow concept originated in the field of the organization of production and office automation.along with the development of internet technology and web technology, workflow technique has advanced from double-tiered c/s structure to triple-tiered c/s structure, and various relevant technologies become more mature as well,to promote the great development of e-business applications.this makes the organizations and departments within the organizations business may be dealing with each other. all these have provided a great opportunity for workflow technique applying with other web mis techniques. wenzhou administration of sports with the clubs, arenas, coachs in wenzhou area exists cooperation in some of the work process.the topic, “the amateur sports alliance system“ is a web project which is designed to achieve the needs for wenzhou administration of sports.meanwhile,the project explored the amateur sports alliance system and design the overall structure of the main technical struts, spring, hibernate framework and the work of these three streams, workflow model a description and application.it makes examples for illustrating the operation process of jbpm process. key words: sring;hibernate;workflow;jbpm4.3; 目目 录录 摘 要ii abstract.iii 第 1 章 绪论1 1.1 课题背景 .1 1.1.1 课题来源 .1 1.1.2 群众体育发展现状 .1 1.1.3 课题意义 .1 1.2 开发环境及运行环境 .1 第 2 章 技术简介3 2.1 jbpm 框架简介.3 2.1.1 概述 .3 2.1.2 jbpm 的工作原理.3 2.2 ssh 框架简介4 2.2.1 struts2 框架4 2.2.2 hibernate 架构5 2.2.3 spring 框架.6 2.3 spring与 ejb 的对比.8 2.3.1 框架对比 .8 2.3.2 结论 .8 第 3 章 系统设计9 3.1 系统总体架构设计 .9 3.2 系统框架模式设计 .9 3.2.1 action 层10 3.2.2 service 层.11 3.2.3 dao 层.11 3.3 系统的功能模块设计 .12 3.4 系统工作流设计 .13 3.4.1 羽毛球、网球比赛流程介绍 13 3.4.2 会员约球流程介绍.14 5 3.5 系统数据库设计 .15 3.5.1 系统概念设计 15 3.5.2 统物理数据模型简介.17 3.5.3 jbpm4.3 数据表简介.19 第 4 章 系统实现.21 4.1 jbpm 框架的应用.21 4.1.1 任务处理流程化 21 4.2 羽毛球、网球比赛的实现(会签) .22 4.3 比赛对阵图的生成与修改 .24 4.4 freemarker实现系统首页静态化24 第 5 章 总结.27 5.1 总结27 参考文献28 致 谢30 附 录30 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 1 第第 1 章章 绪论绪论 1.1 课题背景课题背景 1.1.1 课题来源课题来源 “业余体育联盟系统”是本文指导老师与温州市体育局合作的一个电子商务项目。 该项目主要针对温州各个地区业余体育联赛举办进行管理,由温州体育局发起,由本学 院曦点工作室研发实现。本人作为该项目的负责人,负责项目的整体运作和团队管理, 同时也是软件编写的主要参与人之一。该系统已经于 2010 年度开发完成,目前正在后期 维护。 1.1.2 群众体育发展现状群众体育发展现状 群众体育是指在人们群众中广泛开展的日常的和大众参与的体育活动,以增强人民 群众的体质、丰富社会生活以及个人生活为主要目标,旨在提高人们的生存、生活质量, 促进人的全面发展。 人类社会进入 21 世纪以来,经济的飞速发展,信息资源的共享,科学技术的提高, 加之人们饮食生活质量的提高,使得相当多的一部分人从繁杂的体力劳动中解放出来, “肥胖病” 、 “心血管病”等一些文明病开始因体力活动不足而大面积出现,困扰着现代 人们。经济的发展,文明的进步,人类自主意识的强化,人们在注重物质生活的同时开 始把越来越多的目光聚焦到体育活动这块热闹的土地上来,使得“以人为本”的群众体 育逐步成为了一种健康的社会文化现象。从当代体育在社会中开展与发展的实际情况来 看,大众化、民族性、娱乐性、趣味性等逐步成为了群众体育的发展趋势。 通过调查发现,实际目前温州市体育场地数量仍没能满足体育运动者需求。温州市 民体育参与者们最主要的活动场所为:公园、山、广场公路或街道旁、公共体育场所、 住宅小区空地等。其中大多数人在非正规体育场所进行体育锻炼,例如在马路、街道旁 等场地进行活动,不仅缺乏活动质量,而且也存在一定的不安全隐患。这说明温州在健 身场所数量、规模和投资方面上今后会是一个较大的投入。 1.1.3 课题意义课题意义 互联网在当前社会占据了不可替代的地位,在 2008 年北京奥运会结束后,我国群众 体育将会加快脚步步入一个快速发展期。为了进一步推动温州群众体育的发展,本工作 室受温州市体育局的委托,利用互联网的快速流通性开发了集业余体育联赛举办管理、 各种体育场馆信息发布等与一体的业余体育联盟系统。 本系统分超级管理员,系统管理员,会员,场馆管理员,俱乐部管理员,教练等多 种角色。通过系统功能的支持,会员在注册并通过系统管理员审核后,能执行各种相应 的操作。譬如会员约球、装备交换,参加比赛、参加培训等。其他各种角色也都会获得 相应的权限。随着加入本系统场馆、俱乐部、教练数量的增加会进一步促进温州地区群 众体育的蓬勃发展。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 2 1.2 开发环境及运行环境开发环境及运行环境 本系统用面向对象方法进行系统分析和设计。本系统采用三层架构,实现表示层, 业务逻辑层和数据持久层的分离。选用 jee 开源框架(struts,spring,hibernate)结合 ajax 技术开发,数据库建模使用 powerdesigner 建模工具,以 ms sql server2000 为后 台数据库,以 eclipse 加 myeclipse 插件作为开发环境(ide),以 java 作为主要开发语 言来实现。web 服务器采用 tomcat6.0.18。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 3 第第 2 章章 技术简介技术简介 2.1 jbpm 框架框架简介简介 2.1.1 概述概述 jbpm,全称是 java business process management(业务流程管理),它是一个开源的、 纯 java 的、轻量级的支持多种可执行流程语言的商业流程管理(bpm)工作流引擎。 他可以运行在任何 java ee 应用服务器或者简单的配置了 jdbc 的 jvm 中。实际生产中 有很多种可执行的流程语言,每种语言都是面向特定的业务环境。jbpm 允许这些不同的 流程语言都在同一种技术上建立模型,也就是流程虚拟机(pvm)。jbpm 目前支持三种 不同的流程语言:jpdl,ws-bpel 和 seam 框架的 pageflow。未来 jbpm 还会支持更多 的流程定义语言。jbpm 提供了开发流程、发布流程、执行流程、管理角色任务、管理商 业流程、协调 web service 等功能。 jbpm 最大的特色是它的商务逻辑定义没有采用目前的一些规范,如 wfmc、xpdl,bpml,ebxml,bpel4ws 等,而是采用了它自己定义的 jboss jbpm process definition language (jpdl)。jpdl 认为一个商务流程可以被看作是一个 uml 状态 图。jpdl 就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换, 过程图型化的流程定义,直观地描述业务流程。 jbpm 的另一个特色是它使用 hibernate 来管理它的数据库。hibernate 是目前 java 领 域最好的一种数据存储层解决方案,只要是 hibernate 支持的数据库,jbpm 也就支持。通 过 hibernate,jbpm 将数据的管理职能分离出去,自己专注于商务逻辑的处理。使用 jbpm 开发工作流的一般流程步骤: 1)jbpm 的运行需要数据库的支持,因此系统设计时要选定所用数据库。只要是 hibernate 支持的数据库,jbpm 就支持。数据库的初始化可以由 jbpm 自动完成,也 可以通过 ant generate.ddl 任务生成 sql 语句,在 jbpm 外部自己创建所需的表。 2)使用 jpdl 定义工作流,生成 processdinination.xml 文件。可以采用 gui 工具 gpdl,xml 的 dtd 定义文件在 jbpm 下载包中。 3)将流程定义持久化到数据库上。 4)利用 jbpm api 函数开发相应的工作流程。 2.1.2 jbpm 的工作原理的工作原理 jbpm 工作流引擎是一个具有很大灵活性和扩展性的轻量级工作流管理系统。从 jbpm2.0 开始,它和 jboss 联手成为了 jboss 企业中间件平台的重要部分。以后版本中命 名都是 jboss jbpm x.x.。它使用 hibernate 来管理它的数据库。hibernate 是目前 java 领 域中最好的一种数据持久层解决方案。jbpm 的原理是应用调用 executionservice.startproces- sinstance()启动流程,引擎产生任务,等待任务的所有者调用 executionservice.end.0fstate()指令来完成任务。当 0fstate 指令被调用后,引擎就进行运算 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 4 产生的新的任务。然后继续等待 0fstate 指令的调用直到流程结束。引擎只对 state 产生任 务,对其他的节点比如:process-state、fork、decision、join 都不产生任务。只对他们进 行运算,执行每个节点的 delegation 和 action。 工作流引擎的接口用例图描述为图2-1。流程定义接口允许开发者和业务分析人员共 同来定义业务流程,在jbpm中流程定义语言用jpdl(jbpm process definition language) 来定义,从jboss jbpm3.0开始就有图形化的流程定义工具了。执行接口允许用户或系统 触发流程示例(流程示例process instances,即是流程定义的执行),在执行接口中的两个重 要方法就是开始一个流程示例和结束流程示例。应用接口描述了工作流系统和外部系统的 交互,当用户或系统管理流程示例执行时,事件就会产生。流程定义中可以指定在某事件 发生时要执行的程序逻辑。程序逻辑可以和系统之外的其它应用交互。通过监视接口用户 可以看到流程的执行情况。在整个执行过程中,工作流引擎会监视整个流程的全过程。 图 2-1 工作流引擎的接口用例图 2.2 ssh 框架简介框架简介 2.2.1 struts2 框架框架 从数据流图上看,struts2 与 webwork 相差不大,struts2 同样使用拦截器作为处理 (advice)。以用户的业务逻辑控制器为目标,创建一个控制器代理。控制器代理负责处理 用户请求,处理用户请求时回调业务控制器的 execute 方法,该方法的返回值将决定了 struts2 将怎样的视图资源呈现给用户。 图 2-2 显示了 struts2 的体系概图。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 5 图 2-2 struts2 体系结构概图 struts2 框架的大致处理流程如下: 1)浏览器发送请求,例如请求/mypage.action、/reports/myreports.pdf 等。 2)核心控制器 filterdispatcher 根据请求调用合适的 action。 3)webwork 的拦截器链自动对请求应用通用功能,例如 workflow、validation 或文件 上传等功能。 4)回调 action 的 execute 方法,该 execute 方法先获取用户请求参数,然后执行某种数 据库操作,既可以是将数据保存到数据库,也可以从数据库中检索信息。实际上, 因为 action 只是一个控制器,它会调用业务逻辑组件来处理用户的请求。 5)action 的 execute 方法处理结果信息将被输出到浏览器中,可以是 html 页面、图 像,也可以是 pdf 文档或其他文档。此时支持的视图技术非常多,既支持 jsp,也支 持 velocity、freemarker 等模板技术。 2.2.2 hibernate 架构架构 hibernate 是一种比较新的 o/r 映射框架,它帮助基于普通的 java 对象模型的持久对 象的创建,从而允许持久对象拥有复杂的结构如混合类型:集合和属性,还可以拥有用户 自定义的类型,使得这些持久对象可以有效地反映出底层数据库模式的复杂结构。 hibernate 依赖运行期反射,在运行期收集关于对象和它们相应的数据库映射的信息,这 就废除了持久层内对象数据库映射的硬编码。这样,hibernate 使得持久层以该层代码的 最小修改就能适应底层数据库模式的任何未知变化。为了提高效率,hibernate 还包括了 一些策略,如与数据库交互时的多重最优化,包括对象的缓存、有效外部连接的获取。必 要时,sql 语句的执行等。通过以上的优化策略采用,hibernate 的过程开销一般比 jdbc 少 10%。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 6 图 2-3 展示了 hibernate 的工作原理,从该图中很清楚地了解到 hibernate 框架是在 物理数据库之上利用一些配置文件如 perties (现在改变为 hibernate.cfg.xml 文件)、xmlmapping(映射文件)等来为应用系统提供数据持久化方面的服务,同时达 到将应用系统的持久层与不同的物理数据库系统相互隔离开的目的。 图 2-3 hibernate 框架的工作原理图 hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的 运行方式。在轻型体系中,应用程序提供 jdbc 连接,并且自行管理事务,这种方式使用 了 hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 jdbc/jta api 都被抽象了,hibernate 会照管所有的细节。 2.2.3 spring 框架框架 spring 是一个轻量级的 ioc 和 aop 容器框架。容器的主要功能有反向控制和面向切 面编程两方面。 反向控制:spring 提倡使用反向控制(ioc)来实现松耦合。实体对象通过 ioc 控制是 被动接收依赖类而不是自己主动去找,也可以将 ioc 理解为 jndi 的反转对象不是从 容器中查找它的依赖类,而是容器在实例化对象的时候主动将它的依赖类注入给它。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 7 图 2-4 spring ioc 容器 面向切面:spring 对面向切面编程提供了强大的支持, 通过将业务逻辑从系统服务 (如监控和事务管理)中分离出来,以实现内聚开发。系统对象只做它们该做的业务逻辑, 它们不负责其他的系统问题(如日志和事务支持)。 图 2-5 spring aop 简单示例 spring 通过简单的组件配置就可以组合成一个复杂的系统。spring 容器中对象是通 过 xml 文件配置组合起来的。并且 spring 提供了很多基础功能(事务管理,持久层集成 等),这使开发人员能够专注于开发应用逻辑。spring 作为一个容器,包含并管理系统对 象的生命周期和配置。开发者可以通过配置来设置系统的 bean 类型,是单一实例还是每 次请求产生一个实例,并且设置实例之间的关联关系。同时,spring 容器没有像重量级 ejb 容器那样庞大、笨重。所有 spring 的这些特性使开发者的代码更加清晰,更容易管 理,更容易测试,这也为在 spring 框架下开发各种子框架打下了很好的基础。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 8 图 2-6 为 spring 的模块图。 图 2-6 spring 模块图 2.3 spring 与与 ejb 的对比的对比 2.3.1 框架对比框架对比 spring 框架虽然非常流行但并不是个标准的开源框架。他主要由 interface21 inc 研发 和控制。spring 框架结构是基于依赖注入(dependency injection (di)的设计模式。他能 独立或在现有的应用服务器上运行,而且大量地使用了 xml 设置文件。 ejb3.0 是由 java community process (jcp)制订的标准框架,为所有主要的 j2ee 厂 商支持。jboss 已提供了试用版 ejb3.0 标准的开源或商业性质实现。ejb3.0 充分利用了 java 的注释。 这两个框架结构都有一个一起核心设计理念:将中间服务传递给耦合松散的 pojos (plain old java objects, 简单洁净 java 对象)。这样的框架利用截取执行上下文或在运行 时将服务对象注入 pojo 来把应用服务“缠绕”到 pojo。pojo 本身并不关心这种“缠 绕” ,对这种框架结构也没有什么依赖。因此,研发者可专注于业务逻辑和脱离框架的 pojo 单元测试。除此之外,由于 pojo 并不须要继承框架的类或实现其接口,研发者能 够极其灵活地搭建继承结构和建造应用。 表 2-1 spring 与 ejb 的部分比较 框架springejb ioc 容器, aop 能力 ioc 的能力更强,使用 xml 实 现,更加灵活。 aop 方面,如果需要彻底的 aop,并且在 spring 中集成了 aspectj,那么 ejb3 自然无法比 拟。 使用 annotation 实现。对于一些 相对比较固定的注入,采用 annotation 更好。 如果项目以够用为原则,只需要 一般方法拦截意义上的 aop,ejb3 提供的各种回调方法 应该可以满足您的要求了。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 9 事务处理 通过提供 transaction tem-plate 以及集成第三方事务处理器来支 持 jta,支持申明式事务。 不支持嵌套事务 系统规模适合中大型系统 ejb2 适合大型系统;ejb3 适合 中大型系统 开发效率 可挑选只适合自己的功能实现, 相对 ejb 稍简单。 学习曲线长,导致熟练掌握难。 分布式没有提供分布式功能适用于分布式场合 2.3.2 结论结论 尽管 spring 和 ejb 有着同一个设计理念,但它们的设计角度根本不同。ejb 的设计 思想考虑的是为分布式的应用服务的。也正是因为这个原因使得开发一个 ejb 不难,但 开发一个好的 ejb 却非常难。此外对于中小型的应用项目而言,基本不采用分布式的解 决方案。spring 就是为了解决非分布式而诞生的。它不只是能使用 hibernate 这样的 orm 框架,同样也可以使用 jpa,而且它也越来越与应用提供服务商无关了,很容易在不同应 用服务中进行移植。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 10 第第 3 章章 系统设计系统设计 3.1 系统总体架构设计系统总体架构设计 由于体育赛事管理需要采集的信息相对复杂,所涉及的用户面较广,包括系统超级 管理员,系统管理员,会员等在内的多级用户。因此,系统总体架构设置需要设置成为 具有网络化、可扩展性以及较高可靠性的多层体系结构。为此系统按照三层架构系统进 行分析、设计和部署。将存储会员、赛事等信息的数据层,执行提交,审核,驳回以及 其他业务操作的逻辑层,以及用户操作界面的页面表现层进行分离。从而满足系统的网 络化应用的需求,并且提高了系统的可扩展性。 具体的系统逻辑架构(如图 3-1 所示) 。 图 3-1 系统逻辑架构图 该架构具有以下特点: 1)在不重新设计系统的前提下,可以将系统的不同层分布在不同物理硬件上,减轻单 一设备运行的性能压力。 2)在不重新设计整个软件系统的前提下,当表现层,逻辑层,数据层发生变化的情况 时,可以进行有效的扩展。 3.2 系统框架模式设计系统框架模式设计 为了降低模块的耦合性,提高模块的重用性和适用性,本系统采用了典型的分层结构 构架,分别是 dao(hibernate 实现)、service(spring 实现)、action(struts2 实现) 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 11 三层,前台页面采用 freemarker 模板技术生成,摒弃了传统的 table 布局,采用 css+div。 视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码, 同样,一个应用的业务流程或者业务规则的改变只需要改动 mvc 的模型层即可。因为模 型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。随着技术的不 断进步,现在需要用越来越多的方式来访问应用程序。mvc 模式允许你使用各种不同样 式的视图来访问同一个服务器端的代码。这样表示层的改变只需要改变视图层的实现方式, 而控制层和模型层无需做任何改变。分层模式降低开发和维护用户接口的技术含量成为可 能,同样使得开发时间得到相当大的缩减,使程序员集中精力与业务逻辑,界面程序员集 中精力与表现形式上。分离视图层和业务逻辑层也使得该系统更易维护和修改。 图 3-2 mvc 架构图 以下是各层的介绍: 3.2.1 action 层层 action 层主要有 struts2 实现,struts2 摒弃了 struts1 所用的 actionservlet,action- context 等内容。struts2 使用了 filterdispatcher 做为它的核心控制器,器 filterdispatcher 通常是过滤器链中的最后一个过滤器。请求发到 filterdispatcher 后,经过它的一系列调用 把业务结果显示个用户。如下是 struts 2 在 web.xml 中的具体配置: struts2 org.apache.struts2.dispatcher.filterdispatcher srtuts-cleanup *.action 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 12 struts2 *.action 3.2.2 service 层层 service 处理系统的业务逻辑,交由 spring 管理。同时系统的事务也交由 spring 的声 明式事务完成。下面是依赖注入 service 的配置: 3.2.3 dao 层层 dao 层是采用 hibernate 实现,hibernate 是 jdbc 的轻量级的对象封装,它是一个 独立的对象持久层框架。它使用是只需要操纵对象,使开发更对象化,抛弃了数据库中 心思想,完全的面向对象。hibernate 可以用在任何 jdbc 可以使用的场合,例如 java 应 用程序的数据库访问代码,dao 接口的实现类,甚至可以是 bmp 里面的访问数据库的 代码。下面是 hibernate 在 hibernate.cfg.xml 中关于数据库连接和数据库连接池的配置: org.hibernate.dialect.sqlserverdialect sa jdbc:jtds:sqlserver:/localhost:1433/sportsunion myconnection 123 net.sourceforge.jtds.jdbc.driver org.hibernate.cache.hashtablecacheprovider false 20 10 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 13 120 c3p0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和 jdbc2的标准扩展。目前使用它的开源项目有hibernate,spring等。 下面是hibernate在hibernate.cfg.xml中关于自动工作流的相关数据表和部分实体类的配 置: none true 3.3 系统的功能模块设计系统的功能模块设计 本系统从功能划分,可以分为各级管理员管理系统、会员中心等。 1)管理员管理系统包括:教练管理、赛事新闻管理、投诉管理、任务管理、网球和羽 毛球比赛管理、篮球比赛管理、会员管理、公告管理、视频管理、首页静态管理等一级功 能模块(如图 3-3 所示)。 网球、羽毛球比赛管理使用了工作流技术,是本系统的重点和难点,将会在本章接下 来部分进行详细讲解。 图 3-3 系统管理员管理系统(部分) 2)会员中心包括:会员基本信息、我的约球、密码修改、我的装备、我的比赛、我的 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 14 消息、我的投诉、我的任务、我的俱乐部、我的关注、我的培训、资料修改、我的约球 等一级功能模块(如图 3-4 所示) 。 约球模块也使用了工作流技术,将会在本章接下来部分进行详细讲解。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 15 图 3-4 会员中心(部分) 3.4 系统工作流设计系统工作流设计 在基于工作流的管理信息系统设计中,由于实际工作流比较复杂,需要将其流程转 换为适合计算机工作的工作流。工作流发可以很好的完成此项工作。本系统采用开源工 作流框架 jbpm4.3 实现流程化。 3.4.1 羽毛球、网球比赛流程介绍羽毛球、网球比赛流程介绍 羽毛球、网球比赛的整个流程是本系统重点和难点,管理员登录后进入发布比赛页 面,填写包括比赛名称、主办方、赞助商、比赛类型(羽毛球单打、羽毛球双打、网球 单打、网球双打) 、比赛制(8 人制、16 人制、32 人制、64 人制、128 人制) 、参赛人数、 赛事信息、报名截至时间、比赛条件(会员等级和积分限制)等比赛信息并发布比赛。 此时会员可以自主报名此场比赛,也可以委托管理员代替报名,管理员获取此场比赛的 所有会员后进行审核,审核有三种状态,分别为批准,待定,驳回,被批准的会员可以 参加比赛,待定的会员在之后的流程中可能会被设置成可以参加比赛,被驳回的会员就 直接淘汰不能参加这场比赛。如果报名的会员人数不足,相应的对阵图位置将会有轮空 代替。确定参赛会员后,管理员设置每一轮的积分和比赛对阵图,之后被批准可以参赛 的会员需要进行投票是否要参加这场比赛,有时为了强制举办比赛,系统管理员可以进 行强制投票使比赛继续往下进行。如果会员同意人数不到此场比赛设置的同意人数,此 比赛流程结束。投票通过之后进行比赛,管理员记录每一轮的成绩和情况生成下一轮对 阵图,结束所有轮次后会生成一张临时比赛结果排名图,并且公示给会员,如果会员对 结果有异议,并且查证属实,管理员驳回流程,修改对阵结果并重新生成排名图,直到 所有参赛会员都没有异议后管理员确认排名图,轮次积分分配给相应的会员。整个流程 图如图 3-5 所示: 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 16 图 3-5 羽毛球、网球比赛流程图 3.4.2 会员约球流程介绍会员约球流程介绍 用户注册并通过管理员审核成为本系统的会员之后会有相应的会员中心,通过该中心 会员可以预约球馆,参加培训,加入俱乐部,进行装备交换,会员互相约球,完成管理 员发布的任务,发送站内信,收藏赛事新闻,如果是羽毛球、网球类型的会员还可以单 独参加比赛获取积分,篮球类型会员必须接受俱乐部的邀请,加入俱乐部后以集体的方 式参加比赛,并且只有被设置为主力的会员才能获得积分。其中会员约球是工作流技术 在本系统中的再一次应用,只要是本系统的会员都可以发起约球流程。会员登录会员中 心后,进入我的约球界面,选择约球类型(羽毛球单打、羽毛球双打、网球单打、网球 双打) ,填写约球信息、队友(如果是单打则没有队友) 、被约成员(如果是单打只需填 写一名被约成员,否则必须填写两名被约成员) 、公证人(用于记录约球比赛成绩,类似 与裁判) 、比赛信息等信息后,发起约球。被约成员登录本系统后会看到相应的待处理任 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 17 务,假设被约会员都同意约球,约球流程继续,并进行比赛,公证人记录比赛结果和相 关比赛信息,约球比赛结束后公证人负责导入比赛成绩。如果其中有一个被约会员不同 意约球,他必须填写不同意的原因并驳回流程,这时流程重新返回到发起约球的会员这 里,该会员查看原因做出相应处理后使流行继续顺序执行。整个流程图如图 3-6 所示: 图 3-6 会员约球流程图 3.5 系统数据库设计系统数据库设计 3.5.1 系统概念设计系统概念设计 本系统 er 图分析如图 3-7 和 3-8 所示。主要实体为用户、会员、参赛组、会员等级、 会员公告、会员视频,球馆、俱乐部、年度联赛、联赛场次、教练、培训、羽毛球和网 球比赛信息、约球信息、任务、投诉、赛事新闻、站内信等。 图 3-7 列出了与羽毛球、网球比赛相关的基本 er 图,其中羽毛球和网球比赛信息、 参赛组、比赛记录模板是实体,比赛名次、比赛报名、比赛记录属于个实体之间的联系。 羽毛球、网球比赛信息包括该场比赛的 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 18 基本属性,比赛名次包括名次、分等属性,比赛记录模板用来记录对阵图的位置号,主 要包括位置号、后续位置、轮次等属性,比赛报名包括报名时间、报名状态、参赛组号、 确认组号等属性,比赛记录包括晋级比分、轮次积分等属性,参赛组包括会员编码、参 赛组号、参赛组类型等属性,确认组包括会员编码、确认信息组号、确认状态等属性。 由于存在羽毛球、网球双打类型,所以用参赛组来保存参赛队伍。参赛组和羽毛球、网 球比赛信息之间存在三种多对多联系,分别为比赛名次、比赛报名、比赛记录。其中比 赛记录保存了三个实体之间的多对多联系。 图 3-7 羽毛球、网球比赛 er 图 图 3-8 是会员中心的部分 er 图。其中俱乐部、培训、教练、会员、球馆、装备为实 体,培训报名、球馆预约、会员俱乐部所属关系为各个实体间的联系。 会员包括会员等级编码、用户编码、年度胜场数等属性,俱乐部包括队长编码、俱乐 部名称、俱乐部赛季积分、俱乐部历史积分等属性,用户包括用户编码、用户类型、用 户登录名等属性,培训包括培训信息编码、会员编码、报名时间、报名状态、评分等属 性,球馆包括球馆名称、球馆地址、联系电话、场地数等属性,球馆预约包括会员编码、 球馆编码、预约时间等属性。会员与俱乐部存在一对一的管理联系和多对多的所属关系、 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 19 会员与球馆存在一对一的管理联系和多对多的球馆预约联系,会员与培训存在多对多的 培训报名联系,教练与培训存在一对多的发布联系,会员与装备之间存在一对多的拥有 联系。 图 3-8 会员中心 er 图(部分) 3.5.2 统物理数据模型简介统物理数据模型简介 羽毛球、网球比赛信息的记录是本系统的核心之一,牵涉到发起一场比赛之后相应 的报名信息,其中包括单打报名和双打报名,并还涉及到参赛组信息(本系统不管是单打 或双打都是通过参赛小组实现)。管理员审核参赛小组后发起比赛时会生成比赛对阵图, 该信息被记录到比赛记录信息表中。比赛发起后会员确认参赛,该信息被记录到确认信 息表中。管理员在选择会员晋级时会涉及到后续位置,该信息被记录在比赛记录模板信 息表中。比赛结束之后会有名次、积分等信息,该信息被记录在比赛名称表中。下图为 羽毛球、网球比赛信息得物理设计图: 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 20 图 3-9 羽毛球、网球比赛模块物理设计图 本系统的另一个核心是会员中心信息相关的部分。会员信息表是本系统的核心表。 会员参与本系统的所有操作,包括参加比赛、管理俱乐部、关注赛事信息,交换装备, 相互约球,球馆预约等。下图为会员中心信息的物理设计图: 图 3-10 会员中心模块物理设计图 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 21 3.5.3 jbpm4.3 数据表简介数据表简介 本系统还涉及到流程数据,在 jbpm4.3 数据库中生成了 18 张表,当发布一个流程 deploy 后,jbpm4_deployment(流程定义表)新增一条记录,jbpm4_deployprop(流程定 义属性表)新增三条记录,jbpm4_lob(存储表)新增一条记录,当开始一个流程 startprocessinstancebykey 后,jbpm4_execution(流程实例表)新增一条记录, jbpm4_hist_actinst (流程活动实例表)新增一条记录,jbpm4_hist_procinst(流程实例历 史表)新增一条记录,jbpm4_hist_task(流程任务实例历史表)新增一条记录, jbpm4_task(任务表) 新增一条记录。流程定义相关的部署信息存储在 jbpm4_deployment、jbpm4_deployprop 及 jbpm4_lob 中。jbpm4_hist_procinst 与 jbpm4_hist_actinst 分别存放的是 process instance、activity instance 的历史记录。 jbpm4_execution 主要是存放 jbpm4 的执行信息,execution 机制代替了 jbpm3 的 token 机制。jbpm4_task 存放需要人来完成的 activities,需要人来参与完成的 activity 被称为 task。jbpm4_participation(参与者表) 存放 participation 的信息,participation 的种类有 candidate、client、owner、 replaced assignee 和 viewer。而具体的 participation 既可以 是单一用户,也可以是用户组。jbpm4_swimlane(泳道表), swim lane 是一种 runtime process role。通过 swim lane,多个 task 可以一次分配到同一 actor 身上。jbpm4 _variable(上下文表)存的是进行时的临时变量。jbpm4_hist_detail(流程历史 详细表) 保存 variable 的变更记录。jbpm4_hist_var (流程变量历史表)保存历史 的变量。jbpm4_hist_task(流程任务实例历史表)保存 task 的历史信息。 jbpm4_id_group(组表) 、 jbpm_id_membership(用户角色表) 、 jbpm4_id_user (用户表)这三张表基本的权限控制, 、jbpm4_job(定时表)存放的 是 timer 的定义。jbpm4_property (流程实例历史表)是 jbpm 引擎参数表。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 22 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 23 第第 4 章章 系统实现系统实现 4.1 jbpm 框架的应用框架的应用 本系统的关键点在于使用 jbpm 框架实现任务处理的流程化和会签的流程控制,解 决方案如下: 4.1.1 任务处理流程化任务处理流程化 图 4-1 本系统羽毛球、网球比赛流程图 本系统的羽毛球、网球比赛管理模块中我们预先用 jbpm 特有的 jpdl 定义好了流程 的轨迹。从管理员填写比赛信息到结束比赛程序会按照图 4-1 的节点顺序一步一步往下执 行,每执行到一个节点都会自动产生相应处理人员的相应任务,只有处理人员处理完成 对应任务时程序才能继续往下执行。下面是羽毛球、网球比赛流程定义的配置文件,流 程图形界面有图已有 4-1 给出。 温州医学院本科毕业论文 业余体育联盟系统基于工作流的会员中心、系统管理平台设计与实 现 24 图 4-2 羽毛球、网球比赛流程定义 4.2 羽毛球、网球比赛的实现(会签)羽毛球、网球比赛的实现(会签) 会签是撰拟公文的过程中,主办单位主动与有关单位协商并核对签属的一种办文程 序,一般当公文的内容涉及本单位的多个部门或与其它单位有关时,需要进行会签。会 签根据对象的不同分为内部会签和外部会签。在管理系统中的会签流程,例如公司职员 离职、大学生毕业离校都要在不同的部门去签字确认,这里去哪个部门签字没有顺序之 分,但所有部门签字完毕后才可以离职或离校。 管理员审核报名后,要等待会员确认是否参赛,由于每个会员都要参与确认且无先 后顺序。本系统使用了会签实现类似投票参赛的会员确认功能。管理员可以设置会签百 分比,以规定会员同意人数占参赛人数百分比大于或等于该百分比时就举办比赛否者放 弃举办比赛,流程结束。 图 4-3 羽毛球、网球比赛列表 为了实现会员会签本系统采用了主流程加上子流程的方式模拟,管理员发起比赛后 随即产生一条主流程,该流程贯穿一场比赛。随后会员报名,管理员审核会员报名排好 对阵图后,有多少会员被审核通过就会产生多少条子流程与主流程对应。此时主流程等 待,相应会员就会产生参赛确认的任务。每执行一次确认操作就结束 1 条子流程,只到 结束达会签百分数量的子流程后主流程被激活,流程继续执行。以下是产生子流程睡眠

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论