收藏本站
网站导航
联系方式
网站首页 | 杂志简介 | 论文欣赏 | 在线订阅 | 征稿启事 | 投稿须知 | 资讯速递 | 写作指南
本刊信息

主管:广西国有资产监督管理委员会
主办:广西轻工业科学技术研究院
协办:广西轻工协会
      广西酿酒协会
编辑/出版:《广西轻工业》编辑部
编委会主任:罗左青
编委会副主任:程劲芝 梁智
编委:白树雄 宋  苹 蒋敬全
      谢晓航 雷光鸿 贤章胜
主编:贤章胜
地址:广西南宁经济技术开发区
      迎凯路8号
邮编:530031
编辑部:0771-4518435
        4518909转8968
投稿信箱:qgkj@vip.126.com
网址:www.qgkjlw.com
国际标准刊号:ISSN2095—3518
国内统一刊号:CN45—1385/TS
订阅:全国各地邮局
邮发代号: 48—123
定价:人民币15元
刊期:月刊

理事单位

广西粮油科学研究所
广西大学轻工与食品工程学院
广西大学生命科学与技术学院
广西农垦糖业集团金光制糖有限公司
广西农垦糖业集团昌菱制糖有限公司
广西机械工业研究院
重庆啤酒集团柳州啤酒有限责任公司
南宁吉然节能环保技术有限公司
柳州柳连机械制造有限责任公司
南京润维热工设备有限公司
广西柳州市嘉诚汽车饰件系统有限公司
广西柳江县柳兴榨辊有限责任公司
广西南宁丰烁电力设备节能有限公司
广西都安密洛陀野生葡萄酒有限公司
广西巴马神酒业有限责任公司
广西中天领御酒业有限公司
广西北海市合浦东园家酒厂
桂林理工大学管理学院
广西工业职业技术学院   
广西农业职业技术学院
广西二轻工业技工学校
广西德保县酒厂
广西全州湘山酒厂
田阳南华纸业有限公司
广西桂平乳泉液酒业有限公司

 
首页>> 论文欣赏 >> 计算机科学与信息技术>> 正 文
 

可重用网络化制造组样企业研究

2009年第12期(总第133期)
谢晓兰,赵辉煌(桂林理工大学信息科学与工程院,广西 桂林 541004)
 
  【摘 要】 本文研究基于MVC设计模式的,Struts框架+Spring框架+iBatis技术开发网络化制造的组样企业。参与网络化制造的企业根据本文所研究的可重用组样企业,可以很快速地构建各企业自己的网络化制造网站,建立企业内部协同工作的各种列表、论坛,进行即时沟通和交流,并共享工作区域。所构建的系统功能通用性强,伸缩性好,方便二次开发和扩展。同时,软件测试以及现场实测的结果证明了所开发系统的实用性。
  【关键词】 软件重用;设计模式;模板
 
1 引言
  软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。重用是提高软件生产率的最主要的方法。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。近年来流行的软件重用技术有:库函数、面向对象、模板、设计模式、构件、构架、框架。其中,模板相当于工业生产中所用的“模具”。有各种各样的模板(如文档模板,网页模板等),利用这些模板可以比较快速地建立对应的软件产品。模板把不变的内容封装在内部,对可能变化的部分提供了通用接口,由使用者来对这些接口进行设定或实现。设计模式描述了在我们周围不断重复发生的问题,该问题的解决方案的核心和解决方案实施的上下文。设计模式命名一种技术并且描述它的成本和收益,共享一系列模式的开发者拥有共同的语言来描述他们的设计。框架是一种可复用的、可适配的软件,它要有灵活的结构以易于扩展。使用合适的框架,可以节省设计人员的时间,使其有更多的精力从事业务本身的分析与研究,并且成熟的框架本身就是对系统质量的保障。
  本文将使用基于MVC设计模式的,Struts框架+Spring框架+iBatis技术开发网络化制造的组样企业。参与网络化制造的企业根据本文所研究的结果,可快速开发出适合自身企业需求的、可参与动态联盟的软件系统。
 
