探索中国CIO人才现状 | 第四季调研报告
AJAX与S2SH的民航企业CRM系统设计与实现
2014-03-11  作者:万方数据 

  0引言


  客户关系管理(CustomerRelationshipManagement,CRM)是一种企业经营的商业策略和管理理念,现今得到广泛认可,并且其越来越多地借助于信息技术来实现。它通过将最佳的商业实践(销售自动化)与先进的信息技术(例如数据挖掘、商业智能等)进行组合,为企业的销售、服务和决策等领域提供业务一体化的解决方案。我国民航企业,尤其是民航旅客运输行业中,客户数量、业务量巨大,建立CRM系统具有重要意义。


  本文CRM系统主要帮助解决一下问题:


  (1)有效管理客户信息。客户的概念不仅限于旅客,更应该包括对企业有贡献(现实的或潜在的)的任何人,例如员工、合作伙伴等。因此,客户关系管理也就包含了员工信息管理、企业业务流程管理等内容,它的应用将有效提高企业工作效率、优化企业管理方式。


  (2)通过信息处理技术,对客户价值、贡献进行分析,避免花费过多精力和财力无目标地发开新客户,并为这些最优可能创利的客户及时提供个性化服务,使企业有效地降低成本,提高收益。


  本系统考虑采用B/S架构,利用ExtJS这种AJAX框架开发富有互联网应用(RIA,RichInternetApplications),利用S2SH(Struts2+Spring+Hibernate)框架简化开发过程,增强系统的可维护性和可扩展性。该平台给用户提供了更高、更全方位的网络体验,满足了用户的应用需求,从而达到CRM管理的目的。


  1系统功能


  该CRM软件系统主要包括五个功能模块,如表1所示,系统中的用户通过角色和权限进行管理,不同部门不同角色的用户具有不同权限。系统管理员完成用户角色和权限的分配和管理。


  表1系统功能模块及说明书


  由此可见,民航企业可以完成从各业务部门到各级分支机构的管理、统计分析等功能,相关的业务功能包括:实时录入、及时处理、统计分析等,帮助决策者、管理者在最短的时间内找到决策者所需要的数据报表和分析报告,大大缩短决策时间,对行业的发展做出正确的判断,抢占市场先机。


  2系统结构


  该系统的逻辑视图分为三层,分别是表示层、控制层和业务逻辑层。为了提高系统的移植灵活性以及扩展性,设计尽量把每一层的功能主题设计成子系统,之间使用接口进行通信。


  (1)表示层。用户表示层指负责客户端页面的显示工作,即用户看到的应用程序界面的部分工作。该层使用各种Web页面技术,例如Struts2标签技术,JavaScript技术以及ExtJS技术等。该层依赖于控制层和系统服务层。系统服务层提供了表示层的一些基本的帮助显示的服务。


  用ExtJS可以开发出具有丰富内容的显示页面,因此用来开发RIA。它用JavaScript编写。是创建前端用户界面的UI框架。该框架与系统后台所使用的开发技术独立,因此,可以把ExtJS与使用Java、.NET或其他开发语言开发的应用系统集成在一起。


  (2)控制层


  该层根据界面的操作完成对程序数据的更新,将程序数据的改变及时反映到用户界面,从而控制用户界面和程序数据之间的同步。表示层的请求服务通过该层来协调业务逻辑层来提供。


  (3)服务层


  服务层主要是组织业务逻辑中的业务逻辑组件,包括表示应用程序领域内所有实体类。


  (4)数据访问层(持久层)


  该层提供了需要持久化实体对象的方法、逻辑。用于对业务逻辑层实体对象进行持久化。该层主要基于Hibernate技术进行设计,减少编写、维护SQL语句的工作量。


  (5)系统服务层


  该层的主要提供所有通用的、与业务无关的工具集包或类,为分层结构中其他各层提供所需的服务。


  3系统框架设计


  在Web程序的开发过程中,开发人员过度地注重服务和持久化的开发,导致在客户端与服务器端的交互技术方面已经严重滞后。如何提高Web响应速度,减少传输带宽已经成为Web开发的一个值得关注的问题。本项目开发的CRM系统基于Struts2、Spring、Hibernate和ExtJS技术开发。能够解决这一问题,并且使该系统具有良好的可维护性、扩展性。


  为提高系统的开发效率,使开发更注重于业务逻辑设计,本系统采用J2EE轻量级框架技术,即Struts2、Spring和Hibernate的框架组合Struts2是以WebWork的设计思想为核心,吸收了MVC框架Struts1的部分优点。它由核心控制器(FilterDispatcher)、业务逻辑控制器(Action)、拦截器(Interceptor)、结果类型(Result)和视图(View)等核心组件组成。Struts2采用一种松耦合的设计,增强了单元的测试性。Struts2具有强大的标签库,不仅提供了表现层的数据处理,同时还提供了AJAX、上传下载的功能。


  本系统开发语言:Java;开发平台:MyEclipse;数据库:DB29.0。系统采用Hibernate进行数据持久层的开发,通过MyEclipse提供的Hibernate反转工程,为数据库中的数据表生成相应的POJO(PlainObjectJavaObject)类和映射文件。同时,借助了Spring,通过依赖注入、AOP应用,面向接口编程,来降低业务组件之间的耦合度。增强系统的扩展性。


  在项目开发中,对象的调用流程是:JSP→Action→Sewice→DAO→Hibernate数据的流向是ActionForm,Bean接受用户的数据,Action将数据从Action,FromBean中取出,封装成VO或PO,再调用业务层的Bean类,完成各种业务处理后再foward。而业务层Bean收到这个PO对象之后,会调用DAO(DataAccessObject:数据访问对象)接口方法,进行持久化操作。


  系统运行环境如下:


  (1)服务器端。操作系统:Windows2000Server、Windows2003Server:数据库服务器:DB29.0系列:Web服务器:Tomcat6.0;JDK环境:JDK6.0系列。


  (2)客户端。操作系统:WindowsME、WindowsXP、Windows2000、WindowsNT;浏览器:IE6.0以上。


  4结语


  本文介绍了B/S结构的民航CRM系统整体设计与实现。该CRM系统开发快捷,方便,易维护、升级,同时。AJAX技术的采用使得系统响应速度快、交互效果好。如何在系统中采用数据挖掘技术提高系统对数据的分析获取能力。是该系统今后努力的方向。