面向中小企业电子商务系统的应用框架

更新时间:2024-04-01 作者:用户投稿原创标记本站原创 点赞:11378 浏览:45769

[摘 要]本文结合中小企业电子商务系统的特点,分析了J2EE平台下开发模式的发展,介绍了一种在实践中积累形成的业务构造平台的初步设想和原型,分析了其特点、应用前景和待完善的地方.

[关 键 词]框架技术软件复用电子商务系统MVC

一、概述

软件的可重用性一直是软件工程所追求的目标之一,软件工程界希望有一天能和其他工业领域一样,利用标准化的软件模块快速构建特定的应用系统.

这种情况下框架应运而生,面向对象系统获得的最大的复用方式就是框架,一个大的应用系统往往可能由多层互相协作的框架组成.因此框架技术已经日益成为提高软件生产效率的关键.

1.什么是应用框架

对于应用框架,一直以来没有一个统一的定义,下面给出两个最常用的定义:“框架是一个系统全部或者部分的可复用设计,通常由一组抽象类和类之间的协作组成”,“框架是一个能够被开发人员实例化的系统骨架”.这两个定义是相互补充的,前者从复用的角度描述了框架,而后者给出了框架的目的.根据以上两个定义可知:(1)框架既分割了应用领域中的类、定义了各部分的主要责任和类与对象的协作关系,还规定了控制流程,(2)框架记录并实现了其应用领域的主要公共设计决策.由此可以认为,框架是一个“部分实现”的软件体系结构,是支持软件设计复用1.2电子商务系统开发过程中框架技术应用的重要性

电子商务系统有着应用系统的共性,同时也有着自身的特点,相对来说流程和操作较为规范和简单,完全可以总结出规范的流程,从而可以说为复用技术的应用创造了条件.

2.框架技术在系统开发中的重要作用

(1)知识积累.从代码出发进行知识的积累是最佳的办法.框架就是这种思路的产出物.框架包含了大量的代码,这些代码是对某个特定问题领域中抽象概念及这些抽象概念之间关系的描述.

(2)资产的保护.知识积累本身就是一项对资产的保护工作.而另一项很重要的保护工作就是软件组织(尤其是企业)需要保证对知识的学习和改进是经过合法授权的.将知识积累为框架的形式有助于缓解这种情况.

(3)鼓励重用.在软件组织中形成以框架为核心的开发方式,在开发中使用框架,并在开发完成后改进框架.在这个反覆的过程中,重用的工作就已经开展起来了.

(4)优化架构.框架代表了一种优秀的软件架构.框架定义了扩展方式,从而规范了框架的使用行为.这使得软件能够保持整体架构的稳定性和一致性.

二、应用框架eCommerceFramework的设计实现

1.J2EE平台下应用系统开发模式的进化过程

(1)JSPModel1

早期的JSP规范提出了两种用JSP技术建立应用程序的方式.这两种方式在术语中分别称作JSPModel1和JSPModel2,它们的本质区别在于处理批量请求的位置不同.在Model1体系中,如图1所示,JSP页面独自响应请求并将处理结果返回客户.这里仍然存在表达与内容的分离,因为所有的数据存取都是由bean来完成的.尽管Model1体系十分适合简单应用的需要,它却不能满足复杂的大型应用程序的实现.不加选择地随意运用Model1,会导致JSP页内被嵌入大量的脚本片段或Ja代码,特别是当需要处理的请求量很大时,情况更为严重.

图中文字:Request:请求,Response:响应,ApplicationServer:应用怎么写作器,

EnterpriseServers/DataSources:企业怎么写作器/数据源.

(2)JSPModel2

Model2体系结构,如图2所示,是一种把JSP与servlets联合使用来实现动态内容怎么写作的方法.它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让servlets完成深层次的处理任务.

图中文字:Controller、View、Model分别为MVC设计模式中的控制者、视图、模型,

其他同图1.

(3)MVC模式的杰出实现――Struts

MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果.现在有很多可供使用的MVC框架,由于Struts有完整的文档并且相对来讲比较简单,所以用它开发MVC系统还是比较方便地.

作为一个MVC的框架,Struts对Model、View和Controller都提供了对应的实现组件,下面分别进行介绍,并且看看它们是如何结合在一起的.

