论文部分内容阅读
摘要:近几年,由于面临的市场竞争压力,使国内外企业意识到,客户才是企业生存和发展的根基。而有效的客户管理可以将商机信息得到统一管理,减小销售人员的依赖。文章主要研究CRM系统架构的设计,对系统中的各个功能模块从需求到设计做出了定义与描述。该系统架构设计的实现,增加跨部门的协同销售工作效率,建立起有效的IT支撑,使销售过程得到全程记录,容易跟踪、分析、优化和完善。同时也增强销售过程自动化程度,有效发挥IT系统作用。
关键词:CRM J2EE MVC模型 JSP Servlet Struts Hibernate EJB
Telecommunication customer relations management system management system skeleton design discussion
Deng Chenxi
Abstract:In recent years,because the market competition pressure which faces,causes the domestic and foreign enterprises to realize,the customer is the enterprise survival and the development foundation.But the effective customer management may obtain the opportunity information the unification management,reduces the sales personnel’s dependence.The article mainly studies the CRM system construction the design,has made the definition and the description to in the system each function module from the demand to the design.This system construction design realization,the increase trans-departmental coordination sale working efficiency,establishes the effective IT support,enable the sales process to obtain the entire journey record,easy to track,the analysis,the optimization and the consummation.Simultaneously also strengthens the sale process automation degree,plays the IT system role effectively.
Keywords:CRM J2EE MVC model JSP Servlet Struts Hibernate EJB
【中圖分类号】G710 【文献标识码】B
【文章编号】1009-9646(2009)04-0108-02
客户关系管理(Customer Relationship Management,CRM)首先是一种管理理念,其核心思想是将企业的客户(包括最终客户、分销商和合作伙伴)作为最重要的企业资源,通过完善的客户服务和深入的客户分析来满足客户的需求,保证实现客户的终生价值。
以客户为中心的经营模式是新一代企业经营的标志。在当今竞争日益激烈的电信运营环境下,越来越多的电信企业开始通过实施客户关系管理系统来保持和赢得更多的有价值的客户,进而提高客户的忠诚度、满意度以及降低企业经营成本。本文主要就中国电信CRM系统探讨构架设计方面的技术。
1.体系构架需求定义和分析
CRM 系统是一个巨大的系统工程,需要投入大量的人力、物力和才力,因此CRM系统的实施要分阶段、分步骤地进行[1]。CRM 系统建设因该采用原型法式自上而下的系统建设方法;具体是先由管理层和经理等企业高层提出建设性的要求,根据这些要求来实施系统,然后在应用中来发现新的需求,再对系统进行改造和完善,循环往复直到建立一个完善CRM系统。
电信客户关系管理系统前台应用着重实现客户资料管理、营销管理、销售管理、综合受理、系统管理、流程管理等功能模块。由于CRM是一种业务庞大,访问量大,事务控制复杂,分布式的企业应用系统[2],所以采用EJB中的无状态[3]session bean(Stateless Session Bean,SLSB),而SLSB最有价值的服务可能就是容器管理的事务(Container-Managed Transaction,CMT)了,这使得开发人员开发业务逻辑时无需考虑事务控制的问题,从而减轻开发人员的工作量。
在整个软件架构的表示层,CRM使用Struts框架对页面展示和业务逻辑进行分离,避免JSP Scriplet和页面展示的紧耦合。
2.软件构架
表示层采用Struts框架的MVC设计模式[4],业务层采用EJB框架的SLSB技术,数据持久层直接利用应用服务器的连接池资源、SQL执行语句缓冲技术以及Hibernate 技术[5]。
基于该架构搭建的前台应用既支持应用级负载均衡,又支持组件级负载均衡;如果需要为异构系统提供远程组件接口,可在该框架上通过配置文件来配置对EJB远程接口的调用,该框架支持J2EE1.4以上规范,框架容器管理的组件能与EJB组件共存。
整个CRM应用的三层体系架构如图1所示。

