首页>>>技术>>>CRM  CRM产品

发表评论分享按钮

云计算平台下CRM系统设计与部署

吕海东 2012/03/15

  通过对现有的CRM系统的改造,结合流行的服务端组件框架技术Spring Hibernate和RIA技术Flex以及Spring BlazeDS集成框架技术全新设计了基于云计算平台的具有RIA特性的CRM系统,极大降低了中小型企业实施CRM的费用,促进CRM应用的普及。 随着我国进出口贸易的飞速发展。但竞争也不断加剧,如何提高客户满意度一直称为外贸企业不懈追求的目标,因此引入CRM已经成为这些企业的共识。但对于广大中小企业来说,巨大的硬件和软件投资,加之没有专门的IT专业维护人员,使他们普遍感觉力不从心。云计算的发展和普及,以及云计算的低成本实施费用为这些企业应用CRM带来了前所未有的契机,本文采用Spring Source的Cloud Foundary云平台并结合Spring框架技术和Flex RIA技术开发了可定制的面向中小外贸企业的CRM系统,极大降低了这些企业实施CRM的成本。推动了CRM的普及和推广容。

  1 系统实现技术

  1.1 基于Java平台的云计算平台Cloud Foundry

  CloudFoundary是SpringSource公司开发的基于Java平台,内置Spring支持的自助式云计算平台,用于部署、运行和管理JavaEE企业级应用。此于计算平台提供了一站式服务的云管理界面,使得在云计算环境下部署Java平台应用非常简便和快捷。

  该云平台使用Spring的tcServer作为其应用的Application Server,它是与Tomcat6兼容的增强型运行环境。SpringSource不久将与SalesForce合作发布新版的VMForce云计算环境,全面支持Java和Spring框架,并融合SalesForce.com数据库和其领先的CRM平台技术,提供性能和功能全面优化的云计算平台。

  1.2 Spring框架

  Spring是一个开源框架,由Rod Johnson创建。它为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean(POJO)来完成以前只能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是使用IOC容器和注入方式完成Java对象及其依赖对象的创建和封装,现代企业级应用已全面采用Spring作为核心对象管理器。

  1.3 BlazeDS框架

  BlazeDS是Adobe公司开发的用于连接Flex客户端和JavaEE服务器端的通讯服务开源框架,它能够使得运行在浏览器的Adobe Flex应用程序与服务器端的Java应用程序相互通信。BlazeDS使用二进制数据通讯协议AMF在客户端和服务器端传输数据,要比传统的HTTP协议的文本传输协议要快至少10倍。因此Flex客户端的响应速度要比普通的HTTP协议快得多,也比异步传输的AJAX也高效得多,尤其传递CRM的大批数据尤其明显。

  1.4 SpringBlazeDS集成框架

  2009年底Adobe与Spring开发了新的框架技术Spring BlazeDS InteFation。可以利用Spring框架技术通过Adobe Flex、BlazeDS、Spring以及Java技术创建RIA应用。开发者可以通过BlazeDS公开Spring管理的服务而无需额外的配置文件,进而将Spring的易用性与Flex、BlazeDS以及Java整合起来快速创建企业级RIA应用。

  由于使用普通的BlazeDS Remote Object技术是无法得到Spring管理的对象的,也无法利用Spring注入的依赖对象,因此需要使用Spring BlazeDS集成框架,使得Flex客户端直接与Spring管理的服务器端业务对象通讯,完成Flex与服务器对象的协作和调用。

  2 系统设计与实现

  2.1 总体结构设计

  系统总体采用分层结构的MVC模式,服务器端使用JavaEE平台为基础,持久层采用Hibernate框架,对象管理层使用Spring,由Spring的IoC容器全面管理服务器端所有的Java类对象,实现对象间依赖关系的注入。客户层采用Flex4 RIA框架,实现了媲美桌面的Web应用操作模式。Flex使用BlazeDS框架实现客户端直接与服务器端业务对象的交互,避免使用类似Struts等控制层框架,简化了系统的设计,提高了系统的工作效率。

  因为BlazeDS无法直接取得Spring管理的业务对象,系统使用Spring BlazeDS Integration框架,将Spring管理的Bean对象发布为Flex客户端可以直接访问的Remote Obiect。系统的整体结构参见图1所示。


