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