2.1 表示层。采用Struts框架的MVC设计模式[4]。
JSP是用户界面,用户通过它直接与CRM系统交互,CRM系统通过JSP收集用户提交的信息,反馈用户需要的结果。
ActionServlet是整个Struts框架的控制中心,它初始化struts-config.xml配置文件上的配置信息,根据配置信息调用相应的FormBean收集从JSP页面提交上来的数据。
RequestProcess是Struts框架的分控制中心,它是每个子应用模块的中心处理器,也可以把整个项目当成一个子应用模块。在CRM应用系统中,我们在RequestProcess进行二次鉴权,拦截住跳过页面鉴权的操作,更好的防止系统的不授权访问。
Action是CRM系统的控制器,负责获取ActionServlet收集用户数据FormBean实例,通过DicFramework框架提供的最大化赋值的对象转换器ObjectTranslate,把用户数据赋值给VO、QO,调用业务代表(Delegate)完成用户请求,返回结果数据,根据struts-config.xml的页面流程控制转向相应页面。
2.2 业务层。
2.2.1 业务代表。Delegate是业务代表,它封装了通过EJB调用业务对象(Business Object)的调用逻辑,不用管是本地调用还是远程调用。实现了表示层与业务层的解耦合。
2.2.2 EJB策略。采用EJB中的无状态SLSB和CMT[3],实现业务的分布式布置和事务控制。EJB调用分为本地调用和远程调用两种,为了更好的系统性能,与WEB服务布置在同一JVM上的EJB使用本地接口调用EJB服务,而布置在不同JVM上的EJB使用远程接口调用EJB服务。业务代表通过EJB调用业务对象。
每个模块都有自身的EJB,将大的模块进行组件式开发,这样就可以根据实际情况进行分模块部署。开发EJB时本地、远程接口同时申明,通过配置文件决定调用哪种接口,EJB定位器根据要调用的接口类型对EJB进行调用,这样就可以根据部署的实际情况确定是调用本地接口还是远程接口。
EJB主要的任务是事务控制以及业务门户,业务代理通过EJB调用业务对象中的业务方法。
2.2.3 业务对象。Business Object是业务对象,它封装了面向业务的数据操作,使得业务开发人员不用关心业务的具体数据实现,而把主要精力设入到业务逻辑中。業务对象透明的调用数据持久层的DAO,实现了业务层与数据持久层的解耦合。
2.3 数据持久层。DAO是数据访问对象,封装数据访问逻辑。
DicFramework是项目的基础开发框架,在框架中封装了JDBC和Hibeante两种数据访问策略,降低数据持久的开发复杂度。
JDBC是java提供的一种标准化SQL查询语言的数据访问策略,它可以通过标准化的SQL语句或存储过程操作数据库。
Hiberante是一种典型的ORM数据访问策略[5],是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。对于单表数据的新增、修改、删除、查询操作以及批量都是通过Hibernate操作,对于多表查询、新增修改删除可以酌情使用JDBC或Hibernate。对于大数据量的查询采用在数据库进行分页查询。
HQL是Hiberante Query language,是一种面向对象的查询语言。
Session是Hiberante的操作单元,几乎Hiberante的所有业务方法都要通过它来处理。
PO是Hiberante中的持久化对象。
Connection Pool是数据库连接池,它分为公有和私有两种数据库连接池,分别连接公有数据库和私有数据库,实现两个不同地理位置的数据库的访问。公有数据一般指共享数据,如客户基本信息。私有数据一般指本地网的一些个性化的数据和一些保密的数据。其数据的存放是放到公有数据库还是私有数据库需视各模块的业务而定。
数据持久层可能有多个位于不同物理位置的数据库,如果要同时操作几个不同物理位置的数据库又要保证它们的事务性,这就涉及到了分布式事务的问题。关于分布式事务,我们对它做了一次简要的可行性测试,证明分布式事务[6]是可靠的。
3.结束语
在国内电信市场逐步开放和市场竞争不断加强的形势下,客户对电信服务高质量、灵活性、多样化和个性化的期望值日益提高,吸引和留住客户成为电信运营商在市场中的立足之本。CRM系统构架的设计,使得软件开发商能够据此实现电信客户管理系统,从而面对复杂的外部环境,电信运营商能够提高自身核心竞争力,提高整体经营和服务水平。
参考文献
[1] 何健民、傅成.面向业务的CRM系统构架化方法研究[J].合肥工业大学学报,2008,31(9):1489~1493
[2] 孟凡强.CRM行动手册[M].北京:机械工业出版社,2002
[3] DEBU PANDA,REZA RAHMAN,DEREK LANE.EJB 3 in Action [M].USA:Manning Publications,2008
[4] CRAIG W,RYAN B.Spring in action[M].北京:人民邮电出版社,2006
[5] STEPHEN ASBURY.Java企业级应用开发指南[M].北京:机械工业出版社,2004
[6] KHAWAR ZAMAN AHMED,CARY E.UMRYSH.用J2EE和UML开发Java企业级应用程序[M].北京:清华大学出版社,2007
关键词:CRM J2EE MVC模型 JSP Servlet Struts Hibernate EJB
Telecommunication customer relations management system management system skeleton design discussion
Deng Chenxi
Abstract:In recent years,because the market competition pressure which faces,causes the domestic and foreign enterprises to realize,the customer is the enterprise survival and the development foundation.But the effective customer management may obtain the opportunity information the unification management,reduces the sales personnel’s dependence.The article mainly studies the CRM system construction the design,has made the definition and the description to in the system each function module from the demand to the design.This system construction design realization,the increase trans-departmental coordination sale working efficiency,establishes the effective IT support,enable the sales process to obtain the entire journey record,easy to track,the analysis,the optimization and the consummation.Simultaneously also strengthens the sale process automation degree,plays the IT system role effectively.
Keywords:CRM J2EE MVC model JSP Servlet Struts Hibernate EJB
【中圖分类号】G710 【文献标识码】B
【文章编号】1009-9646(2009)04-0108-02
客户关系管理(Customer Relationship Management,CRM)首先是一种管理理念,其核心思想是将企业的客户(包括最终客户、分销商和合作伙伴)作为最重要的企业资源,通过完善的客户服务和深入的客户分析来满足客户的需求,保证实现客户的终生价值。
以客户为中心的经营模式是新一代企业经营的标志。在当今竞争日益激烈的电信运营环境下,越来越多的电信企业开始通过实施客户关系管理系统来保持和赢得更多的有价值的客户,进而提高客户的忠诚度、满意度以及降低企业经营成本。本文主要就中国电信CRM系统探讨构架设计方面的技术。
1.体系构架需求定义和分析
CRM 系统是一个巨大的系统工程,需要投入大量的人力、物力和才力,因此CRM系统的实施要分阶段、分步骤地进行[1]。CRM 系统建设因该采用原型法式自上而下的系统建设方法;具体是先由管理层和经理等企业高层提出建设性的要求,根据这些要求来实施系统,然后在应用中来发现新的需求,再对系统进行改造和完善,循环往复直到建立一个完善CRM系统。
电信客户关系管理系统前台应用着重实现客户资料管理、营销管理、销售管理、综合受理、系统管理、流程管理等功能模块。由于CRM是一种业务庞大,访问量大,事务控制复杂,分布式的企业应用系统[2],所以采用EJB中的无状态[3]session bean(Stateless Session Bean,SLSB),而SLSB最有价值的服务可能就是容器管理的事务(Container-Managed Transaction,CMT)了,这使得开发人员开发业务逻辑时无需考虑事务控制的问题,从而减轻开发人员的工作量。
在整个软件架构的表示层,CRM使用Struts框架对页面展示和业务逻辑进行分离,避免JSP Scriplet和页面展示的紧耦合。
2.软件构架
表示层采用Struts框架的MVC设计模式[4],业务层采用EJB框架的SLSB技术,数据持久层直接利用应用服务器的连接池资源、SQL执行语句缓冲技术以及Hibernate 技术[5]。
基于该架构搭建的前台应用既支持应用级负载均衡,又支持组件级负载均衡;如果需要为异构系统提供远程组件接口,可在该框架上通过配置文件来配置对EJB远程接口的调用,该框架支持J2EE1.4以上规范,框架容器管理的组件能与EJB组件共存。
整个CRM应用的三层体系架构如图1所示。