2 关键技术描述
  本项目涉及多方面的关键技术,例如,如何才能设计出具有统一网络协议平台,统一界面、统一的数据交换标准的组样企业;如何对组样企业进行分层,如何进行模块化分解;如何结合先进的制造技术、如何使用MVC模式进行开发,如何使用Struts框架、Spring框架、iBatis技术等等都是必须考虑的内容。Struts 框架是由Apache 软件组织提供的一项开源项目,它实现了MVC设计模式,尤其适用于开发大型可扩展的Web 应用。Struts框架在Web 应用中使用Servlet 和JSP 技术,通过避免所有的逻辑交叉,减少了各模块间的编码联系,为Java 编码人员与表示层设计人员提供了一个自然的分界线,使他们各司其职,从而提高了系统开发和维护的效率。[1]Spring 是为了简化企业级系统开发而诞生的轻量级解决方案,因为目前J2EE 重量级体系显得有些臃肿,复杂的EJB 技术给项目开发带来了许多困扰。现在有了Spring 框架,使用简单的JavaBean 就可以实现那些以前只有EJB 才能实现的功能。不只是服务器端开发能从中受益, 任何Java 系统开发都能从Spring 的简单、可测试和松耦合特征中得到好处。[2]iBatis是又一个O/R Mapping解决方案,和Hibernate相比,iBatis最大的特点是简单,最新版本2.0,和1.0相比,主要改动在XML配置文件上。[3]
 
3 组样企业
  组样企业是为网络化制造组成单位互相合作而提供的一种标准规范。它包含网络联盟在全球制造环境下的合作内容,并对合作的方式进行规定。
  组样企业是企业网络化制造参与单位、用户合作的一种模板方式。具体包括市场需求、计划、设计、采购、生产、销售及服务等过程,生成标准的网络站点――组样企业站点。网络化制造中的组成个体以组样企业网站为模板,建立自己的网站或系统,并进行系统程序的二次开发。组样企业为网络化制造组成单位提供标准样板,并为个体合作提供可能。图1为组样企业的研究内容,以及组样企业的在网络的不同的位置上实现的不同功能模块。[4]
 
4 组样企业子模块——信息管理系统模块方案
  本文将以网络化制造中动态联盟的企业内部网Intranet中的比较重要的信息管理模块说明如何使用Struts、Spring框架,以及iBatis技术开发的过程。
  信息管理模块所涉及到的信息资料数量大、类型多,还可能带有大量的统计输出。传统的操作方法存在许多弊端,如重复劳动严重、效率低下、不能及时地提供所需的各种信息等。同时可能参与联盟的企业(虚拟企业)规模的越来越大和参与员工人数的越来越多,导致传统的信息管理手段已无法满足现代化制造企业管理的要求。组样企业中的信息管理系统是在该背景下,为了使虚拟企业各项管理工作快速、方便、准确、安全地得以实施而开发的。该模块将具备以下的性能:1、良好的交互性;2、良好的可扩展性;3、良好的可维护性。
     
图1  网络化制造组样企业功能图
  信息管理模块包含几个方面:企业知识和文档管理、各种文件交互、工作、会议、任务、合同及各种审批事务的管理,集成生产经营信息为企业管理者提供直观并实时的决策信息,在表示层提供对知识库和文档库进行全文检索、浏览、版本管理及协同工作,根据在联盟中不同的角色可进入不同的页面访问,可进行社会环境分析、任务状态报告,主要是对数据的显示和提交,用struts框架实现。业务层主要负责处理应用程序的业务逻辑和业务校验、管理事物、允许与其他层相互作用的接口、管理业务层级别的对象的依赖,用spring框架实现。在开发过程中,由于需要频繁地与数据库交互,并且使得交互更加有效而迅捷,企业应用开发者在应用和数据库之间创建了一个“持久层”,在系统中应用持久层。这个数据库负责存储从应用到数据库的数据,也负责数据的检索、更新、删除,数据控制,数据操作语句的编写,实现数据表的映射,采用的是用Ibatis框架。见图2。[5,6,7]

         图2 Struts+Spring+iBatis架构
  在浏览器端,通过JSP 页面实现交互界面,负责传送请求(Request) 和接受响应(Response) 。整个组样企业在表示层,可实现根据联盟中不同的角色可进入不同的页面访问,并拥有不同的权限与功能,可进行社会环境分析、任务状态报告、操作规则发布、查询,合同发布、查询,实时信息发布、查询,指令发布、查询。这都是与信息管理模块有关的部分,具体功能图3所示。
             图3  信息管理模块功能图
  表示层的Struts 通过ActionServlet 接收客户端的请求,并将请求交与Request2Processor 来处理。Request2Processor 根据请求的URL 从ActionMapping 中得到与之相对应的Action ,并根据请求的参数实例化响应的ActionForm ,再经过form 验证。在业务层中, 管理服务组件的Spring Ioc 容器负责向Action 提供业务模型(Model) 组件和该组件的协作对象数据处理(DAO) 组件完成业务逻辑,并提供事务处理、缓冲池等容器组件提升系统性能和保证数据完整性。而持久层依赖Ibatis的对象化映射和数据库交互以处理DAO组件请求的数据,并返回处理结果。
 
