java实现工作流_第1页
java实现工作流_第2页
java实现工作流_第3页
java实现工作流_第4页
java实现工作流_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、前前 言言 在网络技术和移动电话严重渗入社会生活各个层面的今天,传统的电信号线业务面临着巨大的 压力和挑战,为了能更好地生存和拓宽他的业务,迫切需要及时变革,而基于工作流的方案则是一个 很重要的方向。基于 Web 技术的固定电话装机系统可以借助于遍布全球的 Internet 进行,使得固定 电话业务以流水线的工作原理和效率来实现,并以统一的数据来联系各个部门,减少了各部门的接触, 也即为了公司节省了时间,间接地节省了成本,加快了中国电信服务的处理效率,留住了客户.另外, 各个部门可以分散在几个地方,只需要通过网络就可以进行相关处理,大大拓展了业务的灵活性。 固定电话装机系统的实现技术有多种,本

2、文采用 Web 技术实现。Web 技术超越了传统的“客 户机/服务器”两层结构,采用了三层体系结构:用户界面层/事务层/数据库层。因此 Web 结构有着 更好的安全性。在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上, 数据存储在数据库服务器上(事务层和数据库可以是同一台机器) 。 服务器端程序的实现技术也很多,本文选用了当前比较流行的网络编程技术JSP 作为主要 实现手段(配合 Java Servlet、Java Bean、HTML、MVC 架构等) 。JSP 作为一种 Web 实现技术,它 的效率是非常之高的。这一点正好符合了固定电话系统所要求追求的效率。JSP 自

3、身的安全性,再 加上实现模式的特点,保证了客户资料大不丢失。除此之外,作为 Java 平台的一部分,JSP 拥有 Java 语言“一次编写,各处运行”的特点。又随着越来越多的服务器供应商将 JSP 支持添加到他们的产 品中,这样一来用 JSP 做成的这套系统可以轻松移植到其它平台来运行。 1 概概 述述 1.1 选题背景 固定电话业务前几年在亚洲有四个市场成长最快,它们分别是中国、印尼、印度和越南。而日本、 韩国、香港和新加坡则是移动电话渗透率最高的地区,亚洲地区在未来 3-5 年内将成为世界增长幅 度最为快速的市场,年增长率预计在 9%左右;预计 2010 年将超过北美成为全球最大的通讯市场

4、。 2006 年,亚洲电信业市场竞争进一步加剧,传统固定电话营收和用户量增长继续放缓。相反, 亚洲移动通讯业的发展却是异常迅猛,增长速度最快的是印度。 上述统计数据表明了传统的电信业务面临着前所未有的压力,针对此种种压力,固定电话装机 业务需要改善自身的服务同办事的效率,成了未来它发展的救命稻草。而才用新的技术、新的方法 来提高他的效率是其唯一发展的途径。而我所采用的方法是基于工作流、MVC 开发模式、 JSP+JavaBean+Servlet 的技术,使用开源的 MyEclipse 和 Tomcat 来重新完善固定电话装机协同办公 系统。 1.2 组织结构 1、概述 2、所用的相关技术和方法

5、 3、系统需求分析 4、系统总体设计 5、详细设计同编码 6、系统测试与维护 7、开发难点与技术 8、结束语 2 所用相关技术和方法所用相关技术和方法 2.1 工作流 2.1.1 什么叫工作流 工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化” ,它主要解决 的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实 现某个预期的业务目标,或者促使此目标的实现” 。 简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组任 务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每

6、个任务(或活动)的描述。 工作流在大多数的实际应用中的情况可以这样来简单地描述:在网络、服务器和多台计算机客 户端的硬件平台上,业务过程按照预先设定的规则并借助应用程序和人对相关数据的处理而完成。 例如,在日常办公中,当撰写好某份报告之后,可能需要将其提交给领导进行审阅或批示;审批意 见可能需要汇集并提交给另外一个人,以便对报告进行进一步的修改。这样,可能会形成同一篇文 档在多个人之间的顺序或同时传递。对于这样的情况,我们可以使用工作流技术来控制和管理文档 在各个计算机之间自动传递,而非手工传递。这就可以称之为工作流。 类似的关于文档的自动化处 理只是工作流技术的一种简单应用。事实上,工作流技

