系统架构师 百分网手机站

基于SOA的人事管理系统架构

时间:2018-04-06 15:16:41 系统架构师 我要投稿

基于SOA的人事管理系统架构

  SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。国内目前己有多种通用的人事管理系统软件供企业单位选择使用,应该说,企业人事管理系统的开发与应用在国内已经进入了相对成熟期,其在企业中的作用也越来越大。随着SOA技术的不断发展,中国的SOA架构模型和应用推广已经有了良好的需求环境。面向服务方式将是未来企业人事管理系统的发展方向。

基于SOA的人事管理系统架构

  1 引言

  管理信息系统的业务功能、系统架构和应用模式的发展依赖于计算机技术的发展。从计算机软件开发方法的角度看,管理信息系统的开发经历了“面向过程”、“面向对象”、“面向流程”和“面向服务”四个发展阶段。“面向服务”体系结构(Service Oriented Architecture, SOA)是一种进行系统开发的新型体系架构。SOA将应用程序的不同功能单元称为服务,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是Service)组合构建起来的,因对迅速变化的业务环境具有良好适应力而备受关注。SOA提供了这样一种框架:一个系统上的软件可以安全而且可靠地提出请求并获得其他系统上的计算资源,而不再需要一台中央服务器来管理和控制整个端到端的网络。

  SOA的出现给传统的信息化产业带来新的概念,不再是各自独立的架构形式,能够轻松的互相联系组合共享信息。可复用以往的信息化软件。基于SOA的协同软件提供了应用集成功,能够将ERP、CRM、HR等异构系统的数据集成。

  2 主要内容及关键技术

  2.1 面向服务的企业人事管理系统架构

  采用多层分布式架构,将数据库语句定义在数据访问层,将外部操作定义在表示层,以ASP.NET实现核心的业务逻辑层,通过JavaScript实现表示层和业务逻辑层的交互和服务抽取,设计符合SOA要求的接口;接着对数据访问层进行设计,使得系统能在数据库方面具有可移植性。

  2.2 人事管理系统的功能服务设计

  围绕人事管理系统的需求分析,考虑面向服务的实现架构,设计系统的功能模块图,重点是研究对功能模块的服务化封装,给出相关的服务描述。

  2.3 人事管理系统的服务接口设计

  为了实现人事管理系统中功能服务的对外发布,满足不同业务部门对人事信息的访问,需要对各功能服务之间的交互关系进行深入分析,给出交互接口的服务化描述文档。

  2.4 人事管理系统的实现

  采用Microsoft Visual Studio 2010作为开发工具,以MySQL作为数据库,管理工具采用SVN。系统实现以后,用户通过该系统能够实现对员工、机器设备、软件安装和管理信息的自动化管理,同时,用户可以实现信息的上传和下载。

  3 系统分析与实现

  3.1 多角度的需求分析

  为了更全面的了解企业人事管理系统的需求,拟从信息操作、业务流程、安全性、运行环境等多个角度进行分析。

  从信息操作的角度分析,系统需要实现员工信息管理服务,对员工信息进行增、删、改、查;实现设备信息管理服务,对电脑和电话信息进行添加、删除和分配;查询服务,根据员工的编号、姓名或入职时间进行查询;实现数据导入导出服务,该系统涉及大量的人员信息,需要对大量的信息进行导入和导出的操作。

  从业务流程角度分析,登入系统后,可以对座位、人员、设备的信息进行修改,可以查看基本的信息,查看信息之后可以选择下载信息存储到本地,最后退出系统。人事管理系统的基本业务流程如图1所示。

  从部门业务流程角度分析,公司部门包括人力资源(HR)部门、行政管理(Admin)部门、网络管理(Iteam)部门、设备管理(Facility)部门等,具体需求分析如下:

  (1)人力资源(HR)部门:使用者在All Staff页面进行操作,可以修改员工信息。使用者在offer页面,可以添加员工的信息,当信息填好提交以后,如果添加成功,该信息在页面就会消失,在Admin页面中出现新添加的信息,否则信息依然保留在原来的页面。

  (2)行政管理(Admin)部门:使用者在create ID页面进行操作,可以分配员工ID,当ID创建完成之后,该信息在该页面消失,该信息在Account, PC prepare, Phone, Seat四个页面中出现。

  (3)网络管理(Iteam)部门:使用者在PC prepare页面进行操作,为新职工分配requestID,用于分配机器设备。分配完成后,该记录将在PC setup页面出现,使用者对phone页面进行操作,对员工分配phone,分配完成后,该记录进入phone pool页面,在这个页面中记录的是phone的所有信息,包括phone分配信息,phone mac, phone number等等。

  (4)设备管理(Facility)部门:使用者对seat页面进行操作,分配员工位置。

  从安全性要求出发,信息系统数据库中放置了企业、部门、个人的大量数据,其中许多数据是非常关键、机密的,如果系统不能严格地保证数据的安全性,就会影响到系统的应用。具体包括两方面。在系统安全方面,要求对用户进行身份识别,在用户权限管理中,采用用户角色的方法,设置每个用户的角色身份,以便能区分每个用户的职能。对于系统数据安全,要求采用性价比比较高的方案对系统数据迸行处理,以使系统具有容错、容灾功能。

  从系统软硬件环境需求分析,软件方面,数据库服务器采用MySQL数据库,并使用ASP.NET和JavaScript脚本等编程,管理工具采用SVN。硬件方面,市面上现有的硬件性能完全可以满足该系统的要求且价格适中。

  3.2 系统架构的设计

  本系统拟将整个业务应用划分为三个层次:表示层(Presentation Layer)、业务逻辑层(Business Logic Layer, BLL)和数据访问层(Data Access Layer, DAL)。   表示层位于最外层(最上层)。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。业务逻辑层是系统架构中体现核心价值的部分,负责系统主要功能和业务逻辑的处理,关注点主要集中在业务规则的制定、业务流程的实现、合法性校验等与业务需求有关的系统设计。数据访问层负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。简单的说法就是实现对数据表的Select、Insert、Update、Delete操作。

  三层系统架构是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。业务逻辑层处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。

  3.3 面向服务的功能设计和实现

  人事管理系统的功能需求可以分为7个部分:人力资源信息管理,行政信息管理,网络信息管理,设备信息管理,软件信息管理,信息查询,数据导入导出。人力资源信息管理和行政信息管理,主要的需求是对员工信息的增删改查操作;网络信息管理,主要的需求是对机器设备信息的管理;设备信息管理,主要的需求是对座位信息的分配和管理;软件信息管理,主要的需求是对软件安装和使用情况的管理。

  具体的功能服务设计如下:

  (1)员工信息管理服务:人力资源部门对员工信息进行添加、修改和删除操作。添加员工信息,系统自动生成职工编号基本信息包括姓名、性别、年龄、出生日期、住址、E-mail、入职时间,离职时间等。修改职工信息,对所选员工的信息进行修改。删除职工信息,从列表中选择需要删除的职工信息,然后进行删除操作。

  (2)设备信息管理服务: 网络管理部门对电脑和电话信息进行添加、删除以及分配操作,设备包括电脑和电话。添加信息,在列表的最后加入新设备的信息;删除信息,从列表中选择要删除的设备,然后进行删除操作。分配设备,在列表中选中待分配设备分配给相应员工。

  (3)数据导入导出服务:系统涉及大量的'人员信息,需要对信息进行导入和导出的操作,导入数据需要将数据从Excel导入到数据库中,实现Excel和数据库的转换。导出数据需要将数据库中的数据导出成HTML格式,再转换为Excel格式,实现数据库和Excel的转换。每次导入和导出都做好数据的备份,有利于数据的还原。

  为了实现上述功能服务,本系统中定义了基础模块(Infrastructure Module)为业务提供一些公用的底层功能。从整体设计层次的粗粒度上来剖析,可以将webserver和appserver看做两个模块,为了降低模块之间的依赖,将接口的方式定义成服务契约。按照依赖倒置的设计原则,通过抽象将接口和实现相互分离,避免基于实现的依赖。接口是稳定的,而实现则是易变的,基于接口服务调用能够有效的应对实现的变化带来的影响。

  系统的功能模块包括人员信息管理(UserInfo)、设备信息管理(DeviceInfo)和基础模块(Infrastructure)。各自都包含了多个项目,反映了模块内部的层次划分。BusinessEntity:提供业务实体类型的定义;DataAccess:数据访问层,提供对数据库的访问;BusinessComponent:业务逻辑层,业务逻辑的实现;Service.Interface:定义WCF服务的契约接口;Service:用于定义实现上述契约接口的服务;UserInfo/DeviceInfo:为本模块提供基本的功能,包括对服务的调用,也包括必要的逻辑处理;Interface:用于提供给和其他模块的接口。

  3.4 接口设计与实现

  本系统拟设计的接口如下:

  人员信息接口:人员信息包含多种类型的数据,需要从中提取出需要的信息转换成统一的存储格式。接口设计思想:数据获取时接口通过TCP协议完成数据的传输,把所要求的入口参数提供给接口,接口通过通讯协议采集到所要的数据并形成XML文件,然后利用协议转换器读取XML文件。

  数据库通用接口:数据库通用接口规定了向第三方提供操作访问数据库的编程接口,其包括权限判断、数据存取等功能,在外部系统接入接口的过程中,所有功能由系统接入接口和数据操作接口提供服务。

  导入导出接口:Visual2010自带的Excel接口,但是格式和样式单一,需要重新进行ObjToExcel接口的封装,实现系统数据,Excel和HTML格式之间的转换,使用泛化的方式重载原有的接口,Visual自带的Excel接口不可以传递参数,该系统由于不同部门上传和下载的Excel中数据的格式不一致,所以需要重新封装原有的Excel接口,将其参数化,同时实现了多个重载,有利于扩展和使用。

  上述服务接口的定义都在各自模块的Service.Interface中,Service.Interface 同时部署在webserver和AppServer层中,这样通过Interface中定义的接口,在两层服务之间定义了一种契约。

【基于SOA的人事管理系统架构】相关文章:

1.SOA体系架构下的企业系统集成

2.SOA架构数字化校园系统的分析设计

3.基于云架构的系统安全设计

4.基于Web的MES系统安全架构设计及分析

5.基于GIS的通信管网管理系统架构设计

6.基于.NET的B/S架构管理系统设计

7.基于B/S架构的电子政务模拟系统设计

8.基于安卓系统的移动办公系统架构设计