5 系统的实现
  整个组样企业系统及其信息管理系统模块的开发环境:Myeclipse 4.1.1;运行环境: 数据库服务器是Oracle9i Database Release2(9.2.0.1),WEB服务器weblogic8i。
  信息管理系统模块总共包括上述7个主要子模块,二十多个功能, 系统针对每个模式内实现的功能集中放入一个Action里来处理,做到了软件最大复用,缩短了开发周期,节约了开发费用。系统采用ActionForm来同时封装输入输出信息。输入信息对应于相应的网页Form表单,输出对应于JSP页面显示。Action子类负责业务逻辑处理,主要包括:CorpdocActon.java负责搜索信息; SocienvAction负责社会环境分析;TaskstaAction负责任务状态报告;OperstanAction负责操作规则、标准流程发布查询;BargainAction负责合同发布、查询;InfoAction负责实时信息发布;DictateAction负责指令发布,查询,如图4所示。
  (1)持久层
  文件BargainVO.xml,保存了对保存合同信息的表的增、删、改、查操作。Ibatis中的配置文件sql-map-config.xml实现了对象化映射。
  <typeAlias alias="bargain" type="com.cares.vo.BargainVO"/>
  <sqlMap resource="com/cares/vo/BargainVO.xml"/>
                    图4  信息管理系统开发结构图
  下面以BargainAction类为例来说明一下Action的实现过程。
  (2)业务层
  定义保存合同信息的类BargainVO.java,定义类BargaindaoImpl.java它实现了接口Bargaindao.java,方法saveBargaininfo(BargainVO bargain)用来保存合同信息到数据库中;
  类Bargainserviceimpl.java它实现了接口Bargainservice.java,类中定义了方法 saveBargaininfo(BargainVO bargain);调用接口Bargaindao.java中的方法saveBargaininfo()
Integer saveBargaininfo(BargainVO bargain)throws Exception {return bargaindao. saveBargaininfo (peizai,userid);}
  (3)表示层
  JSP页面bargaininfo.jsp,用来写入合同内容,及相关信息,BargainAction类接收传入的一个变量act;String ls_act = request.getParameter("act");如果act=”Q”,则表示合同的查询,如果act=”S”,表示一个新的合同的发布。对于发布一个合同,首先,ActionForm子类BargainForm类用来处理合同的发布内容的处理,里面包括了一系列的Set,Get方法.
  BargainForm bargainform = (BargainForm)form;同时实例化一个保存合同信息的类
  BargainVO bargain= new BargainVO();定义一个类的实例
  BargainActionservice = (BargainAction)SpringContextUtil.getInstance().getService("Bargainservice");
  调用保存合同信息的方法service.saveBargaininfo(peizai),即操作完成。
 
