论文关键词:spring 框架技术 公共信息服务
电子政务 论文摘要:本文通过介绍框架技术特点,提出了基于五层web应用的框架整合结构。并在此结构上实现了城市公共信息服务平台的应用,为类似的电子政务应用提供了参考。
随着网络技术、信息技术的发展,各类信息充斥我们生活、工作及学习周围,但这些信息之间重复严重,数据准确度不高,社会公众很难准确获取与个人生活、工作、学习密切相关的本地数据和信息,进而影响人们的网络生活,因而各类专业的本地信息服务已成为当前互联网应用的一种趋势。由政府牵头整合政府、市场、企业等多方面资源,共同构建一个统一、开放、跨平台、系统结构层次清晰的城市公共信息服务平台,并以灵活多样的形式为本地公众提供准确、权威的信息服务已经成为当地互联网应用的一种重要需求。
基于j2ee技术标准体系的框架技术能够快速、有效地支持大中型web应用项目的开发,但是在大中型web应用中,可能存在几个层次,需要使用几个不同的框架。那么如何整合各层框架以让每个层在一种松耦合的方式互相协作,这是一个在软件工程领域实践性很强的课题。本文介绍了一个以spring框架为核心,结合struts、hibernate框架的一种快速有效构建web应用的框架整合策略,并在此整合策略基础上阐述了城市公共信息服务平台应用的设计思想和实现技术。
1j2ee框架技术特点
目前随着软件开发技术的发展,可重用、易扩展,而且是经过良好测试的软件组件,越来越为人们所青睐。这意味着人们可有充裕的时间用来分析、构建业务逻辑,而不是繁杂的代码工程。WwW.lw881.com于是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架。
1.1spring框架
spirng框架是一个以控制反转(ioc)模式和面向方面编程(aop)思想为核心的轻量级框架,主要用于对中间层业务组件的管理。常用的中间件解决方案ejb是一种重量级的容器,主要有以下缺点:必须实现ejb的接口,对业务逻辑组件侵人性很大;应用依赖于ejb容器,不能单独运行,另外启动时间长,测试复杂、配置很困难。
首先,spring是一种轻量级的框架,是基于组件化、模块化的结构。它有分层的体系结构,因而针对spirng开发的组件不需要任何外部库,也可以选择某个模块独立使用,从而避免了ejb复杂、启动时间长的缺点。
其次,spring也是一个ioc容器。ioc模式是spring的核心,它的本质是由容器控制业务对象的协作关系,而非传统的用程序编码在业务对象直接控制,控制权由程序代码转移到外部容器。通过ioc模式可以很容易地管理和替换业务对象。
另外,spring又是比较全面的框架,它并没有象ejb一样从底层开始全面实现j2ee的功能模块。spring提供了大多数的层次功能模块,但它并不是从头开始实现的,它通过对其它框架技术的支持来实现各层功能。它包括springcore核心层、mvc模块、springdao、springorm、上下文控制、web表示层、面向方面编程7个功能模块。
1.2hibernate框架
hibernate是一种专业的对象关系映射(o/r)工具,通过hibernate的o/r映射,可以以对象化的方式处理数据库表中的记录。hibernate通过properties文件建立数据库连接,通过映射文件(.hbm.xm1)将数据库表映射为java类,表中的每条记录对应为类的实例,而数据列值映射为实例的属性。hiber—nate将这些实例以持久对象(persistentobject)形式向中间业务层提供服务。
1.3struts框架
sturts框架很好地实现了mvc设计模式的概念。它通过actionservlet对象实现集中控制,并利用struts—conifg.xml文件,很好地实现了视图、控制、模型层次之间的分离,使得页面设计与改变真正做到与代码无关。
2整合框架的web应用架构
如果以上述任何一个框架技术来实现大中型的web应用,会存在效率不高,解决问题不彻底等问题,通过以轻量级框架spring为核心,充分利用spring框架的开放性、模块化以及对业务对象、事务管理等强大的功能,整合sturts、hibernate框架,可以构造出五层web应用架构,分别为:客户层、web层、业务层、持久层、企业资源层5个层次。整合框架的web应用架构如图1所示:
在客户层,通过jsp页面实现交互,负责传送请求(request)和接受响应(response)。在web层,sturts根据actionservlet接受到的请求,委派相应的action。action对象中的execute方法调用模型中的业务组件,决定“做什么”。在业务层,管理业务组件的springioc容器负责向action提供业务模型(mode1)组件,决定“怎么做”和该组件的协作对象数据处理(dao)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件提升系统性能和保证数据完整性。业务层通过dao数据访问对象,向持久层请求数据处理。在持久层,依赖于hibernate的对象关系映射和对象化的查询语言操作,通过hibernate的会话,处理dao组件请求的数据,并返回处理结果。
对照基于ejb的一般web应用结构,整合框架的web应用架构中通过spring提供的轻量级业务组件的管理和ioc容器,实现了对ejb技术的替代和更好的组件重用性,使业务组件间的协作更加松耦合。同时利用spirng的开放性、模块化以及对hibernate良好支持的特点,通过引入专门的o/r映射框架hibernate实现了对关系数据库的对象化,隐藏了数据库的底层细节,便于开发者以统一的面向对象思想来开发应用。另外通过sturts的mvc模式,开发清晰明确的业务流程和用户交互,实现表现逻辑和业务逻辑的解耦,摆脱了原有的开发模式带来的高耦合性。通过框架的整合不仅集成了各种框架的优势,同时也构造了层次清晰,结构合理的5层web应用架构。
3应用实例
3.1项目概述
“宁波市城市公共信息服务平台”是由宁波市信息产业局牵头,以政府投资形式建设的一个公益性地信息服务平台。平台整合本地各类专业的信息服务企业和机构的信息资源,以合作的方式共同打一个宁波市本地的信息资源集聚中心和本地的信息门户,进而既增值开发利用了政府信息资源,也提了信息服务业的核心竞争能力,同时也为社会公众提供了一个权威的、统一的信息渠道,达到了政府、业、公众共赢的局面。
本平台整合了与社会公众有关的衣、食、住、行等政府、企业信息。信息分基本信息和市场商业信息两类。对于基本信息,平台的管理员及加盟企业所有成员都能进行信息的维护和更新,并有专门的信息员进行审核和管理,保持平台基本信息的准确与及时性。对于商业信息,基本上由发布者负责为原则,平台提供一种免费的发布平台,同时对这些发布的信息给予地图定位以及与其它频道信息等关联的增值服务,进一步提升第三方网站的信息价值。根据本平台的用户角色区分,主要有:前端普通用户和后台管理用户。后台管理用户有4种,分别是系统管理员、频道运作单位、加盟企业、信息员,主要负责对信息的采集与发布。前端用户是指一般的网站浏览用户,前端普通用户可以按分类信息查询,也可以按搜索引擎方式查询,在查到文本信息的同时给出对应的gis信息,进而可以获得行车路线等有关地图位置信息。另外,如用户根据本平台查到的信息,想进一步进行电子商务操作,如网上购物、电子订票等,本平台可以负责直接转向,起了一个信息门户的作用。
3.3主要实现技术
本平台采用tomcat5.0作为web服务器,struts框架为1.2版本,spring框架为1.2.5版,hiber—nate框架为3.0版,根据上述整合框架的web应用架构来实现平台的结构。
3.3.1视图层页面设计:根据前端用户灵活的信息浏览需求,同时又要适应频道运作单位自己管理频道模块的需求,因此,页面设计改动不能影响到其它业务逻辑。在实现中通过sturts的自定义标签,结合mvc模式,实现页面与业务逻辑分离,做到jsp页面不包含java代码。另外,利用jsp技术在显示页面嵌入地图内容,实现图文并茂的显示方式。
3.3.2web层请求响应控制:通过struts—conifg.xml配置文件把后台用户管理页面或前台用户浏览页面都对应到每个action,当页面发出请求后,根据struts—config.xml的配置文件中对应的action部署,由action对象调用本平台内的业务层组件。如果此时请求的是地图信息那么action对象中以ap/方式向市规划局的gis平俞调用地图位置信息,并把结果返回给客户端。如果此时请求是进一步需要第方电子商务服务,那么直接重定向到第方电子商务服务网站。
3.3.3业务对象的ioc方式管理:web层的action只是决定“做什么”,并没有实现“怎么做”,具体的业务逻辑由业务层的业务组件来完成。平龠中包括信息查询、会员注册、积分管理等功能模块都需要有一个业务组件来实现该功能。在项目实现中,把每一个业务组件包按接口类和实现类分开编码,当需要互相协作时,在代码层只要直接引用协作对象的接口类就可以了。协作对象的实现类统一南spring容器根据配置文件的说明进行注入。如:在本项目中,普通会员发布信息的业务需要信息员审核,审核通过后要把该信息的状态记录到某个频道运作单位下。那就可以分为i个服务组件:信息发布组件、信息审核组件、信息状态记录组件,在spring的ioc机制下,利用配置文件和基于接口与实现分离的编码方式可以很好地实现这个组件之间的松耦合协作,减轻了应用对容器的依赖。
3.3.4利用spring框架实现事务管理及与持久层会话:在本项目中对于会员注册,积分管理等操作需要进行事务管理,同时所有的操作数据保存需要与持久层进行连接,这些都可利用spring框架本身的功能来实现。如:通过spring配置文件可以直接实现数据源、会话工厂、事务管理和数据访问对象的配置,数据访问对象根据上述spring配置可以直接和持久层连接.这样在实现有中不用考虑这些功能的具体实现。hibernate通过转换工具把各类信息保存表转换成相应的对象文件和.xml映射文件,spring中的数据访问对象,直接对对象文件进行操作,由hibernate完成数据的持久化。
4结束语
在web应用开发的实践中,如何根据项目建设需要,选择一个或多个框架来构建合适的web应用体系结构是软件工程的首要任务。本文提山的整合框架的web应用架构,独立了显示模块.轻量化了业务组件,对象化了数据库数据,使得显示模块、业务逻辑模块以及数据处理模块可以通过外部文件的简单配置,高效地重用到其他应用系统中去,大大提高了系统的开方性和开发效率,为开发电子政务、电子商务等类似应用提供了参考模式。
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/245086.html