J2EE平台架构上开拓CRM的技能进程节制
副标题#e#
第一章 概述
本文叙述了关于在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)得全面支持,通过回收系统预制的计较机电话集成技能,可以在用户拨叫的进程中业务代表已经可以得到客户的资料,就机动的举办业务处理惩罚。
#p#分页标题#e#
电子商务:电子商务模块是以上所有模块的一个逻辑集成,它提供了一个本性化、人性化、高度集成以及易于利用的用户界面,在这个用户界面上客户可以举办险些所有的需求,诸如购置、付款、寻求处事支持、查询产物与处事目次、查询订单状态等等,甚至可以与呼唤中心接洽在一起,最洪流平的满意客户需求。
由于我们回收J2EE架构平台的开拓方法,所以可以很容易的将我们在市场打点、销售打点、处事打点以及呼唤中心模块的内容集成到电子商务模块中,同时呼唤中心的大部门成果也可以而且也应该利用销售打点、处事打点模块中开拓的组件。因此,这就要求我们在开拓进程中,要充实操作J2EE平台的利益,组件的高度可重用性,淘汰开拓的本钱,加速开拓的进度,并同时可以节制开拓的质量。在实际的开拓中,对付EJB 、Servlet的质量要求很是严格,项目认真人、系统阐明员必需掌握好质量。
#p#副标题#e#
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
#p#分页标题#e#
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文件中,所有的业务处理惩罚都要挪用靠山的组件;
#p#分页标题#e#
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、前台测试技能人员;
#p#分页标题#e#
在实际的实施进程中,靠山处事器实施技能人员可以充当靠山组件测试人员的角色,同样,前台用户界面措施员可以充当前台测试技能人员,因为他的页面中所包括的逻辑较量少。
总结一下,要害的几点:1、商务逻辑必然要分另外很是公道,原则是一个组件中应该只含有一种商务逻辑,一般的商务逻辑应该是通过几个组件的协同相助来实现的(如何分别,如何组合就是看系统阐明员的功底了!)2、分工必然要明晰,除了上面所列出的角色充当之外,只管制止前台措施员与靠山措施员的角色交流,不然很大概造成商务逻辑组件之间的耦合,而这是绝对不答允的,不然跟着开拓进程的举办,就会发明越来越难以节制应用的开拓。所以在开拓进程中必然要留意组件的商务逻辑的独立性与独一性,系统阐明员和项目认真人必然要严格把关,这一点很是很是重要。
第六章:CRM应用系统各个模块的详细技能实现
应用系统都是开拓商基于对某项业务的深刻领略而发生的,差异的行业有差异的商务逻辑,即即是同一行业也有差异,因此,要按照客户的实际需求来做。可是,作为一个CRM系统她都有一个配合的框架,就是上面所提到的,因为,一套完整和实用的CRM系统可以看作是: 框架+详细商务逻辑。而框架部门则就是上面要求系统阐明员所做的事情:将通用的商务逻辑抽象出来做成组件,以备复用。
本章应该是一个具体的模块设计,个中包罗组件组合利用图,流程图以及其他的文档等等。出于和第四章同样的原因,请体谅。
第七章:海内CRM系统今朝存在的问题以及回收J2EE技能举办的办理方案
我们研究过海内几家CRM系统,进修到许多的对象,但同时也发明一些问题,此刻举几个例子:
1、大而全,可是各个成果做的过分于简朴,无法实用。
2、缺乏集成本领,无法将网页、电邮、电话、传真等集成。
3、没有与客户的互动渠道。
就这三个原因,是因为在整个的设计上偏离了以客户为中心的原则,没有将客户的需求具体、完整的分别成个另外、独立的成果组件,没有将各个成果做成是以客户为焦点的插件,再加上如开拓本钱的压力等。而假如是回收J2EE,而且严格的凭据公道分另外组件的方法来举办开拓,就会办理可能制止可能减轻这些问题。好比,在开拓完销售模块与处事模块的组件之后,电子商务模块根基上也就完成,只需要少许的其它组件就可以完成一个电子商务模块。