摘 要 该文介绍了如何运用WebWork、Sitemesh、Hibernate等JAVA开源技术来设计与实现电子商务实验模拟系统,给出了系统结构、功能及实现方案。关键词 电子商务;实验模拟系统;Java;开源技术
1 引言 目前高校电子商务专业相关课程的
教学迫切需要建立电子商务实验软件平台,该平台应实现包括B2C、C2C、B2B、电子数据交换(EDI)、现代物流应用系统、电子金融、安全电子交易身份认证等实施电子商务必不可少的软件功能模块。电子商务的高速发展对软件开发技术提出了强有力的挑战,由于电子商务的内部逻辑复杂,安全性要求苛刻,商务业务规则的变化较快,这就要求电子商务实验模拟系统的开发技术能够强大、灵活以适应电子商务实验教学的需求。 在电子商务系统的设计与开发中,迫切需要解决的问题有:易维护性、易扩充性、可测试性、可靠性、高性能和安全性。目前的N-tier软件体系结构较好的解决了上述问题。通常将系统分成表现层、商务逻辑层、持久存储层。 J2EE规范针对多层应用的设计、集成、性能、安全性和可靠性等诸多方面,为应用系统的开发提供了表现层、商务逻辑框架、持久化、事务、安全和
日志服务等方面的技术规范。目前符合J2EE规范的开源项目如雨后春笋般涌现,其中不乏
优秀的技术。利用现有的优秀开源技术可以大大降低应用系统的开发周期和开发成本,同时也能提高整个系统的灵活性。
2 本系统所使用的开源技术 对于现有较成熟的WEB应用框架而言,其解决的主要问题无外乎下面几部分: 1)将客户端的WEB页面请求中的输入数据封装为一个(请求)数据对象。 2)对WEB请求中的数据进行合法性验证。 3)根据不同的WEB页面请求,调度相应的商务逻辑对象进行处理,并将(请求)数据对象作为参数传入。 4)商务逻辑对象完成业务规则的处理后,返回一个结果数据对象。 5)通过表现层将结果数据对象中的数据展现给用户。 6)业务实体的持久存储。 WebWork2、Sitemesh、Hibernate、Junit、XDoclet、Ant等开源项目都是很成熟的开源项目。本系统的设计与实现通过综合利用以上开源技术,非常轻松地解决了上述问题。 WebWork是由OpenSymphony开源组织开发的,致力于组件化和代码重用的J2EE Web框架。WebWork由Xwork1和WebWork2共两个项目组成。 Xwork1简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截器(interceptor),运行时表单属性验证,类型转换,强大的表达式语言等。拦截器(interceptor)就好像是一张过滤网,它用来对客户端的调用进行拦截,并对其进行一些处理,比如检查客户端调用的合法性、实现安全策略、对事务进行支持等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(由Action类调用商务逻辑对象完成业务处理),实现session及application范围的映射,以及request请求参数映射。每一个Action不依赖任何层和任何容器。他们通过ActionContext来使用request和response对象,实现了WEB层和逻辑层的分离。Webwork的Action能够通过赋予一定的属性值来运行,而不必启动web容器来进行测试,增强了WEB组件的可测试性。 WebWork2支持多视图表示,视图部分可以使用JSP、Velocity、FreeMarker、JasperReports、XML等。 Web应用开发中,我们常常面临如何保证输入数据合法性的头痛问题。实现输入数据校验的方法无外乎两种:页面Java Script 校验、服务器端执行逻辑代码之前进行数据校验。前者的系统安全性难以保证,通常作为输入数据校验的辅助技术。 WebWork使用Xwork的验证框架进行验证处理,它可以通过配置interceptor(拦截器)来激活。它可以为每个需要验证的Class指定一个xml验证文件,也可以为一个Class在不同的情况下指定不同的xml验证文件。WebWork可以给每个Action类指定对应的验证文件,也可以给Action类的属性字段指定验证文件。最终通过拦截器来组装Action和其验证文件,使得逻辑层不需要考虑额外的数据验证,简化了业务处理逻辑。 Sitemesh也是opensymphony开源组织开发的j2ee应用框架之一,它主要用来对Web页面进行布局
管理,并且致力于为很多页面组成的大型网站提供统一的风格、导航和布局功能。SiteMesh通过fiLTEr截取request和response,并给原始的页面加入一定的装饰(Decorator),然后把结果返回给客户端,并且被装饰的原始页面并不知道SiteMesh的装饰,避免了因页面之间互相包含造成的页面间的耦合。 本系统采用面向对象的设计与实现,而系统使用关系型数据库管理数据,因为系统中的持久对象需要借助关系型数据库存储,从而带来了对象和关系的映射问题。很难做到把关系表记录完整的映射到持久对象的关系上来,这主要体现在多表的关系映射类型多样,关联的数据表个数难以确定,可能是一个表映射多个持久对象,有可能是多个表映射一个持久对象,更有可能的是表的某些字段映射到一个持久对象,但是另外一些字段映射到别的持久对象上。对象如果使用直接的数据库操作来存取成员以实现持久对象编程的话,对存在1:N关系的持久对象的查询其实就是1+n次对数据库的SQL,势必引起数据库存取效率的大幅下降。 Hibernate则是持久层设计的最佳技术,它优雅地解决了上述各种对象和关系的映射问题。它是开源和免费的, API开放,当其本身功能不够用的时候,可以自己编码进行扩展。 Junit用于类模块的单元测试。XDoclet、Ant是支持项目自动重建和
文档自动生成的优秀开源工具,它们可以大幅提高程序员的
工作效率和工作质量。
3 系统总体设计 本系统的主要目标是实现模拟电子商务系统以便提供师生进行相关实验的软件平台。重点在于模拟电子商务环境中的交易与管理各方的业务流程,同时便于交易各方根据需要制定相应的业务规则,因此系统的设计应能适应商务规则的变化,对部分功能的实现没有必要真实的再现,比如安全认证子系统中认证中心的安全认证服务的实现。另外,本系统还应加强实验过程管理的功能设计,以便师生快速掌握实验的过程和进度,能够对实验的成绩进行自动处理并提供相关查询。 在一次实验中,学生通常在多个虚拟企业中扮演多种不同的业务角色,系统应提供快速的角色转换功能,从而便于学生了解不同业务流程相关操作之间的关系及相互影响。基于以上目标,系统共分两大子系统:商务系统、实验系统。 商务系统共分五个二级子系统:电子银行系统、认证系统、交易系统、企业业务管理系统、物流系统。实验系统分为学生自助、实验管理二个子系统分别供学生、教师使用。 在每个子系统中,根据不同的操作人员角色划分子模块,例如“交易系统”(系统结构如图1),分成“交易大厅”、“会员企业后台管理”、“交易中心后台管理”三个子系统,在会员企业后台管理中,能够根据当前学生所承担的业务角色列出其涉及的多个企业供其选择。整个系统采用单点登录验证,从而减少学生在使用各模块功能时的登录操作,避免了当前一些较流行的实验模拟系统需要学生记忆多个密码,同一次实验中需要多次重复登录的问题,让学生更加关注业务流程,提高实验效率。
图1 交易系统结构图 实验系统分成学生自助、实验管理两个子系统。学生通过学生自助子系统可以查询教师布置的实验任务,已做实验的成绩,实验操作步骤的主要错误,从而了解不足之处及时加以改进。教师通过实验管理模块可以布置实验任务,查询学生实验进程和实验成绩,了解学生实验过程中普遍存在的问题以便及时加以指导。 系统的分析与设计采用面向对象的UML建模语言进行。在充分的系统需求分析后,通过UML的用例图和顺序图对系统的概念模型进行了描述,然后进行较详细的设计,描绘出系统的类图及类关系图,并建立了初步的数据模型。通过使用Borland公司的Together建模工具,我们实现了系统模型与源码、数据库的双向自动转换。 为了适应本系统开发的工程化需要,将开发人员分为如下几类:a、系统分析员;b、后台组件开发程序员(主要是Action类与业务逻辑类);c、后台组件测试人员;d、前台用户界面程序员(主要是JSP程序员+美工);e、前台测试技术人员。通过Sitemesh和WebWork的结合,实现了各模块的用户界面与后台组件的独立开发与测试,有利于人员分工,大大降低了开发人员用于信息交流的时间,提高了系统开发的效率。
4 系统实现4.1、运行环境 为适应高校计算机系统软件环境的多样性,本系统可运行于任一种符合J2EE规范的WEB容器,大多数流行的关系型数据库。本系统开发时选择了开源项目Tomcat及Mysql。
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
4.2 WEB应用的配置 限于篇幅,仅列出部分关键配置信息。基于J2EE规范,本系统的
目录规划如下(表1):
父目录 | 子目录 | 描述 |
/ | src | Java类源代码 |
/ | lib | 系统需要的第三方类库文件 |
/ | docs | 系统开发文档 |
/ | ROOT | WEB应用根目录 |
/ROOT | WEB-INF | WEB应用配置目录 |
/ROOT/ WEB-INF | classes | Java类字节码文件目录 |
/ROOT | _decorators | sitemesh装饰器页面 |
表1 系统目录结构 在/ROOT/WEB-INF中,存放web.xml、sitemesh.xml、decorators.xml等配置文件。 WEB视图层的配置: 本系统设计了多个装饰页面,下面列出主装饰页面在/WEB-INF/decorators.xml中的配置信息:<decorators defaultdir="/_decorators"><decorator name="main" page="main.jsp"><pattern>*</pattern></decorator></decorators> 在主装饰页面main.jsp中进行页面的布局,形成较为流行的“上-左中右-下”的页面结构,上部显示系统标识及首页链接、各主要子系统链接,下部显示版权申明及联系方式,左部及右部显示
常用模块,中部为当前页面的主功能操作区。其JSP页面主体部分列出如下:<table width="100%" align="center"><tr><td width="134" valign="top"><page:applyDecorator name="simple"page="/sitemesh/left.jsp"/></td></tr><tr><td width="488" valign="top"><page:applyDecorator name="simple"page="/sitemesh/middle_top.jsp"/><br><decorator:body /><br><page:applyDecorator name="simple"page="/sitemesh/middle_bottom.jsp"/></td></tr><tr><td width="122" valign="top"><page:applyDecorator name="simple"page="/sitemesh/right.jsp"/></td></tr></table> 持久层Hibernate的配置: 首先通过classes/hibernate.cfg.xml文件配置Hibernate的数据库连接信息。然后在每个需要持久化的类二进制文件的所在目录中建立与类同名的.hbm.xml文件配置该类属性与数据表中字段的对应关系以及类之间的映射关系。以下是Customer.hbm.xml的内容。<hibernate-mapping package="com.un.eclab"> <class name="Customer" table="CUSTOMER"><id name="id" column="CID"><generator class="increment" /></id><property name="strUserName" column="username" /><property name="strPassword" column="password" /></class></hibernate-mapping>在需要将Customer对象持久化时,使用如下代码:SessionFactory sf =new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();Customer customer = new Customer();customer.setUsername("customername");customer.setPassword("customerpassword");session.save(customer);tx.commit();session.close();4.3业务逻辑层的实现 以交易系统为例,该子系统实现的主要类列出如下(表2):
类名 | 主要功能 |
IProduct | 产品类接口,规范产品类的主要操作,适应不同企业对产品类的要求。 |
Product | 产品类,实现了Iproduct接口。各企业可继承该类,实现对各自产品的管理 |
EccCart | 交易中心购物车类,可管理多种交易类型。 |
EccCartItem | 购物车子项类 |
EccOrder | 订单类 |
EnpOptions | 企业选项类,管理业务规则 |
表2 交易系统主要类列表 通过以上类的协作实现了交易系统的主要业务逻辑。
5 结束语 总体上看,采用开源技术设计电子商务实验模拟系统具有开发周期短、系统灵活性高、易于开发及维护等优点,较大程度上降低了系统开发的复杂程度和开发费用,可适应多变的用户需求,具备广阔的应用前景。
参考文献[1] Java Open Source Programming.Joe Walnes,Ara Abrahamian,Mike Cannon-Brookes,Pat Lightbody.Indianapolis,Indiana:Wiley Publishing,Inc.2004.[2] 张向先,魏革.电子商务模拟实验系统的商务模式构建.情报科学,2003(12)[3] 戴 庆,司国海,李鹏飞.基于J2EE 的网上书店的构建技术及应用.大庆石油学院学报.2003(3)
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
我国国家信息化指标体系和国际核心指标体系的比较研究04-26
计算机数显辅助摆位技术在放疗中的应用04-26
信息类专业计算机网络教学方法探讨04-26
数字化校园统一身份认证04-26
高职院校《离散数学》课程教学现状分析与研究04-26
“计算机网络基础”教学实例设计及其应用04-26
有效提高高校计算机及硬件资源利用率04-26
多媒体教室刷卡控制系统的设计研究04-26
基于Web2.0的职称评审管理系统构想04-26
校园网上商城会员管理部分系统分析和设计04-26