| 2005年底,程序员的眼球迅速被网络上传播的一种叫Ajax的技术所吸引,不少新的开发平台也迅速宣称支持Ajax技术。其实XToolsCRM早在2004年就开始全面应用Ajax技术了,尽管当时Ajax技术尚未发布。 1. 何为Ajax技术 AJAX(Asynchronous JavaScript and XML)是结合了Java技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。AJAX是使用客户端脚本与Web服务器交换数据的Web应用开发方法,可以肯定的说AJAX将成为Web开发的重要武器。 简单说:就是使用Ajax技术,在用户使用B/S软件的时候实现局部页面刷新,让用户象使用C/S软件一样舒服、流畅的使用B/S软件。比如:
1.1. 后台数据提交后局部刷新样例:进行一个数据检索 在客户查询框中输入客户名称后提交,客户的基本信息的列表就会展现出查询结果,但是整个页面并没有刷新,整个过程平稳,流畅。  1.2. WEB控件集成样例:客户管理界面  1.3. 层提交功能样例:添加日程  第一步:点击日程的“新建”,系统就会如第二步一样显示出<Div>层,可以填写日程信息,在填写日程信息的时候,选择完客户,系统会利用Ajax技术自动获取该客户的联系人,显示在联系人字段的下拉框中;当日程数据输入完后,点击“保存”按钮,此时输入层消失,该页面的日程部分自动更新,但是页面的其他区域不动。 可以看到这种技术能够大幅度提高用户的易用性和人机界面的友好性。 2. XToolsCRM与Ajax技术发展相关记要 | 2004年5月 | 为了全面适合“租用型”产品的需求,XToolsCRM开始开发基于Ajax模式的构架平台,基础要求是局部刷新页面 | | 2004年6月 | Google推出Gmail,广泛应用局部刷新技术 | | 2004年9月 | XToolsCRM构架平台开发完成,开始产品设计 | | 2004-12-2 | XToolsCRM计算机软件著作权登记(软著登字号第031767号) | | 2004-12-15 | XToolsCRM 正式发布 | | 2005-2-18 | 一位叫做杰西•詹姆斯•加勒特(Jesse James Garrett)的美国人研究用户界面的Adaptive Path公司发表了一篇题为《Ajax:一个Web应用的新途径》的论文,正式提出Ajax | | 2005-4-18 | XToolsCRM发布2.0版本 | | 2005年5月 | Google公司就使用Ajax创建了一个类似桌面应用程序的Web程序,这引起了巨大的轰动 | | 2005年9月 | 网易邮箱开始推出采用Ajax技术的“极速模式”,优良的人机界面得到广泛好评。 | | 2005年10月后 | 各大厂商包括IBM,微软等都宣称支持Ajax以及推出相应的软件包 | 3. XToolsCRM为什么使用这项技术 首先,我们来看一下Ajax的优点: - 减轻服务器的负担。因为Ajax的根本理念是“按需取数据”,所以最大可能在减少了冗余请求和响影对服务器造成的负担;
- 无刷新更新页面,减少用户实际和心理等待时间;
- 更好的人机界面和操作感觉;
- 也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成本;
- 基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序;
- Ajax使WEB中的界面与应用分离(也可以说是数据与模板分离);
- Ajax技术是BS软件系统更像软件而不像网页。
可以看到,所有的一切都是为“租用型”产品设计的,因为“租用型”产品最先考虑的就是服务器低负载和人机界面的友好性。毫无疑问,作为“中文地区月租型CRM第一品牌”的XToolsCRM当然要选择这项技术。 XToolsCRM所采用的技术与Jesse James Garrett提出的Ajax 技术并不完全相同,毕竟XToolsCRM设计底层构架时要早于Ajax的提出,但是我们所关注的是设计思想和趋势。 4. XToolsCRM平台实现方式 4.1. 整体设计 XToolsCRM在设计上直接考虑了运营模式,这也是很多程序人员忽略的问题,就是程序在设计期间并没有考虑到实际的商业运作逻辑,导致产品的设计失败。让我们来分析一下: - XToolsCRM是以“月租型”为主要运营的模式,即用户按期缴纳服务费的模式运营,用户不需要自己购置服务器,即可享受专业的CRM客户管理系统的应用
- 月租型的模式,要求我们在一台服务器上尽可能的减少负载,达到在不影响客户使用速度上的最大客户数量,以减少运营商的成本。
- 系统必须足够的稳定、安全。
为此,选择linux平台,web Server选择apache,在中间件上选择了自行开发的支持Ajax和WEB控件的平台,在数据库上选择了效率最高的mysql,实际上所有的要求都要看这个自行设计的中间件是否能够满足实际需求。 下图是整个系统的逻辑图:  在整个系统中,在浏览器的前台,使用JavaScript控制着由前台操作带来的“前台事件”控制机制,用于和后台系统进行通讯。在中间件层,系统不光处理了由前台事件传递来的“前台事件”而且还处理了“WEB控件”的后台事件。 4.2. 中间件层 这是整个系统核心,对于一个很复杂的业务逻辑我们可以将其定义成相应的操作视图,比如在XToolsCRM中的客户视图。在该视图中,将客户所使用的全部信息展现出来,但是所对应的每一块数据都是采用WEB控件来实现的,也就是说,每一个WEB控件都可以指定相应的数据源,显示不同的数据,而此时,WEB控件又可以利用Ajax技术进行操作,比如某个数据块:可以在数据块上直接编辑某条数据或者添加、删除数据,同时前台事件还可以引发其他控件的后台事件,从而使整个页面展现前所未有的活力。 WEB控件分为很多,常用的有: | 控件名称 | 说明 | | 数据库列表控件 | 指定数据库,设置一定属性(比如参与列表的字段),就直接可以在页面上显示出统一的数据列表,可以分页显示 | | 数据显示控件 | 显示某条数据库的一个返回数据集,可以定义摸板,有相应的数据操作、关联的数据视图、允许数据的附加附件等等 | | 数据搜索控件 | 针对列表和统计图形考虑 | | 统计图形控件 | 显示可以控制的统计图形 | | 日历控件 | 显示日历,需要这些功能的程序可以直接引用,不需要每个程序都从0写起 | 对于数据的类上,可以封装到:数据的逻辑动作、数据的字段(可以建立不同的逻辑字段封装类,比如日期字段、文本字段、关联字段、多选字段....),数据库的动作操作逻辑,对应相应的处理类。在数据类型上,XtoolsCRM也广泛使用了Ajax技术,比如在选择客户的同时,该客户下面对应的联系人就自动出现在联系人的下拉框中。 4.3. 在Ajax模式上构建新的商业应用-数据隔离引擎 有人说,“数据安全是租用模式的软肋”,这句话明确的描述了信用体制不是很完善的中国特色,因此全面复制外国模式的软件服务模式在中国是行不通的。为此,作为“中文地区月租型CRM第一品牌”的XToolsCRM专门基于Ajax模式构建了数据隔离引擎。 4.3.1. 数据隔离引擎的概念 商业隐私数据隔离模式是XToolsCRM专门研发的一种安全隔离技术。其原理是将用户的核心数据(包括客户的名称、地址、电话以及联系人的地址电话等)通过隔离引擎存放在用户的本地机器上,服务器上只保存与之相关的编号,从而达到客户的商业隐私数据不会保存在服务器上的目的。
4.3.2. XToolsCRM怎样实现数据隔离 在以往的模式中,隔离引擎技术是根本不可能出现的,但是现在,有了Ajax模式,数据在输出到IE浏览器之前,会经过javascript处理,在此我们可以完成数据的二次翻译;而在数据post到服务器时,Ajax模式也是由javascript进行处理的,因此可以由隔离引擎翻译后再post到服务器,因此,应用Ajax模式可以很方便的实现数据隔离引擎。 5.总结 Ajax作为B/S软件的新动向,会在不远的将来给B/S软件带来革命性的变化。关注、研究、探讨这种模式,对国内B/S软件的发展将起到巨大的推动作用。希望XToolsCRM的开发模式能够给国内同行的开发带来新的思路。 |