基于三层架构与SOA的TBM系统设计.doc
基于三层架构与SOA的TBM系统设计摘 要随着科学技术的不断发展,世界正趋于一体化、信息化和统一化。软件行业是加速这个过程的一种有力工具。就一个特定的项目来说,如何最大限度的提高代码的复用性和对外服务性已经成为评价一个项目好坏的标准之一。TBM(Training Base Management)系统就是基于三层架构和SOA体系而开发的一款针对实训基地日常业务处理的管理系统。并且本系统将从现存的门禁系统中获得门事件数据,来实现基地内的统一、高效、半自动化的管理。本文深入的分析了软件的分层架构技术与SOA技术中Web服务的应用。在讨论分层架构时,重点关注分层架构的技术特点和TBM系统应用三层架构技术的原因,并且根据业务需求的原因,将大部分的业务逻辑处理都封装成Web服务,供不同的基地、不同平台调用。由此引出实现SOA的一种方式------Web Service技术,它能提高了系统的互操作性、封装性、普遍性,降低了系统的耦合程度,使系统易于集成、部署简单。在设计系统的表现形式上,综合考虑不同用户的操作方便性,TBM系统采用C/S、B/S兼有的模式。对于普通员工,由于对系统的操作不是很频繁,并且人员众多,他们的操作页面是Web程序。对于管理员工(教师和有职务的同学),由于每天有大量的业务要进行处理,为了增加使用的方便性,他们的操作页面是win程序。本文主要设计了win程序表现形式,对于Web程序将待下一期完成。TBM系统在经过模拟运行和测试后,发现大大提高了基地日常管理工作的效率,并且减少了人工操作可能造成的错误记录。而且,本系统的真正意义是提供了一套完整的Web服务,实现跨平台、跨基地的真正意义上的服务复用。关键词三层架构;Web Service;面向对象;Win - I -基于三层架构与SOA的TBM系统设计The Design of TBM System Base on Three-Layer Structure and SOAAbstract With the continuous development of science and technology, the world is becoming integrated, ination-based, and unified. Software industry is a powerful tool to speed up this process. To a specific project, how to maximize code reuse and improve the external services has become one of the criteria to uate it good or bad. TBM Training Base Management system is a daily business process management system, which is based on three-layer architecture and SOA system for the training base. And this system will get door events from the existing access control system to achieve a unified, efficient and semi-automated management in training base.This paper in-depth analyzes of the layered architecture of software technology and the web services applications in SOA technology. In the discussion of layered architecture, focusing on the technical characteristics of layered architecture and the reasons why TBM system applies three-layer architecture. Because of the business needs, most of the business logic processing are packaged as web services for different plat, different base to invoke. This leads to one way of realizing SOA technology-----Web Service, which enhances the interoperability, packaging, universality but reduces the degree of coupling of the system. That makes the system easy to integrate and simple to deploy. in the design of the systems perance, considering the operating convenience of different users, TBM system adopts both C/S, B/S models. For ordinary workers, because of their operations to the system is not so frequent, and the huge numbers of staff, their operation page is Web program. For the management staff teachers and some students, because of a large number of business work to be processed every day, in order to increase ease of using, their operation page is Win program. In this paper, mainly designed Win program, and the Web program will be completed on schedule. After the simulation run and test, we find that TBM system greatly enhances the efficiency but reduces manual caused errors of daily management in training base. Moreover, the true meaning of this system is to provide a complete set of wet services, which achieves the true sense of service reusing crosses different plats and different bases.Key WordsThree-layer architecture;Web Service;Object-oriented;Win- IV -目 录摘 要IAbstractII引 言11 相关技术21.1 分层构架21.1.1 层次结构31.1.2 分层架构优点51.2 SOA技术61.2.1 Web服务71.2.2 Web服务特点81.3 TBM系统技术优势92 TBM系统需求分析102.1 功能需求112.2 应用需求133 TBM系统架构设计153.1 技术架构设计153.2 表现形式164 TBM系统应用设计184.1 公共对象设计184.2 功能模块设计194.2.1 Entity模块194.2.2 SQLDAL模块264.2.3 BLL模块314.2.3 Web Service 封装324.2.4 UI模块354.3 后台服务程序设计375 设备子模块与权限子模块实现385.1 设备子模块385.2 账户及权限子模块45结 论50参 考 文 献51致 谢52基于三层架构与SOA的TBM系统设计引 言 随着人类科学技术的迅猛发展,更行各业应用的软件也越来越趋于庞大。当一个应用软件规模较小时,采用什么样的开发模式几乎不影响软件的成功交付。但当开发一个规模庞大的软件产品时,采用好的开发方法的作用就显而易见了。软件系统架构技术正式在这样一种环境下诞生的,它不仅能够帮助系统的设计和开发,还会直接影响代码的复用性和强壮性,这些都往往决定了软件开发的成败。而且在当今,跨平台的、跨地域的复杂信息交流与互动已经成为明显的趋势,如何最大限度的减少软件开发的成本,加大程序之间或功能之间的复用性,显然已经成为了一个十分热点的研究内容。在这种情况下,面向服务的编程思想(SOA)应运而生,它使得不同平台、地域间的计算机可以方便的交流数据,共用服务,减少单独维护己方代码和业务的负担。本文论述设计的TBM(Training Base Management)系统,是一款基于三层架构和SOA的实训基地管理系统,以实现实训基地内高效、便捷、准确的半自动化管理。系统之所以采用三层架构的设计思想,是因为三层架构可以最大限度的剥离层与层之间的依赖关系,增强本层的内聚,实现层之间的松耦合,并且三层架构增加了代码的复用性和扩充性,为以后业务需求的变化带来了便利。基于SOA是因为目前实训基地分为三个分基地,我们希望提供一套完整的Web服务供不同的基地调用,恰好WebService作为实现SOA的一种技术,充分满足我们的业务需求,故系统在逻辑层之上都进行了Web服务封装,以实现服务的共享化。本文的选题“基于三层架构与SOA”是充分提取TBM系统的技术优势而确定的。目前应用这两种技术开发的软件也有很多,但是针对软件学院实训基地管理的系统却没有。这篇论文就是要将利用这两种技术开发的TBM系统的设计论述清楚,让读者对这个具有实际意义的项目有基本的了解。为了将TBM系统的设计展示清晰,本文共分以下5个部分第一章相关技术 (包括层次架构和SOA技术)第二章TBM系统需求分析(包括功能需求和应用需求)第三章TBM系统架构设计(包括技术架构设计和表现形式设计)第四章TBM系统应用设计论文的最主要章节,包括公共对象设计、功能模块设计(包括Entity模块、SQLDAL模块、BLL模块、WebService模块和UI模块)和后台服务程序设计。第五章设备子模块和权限子模块的实现1 相关技术1.1 分层构架构架(Architecture,原意为建筑学设计艺术与科学),在RUP中的定义为软件系统的构架是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互;构架是系统在其所处环境中的最高层次的概念。软件系统的构架是通过接口交互的重要构件(在特定时间点)的组织或结构,这些构件又由一些更小的构件和接口组成。分层是软件设计者在设计复杂软件系统时最常采用的一种技术。早在20世纪90年代,基于客户端/服务端(Client/Server)架构的系统不断增加,使得分层的概念开始流行起来,在这个时候,两层结构占有很重要的位置客户端是一些用户界面和应用代码,而服务端则通常是一个关系数据库,如常见的使用VB、PowerBuilder和Delphi语言开发的访问数据库的应用程序都属于这种两层结构。这些工具使基于数据的应用程序开发变得非常的容易,只需要通过简单的拖曳和属性填写就可以实现界面组件和数据库之间的连接。例如在银行中应用很广的大型主机/终端方式。两层的体系结构一直到现在还广泛存在,如果软件应用的主要功能是实现关系数据的展现和简单的更新等操作,那么客户端/服务端结构的软件系统能够非常好地满足要求。但是问题随着业务逻辑的出现接踵而至如何进行业务规则的处理;数据校验、计算等诸如此类的问题。这时候,通常是将这些需求实现到客户端,也就是将业务逻辑绑定到了用户界面代码中间。当业务逻辑变得越来越复杂的时候,客户端的代码变得越来越难于维护,更甚者,绑定业务逻辑的客户端代码复制得到处都是,致使简单的需求改变却不得不找遍所有的客户端代码来进行修改。当然,另外一种方式是将业务逻辑作为存储过程绑定到数据库中间。然而,存储过程同样导致了软件系统对数据库的依赖;人们之所以采用关系数据库是因为SQL语言是独立于特定数据库的数据查询标准,这使得更换更合适的数据库厂商变得非常的容易。在客户端/服务端应用变得越来越流行的时候,面向对象领域在不断的发展壮大过程中。针对客户端/服务端应用的缺点,面向对象社区提出了三层体系结构表示层负责处理界面,业务层负责业务逻辑,再加上持久层(数据库或者数据源)。但由于两层架构转变到三层架构并不是那么容易,因此三层体系理论在很长一段时间内没有得以发展。但随着互联网的发展,人们需要将客户端/服务端应用能够通过浏览器进行访问。然而,如果所有的业务逻辑都在客户端,那么客户端业务逻辑必须要重新实现一套来支持基于WEB的界面,而一个设计良好的三层体系结构只需要增加一个新的表示层就可以满足这个要求。1.1.1 层次结构层(layer)对模型中同一抽象层次上的包进行分组的一种特定方式。通过分层,从逻辑上将子系统划分成许多集合,而层间关系的形成要遵循一定的规则。通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。由于英文中Layer和Tier都有层的概念,人们在讨论分层的时候往往混淆了Layer和Tier,在这里我们来区分一下Layer和Tier的概念,如图1.1所示。图1.1 Layer与Tier差异比较值得注意的是,垂直和水平的划分某种程度上来说只是一个视角问题,其中揭示了物理上和逻辑上的区别。人们习惯将Tier表示为物理上的划分,也就是说,客户端/服务器端系统通常被表示为two-tier的系统,它们是物理上的划分客户端是一个桌面系统,而服务端就是服务器。而Layer是表示系统所划分的Layer,并不需要运行在不同的机器上。业务逻辑层可以运行在桌面系统机器上也可以运行在数据库服务器上。在这种情况下,整个系统就有两个节点而又三个Layer。 除了物理与逻辑上的区分外,Layer一般还暗示了“下面的Layer为上面的Layer提供服务”。请注意我们下面提到的层,指的都是Layer。(1) 表示层表示层用来处理用户和软件之间的交互,如现在比较常见的客户端图形化界面程序,基于HTML和网页浏览器(以下简称浏览器)的Web程序等。它主要的责任是向用户展现信息以及处理用户请求,例如鼠标单击、内容输入、HTTP请求等。并且在制作表示层时要尽量符合用户的操作习惯,并具备一定的美观性。它位于三层架构的最顶层,如图1.2 所示。图1.2 三层体系结构(2) 业务逻辑层业务逻辑层,又叫做领域逻辑层。其职责包括处理业务逻辑和存储业务数据,校验从表示层传过来的数据,通过表示层提交的命令来执行相应的业务逻辑。(3) 数据访问层数据访问层是用来存取业务状态数据的。数据访问层通过与系统其它层进行通信来完成应用的调用。其职责包括事务监控、消息系统、数据源等。在大多数的软件应用中,数据访问层最基本的功能就是存储持久化数据到数据库中,而关系数据库(RDBMS)则是目前最为流行的数据库。图1.2中箭头所示的方向,表示各个层之间的数据调用和依赖关系。这个依赖暗示了分层系统的特性规则一层中的组件只能与同一级别中的对等实体或较低级别中的组件交互。可以看到,业务逻辑层不会访问表示层中的内容,同样,数据层也不会访问业务逻辑中的内容。这个规则使得在同一个基础架构上实现不同的表示层成为可能,同时使得表示层的修改并不会影响到更深层次的实现。而业务逻辑层和数据层之间的关系就没有这么简单了,它依赖于数据层所使用的架构模式。三层架构作为分层架构的一种表现形式,目前被广泛的应用。这不仅降低了层与层之间的耦合度,还使系统更易于维护和更新,下面我们就来具体的认识一下分层架构的优缺点。1.1.2 分层架构优点分层架构的目的就是为了隔离各个层之间的耦合,并划分各个层之间的职责关系。有经验的开发者在进行架构设计时往往适当地采用分层来搭建基础的应用环境,为接下来的开发和维护做良好的铺垫。分层架构具有以下优点(1) 松耦合由于层与层之间的依赖关系被最大程度地剥离,并且层之间的高内聚,以及层与层之间通过接口交互而剥离了对接口实现的依赖,使得系统解决方案的维护和增强变得更容易。比如,可以将原有win应用程序切换到Web页面,改变表示层的实现而不需要改变业务逻辑层和数据层的实现;又或者,将数据库从SQLServer切换到Oracle时,对表示层的影响减小到最低。(2) 伸缩性这个特性依赖于各个层实现的方式。当一个设计合适的分层系统为了满足业务增长的需要来提高系统的性能时,可以在压力大的层增加机器来增加其负载能力。显而易见的一个例子就是,原有的系统在进行数据库操作时,需要每一个客户端都建立一个数据库连接,而三层架构通过数据库连接池机制,可以利用少量的数据库资源来满足大量的用户请求的需要。另外,通过各个层的集群能够实现大容量的应用服务,将层分布在多个物理层上可以改善可伸缩性、容错和性能。(3) 重用性重用性和松耦合是有联系的,都是为了达到同一个实现能够满足多种应用需求的目的。例如,业务逻辑层能够被Web、WAP等多种表示层实现调用;同样,业务逻辑层在调用数据层时并不需要了解其对数据库的依赖。(4) 扩展性通过分层,可以实现新功能的增加而不会影响其它层的实现。只有在影响原有实现的接口时,才有可能影响到各个层之间的关系。同时,具有定义明确的层接口以及交换层接口的各个实现的能力提高了可测试性。但是,分层架构也带来了一些损失,这主要是以下几个方面(1) 影响性能穿越各层(而不是直接调用组件)所需的额外开销会对性能造成不利的影响。例如,客户端访问数据库中的数据时,通常需要经过多个层次,非常耗费性能,如何尽量减少数据库访问是分层应用系统首要解决的问题。例如,过于严格的分层会禁止表示层与数据访问层无法直接交互,导致开发表示层复杂的应用程序时可能需要更长的时间。此时如果要弥补由此而带来的性能损失,可以使用松散的分层方法。通过这种方法,较高层可以直接调用较低层。(2) 复杂性层的使用有助于控制和封装大型应用程序的复杂性,但增加了简单应用程序的复杂性。对较低级别接口的改变可能会渗透到较高级别,尤其是在使用了松散的分层方法的情况下可能性更大。多层架构实际是将以前系统中的显示功能、业务运算功能和数据库功能完全分开,杜绝彼此的耦合与影响,从而实现松耦合和良好的可维护性。可以看到,软件系统分层越多,它给系统带来的复杂性也就越高,同时对软件开发人员的要求也就越高。软件系统在设计阶段就需要考虑层次的划分和各个层之间的职能关系。否则在分层体系结构上出现某种缺陷,如各层之间出现了自下而上的依赖关系时,一旦业务逻辑层发生了变化,其带来的影响有可能涉及到整个软件系统。并且,软件划分的层次越多,所带来的沟通和调试问题也会越多。在软件系统的规模较小,业务逻辑简单的情况下,适当的简化分层架构会带来开发效率和沟通上的提高。当然,这个架构的选择也依赖于具体的应用环境,开发者应当慎重选择其软件系统架构。1.2 SOA技术面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。 这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。 对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。 虽然面向服务的体系结构不是一个新鲜事物,但它却是传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。 然而,现在的 SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言(称为 Web 服务描述语言(Web Services Definition Language,WSDL))来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Definition Language,IDL)可比了。 Web服务就是实现SOA的一种方式,这里,我们主要探讨Web服务的原理与应用。1.2.1 Web服务Web Service是构筑在XML与Soap技术之上的一种典型的异构分布技术。自Web Service技术出现以來,其开放性的标准让各个不同系统间能够互相交换资料。这种良好的安全开放性使得以Web Service 构建独立安全系统成为发展的新趋势。为实现不同商业企业间的应用系统提供动态安全集成,体现服务共享的真正价值。Web Services 是由企业发布的用于完成其特别业务需求的在线应用服务,其他企业、合作伙伴的应用软件能够通过Intranet、Internet来动态地访问并使用这些在线服务。它是技术与市场发展的必然结果,是在IBM、微软等许多平台供应商、软件提供商共同推动下,并在W3C(万维网联盟)的工作流、数据安全性等方面的规范下发展起来的标准,各个供应商对其的支持程度超过了以往的任何跨供应商的软件产品。对于Web Services来说它就是一组服务,是较完整的地将安全、认证等基本功能为一体的服务平台,并具有一系列相关的技术标准,这些标准使其具有作为一个服务平台的完整性和优越性。也可认为是存在于Web服务器上的一组程序,这组程序被封装成一个暗箱,对外提供一个能通过Web进行调用的API接口,可用编程来调用它,其执行结果被回传到客户端。总之我们可以简单地把它理解为Web Services 是一个集部署、发现、事务、安全、认证等基本功能为一体的服务平台,并具有一系列相关的技术标准,这些标准使其具有作为一个服务平台的完整性和优越性。尽管不同的商业公司在战略上开展Web Services 的出发点不尽相同,但都确立了软件变服务的商业模式,并着力于解决服务的智能化以及个性化等问题。1.2.2 Web服务特点(1) 面向服务Web Services 把一切都看作服务,这种服务可以在网络上通过消息传递机制动态地被发现、组织和重用。 (2) 互操作性与松散耦合通过SOAP消息机制远程调用进行应用交互,任何Web 服务都可以与其他Web 服务进行交互,避免了在CORBA、DCOM(分布式组件对象模型)和其它协议之间转换的麻烦,开发者可以使用任何语言来编写Web服务,无需变更他们的开发环境。Web Services 使用者与Web Services 提供者之间是松散耦合。 (3) 封装性Web Services 对外封装成由WSDL描述的服务,屏蔽了业务逻辑的复杂性、实现技术的多样性和开发平台的异构性。 (4) 普遍性Web 服务技术基于一系列开放标准。Web服务使用HTTP 和XML进行通信,因此,任何支持这些技术的设备都可以拥有和访问Web服务,具有使用上的广泛性。 (5) 集成性和简单性可以使用任何语言(如C、C、VB、VC等)来编写Web服务,开发者无需更改他们的开发环境就可以生产和使用Web服务。Web服务技术不仅易于理解,并且IBM、微软等大的供应商所提供的开发工具能够让开发者快速创建、部署Web 服务,已有的COM(Component Object Model 组件对象模型 组件、Java Bean 等也可方便地转化为Web 服务。 由于Web Services 技术建立在标准性与开放性基础之上,彻底打破了以前封闭式的实现方法,通过Web Services 技术,使用不同语言开发、运行在各个不同平台上的客户端应用可以无缝地获取所需应用,达到资源效率的最大化。SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。1.3 TBM系统技术优势TBM系统是基于三层架构及SOA技术开发的。这样,TBM系统就综合了两种技术的优势。当然,我们也不是说采用这两种体系结构配合的方式开发出的系统是最好的,但综合考虑实训基地对软件的应用需求问题,我们觉得基于这两种技术所开发的系统是很有意义的。这里我们只讨论系统技术上的优势首先,既然TBM是采用三层架构开发的,那么它一定具有所有采用架构技术开发的软件的优势,即(1)开发人员可以只关注整个结构中的其中某一层;(2)可以很容易的用新的实现来替换原有层次的实现;(3)可以降低层与层之间的依赖(4)有利于标准化;(5)利于各层逻辑的复用。这就使我们代码开发模块化、颗粒化、层次化。能及时、方便的应对各种需求变化,更加便于今后的维护和更新。其次,TBM系统也是基于SOA技术开发的。这里,我们主要应用Web服务技术。我们知道,采用Web Service 解决方式时,需要确定提供给其他应用程序的API(应用程序接口),生成相应的WSDL(Web服务描述语言)文档,然后将异种分布式组件封装成Web Service。使用基于XML的SOAP相互通信,便可实现应用系统的继承。对于我们的系统,将所有逻辑层方法都封装成Web Service 方法,即对外提供的API,供不同基地、不同平台的应用程序调用,各基地只需根据自身业务需求实现本身独有的应用程序。已实现底层代码共享、服务共用的目的。最后,系统部署方便、简单。我们只需在服务器端发布一个用于Web服务功能的网站,那么基地内所有的客户端程序(无论什么平台、什么语言,只要可与XML进行交互)便可轻松的获得Web服务,进行基地事务管理。综上,TBM系统在采用三层架构及SOA技术后,无论从开发、安装及部署上,都大大的方便了实训基地的管理事务需求,具有较大的意义。2 TBM系统需求分析一个软件的开发意义,在于它的实用性,这个实用性是指它存在的价值及意义。要么它可以带来巨大的商业利润、要么它可以将大量的人力劳动转变为相对自动的计算机处理程序。TBM系统就是为了满足第二点需求,用以实现实训基地内部系统化及半自动化管理运作的需求。为了实现系统的自动考勤功能,TBM系统和现有的门禁系统要做数据的交互,即从门禁系统中读出员工的刷卡记录,应用到本系统中进行考勤管理。系统的总体应用需求功能如2.1图所示图2.1 系统总体需求功能结构图目前,实训基地共分为三个基地IBM基地、微软基地及瑞萨基地。所有的日常管理工作都是由各个职能部门的管理者来手动完成(如考勤、编排值日表等),工作量巨大。这不仅耗费了大量的人力,效率低下,还使管理不能统一化与规范化。TBM系统开发的目的,就是希望通过提供一个通用的后台处理、服务平台,为各个基地提供数据支持及交互。普通员工通过Web浏览器端进行操作(即传统的B/S结构),而管理员工(例如指导教师、经理助理、HR、运营部部长和Club部长等)则操作每个基地内独有的管理界面(即传统的C/S结构),这个界面程序不基于任何平台及运行环境。这样,只要在后台服务器端发布一个可访问的Web服务,就能供至少三个独立的基地进行对数据操作的需求。同时,通过一个通用的网站,使普通员工可以方便的进行各种申请及信息查看。已达到事物申请与处理的最大化自动性与统一性。下面我们将通过功能需求和应用需求两个方面来全面的分析TBM系统的需求。2.1 功能需求在实训基地日常管理中,以人力资源管理、考勤管理、值日管理、设备管理等环节最为重要。TBM系统就是要实现数据录入、数据维护等一系操作,将原来的人工记录操作转变为程序处理的方式进行,来大幅度提高工作效率和管理质量。系统的总体功能模块图2.2所示图2.2 系统功能模块图综合分析系统需要完成的功能,TBM系统主要需要实现以下功能人员管理,考勤管理,项目组管理,设备管理,请销假管理,值日管理,加班管理,账户及权限管理和系统管理。(1)人员管理人员管理涉及员工的申请注册、基本信息管理、离调职管理、教师基本信息管理和各种业务单子打印等功能。对于一名新的员工,他首先要进行网上注册或直接找HR进行信息的录入。当他入职后,他可以进行调职申请、离职申请等操作。在管理程序端,HR或教师可以审批他的申请,并予以通过或拒绝,并打印一些申请单。(2)考勤管理考勤管理是TBM系统需求较多的模块,涉及对人员上下班查岗、更新考勤状态等操作,来达到考勤自动判断的功能。该模块通过读取门禁系统数据库中的数据获得TBM系统所需的业务数据,从而进行逻辑判断与处理,分析一个员工是不是迟到、早退、矿工等状态,并保存进记录。并且,该模块还涉及考勤统计与查询,打印考勤记录等操作。(目前门禁系统的数据获得还未处理,我们开发了一个模拟程序,来获得所需数据)。(3)项目组管理项目组是各基地的基本组成单位。这里的项目组管理包括项目管理,项目申请管理,项目进度报告的汇报、审批、查看等功能。来达到指导教师对其指导的项目组,合理监控与指示的作用,从而保证各项目组与教师的及时交流,降低项目开发风险。(4)设备管理实训基地内拥有大量的实训设备,如何对这些设备进行组织化管理是这个模块要完成的重点工作。设备分为固定设备和公共设备。对于固定设备,这部分完成固定设备的分配、报修、变更申请及审批等操作。对于公共设备,这部分提供对公共设备的申请与审核操作,并且允许设备管理员进行设备状态的查询,系统可以人性化的提示该设备是否被借出,是否超期未归还等功能。同时,对于所有设备,提供设备的增加、状态改变等功能。最大限度的满足设备管理员的工作业务需求。(5)请销假管理实训类似于正常的工作,作为实训基地的内的所有员工,他们会有请假的需求。这样,TBM系统要规范的、统一的处理所有的请销假申请。并且,管理者进行审批,予以假期或销假。对于普通员工,涉及请假、销假申请操作。对于管理者,涉及请销假记录查看与审批的操作。(6)值日管理一个正常运作的基地,必须需要正确而合理的值日安排,来保证卫生和财产安全。这样,该模块涉及到值日安排、值日表查看、值日记录填写等操作。对于普通员工,可以查看近期值日排班情况、填写值日单。对于管理者,可以查看值日记录,打印值日单等操作。(7)加班管理当项目进度落后或者任务量增加时,各个项目组或个人有可能需要加班。这样,该模块涉及到加班的申请与审核。并且在管理者不参与的情况下,系统能自动审批一些加班申请记录(当申请的人数小于系统要求的人数时,予以拒绝)。(8)账户及权限管理对于一个完整的系统,会涉及很多角色和权限。此模块主要负责处理账号及权限的对应与分配。可以添加一个账户、删除一个账户、更改账户访问、读写权限等。(9)系统管理系统运行需要一些业务参数,如上班时间、下班时间、系统自动判断时间、每天值日人数、节假日等。该模块主要负责一些业务时间的设置、节假日的设置与其他业务参数的设置与更改。使系统的业务是可变化的,不是固定的。注系统最初设计还包括模拟财务管理、活动管理、站内交流等功能。但由于项目组人员变化较大,这些模块没有实现。只实现了上述的9个模块,但该9个模块已经可以全面的展示TBM系统的复杂性。还有,本次开发只实现了系统的管理程序,即Win窗体程序,而供普通员工操作访问的web程序还没有开发,将待下一期继续完成(系统的核心在后台的管理程序,本期已经开发完毕)。2.2 应用需求如果说系统的功能需求可以将一个概念性的东西转化为实际代码,那么系统的应用需求就是为系统做美化处理。我们只有知道应用需求,才能做出满足使用者操作方便的实用软件,特别是对于管理类软件来说,“可操作性”是重要的一个部分。这里的可操作性指(1)部署简易型前面已经介绍过,系统是B/S、C/S混合的结构。如何使系统部署简易是十分必要的。目前,我们需要在服务器端部署Web服务,然后客户端(Web程序及Win程序)就可以简单的访问我们的服务,进行业务操作了。这是TBM系统的一个主要优势。(2)功能强大性对于上述开发的9的管理模块,我们进行了详细的需求分析,综合得出了可以满足基地管理的解决方案,做到最大化的减少人工操作,增加管理效率。(3)界面良好性TBM系统根据业务需求,有些模块使用多文档形式呈现,有些模块使用窗体形式呈现,使用户在使用时舒适、方便。并且,系统统一了页面的风格、与操作方式,使用户可以很快的掌握操作方式。在处理输入时,我们尽可能简化用户的输入信息,并且给与足够的提示,使用户可以清晰地知道自己将要进行的操