当今的互联网应用中,越来越多的系统以及应用趋向于Web开发。Web应用具有易用性、通用性和良好拓展性等优点,支持实时的信息发布,动态的用户交互及与后台系统安全灵活的连接。因此,构造强大、应用灵活、开发简便的的Web应用是当前主流电子商务系统开发的基础。目前国内外主流的电子商务网站,如淘宝网、京东商城、亚马逊、Ebay等,都是基于Web开发的电子商务系统。
关键词:电子商务,电子商务模式,Web
一、本课题的研究意义:
随着电子商务逐渐改变传统的商务格局,电子商务系统的开发也成为了开发者们研究的热点。为适应电子商务的发展,必须有一个架构健壮、接口设计良好、数据结构设计合理、模块划分明确、功能分配细致、处理流程快速简洁的电子商务系统。因此,在当今Web技术、javaEE技术成熟、SSH三大框架稳健的前提下,我们决定开发一个基于Web的电子商务系统。
二、国内和国外发展现状:
目前,国内外开发一个基于Web的电子商务系统,绝大多数是使用面向对象体系结构进行分层设计,将复杂的逻辑问题分解,并使用javaEE技术,搭建稳健的框架,以便于前期开发和后期系统的业务扩展和升级。当前主流的Web开发框架有SSH三大框架,分别是Struts框架、Spring框架和Hibernate框架。
Struts框架具有组件的模块化"灵活性和重用性的优点,同时也简化和清晰化了Web 应用程序的开发,使得开发者更专注于业务逻辑的实现 [1]。
Hiberbate框架通常用于数据的持久化,是java的反射机制实现的,支持各种关系数据库。但是,它限制了对象模型的使用,例如,一个持久性类与多个表之间不能映射[2]。
Spring框架是基于反向控制和AOP的多层JavaEE系统框架,能够有效地组织中间层对象, 但是,现今Spring的普及度不高,并且Spring的很多代码都需要写在JSP中,同时又缺少一个公用控制器造成了控制器过于灵活的局面[3]。
除了开发框架,业务逻辑也是电子商务系统中必不可少的一部分。除了要实现电子商务系统自身的业务逻辑外,还要建立运行业务逻辑的底层环境。不同的业务逻辑之间会存在很大的差别,但是它们运行所依赖的底层环境则可能是相似的,所以有必要把这些底层服务独立出来[4]。通过javaEE技术实现让业务逻辑运行的底层服务,可以更加专注于自身业务逻辑的设计,缩短开发周期,减少开发风险。
Web的迅速发展使其成为一个巨大的信息源。按照信息蕴含的深度,整个Web可分为 Surface Web 和 Deep Web两大部分。Surface Web是指Web中能够被传统搜索引擎(如 google,baidu 等)索引到的内容,而 Deep Web则是指不能被传统搜索引擎索引到的内容,这些内容主要存储在 Web 中大量可在线访问的 Web 数据库中[5]。
电子商务系统的各类商品信息依赖于Web数据库,目前整个互联网中至少有450 000 个可访问的 Web 数据库[6],并且数量仍在迅速增长,其中存储的信息覆盖了现实世界的各个领域,如商业、医学、体育等.Deep Web 中的信息量是 Surface Web 的550倍之多[7],这使得 Deep Web 成为人们获取信息的一个重要途径。比如,购书网站当当 Web 数据库。
三、设计与实现:
1.需求分析:
根据电子商务系统的特性,需完成用户注册、登录,商品收藏、购买,物流查询,订单管理,仓库管理,售前咨询,售后管理等功能。
2.根据需求分析做出概要设计:
为达到需求分析中列出的要求,划分出以下7个子系统:用户子系统、客服子系统、前端、订单管理子系统、支付子系统、物流子系统、仓库管理子系统。
其中,每个子系统所实现的功能如下:
用户子系统:注册、登录、个人信息修改、订单管理(支付、取消订单、退换货等)等;
客服子系统:查询商品库存、查询用户订单信息、处理退换货信息等;
前端:商品展示、商品分类、销量统计、用户评论等;
订单管理子系统:核对商品库存、接收订单、确认订单、创建订单号、保存订单信息等;
支付子系统:支付、退款、保存用户账户信息(银行卡信息、第三方支付工具信息等)等;
物流子系统:接收订单号、接收订单商品、选择快递公司、生成物流编号、发
货、物流信息追踪等;
仓库管理子系统:商品分类、商品库存管理、记录商品进销信息等;
3.系统开发:
以MyEclipse为开发工具,使用oracle数据库,Tomcat作为应用服务器。使用java、sql等作为服务端开发语言,html、javascript等作为客户端(web页面)开发语言。
拟用Struts2框架开发控制层和界面层,实现客户端与服务器的交互;Spring框架用于统一管理javaBean,降低代码耦合性;Hiberbate框架负责数据的持久化,实现服务端与数据库的交互,简化了传统JDBC的编程,提高开发效率(Hiberbate虽然提高了开发效率,但执行效率降低,根据实际情况,若数据量大,则使用传统的JDBC技术,加快执行效率)。