7、术在现实生活中能够完成更多更复杂的任务。 如企业(或机构)内部的各种数据或信息的自动处理,多种业务流程的整合,企业(或机构)之间 的数据交换,借助 Internet 技术实现跨地域的数据传输和处理等等。8 2.1.2 工作流发展 工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未普及, 网络技术水平还很低以及理论基础匮乏,这项新技术并未取得成功。1983 年至 1985 年间,在图像 处理领域和电子邮件领域出现了早期的含有工作流特征的商用系统。 进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建设的日益完善, 使得工作流技术的研究与开发进入了一个新的

8、热潮。1993 年 8 月,第一个工作流技术标准化的工业 组织工作流管理联盟(Workflow Management Coalition,简称 WFMC,下同)成立。1994 年, 工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工 业标准。与此同时,关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来。 进入二十一世纪以来,工作流技术已被越来越多的人认可,与之相关的标准规范、工作流引擎及商 业产品不胜枚举。人们在开发推广工作流产品的同时,更加注重工作流的理论研究,以推动该项技 术走向成熟。8 2.1.3 工作流的优点 实施工作流带来的好处,可

9、以归纳为以下几点: 1、要处理的事项已自动传递到个人电脑上 2、不再需要对员工进行流程的培训,平滑实现流程变更 3、员工只需将精力集中在处理自己关心的数据上 4、随时得到历史数据 5、随时生成处理效率报表 6、达到无纸化办公的目标 7、全支持移动办公,使作业同步化 8、科学管理更进一层,办公效率明显提高 9、企业的核心竞争力将有提升 10、通过流程自动化与数据库集成,以及各类表单统计查询功能,提高决策能力 8 2.2 MVC 工作模式 MVC 英文即 Model-View-Controller,即把一个应用的输入、处理、输出流程按照 Model、View、Controller 的方式进行分离,

10、这样一个应用被分成三个层模型层、视图层、控制 层。 视图(View)代表用户交互界面,对于 Web 应用来说,可以概括为 HTML 界面,但有可能为 XHTML、XML 和 Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用 可能有很多不同的视图,MVC 设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户 的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订 单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模 型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业

11、务流程的处理过程对其它层 来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是 MVC 最主要的核心。目前流行的 EJB 模型就是一个典型的应用例子,它从应用技术实现的角度对模 型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉 你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可 以专注于业务模型的设计。MVC 设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的 层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。 MVC 并没有提供模型的设计方法,

12、而只告诉你应该组织管理这些模型,以便于模型的重构和提高重 用性。我们可以用对象编程来做比喻,MVC 定义了一个顶级类,告诉它的子类你只能做这些,但没 法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持 续化) 。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有 关数据库的操作只限制在该模型中。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。 划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么

13、样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接, 控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符 合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的 控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时 发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型 的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图 1

14、 所示。 2.2.2 MVC 的具体实现 视图是模型的表示,它提供用户交互界面。使用多个包含单显示页面的用户部件,复杂的 Web 页面可以展示来自多个数据源的内容,并且网页人员,美工能独自参与这些 Web 页面的开发和维护。 在 ASP.NET 下,视图的实现很简单。可以像开发 WINDOWS 界面一样直接在集成开发环境下通过 拖动控件来完成页面开发本。本文中介绍每一个页面都采用复合视图的形式即:一个页面由多个子 视图(用户部件)组成;子视图可以是最简单 HTML 控件、服务器控件或多个控件嵌套构而成的 Web 自定义控件。页面都由模板定义,模板定义了页面的布局,用户部件的标签和数目,用户指定

15、一个 模板,平台根据这些信息自动创建页面。针对静态的模板内容,如页面上的站点导航,菜单,友好 链接,这些使用缺省的模板内容配置;针对动态的模板内容(主要是业务内容),由于用户的请求不 同,只能使用后期绑定,并且针对用户的不同,用户部件的显示内容进行过滤。使用由用户部件根 据模板配置组成的组合页面,它增强了可重用性,并原型化了站点的布局。 视图部分大致处理流程如下:首先,页面模板定义了页面的布局;页面配置文件定义视图标签 的具体内容(用户部件) ;然后,由页面布局策略类初始化并加载页面;每个用户部件根据它自己的 配置进行初始化,加载校验器并设置参数,以及事件的委托等;用户提交后,通过了表示层的校

