之四 方程BCP优劣谈
作者:方平
由于平台系统的设计门槛高,需要同时精通业务和技术,并需要非常强的创新精神,不是仅仅有资金和懂技术即可实现出来。同时其最终成熟需要相当长的周期,需要多版本的迭代升级和完善。SAP 据称投入了2200个人,作了好几年才开发出Netweaver, 且其完善还需要经过实践检验。这是目前国内外其它平台公司尚不多和产品不够完善的主要原因。据悉,国外的业务开发平台目前仅有SAP和Oracle推出,而且还不是真正意义上的业务开发平台。反观国内,有很多公司在从事这方面的研究,其水平在全球处于领先位置。
方程的业务开发框架-方程BCP目前投入实用已经有8年的历史,就已经问世的产品而言,目前处于相对领先位置。这里我们可以通过对比分析一下方程BCP的优势和不足的地方。
从本专题之三,我们总结了一个规律,好的平台必须设计为开放、易用性高、高内聚低耦合,完全的对象化。BCP就是基于这一思想进行设计的。总体而言,方程BCP有以下优势:
1. 开放性的插件设计思想。
除简单的加载内核外,完全采用高扩展性的插件技术实现,并提出类似病毒自我复制和变异的“插件智能繁殖”思想,最大程度实现应用级功能的扩展性;
以往的插件技术中,插件往往是相互平行的。新的需求往往需要编写新的插件,导致插件的重用性不高。本项目首次提出并应用了“插件智能繁殖”理论,实现了如下功能:
a.新的插件可以在原插件基础上扩展,类似插件继承的概念,而不需要重写整个插件;
b.插件可以按一定规则相互组合形成新的插件,类似神经网络的概念。
另外,本项目为首次将插件技术应用于业务开发框架,可以在没有源代码的情况下根据插件编写规范扩展平台的功能,其功能同原厂商提供的功能完全一致。目前市场上的同类产品,功能扩展一般需要在源代码基础上重新修改编译,既不便于自身的产品和功能升级,也不便于开放给合作伙伴或客户作二次扩展;
2. 易用性。
整个开发过程类似Word排版和属性设定,具备傻瓜化的易用性(普通办公自动化人员可在一天内掌握);
目前的中间件产品在注重产品功能的同时并没有很好的关注系统的用户友好度,一般只有专业的技术人员才能掌握,导致应用范围狭窄、市场推广速度慢、学习曲线高、远离最终用户等一系列问题。其结果是整个中间件市场不温不火,价格昂贵。除极少数已形成技术标准的厂家外(如Bea的Weblogic是J2EE平台几乎必备的应用服务器),90%以上的中间件厂商规模小,销售收入低,很难投入大量人力物力进行产品更新。
本项目把框架的易用性放在设计中的首位,以所见即所得(WYSIWYG)的方式进行应用软件的设计,用户可以以类似Word排版的方式设计表单、工作流、业务规则(BPM)、报表等应用功能。用户还可以通过简单的向导功能设计非常专业的应用功能,真正做到每个具备基本办公自动化能力的人能根据自己的需求设计自己的软件。
1)、 创造性的将物理缓冲池的概念应用于管理系统,大幅度提升了应用中检索、更新和插入操作的性能;
2)、 引入Java 虚拟机技术中的Hotspot设计理念,系统能智能对事件和事务进行学习和分析,进一步实现系统的调优;
3)、 系统贯穿ADD(Active Data Dictionary,活动数据字典)的思想和应用,使应用程序同持久化存储之间充分解耦,同目前流行的O/R Mapping(对象/关系数据库映射,Object-relational mapping )有异曲同工之妙。
4)、 定制比例低。本项目相比同类产品,99%以上无源代码开发,复用性更高,扩展性更好,并使100%无源代码开发成为可能。
5)、 自主设计轻量级消息队列引擎,解决了目前重量级商品化队列引擎(如MSMQ)错误难跟踪,应用复杂,容易出故障的问题;同时,应用该消息队列引擎,在软件中(而不依赖于当前的多层结构)实现了事务处理负载均衡的问题。
考虑到商用或现有的消息队列引擎(如微软免费的MSMQ)错误难跟踪,应用复杂,故障率高,成本高(如IBM的MQ需要单独购买,价格昂贵),本项目自主设计了一套轻量级消息队列引擎,包含消息格式设计、消息的创立和销毁、消息的管理、错误处理、消息的优先级等主要功能,主要用于对实时性要求不高的商用逻辑(如入帐、结转、盘点、单据流转等)的异步处理,是一种技术上的创新。更进一步,本项目在用户事务量很大的时候,可以对消息进行切割,分布,以实现事务的分布并行处理,把事务处理的单线程分解为多线程,多层次,有别于传统的J2EE、DNA、CORBA等分层处理机制,是一种结构上的创新。这种分层、分布处理机制赋予用户根据事务频率、各服务器性能进行事务分配的能力,增强了用户的控制能力。
6)、 在系统中直接实现了数据库大并发量的分布式处理问题。目前的数据库负载均衡一般需要依赖于数据库本身的功能(如Oracle的RAC技术),需要特殊硬件和软件支持,配置复杂。常用的数据库系统如SQL Server 2005或MySQL等,目前还无法有效解决数据库应用的负载均衡问题。(SQL Server有联合服务器的概念,对应用程序的编写有特殊的要求)
本节1)部分的方法解决了异步事务处理的性能问题和事务对应数据库处理的性能问题,但没有解决实时事务处理的性能问题和事务对应数据库处理的性能问题。本项目使用了基准服务器的概念,即应用关联数据一般位于一台主服务器上,而把并发量、数据量大的事务处理和并发单据操作(如订单、出库单、销售日报等)分布到多台服务器上(可通过我们提供的分布管理工具进行分布迁移)。这种方式,插入、更新等耗费系统资源的操作全部分布到本地服务器上,而对基准服务器采取只读方式,结合索引等方式,可以满足极大并发操作的性能要求。
目前的技术水平已经很好的解决了Web和应用服务器的性能问题,但在解决数据库的瓶颈问题上,只有Oracle的RAC(Real Application Clusters,真正应用集群)为比较好的解决方案,但对硬件要求很高(一般需求光纤阵列柜),配置比较复杂,其它数据库的解决方案往往对应用不透明,需要应用在设计上进行配合。本项目的多项设计和创新(缓冲池、智能学习机制、分布处理)将使建设在其上的应用不依赖于第三方产品或框架实现高性能应用系统。
上面说到方程BCP基于对业务的深厚积累,有很多创新性的设计和实现。当然BCP目前也存在一些不足:
1. 目前只支持SQL Server和Oracle两种数据库,如需要支持其它数据库,则有部分程序和配置需要作调整;
2. 目前的插件还不够丰富,更擅长于实现ERP、DRP、SCM、CRM、HR类系统,OA中涉及一些特殊的插件,如电子签章、痕迹保留等,实现这些功能还有待完善;包括电子商务的一些功能还没有实际案例检验;
3. 商业智能目前基于微软的AS平台开发,需要有SQL Server许可。(目前很多中底端的BI工具,如国内的明基逐鹿、极光商智等公司,全部基于AS平台实现)
4. 可视化工具离我们的目标:让普通用户设计管理系统,还有一段距离。目前的易用程度是用户可以配置简单的表单、后台和报表。复杂的应用程序仍旧需要我们的实施工程师完成。不过专业的BCP Studio工具已经可满足网络管理员水平的人员经过1-2天的快速培训,进行专业配置。
总之,经过近8年的实际应用和完善,方程BCP已经达到完全实用的程度,其在应用和技术方面的结合趋向完美。其实现常见的页面、逻辑、报表,目前的效率已经作到不超过30分钟,整体开发效率相对于传统开发,提升几十倍。相信随着其不断完善和商品化程度、易用性的不断提高,它必将脱颖而出,成为改变软件开发模式的划时代产品和革命性产品,让软件产业重新腾飞。
如有兴趣了解更多详情,敬请来函(market@51drp.com)或填写合作伙伴加盟申请表,我们会向您提供更多帮助。
方程声明:本版文章内容纯属作者个人观点,仅供用户和专业人员参考和讨论,不代表方程同意其观点或描述。如需转载,请注明出处。
|