Struts框架的处理流程清楚的体现了MVC系统的特点,简单的Struts组件结构如图3所示.StrutsControllerActionServlet处理客户请求,利用配置的ActionMapping对象把请求映射到Action处理器对象进行处理.Action处理对象访问ActionForm中的数据,处理和响应客户请求,它还调用后台的Bean组件,这些组件封装了具体的业务逻辑.Action处理器对象根据处理结果通知Controller,Controller进行下一步的处理.

2.eCommerceFramework的设计

从上面的介绍不难看出struts在将问题分为几个部分的同时也引入了复杂性.毫无疑问,要理解Struts必须接受一定的培训,对开发者的要求较高.而且在实际开发中我们发现它的有些特性并不合适规模相对较小的电子商务系统的开发,如taglib等.

这样我们就希望根据需要开发适合自己的MVC框架实现,这就是下面要重点介绍的eCommerceFramework.

(1)传统MVC的弱点

MVC框架体现了一种“分治”的思想,他将业务逻辑、数据的访问与界面表现进行了分离,为我们开发具有伸缩性、便于扩展、便于整个流程维护的系统提供了必要的条件.但是在项目实践中不难发现,即使使用了MVC,开发基于J2EE的系统仍然不是一件轻松的事情.过多的bean其实重复着大致相同的操作――存取数据,不同层间数据交换的格式没有规范,布局相似的JSP页面仍然重用性不高,框架没有加进权限控制等等等,这些都制约了系统开发的效率和质量.

(2)持久化对象模型hibernate的启示

几乎所有的企业级应用都必定要涉及对象模型与数据库之间的交互,因此持久层成为J2EE系统中最重要的部分之一.直接用JDBC或是DAO来实现会造成维护的”高消费”,对于大型系统简直是一场噩梦.

作为一个纯JA的O/R(对象/关系)映射框架,Hibernate很好的实现了对应用程序持久化的管理.其基本原理是用xml映射文件描述业务实体类映射数据库的方式,然后通过hibernateapi实现持久化操作.

(3)框架原型

对MVC及Hibernate的思想进行了整合与改进,我们提出了框架的原型.

从图4中不难看出,整个系统完全遵循MVC设计模式的框架,系统各个模块之间的耦合相对宽松,在系统开发期间,各部分开发人员之间不存在明显的制约关系.实际上,我们只需要关心业务逻辑,对于数据库的操作,数据格式的转换等等头疼的问题全由框架代劳了.下面的例子说明了使用eCommerceFramework后实现一个业务流程所要做的工作.

(4)框架的其他组件

①XML是关键.与HTML不同的是,XML语言能把数据与数据表示(例如界面)分开.这种特性能够让XML适合在网络上不同计算环境(无论是不同的操作系统环境,还是不同的设备显示方式)中采用一致的信息表示方式.基于J2EE的大多数框架都使用了XML及相关技术,如struts,velocity等等.



在框架中,XML可以说是框架的核心技术之一.无论在前台页面的展现、怎么写作器的配置,还是远程数据传输、数据的持久化都可以看到XML的应用.

②集成的权限控制.框架在设计之初就考虑了权限控制的接口(如图5).基本过程是这样的,每一个页面请求所对应的Action都惟一的与模块(Module)和组(Datagroup)关联,当解析出请求的Action后,连接数据库判断当前用户是否有模块操作权限和数据权限.通过Check进行后续实体操作,反之则拒绝怎么写作,将信息返回用户.

三、结语

eCommerceFramework设计的初衷主要是为了使基于J2EE的项目产品化,缩短开发周期,提高系统质量.经过几个项目的测试与检验,同等规模的系统开发较普通MVC模式节省了超过50%的代码量,相应也就节省了50%的人月,并且测试中发现的bug数量仅为过去开发的系统的三分之一.当然有一个前提,项目初期的架构培训工作一定要做好,要让项目组中每一个人知道框架的意义和接口,包括分析设计人员和程序员.

但是可以看到框架在UI的设计和开发方面做的还不够,对于类似页面的巨大工作量和重复劳动还无能为力.这一点我们希望引入模型组件库和逻辑页面模板库来解决.

目前的应用MIS系统都不可避免的有大量的统计和数据导入导出功能.对于统计结果的表现我们准备应用VML语言,并逐步形成自己的一套组件,数据转换采用常用的EXECL格式,基本能够满足大部分应用的要求.