16、验, 用户部件把数据自动提交给业务实体即模型。 这一部分主要定义了 WEB 页面基类 PageBase;页面布局策略类 PageLayout,完成页面布局,用 于加载用户部件到页面;用户部件基类 UserControlBase 即用户部件框架,用于动态加载检验部件, 以及实现用户部件的个性化。为了实现 WEB 应用的灵活性,视图部分也用到了许多配置文件例如: 置文件有模板配置、页面配置、路径配置、验证配置等。 控制器:为了能够控制和协调每个用户跨越多个请求的处理,控制机制应该以集中的方式进行 管理。因此,为了达到集中管理的目的引入了控制器。应用程序的控制器集中从客户端接收请求 (典型情况下是一

17、个运行浏览器的用户) ,决定执行什么商业逻辑功能,然后将产生下一步用户界面 的责任委派给一个适当的视图组件。 用控制器提供一个控制和处理请求的集中入口点,它负责接收、截取并处理用户请求;并将请 求委托给分发者类,根据当前状态和业务操作的结果决定向客户呈现的视图。在这一部分主要定义 了 HttpReqDispatcher(分发者类)、HttpCapture(请求捕获者类)、Controller(控制器类)等,它们 相互配合来完成控制器的功能。请求捕获者类捕获 HTTP 请求并转发给控制器类。控制器类是系统中 处理所有请求的最初入口点。控制器完成一些必要的处理后把请求委托给分发者类;分发者类分发

18、者负责视图的管理和导航,它管理将选择哪个视图提供给用户,并提供给分发资源控制。在这一部 分分别采用了分发者、策略、工厂方法、适配器等设计模式。 MVC 系统中的模型从概念上可以分为两类系统的内部状态和改变系统状态的动作。模型是 你所有的商业逻辑代码片段所在。本文为模型提供了业务实体对象和业务处理对象:所有的业务处 理对象都是从 ProcessBase 类派生的子类。业务处理对象封装了具体的处理逻辑,调用业务逻辑模 型,并且把响应提交到合适的视图组件以产生响应。业务实体对象可以通过定义属性描述客户端表 单数据。所有业务实体对象都 EntityBase 派生子类对象,业务处理对象可以直接对它进行读

19、写,而 不再需要和 request、response 对象进行数据交互。通过业务实体对象实现了对视图和模型之间交 互的支持。实现时把做什么(业务处理)和如何做(业务实体)分离。这样可以实现业务逻辑 的重用。由于各个应用的具体业务是不同的,这里不再列举其具体代码实例。 2.2.3 MVC 的不足 (1)增加了系统结构和实现的复杂性。 (2)视图与控制器间的过于紧密的连接。 (3)视图对模型数据的低效率访问。 (4)目前,一般高级的界面工具或构造器不支持 MVC 模式。8 2.3 JSP 技术介绍 JSP 即 Java Server Page,中文全称是 Java 服务器语言。它是由 Sun Mi

20、crosystems 公司倡导、许多 公司参与建立的一种动态网页技术标准,它在动态网页的建设中有强大而特别的功能。JSP 是 Java 阵营中最具代表性的解决方案。使用 JSP,不仅能够制作 HTML 静态页,还能够制作包含动态数据的 网页。2 2.3.1 JSP 的运行原理 在 JSP 第一次获得来自于客户端浏览器的请求时,JSP 文件将被 JSP 引擎(JSP engine)转换 成一个 Servlet,即将”.jsp”档编译成 Java Class 档。当 Servlet 引擎接收到请求后,如果设置 了使用最新的 JSP,它就会去找 JSP 档,检查该档在上次编译后是否改动过。如果改动过

