J2EE/MVC技术在物资管理系统上的应用

来源 :硅谷 | 被引量 : 0次 | 上传用户:dongdongthere
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]物资管理是企业生产管理的重要内容,高水平的物资管理能够有助于提高企业效益。基于J2EE/MVC的开发框架,采用JAVA语言,为设计一个通用的物资管理系统,探讨与其相关的关键技术实现。
  [关键词]JAVA J2EE 物资管理 MVC
  中图分类号:TP39 文献标识码:A 文章编号:1671-7597(2008)0520074-02
  
  一、引言
  
  在Internet流行和快速发展的今天,越来越多的企业开始推行信息化建设,物资管理系统[1]就是在这种背景下应运而生的。通过这个系统,公司能够很好的重组和管理物资资源,达到了企业减少成本,提高公司生产效率和效益的目的。
  传统的客户机/服务器模型存在很多缺陷,基于J2EE基础上的MVC开发模型和.NET开发模型已经成为当今软件开发的趋势。J2EE[2]全称为Java2 Platform, Enterprise Edition,本质上是一个分布式的服务器应用程序设计环境一个Java环境,是Sun公司提出的一种分布式企业级应用开发的技术架构,基于J2EE的系统具有良好的可扩展性、集成性,并能缩短开发周期,减少总体成本。在程序开发中,我们采用了Struts开发框架,Struts采用MVC[5](模型、视图、控制)模式,它能很好的把界面显示和业务逻辑分离开,方便程序员开发和维护。
  
  二、系统设计与实现
  
  物资管理系统是以合同管理,仓储管理为核心,完成订单处理,计划和调度,库存管理,费用核算,客户服务,系统管理等一系列功能。
  
  (一)系统功能概述
  物资管理系统的主要功能基本可以划分为如下:
  初始处理 编号表设置、期初库存输入。
  货物需求 制销售合同、制货物需求单、货物需求单查询、货物需求一览表。
  采购需求 制采购合同、采购合同审批、采购计划一览表查询、制采购申请单、客户发票录入。
  存货管理 制入库申请单、入库申请单查询、制入库单、入库单查询。
  送货管理 送货完成确定、送货情况一览表查询。
  供货商与客户管理 单位名信息设置、供应商信息设置、供货商货品价格设置、客户信息设置、供货商与客户买卖合同一览表。
  库存管理 库存查询、盘盈盘亏、调库、销售报表。
  系统维护 菜单角色关系设置、角色人员关系设置、公司部门关系设置、人员公司部门职务关系设置。
  
  (二)系统主要模块说明
  1. 合同和采购模块
  合同和采购模块是整个物资管理系统流转的核心,包括合同管理、采购管理、合同执行管理三小块。合同是整个系统流转的起点,公司销售部门制成合同信息,汇总成合同明细一览表,公司采购部门根据公司资金状况和库存实际情况制定出采购计划,计划经过审批同意的话那么就进行采购,不同的话就回退重新制定新的采购计划。在这个过程,公司项目负责人会关心项目整个进展情况,他可以通过合同执行管理中提供的功能来了解整个项目执行的详细信息,以便及时做出相应的措施,保证工程顺利的完成。
  2. 仓储管理
  仓储管理是物资管理软件必不可少的一部分,包括入库管理、出库管理、库存查询三小块。供应商到货后填写入库申请单,公司质检科检查物品后填写质量检验单,合格的物品就流入仓库,不合格的物品则产生退货通知单。出库管理相应的比较简单,销售部门只要填写出库申请单,申请批准后就可以出库了。库存查询功能是否完善体现了这个软件的适用性,我们的库存查询包含盘盈盘亏、库存盘点、出入明细查询、库存台帐查询、当前库存查询,在这些查询功能中又设定可以按各种条件查询,物资和仓库管理人员可以通过上述功能查看出各个仓库流转情况,库存当前状态,以便达到库存的最优化。
  
  (三)系统实现的关键技术
  1. 连接池技术
  在传统的数据库连接方式中,随着客户访问量的增多,JDBC频繁的同后台数据库连接和关闭,耗费了大量的内存资源,在多层结构的应用程序环境下,这种耗费资源的动作对系统的性能影响尤为明显。数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应在请求队列中排队等待。数据库连接池技术有效地控制了内存资源的快速消耗。
  设置数据库(oracle9)连接池,我们是在JBOSS的服务器发布目录jboss-3.2.3\server\default\deploy\oracle-ds.xml。
  在程序开发过程中,从程序的规范性和重用性角度考虑,对数据库的访问放在一个中间件DBManage.java类中。
  public class DBManage {
   private static DataSource dataSource; //在多个用户间共享同一个datasource
   publicDBManage(Context ctx )throws Exception{
  dataSource = (DataSource) ctx.lookup("java:OracleDS");
  public static ConnectiongetConnection( ){
  //如果出错,返回空。
  try{
  return dataSource.getConnection();
  }
  catch(SQLException e){
  System.err.println(e.getMessage());
  return null;
   }
  }
  }
  2. session faade模式
  前端控制器模式给出了一个基于MVC的、能有效管理用户与J2EE应用之间进行的复杂交互的结构。这个模式可以使处理页面的显示顺序和用户的并发请求变得简单,并且使增加和改变页面变得更加容易。但是另外一个问题是,如果一个客户端需要两个业务对象的信息,比如用户在申请合同中物品出库时,同时需要得到ContractEJB合同的相关信息、StoreEJB仓库中的物品的相关信息等,则将需要两个远程方法调用,并且这两个调用都是细粒度的。如果一个EJB[3] [4]客户端需要调用三个业务对象的方法,则将需要三个远程方法调用。当存在着大量的EJB客户端,而每个客户端又需要调用多个业务对象时,这种细粒度的网络调用就会成倍的增加,系统性能就会因为网络负载而降低。
  解决这个问题的方法是,把客户端和它们使用的EJB分割开,使用门面设计模式的一种Session Façade模式。在EJB设计中,Session Facade是应用最广泛的设计模式。它应用Session Bean来实现Facade模式的思想,把构成子系统的一套业务对象“鞍”氨在Session Bean中。这样,Session Facade作为客户端访问业务对象的拦截器,屏蔽了业务对象。EJB客户端访问Session Bean来代替访问业务对象,当一个EJB客户端需要调用多个业务对象的方法时,它只需要进行一次粗粒度的远程方法调用,将请求送给Session Facade, 再由Session Facade通过本地方法调用,调用相应的业务对象,执行其方法。这样就减轻了网络负载,提高了系统性能。并且当业务对象的方法改动时,只需要修改Session Bean,而客户端可以保持不变。这就减少了客户端和业务对象之间的耦合度,同时客户端也不必管理事务的细节。如图所示:
  


  有Session Facade时的情况
  给出用户在申请合同中物品出库的示意性代码:
  public class OutStoreFacade implements SessionBean {
  public void OutStoreaction(String storeid,String address) {
  Context context = new InitialContext();
  //获取对需要访问的EJB的调用
  Object ref = context.lookup("ContractEJB");
  contractHome = (ContractHome) PortableRemoteObject.narrow(ref, ContractHome.class);
  contract1=contractHome.create();
  ref = context.lookup("StoreEJB");
  storeHome = (StoreHome) PortableRemoteObject.narrow(ref, StoreHome.class);
  store1=storeHome.create();
  //执行其它处理
  }
  }
  引入了OutStoreFacade后,客户端程序变得十分简单:
  public class outstoregoodsAction extends Action {
  public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
   //获取对会话Bean Façade的引用
   Context context = new InitialContext();
  Object ref = context.lookup("OutStoreFacade");outstorefacadeHome=(OutStoreFacadeHome)PortableRemoteObject.narrow(ref, OutStoreFacadeHome.class);
  outstorefacade= outstorefacadeHome.create();
  //调用OutStoreaction方法,执行操作
  }
  }
  
  三、结束语
  
  基于J2EE平台设计的物资管理系统已投入试运行。采用该软件体系结构,在软件可维护性、可扩展性、系统稳定性、系统安全性方面都有了很好地提高,达到了提高软件开发效率和软件质量的目的。但是在开发过程中也发现,如果业务逻辑不很复杂,或者开发原型不考虑升级和扩展,那么使用EJB有点小题大做,可以考虑使用jsp+javabean+jdbc的MVC模型来开发。
  
  参考文献:
  [1]林强,林英鸿. 电子商务的物流配送研究[J].计算机科学,2002;28(7):49-52.
  [2]张玲,左春等. 基于J2EE标准开发保险企业服务软件[J].计算机工程与应用,2001;37(20):137-140.
  [3]张宇峰,曹广益.用EJB开发网上DIY交易系统[J]. 微型电脑应用,2003;17(4):35-38.
  [4]飞思科技产品研发中心编著[M] .精通EJB(第二版). 北京:电子工业出版社,2003.
  [5]张计龙,张成洪,张凯. 基于改进MVC的高校人事管理系统[J] . 计算机工程.2004,(5):67-70.
  
  作者简介:
  杨志云:女,工程师,石家庄法商职业学院教师,研究方向:计算机应用控制;司海峰:男,石家庄法商职业学院教师,研究方向:计算机应用控制。
