人力资源管理的信息化建设-毕业论文_第1页
人力资源管理的信息化建设-毕业论文_第2页
人力资源管理的信息化建设-毕业论文_第3页
人力资源管理的信息化建设-毕业论文_第4页
人力资源管理的信息化建设-毕业论文_第5页
免费预览已结束,剩余54页可下载查看

下载本文档

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

文档简介

人力资源管理的信息化建设人力资源管理的信息化建设 作 者 姓 名: 学科、 专业: 人力资源管理 完 成 日 期: 年 月 青岛理工大学 1 摘要摘要 烟台恒邦集团是以黄金、化工生产经营为主业的综合性大型企业集团,创 建于 1988 年。经过 20 多年的创新发展,经营范围已由黄金、化工生产拓展到 制造、商贸服务、地产开发等多个行业和领域。恒邦人秉承“以人为本,永续 发展”的企业理念,发扬“遵守规则、勤奋务实、创新发展”的企业精神和 “黄金品质、诚实守信、竭诚奉献”的价值观,致力于把恒邦集团建设成为一 个体制健全、管理科学、技术先进、环境优美、蓬勃发展的现代化企业集团。 其内部人员多,工作种类复杂,相关领域、部门众多,牵扯业务广泛,因此, 要更好的实现人员及相关业务管理,迫切需要一套整合信息、综合管理的人力 资源管理系统。 通过分析各类人力资源管理信息系统的总体发展趋势及集团公司人力资源 管理信息系统的特殊需要与突出问题,并在分析 MVC 设计模式的特点及目前 Web 应用开发中所使用的各种技术的基础之上,按照面向对象的人力资源管理 思想,通过对系统的需求分析,并结合集团公司系统的现有基础及现存的突出 问题,明确了任务目标,确定了系统采用多层 Web 体系结构,提出了综合运用 多种技术构建的 Web 应用系统开发的解决方案;在开发过程中,系统采用面向 对象的 UML 语言对系统进行详细分析与设计,总体结构基于 B/S 模式,使用 java 技术实现;主要依托利用 Struts 框架实现 MVC 模式,JSP 实现客户层(视 图 View) ,ActionServlet 作为控制器(控制器 Controller) ,JavaBean 实现业务 逻辑(模型 Model) ,并封装 JDBC 访问数据库的操作细节,提供数据访问 API,较好的隐藏具体操作,使系统易于扩充,具有较好的健壮性。 本文将立足于现代人力资源管理理论,并结合烟台恒邦集团实际现状,对 系统中的主要核心:员工信息管理、劳动力管理、人才管理、统计报表等,尤 其是劳动力管理中的合同管理进行深入分析、研究,详细介绍系统的业务实现, 提出了适应集团公司现状的人力资源管理系统。 关键词:关键词: 人力资源管理 J2EE Struts 框架 模型-视图-控制 (MVC) 2 目 录 第一章第一章 前前 言言1 1.1 课题背景.1 1.2 相关领域研究现状.2 1.3 主要研究工作.4 第二章第二章 相关技术及方案相关技术及方案7 2.1 J2EE 架构技术简介7 2.1.1 J2EE的体系结构.7 2.1.2 J2EE组件构成.8 2.1.3 J2EE的优势.10 2.2 STRUTS框架 11 2.2.1 MVC设计模式.12 2.2.2 Struts体系结构14 2.3 本章小结.20 第第 3 3 章章 烟台恒邦集团人力资源管理系统需求模型烟台恒邦集团人力资源管理系统需求模型21 3.1 人力资源管理简介.21 3.3 系统业务需求分析.22 3.3.1 系统总体分析22 3.3.2 各子系统需求分析24 3.4 非业务性需求.28 3.5 子系统需求分析举例.29 3.5.1 概述29 3.5.2 合同管理子系统功能结构30 3.5.3 合同管理的模块定义30 第第 4 章章 烟台恒邦集团人力资源管理系统设计烟台恒邦集团人力资源管理系统设计34 4.1 系统设计概述.34 4.2 总体框架设计.35 4.2.1 逻辑视图35 4.2.2 部署视图36 4.3 应用结构模式设计.38 4.4 数据库设计.38 4.4.1 数据库设计概述38 4.4.2 数据库平台选型40 3 4.4.3 数据库设计举例41 4.5 安全设计.42 4.5.1 安全设计概述42 4.5.2 权限控制设计43 4.5.3 网络安全设计48 4.6 本章小结.48 第第 5 章章 烟台恒邦集团人力资源管理系统实现烟台恒邦集团人力资源管理系统实现50 5.1 系统实现概述.50 5.1.1 开发平台50 5.1.2 运行平台50 5.2 系统的工作流程.51 5.3 B/S 结构的实现.52 总结与展望总结与展望53 - 1 - 第一章 前 言 1.1 课课题题背背景景 烟台恒邦集团是以黄金、化工生产经营为主业的综合性大型企业集团,创 建于 1988 年。经过 20 多年的创新发展,经营范围已由黄金、化工生产拓展到 制造、商贸服务、地产开发等多个行业和领域。2011 年、2012 年连续两年实现 主营业务收入过百亿,2012 年实现主营业务收入 125 亿元,为山东省百强民营 企业。恒邦集团控股子公司山东恒邦冶炼股份有限公司为中国上市公司 500 强, 中国黄金销售收入十大企业,中国黄金经济效益十佳企业,中国黄金冶炼五大 企业,上市公司金牛 100 强。 集团主导产品及年生产能力:黄金 26 吨,白银 280 吨,电解铜 5.5 万 吨,硫酸 80 万吨,烧碱 10 万吨,双氧水 3 万吨,液氯 8 万吨,磷铵 21 万吨, 硫基复合肥 10 万吨,选矿药剂 3 万吨,各类耐腐蚀泵 5000 台,印刷品 12 万色 令,塑料桶 20 万只,塑料编制品 5000 吨,白酒 2000 吨,热电发电能力 1.2 万 千瓦,供热能力 180 吨/小时。黄金采选配套能力 4000 吨/日,目前的采选能力 及黄金产量均居全国黄金行业前列。 恒邦人秉承“以人为本,永续发展”的企业理念,发扬“遵守规则、 勤奋务实、创新发展”的企业精神和“黄金品质、诚实守信、竭诚奉献”的价 值观,致力于把恒邦集团建设成为一个体制健全、管理科学、技术先进、环境 优美、蓬勃发展的现代化企业集团。企业在发展的同时,不忘回馈社会,积极 投身公益事业。据不完全统计,近几年用于社会教育、群众文化、医疗卫生等 事业及支持帮扶、扶贫救灾、爱心助残等捐助达 6000 余万元。因此,需要开发 一套新的人力资源管理系统,对人力资源信息实行综合管理。 建立集团公司人力资源综合管理系统,就是要通过应用科技前沿的先进而 成熟的计算机技术、网络技术、数据库技术及通信技术,不断更新完善系统功 能、效率及服务效力,从而实现开发出一套整合信息能力强,实现高效人力资 源综合管理的优势系统,支撑起一个“准确、及时、标准、高效、安全”的全 功能、多层次、智能化的信息服务体系。系统的总体目标是形成“整体设计、 标准统一、权威维护、授权共享”的人力资源数据管理中心;构筑符合集团公 - 2 - 司建设标准,涵盖烟台恒邦集团人力资源各相关系统的业务管理平台,既要满 足集团公司的要求,又能提升烟台恒邦集团人力资源各相关部门的业务工作; 建成人力资源辅助决策系统,实现烟台恒邦集团人事管理向人力资源管理的转 变。同时,系统应具体实现一下目标:一是增强系统整体性开发,避免系统重 复建设浪费资源;二是增强信息整合,避免重复录入数据导致的同一人员不同 系统中的信息冲突;三是实现统一编码,设置统一命名规范,增强系统可维护 性及可扩展性;四是增强信息共享性,防止多头上报导致的信息不统一;五是 应用先进技术增强系统管理、评估能力。 人力资源管理信息化,又称电子人力资源,是指将先进的信息技术运用于 人力资源管理,为企业建立人力资源服务体系网络系统,使人力资源管理流程 电子化。它主要包括以下三个方面:(1)基于互联网的人力资源管理流程化与自 动化。 “信息化”把有关人力资源的分散信息集中化并进行分析,优化人力资源 管理流程,实现人力资源管理全面自动化,与企业内部其他系统进行匹配。(2) 获得人力资源管理外部服务。企业的人力管理者能够有效利用外界资源,并与 之进行交易。(3)实现企业内部自助服务。让员工和部门经理参与企业的人力资 源管理,体现人力资源管理部门视员工为内部顾客的思想,建立员工自助服务 平台,开辟全新的沟通渠道,充分达到互动和人文管理。 1.2 相相关关领领域域研研究究现现状状 随着计算机的普及和网络技术的成熟与运用,信息化将推动企业人力资源 管理的转型。人力资源管理在组织中的作用越来越大,传统的人事管理已明显 不能适应。企业要想实现人力资源管理的战略转型谈何容易,这就要求我们必 须有一个有效的手段来推动企业人力资源转型。目前人力资源管理信息系统现 已发生了革命性的变革,并正在成为企业经营管理的一个炙手可热的话题。因 此本文就对企业人力资源管理信息化进行了较为深入的研究,通过研究让我们 发现我国企业人力资源管理信息化存在的主要突出问题,并在此基础之上提出 推进我国企业人力资源管理信息化的解决对策。 薪资计算系统阶段人力资源管理系统是在20世纪60年代末诞生的,由于当 时发达国家的计算机技术已进入实用阶段,同时企业规模也越来越大,用手工 来计算和发放薪资既费时费力又易出差错,为此,薪资管理系统应运而生。 - 3 - 薪资/人事管理系统阶段20世纪70年代末,随着计算机技术的发展,在计算机 薪资管理基础上,开始记录员工的其他基本信息,具备了报表生成和薪资数据 分析功能,即具有了一部分人事信息管理的功能。 人力资源管理系统阶段到20世纪90年代初,人力资源管理系统出现革命性 的变革。人力资源理论的发展,使人们认识到人力资源在企业发展和企业竞争 中的关键性作用,另外随着计算机技术的发展,把一些人力资源管理理念和理 论应用到企业管理中也成为可能。 人力资源管理信息系统(eHR)阶段人力资源管理信息系统的第二次革命性变 革出现在20世纪90年代末和21世纪初。由于互联网技术的普及,以及人力资源 管理理论的进一步发展,使人力资源管理快速响应企业内外部的各种的要求与 变化成为可能,这就是人力资源管理的电子信息化。 针对存在的以上问题和需求,在开发中,如何减少隔层间的耦合程度,避 免各模块的相互牵制,使各层能够实现独立开发,并保证运行时各模块的密切 配合;在应用时,如何实现简单高效的应用程序升级、维护及扩展,如何实现 代码的“黑盒密封”和对用户的友好界面等问题则必须摆在突出位置加以解决。 经过长期的磨合探讨和应用实践,MVC模式应运而生。MVC源于传统的面 向对象语言SmallTalk-80,是一个经典的设计模式。它是设计交互式应用时广泛 采用的一种设计模式,也是J2EE蓝图推荐的在开发Web应用时使用的方法。由 于MVC将软件开发分为三个层次:模型(Model)、视图(View)、控制器 (Controller),因而,利用该设计模式开发软件可使应用、处理和显示层次分离, 降低软件开发模块的耦合度,实现独立开发目标,并能够很好的实现代码的可 重用、可扩展,也就提高了应用软件的可复用性、灵活性和可维护性,以最终 实现软件质量的提高。 随着应用的发展和技术的推进,基于J2EE平台、实现MVC设计模式的框架 Struts逐步成熟完善起来。作为一个新兴的框架,Struts主要采用大多数开发者 熟知的Java Bean、Java Server Page(JSP)、Servlet等标准技术,对MVC设计模式 的三个部分提供了对应的实现组件,使得容易为开发者所接受并快速掌握。而 且Struts规定了应用的体系结构,为应用系统提供了一个良好的软件构架,解决 - 4 - 了由于应用的复杂性而在软件开发过程中所带来的各种问题,并对于实现在应 用系统建设初期所制定的软件功能、开发投入、开发周期、项目的组织和管理 上的目标,都有极大的帮助。它的目标是要全面减轻构建Web应用的负担,提 供可复用的框架。目前在国内外许多的大型Web应用项目中得到广泛应用。 1.3 主主要要研研究究工工作作 影响人力资源管理部门工作效率的因素主要包括:每月的工资计算与处理; 员工的考勤休假处理;员工信息管理等业务内容。这些事务往往要占用人力资 源管理人员的大量时间。手工操作不仅效率低下,而且容易出错,而信息技术 在人力资源管理中的应用,将大大降低例行性工作占用人力资源管理人员时间 的比例,使管理人员从日常事务中解脱出来。人力资源管理信息化强调员工的 自助服务,如果员工的个人信息发生变化,他本人就可以更新自己的信息,经 过一定的批准,程序即可生效。同样,对于培训、假期申请、报销等日常的行 政事务也可作类似处理。这样不仅减轻了管理人员用于数据采集、确认和更新 的工作量,也较好地保证了数据的质量和更新的速度。这无疑极大地提高了人 力资源管理部门的工作效率,从而可以有更多时间思考战略层次的问题。 当人力资源管理者从繁杂的行政事务中抽身出来后,就希望规范人力资源 运作体系的业务流程。招聘、绩效管理、员工培训与发展、员工职业计划、离 职的流程等都在他的考虑范围。信息化能将有关人力资源管理的分散信息都紧 密集中在一起并进行分析,自动优化人力资源管理业务流程,使信息流得到加 速和舒畅,人力资源管理的作业流程跟业务流程以及直线功能结合更紧密。人 力资源管理信息系统不仅能将人力资源管理部门的工作职能完全覆盖并划分清 楚,而且能将经过优化的业务流程在系统中体现。人力资源管理的日常业务如 干部任免、职工退休、调配、辞职等都可以按照规范的工作流程设计相应的模 板来完成。查询、统计、制作花名册、统计报表、领导审批等过程也可以在网 络上实现。 企业在实施人力资源管理信息化之后,比如在员工培训方面,员工可以 “在线”随时随地接受培训,从而可以节省时间,减少差旅费用,降低培训成 本。在评估方面,通过网络,各级主管可以很快看到来自各地下属定期递交的 工作述职报告,并进行评估、指导及监督,这样,评估的成本也可以大为降低。 - 5 - 据统计,公司在实施人力资源管理信息化以后,员工的电话询问可以减少 75。美国爱立信公司实施员工自主服务系统后,第一年就节省了超过 100 万 美元的开支,Cisco 公司通过 elearning 系统一年节省了 2400 万美元。 对于公司高层而言,他们可在网上查看企业人力资源的配置、重要员工的 状况、人力资源管理成本的分析、员工绩效等。高层决策者还能获得各种辅助 其进行决策的人力资源经营指标以及直接在网上进行决策等:对于中层经理, 即直线经理来讲,人力资源管理信息化是其参与人力资源管理活动的工作平台, 通过此平台,直线经理可以在网上管理自己部门的员工。比如可在授权范围内 在线查看所有下属员工的人事信息,对员工的培训、休假、离职等流程进行在 线审批等;一般员工可以在线查看企业规章制度、内部招聘信息、个人当月薪 资及薪资历史情况、个人考勤休假情况、注册内部培训课程、提交请假/休假申 请、实现在线报销等。 在企业的资金、技术、市场和人才等诸多经营要素中,管理者对人力资源 的经营是最为模糊的。很多企业往往将人力资源视为是不得已的成本开销,企 业管理者对人力资源管理及管理信息化的重视程度比较低,急功近利,不注重 其系统建设的长期效应。虽然人力资源管理信息化能降低企业成本,但那只是 实施后产生的作用,而在实施过程中需要投入大量资金。不论是自行开发还是 购买软件产品,都是一项重大投资。一些企业尤其是规模较小、效益较差的企 业,很难将巨额资金用于投资人力资源管理信息化的建设。 在我国很多企业中,人们的注意力都放在人力资源管理的具体操作层面上, 只是简单的将传统的行政人事部门改头换面成人力资源管理部门,这就使得我 国很多企业在人力资源的管理与开发上还处于比较基础的阶段。一些企业的电 脑普及率很低。即使有的已普遍使用了电脑,但服务器性能、网络状况不是很 完善,在实施过程中带来很多问题。许多企业人力资源管理的基础工作做得不 够好,管理流程不顺,缺乏可依据的标准,信息误导现象严重,信息集成层次 不高,无法更宏观地利用人力资源数据。 虽然绝大部分企业对人力资源管理的电子化、网络化、智能化持肯定态度, 但是却有超过 70的企业还没有引入人力资源管理信息系统。在已实施过人力 资源管理信息系统的企业里,18的企业需要更换系统。其原因包括系统功能 - 6 - 太简单;人力资源管理业务流程需要改善或改变;系统缺乏稳定性和速度慢等。 从管理信息系统的功能上看,目前企业使用最多的功能依次是“人事信息管理” (71)、“薪资”(682%)、“报表”(622)、“考勤”(595)、“招聘” (56%)、“福利”(538)等。据此分析,中国企业目前对功能需求最多的是 “事务处理层面”的功能,其次是“业务流程层面”的功能。 虽然人力资源管理软件在我国已有超过十年的发展历程,但还存在产品不 规范、厂商过于混杂等问题。对产品而言,目前软件市场的最大问题莫过于标 准不统一。标准的欠缺还导致人力资源管理系统与企业其他系统的衔接和整合 不通畅。有些供应商的目的仅在于出售产品,至于很多企业所关心的重整管理、 售后服务和产品升级,他们不会也无力去考虑。 作为企业的领导者,一方面必须彻底更新观念,树立现代观念和超前意识, 充分认识人力资源管理信息化发展的新趋势,不能认为信息服务仅仅是预算中 的一项开支而舍不得对其进行人力、物力和财力的投资。另一方面,作为企业 的高层领导者,要参与到人力资源管理信息化建设中去。并不是说他们只要保 证足够的资金供给、人员安排和设备配备就可以了,而是要积极参与人力资源 管理信息化的设计、规划和实施过程。应该有一些信息技术的基本知识,运用 现代管理学提高自己管理企业的水平。要会用人,会组织队伍,采用科学的方 法加强政策宣传,改变中、基层管理者的观念,化解其造成的阻力,充分重视 和解决其他非技术因素,使人力资源管理信息化的实施能顺利进行。 人力资源管理信息化的实现要具备两方面的条件:一是企业自身人力资源 管理水平的高度;二是企业人力资源管理信息化手段的实现程度。两者之中人 力资源管理水平相对现今中国的大多数企业而言更为重要,只有管理水平具有 一定高度后,信息化的手段才能真正与之结合,从而通过信息化手段提高企业 绩效。企业管理水平的提高,有赖于做好规范的基础管理工作,规范的基础管 理是企业人力资源管理信息化的必备条件。规范的基础管理主要包括:一是基 础数据管理。如员工履历、考勤、薪酬等都要准确无误;二是基本业务流程设 计及业务事务处理管理,主要是人力资源管理部门的内部业务要程序化。如员 工招聘工作,从招聘公告、面试到培训上岗都要按规定的程序进行;三是内部 控制及其实施过程管理;四是员工的行为规范管理等方面。 - 7 - 第二章 相关技术及方案 2.1 J2EE 架架构构技技术术简简介介 J2EE(Java 2 Platform Enterprise Edition) 127架构是由Sun公司推出的一种 基于Java 2平台并采用B/S(Browser/Server) 3结构的体系结构,它定义了开发和 运行企业级Web应用的标准,并提供了一个企业级的计算模型和运行环境用于 开发和部署多层体系结构的应用。J2EE是一整套功能非常健壮的开发企业级中 间件的规范,简化了企业解决方案的开发、部署和管理相关的复杂问题。基于 J2EE平台构建的企业应用可以实现真正的可重用性、可移植性、高安全性、可 扩展性和可靠性。 2 2. .1 1. .1 1 J J2 2E EE E 的的体体系系结结构构 J2EE 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用 组件根据他们所在的层分布在不同的机器上。J2EE 可以理解为一个企业级的中 间件体系或平台,它把多种分散到网络上的资源和应用连接起来,为构造和管 理、运行可伸缩的企业级业务应用提供了一系列的应用组件和一个运行环境。 J2EE 体系结构分为四个层次,如图 2.1 所示: - 8 - 图图 2.1 J2EE 多层体系结构多层体系结构 其中各层处理的主要业务及实现方法为: 客户层 (Client Tier)-客户层是系统与用户交互的界面,并把来自系统的信 息显示给用户。其实现可通过两种方式:一种是基于Web的J2EE应用,允许浏 览器将Web网页和Applet下载到客户机器上运行;另一种是独立客户程序,运 行在其它一些基于网络系统中的Applet程序,在客户层中运行,在不经过Web 层的情况下直接访问JavaBean。 Web组件层 (Web Tier)-即表现逻辑层,该层用于对用户请求的接收和应答, 也是客户层与其他层通信、交互的桥梁。由于Web层可以使客户层与驻留在其 他层的应用程序逻辑通信和交互应用,还可以根据应用程序和用户的状态管理 屏幕流,因而驻留在Web层中的组件使开发人员可以扩展Web服务的基本功能。 在J2EE平台中,该层是通过Web容器内的Servlet和JSP来实现的,而在Struts中, 更可以通过运行Servlet容器中的框架包组件来扩展Web服务的功能。Struts框架 包驻留在Web层,其应用程序由Web容器主控,因而可以使用容器提供的服务, 比如,通过HTTP协议处理请求。 业务逻辑层 (Business Tier)-业务逻辑层是业务处理的核心环节,可处 理应用的核心业务逻辑,承担事物处理的中间环节,负责和控制数据库操作, 负责系统的业务逻辑处理以及提供各类应用服务。该层由运行在业务逻辑层的 JavaBean实现,从而对数据进行封装处理,即:从客户端接收数据,进行处理 后将数据发至企业信息系统层存储;同时也可逆向实现,从数据库中检索数据, 并将数据返回给客户端程序。 企业信息系统层 (Enterprise Information System Tier)-该层是处理企 业信息系统的软件,包含整个企业使用各种信息、数据和服务等。它为企业资 源,如:数据库、主机、客户关系管理应用程序以及资源规划系统等,提供了 访问手段。该层包括了企业基础设施系统,例如企业资源计划(ERP)、大型机事 务处理 (Mainframe Transaction Processing) 和其他传统系统这样的底层系 统。 2.1.2 J2EE 组件构成 J2EE应用程序是通过组件构成并利用组件间的交互最终实现的。J2EE组件 是一种具有独立功能的软件单元,通过相互关联、交互,最终在相关的类和文 - 9 - 件的基础上组成J2EE应用程序。J2EE说明书中定义了以下的J2EE组件:应用客 户端程序和applets是客户层组件;Java Servlet和Java Server Pages(JSP)是web层 组件;Enterprise JavaBeans(EJB)是业务层组件。 1. 客户层组件:J2EE应用程序可以是基于web方式的,也可以是基于传统 方式的。在基于Web的J2EE应用中,Web浏览器会把Web页面和Applet下载到客 户机上。 (1) 应用客户端 应用客户端运行在客户机上,通常具有使用Swing或AWTAPI创建的图形用 户界面,可以直接访问运行在业务层上的EBJ或是通过HTTP连接同web层上运 行的Servlet进行通信。 (2) 基于Web的客户端 基于Web的客户端由两部分构成:一是由包含各种标识语言的动态Web页面 构成,这些Web页面都是由运行在Web层的Web组件构成的;二是Web浏览器, Web客户端通常被称为瘦客户端,瘦客户端通常并不去实现诸如查询数据库或 是连接遗留系统之类的工作。当使用了瘦客户端的时候,上面的那些操作都可 以由位于、J2EE服务器上的EJB来实现。 (3) Applet 从Web层接收到的Web页面可以包含嵌入式的Applet。Applet就是一个用 Java语言编写的小客户端应用,其在安装了Java虚拟机的机器上运行。为了 Applet能在Web浏览器上安全的运行,客户端通常需要一个Java插件和一个安全 认证。 2. Web层组件:J2EE Web层组件可以是JSP页面或Servlets。Servlet是J2EE规 范的一个组成部分,是一个生成动态内容的Web组件,由Servlet容器管理, Servlet通过Servlet容器实现的Request-Response模型同Web客户交互。Servlet具 有明确定义的生命周期:初始化init0、服务service0和销毁destroy0。 按照J2EE规范,静态的HTML页面和Applets不算是web层组件。JSP规范是 一种实现普通静态HTML和动态HMTIJ混合编码的技术标准,它在传统的 HTML页面文件中加入了Java程序片断和JSP标签,构成了JSP页面。JSP页面被 请求时,首先通过JSP引擎转换成Servlet,然后编译成可执行的class文件,即可 - 10 - 服务所有来自客户端的请求,并动态返回执行结果。 3. 业务层组件:业务层组件主要是指EJB,有三种EJB:session bean,entity bean和message-driven bean。业务层代码的逻辑用来满足具体业务 需求领域的需要,由运行在业务层上的EJB来实现。在轻量级架构中,JavaBean 组件也可以担当业务逻辑的实现组件。 2.1.3 J2EE 的优势 J2EE 架构平台无疑已经成为了商务系统开发、Web 开发等业务实现的主力 军,而这主要是源于其为系统开发提供了可伸缩、灵活而易维护的良好机制。 综合其优势所在,可从以下几个方面讨论: 1. 保留现存的 IT 资产 由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资, 而不是重新制定全盘方案就变得很重要。这样,一个以渐进的而不是激进的、 全盘否定的方式建立在已有系统之上的服务器端平台机制是公司所需求的。 J2EE 架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS、IBM Encina,、Inprise VisiBroker 以及 Netscape Application Server。这之所以成为可能是因为 J2EE 拥有广泛的业界支持和 一些重要的“企业计算”领域供应商的参与。每一个供应商都对现有的客户 提供了不用废弃已有投资,进入可移植的J2EE 领域的升级途径。由于基于 J2EE 平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系 统和硬件也能被保留使用。 2. 高效的开发 J2EE 允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去 完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开 发时间。高级中间件供应商提供以下这些复杂的中间件服务: 状态管理服务 -让开发人员写更少的代码,不用关心如何管理状态, 这样能够更快地完成程序开发。 持续性服务-让开发人员不用对数据访问逻辑进行编码就能编写应用 程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易 于开发与维护。 - 11 - 分布式共享数据对象 CACHE 服务-让开发人员编制高性能的系统,极 大提高整体部署的伸缩性。 3. 支持异构环境 J2EE 能够开发部署在异构环境中的可移植程序。基于J2EE 的应用程 序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE 的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中 是十分关键的。 J2EE 标准也允许客户订购与 J2EE 兼容的第三方的现成的 组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 4. 良好的可伸缩性 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性 去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE 平台的 应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX 与大型 机系统,这种系统单机可支持 64 至 256 个处理器。 (这是 NT 服务器所望 尘莫及的)J2EE 领域的供应商提供了更为广泛的负载平衡策略。能消除系 统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现 可高度伸缩的系统,满足未来商业应用的需要。 5.稳定的可用性 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。 因为 INTERNET 是全球化的、无处不在的,即使在夜间按计划停机也可能 造成严重损失。若是意外停机,那会有灾难性后果。J2EE 部署到可靠的操 作环境中,他们支持长期的可用性。一些J2EE 部署在 WINDOWS 环境中, 客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健 壮的操作系统可达到 99.999%的可用性或每年只需 5 分钟停机时间。这是 实时性很强商业系统理想的选择。 2.2 S St tr ru ut ts s 框框架架 Struts 框架10,11,12的来源可追溯于 一个叫做 Jakarta 的项目计划。Jakarta 是 Apache 软件基金赞助下的一个对 MVC 设计模式深入研究,并使其有效应用 于 J2EE 应用开发的项目。该项目的主要目标是通过对该项目的研究,改进和 提高 Java server Page(JSP)、Servlet、标签库以及面向对象的技术水准,为开发 - 12 - 人员提供一个开发 MVC 模式的应用框架,而 Struts 正是这个项目的产物。 本章将对 Struts 的基本概念及其开发中的关键技术做详细介绍与分析, 为本文的集团公司人力资源管理系统的设计与实现做好技术理论准备。 2.2.1 MVC 设计模式 谈及 Struts 框架则应先了解 MVC4设计模式的相关内容。 一个设计模式 可能用于不同的系统,一个系统也可能会用到多个设计模式。使用合适的设计 模式,不但使代码可重用性、可扩展性得到增强,而且最重要的是能够加快系 统的开发速度,提高开发效率。 鉴于设计模式对系统开发、实现、运行及维护的重要影响,在众多学者 探讨研究的基础上, MVC设计模式逐步脱颖而出并不断发展、完善起来。实 际上,MVC是一种架构模式,并由许多相关的较小的模式组成。通过利用 MVC设计模式,可 实现至少将业务处理与显示分离,强迫将应用分为模型、视 图以及控制层,使得你会认真考虑应用的额外复杂性,把这些想法融进到架构 中,增加了应用的可拓展性。但是如果你要隔离模型、视图和控制器的构件, 你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如此一来, 通过在设计思路上的良好起步,便可极大的增强系统的灵活性、可扩展性、可 维护性等。 1. MVC模式简介 MVC(Model-View-Controller,MVC)即模型-视图-控制器,是Xerox PARC在 20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,它融合了 Servlet、JSP、Bean三种方法的优点,即使用Servlet可方便的管理事件和程序流 程,但是产生响应则显得有点笨重;使用JSP可以出色的定义响应页面,但是需 要维护嵌入在HTML之间的Scriptlet:使用简单但功能强大的标志来引入Bean, 并用它来删除部分Scriptlet代码。MVC把应用程序分成三个核心模块:模型、 视图和控制器。其结构组件之间的相互作用如图2.2所示。模型保存了数据,视 图获得数据并产生一个动态的显示,而控制器向模型和视图提供逻辑处理层和 授权。现在依此查看MVC设计中的重要组件,讨论每个组件的功能及其组成方 式。 - 13 - 选择View 业务处理 用户请求 查询 图图2.2 MVC结构模型结构模型 (1) 模型(Model) 模型表示应用程序的业务逻辑。将业务规则封装到组件中有利于测试、改 进质量和促进重用。模型可以被划分为状态和动作组件。状态组件:状态定义 了模型的当前设置值,并且包含更改这些值的方法。这些方法都是获得一些业 务逻辑的地方。状态组件通常是协议无关的。JavaBean是实现状态组件的逻辑 选择。动作组件:动作定义了允许更改的状态,以响应事件,业务逻辑也规定 了动作组件的结构。 (2) 视图(View) 视图表示了应用程序的表示层,视图组件包含系统的当前状态,并提供适 合于特定协议的用户界面。作为用户界面的一部分,视图负责将特定的事件呈 现给用户。将视图与模型分开使得用户界面结构独立并具有不同的外观和属性。 这些不同的界面能够与相同的模型相交互。JSP实现视图的通常选择。JSP适合 于用来产生基于用户界面的HTTP浏览器。通过内置的Bean标志很容易与模型 (Bean)交互。 (3)控制器(Controller) 控制器对用户的输入进行响应并将模型和视图联系在一起,负责接收事件、 确定合适的处理程序、调用处理程序并触发合适的响应。Servlet非常适合担当 这个角色,Servlet能够接受客户端请求,根据请求可以创建所需的JavaBean, Controller 接受用 户请求到 Model 选 择 View 响应定义 行为 View 用户界 面信息交互 用户请求 Model 业务 流程处理业 务状态改变 - 14 - 最后将变化通知视窗。 2 J2EE技术对MVC的支持 基于MVC设计模式的良好效果,J2EE对MVC设计模式有着很好的技术支持, 广大软件开发厂家都提供了基于J2EE技术和MVC架构的开发工具。本文采用的 便是Apache公司开发的Struts框架工具。为分别实现MVC三层功能,Struts提供 如下实现方式:ActionForm(利用JavaBeans技术)、Action(利用Servlet技术)和JSP 技术来对应实现MVC模式中的模型、控制器和视图。本系统中Struts框架具体 的在应用中的具体方式如下:ActionForm映射业务层上的实体Bean,充当模型 的角色:Action作为控制器,根据客户端的要求访问相应的实体模型,调用业 务层中的会话Bean,并将业务层返回的信息反馈给视图;JSP作为视图,接收客 户端的请求,转发相应的控制器,并将控制器处理后的结果返回给客户。 2.2.2 Struts 体系结构 在了解MVC模式的前提下,便可更好的理解Struts框架。由于其本身基于 MVC设计模式,并以便于开发人员基于JavaServlet和JSP技术构建Web应用程序 为目的,因而通过向开发人员提供统一的体系结构,并在此基础之上构建 Internet应用程序,使开发人员可以集中精力关注构建业务应用程序的工作,而 不必顾虑体系结构的问题。 1 Struts概述 Struts框架由Craig RMcClanahan于2000年创建,并捐赠给了Apache Software Foundation(ASF)。Struts框架是一种众所周知的并极为成功的Apache Jakarta工程。Jakarta工程共同的目的任务是以开放和协作的方式,在Java平台的 基础上开发符合商用标准的服务器解决方案。 Struts的设计目的是为了帮助开发人员减少在运用MVC设计模式来开发Web 应用的时间。Struts按照MVC模式的思想,提供了一种创建Web应用程序的框架, 其中对应用程序的用户界面表示和数据的后端逻辑处理代码进行了抽象,整合 了Servlets和JSP在Web应用开发上的优势以建立灵活,扩展性强,复用程度高 的应用系统。Struts是实现MVC模式的一个优秀的应用框架。图2.3显示了Struts 框架的体系结构响应客户的请求时各部分工作的原理,从MVC的角度体现了 Struts框架中的各种组件的功能角色。 - 15 - 图图2.3 Struts框架结构图框架结构图 2 Struts对MVC模式的实现 Struts实质上就是在JSPModel2的基础上实现的一个MVC框架,在Struts框架 中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和 Action来实现,视图由一组JSP文件构成。图2.4显示了Struts实现的MVC框架。 图图2.4 Struts实现实现MVC模型模型 上图中各模块具体实现如下: (1) 视图:视图由一组JSP文件构成,这些JSP文件只是简单的网页代码及 Struts的客户化标签,其中没有业务逻辑。 (2) 模型:模型表示应用程序的状态和业务逻辑,对于大型应用,业务逻辑 通常由JavaBean或EJB组件来实现。 - 16 - (3) 控制器:控制器由ActionServlet和Action类来实现,ActionServlet类是 Struts 框架中的核心组件,这个类:是javax.servlet.http.HttpServlet类的扩展。它的基 本功能 是: a截获用户的Http请求。 b把这个请求映射到相应的Action类,如果这是此类收到的第一个请求, 将初始化实例并缓存。 c创建或发现一个ActionForm bean实例(看配置文件是否定义),然后将请 求过程移植到bean。 d调用Action实例的perform()方法并将ActionFormbean、ActionMapping对 象、request和response对象传给它。 eperform返回一个ActionForward对象,此对象连接到相应的JSP页面。 此外,Struts框架中的ActionForm Bean也划分到控制器组件中,这是因为 ActionForm虽然是一个JavaBean,但它是对Action功能的补充,负责数据的简单 校验。 (4)Struts的配置文件Struts-config.xml Struts框架在启动时会读入其配置文件Struts-config.xml,根据它来创建和配 置各种Struts组件。Struts配置文件使得开发者可以灵活地组装和配置各个组件, 提高了应用软件的可扩展性和灵活性,可以避免硬编码。Struts配置文件是基于 XML的,相应的DTD文件为struts-config-1-2.dtd。 3. 基于Struts的Web应用的工作流程 在MVC设计模式的指导下,Struts为系统开发提供了一个优秀的应用框架, 可大幅提高开发效率。在此构架之上开发的应用程序工作流程大体如下: 应用程序启动时就会加载并初始化ActionServlet。ActionServlet从struts- config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如Action的 映射信息存放在ActionMapping对象中。 当ActionServlet接收到一个客户请求时,将执行如下流程: (1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请 求路径无效的信息。 - 17 - (2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交 的表单数据保存到ActionForm对象中。 (3)根据配置信息决定是否需要表单验证。如果需要验证,就调用 ActionForm的validate0方法。 (4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage 的ActionErrors对象,就表示表单验证成功。 (5)ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给 哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用 Action的execute()方法。 (6)Action的execute()方法返回一个ActionForward对象,ActionServlet再把客 户请求转发给ActionForward对象指向的JSP组件。 (7)ActionForward对象指向的JSP组件生成动态网页,返回客户。 流程图如下: 图图2.5 Struts工作流程图工作流程图 4. Struts的核心组件 按MVC模式各层次的实现来分,Struts的核心组件主要有: (1) Struts控制器组件 控制器组件负责检测用户的输入,或许还要更新域模型,并为客户端选择 下一个视图。使用控制器提供控制中心点来初步处理所有的客户请求。这种方 式的集中控制实现了MVC设计的两个要求。首先,控制器的作用正如一个介于 - 18 - 客户输入与模型间的仲裁机和翻译器。其次,因为所有的请求都要通过控制器 过滤,因此视图会从业务逻辑和其它视图组件中分离出来。返回给客户的视图 完全由控制器决定,这样使应用程序更为灵活。 aActionServlet类 org.apache.struts.action.ActionServlet类对于Struts应用程序而言,起着拦截者 的作用。所有来自客户层的请求在应用程序的任何其他部分进行处理之前,都 必须通过这个ActionServlet。当ActionServlet实例通过doGet()或者doPost()方法收 到HttpRequest 时,将调用process()方法来处理这个请求。 bRequestProcessor类 Strutsl.1中,ActionServlet类的功能大部分转给org.apache.struts.action. RequestProcessor类,添加这个新的控制器组件是为了帮助减轻大多数控制器中 ActionServlet类的负担。在ActionServlet的process()中调用了RequestProcessor类 的process()方法,并传递当前的请求和响应对象。 cAction类 org.apache.struts.action.Action类是Struts框架包的核心。它是一个连接客户请 求和业务操作的桥梁。每个Action类都特意设计来执行一个代表客户的单独的 业务操作,而该业务应该是关联紧密的任务的聚合。Action实例被确定后,就 会调用RequestProcessor类的processActionPerform()方法。该方法负责调用Action 实例的execute()方法。我们需要扩展Action类并提供execute()方法的一个实现方 式。 dActionForward类 Struts框架包依靠org.apache.struts.action.ActionForm类为关键组件来完成对 输入信息的操作任务。ActionForm类用于从一个HTML表单中捕获输入的数据 并将它传送到Action类。这时ActionForm类担当一个缓冲器和“防火墙”的角 色。然后,当数据从业务层返回时,特殊的ActionForm可以被JSP页面生成和使 用为HTML表单产生输入字段,以便与HTML表单更多的保持一改性。 ActionForm有两个不同层次的作用域:请求(request)和会话(session)。 ActionForm的validate()方法和reset()方法。 - 19 - RequestProcessor可以为每一个请求调用validate()方法,但必须满足两个条 件:必须为一个操作映射配置一个ActionForm:操作映射中的validate属性必须 有一个真值。对一个已被配置请求作用域的ActionForm,框架包将为每一个新 的请求创建一个新的实例,因此,没有必要复位值回到默认状态。在会话作用 域配置的ActionForm不同,这里是reset()方法方便运用的地方。 e使用预建的Struts Actions Str

温馨提示

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

评论

0/150

提交评论