杨 桦
(天津海运职业学院,天津市 300350)
基于Java EE的模拟器开发项目管理系统的实现
杨 桦
(天津海运职业学院,天津市 300350)
基于Java EE开发平台,经过需求分析和总体设计、架构设计,开发实现 “模拟器开发项目管理系统”。它可以使项目管理者灵活而合理的制定项目计划、分解和规划项目任务;使项目执行者快速方便地按照项目计划来执行任务,与其他项目参与者协同工作,从而实现高效、成功的网络化制造。
分布式项目管理;Java EE;设计模式
网络化制造充分利用网络技术,实现制造资源的优化配置和集成。它以数字化、柔性化、敏捷化为基本特征,针对某一需要,利用以网络技术为特征的现代化制造网络,灵活而迅速地组织和利用社会制造资源,把分散在不同地区的现有生产设备资源、智力资源和各种核心能力,按资源优势互补的原则,迅速地组织成跨越地区、空间约束的网络联盟,实现快速、高质量、低成本的产品和服务。本系统引用“网络化制造”的思想,并与传统的项目管理模式相结合,从而实现对分布在异地的业务进行有效地管理,即分布式的网络化制造项目管理。
目前在网络环境下,为了能够有效地开发、部署、运行和管理系统,通常采用多层体系架构的应用模式,在多层架构的设计中,对于位于中间层的应用服务器的设计显得尤为重要。就目前来看,可供选择的开发平台主要有基于Java EE的解决方案和微软.NET平台的解决方案。
基于Java EE在以下几方面的优势,本系统选择Java EE作为开发平台。
(一)开发的高效性 Java EE应用服务器可以使开发人员集中精力开发业务逻辑,而不用考虑通用、繁琐的底层系统服务,从而减轻了开发人员的工作量,缩短了开发时间。
(二)支持异构环境 设计合理的基于Java EE可移植程序不依赖任何特定操作系统、中间件和硬件,只需开发一次就可以部署到各种平台。
(三)安全性 Java EE会在程序编译的过程中不断进行测试,从而对潜在的问题提出警示,并不是等到程序完全开发完毕后才加上相应的安全机制。
(四)稳定的可用性 Java EE可以被部署到健壮性很好的操作系统(比如Sun Solaris、IBM OS/390)中,从而保证了长期、稳定的可用性。
随着网络应用的不断发展,传统的C/S结构(即客户机-服务器结构),存在着一些关键性的不足之处。比如:“胖”客户,即客户端需要相当多的软硬件资源,客户机负载较重,同时对客户机的配置要求也相对较高;客户端的任务庞大,使得维护和升级都比较困难。
SUN公司设计Java EE的目的之一就是为了解决两层C/S(Client/Server)模式的不足之处。Java EE号称多层结构,即基于n层应用的思想,使得应用程序的不同部分可以运行在不同的设备上,最终实现了松耦合、解耦性好、维护升级扩展方便灵活等特点。
(一)系统性能的需求分析
本系统需同时具备:可理解性、可靠性、易修改性和可重用性。
(二)系统功能的需求分析
1.项目定义。从盟主方向ASP平台发布项目的基本情况开始。盟主方需将该项目的基本情况提交到ASP平台发布。
2.盟员选择。某一项目的设计实现必须是由多方合作进行的。为形成一个强有力的有效联盟,需要对各拟参与方进行评估选择。盟主方需要通过招投标的方式进行盟员选择,从而选择最适合的参与方进行联盟。
3.项目计划。经过以上两个阶段的完成后,项目负责人(即项目经理)根据项目目标的规定,对该项目的执行进行周密的安排,如确定项目任务、安排任务进度、编制资源预算等,从而保证项目能够在合理的工期内顺利完成。
4.项目监控。项目负责人要周期性地进行跟踪项目计划的各种参数如进度、工作量、费用、资源、工作成果、风险等等,不断地了解项目的进展情况,以便当项目实际进展状况显著偏离计划时能够及时采取纠正措施。项目负责人通过项目执行成员提交的项目进程实际情况与项目计划进行对比,如果发现某些因素的偏差非常大(超过了容许的误差),那么及时分析原因,在系统中及时发布纠正措施。
5.项目终止。当项目目标完成以后,项目负责人发布终止信息并将利益分配等项目终止活动通知成员。
6.成员管理。本系统需要支持账号的申请与审核,平台管理员可以进行到期删除与无项目删除。不同的项目成员拥有不同的职责范围。因此需要将他们划分成不同的角色,赋予相应的权限,并可动态修改,以加强系统的安全性。
7.文档管理。在项目进行过程中会产生大量的文档(如合同、技术文档等),本系统需要建立有效的管理机制,从而使项目成员可以非常方便的得到需要的信息,同时有利于项目管理者发现、解决问题。
8.实时交流。本系统必须为参加项目制造的成员之间及时、充分的交流而提供支持,方便项目成员就项目进展达成共识并及时解决出现的问题。在每个项目进行过程中,使项目成员通过网络及计算机进行交流,实现在异地对项目的开发问题达成共识。实时交流包括了公告、视频会议、即时消息、论坛和电子邮件。
根据上述对系统性能需求和功能需求的详细分析,设计“模拟器开发项目管理系统”模型如图1所示。
第一层为数据层:主要包括基础数据库、信息库和知识库。
第二层为Java EE应用服务器:其主要功能是为其上层的工作流引擎和应用服务层提供运行环境、并发性管理、性能管理等底层系统服务。
第三层为工作流引擎:工作流引擎是系统的灵魂,其主要功能是解释任务网络计划,依据任务间的逻辑时序和运行优先级的高低,为任务的实例化提供运行环境,并能控制和管理任务实例的创建、激活、挂起和终止等状态。
第四层为应用服务层:包括安装在ASP平台服务器端的向客户提供各种项目管理服务的业务模块和支撑技术,如项目定义、项目计划、项目成员管理等。客户能够通过系统门户网站和Internet/Intranet来获取各种服务,使得联盟企业的项目小组、ASP平台系统管理人员和行业专家可以随时随地直接通过浏览器参加项目活动。
图1 系统模型
为了降低表示层与业务层的耦合度,实现业务逻辑与数据访问代码的分离并能解决单纯按照Java EE规范开发系统造成的弊端,本文采用基于MVC设计模式的JSF(Java Server Faces)框架和Business Delegate等Java EE设计模式,开发了一个使用闭合层方法的多层系统架构,如图2所示。由此使得每层只能直接与相邻层交流,各层的改变将不会导致跨层影响,便于系统的维护和扩展。
业务层位于系统架构的中间层,它集中实现了系统的业务规则,是实现系统功能的核心组件。在本系统中采用EJB(Enterprise Java Beans)作为业务层的主要实现技术。本系统采用Java EE设计模式对业务层进行了基本结构设计,使得系统层次更加清晰、效率更高。
(一)业务代理模式
本系统要求具备极强的交互式性。在任一项目管理过程中产生的大量数据必须要通过表示层与业务层的交互才能实现,这种交互往往是复杂的,并且是需要易于扩展的。
在系统的开发过程中,如果表示层和业务层直接进行交互,就会将业务层底层API交互的细节暴露给表示层,这样会增加表示层和业务层之间的耦合性,即当业务层发生改变时表示层也必须相应的改变,从而降低了系统的可维护性。此外表示层开发人员还需要处理EJB的相关技术,使其增加了开发负担,不能体现Java EE分层开发的高效率。
图2 系统架构模型
因此,在本系统的开发过程中,采用了业务代理模式来降低表示层和业务层之间的耦合性。业务代理模式向表示层提供了业务层抽象,隐藏了业务层的实现细节,从而降低了表示层和业务层的耦合性。业务代理模式可以保护表示层免受业务层经常发生变化的影响,即在通常情况下,当业务层发生变化时开发人员可以不修改或稍微修改一下表示层就可以了。
以下是本系统中利用业务代理模式实现的用户管理的流程图,如图3所示。
图3 用户管理流程图
(二)会话外观模式
业务代理模式仅仅解决了表示层和业务层的直接交互问题,在开发基于Web应用程序的时候,很多人采用的方法是客户端直接访问Entity Bean或Session Bean,这样在开发过程中没有很好的客户访问策略和管理好EJB业务对象,就会出现网络负担较高、高耦合、安全性威胁、操作错误可能带来数据的不一致等一系列问题。
为了解决以上问题,本系统采用一个无状态Session Bean来实现Session Facade,用来封装业务对象之间交互的复杂性,提供只暴露所需接口的粗粒度的服务访问层,由此将复杂的对象交互和客户端隔离开来。Session Facade也可以根据需要管理业务对象的生命周期,也就是管理业务对象的创建、查找、删除和修改。
这里以用户管理为例,将所有关于用户的操作如增加、删除、修改、查询等操作都集中在用户管理外观中,由它对各Entity Bean或DAO对象进行处理,客户只与该用户管理外观打交道,不直接访问各业务对象。
用户管理外观UserFacade的远程接口如下:
package pm.usermanage.facade;
import javax.ejb.*;
import java.rmi.RemoteException;
……
public interface Uer Facade extends EJBObject
{
public void add User(Uer VO uer Vo)throws RemoteException;
public boolean deleteUser(Uer VO uer Vo)throws RemoteException;
……
}
用户管理外观UserFacade的Bean实现如下:
package pm.usermanage.facade;
import javax.ejb.*;
……
public UserFacadeBean implements Session Bean
{
//Session Bean的生命周期方法
public void ejb Create()throws CreateException
{
}
……
//业务方法
public void add User(User user Vo)
{
……
ServiceLocator locator=ServiceLocator.getInstance();
User DAOHome user DAOHome=locator.getEJBLocal Home(
ServiceLocator.Uer DAO,User DAOHome.class);
User DAO user DAO=user DAOHome.create();
user DAO.insert(user Vo);
……
}
……
}
(三)服务定位器模式
服务定位器对象Service Locator实现了单例模式,封装了JNDI查找的复杂性。本系统在客户端统一采用通过getEJBHome()来获得对各个业务对象EJB的引导接口的引用。这样向客户端提供了统一的接口,实现了查找代码的集中管理,降低了客户端开发人员的劳动强度。它使用Hashtable对象缓存找到对象,当再次使用时避免了再次查找,提高了性能。
本文中服务定位器类的实现流程图如图4所示。
图4 服务定位器类实现流程图
(一)系统的开发环境
本系统实验平台的服务器端使用Microsoft Windows 2000 Server作为操作系统,安装的JDK版本为1.5.0(安装后分别为JDK1.5.0和JRE1.5.0),测试应用服务器为 WebLogic8.1,数据库服务器为 Microsoft SQL Server 2000。表示层页面采用的开发工具为 Dreamweaver Max 2004,业务层和数据持久层采用的开发工具为Eclipse 3.3。
(二)系统的运行环境
本系统需要在Internet上使用,以便使项目参与成员能够随时随地参与有关项目的所有活动。由于JSP技术属于Java体系,具有Java跨平台的优良特性。因此对客户端的操作系统及其它的软硬件环境没有特殊要求,只需装有浏览器即可。
(一)项目定义界面
盟主企业需要先在项目定义界面上向平台提交项目的基本信息,如项目名称、盟主单位、计划开始日期等之后,并经平台管理人员查实后,才能够以招投标的形式进行盟员选择。项目定义界面如图5所示。
图5 项目定义界面
(二)项目计划界面
在项目计划界面中以列表的形式向项目成员显示项目的计划信息、创建人等信息。点击项目名称,用户可以查看以甘特图、网络图等形式显示的项目详细定义。项目计划界面如图6所示。
图6 项目计划界面
(三)成员管理界面
在成员管理界面中,以列表的形式显示项目成员的基本信息。项目管理人员可以通过电子邮件邀请新的成员并赋予相应的权限,也能够删除不合格的成员。成员管理界面如图7所示。
图7 成员管理界面
(四)文档管理界面
文档管理模块负责管理项目进行过程中产生的大量的文档信息。本模块采用多级目录结构存放项目文档,在页面中为用户提供了目录中文件的详细信息和多种操作。用户可以点击“返回上级目录”和“返回根目录”在不同的目录之间自由浏览,还可以点击“创建子文件夹”创建当前目录的子目录。用户还可以方便的上传新文档或已有文档的不同版本。用户进行以上操作必须拥有相应的权限。项目经理具有文档管理的最高权限,由他为其他成员分配权限。文档管理界面如图8所示。
图8 文档管理
[1]严隽薇.面向网络化制造ASP平台工具构件与集成技术[J].制造业自动化,2004,(26).
[2]王君华,马溪骏.基于ASP模式应用服务托管平台结构的研究[J].中国管理信息化,2007,(10).
[3]黄开枝,许勇,王黎.Java EE 5完全学习手册[M].北京:清华大学出版社,2009.
[4]D.ALUR,J.CRUPI,D.MALKS,牛志奇、丁天、田蕴哲译.J2EE核心模式[M].北京:机械工业出版社,2002.
[5]李巍,尹朝万,王成恩.分布式网络化制造中的E项目管理[J].小型微型计算机系统,2003,(24).
The Implementation of Java EE-based Simulator Development Project Management System
YANG Hua
(Tianjin Maritime Vocational Institute,Tianjin 300350 China)
Based on Java EE's exploration platform,the simulator development project management system is exploited through the demand analysis and overall design,structure design.It allows the managers to make a flexible and reasonable project plan,decompose task and plan projects.Also,the implementation can be quickly and easily performed with other participants for an efficient and successful network manufacturing.
project management;Java EE;design patterns
TP311.5
A
1673-582X(2011)10-0065-07
2011-06-14
杨桦(1979-),女,天津市人,天津海运职业学院讲师,硕士,主要研究计算机应用技术。