图1 CRM系统分层结构图

  从中可以看出不同框架技术在系统中的层次结构和职责。

  2.2 持久层设计

  持久层完成Java对象与数据库表的ORM映射,系统使用Hibernate框架技术,避免了繁杂的JDBC SQL编程,提高了项目的开发效率和迸度。更进一步使用Spring管理下的Hibernate整合技术,使用Spring配置方式管理Hibernate的SessionFactory对象,Spring配置Hibernate的示意代码如下:


  与本地开发不同的是云计算平台下,由于服务器采用虚拟主机技术,无法像本地服务器那样配置数据库连接池,因此需要CRM系统自己管理数据库连接池。本系统使用Spring管理下的数据库连接池,运用Apache开源DBCP框架配置连接池代码如下:


  配置的数据库连接池对象dataSource,直接被Spring注入到Hibernate框架,用于得到SessionFactory对象。目前Cloud Foundry云平台只支持MySQL数据库,未来为提供其他类型的数据库。

  通过对现有的CRM系统的改造,结合流行的服务端组件框架技术Spring Hibernate和RIA技术Flex以及Spring BlazeDS集成框架技术全新设计了基于云计算平台的具有RIA特性的CRM系统,极大降低了中小型企业实施CRM的费用,促进CRM应用的普及。

  2.3 业务层设计

  业务层对象用于实现CRM系统业务方法,其采用面向接口设计原则,由Spring管理实现类对象,并注入持久层的HibernateSessionFactory对象,业务对象配置代码如下:


  为简化业务层代码,使用Spring整合Hibernate的HibernateTemplate封装Session和HQL的执行。业务层的简化示意代码如下:


  由于可见使用此种方式将极大减少项目的代码编程量,对加快项目进度意义巨大。

  2.4 传输层设计

  传输层的作用是提供Flex客户端与Spring管理的服务器端对象之间双向数据传输和方法调用。此层采用Adobe的BlazeDS和Spring BlazeeDS Integration开源框架,使得Flex客户端可以直接访问Spring管理的业务层对象,并且也是在Spring的配置文件中进行配置,不需要单独的BlazeDS remote object配置文件,简化了远程服务对象的管理工作,Remote对象的配置代码示意如下:《 flex:message-broker/ 》,只此单句即可。

  在标题2.3的业务对象配置时,增加一句《 flex:remoting-destination/ 》就将此业务对象发布为Flex可以访问的远程对象,要比原始的BlazeDS简单得多。

  2.5 RIA客户端设计

  客户层采用Flex4的Spark UI组件和ActionScript分别实现MVC模式的View和Control层,实现与系统用户的交互,并通过Spring BalazeDs集成框架发布的Remote Object,实现与业务层对象的通讯,进而完成CRM业务处理。如下代码为Flex中声明Remote Object:


  其中destination指定的名称即为在Spring配置的Bean的id。

  2.6 系统云计算平台部署

  Spring Source公司提供了部署Java应用的自助式云计算平台,将开发的Java应用部署文件WAR和数据库表的DDL脚本文件通过Cloud Foundry部署UI。参见图2所示。


图2 Spring Cloud Foundry云计算平台部署界面

  在使用Cloud Foundry之前,需要使用VISA信用卡在Amazon弹性云EC2平台上申请帐号并得到数字验证证书,才能使用CloudFoundry云计算平台。在云计算环境下部署CRM系统后,即可访问此Web应用。

  3 结论

  采用此模式开发的外贸企业CRM系统已经在大连今冶机械有限公司成功部署运行,为企业带来了显著的经济效益。该公司的大连总部和发布在全国各地的工厂通过该CRM系统实现了全程自动化的客户订单和发运管理等外贸业务处理。促进了企业业务的高效化运作,且没有投资任何硬件和软件。该系统完全运行在云计算环境中,只是按流量支付云计算平台使用费。未来该模式CRM将会有非常广泛的市场前景。

万方数据