J2EE平台架构上开发CRM的技术过程控制

来源:百度文库 编辑:神马文学网 时间:2024/04/28 00:23:30
内容提要:
第一章:概述
第二章 CRM
2.1 CRM概述
2.2 CRM利用系统模块划分
2.3 CRM利用系统模块内在关系
2.4 CRM利用系统各模块的技巧请求
第三章 J2EE
3.1 J2EE概述
3.2 J2EE组成部分
3.3 J2EE各组成部分在开发CRM利用系统中的脚色
3.4 J2EE各技巧实现CRM利用系统的特点
第四章:J2EE平台架构开发CRM的内容
第五章:技巧层面把持J2EE平台架构开发CRM的过程
第六章:CRM利用系统各个模块的具体技巧实现
第七章:国内CRM系统目前存在的标题以及采用J2EE技巧进行的解决方案
第一章 概述
本文论述了关于在J2EE平台上开发CRM利用系统的各方面内容,包含高辉本人对于CRM系统的懂得,利用J2EE平台开发过程中要留心的一些技巧深层的标题,开发分析中要留心的原则等等。这些都是作者在实际的工作中通过经验与教训所得来的。在工作中,我深入的领会到系统分析员的重要性,尤其是对于以组件为重要开发对象的工程项目,系统分析员的技巧与业务素质对于全部项目标成功与否起着非常要害性的作用。
需要阐明的是,这并非作者工作文档,而仅仅是一篇分享经验与教训的交换文档,因此,其中关于一些涉及到具体的系统设计标题,我仅仅写了标题,敬请体谅。
第二章 CRM
2.1 CRM概述
科学技巧在不断的进步,市场竞争日益激烈,对于企业来说,越来越强烈的感到到客户资源是他获胜的最重要的资源之一:首先企业竞争的上风不仅仅是产品本身,先进的服务手段已成为要害;现代竞争实在就是客户的全面争取而客户对企业的信任程度往往是从其消费过程中所得到的体验,如何做到最大程度的满足客户是非常重要的内容,因此,客户关系治理系统(CRM)应运而生,并成为近年来西方市场的热门和大买点。
实际上,CRM就是企业与客户的一种一对一的需求关系治理。这样,看待客户的视角就从过往的部分级别提升到了企业的层次,各个部分共享客户资源,以一个同一的对外接口来与客户交换,因此,这就请求能够将与客户通过各种方法如传真、邮件、电话、网页等交换所获得的所有信息有机的整合。
在设计CRM利用系统的过程中,我们首先要留心数据结构的格式:CRM利用系统的实行要害是以客户为数据结构的核心,这其中包含客户的基础信息、客户所购置的商品列表、客户抱怨、客户建议、客户服务记载、客户埋伏需求、客户对企业的虔诚度等等。这样设计的原因一是使CRM利用系统有一个对于企业易于懂得,易于把持的用户接口,二是对于CRM利用系统的设计开发可以比较轻易地拓展,具有良好的开发接口与开发弹性,对于项目负责人、系统分析员能够更加易于把持全部的开发过程,减少项目开发的风险。
另外,我们仔细研究过国内的数家公司的CRM利用系统的产品,从中学到了很多的东西,但同时也看到了这些产品的不足,在本文的后面部分我们将提到,我们创造,造成这种不足的原因在很大程度上是由于技巧的原因,因此,经过重复的论证,我们终极还是选择了在我熟悉的J2EE平台上进行开发,这样就很大程度上克服了那些不足。
2.2 CRM利用系统模块划分
CRM利用系统重要由市场治理(Marketing)、销售治理(Sales)、服务治理(Service)、召唤中心(Call Center)、电子商务(E_Business)五部分组成。
市场治理:供给易于应用的界面与工具,使把持职员能够彻底的分析市场、客户,策划和跟踪市场策略,分析竞争对手的市场策略等等,以便更加有效的拓展市场。在这个模块中,通过客户材料中的诸如地区、消费层次,消费习惯与方法、埋伏需求、虔诚度、已购置产品列表等等有价值的信息来从不同的角度彻底的进行市场的策略分析,同时还可以评估和跟踪目前已经进行或者正在进行的营销策略,以及通过对自己和竞争对手的数据进行具体的分析,策划更加有效的销售策略。
销售治理:治理用户信息、贸易机会以及销售渠道等等各方面的内容,从而能够使销售职员可以不受地区限制及时把握资源以及企业的最新的价格信息,并可以向客户供给最新的和最感爱好的商品列表以及价格信息。本模块包含机会、账户、合同等的治理,销售队伍组成、销售队伍成员以及资源重新调配的治理,有效跟踪销售事迹,同时供给个体的销售方法与过程参考,机动进行产品配置、报价、打折、天生销售订单等。另外,本模块还应当和电子商务模块整合,以便达到多方位、多层次的销售,同时减少销售本钱。
服务治理:本模块通过动态建立知识库,使客户服务代表能够有效的进步服务质量,增长客户的满足程度,并且捕捉和跟踪服务中涌现的贸易机会、产品德量信息、客户需求等等,并能够适时的向客户建议其他的产品和服务。
召唤中心:召唤中心是实行CRM利用系统的重要的组成部分,他实际上是将销售模块和服务模块进行了一个高度的集成,使一般的业务代表就可以进行实时的销售和服务。它通过治理账户、合同等等信息,并通过知识库的支撑,就可以最大程度的满足客户的多方面的需求。召唤中心供给当今最全面的盘算机电话集成技巧(CTI),通过对已拨号码辨认服务(DNIS),主动号吗辨认(ANI),交互式语音应答系统(IVR)得全面支撑,通过采用系统预制的盘算机电话集成技巧,可以在用户拨叫的过程中业务代表已经可以获得客户的材料,就机动的进行业务处理。
电子商务:电子商务模块是以上所有模块的一个逻辑集成,它供给了一个个性化、人性化、高度集成以及易于应用的用户界面,在这个用户界面上客户可以进行几乎所有的需求,诸如购置、付款、寻求服务支撑、查询产品与服务目录、查询订单状态等等,甚至可以与召唤中心接洽在一起,最大程度的满足客户需求。
由于我们采用J2EE架构平台的开发方法,所以可以很轻易的将我们在市场治理、销售治理、服务治理以及召唤中心模块的内容集成到电子商务模块中,同时召唤中心的大部分功效也可以并且也应当应用销售治理、服务治理模块中开发的组件。因此,这就请求我们在开发过程中,要充分利用J2EE平台的优点,组件的高度可重用性,减少开发的本钱,加快开发的进度,并同时可以把持开发的质量。在实际的开发中,对于EJB 、Servlet的质量请求非常严格,项目负责人、系统分析员必须把握好质量。
2.3 CRM利用系统模块内在关系
在前面已经提到,在开发CRM利用系统的数据结构时必定要以客户信息为核心,一方面是为企业供给一个良好的易于把持的用户界面,另一方面是进步开发的可控性,减少开发本钱与风险。以客户信息为核心,所有的模块的内容都是缭绕客户,这样也使得利用系统的可拓展性大为进步,掩护性加强。对于开发职员,尤其是系统分析员,所有的功效内容对于他来说都是一种“插件”,各个模块功效之间的耦合性大为降低,很显然会使全部的开发过程更加易于把持。
在各个模块的具体开发实行中,销售模块是基础,他负责治理账户、机会等信息,并且经过销售职员的销售运动的信息支撑,对于客户的信息(如需求、购置行动等)的补充,就可以实时的给与市场职员以信息支撑,从而随时把握销售策略,便于及时调剂。从某种意义上讲,应当说销售治理、服务治理、召唤中心以及电子商务这四个模块都是作为市场模块的信息支撑,同时反过来,市场治理策略也给与其余企业运动以策略支撑。要实现这一点,就必须在数据结构地设计上以客户信息为核心数据。
CRM利用系统各个模块之间的关系在企业业务上关系非常紧密,但是作为一个非常宏大和复杂的系统,我们不能按照一般传统的软件工程观念,在各个模块之间通过接口通信,这样会带来利用系统在开发、扩充以及掩护方面等很多的标题。正确公平的方案是将客户视做一个对象,将客户资源作为把持的核心。
2.4 CRM利用系统各模块的技巧请求
基于客户对于CRM利用系统的实际需求以及考虑到系统的未来拓展性、可掩护性,CRM利用系统各个模块中除了召唤中心可以做成客户/服务器(C/S)系统模式之外,其他模块都应当做成瘦客户端(浏览器)/服务器(B/S)模式。经过了重复的论证并且通过与别的技巧方法的比较,我们终极断定采用在J2EE平台上开发CRM利用系统的技巧方案。一方面是由于作为一种比较成熟的技巧规范,相对于微软的.NET来说,它的开发要更加安全、本钱更低,另一方面,我从很久就一直跟踪散布式开发的技巧,对于J2EE的开发非常熟悉。(当时还没有相干的中文版书籍)。因此,比较了几种开发平台之后,我们决定采用J2EE。在这种开发平台上,我们将业务逻辑抽象出来,写成组件,然后将其发布到服务器上,再通过前台程序的开发程序员开发前台界面,调用后台的商务逻辑。
市场治理、销售治理、服务治理之所以采用散布式的开发,一方面是满足业务职员的办公需要,可以不受地区的限制,随时随地地办公,另一方面也是为了降低开发的本钱与掩护本钱。由于我们看到,在召唤中心模块中有销售治理、服务治理等内容,同时电子商务模块中又有其余模块的商务逻辑,我们将其抽象出来,一是组件复用,二是减少开发工作量同时减少风险。
第三章:J2EE
3.1 J2EE概述
任何一个有经验的Java平台开发职员,都会知道这个平台具有非常壮大的功效和非常高的综合程度,并且发展非常迅速。Java平台的很多利用程序接口(API)为各种利用程序设计和系统级别程序设计供给了丰富的功效。J2EE是一种技巧规范,他给开发职员供给了一种工作平台,它定义了全部标准的利用开发系统结构和一个安排环境,在这个系统结构中,利用开发者的留心力集中在封装贸易逻辑和贸易规矩上,一切与基础结构服务相干的标题以及底层分配标题都由利用程序容器或者服务器来处理。甚至,附属于事务、持久化、安全等等方面的利用组件的运行时属性都可以应用高度机动的声明方法在安排环境中定制(一般采用XML)。这个平台供给了一个简化的开发模型,它具有产业强度的可拓展性,支撑公平的集成和机动的安排,与开发商和利用服务器无关。
3.2 J2EE组成部分
对于开发职员来说,J2EE平台供给给他们的就是三种,Jsp、Servlet、EJB这三种开发方法。
Jsp
Jsp实在是一种高层的Servlet。他与以往的其他网页编写脚本有很大的类似性,但是只是在履行时有一些不同。Jsp引擎将它和它所在的HTML文件一起合成Servlet的代码,然后它的履行就和Servlet的一样了:先编译成.class文件,然后由支撑java虚拟机的服务器来履行,然后输出成果。
我们在应用Jsp中可以应用JavaBean来进行更加机动的处理。
Servlet
Servlet可以被看作是服务器真个applet,它通过ServletResponse以及ServletRequest这两个对象来输出和吸收用户传递的参数,然后在内部的方法中履行把持,如访问数据库、访问别的Servlet方法、调用EJB等等,然后将处理成果返回给客户端。可以通过集成化的开发工具来进行开发。在一般的工具中都已经构建好一个框架,程序员只需要熟悉html标签以及熟悉一般的java语言就可以进行开发了。
EJB
EJB假如除往它的语言特点外,我想对于大多数有比较丰富编程经验的开发职员来说应当可以轻松懂得,他非常类似于微软的DCOM。他有一个自己要存活要运动的一个容器,为了可以让客户进行透明调用,而不必关心肠位,他还必须有一个本地和远程接口,同时还应当有一个相干的配置文件,以便告诉容器她要怎样的活法。对于开发职员来说,假如采用一种集成化的开发工具,如JBuilder,就可以大大减少工作量。在JBuilder中通过配置相干的服务器路径、容器信息,我们可以通过它的模板来完成一个EJB组件的开发以及分发,非常方便也非常简略。
在开发过程中,建议的开发方法是在会话bean内部调用实体bean,由于实体bean没有状态但是对数据库的亲和,而会话bean中有我们为了把持程序而需要的高低文信息,因此,我们可以联合这两种bean的所有优点,来比较轻松的进行开发。比如在会话bean中用实体bean进行数据库的访问同时会话bean用来保存客户的高低文信息。
3.3 J2EE各组成部分在开发CRM利用系统中的脚色
我们已经提到过,开发一个硬朗的、可拓展的CRM利用系统中的各个模块,除了召唤中心外我们都将采用浏览器/服务器模式。因此,下面的模式是除了召唤中心模块之外的方法:
浏览器--------〉Jsp脚本文件--------调用---------〉Servlet------调用--------〉EJB------访问数据库---------〉处理返回。
其中Jsp属于前台开发职员进行的开发内容,也就是供给给客户的用户界面,请求是雅观,应用性强,便于把持;
Servlet、EJB为后台开发职员开发的具有可以重用性的包含商务逻辑的组件,也就是说,他们重要是进行企业的商务逻辑的处理。请求是开发的程序必定要硬朗,充分留心到业务逻辑的独立性与组合性。
在开发CRM系统时,前面已经说过,系统分析员自身对于J2EE技巧的把握深度,对于CRM系统业务的懂得程度将极大的决定了系统的成功与否。就是在做系统分析时必定要做到将功效完整细化到Servlet、EJB组件所封装的商务逻辑中往,并且要重复论证其公平性与独立性。
3.4 J2EE各技巧实现CRM利用系统的特点
Jsp相对来说比较简略,但是在开发过程中系统分析员必定要留心尽可能少地将商务逻辑放到Jsp文件中,有几个原因,一是Jsp文件本身的可掩护性比较差,尤其是假如不采用的方法的开发,将会极大的增长开发与掩护本钱。因此,在前台的Jsp开发中首先要划分出版面,然后将版面分割成不同的部分,用不同的被包含文件来终极组成用户界面。另外要留心的一点是某些与程序逻辑实现无关的动态内容最好放在数据库中,而不要放在文件中。所以在开发前台的Jsp文件时系统分析员要留心下面的几个标题:
1、划分版面的界面逻辑,用包含文件的方法给程序员断定开发代码;
2、尽量不将商务逻辑放在Jsp文件中,所有的业务处理都要调用后台的组件;
3、当涉及到的界面逻辑较多的时候,要给程序员设计JavaBean来进行处理,而不是在Jsp文件中直接嵌进java代码,否则会造成Jsp文件的可读性非常差,掩护与调试异常艰苦。
Servlet作为在服务器后台进行处理的组件,除了业务上商务逻辑要独立、完整、可组合的、正确等的请求外,还有一个很重要的请求:就是线程安全性。显然,我们都知道Servlet相比通用网关接口CGI有着明显的优点就是可以掩护一个线程池,不用每一次都要创立一个新的线程,但是可能很多程序员都会心识不到一个经常会碰到的标题:实例变量在所有的线程之间是共享的,并且假如存在着Servlet链互调时,就会产生数据毛病。因此系统分析员必定要勉励程序员多留心利用Java供给的方法(如声明自己的类实现了Runnable接口或者采用同步synchronized技巧等)解决线程的标题,另外还要留心的是数据库的连接标题,由于假如频繁的访问数据库会造成数据库服务器的累赘同时使客户真个回馈速度变慢,因此要留心利用预先分配连接并在开释以后能够回收的连接池。所以,在开发Servlet也要留心下面的3个标题:
1、勉励程序员关注线程安全标题(如采用声明自己的类实现了Runnable接口或者采用同步synchronized技巧等解决线程的标题);
2、数据库的访问要充分利用JDBC技巧的预先分配连接并在开释以后能够回收的连接池;
3、勉励系统分析员将商务逻辑划分成单个的独立的可通用的可重用的商务逻辑组件,在实际的程序中通过Servlet链来完成某项商务逻辑。
EJB实际上单就程序的写作方面要比Servlet简略的多,它使程序员只需要关心要实现的是甚麽就可以了,而不必关心事务的处理,底层的把持等等标题。但是也还是有一些编程方面的请求:
1、最好能够在程序中将所有的static字段都声明为final型的,这样可以保证多个实例涌现时语义的不一致标题;
2、留心线程标题,同Servlet;
3、不应用文件系统。EJB组件可以通过环境命名高低文用一种标准的方法进行环境实体查询,基础上是不用文件系统。
4、禁用socket来进行监听和吸收连接,或者用其进行多路发送。
5、不可能用awt函数来完成键盘的输进和输出,假如有的话,应当是向把持台输出把持信息,由于组件是用来在服务器端完成某一项商务逻辑的。
第四章:J2EE平台架构开发CRM的内容
本章的内容是一个非常大的部分,他所涵盖的就是具体的开发方案,其中包含应用案例图,运行图等等。由于某种原因,这儿就不写了,请体谅。
第五章:技巧层面把持J2EE平台架构开发CRM的过程
在J2EE平台上开发CRM利用系统,是一个非常优良的方案,一方面J2EE是一项比较成熟的技巧规范,各大IT服务器、中间件厂商也都大力推重并支撑,尽管微软大力推出.NET,但是毕竟.NET是一项新的技巧规范,假如在其上进行开发的话,风险显然要大得多,而J2EE目前却正是在走向成熟。
正像任何事情一样,在先进的J2EE平台上开发CRM利用系统必需要有一个良好的实行过程,在这个过程当中,有一个非常重要的脚色:系统分析员。系统分析员自身对于J2EE技巧的把握深度、对CRM利用系统的业务懂得程度很大得影响了开发的过程,甚至可以尽不夸张的说,系统分析员自身的素质决定了开发的成功与否,这是一个非常要害的因素。 首先是系统分析员对于客户的需求的懂得程度,只有深进的懂得了客户的需求,才干够将商务逻辑很好的划分;其次是系统分析员的思维是否周密,是否严谨,是否具有很强的逻辑思维能力,由于这涉及到将商务逻辑进一步细化成独立的可重用的业务逻辑与应用逻辑。第三是其是否对于J2EE技巧有着非常深的把握,这是实行CRM的另外一个重要之处,由于在全部的开发过程中,实在重心就在服务器端组件的开发上,一个系统能否稳固,高效的运行,很大程度上取决于开发技巧上是否规范与公平,而系统分析员在实行编码阶段的重要职责就是负责检查程序员的程序代码
在开发过程中另外一个留心的是开发职员的分工。在J2EE平台上的开发与一般的软件开发概念不同,它有着严格的分工:
1、系统分析员;
2、后台组件开发程序员(重要是Servlet与EJB);
3、后台服务器实行技巧职员(重要负责组件的治理);
4、后台组件测试职员;
5、前台用户界面程序员(重要是jsp程序员+美工);
6、前台测试技巧职员;
在实际的实行过程中,后台服务器实行技巧职员可以充当后台组件测试职员的脚色,同样,前台用户界面程序员可以充当前台测试技巧职员,由于他的页面中所包含的逻辑比较少。
总结一下,要害的几点:
1、商务逻辑必定要划分的非常公平,原则是一个组件中应当只含有一种商务逻辑,一般的商务逻辑应当是通过几个组件的协同合作来实现的(如何划分,如何组合就是看系统分析员的功底了!)
2、分工必定要明确,除了上面所列出的脚色充当之外,尽量避免前台程序员与后台程序员的脚色互换,否则很可能造成商务逻辑组件之间的耦合,而这是尽对不答应的,否则随着开发过程的进行,就会创造越来越难以把持利用的开发。所以在开发过程中必定要留心组件的商务逻辑的独立性与唯一性,系统分析员和项目负责人必定要严格把关,这一点非常非常重要。
第六章:CRM利用系统各个模块的具体技巧实现
利用系统都是开发商基于对某项业务的深入懂得而产生的,不同的行业有不同的商务逻辑,即便是同一行业也有不同,因此,要根据客户的实际需求来做。但是,作为一个CRM系统她都有一个共同的框架,就是上面所提到的,由于,一套完整和实用的CRM系统可以看作是: 框架+具体商务逻辑。而框架部分则就是上面请求系统分析员所做的工作:将通用的商务逻辑抽象出来做成组件,以备复用。
本章应当是一个具体的模块设计,其中包含组件组合应用图,流程图以及其他的文档等等。出于和第四章同样的原因,请体谅。
第七章:国内CRM系统目前存在的标题以及采用J2EE技巧进行的解决方案
我们研究过国内几家CRM系统,学习到很多的东西,但同时也创造一些标题,现在举几个例子:
1、 大而全,但是各个功效做的太过于简略,无法实用。
2、 缺乏集成能力,无法将网页、电邮、电话、传真等集成。
3、 没有与客户的互动渠道。
就这三个原因,是由于在全部的设计上偏离了以客户为中心的原则,没有将客户的需求具体、完整的划分成个体的、独立的功效组件,没有将各个功效做成是以客户为核心的插件,再加上如开发本钱的压力等。而假如是采用J2EE,并且严格的按照公平划分的组件的方法来进行开发,就会解决或者避免或者减轻这些标题。比如,在开发完销售模块与服务模块的组件之后,电子商务模块基础上也就完成,只需要少许的其它组件就可以完成一个电子商务模块。