2.1 表示层。采用Struts框架的MVC设计模式[4]。
JSP是用户界面,用户通过它直接与CRM系统交互,CRM系统通过JSP收集用户提交的信息,反馈用户需要的结果。
ActionServlet是整个Struts框架的控制中心,它初始化struts-config.xml配置文件上的配置信息,根据配置信息调用相应的FormBean收集从JSP页面提交上来的数据。
RequestProcess是Struts框架的分控制中心,它是每个子应用模块的中心处理器,也可以把整个项目当成一个子应用模块。在CRM应用系统中,我们在RequestProcess进行二次鉴权,拦截住跳过页面鉴权的操作,更好的防止系统的不授权访问。
Action是CRM系统的控制器,负责获取ActionServlet收集用户数据FormBean实例,通过DicFramework框架提供的最大化赋值的对象转换器ObjectTranslate,把用户数据赋值给VO、QO,调用业务代表(Delegate)完成用户请求,返回结果数据,根据struts-config.xml的页面流程控制转向相应页面。
2.2 业务层。
2.2.1 业务代表。Delegate是业务代表,它封装了通过EJB调用业务对象(Business Object)的调用逻辑,不用管是本地调用还是远程调用。实现了表示层与业务层的解耦合。
2.2.2 EJB策略。采用EJB中的无状态SLSB和CMT[3],实现业务的分布式布置和事务控制。EJB调用分为本地调用和远程调用两种,为了更好的系统性能,与WEB服务布置在同一JVM上的EJB使用本地接口调用EJB服务,而布置在不同JVM上的EJB使用远程接口调用EJB服务。业务代表通过EJB调用业务对象。
每个模块都有自身的EJB,将大的模块进行组件式开发,这样就可以根据实际情况进行分模块部署。开发EJB时本地、远程接口同时申明,通过配置文件决定调用哪种接口,EJB定位器根据要调用的接口类型对EJB进行调用,这样就可以根据部署的实际情况确定是调用本地接口还是远程接口。
EJB主要的任务是事务控制以及业务门户,业务代理通过EJB调用业务对象中的业务方法。
2.2.3 业务对象。Business Object是业务对象,它封装了面向业务的数据操作,使得业务开发人员不用关心业务的具体数据实现,而把主要精力设入到业务逻辑中。業务对象透明的调用数据持久层的DAO,实现了业务层与数据持久层的解耦合。
2.3 数据持久层。DAO是数据访问对象,封装数据访问逻辑。
DicFramework是项目的基础开发框架,在框架中封装了JDBC和Hibeante两种数据访问策略,降低数据持久的开发复杂度。
JDBC是java提供的一种标准化SQL查询语言的数据访问策略,它可以通过标准化的SQL语句或存储过程操作数据库。
Hiberante是一种典型的ORM数据访问策略[5],是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。对于单表数据的新增、修改、删除、查询操作以及批量都是通过Hibernate操作,对于多表查询、新增修改删除可以酌情使用JDBC或Hibernate。对于大数据量的查询采用在数据库进行分页查询。
HQL是Hiberante Query language,是一种面向对象的查询语言。
Session是Hiberante的操作单元,几乎Hiberante的所有业务方法都要通过它来处理。
PO是Hiberante中的持久化对象。
Connection Pool是数据库连接池,它分为公有和私有两种数据库连接池,分别连接公有数据库和私有数据库,实现两个不同地理位置的数据库的访问。公有数据一般指共享数据,如客户基本信息。私有数据一般指本地网的一些个性化的数据和一些保密的数据。其数据的存放是放到公有数据库还是私有数据库需视各模块的业务而定。
数据持久层可能有多个位于不同物理位置的数据库,如果要同时操作几个不同物理位置的数据库又要保证它们的事务性,这就涉及到了分布式事务的问题。关于分布式事务,我们对它做了一次简要的可行性测试,证明分布式事务[6]是可靠的。
3.结束语
在国内电信市场逐步开放和市场竞争不断加强的形势下,客户对电信服务高质量、灵活性、多样化和个性化的期望值日益提高,吸引和留住客户成为电信运营商在市场中的立足之本。CRM系统构架的设计,使得软件开发商能够据此实现电信客户管理系统,从而面对复杂的外部环境,电信运营商能够提高自身核心竞争力,提高整体经营和服务水平。
参考文献
[1] 何健民、傅成.面向业务的CRM系统构架化方法研究[J].合肥工业大学学报,2008,31(9):1489~1493
[2] 孟凡强.CRM行动手册[M].北京:机械工业出版社,2002
[3] DEBU PANDA,REZA RAHMAN,DEREK LANE.EJB 3 in Action [M].USA:Manning Publications,2008
[4] CRAIG W,RYAN B.Spring in action[M].北京:人民邮电出版社,2006
[5] STEPHEN ASBURY.Java企业级应用开发指南[M].北京:机械工业出版社,2004
[6] KHAWAR ZAMAN AHMED,CARY E.UMRYSH.用J2EE和UML开发Java企业级应用程序[M].北京:清华大学出版社,2007