1、精品文档就在这里-各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-基于J2EE的网上购物配送管理系统设计.txt曾经拥有的不要忘记;不能得到的更要珍惜;属于自己的不要放弃;已经失去的留作回忆。收稿日期:2003-09-01。纪寿文,博士,主研领域:生产物流规划与仿真,物流配送,AGVS等。基于J2EE的网上购物配送管理系统设计纪寿文林晓宇(清华大学深圳研究生院现代物流研究中心深圳518057)李克强缪立新(清华大学汽车系北京100084)摘要本文采用J2EE技术设计了物流企业电子商务的在线购物和配送管理系统。文中详细介绍了系统的逻辑及功能结构、在线购物模块和登录注册模块
2、的流程及其J2EE设计方法、采用MVC模式设计控制模块的方法,并给出了核心流程代码。文中也简单介绍了配送管理模块采用的CW算法。关键词J2EE在线购物物流配送CW算法THE DESIGN FOR WEB SHOPING AND DISTRIBUTING MANAGEMENT BASED ON J2EEJi ShouwenLin Xiaoyu(Modern Logistics Research Center ofShenzhen Graduate School, Tsinghua University, Shenzhen518057)Li KeqiangMiao Lixin(Automobile
3、 Department, Tsinghua University,Beijing100084)AbstractWeb shopping and dirtributing system for logistics corporation electronic commerce is designed by using J2EE technology in the paper.The logistic and function structure,flow chart and designmethods based on J2EE ofweb shopping,entry and register
4、modules are introduced particular-ly.The designing method for control module by usingMVC mode is described,and the core flow code is given.The CW algorithm used in distributingmanagement module is also introduced.KeywordsJ2EEWeb shoppingLogistics distributionCW algorithm1引言电子商务的出现,极大地方便了最终消费者,使消费者不必
5、再跑到拥挤的商业街,一家一家地挑选自己所需的商品,而只要坐在家里,在因特网上搜索、查看、挑选,就可以完成他们的购物过程,这些就是所谓的在线购物1。在线购物的成功主要取决于购物系统的功能完善和物流配送系统的可靠运行。购物系统如果功能完善、验证可靠,使用方便,则便于用户的浏览和购物。而用户在提交购物订单和支付货款后,物流配送则成为实现在线购物最终成功的关键,物流配送的核心问题则是配送车辆的调度。本文面向企业的电子商务,将对在线购物系统和物流配送系统统筹考虑,实现信息的共享和车辆的优化调度,为企业提供了一个易于操作的低费用物流管理系统、基于先进的优化网络技术的车辆调度以及配送系统。物配平台使得用户可
6、以随时掌握实时的物流信息并根据客户的要求远程调度产生最佳的配送方案。该系统的设计中完全采用了面向对象的技术,在实际开发中采用大量的JAVA技术,例如Servlet、JSP、JavaBean、JDBC、EJB等,是一套完全基于J2EE的最新技术体系,具有良好的可平台无关性、可扩展性等2。使用本在线购物系统,企业就可以拥有自己的网络商城,让企业在技术方面花费最少,从而全力以赴进行货源开发和业务经营,迅速地展开销售工作。在线商店具备普通商店的大多数特点,同时又比普通商店具有投资小,运营时间长,无人职守等特点。2系统结构系统包含在线购物模块和物流配送模块,其中在线购物系统的核心是购物车模块,物流配送系
7、统的包含配送方式选择、配送路线选择、配送管理等,核心是CW调度算法。两个模块通过订单信息有机的集成为一个整体,如图1所示。图1集成系统结构21系统逻辑结构从逻辑上讲,本系统分为四个层次。分别为用户层、表现层、业务处理层、数据资源层。详细分析了物流配送企业的需求,设计系统的逻辑层次结构如图2所示。22系统功能结构适应现代电子商务快捷的需求,系统中传递的订单是电子第21卷第3期计算机应用与软件Vol21,No32004年3月Computer Applications and Software Mar,2004图2系统逻辑结构图化的。因此,根据使用对象的不同把集成系统划分为调度员、客户、管理员三个大
8、模块,如图3所示。给客户使用的就是所谓的在线购物系统,而在服务器端使用系统的是调度员和管理员。调度员主要进行车辆调度,也是一个相对的“用户”。管理员主要进行客户管理、权限管理、地图信息管理等。图3集成系统功能模块图3在线购物子系统的设计与实现31在线购物子系统的功能与流程在线购物是一堆接口定义清晰的独立模块组成。 控制模块:它来分发请求到各个业务处理逻辑,屏幕跳转控制,对应的组件处理。 登录和注册:登录和注册模块要求用户在访问某些页面时必须登录。 购物车模块:购物车跟踪用户购物过程。 类别模块:根据用户查询需求提供一个货物类别视图。 客户模块:表示客户信息:地址,联系方式等。各模块之间的信息流
9、程如图4所示。图4在线购物子模块与信息流程图32在线购物系统的数据库采用SQL设计在线购物系统的数据库表,主要包括客户信息表、货物信息表、订单信息表、订单细目表。是允许数据库访问的WEB应用程序开发的非常重要的一部分,它将直接影响系统的长期有效性和产品化程序。客户信息表中存储了客户的所有信息。其中,customerID是数据库系统自动生成的。addToMap和nodeID两字段是与另一子系统GIS信息表相关联的,用来表示电子地图信息。货物信息表描述了每种货物所具有的详细信息。除了货物自身的信息,还有货物分类的有关信息。我们对货物进行二次分类,分别用baseClass,subClass来描述货物
10、所属的分类,便于查询和管理。33采用MVC模式设计与实现控制模块MVC模式是通过将客户的请求导入单一的对象控制器。这个控制器随之处理所有的请求,决定下一个要显示的视图,并且实现所有为保护系统而需要的安全请求。同时,控制器并不处理商业逻辑,商业逻辑由专门的模型(MODEL)提供。如图5所示。图5MVC模式经过这样的处理,JSP页面主要起到表达的作用,而由Servlet控制页面间的跳转,系统商业逻辑和数据由Model来提供,可以是EJB或JavaBean。在线购物系统中的ControlServlet就是一个控制器。接收客户端响应,请求业务逻辑,最后指示跳转页面,如图6所示。图6在线购物系统MVC模
11、式图ControlServlet具体代码如下,限于篇幅,只列出与控制功能相关的代码,并略去部分调用Model的代码。在ControlServlet中由if条件语句来判断接收页面的请求,执行相应逻辑,做出处理后,最后由gotoPage()方法跳转到相应的页面。pubilc class ControlServlet extends HttpServletstatic final private String CONTENT TYPE=text/html;charset=gb2312;SCBean scb=new SCBean();public void init() throws ServletE
12、xceptionpublic void doGet(HttpServletRequest resuest,HttpServletResponse response) throws ServletException;IOException doPost(request,response);if(getPara.equals(登录)String lonName=ChineseCharSet.toByteString(request.getParameter(logName);String password=ChineseCharSet.toByteString(request.getParamet
13、er(Password);DAOFactory SQLServerFactory=DAOFactory.getDAOFactory(DAOFactory.SQLSERVER);CustomerDAO custDAO=SQLServerFactory.getCustomerDAO();Customer cust=custDAO.findCustomer(longName);if(cust !=null&cust.getPassword().equals(password)gotoPage(/goodsList.jsp,request,response);第3期纪寿文等:基于J2EE的网上购物配送
14、管理系统设计29elsegotoPage(/loginfailed.html,request,response);else if (getPara.equals(注册)gotoPage(/register.jsp,request,response);else if (getPara.equals(放入购物车)gotoPage(/shoppingCart.jsp,request,response);else if (getPara.equals(删除)gotoPage(/shoppingCart.jsp,request,response);else if (getPara.equals(查看购物
15、车)gotoPage(/shoppingCart.jsp,request,response);else if (getPara.equals(清空购物车)gotoPage(/shoppingCart.jsp,request,response);else if (getPara.equals(提交订单)gotoPage(/shoppingCart.jsp,request,response);34购物车模块购物车模块跟踪用户一次的购买过程。购物车模块需求:必须能够跟踪用户购买的货品内容(item)。购物车中的每个item有唯一标示ID,此外,还有item归属的货物的ID,属于的种类、名字和单品报价
16、。每个item必须和一个非负的数量有对应关系,客户可以增删改和改变item数量,或者清空购物车。购物车的设计:购物车是和一个session关联的,因为,归属与某个用户,跨越多个请求。设计的关键在于在哪里存放购物车的状态信息,我们使用了有状态的session EJB。此外,使用EJB层存放这些状态信息,客户端可以不用局限于WEB客户端。购物车的结构如图7所示。图7购物车结构图7是购物车模块的结构图,客户端使用ShoppingCartLo-calHome来创建ShoppingCartLocal。ShoppingCartEJB这个bean中包含了所有要求的操作。购物车ShoppingCartEJB包
17、含了一个货品内容的CartItem对象的Collection,这个CarrItem类是个普通的可序列化远程传输的类。购物车模块的实现:购物车被实现成一个有状态的session EJB,里面包含一个货品内容(item)的Collection。EJB同时提供出各种方法,来增删改里面的内容,甚至清空。EJB层的组件可以直接访问购物车EJB。WEB层维护一个EJB层的控制器,这个控制器有个方法getShoppingClientFacade()返回ShoppingClientFacadeLocal接口,这个接口的getShoppingCart()方法返回当前用户的购物车session EJB引用。4车辆
18、调度核心算法CW算法与实现CW算法由Clarke和Wright提出,该算法简单易用3。本文将配送货物的体积约束引入CW算法在中,以改进的CW节约启发式算法来进行车辆的优化调度。41算法原理与求解步骤假设以Cij表示车辆从点i行驶到点j的费用,可以得到点i和点j连接在一条线路上的费用节约值。s(i,j)=Ci0+C0j-Cij若各项任务要求在一定的时间范围内完成,按费用节约值s(i,j)连接点i和点j时,可能会使j后面的任务的执行不满足时间要求。当连接点i和点j所在线路时,若车辆到达j点的时间比原线路上j点任务的开始时间提前,则车辆在j后面的任务处有可能需要等待;若连接后到达j点的时间比原线路上
19、j点任务的开始时间推迟,则j后面的任务在执行时可能会发生延迟。以EFj表示连接点i和点j所在的线路后,车辆到达j点的时间比原线路上车辆到达j点时间的推迟量(或提前量),则EFj可如下得到:EFj=si+Ti+tij-sj显然,EFj0时,到达时间推迟。其步骤如下:首先计算各个点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在已构成的线路上,但不与车场相连;(
20、c)点i和j位于已构成的不同线路上,均不与车场相连,且一个是起点,一个是终点。考察点i和j连接后的线路上总货运量Q,若Qq,则转下步,否则转。计算连接点i和j所在的线路后,车辆到达j点的时间比原路线上车辆到达j点的时间的变化量EFj:EFj=si+Ti+tij-sj。(a)若EFj=0,转;(b)若EFj0,则计算j+,当|EFj|j+,转,否则转。式中,j-为线路上j点后面的各任务处均不需要等待的到达j点时间的最大允许提前量,其中:j-=minrjSr-ETr。j+为线路上j点后面的各任务不违反时间约束的到达j点时间的最大允许推迟量,其中:j+=minrjLTr-Sr。连接点i和点j,计算车
21、辆到达各任务时的新时间。令M=M-s(i,j),转。42 CW算法类的设计因为我们采用面向对象的程序设计语言java,在编码之前,建立了面向对象的模型。ResultList、Task、ScheduleValueList、Item这四个类都是辅助的类。ResultList用来存储计算结果;Task类用来保存一些调度所需的数据;ScheduleValueList、Item都是计算过程中的算法需要的中间数据。30 计算机应用与软件2004年5应用程序的部署基于J2EE的web应用程序是一组Servlet、JSP页面、标记库、HTML文档、图像、样式表以及其它WEB内容的集合。构成应用程序的组件必须被
22、打包在一起进行传输和部署。J2EE应用程序中打包后的组件被存储在一个特定类型的JAR文件中,这个JAR文件被称为企业应用程序归档或EAR(EnterpriseArchive)。同时J2EE应用程序还需要一些关于各个不同模块如何关联以及部署环境的信息,这些信息被记录在一些被称为部署描述符(DD)的XML文件里。图8显示了一个EAR文件的结构。图8EAR的结构部署描述文件web.xml是一个XML文件,包括如下内容:ServletContext初始化参数:Servlet/JSP定义;MIME类型映射;错误处理页面;Session配置;Servlet/JSP映射;首页文件列表;安全约束。web应用部
23、署描述文件web.xml应该放入主web应用目录的WEB-INF子目录中,可以用来初始化Servlet、指定MIME(Mul-tipurpose Internet Mail Extensions)类型、指定J2EE资源等等。参考文献1梅绍祖、李伊松、鞠颂东,电子商务与物流,人民邮电出版社,200182 Marci Frohock Garcia,Jamie Reding,EdWard Whalen,Steve Adrien Deluca著,孙岩、黄波、张宁译,SQLServer 2000系统管理员宝典,北京:清华大学出版社,200173视崇隽、刘民、吴澄,“供应链中车辆路径问题的研究进展及前景”
24、,计算机集成系统-CIMS,2001,Vol.7(11):16(上接第4页)4术语权重重构获得查询q的TAGq查询集后,重新调整术语权重,构造新的向量Q。其基本思想是:给定一个查询方案,根据节点的路径度,强化(strengthen)叶子节点权重,弱化(weaken)图TAGq中中间节点的权重,从而优化用户查询的目的。TWA(TermWeight Adjustment Algorithm,术语权重调整)算法:输入:(1)术语关联图TAGq查询方案GQT;(2)查询术语/权重集合Q=(q1,w1),(qn,wn)。输出:查询术语/权重集合Q。TWA算法:1)构造空的术语/权重集合Q=。2)计算每个
25、节点的路径度:a)令GQT中所有节点的路径度为0;b) for GQT中每条起始路径P=(t1,tk) dofor i=1,2,.,k do path degree(ti)=path degree(ti)+1;3)对每个以t为叶子节点的起始路径P=(t1,tk,tk=t):a)修改t权重:Wt=Wt+Wti*l/path degree(ti)(1ik);b)修改Q: Q=QU(t,wt);c)修改Wti权重:Wti=Wti-Wti*l/path degree(ti),修改Q(由于同一个术语节点可能出现在多个起始路径中,可能会多次修改该术语权重。): Q=QU(ti,witi);4)输出Q,算法
26、结束。例子3设例子2对应的查询术语/初始权重见表1。通过权重调整算法(令l=0.1),得到表1中不同查询方案的术语权重。不同的查询方案使得术语A1,m1和A2,1的最终权重不同。表1查询术语/权重优化前后对照表A1A2A3AnA1,m1A2,1A3,k3An,mnA1,1,1,k1初始权重0200 0200 0200 0200 0400 0400 0400 0400 0600GQp1路径度1 1 1 1 2 0 1 1 3权重0197 0197 0180 0190 0387 0000 0410 0410 0629GQp2路径度1 1 1 1 1 1 1 1 3权重0197 0197 0180
27、0190 0393 0393 0410 0410 06235结论本文引入术语关联网络TAN概念,检查查询术语的可达关系,建立术语关联图TAG,构成新的查询,接着利用术语权重调整算法计算新的术语权重,形成基于术语关联的查询。本文贡献之处在于利用TAN发现查询中存在的术语关联,并利用术语关联重新计算术语权重,从而突出用户查询目的。本文只研究了术语之间的isa联系来体现概念之间的泛化/细化联系。由于术语之间存在多种关联,各种关联的性质存在较大差异。以后的研究内容主要分析可达术语之间的关联种类和距离,对于不同的可达关联予以不同的考虑,如予以不同的权重和伸缩因子等。参考文献1 Panagiotis G.
28、Ipeirotis,Luis Gravano,Mehran Sahami.Automatic classifica-tion of text database through query probing,WebDB 2000.2 Luis Gravano,Hector Garcia-Molina,Anthony Tomasic,GLOSS:Text-SourceDiscovery over the Internet,Vol.24,No.2,June 1999,ACMTransactions onDatabase Systems.3 Luis Gravano,Querying Multiple
29、Document Collections across the Internet,1997,PHD Thesis.4 Ricardo Baeza-Yates,Berthier Ribeiro-Neto.Modern Information Retrieval,1999,ACMPress.5 Weiyi Meng,King-lup Liu,Clement Yu,et al,Estimating the Usefulness ofSearch Engines,International Conference of Data Engineering,1999.6 J.Kleinberg.Authoritative Sources in a hyperlinked environment.In Proceed-ing of the 9thAnnual ACM-SIAM symposium on Discrete Algorithms,pp.668677,January 1998.第3期纪寿文等:基于J2EE的网上购物配送管理系统设计31-精品 文档-