中间件技术论文
学生姓名:余哲圣
学 号:[1**********]0
班 级:1121811
指导教师:吴光明
2014年 5 月2 1 日
一、简介
中间件(Middleware )是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台) ,但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软和实用软件区分开来。它隐藏了计算机体系结构、操作系统、编程语言和网络技术等方面的异构性,将复杂的协议处理、分割的内存空间、数据复本、网络故障、并行操作等问题与应用程序隔离开来,为上层应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。中间件已成为构建现代分布式应用、集成系统的一种不可或缺的成分,数据访问、企业资源规划、多媒体、无线/移动计算、电子商务、网格等都是它的典型应用领域。中间件技术屏蔽了底层分布式环境的复杂性和异构性,简化了分布式应用程序的开发,使分布式应用程序的健壮性、可扩展性、可用性更好。本文介绍了中间件的定义、分类、主流中间件技术平台,分析了中间件技术面临的挑战,提出了中间件技术研究的几个发展趋势,即网格技术、面向移动计算、面向服务质量等。
二、关键词:中间件 分类 技术平台 发展趋势
计算机系统最初阶段多是单机系统,多个用户是通过联机终端来访问。随着网络的出现,产生了客户/服务器的计算服务模式,多个客户端可以共享数据库服务器和打印服务器等。随着计算机和网络技术的飞速发展,许多软件需要在不同厂家的硬件平台、网络协议异构环境下运行,应用的规模从局域网发展到广域网,应用范围面向三层和多层体系结构的分布式环境,在分布式环境中,无论是硬件平台还是软件平台都不可能做到统一,而大规模的应用软件通常要求在软硬件各不相同的分布式网络上运行。中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,开发者不得不直接面对许多复杂棘手的问题,如操作系统的多样性、繁杂的网络程序设计和管理、复杂多变的网络环境、数据分散处理带来的不一致性问题等等,这些与用户的业务没有直接关系,但又必须解决,耗费了大量的时间和精力,因此开发者迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境,于是,中间件技术应运而生。
2.1 中间件的概念
在众多关于中间件的定义中,比较普遍接受的是IDC 表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源;中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。IDC 对中间件的定义表明,中间件是一类软件,而非一种软件;中间件是介于操作系统(包括底层通信协议) 和各种分布式应用程序之间的一个软件层。总的作用是建立分布式软件模块之间互操作的机制,屏蔽底层分布式环境的复杂性和异构性,为处于自己上层的应用软件提供运行与开发环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在具体实现上,中间件是一个用应用程序接口定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。中间件在分布式系统中的位置如图1所示。
图1
2.1 中间件的分类
随着计算机软件技术的发展,中间件技术也已日渐成熟,并且出现了不同层次、不同类型的中间件产品。按照IDC 分类方法,中间件可分为以下6类:
2.2 终端仿真/屏幕转换
用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作。
2.3 数据访问中间件
适用于应用程序与数据源之间的互操作模型,客户端使用面向数据库的API ,以提请直接访问和更新基于服务器的数据源,数据源可以是关系型、非关系型和对象型。这类中间件大都基于SQL 语句,采用同步通讯方式。此类中间件使应用开发简单化,但如果透过广域网使用,则会带来严重的效率问题,因为在低速网上来回交互SQL 语句会使通讯流量过大,同时对数据压缩、加密带来不便。
2.4 远程过程调用中间件
RPC 机制是早期开发分布式应用时经常采用的一种同步式的请求应答协议。通过这种协议,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程。RPC 扩展了过程语言中的“功能调用/结果返回”的机制,使得它可以适用于一个远程环境。由于RPC 机制是同步方式,因而在工作的时候,要求客户方和服务方均能正确工作才能很好地运行,有一方不能工作将导致RPC 失败。在网络故障、机器故障存在的情况下,这一要求是很难保证的。另外,由于大多数RPC 机制很难建立点到点的关系,因而也很难用在面向对象的编程当中。
2.5 消息中间件
越来越多的分布式应用采用消息中间件来构建,通过消息中间件把应用扩展到不同的操作系统和不同的网络环境。基于消息的机制更多地适用于事件驱动的应用,当一个事件发生时,消息中间件通知服务方应该进行何种操作。其核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息
中间件实现消息发送。消息中间件可以支持同步方式和异步方式,实际上是一种点到点的机制,因而可以很好的适用于面向对象的编程方式。中间件领域目前最热门的技术是异步的消息中间件,异步中间件技术比同步中间件技术具有更强的容错性,在系统故障时可以保证消息的正常传输。
2.6交易中间件
是专门针对联机交易处理系统而设计的,如银行业务系统、定票系统等。联机交易处理系统需要处理大量并发进程,处理并发涉及到操作系统、文件系统、编程语言、数据通讯、数据库系统、系统管理、应用软件,交易中间件就是一组程序模块,用以减少开发一个联机交易处理系统所需的编程量。
2.7 对象中间件
传统的面向对象技术通过封装、继承及多态提供了良好的代码重用功能,但是这些对象只存在一个程序中,外面的世界并不知道它们的存在,也无法访问它们。面向对象的中间件就是要解决这些问题,面向对象的中间件提供一个标准的构件框架,能使不同厂家的软件通过不同的地址空间、网络和操作系统交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。
实例程序设计
一、 实现基本功能
基于需要设计一个有前台界面,能实现用户的添加、修改,角色的添加修改及角色的分配。
二、 分析 基于JPA 和EJB 功能进行全局设置和主要功能的实现。JPA 全称Java Persistence API.JPA 通过JDK 5.0注解或XML 描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。EJB 是sun 的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。凭借java 跨平台的优势,用EJB 技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean) 是J2EE 的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK ) 。 在J2EE 里,Enterprise Java Beans(EJB)称为J ava 企业Bean ,是Java 的核心代码,分别是会话Bean (Session Bean ),实体Bean (Entity Bean )和消息驱动Bean (MessageDriven Bean )。利用web 实现前台界面。
三、 设计过程及分析
1、数据库参考模型
2、前台界面
基于实验要求,同时为了方便简洁,前台利用JSP 编写生成:
①、人员信息管理界面,包括部门信息、员工信息、角色信息和角色分配信息
模块连接。此界面即为主页。
②、部门信息界面,通过人员信息管理界面点击可进入此模块。此模块主要进
行部门的添加及其修改和删除,在这模块还可以桥清楚的对部门进行编号便于管理。同时还有返回主页和各个信息点的连接。
③、人员信息界面,通过人员信息管理界面点击相应的链接可进入此模块。该
模块的主要内容及实现的功能是,进行员工的修改和添加、删除,对员工进行具体的信息录入,方便管理。同时也包含了返回主页等界面的链接。
④、角色信息界面,同样的通过人员信息管理界面链接相应的链接可进入此模
块。这个模块的主要功能是进行角色的添加、修改和删除,并对其编号,方便管理与查询,还包含了对角色的描述(职场定位)。跟以上模块一样,同样也有返回主页等信息页面的链接。
⑤、角色分配信息界面,通过主页上的链接即可进入此模块。该模块的功能顾
名思义,就是对角色进行分配。包含了角色的ID 和职称等信息,同时也可以对角色进行添加和修改及删除。同样的,也包含了返回主页等界面的链接。
3、具体模块代码分析
①、主页代码主要如下:
人员信息管理
部门信息
员工信息
- 角色信息
- 角色分配信息
- ②、部门信息功能模块主要代码分析如下:
首先是部门的修改,定义一个changeServlet 类。主要代码如下: public class changeServlet extends HttpServlet {
@EJB
private DeparmentFacadeLocal deparmentFacade;
第二是部门的修改响应。第三是添加、删除部门信息的主要设计。最后是
相应成功添加部门信息的弹窗提示。此模块的设计方便简洁,但却实现了要求
要实现的功能。
③、角色信息模块设计分析:
public class NewServlet extends HttpServlet {
@EJB
private RoleinfoFacadeLocal roleinfoFacade;
首先是此模块的界面设计代码,和请求服务链接。
第二是角色信息添加,代码如下:Roleinfo roleinfo=new Roleinfo(); String roleid=request.getParameter("roleid");
String rolename=request.getParameter("rolename");
rolename = new String(rolename.getBytes("8859_1"), "utf-8"); String description=request.getParameter("description");
description = new String(description.getBytes("8859_1"), "utf-8");
roleinfo.setRoleid(roleid);
roleinfo.setRolename(rolename);
roleinfo.setDescription(description);
roleinfoFacade.create(roleinfo);
第三是角色信息的修改:同样要定义一个类。在下来是修改角色信息的主
要代码。
四是删除角色代码,和成功删除响应,主要代码如下:
Roleinfo roleinfo=new Roleinfo();
String roleid=request.getParameter("roleid");
roleinfo=null;
roleinfo=roleinfoFacade.find(roleid);
roleinfoFacade.remove(roleinfo);
out.print("");
④、角色分配信息模块分析:
首先角色信息的添加,代码如下:
String id=request.getParameter("id");
String roleid=request.getParameter("roleid");
String staffid=request.getParameter("staffid");
StaffRole staffrole=new StaffRole();
staffrole.setId(id);
staffrole.setRoleid(roleid);
staffrole.setStaffid(staffid);
staffRoleFacade.create(staffrole);
二是角色分配功能代码及修改响应,部分代码如下:
StaffRole staffrole=staffRoleFacade.find(id);
staffrole.setRoleid(roleid);
staffrole.setStaffid(staffid);
三是角色信息的删除:
StaffRole staffrole=staffRoleFacade.find(id);
staffrole.setRoleid(roleid);
staffrole.setStaffid(staffid);
staffRoleFacade.edit(staffrole);
out.print("alert('成功修改分配信息')
四是此模块与其他模块的链接,便于整体功能的实现,同样的这个模块方
便简洁却不失功能的完备性。
⑤、员工信息模块分析:
第一是员工的添加及响应:
StaffInfo staffinfo = new StaffInfo();
staffinfo.setStaffid(staffid);
staffinfo.setStaffnumber(staffnumber);
staffinfo.setStaffname(staffName);
staffinfo.setSex(staffSex);
staffinfo.setAge(staffAge);
staffinfo.setDepno(Depno);
第二是员工信息的添加功能代码:
StaffInfo staffinfo=staffInfoFacade.find(staffid);
staffinfo.setStaffnumber(staffnumber);
staffinfo.setStaffname(staffname);
staffinfo.setSex(staffsex);
staffinfo.setAge(staffage);
staffinfo.setDepno(depno);
staffInfoFacade.edit(staffinfo);
out.print("alert('成功添加员工信息')
第三是员工的删除功能实现代码;
String staffid=request.getParameter("staffid");
StaffInfo staffinfo=null;
staffinfo=staffInfoFacade.find(staffid);
staffInfoFacade.remove(staffinfo);
out.print("alert('成功删除员工信息')
最后是此模块的整体响应与链接,保证整体功能的完整。
4、服务器选用分析
为了方便和实现程序的可移植性,服务器选择了此软件自带的服务和WEB 服务
器。这样保证了程序执行环境的多变却能得以运行实现。
5、整体概况
程序的整体组合包括项目栏和服务器栏。其中项目栏包括如下:配置文件;资源服务器;JAVA EE模块;EJB 模块的配置文件、服务器资源、源包、测试包库与测试库等;下来是war 模块的整体。
四、 程序运行及结果
通过调试运行各个功能模块运行如下:
首先是主页:
第二是部门信息:
点击链接进入部门信息可以看到如下:
通过这里我们可以添加部门:
也可以删除和修改部门:
修改后部门名字由原来的FFFF 变成了FFF 如图:
第三是员工信息:
点击员工信息链接点可进入此功能界面:
。
此模块也可以对人员进行详细的资料记录,可以添加新员工,修改和删除现有员工。
添加成功后的员工表为:
。
第四是角色信息:
同样的在主页点击相应的链接进入此功能模块:
同样的功能,此模块也可以添加新角色,删除和修改现有角色
.
添加成功后角色表里多出了相应的角色:
同样的在此功能模块点击主页链接回到主页或者点击导航栏相关链接,可以进入到相关模块。
第五个是角色分配信息:
一样的操作,点击相应的链接进入此功能模块:
首先在此页添加一个新角色
:
添加成功后角色分配表多出了新成员
:
五、 总结
中间件技术论文
学生姓名:余哲圣
学 号:[1**********]0
班 级:1121811
指导教师:吴光明
2014年 5 月2 1 日
一、简介
中间件(Middleware )是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台) ,但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软和实用软件区分开来。它隐藏了计算机体系结构、操作系统、编程语言和网络技术等方面的异构性,将复杂的协议处理、分割的内存空间、数据复本、网络故障、并行操作等问题与应用程序隔离开来,为上层应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。中间件已成为构建现代分布式应用、集成系统的一种不可或缺的成分,数据访问、企业资源规划、多媒体、无线/移动计算、电子商务、网格等都是它的典型应用领域。中间件技术屏蔽了底层分布式环境的复杂性和异构性,简化了分布式应用程序的开发,使分布式应用程序的健壮性、可扩展性、可用性更好。本文介绍了中间件的定义、分类、主流中间件技术平台,分析了中间件技术面临的挑战,提出了中间件技术研究的几个发展趋势,即网格技术、面向移动计算、面向服务质量等。
二、关键词:中间件 分类 技术平台 发展趋势
计算机系统最初阶段多是单机系统,多个用户是通过联机终端来访问。随着网络的出现,产生了客户/服务器的计算服务模式,多个客户端可以共享数据库服务器和打印服务器等。随着计算机和网络技术的飞速发展,许多软件需要在不同厂家的硬件平台、网络协议异构环境下运行,应用的规模从局域网发展到广域网,应用范围面向三层和多层体系结构的分布式环境,在分布式环境中,无论是硬件平台还是软件平台都不可能做到统一,而大规模的应用软件通常要求在软硬件各不相同的分布式网络上运行。中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,开发者不得不直接面对许多复杂棘手的问题,如操作系统的多样性、繁杂的网络程序设计和管理、复杂多变的网络环境、数据分散处理带来的不一致性问题等等,这些与用户的业务没有直接关系,但又必须解决,耗费了大量的时间和精力,因此开发者迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境,于是,中间件技术应运而生。
2.1 中间件的概念
在众多关于中间件的定义中,比较普遍接受的是IDC 表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源;中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。IDC 对中间件的定义表明,中间件是一类软件,而非一种软件;中间件是介于操作系统(包括底层通信协议) 和各种分布式应用程序之间的一个软件层。总的作用是建立分布式软件模块之间互操作的机制,屏蔽底层分布式环境的复杂性和异构性,为处于自己上层的应用软件提供运行与开发环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在具体实现上,中间件是一个用应用程序接口定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。中间件在分布式系统中的位置如图1所示。
图1
2.1 中间件的分类
随着计算机软件技术的发展,中间件技术也已日渐成熟,并且出现了不同层次、不同类型的中间件产品。按照IDC 分类方法,中间件可分为以下6类:
2.2 终端仿真/屏幕转换
用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作。
2.3 数据访问中间件
适用于应用程序与数据源之间的互操作模型,客户端使用面向数据库的API ,以提请直接访问和更新基于服务器的数据源,数据源可以是关系型、非关系型和对象型。这类中间件大都基于SQL 语句,采用同步通讯方式。此类中间件使应用开发简单化,但如果透过广域网使用,则会带来严重的效率问题,因为在低速网上来回交互SQL 语句会使通讯流量过大,同时对数据压缩、加密带来不便。
2.4 远程过程调用中间件
RPC 机制是早期开发分布式应用时经常采用的一种同步式的请求应答协议。通过这种协议,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程。RPC 扩展了过程语言中的“功能调用/结果返回”的机制,使得它可以适用于一个远程环境。由于RPC 机制是同步方式,因而在工作的时候,要求客户方和服务方均能正确工作才能很好地运行,有一方不能工作将导致RPC 失败。在网络故障、机器故障存在的情况下,这一要求是很难保证的。另外,由于大多数RPC 机制很难建立点到点的关系,因而也很难用在面向对象的编程当中。
2.5 消息中间件
越来越多的分布式应用采用消息中间件来构建,通过消息中间件把应用扩展到不同的操作系统和不同的网络环境。基于消息的机制更多地适用于事件驱动的应用,当一个事件发生时,消息中间件通知服务方应该进行何种操作。其核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息
中间件实现消息发送。消息中间件可以支持同步方式和异步方式,实际上是一种点到点的机制,因而可以很好的适用于面向对象的编程方式。中间件领域目前最热门的技术是异步的消息中间件,异步中间件技术比同步中间件技术具有更强的容错性,在系统故障时可以保证消息的正常传输。
2.6交易中间件
是专门针对联机交易处理系统而设计的,如银行业务系统、定票系统等。联机交易处理系统需要处理大量并发进程,处理并发涉及到操作系统、文件系统、编程语言、数据通讯、数据库系统、系统管理、应用软件,交易中间件就是一组程序模块,用以减少开发一个联机交易处理系统所需的编程量。
2.7 对象中间件
传统的面向对象技术通过封装、继承及多态提供了良好的代码重用功能,但是这些对象只存在一个程序中,外面的世界并不知道它们的存在,也无法访问它们。面向对象的中间件就是要解决这些问题,面向对象的中间件提供一个标准的构件框架,能使不同厂家的软件通过不同的地址空间、网络和操作系统交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。
实例程序设计
一、 实现基本功能
基于需要设计一个有前台界面,能实现用户的添加、修改,角色的添加修改及角色的分配。
二、 分析 基于JPA 和EJB 功能进行全局设置和主要功能的实现。JPA 全称Java Persistence API.JPA 通过JDK 5.0注解或XML 描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。EJB 是sun 的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。凭借java 跨平台的优势,用EJB 技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean) 是J2EE 的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK ) 。 在J2EE 里,Enterprise Java Beans(EJB)称为J ava 企业Bean ,是Java 的核心代码,分别是会话Bean (Session Bean ),实体Bean (Entity Bean )和消息驱动Bean (MessageDriven Bean )。利用web 实现前台界面。
三、 设计过程及分析
1、数据库参考模型
2、前台界面
基于实验要求,同时为了方便简洁,前台利用JSP 编写生成:
①、人员信息管理界面,包括部门信息、员工信息、角色信息和角色分配信息
模块连接。此界面即为主页。
②、部门信息界面,通过人员信息管理界面点击可进入此模块。此模块主要进
行部门的添加及其修改和删除,在这模块还可以桥清楚的对部门进行编号便于管理。同时还有返回主页和各个信息点的连接。
③、人员信息界面,通过人员信息管理界面点击相应的链接可进入此模块。该
模块的主要内容及实现的功能是,进行员工的修改和添加、删除,对员工进行具体的信息录入,方便管理。同时也包含了返回主页等界面的链接。
④、角色信息界面,同样的通过人员信息管理界面链接相应的链接可进入此模
块。这个模块的主要功能是进行角色的添加、修改和删除,并对其编号,方便管理与查询,还包含了对角色的描述(职场定位)。跟以上模块一样,同样也有返回主页等信息页面的链接。
⑤、角色分配信息界面,通过主页上的链接即可进入此模块。该模块的功能顾
名思义,就是对角色进行分配。包含了角色的ID 和职称等信息,同时也可以对角色进行添加和修改及删除。同样的,也包含了返回主页等界面的链接。
3、具体模块代码分析
①、主页代码主要如下:
人员信息管理
部门信息
员工信息
- 角色信息
- 角色分配信息
- ②、部门信息功能模块主要代码分析如下:
首先是部门的修改,定义一个changeServlet 类。主要代码如下: public class changeServlet extends HttpServlet {
@EJB
private DeparmentFacadeLocal deparmentFacade;
第二是部门的修改响应。第三是添加、删除部门信息的主要设计。最后是
相应成功添加部门信息的弹窗提示。此模块的设计方便简洁,但却实现了要求
要实现的功能。
③、角色信息模块设计分析:
public class NewServlet extends HttpServlet {
@EJB
private RoleinfoFacadeLocal roleinfoFacade;
首先是此模块的界面设计代码,和请求服务链接。
第二是角色信息添加,代码如下:Roleinfo roleinfo=new Roleinfo(); String roleid=request.getParameter("roleid");
String rolename=request.getParameter("rolename");
rolename = new String(rolename.getBytes("8859_1"), "utf-8"); String description=request.getParameter("description");
description = new String(description.getBytes("8859_1"), "utf-8");
roleinfo.setRoleid(roleid);
roleinfo.setRolename(rolename);
roleinfo.setDescription(description);
roleinfoFacade.create(roleinfo);
第三是角色信息的修改:同样要定义一个类。在下来是修改角色信息的主
要代码。
四是删除角色代码,和成功删除响应,主要代码如下:
Roleinfo roleinfo=new Roleinfo();
String roleid=request.getParameter("roleid");
roleinfo=null;
roleinfo=roleinfoFacade.find(roleid);
roleinfoFacade.remove(roleinfo);
out.print("");
④、角色分配信息模块分析:
首先角色信息的添加,代码如下:
String id=request.getParameter("id");
String roleid=request.getParameter("roleid");
String staffid=request.getParameter("staffid");
StaffRole staffrole=new StaffRole();
staffrole.setId(id);
staffrole.setRoleid(roleid);
staffrole.setStaffid(staffid);
staffRoleFacade.create(staffrole);
二是角色分配功能代码及修改响应,部分代码如下:
StaffRole staffrole=staffRoleFacade.find(id);
staffrole.setRoleid(roleid);
staffrole.setStaffid(staffid);
三是角色信息的删除:
StaffRole staffrole=staffRoleFacade.find(id);
staffrole.setRoleid(roleid);
staffrole.setStaffid(staffid);
staffRoleFacade.edit(staffrole);
out.print("alert('成功修改分配信息')
四是此模块与其他模块的链接,便于整体功能的实现,同样的这个模块方
便简洁却不失功能的完备性。
⑤、员工信息模块分析:
第一是员工的添加及响应:
StaffInfo staffinfo = new StaffInfo();
staffinfo.setStaffid(staffid);
staffinfo.setStaffnumber(staffnumber);
staffinfo.setStaffname(staffName);
staffinfo.setSex(staffSex);
staffinfo.setAge(staffAge);
staffinfo.setDepno(Depno);
第二是员工信息的添加功能代码:
StaffInfo staffinfo=staffInfoFacade.find(staffid);
staffinfo.setStaffnumber(staffnumber);
staffinfo.setStaffname(staffname);
staffinfo.setSex(staffsex);
staffinfo.setAge(staffage);
staffinfo.setDepno(depno);
staffInfoFacade.edit(staffinfo);
out.print("alert('成功添加员工信息')
第三是员工的删除功能实现代码;
String staffid=request.getParameter("staffid");
StaffInfo staffinfo=null;
staffinfo=staffInfoFacade.find(staffid);
staffInfoFacade.remove(staffinfo);
out.print("alert('成功删除员工信息')
最后是此模块的整体响应与链接,保证整体功能的完整。
4、服务器选用分析
为了方便和实现程序的可移植性,服务器选择了此软件自带的服务和WEB 服务
器。这样保证了程序执行环境的多变却能得以运行实现。
5、整体概况
程序的整体组合包括项目栏和服务器栏。其中项目栏包括如下:配置文件;资源服务器;JAVA EE模块;EJB 模块的配置文件、服务器资源、源包、测试包库与测试库等;下来是war 模块的整体。
四、 程序运行及结果
通过调试运行各个功能模块运行如下:
首先是主页:
第二是部门信息:
点击链接进入部门信息可以看到如下:
通过这里我们可以添加部门:
也可以删除和修改部门:
修改后部门名字由原来的FFFF 变成了FFF 如图:
第三是员工信息:
点击员工信息链接点可进入此功能界面:
。
此模块也可以对人员进行详细的资料记录,可以添加新员工,修改和删除现有员工。
添加成功后的员工表为:
。
第四是角色信息:
同样的在主页点击相应的链接进入此功能模块:
同样的功能,此模块也可以添加新角色,删除和修改现有角色
.
添加成功后角色表里多出了相应的角色:
同样的在此功能模块点击主页链接回到主页或者点击导航栏相关链接,可以进入到相关模块。
第五个是角色分配信息:
一样的操作,点击相应的链接进入此功能模块:
首先在此页添加一个新角色
:
添加成功后角色分配表多出了新成员
:
五、 总结