21、,就会重 新编译生成新的 Servlet,最终将请求转交给编译好的 Servlet 引擎执行。如图 2 所示。 图 2 JSP 运行原理图 在编译时如果发现 JSP 文件有任何语法错误,转换过程将中断,并向客户端发出出错信息,如 果编译成功,则所转换产生的 Servlet 代码被编译,然后该 Servlet 被 JSP 引擎加载到内存中。此 时 JSP 引擎还请求了 jspInit()方法的执行,并对此 Servlet 初始化。JspInit()方法在 Servlet 的 生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该 JSP 档的请求,服务器将检查该 JS

22、P 档自最后一次被存取后是否经过修改。如果没有修改,则将请求交 还给还在内存中的 Servlet 的 jspService()方法,执行回复操作。2 由于 Servlet 始终驻于内存,所以响应是非常快的。Jsp 页面在第一次访问时由于要转化和编 译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件,所以速度非常 得快。 2.3.2 JSP 的生命周期 .jsp 首先会被服务器编译为.java 档,然后服务器自动编译.java 档生成.class 档,如果.jsp Client 客户端客户端 请求(请求(Request) Web Server 回应(回应(Response)

23、 Server extension 服务器扩展服务器扩展 Servlet engine JSP engineServlet 引擎引擎 JSP 引擎引擎 Class loader Java complier JSP parser 类载入器类载入器 Java 编译器编译器 JSP 语法分析语法分析 档的内容改变,服务器会重新生成.java 文件和.class 文件。如果有客户端访问 JSP 程序,那么 _jsp_init 方法被启动,JSP 程序以实例的形式保存在服务器内,客户端通过_jspService 方法与 JSP 程序交流数据,如果服务器关闭,JSP 程序的 jspDestroy 方法被启

24、动,然后 JSP 程序的生命周 期结束。JSP 的生命周期结构图如图 3 所示。 图 3 JSP 生命周期结构图 2.3.3 Servlet 和 JavaBean 技术介绍 java 虚拟机是 java 语言的运行环境,它是 java 最具有吸引力的特性之一。Java 程序在编译后生 成的不是某种 cpu 的指令码,而是 java 语言二字节代码。这些位元组代码指令都是在虚拟机环境下 运行的,虚拟机底层的运行系统把自己代码转化成实际的硬件调用,虽然每种操作系统的解释器各 不相同,但 java 虚拟机是相同的,这就是 java 语言跨平台的原因。现在的 jvm 通常包含 java 软件开 发包(

25、jsdk)中,jsdk 提供了 java 中最基础的类包,java 程序开发工具 JAVA2SDK 在 SUN 公司的网 站中下载。 2.3.5 JSP 访问 SQL Server 2000 数据库 安装与配置 JDBC 驱动程序 (1)找到微软公司提供的 JDBC 驱动程序:SQL Sever 2000 Driver for JDBC SP3,并安装到默 认路径:C:Program FilesMicrosoft SQL Server 2000 Driver for JDBC; (2)设置系统环境变量 JDBC_HOME=C:Program FilesMicrosoft SQL Server

26、2000 Driver for JDBC classpath=;%JDBC_HOME%libmsbase.jar;%JDBC_Home%libmssqlserver.jar;%JDBC_Home %libmsutil.jar;. (3) 将 JDBC 目录下 lib 文件夹下的 msbase.jar,mssqlserver.jar,msutil.jar 复制到 Tomecat 5.0 安装目录下的 commonlib 中。 (4)最好将 SQL Server 2000 升级一下,这样更好用,这是我从网上借鉴的经验。 在 JSP 使用 JDBC 访问 SQL Server 2000 数据库 ur

27、l 为jdbc:Microsoft:sqlserver:/localhost:1433;DatabaseName=master driver 为com.microsoft.jdbc.sqlserver.SQLServerDriver 在连数据库时还要注意 server2000 的数据库的访问权限和密码设置 /引入 sql 包io 包 at6.0,在浏览器的地址中输入 http:/localhost:8080,如 jsp 及 bean 等没有错误,一般会将你的 index.jsp/index.html 檔的内容给执行并显示。 或者是你可以在你 XML 文件中加入一个 Login.jsp,就可以指

28、定启动 Tomcat6.0 后所显示的界面。可以 为节省时间,我们可以将 http:/localhost:8080/bysj/login.jsp 设为浏览器的主页。2 2.5 系统开发工具简介 2.5.1 Dreamweaver Dreamweaver 软件是由 Macromedia 公司推出的用于构筑专业网络站点和应用程序的可视化开发 工具,该软件功能强大,具有开放式集成系统,流畅的开发进程。 Dreamweaver MX 2004 提供众多功能强劲的可视化设计工具、应用开发环境以及代码编辑支持。 使开发人员和设计师能够快捷的创建代码规范的应用程序,集成程度非常高,开发环境精简而高效, 开发

29、人员能够运用 Dreamweaver 与他们的服务器技术构建功能强大的网络应用程序衔接到用户的数 据、网络服务体系。 有了该软件,即使对 HTML 一无所知,也可以制作网页。要掌握好该工具软件用它来进行 JSP 动 态网页设计,我们需要掌握 HTML(超文本标记语言)、CSS(层叠样式表)、VBScript 或者 JavaScript 以及上面我们介绍的 JSP 技术中的内置对象,这几个基本技术或知识都可以在 Deamweaver 这么一款 软件中集成编辑使用9 2.5.2 MyEclipse 简单而言,MyEclipse 是 Eclipse 的插件,也是一款功能强大的 J2EE 集成开发环境

30、,支持代码 编写、配置、测试以及除错。 Genuitec 发布了 MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的 J2EE 工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是 J2EE IDE 市场一个重量级的选手。通过增加 UML 双向建模工具、WYSIWYG 的 JSP/Strutsdesigner、可视化 的 Hibernate/ORM 工具、Spring 和 Web services 支持,以及新的 Oracle 数据库开发,MyEclipse 5.0 继续为业界提供全面的产品。 Genuitec 总裁

31、 Maher Masri 说, “今天,MyEclipse 已经提供了意料之外的价值。其中的每个功 能在市场上单独的价格都比 MyEclipse 要高。但是,我们承诺为顾客提供全面并且可以买得起的解 决方案。按照这个传统,我们的顾客将继续享受年度订购活动的好处,该活动提供了所有发布功能 的入口以及伴随 MyEclipse5.0 一起的专业技术支持。 2.5.3 Tomcat Tomcat 是 Apache 公司组织开发的一种 JSP 引擎,由于自身具有 Web 服务器,可以作为独立的 Web 服务器使用。可以从官方网站 免费下载最新版本。它的安装和环境

32、变 量的设置与 JSDK 的差不多,这里就不介绍了。 2.5.4 SQL Server2000 作为一个完善的数据库系统,SQL Server 2000 提供了一些功能强大使用方便的数据库管理工 具。在成功安装了 SQL Server 2000 以后,我们可以在开始菜单中看到如图 4 所示的工具程序。 图 5 SQL Server 2000 服务管理器 2. 企业管理器 企业管理器将帮助我们对 SQL Server 数据库的各种对象进行管理和操作。企业管理器的操作窗 口和 Windows 文件管理器非常相似,如图 6 所示。 在企业管理器中包含二个窗口,其中左侧的窗口是以“树状目录”显示的活动

33、窗口,右侧是显 示内容的窗口。 通过单击左侧窗口中的加号可以展开各个项目包含的子项目,通过选中某个项目节点可以在右 侧的内容窗口中看到该项目包含的内容。 图 7 查询分析器 4. 其他的如事件探查器、客户端网络实用工具、服务器端网络实用工具、导入导出数据、联机 丛书在这里就省略,详情可到相关资料上进行查询。2 2.5.5 chs_sql2ksp3 Microsoft SQL Server 2000 Service Pack 3a (SP3a)是为了 jsp 能使用 SQL Server 2000 的 一款补丁。 同时为了解决 Slammer 蠕虫引起的问题而对 SQL Server 2000

34、SP3 所做的更改综合在 了一起: 可以对 SQL Server 2000 企业评估版应用 SP3a,以便将修复程序应用于该版本 SQL Server 的实例。SP3a 解决了一些客户在 SQL Server 2000 SP3 中安装 Microsoft 数据访问组件 (MDAC) 时遇到的安装问题。 3 系统需求分析系统需求分析 3.1 系统功能分析 系统需要经过有效的身份验证才可以登录。 (1)将登录本系统的身份定为八种:分别是录入室人员、收费人员、选号人员、配线人员、 112 跳线人员、程控人员、安装人员和监控经理,只有被授权的用户,并且输入正确的验证码,才 可以使用本系统的资源。 (2

35、)录入室子系统:受理申请电话装机业务;时刻查询已录入的客户资料;提供数据审查的功 能;提供对全部手续和安装都已实现的客户的数据进行备份存档,并置其在处理队列中不可见;有 能力生成工单,让客户能确认已输入的数据;提供了页面的打印;能对本年或者本月所产生的数据进 行数据挖掘和统计。 (3)收费室子系统:对已录入的客户进行收费;查询未处理的客户资料功能;查询已收费的客 户的资料;发现错误能返回给营业厅处理;能对已收费的客户进行数据核查;有能力生成工单,让 客户确认各项收费的条目;打印页面功能。 (4)用户的身份不同,使用的系统资源也不同。针对我所做的受理和收费子系统,只包括两种 用户,即录入人员和收

36、费人员,两者共享数据库,但是对于不同的人员,部分数据是不可见的。 3.2 系统性能分析 系统对运行环境的要求: (1)硬件环境 服务器端:服务器的最低配置是由建立站点所需要的软件来决定的,在最低配置的情况下,服 务器的性能往往不尽人意,现在的硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务 器端配置最高性能硬件。本服务器端的配置如下:处理器:赛扬 2.4GHz,内存:256MB,硬盘空间: 80GB,光驱:CDROM16X,显卡:SVGA 显示适配器。 客户端:因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的计 算机有很高的性价比,因此需要的配置应该高于下面的配

37、置。本客户端的配置如下:处理器:Inter Pentium166MX 或更高,内存:32MB,硬盘空间:1GB,光驱:CDROM48X,显卡:SVGA 显示适配器。 (2)软件环境 服务器端:操作系统:windows 2000 server 或 XP,网络协议:TCP/IP,WEB 服务器: tomcat,数据库:microsoft sqlserver2000,浏览器:internet explore 5.0 以上。 客户端:操作系统:windows 2000 server 或 XP,网络协议:TCP/IP 浏览器:internet explore 5.0 以上。 3.3 系统方案的确定和评价

38、 4 系统总体设计系统总体设计 4.1 系统层次模块图 系统的总体结构图如图 8 所示。 图 8 系统主功能模块图 4.1.1 营业厅模块 营业厅功能模块如图 9 所示。 图 9 营业厅管理功能模块树图 用例图如下: 图 10 营业用例图 4.1.2 收费管理模块 收费管理模块如图 11 所示。 图 11 题库管理子系统模块图 用例图如下: 图 12 收费厅用例图 4.2 系统数据流程图 电信号线业务包括八个处理流程,其整个流程的数据流图设计如图 7 所示,其中录入室的数据 收费管理 系统登陆 客户资料管理 系统管理 数据统计管理 录入人员 系统登陆 系统员管理 收费管理 处错管理 收费员 流

39、图如图 13 所示。 1、 已录入队列数据流程 1.1 受理 固定 电话 业务 D1 工单表 基本数据客户资料 1.2 读取 已录 入队 列 工单 1.3 判断 是否 已核 查 工单 1.5 要求 对数 据进 行审 核 1.5 1.4 读取 客户 的资 料 未核查工单 已核查工单 1.6 提交 下一 流程 图 13 已录入队列数据图 2、 数据统计数据流图 名称字段名称数据类型主键非空 分线盒编号 divwireidChar(10)YESYES 分线盒位置 locationVarchar(60)NONO 所属交接箱线序 beshiftboxidVarchar(10)NONO 线序 wireor

40、derVarchar(10)NONO 状态 statusChar(4)NONO 收费人员编号 CharoperidChar(6)NONO 收费日期 ChargetdateDatetime(8)NONO 续表 6 工单表 所选号码 ChonumVarchar(8)NONO 放号人员编号 NumsetperidVarchar(8)NONO 放号日期 NumsetdateDatetime(8)NONO 配线线序 AllnumordVarchar(50)NONO 5 详细设计及编码详细设计及编码 5.1 编写 JavaBean 表 7 电信号线业务系统使用的 JavaBean treataction提

41、供收费室各种操作的接口 treathander收费室各种操作的具体实现 login登陆 5.2 营业厅实现函数 表 8 电信号线业务系统营业厅主要使用的函数 5.3 收费厅主要的实现函数 表 9 电信耗线业务系统收费厅主要使用的函数 函数说明 public int error(String str,String stt) 在收费厅发现营业厅遗留的错误,进行 的相关处理,将数据返回给营业厅 public List listinfo(String str,String stt) 客户资料显示 public List listinfo1(String str,String stt) 已收费了的客户资

42、料显示 public int chargemony(String str,String stt,money money1) 收费的具体实现 publicintcheckmoney(Strin对已收费的客户进行数据核对 g str,String stt,money money1) 5.4 JavaBean 主要实现模块 5.4.1 中文字符格式的转换模块(Stringto.java) 因为 SQL server2000 中的字符集同页面所用到不同,故直接将中文数据插入数据库,会出现乱 码的情况,对信息的检索等均有影响。而我编写的此模块包含两个主要的函数,get(String str)用来从 前台

43、页面获得数据,并将其字符格式由 gbk 转换成 ISO8859-1,put(String str)用来将从数据库中取出 来的数据进行格式的转换,转换成 gbk 的格式。以下主要代码: 5.4.2 自动生成验证码(Ran.java) 针对于管理员登陆界面,需要验证码,而怎样来随机产生一个四位数字的验证码?本程序通过调用 Math.random()产生随机数,并将其加 1,乘 10000,然后截其中的 1-5 位做为验证码。大体代码:. public class Ran private String CheckCode; private Double CheckDouble; public Str

44、ing getRandom() CheckDouble = (Math.random()+1)*10000); CheckCode = CheckDouble.toString(); CheckCode = CheckCode.substring(1, 5); return CheckCode; 5.4.3 数据库的连接(ConnectionFactory.java) 本处理函数针对程序中多处用到数据库的连接而写的,可以节省空间,代码重用。 public class ConnectionFactory public static Connection getConnection()/创建数据库

45、的连接 Connection conn =null; try 5.4.4 数据库连接的关闭(DatabaseUtils.java)-只提供接口 public class DatabaseUtils public static void closeObject(ResultSet rs, Statement stm, Connection con) /关闭 rs 记录集, 并一同关闭数据库连接 此模块放在 mon 包中,因为系统管理模块有 8 个,而每块都有可能涉及到管 理员密码的修改,故放在此位置,供其他三位同学使用,来实现代码的重用。此程序段只包含一个 modify 函数,大体包含数据库的连

46、接,查找用户的合法性,以及用户密码的更新。 public static int modify(operationerBean str) ResultSet rs = null; Statement stmt = null; Connection conn = null; int flag1; try conn = ConnectionFactory.getConnection();/创建数据库连接 stmt = conn.createStatement();/ return flag1; else flag1=3; return flag1; 上的表现时间,如数据库的时间格式:2007-6-1

47、9,而在我的页面中的格式:2007 年 6 月 19 日, 此函数就是用来时间格式的转换。大体代码: public class TimeBean public static String getCurrDatetimeStr()/将日期格式化为*-*-* /获取当前日期,使得能自动获得操作日期 SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd); return sdf.format(new Date();/以字符串的形式返回 5.4.7 数据统计(counthander.java) uji; rs=stmt.executeQuery(

48、st5); else if(i=8)/来电显示开通 String st=select count(display)from workflow where display=1 and inputdate 2007-5-1 and inputdate 2007-5-31 ; rs=stmt.executeQuery(st); else return 0; if(rs.next() flag1=rs.getInt(1); System.out.println(flag1); return flag1; else return flag1; catch (SQLException e) System.

49、out.print(e.getMessage(); return 0; finally DatabaseUtils.closeObject(rs, stmt, conn); 5.4.8 营业厅的接口(luruaction.java) 这是营业厅的 Action,它通过判断从前台页面中获得的 method 参数,来跳转去执行相关的函数, 例:method=count,根据其值来执 if(method.equals(count)中的代码段,针对本代码量大,我只提供 程序的接口。 public class luruaction extends Action int flag1 = 0; public

50、 void execute(HttpServletRequest request, HttpServletResponse response) 户资料接口 else if(method.equals(checkinfo)/录入信息核对接口 else if(method.equals(delete)/删除客户资料函数接口 else if (method.equals(list) /录入后资料回显接口 else if (method.equals(addcustomer) /受理客户申请的函数接口 else if(method.equals(modifypwd)/修改密码的接口 else if(m

51、ethod.equals(modify)/从 left .jsp 页面传参数到密码修改区 else/处错处理 try request.getRequestDispatcher(./luru/result_show.jsp).forward(request, response); catch (ServletException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); 5.4.9 营业厅的主要函数实现(luruhander.java) 这是营业厅函数的具体实现,通过形成一个 luruhander 对象,来

52、调用具体的函数,因代码量大, 故只提供数据的接口。大体函数的接口: public class luruhander ResultSet rs = null; (custname,charactorid,workplace,contnum, setposi,telsort,display,longbusi,inputerid,inputdate,accflowcode)values( + lru.getCustname() + , + lru.getCharactorid() + , + lru.getWorkplace() + , + lru.getContnum() + , + lru.ge

53、tSetposi() public List count3(String mm) public int saveinfo(String str, String stt) public List luruinfo(String str, String stt) ResultSet rs = null; Statement stmt = null; ccflowcode=11 or accflowcode=; rs = stmt.executeQuery(sql); System.out.println(listcustomer); List info = new ArrayList(); lur

54、u luru1 = null; while (rs.next() luru1 = new luru(); luru1.setTelsort(住宅电话); else if (telsort.equals(comp) luru1.setTelsort(公司电话); else luru1.setTelsort(公用电话); if (display.equals(1) luru1.setDisplay(已开通); else luru1.setDisplay(还未开通); public int delete(String str, String stt) ResultSet rs = null; Res

55、ultSet rs1 = null; Statement stmt = null; e.printStackTrace(); return 0; finally DatabaseUtils.closeObject(rs, stmt, conn); 5.4.10 收费厅的主要函数接口 这是收费厅的 Action,它通过判断从前台页面中获得的 method 参数,来跳转去执行相关的 函 数,例:method=gongdan,根据其值来执 if(method.equals(gongdan)中的代码段,针对本代码量大, 我只提供程序的接口。 。大体函数的接口: public class treatac

56、tion extends Action int flag1 = 0; public treataction() public void execute(HttpServletRequest request, HttpServletResponse response) String method = null; 库客户资料函数接口 else if (method.equals(modifypwd)/修改密码函数接口 else if (method.equals(modify) /页面传参 5.5 管理员登陆模块 5.5.1 管理员登录 (1)管理员登录 输入:某部门人员姓名、密码、验证码以及从下

57、拉菜单中选择部门。 处理:判断姓名、密码和验证码是否有效,并查询此人是否属于该部门。一切输入完毕后,点 击登录按钮,系统将自动从数据库中的管理员信息表(operationer)中判断是否存在相同的管理 员、密码及相关部门,如果有则进入系统,如果不存在则提示相关错误信息。 输出;登录成功,进入管理员的系统使用资源页面,不成功则显示错误信息页面。 (2)管理员登录页面,如图所示。 图 17 管理员登录运行页面图 登录失败后进入错误显示页面,并接受从相关Action 传来的参数,显示错误。如图18 所示。 登录成功后进入相关部门的主页面。 (3)页面的主要相关代码(login.jsp) % Ran

58、randcode = new Ran(); 监控室人员 通过从页面的UserName 文本域、PassWord 文本域、select、checkcode 文本域,通过查询数据库, 来检查用户的合法性,并同时检查验证码的一致性。 根据从 select 域获得的值,来跳转到相应部门的 资源。 public void execute(HttpServletRequest request, HttpServletResponse response) DataBase source = new DataBase(); String username = request.getParameter(UserName); String password = request.getParameter(PassWord); String

温馨提示

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

评论

0/150

提交评论