基于J2EE的网上购物配送管理系统设计_第1页
基于J2EE的网上购物配送管理系统设计_第2页
基于J2EE的网上购物配送管理系统设计_第3页
基于J2EE的网上购物配送管理系统设计_第4页
基于J2EE的网上购物配送管理系统设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

-.z收稿日期:2003-09-01。纪寿文,博士,主研领域:生产物流规划与仿真,物流配送,AGVS等。基于J2EE的网上购物配送管理系统设计纪寿文林晓宇(清华大学**研究生院现代物流研究中心**518057)李克强缪立新(清华大学汽车系100084)摘要本文采用J2EE技术设计了物流企业电子商务的在线购物和配送管理系统。文中详细介绍了系统的逻辑及功能构造、在线购物模块和登录注册模块的流程及其J2EE设计方法、采用MVC模式设计控制模块的方法,并给出了核心流程代码。文中也简单介绍了配送管理模块采用的CW算法。关键词J2EE在线购物物流配送CW算法THEDESIGNFORWEBSHOPINGANDDISTRIBUTINGMANAGEMENTBASEDONJ2EEJiShouwenLin*iaoyu(ModernLogisticsResearchCenterofShenzhenGraduateSchool,TsinghuaUniversity,Shenzhen518057)LiKeqiangMiaoLi*in(AutomobileDepartment,TsinghuaUniversity,Beijing100084)AbstractWebshoppinganddirtributingsystemforlogisticscorporationelectronicmerceisdesignedbyusingJ2EEtechnologyinthepaper.Thelogisticandfunctionstructure,flowchartanddesignmethodsbasedonJ2EEofwebshopping,entryandregistermodulesareintroducedparticular-ly.ThedesigningmethodforcontrolmodulebyusingMVCmodeisdescribed,andthecoreflowcodeisgiven.TheCWalgorithmusedindistributingmanagementmoduleisalsointroduced.KeywordsJ2EEWebshoppingLogisticsdistributionCWalgorithm1引言电子商务的出现,极大地方便了最终消费者,使消费者不必再跑到拥挤的商业街,一家一家地挑选自己所需的商品,而只要坐在家里,在因特网上搜索、查看、挑选,就可以完成他们的购物过程,这些就是所谓的在线购物[1]。在线购物的成功主要取决于购物系统的功能完善和物流配送系统的可靠运行。购物系统如果功能完善、验证可靠,使用方便,则便于用户的浏览和购物。而用户在提交购物订单和支付货款后,物流配送则成为实现在线购物最终成功的关键,物流配送的核心问题则是配送车辆的调度。本文面向企业的电子商务,将对在线购物系统和物流配送系统统筹考虑,实现信息的共享和车辆的优化调度,为企业提供了一个易于操作的低费用物流管理系统、基于先进的优化网络技术的车辆调度以及配送系统。物配平台使得用户可以随时掌握实时的物流信息并根据客户的要求远程调度产生最正确的配送方案。该系统的设计中完全采用了面向对象的技术,在实际开发中采用大量的JAVA技术,例如Servlet、JSP、JavaBean、JDBC、E等,是一套完全基于J2EE的最新技术体系,具有良好的可平台无关性、可扩展性等[2]。使用本在线购物系统,企业就可以拥有自己的网络商城,让企业在技术方面花费最少,从而全力以赴进展货源开发和业务经营,迅速地展开销售工作。在线商店具备普通商店的大多数特点,同时又比普通商店具有投资小,运营时间长,无人职守等特点。2系统构造系统包含在线购物模块和物流配送模块,其中在线购物系统的核心是购物车模块,物流配送系统的包含配送方式选择、配送路线选择、配送管理等,核心是CW调度算法。两个模块通过订单信息有机的集成为一个整体,如图1所示。图1集成系统构造2·1系统逻辑构造从逻辑上讲,本系统分为四个层次。分别为用户层、表现层、业务处理层、数据资源层。详细分析了物流配送企业的需求,设计系统的逻辑层次构造如图2所示。2·2系统功能构造适应现代电子商务快捷的需求,系统中传递的订单是电子第21卷第3期计算机应用与软件Vol·21,No·32004年3月puterApplicationsandSoftwareMar·,2004图2系统逻辑构造图化的。因此,根据使用对象的不同把集成系统划分为调度员、客户、管理员三个大模块,如图3所示。给客户使用的就是所谓的在线购物系统,而在效劳器端使用系统的是调度员和管理员。调度员主要进展车辆调度,也是一个相对的“用户〞。管理员主要进展客户管理、权限管理、地图信息管理等。图3集成系统功能模块图3在线购物子系统的设计与实现3·1在线购物子系统的功能与流程在线购物是一堆接口定义清晰的独立模块组成。控制模块:它来分发请求到各个业务处理逻辑,屏幕跳转控制,对应的组件处理。登录和注册:登录和注册模块要求用户在*些页面时必须登录。购物车模块:购物车跟踪用户购物过程。类别模块:根据用户查询需求提供一个货物类别视图。客户模块:表示客户信息:地址,联系方式等。各模块之间的信息流程如图4所示。图4在线购物子模块与信息流程图3·2在线购物系统的数据库采用SQL设计在线购物系统的数据库表,主要包括客户信息表、货物信息表、订单信息表、订单细目表。是允许数据库访问的WEB应用程序开发的非常重要的一局部,它将直接影响系统的长期有效性和产品化程序。客户信息表中存储了客户的所有信息。其中,customerID是数据库系统自动生成的。addToMap和nodeID两字段是与另一子系统GIS信息表相关联的,用来表示电子地图信息。货物信息表描述了每种货物所具有的详细信息。除了货物自身的信息,还有货物分类的有关信息。我们对货物进展二次分类,分别用baseClass,subClass来描述货物所属的分类,便于查询和管理。3·3采用MVC模式设计与实现控制模块MVC模式是通过将客户的请求导入单一的对象—控制器。这个控制器随之处理所有的请求,决定下一个要显示的视图,并且实现所有为保护系统而需要的平安请求。同时,控制器并不处理商业逻辑,商业逻辑由专门的模型(MODEL)提供。如图5所示。图5MVC模式经过这样的处理,JSP页面主要起到表达的作用,而由Servlet控制页面间的跳转,系统商业逻辑和数据由Model来提供,可以是E或JavaBean。在线购物系统中的ControlServlet就是一个控制器。接收客户端响应,请求业务逻辑,最后指示跳转页面,如图6所示。图6在线购物系统MVC模式图ControlServlet具体代码如下,限于篇幅,只列出与控制功能相关的代码,并略去局部调用Model的代码。在ControlServlet中由if条件语句来判断接收页面的请求,执行相应逻辑,做出处理后,最后由gotoPage()方法跳转到相应的页面。pubilcclassControlServlete*tendsHttpServlet{staticfinalprivateStringCONTENTTYPE=″te*t/html;charset=gb2312″;SCBeanscb=newSCBean();publicvoidinit()throwsServletE*ception{}publicvoiddoGet(HttpServletRequestresuest,HttpServletResponseresponse)throwsServletE*ception;IOE*ception{doPost(request,response);}if(getPara.equals(″登录″)){StringlonName=ChineseCharSet.toByteString(request.getParameter(″logName″));Stringpassword=ChineseCharSet.toByteString(request.getParameter(″Password″));DAOFactorySQLServerFactory=DAOFactory.getDAOFactory(DAOFactory.SQLSERVER);CustomerDAOcustDAO=SQLServerFactory.getCustomerDAO();Customercust=custDAO.findCustomer(longName);if(cust!=null&&cust.getPassword().equals(password)){gotoPage(″/goodsList.jsp″,request,response);第3期纪寿文等:基于J2EE的网上购物配送管理系统设计29}else{gotoPage(″/loginfailed.html″,request,response);}}elseif(getPara.equals(″注册″)){gotoPage(″/register.jsp″,request,response);}elseif(getPara.equals(″放入购物车″)){gotoPage(″/shoppingCart.jsp″,request,response);}elseif(getPara.equals(″删除″)){gotoPage(″/shoppingCart.jsp″,request,response);}elseif(getPara.equals(″查看购物车″)){gotoPage(″/shoppingCart.jsp″,request,response);}elseif(getPara.equals(″清空购物车″)){gotoPage(″/shoppingCart.jsp″,request,response);}elseif(getPara.equals(″提交订单″)){gotoPage(″/shoppingCart.jsp″,request,response);}}3·4购物车模块购物车模块跟踪用户一次的购置过程。购物车模块需求:必须能够跟踪用户购置的货品内容(item)。购物车中的每个item有唯一标示ID,此外,还有item归属的货物的ID,属于的种类、名字和单品报价。每个item必须和一个非负的数量有对应关系,客户可以增删改和改变item数量,或者清空购物车。购物车的设计:购物车是和一个session关联的,因为,归属与*个用户,跨越多个请求。设计的关键在于在哪里存放购物车的状态信息,我们使用了有状态的sessionE。此外,使用E层存放这些状态信息,客户端可以不用局限于WEB客户端。购物车的构造如图7所示。图7购物车构造图7是购物车模块的构造图,客户端使用ShoppingCartLo-calHome来创立ShoppingCartLocal。ShoppingCartE这个bean中包含了所有要求的操作。购物车ShoppingCartE包含了一个货品内容的CartItem对象的Collection,这个CarrItem类是个普通的可序列化远程传输的类。购物车模块的实现:购物车被实现成一个有状态的sessionE,里面包含一个货品内容(item)的Collection。E同时提供出各种方法,来增删改里面的内容,甚至清空。E层的组件可以直接购物车E。WEB层维护一个E层的控制器,这个控制器有个方法getShoppingClientFacade()返回ShoppingClientFacadeLocal接口,这个接口的getShoppingCart()方法返回当前用户的购物车sessionE引用。4车辆调度核心算法———CW算法与实现CW算法由Clarke和Wright提出,该算法简单易用[3]。本文将配送货物的体积约束引入CW算法在中,以改良的CW节约启发式算法来进展车辆的优化调度。4·1算法原理与求解步骤假设以Cij表示车辆从点i行驶到点j的费用,可以得到点i和点j连接在一条线路上的费用节约值。s(i,j)=Ci0+C0j-Cij假设各项任务要求在一定的时间*围内完成,按费用节约值s(i,j)连接点i和点j时,可能会使j后面的任务的执行不满足时间要求。当连接点i和点j所在线路时,假设车辆到达j点的时间比原线路上j点任务的开场时间提前,则车辆在j后面的任务处有可能需要等待;假设连接后到达j点的时间比原线路上j点任务的开场时间推迟,则j后面的任务在执行时可能会发生延迟。以EFj表示连接点i和点j所在的线路后,车辆到达j点的时间比原线路上车辆到达j点时间的推迟量(或提前量),则EFj可如下得到:EFj=si+Ti+tij-sj显然,EFj<0时,车辆到达j点任务的时间提前;EFj=0时,到达时间不变;EFj>0时,到达时间推迟。其步骤如下:①首先计算各个点i和点j之间线路的费用节约值s(i,j),形成集合M,并按照从大到小对s(i,j)进展排序。其中:s(i,j)=ci0+c0j-cij②假设M为空,则终止叠代,否则对M中的第一项s(i,j)考察是否满足以下条件之一,如满足则转下步,否则转⑥。(a)点i和j均不在已构成的线路上;(b)点i和j在已构成的线路上,但不与车场相连;(c)点i和j位于已构成的不同线路上,均不与车场相连,且一个是起点,一个是终点。③考察点i和j连接后的线路上总货运量Q,假设Q≤q,则转下步,否则转⑥。④计算连接点i和j所在的线路后,车辆到达j点的时间比原路线上车辆到达j点的时间的变化量EFj:EFj=si+Ti+tij-sj。(a)假设EFj=0,转⑤;(b)假设EFj<0,则计算Δj-,当|EFj|≤Δj-,转⑤,否则转⑥;(c)假设EFj>0,则计算Δj+,当|EFj|≤Δj+,转⑤,否则转⑥。式中,Δj-为线路上j点后面的各任务处均不需要等待的到达j点时间的最大允许提前量,其中:Δj-=minr≥j{Sr-ETr}。Δj+为线路上j点后面的各任务不违反时间约束的到达j点时间的最大允许推迟量,其中:Δj+=minr≥j{LTr-Sr}。⑤连接点i和点j,计算车辆到达各任务时的新时间。⑥令M=M-s(i,j),转②。4·2CW算法类的设计因为我们采用面向对象的程序设计语言java,在编码之前,建立了面向对象的模型。ResultList、Task、ScheduleValueList、Item这四个类都是辅助的类。ResultList用来存储计算结果;Task类用来保存一些调度所需的数据;ScheduleValueList、Item都是计算过程中的算法需要的中间数据。30计算机应用与软件2004年5应用程序的部署基于J2EE的web应用程序是一组Servlet、JSP页面、标记库、HTML文档、图像、样式表以及其它WEB内容的集合。构成应用程序的组件必须被打包在一起进展传输和部署。J2EE应用程序中打包后的组件被存储在一个特定类型的JAR文件中,这个JAR文件被称为企业应用程序归档或EAR(EnterpriseArchive)。同时J2EE应用程序还需要一些关于各个不同模块如何关联以及部署环境的信息,这些信息被记录在一些被称为部署描述符(DD)的*ML文件里。图8显示了一个EAR文件的结构。图8EAR的构造部署描述文件web.*ml是一个*ML文件,包括如下内容:ServletConte*t初始化参数:Servlet/JSP定义;MIME类型映射;错误处理页面;Session配置;Servlet/JSP映射;首页文件列表;平安约束。web应用部署描述文件web.*ml应该放入主web应用目录的WEB-INF子目录中,可以用来初始化Servlet、指定MIME(Mul-tipurposeInternetMailE*tensions)类型、指定J2EE资源等等。参考文献[1]梅绍祖、李伊松、鞠颂东,电子商务与物流,人民邮电,2001·8·[2]MarciFrohockGarcia,JamieReding,EdWardWhalen,SteveAdrienDeluca著,*岩、黄波、*宁译,SQLServer2000系统管理员宝典,:清华大学,2001·7·[3]视崇隽、*民、吴澄,“供给链中车辆路径问题的研究进展及前景〞,?计算机集成系统-CIMS?,2001,Vol.7(11):1~6·(上接第4页)4术语权重重构获得查询q的TAGq查询集后,重新调整术语权重,构造新的向量Q′。其根本思想是:给定一个查询方案,根据节点的路径度,强化(strengthen)叶子节点权重,弱化(weaken)图TAGq中中间节点的权重,从而优化用户查询的目的。TWA(TermWeightAdjustmentAlgorithm,术语权重调整)算法:输入:(1)术语关联图TAGq查询方案GQT;(2)查询术语/权重集合Q={(q1,w1),…,(qn,wn)}。输出:查询术语/权重集合Q′。TWA算法:1)构造空的术语/权重集合Q′=Φ。2)计算每个节点的路径度:a)令GQT中所有节点的路径度为0;b)forGQT中每条起始路径P=(t1,…,tk)do{fori=1,2,...,kdopathdegree(ti)=pathdegree(ti)+1;}3)对每个以t为叶子节点的起始路径P=(t1,…,tk,tk=t):a)修改t权重:Wt=Wt+Wti*l/pathdegree(ti)(1≤i<k);b)修改Q′:Q′=Q′U{(t,wt)};c)修改Wti权重:Wti=Wti-Wti*l/pathdegree(ti),修改Q′(由于同一个术语节点可能出现在多个起始路径中,可能会屡次修改该术语权重。):Q′=Q′U{(ti,witi)};4)输出Q′,算法完毕。例子3设例子2对应的查询术语/初始权重见表1。通过权重调整算法(令l=0.1),得到表1中不同查询方案的术语权重。不同的查询方案使得术语A1,m1和A2,1的最终权重不同。表1查询术语/权重优化前后对照表A1A2A3AnA1,m1A2,1A3,k3An,mnA1,1,1,k1初始权重0·2000·2000·2000·2000·4000·4000·4000·4000·600GQp1路径度111120113权重0·1970·1970·1800·1900·3870·0000·4100·4100·629GQp2路径度111111113权重0·1970·1970·1800·1900·3930·3930·4100·4100·6235结论本文引入术语关联网络TAN概念,检查查询术语的可达关系,建立术语关联图TAG,构成新的查询,接着利用术语权重调整算法计算新的术语权重,形成基于术语关联的查询。本文贡献之处在于利用TAN发现查询中存在的术语关联,并利用术语关联重新计算术语权重,从而突出用户查询目的。本文只研究了术语之间

温馨提示

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

评论

0/150

提交评论