6 系统测试与结论
  该组样企业系统的测试分为功能测试(即模块测试)与性能(整体测试)两种。对该组样企业的子模块――信息管理系统采用手工的测试用例进行功能测试。由于版面有限,现将组样企业子模块——信息管理系统登录成功后的测试界面附在文中,如发布新的合同信息,结果如图5所示,合同信息查询,结果如图6所示。
  整个组样企业系统使用LoadRunner7.8进行性能以及负载测试。LoadRunner 是一种适用于各种体系架构的自动负载测试工具。
  LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助程序员更快的查找和发现问题。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
  首先使用LoadRunner7.8模拟IP地址,修改脚本来进行测试。测试方案:分3轮进行测试,其中第1、2轮为10个用户、20个用户,剩下的用户并不同时运行系统,第3轮用户数达到上限30个。在上限30个用户时持续2到3分钟进行负载测试,再减压直至0个用户。表1为第3轮LoadRunner7.8模拟测试的结果。
   
          图5  发布新的合同界面
          图6  合同查询结果界面
  为了保证测试结果,最后在某制造业信息化中心使用了10台计算机进行实测。同时在异地有5台计算机进行操作。共15台计算机共同模拟动态联盟中的运作。表2为现场测试的环境。
  经过软件模拟测试,以及实测数据显示,该系统有较好的响应时间;在负载加重的情况下,系统响应时间虽然变慢了,但是能正常运行,没有崩溃。而且经受了负载测试,证明系统能正确运行。
 
7 小结
  可重用组样企业有如下优点:(1)免费、开源、有丰富的文档和稳定的开发背景。(2)分层的架构。由于各层之间是相对独立的, 这便于做大的项目时的团队合作,适合每个团队做一模块,使得工作分的更细,也避免了因为某一模块的失误造成整个项目的失败,同时也增加了其重用性。(3)将项目逻辑上进行划分,然后在不同的逻辑层运用框架,在实际应用中会把Web应用划分的更细,会把更多的框架应用到各层中。
  达到简化项目的开发和代码的重用。以设计模式,框架和商业构件形式出现的软部件可以通过重用显著的提升开发品质和生产力,重用反过来也可以显著的降低成本和缩短软件开发周期。未来应用程序的开发依存于一个开放的,便利构件选择和装配的综合体系结构。
  表1  第3轮LoadRunner7.8模拟测试的结果
最大运行用户数
30个
总吞吐量
24741749 bytes
平均吞吐量
77804 bytes/sec
平均每秒点击次数
9次
执行事务总数
500个
 
 
 
 
 
 
 
                     表2  现场测试环境
硬件
15台PC机,Web服务器
软件
Loadrunner7.8,Win2000,WinXP,IE5.0和IE6.0
参与人员
技术指导2人、现场测试人员5人
测试要求
15个用户拥有独立IP地址,可使用不同的用户及密码登录,模拟动态联盟中的各项活动。
测试内容
看系统是否运行正常,是否产生严重的延迟,功能是否正常实现,寻找bug。
 
 
参考文献
[1]Struts 官方网站. http://struts.apache.org/[EB/OL],2006-12-31.
[2]Spring 官方网站.http://www.springframework.org/[EB/OL],2007-01-12.
[3]iBatis 官方网站.http://ibatis.apache.org/[EB/OL],2007-02-01.
[4]杨文通,王蕾,刘志峰等.数字化网络化制造技术[M].北京:电子工业出版社,2004.17~19.
[5]窦永香,黄瑞华,赵捧未.虚拟企业信息基础结构的构建.计算机工程与应用[J].2003,39(35).
[6]赵捧未,徐国华等.动态联盟企业信息系统的结构及其重组方法研究[J].工程设计学报.2002,9(4).
[7]艾富强,李华.基于多Agent的虚拟企业协调机制的研究[J].中国制造业信息化.2006,35(11).
 
【作者简介】谢晓兰(1974-),女,广西桂林人,副教授,研究方向:计算机应用、机械制造与自动化。
【基金项目】广西自然科学基金支持(编号:桂科基0575101)
   
关于我们 | 版权声明 | 广告服务 | 网站地图 | 联系方式
Copyright© 2005 QGKJLW.COM All Rights Reserved. 版权所有.《轻工科技》编辑部
工作QQ:373180636 投稿信箱:qgkj@vip.126.com 咨询电话:0771-4518435 4518909转8968
通讯地址: 广西南宁经济技术开发区迎凯路8号《轻工科技》编辑部 邮编:530031