扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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是一项比较成熟的技术规范,各大IT服务器、中间件厂商也都大力推崇并支持,尽管微软大力推出.NET,但是毕竟.NET是一项新的技术规范,如果在其上进行开发的话,风险显然要大得多,而J2EE目前却正是在走向成熟。
正像任何事情一样,在先进的J2EE平台上开发CRM应用系统必须要有一个良好的实施过程,在这个过程当中,有一个非常重要的脚色:系统分析员。系统分析员自身对于J2EE技术的掌握深度、对RM应用系统的业务理解程度很大得影响了开发的过程,甚至可以毫不夸张的说,系统分析员自身的素质决定了开发的成功与否,这是一个非常关键的因素。 首先是系统分析员对于客户的需求的理解程度,只有深入的理解了客户的需求,才能够将商务逻辑很好的划分;其次是系统分析员的思维是否严密,是否严谨,是否具有很强的逻辑思维能力,因为这涉及到将商务逻辑进一步细化成独立的可重用的业务逻辑与使用逻辑。第三是其是否对于J2EE技术有着非常深的掌握,这是实施CRM的另外一个重要之处,因为在整个的开发过程中,其实重心就在服务器端组件的开发上,一个系统能否稳定,高效的运行,很大程度上取决于开发技术上是否规范与合理,而系统分析员在实施编码阶段的主要职责就是负责检查程序员的程序代码。
在开发过程中另外一个注意的是开发人员的分工。在J2EE平台上的开发与一般的软件开发概念不同,它有着严格的分工:
1)系统分析员;
2)后台组件开发程序员(主要是Servlet与EJB);
3)后台服务器实施技术人员(主要负责组件的管理);
4)后台组件测试人员;
5)前台用户界面程序员(主要是jsp程序员+美工);
6)前台测试技术人员;
在实际的实施过程中,后台服务器实施技术人员可以充当后台组件测试人员的脚色,同样,前台用户界面程序员可以充当前台测试技术人员,因为他的页面中所包含的逻辑比较少。
总结一下,关键的几点:
1、商务逻辑一定要划分的非常合理,原则是一个组件中应该只含有一种商务逻辑,一般的商务逻辑应该是通过几个组件的协同合作来实现的(如何划分,如何组合就是看系统分析员的功底了!)
2、分工一定要明确,除了上面所列出的脚色充当之外,尽量避免前台程序员与后台程序员的脚色互换,否则很可能造成商务逻辑组件之间的耦合,而这是绝对不允许的,否则随着开发过程的进行,就会发现越来越难以控制应用的开发。所以在开发过程中一定要注意组件的商务逻辑的独立性与唯一性,系统分析员和项目负责人一定要严格把关,这一点非常非常重要。
四、国内CRM系统目前存在的问题以及采用J2EE技术进行的解决方案
我们研究过国内几家CRM系统,学习到很多的东西,但同时也发现一些问题,现在举几个例子:
1、 大而全,但是各个功能做的太过于简单,无法实用。
2、 缺乏集成能力,无法将网页、电邮、电话、传真等集成。
3、 没有与客户的互动渠道。
就这三个原因,是因为在整个的设计上偏离了以客户为中心的原则,没有将客户的需求详细、完整的划分成个体的、独立的功能组件,没有将各个功能做成是以客户为核心的插件,再加上如开发成本的压力等。而如果是采用J2EE,并且严格的按照合理划分的组件的方式来进行开发,就会解决或者避免或者减轻这些问题。比如,在开发完销售模块与服务模块的组件之后,电子商务模块基本上也就完成,只需要少许的其它组件就可以完成一个电子商务模块。(
查看本文来源如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者