已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学科技学院本科毕业设计(论文)协同设计平台的设计与实现摘 要 协同设计平台将使用在多种适合跨部门、跨公司等多种场景的企业应用,JavaEE架构软件由于深受广大java开发者的推崇而成为的B/S软件主力。本论文研究着重在于构建基于JavaEE平台搭建协同设计平台的基础流程、对程序的后期开发及维护的代码级支持。 本论文通过对企业正在使用的协同设计软件的需求分析抽象出协同设计平台的设计需求,再运用软件工程方法具体到软件设计、数据库设计、具体模块代码开发、程序打包运行等步骤,最终完成系统的开发。 在专业部门组成复杂的企业,协同设计平台将成为企业应用软件的基础。在该平台的搭建过程中逐步加深了软件开发从需求、设计到开发的整个流程,以及与基于活动流程软件创建的重要性,这都对企业软件开发和整合企业资源具有重要的意义。 关键词:协同设计;多部门协作;便于维护的系统平台The Design and Implementation Of Collaborative Design Platform Abstract The collaborative design platform will be suitable for use in a variety of cross-sectoral, inter-company and other companies using a variety of scenarios, JavaEE architecture Since the majority of java software developer to become a respected B / S software main. This thesis focuses on the process is to build the foundation to build collaborative design platform based on JavaEE platform, code-level support for the latter part of the development process and maintain.This paper analyzes the collaborative design platform abstract design requirements by demand for collaborative design software companies are using, and then use software engineering methods specific to software design, database design, code development of specific modules, packaged to run other steps, the final completion of the system Development.At specialized departments in complex corporate, the collaborative design platform will be the basis for enterprise application software. In the course of the platform to build gradually deepened software development from requirements and design to develop the entire process, and the importance of the activities created based workflow software, which have great significance on the enterprise software development and integration of enterprise resources.Key Words: collaborative design; multi-sectoral collaboration; easy to maintain system platform I目 录摘 要IAbstractII1 绪 论11.1 协同设计平台系统的研究背景11.2 系统开发的可行性研究21.2.1 对研制任务的管控缺乏有效手段21.2.2 研制过程中缺乏高效协同21.2.3 设计过程数据缺乏有效管理31.3 国内外相关系统对比研究32 协同设计平台系统组成及工作原理42.1 系统功能框架图42.2 J2EE的应用模型42.2.1 J2EE使用多层的分布式应用模型42.2.2 J2EE应用程序组件42.3 JavaEE常用企业级服务及接口介绍52.4 J2EE的优势72.5 JBPM和J2EE工作流引擎技术分析72.6 系统稳定的可用性82.7 系统技术架构设计92.8 数据架构设计102.9 系统安全控制设计112.9.1身份认证112.9.2权限控制122.9.3安全管理措施123 协同设计平台的系统设计133.1系统部署方案133.2系统的软硬件要求143.3系统的开发环境搭建143.4系统框架后台支持143.5系统数据库表设计163.5.1 数据库及其对应实体类设计163.5.2 E-R图展示173.5系统界面框架设计194 系统的软件编码实现204.1系统基础的代码实现204.2用户登录及校验204.3操作主界面实现214.4用户权限分配224.4.1权限管理224.4.2用户管理234.4.3角色管理244.4.4菜单管理244.5全面任务管理254.5.1任务管理264.5.2资金管理264.5.3客户信息管理274.5.4任务统计274.6消息管理284.6.1文件上传下载284.6.2我的消息284.7系统监控285 结 论29参考文献301 绪 论1.1 协同设计平台系统的研究背景在计算机在普通生活及办公领域快速推进的今天,各种软件工具的分散操作使得在多组、多部门、跨领域等场合而显得效率低下,计算所得的大量数据又因为没有统一的访问入口使得进一步的处理显得繁琐。协同设计平台的建设目标是,在高度开放、灵活和可扩展的平台框架上,针对燃气轮机研发特点,实现对燃气轮机设计项目流程的管控,数据的集成,知识的共享,减少研制过程中的人工重复劳动,提高工作效率和设计质量,缩短产品研制周期,主要体现在以下几个方面:1)建立以任务为核心的燃气轮机设计平台,实现设计、分析、工艺、生产任务的有序管理和资源的合理配置,保证项目状态和进度的有效控制,打通设计、分析、工艺、生产任务之间的信息流转通道,使得产品研制过程中各个参与方能够协同配合。2)通过数据关联管理、存储和管理,并进一步实现数据的关联更改和历程管理,保证数据同步和协调。3)建立企业信息化门户系统,为企业提供一个单一的访问企业各种信息资源的入口,使得企业能够解释存放在企业内部和外部的各种信息,使员工、用户以及合作伙伴能够通过这个门户从单一的渠道访问其所需的信息,形成企业管理、查询、日常业务运作及办公协作的统一入口。通过搭建协同设计平台总体框架,实现对于燃气轮机设计流程的有效管理和控制,预计将产生以下积极的效果:第一、建立项目流程一体化、分工明确、协作有序的新机研制项目管理系统,以项目任务为主线,将燃气轮机设计过程中所涉及的管理人员、工程人员,以及部门、专业、工具、数据等关键对象有效地集成并系统地管理起来,从而实现人员之间、专业之间以及业务之间的协同。第二、逐级细化、协同编制的WBS分解策略适应新机研制过程循序渐进、不断完善的特点,从而可以有效地进行进度控制管理,防止计划与控制管理之间的脱节,防范研制过程中出现的任务不明确、计划编制不合理等各种问题,保证燃气轮机设计项目按时完成。第三、项目管理与流程管理的紧密集成,即克服了燃气轮机设计过程中传统项目管理无法描述反馈、循环等复杂逻辑,项目监控实时性不足以及项目任务内部运行机制不可控等缺点,同时也克服了流程管理中缺乏对任务工期优化、成本控制及多工作流系统之间的相互协调等方面的不足。从而为燃气轮机设计带来管理理念的逐步提升、管理方法的逐步改善,提高了燃气轮机设计整体的工程与管理水平。第四、明确数据流向的任务数据定义及管理机制,可以有效解决燃气轮机设计过程中的各种数据处于分散无控状态,数据之间缺乏逻辑关系,大量数据需要人工转换,任务之间数据难以协调等问题。通过对数据的分类、集成、存储和管理,并进一步实现各类任务数据之间的关联,有力保证数据同步和协调,并很好地解决了数据同源问题,使得数据完整性、数据唯一性上的维护难度大大降低。同时,P2M中的数据管理机制即保存了结果数据也保存了获得该数据的过程和方法,从而保证了数据与过程的可重复性、可追溯性,非常适应燃气轮机设计过程中对数据的要求,使得燃气轮机设计过程中的所有数据都是可以追溯的,有利于问题的及时发现和改正。第五、目前燃气轮机设计的经验和知识都在设计人员的大脑中,不仅很难重复利用,而且造成企业很高的知识风险。在燃气轮机的工程知识管理系统中,模板有效固化了设计人员的知识和经验,从而使设计知识可以不断积累和重复使用,使企业的设计能力可以持续积累和持续提高。第六、目前燃气轮机设计的管理模式仍然很原始,造成协作效率低下,设计并行度低,管理的可视化程度也很低。燃气轮机的工程知识管理系统采用流程管理技术,通过规范化协作业务逻辑,以及状态和进度的实时监控,大大提高了协作设计的效率和质量,提高了对研制过程的控制力,并提高了企业设计体制的灵活性。1.2 系统开发的可行性研究1.2.1 对研制任务的管控缺乏有效手段 目前所内型号任务繁重,计划部门对项目管理的方式仍是传统的管理办法;缺乏有效信息化管理手段,项目研制过程无法有效跟踪,项目执行中的信息无法及时共享;项目任务分解没有层次,大部分任务进度依赖管理部门;项目执行情况不透明,多靠电话或会议沟通,信息难以实时共享;这样导致的结果,管理者对项目的进展情况无法及时掌握,须不停地通过会议或电话了解。1.2.2 研制过程中缺乏高效协同 多数设计过程涉及多个阶段、多个学科、使用多种设计/仿真工具,且研制周期较长,通常都是一个团队共同完成,研制过程中需团队紧密配合、共同协作完成系统研制任务。具体来说,研制过程中协同需求体现在以下几个方面:(1) 上下级之间的协同:包括决策层、管理层及执行层之间的信息共享及交换,比如某科室主任给设计师下达某设计任务时,需同时指明该任务的输入输出要求、需要遵循的标准规范等。(2) 各专业间的协同:如设计与仿真工具之间的数据传递、设计与工艺工具之间的数据传递等。1.2.3 设计过程数据缺乏有效管理从使用角度,用户有管理数据、设计数据、实验数据和驻场服务数据,对于设计结果归档数据、部分试验数据等绝大部分设计过程数据一般都存放在个人计算机中。设计数据没有规范性定义,每次任务迭代也产生多个版本,目前设计人员都是通过存储多个文件方式,各版本的来源、产生时间没有记录,再加上各专业数据传递都是通过邮件、目录共享等方式,数据发放与使用没有统一管理。1.3 国内外相关系统对比研究计算机与软件行业在发展中看似跌宕起伏,但总体还是一路凯歌,企业应用系统的开发一直面临着重大挑战:一方面,企业应用系统面对的是一个异构的分布式环境,它必须支持与已有系统的集成性和与其他系统的互操作性;另一方面,作为为客户、合作伙伴和企业内部提供信息服务的平台,企业系统还必须具有高可用性、安全性、可靠性和可伸缩性。这些要求再加上复杂多变的用户需求和不断伸缩的交付时间,使得企业系统的开发越来越困难。开发商和广大程序员一直在努力推动和殷切期待一个成熟、标准的企业平台来简化和规范企业系统的开发和部署。Java技术的出现,尤其是J2EE(Java 2PlatformEnterpriseEdition)平台的推出正是这种努力的结果,也使得企业系统的开发由此变得更加快速和方便。需要指出的是,J2EE本身是一个标准,它为不同厂商创建平台产品提供了标准,使不同J2EE平台产品之间的交互成为可能。协同工作是很多企业活动中必需的过程,也成为了提高员工的日常工作效率而提供的服务功能。员工可以对任何一天的工作进行安排并启动事项流程,可以及时了解需要办理的事项,进行自己的工作计划、日程安排等,这成为当前企业协同软件开发的趋势。实现协同工作的方式有很多种,本项目研究的重点是基于任务流的协同工作软件平台的搭建。当前,工作流技术得到长足的发展。1993 年成立了工作流管理联盟(Workflow Management Coalition,WFMC),此后,该组织颁布了一系列工作流产品标准,包括工作流参考模型、工作流术语表、工作流管理系统各部分间接口规格、工作流产品的互操作性标准等。这些举措加速了工作流技术的商品化。同时,许多公司都基于这些标准推出了自己的工作流产品。工作流产品主要分为两大类:一类是基础的工作流系统,提供引擎、设计器、相关接口等。应用系统的开发商可以基于此类系统开发具有工作流管理功能的应用软件。典型产品如Action Technologies Inc.的ActionWorkflow、IBM 的FlowMark等。另一类是应用了工作流技术,包括内置较完整的工作流功能,面向应用的应用级软件系统,这种系统直接面向最终用户的流程化应用。同时,系统中还往往针对应用需要,集成了其他功能。典型产品如神州数码工作流软件EasyFlow,就是以工作流技术为核心的全面的企业办公自动化(OA)产品。2 协同设计平台系统组成及工作原理2.1 系统功能框架图图 2-1系统功能框架图2.2 J2EE的应用模型2.2.1 J2EE使用多层的分布式应用模型J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,SUN设计J2EE的初衷正是为了解决两层模式(ClientServer)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议,通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的四层结构: 运行在客户端浏览器上的客户层组件 运行在J2EE服务器上的WEB层组件 运行在J2EE服务器上的业务逻辑层组件 运行在数据库服务器上的数据库系统层软件2.2.2 J2EE应用程序组件J2EE应用程序是由组件构成的。J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。 J2EE说明书中定义了以下的J2EE组件: 应用客户端程序和applets是客户层组件。Java Servlet和JavaServer Pages(JSP)是WEB层组件。Enterprise JavaBeans(EJB)是业务层组件。 客户层组件 J2EE应用程序可以是基于WEB方式的,也可以是基于传统方式的。 WEB层组件 J2EE WEB层组件可以是JSP页面或Servlets。按照J2EE规范,静态的HTML页面和Applets不算是WEB层组件。WEB层可能包含某些JavaBean对象来处理用户输入,并把输入发送给运行在业务层上的enterprise bean来进行处理。 业务层组件 业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean进行处理。一个enterprise bean从客户端程序接收数据,进行处理(如果必要的话),并发送到数据层进行储存,这个过程也可以逆向进行。有三种企业级的bean:会话(session)beans,实体(entity)beans,和消息驱动(messagedriven)beans。会话bean表示与客户端程序的临时交互。当客户端程序执行完后,会话bean和相关数据就会消失。相反,实体bean表示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体bean的数据得以保存。消息驱动bean结合了会话bean和JMS的消息监听器的特性,允许一个业务层组件异步接收JMS消息。数据库应用系统层 数据库应用系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库管理系统,和其它的遗留信息系统。例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。2.3 JavaEE常用企业级服务及接口介绍J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于WEB的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述。 1)JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。2)JNDI(Java Name and Directory Interface) JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。3)EJB(Enterprise JavaBean) J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。4)RMI(Remote Method Invoke) 正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。5)Java IDLCORBA 在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。6)JSP(Java Server Pages) JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。7)Java Servlet Servlet是一种小型的Java程序,它扩展了WEB服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。8)XML(Extensible Markup Language) XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。9)JMS(Java Message Service) JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布订阅(publishsubscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。1 0)JTA(Java Transaction Architecture) JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。1 1)JTS(Java Transaction Service) JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API(JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。2.4 J2EE的优势J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。1保存现有的IT资产 由于企业存在不断更新的商业需求,为保护投资,减少投入,如何利用已有的信息系统,避免重新开始开发就变得很重要。通常,一个以逐步完善的(而不是推倒重来的,全盘否定的)方式建立在已有系统之上的服务器端平台是企业理想的做法。J2EE架构可以充分利用用户原有的投资,它能兼容很多公司的产品,如BEA Tuxedo、IBM的产品、Inprise公司的产品以及其它很多公司的相关产品。为什么这样说,是因为J2EE拥有广泛的业界支持和一些重要的企业计算领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件平台上运行,现有的操作系统和硬件也能被保留继续使用。2高效能的开发 J2EE允许企业把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员便可以集中精力在如何创建商业逻辑上,因此相应地缩短了开发时间。很多中间件供应商提供以下这些复杂的中间件服务:1)状态管理服务,让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发;2)持续性服务,让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护;3)分布式共享数据对象服务,让开发人员编制高性能的系统,极大提高整体部署的伸缩性。3支持异构应用环境 J2EE在异构环境中可以开发和部署可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件以及硬件平台。因此设计良好的基于J2EE的程序只需开发一次就可部署到各种平台。这在异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,缩短了开发周期,节省了大量人工费用。2.5 JBPM和J2EE工作流引擎技术分析 JBPM,全称是Java Business Process Management(业务流程管理),JBPM是公开源代码项,使用它要遵循ALV(Apache License Version 2.0)和EULA(End User License Agreement)协议。它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 JBPM的业务逻辑定义没有采用目前的一些规范,如WFMC ,XPDL ,BPML ,EBXML ,BPEL4WS等,而是采用了它自己定义的JPDL(JBPM Process Definition Language)。JPDL认为一个业务流程可以被看作是一个UML状态图。JPDL就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图型化的流程定义,直观地描述业务流程。 JBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域非常流行的一种数据存储层解决方案,只要是Hibernate支持的数据库,JBPM也就支持。通过Hibernate,JBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。 JBPM的工作流程: 1)JBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。只要是Hibernate支持的数据库,JBPM就支持。数据库的初始化可以由JBPM自动完成,也可以通过antgenerate.ddl任务生成SQL语句,在JBPM外部自己创建所需的表。 2)使用JPDL定义工作流,生成processdinination.xml文件。可以采用GUI工具JPDL,但目前只支持jBPM1.0,而且bug很多。XML的DTD定义文件在jBPM下载包中。 3)Antcreate.pde生成pde包的工作目录。将processdinination.xml文件和其它需要的文件放在指定的目录下,使用antbuild.precess.archives生成pde包。pde包的格式采用jar。 4)更改pde工作目录/src/config/perties的相关属性,主要是设定相关的数据库连接信息。注意要将数据库的JDBC驱动放在pde工作目录的lib目录下。 5)Acess.archives将刚才生成的pde部署到数据库。实际上就是向数据库插入一些相关数据。 6)利用JBPMAPI函数开发相应的工作流程。2.6 系统稳定的可用性 企业通常必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足在系统上进行充分的商业运算。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 一个服务器端平台通常要必须能7X24小时运转以满足各种应用、计算的需要。因为很多业务是全球化的、无处不在的,实时的,即使短暂的停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在UNIX系统环境中,客户也可选择健壮性能更好的操作系统如SUN Solaris、IBMAIX等。最健壮的操作系统可达到99999的可用性或每年只需5分钟停机时间【30】。这是实时性很强商业系统理想的选择。2.7 系统技术架构设计 从模块化的角度,技术架构采用组件化的方式,该方式可以提高系统技术架构的灵活性和扩展性,具体组件又可分为公共技术组件、业务组件,其中: (1)公共技术组件:提供标准的、公共的技术服务组件,为业务开发提供快速的调用。这些公共技术组件包括:文件服务、日志服务、消息服务、邮件服务、全文检索、LDAP服务、CAD/CAE可视化等。 (2)业务组件:将业务系统中的一些核心功能组件化,包括任务管理、任务历程、任务执行引擎、数据版本、数据权限等。 从分层的角度,技术架构分为界面层、业务层、数据层,保证架构的底耦合性,使得整个技术架构思路清晰、分工明确。(架构分层图如图2-2)图 2-2 技术架构的层次 将公共技术组件放到分层架构中,其组织方式如下图所示。在界面层、业务层、数据层分别会用到不同的公共技术组件。平台的核心代码则集中在界面层、业务层上,在数据层面主要是一些数据库表。 将一些公共的业务功能组件放到分层架构中,其组织方式如下图所示,在界面层、业务层分别会提供一些公共的业务功能组件。 从技术开发层面,则采用了符合J2EE开发规范的技术体系,这些技术包括前端展示采用JSP、HTML、JS、CSS等技术,请求处理Spring MVC框架。 业务逻辑层中采用了Spring核心框架。通过控制反转(IoC)机制,有效分离了服务接口与具体实现之间的耦合。通过拦截器机制、面向方面的编程(AOP)模型,有效地将业务服务与基础设施分离开来。既保证了业务逻辑的处理简洁高效,也保证了基础设置的可重用性。 数据访问层主要采用的是Hibernate框架。其主要思想是将业务对象映射为数据库表,保证开发人员在充分理解领域逻辑的基础上,还能够简洁地处理其持久化问题,为“领域驱动开发”的开发模式提供框架支持。2.8 数据架构设计 在本系统的项目流程管理系统中,任务是关键模型。为了保证系统有一个统一的任务模型,需要建立一套以任务为核心的数据结构。从业务角度来说,本所产品研制工作需要在各个专业之间进行大量的组织协调,其中包含任务分派、人员协调、资源调度、进度控制、审批、数据交换等。任务流程管理系统就是用来辅助管理人员、设计人员更好地实现对任务的控制。任务流程管理系统中核心是建立任务模型,一个典型的任务模型如下图所示,分为任务层、主体层、执行机制、工具层、状态层等。其中,任务层记录了任务的内容(做什么);主体层记录任务的执行主体(谁做);执行机制层记录任务的执行机制(什么时候做);工具层记录完成任务所需的工具(怎么做);状态层记录任务的执行状态(做得怎样了);输入/输出表用于建立与外部环境的数据交互关系。除此之外,任务还与外部的任务支持、任务消息、任务约束等信息存在联系,其中任务支持包括人、财、物以及以前完成同类项任务的经验、标准等;任务消息可以触发任务运行,包括外部传来的控件消息和硬件消息等;任务约束包含时间约束、资源约束等各方面的约束。(任务模型模拟图如图2-3)图 2-3 任务模型 通过建立任务模型之间的结构关系、时间关系、逻辑关系和数据关系形成设计过程。任务的结构关系形成项目的WBS,任务的时间关系形成计划,任务的逻辑和数据关系形成流程。任务关系模拟图如图2-4:图 2-4 任务关系 数据存储采用磁盘阵列,阵列方式采用RAID 5,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5相比其他阵列方式有如下优点:l 更适合于小数据块和随机读写的数据;l 大部分数据传输只对一块磁盘操作,并可进行并行操作;l 有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。 磁盘阵列上所存储数据包括:l 数据库集群共存的文件(控制文件、数据文件);l 数据库归档日志;l 程序在运行过程中产生的日志文件;l 文件服务器保存的文件;l 部署人员需要备份的文件。2.9 系统安全控制设计2.9.1身份认证身份认证是对用户的身份进行验证,主要作用是防止非法用户使用网络资源。对于验证失败必须进行处理,当不成功验证尝试次数达到门限制时,系统拒绝该用户的访问,加以记录并自动告警。 用户输入正确的登录名和密码,点击登录,可以直接跳转到系统的主界面中。步骤说明如下:(1) 用户首先打开系统登录地址,查看到本系统登录页;(2) 用户输入正确的用户名和密码,点击登录系统;(3) 系统后台将用户信息作为参数,提交用户信息带系统中验证是否合法,如果不合法则拒绝登录,否则显示系统的主界面;身份认证失败超过三次,系统将把该用户的登录名临时冻结,冻结的时长为十分钟。并在系统中留下鉴别失败记录,以供安全审计。2.9.2权限控制 信息的访问控制,主体控制到具体用户,客体控制到信息类别。采用强访问控制策略:用户访问信息时,首先检测该用户是否能够访问此信息类别,然后检测此信息的访问控制列表中是否有该用户,最后检测该用户的密级标识是否高于或等于信息的密级标识,只有检测全部通过后,用户才能访问到此信息。也就是说,数据访问前必须要先分配权限。 本系统权限控制策略如下: (1)组织架构与用户管理 首先由系统管理员进行系统组织架构与用户的管理,组织机构信息由我所保密管理系统导出,包括组织机构、用户列表、人员角色、密级等信息,然后再导入本系统,导入导出时间间隔为半年一次。 (2)角色权限管理 设定用户后由安全管理员进行角色权限管理,包括对用户角色的新建、修改、删除、设置权限等。权限设置采用拒绝优先原则,在此可以设定每个角色的对系统各部分功能的查看和操作权限。2.9.3安全管理措施 系统根据涉密信息系统保密管理的要求,对安全管理制定了相应措施,将超级管理员权限默认分配给系统管理员、安全保密管理员、安全审计管理员,“三员”相互独立、相互制约,配合制度建设,可有效的加强涉密信息系统保密管理,减少泄密风险。系统管理员主要负责系统的日常运行维护管理,包括创建与删除用户账号、修改用户基本信息、设置用户初始口令、维护系统的参数配置、调度系统任务等,确保系统正常进行;系统管理员能查看用户账号相关日志,如登录,注销,系统产生的错误等日志;产生修改参数。安全保密管理员主要负责系统运行的安全保密管理,包括用户账号的权限划分、审查普通用户使用系统的操作日志、跟踪分析和监督检查;安全保密管理员能查看普通用户的数据修改、删除、增加等日志,权限修改等日志。安全审计员主要负责审计系统管理员、安全保密管理员的操作日志、跟踪分析和监督检查。安全审计员能够审计系统管理员和安全保密管理员的操作日志,如账号的增加和删除、权限的修改。3 协同设计平台的系统设计 协同设计平台总体框架采用集群部署的方式来支持各功能模块的建设和数据访问,系统运行硬件环境如图3-1所示:图3-1 协同设计平台总体框架运行硬件环境 如果并发用户数不多(不超过50人),可以根据各服务器功能集成在一台或两台(数据库服务器独立)服务器上,系统运行硬件环境如图3-2所示。图3-2 协同设计平台总体框架运行硬件简化环境3.1系统部署方案 服务器主机、JRE1.5及以上环境、Tomcat WEB容器、系统支持的数据库(Oracle、Mysql、Access等)、相关软件(如office)等。 部署步骤:安装好相关软件后,将程序代码部署进Tomcat并启动。 访问方式:使用浏览器-按照服务器部署的地址-用户登录。3.2系统的软硬件要求 客户端机器为论证人员的工作机,主要用来为完成某项论证工作,调用软件工具及撰写文档、查看知识等工作,工作机上运行各种应用程序和软件,并可以进行本地文档的管理以及文档的提交、查阅。 硬件环境:用户工作机即可 软件环境:(1)Windows XP SP2Win2000Win2003(2)IE6.0及以上(3)Office支持2003、2007版本(4) 相关论证工具3.3系统的开发环境搭建 安装环境JDK1.6和开发工具MyEclipse8.5 ,服务器Tomcat6.0,数据库Mysql5.0及Mysql图形化工具Navicat,具体安装步骤参照:Jdk环境变量配置,MyEclipse配置Tomcat,Mysql数据库安装方法(配置好root用户)等。3.4系统框架后台支持 根据以上关键业务技术、技术架构分析,从开发技术上选择遵循标准J2EE的开发体系,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。 在开发上遵循OOP(面向对象编程)设计原则,并采用经典的MVC设计模式,并通过Control层(请求处理)、Service层(业务逻辑)、Dao层(数据库持操作)分层技术,满足二次开发的需要。具体的开发技术包括包括四个部分:视图展现、前端控制、业务逻辑、数据访问等(1)页面展示层:页面展示层采用JSP、HTML、CSS、JAVASCRIPT等标准通用的Web开发技术。(2)前端控制层: 前端控制层采用了SpringMVC框架(模型图如图3-3所示)。 SpringMVC是架构于Spring框架之上的Web开发框架。它分离了控制器、模型对象、分派器以及处理程序对象的角色,拥有高度的灵活性、可配置性。例如,其视图技术可以选择Java Server Pages(JSP)、Velocity、Tiles、iText和POI等。图3-3 Spring MVC框架原理(3) 业务逻辑层: 业务逻辑层采用了Spring框架,它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring剖面图如图3-4所示:图3-4 Spring框架 轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有几MB的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式、典型的,Spring应用中的对象不依赖于Spring的特定类。 控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有Spring的这些特征使代码更干净、更可管理、并且更易于测试。它们也为Spring中的各种模块提供了基础支持。(4)数据访问层 数据访问层采用Hibernate技术。 Hibernate是一个面向Java环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping (ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。 Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。 Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的。不管怎样,Hibernate一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。3.5系统数据库表设计3.5.1 数据库及其对应实体类设计系统数据表(表3-5):表名称实体名描述t_s_versionsystem.pojo.base.TSVersion程序版本控制表t_s_logsystem.pojo.base.TSLog系统用户操作日志表t_s_configsystem.pojo.base.TSConfig全局参数配置表t_s_attachmentsystem.pojo.base.TSAttachment项目附件父表(其他附件表需继承该表)t_s_usersystem.pojo.base.TSUser用户权限系统用户表t_s_base_usersystem.pojo.base.TSBaseUser用户权限系统用户父类表t_s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024宾馆室内装修合同标准样本
- 2024房屋名额转让协议,房屋名额转让协议范本,写购房名额转让合同
- 2024担保合同格式参考
- 2024家教的劳动合同范本
- 2024软件开发合同标准模板
- 小区车库广告位租赁合同
- 产品临时借用协议
- 建筑业劳动合同:退休政策改革与规范
- 历史文化遗产保护拆迁合同
- 农业项目合作书参考
- GB/T 39633-2020协作机器人用一体式伺服电动机系统通用规范
- FZ/T 01002-2010印染企业综合能耗计算办法及基本定额
- 药品储备评估表
- 国家自然科学基金申请经验汇总课件
- 青春期女孩自尊自爱课件
- 2023年西藏开发投资集团有限公司招聘笔试题库及答案解析
- 小学语文人教三年级上册观察桔子孙娟课件
- 藏族人的名字标准英语翻译
- 市场营销产品组合与产品策略课件
- 医院会计实务操作培训课件
- 《江苏省建筑业10项新技术(2021)》
评论
0/150
提交评论