其他文献
[摘要]FFT算法是一种实现数字脉冲压缩的高效、灵活的方法,也是实现数字数字信号中重要技术。利用并行存储器和流水设计改进了FFT模块,运用FPGA实现1024点的FFT运算。另外,应用的乒乓存储技术使该模块提高了数据传输的效率,很好的满足了系统实时性和精度要求。  [关键词]FPGAFFT 流水方式 数字脉冲压缩  中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)052
期刊
[摘要]使用Java语言和SQLServer2000数据库开发适合院校图书馆使用的图书预约系统。介绍系统的设计思路、数据库实现和功能模块设计,展示系统结构清晰、模块设计合理和用户界面设计友好的特点。  [关键词]Java JDBC 数据库  中图分类号:TP39 文献标识码:A 文章编号:1671-7597(2008)0520031-01    一、引言    随着日常事务管理信息的电子化和计算机
期刊
[摘要]本试验设计的是基于C语言的通讯录,具有一般通讯录的添加,查找,删除,修改功能,还能保存文件和读取文件。  [关键词]C语言 通讯录  中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)0520051-01    运用C语言,对一个具有纪录录入和纪录显示及数据处理等功能的通讯录进行程序分析,编译,调试,使其实现添加、查找、删除、修改功能的通讯录,并使其便于操作和使用
期刊
[摘要]GIS(Geographic Information System)地理信息系统。顾名思义,地理信息系统是处理地理信息的系统。地理信息是指直接或间接与地球上的空间位置有关的信息,又常称为空间信息。一般来说,GIS可定义为:用于采集、存储、管理、处理、检索、分析和表达地理空间数据的计算机系统,是分析和处理海量地理数据的通用技术。  [关键词]计算机网络技术 GIS  中图分类号:TP3 文献
期刊
[摘要]论述实现盘形凸轮的通用程序设计思想及方法;在VB中结合应用AutoCAD软件,使程序设计有利于解决工程技术问题。  [关键词]盘形凸轮 通用设计 参数化设计 纺织机械  中图分类号:TH12 文献标识码:A 文章编号:1671-7597(2008)0520035-02    一、引言    凸轮机构结构简单、紧凑、设计方便,只需设计适当的凸轮轮廓便可使从动件得到任意的预期运动,因而得到广泛
期刊
[摘要]由不同生成多项式生成的RS码字构成不同的码字集合。以RS码字的最小码距为基础,定义基于不同生成多项是得到的RS码码字集合之间的最小码距概念,给出码集间最小码距的分析方法。并且通过一个例子,说明在译码时如何利用码集间最小码距区分不同码集的码字,以达到RS码的编码多址。  [关键词]RS码 码集 最小码距 分析方法  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)
期刊
[摘要]CNC雕刻技术是传统雕刻技术和现代数控技术结合的产物,它秉承了传统雕刻精细轻巧、灵活自如的操作特点,同时利用了传统数控加工中的自动化技术,并将二者有机的结合在一起,成为一种先进的雕刻技术。  [关键词]雕刻 数控技术 计算机技术  中图分类号:TG5 文献标识码:A 文章编号:1671-7597(2008)0520083-01    在近十几年中,由于计算机技术、信息技术、自动化技术在许多
期刊
[摘要]校园网多网接入受到校园网的硬件设置和网络环境的限制,在利用现有的条件下,通过有效的技术整合,可以完成实现校园网多网接入的应用问题。  [关键词]windows 网关 应用 校园网  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0520048-02    在比较复杂的网络环境中,用户需要通过不同的网关访问不同的网络服务器,比如在学校的电脑。在使用教育城域网办公
期刊
[摘要]主要阐述广州市自来水公司改变传统的抄表模式,采用RFID抄表机代替手工帐册进行抄表并推广应用,并简要阐述RFID抄表机的组成、工作原理、功能及使用意义。  [关键词]抄表 RFID抄表机 抄表机应用  中图分类号:TM93 文献标识码:A 文章编号:1671-7597(2008)0520070-02    在信息化浪潮来临之际,作为全国信息化试点城市,广州一直走在全国前列,政府对信息化工作
期刊
[摘要]当前我国移动通信技术不断发展,在各运营商基站建设已趋于饱和的状况下,如何提高用户的感知度和满意度,如何做好无线网络优化工作对于各家运营商在激烈的电信市场竞争中就尤显重要。主要针对SCDMA系统无线侧的网络优化,结合笔者近年的实际工作经验,介绍了网络优化的目的、流程,并从覆盖、话务分析、参数配置、干扰、切换等几方面对如何做好无线网络优化进行分析和研究,从而实现优化后网络的稳定运行效能。  [
期刊