OFBIZ研究心得之三

时间:2022-06-17 14:20:03
2.1   Apache OFBiz概述
2.1.1   Apache License许可证
OFBiz目前得到Apache License(Version 2.0)——开源软件最灵活的许可证之一。该许可证授予您*使用任何期望的技术、构建派生的作品进行发行、然后将代码贡献回社区[5]。详细证书内容可以查看http://www.apache.org/licenses/LICENSE-2.0。
与其他许可证相比,Apache License的*在于它强调使用源代码的人不需要公开自己的源代码(修改后的源代码),在这种情况下,不管是编程爱好者还是商业公司,从免费获取OFBiz的源代码开始,就可以*地定制自己所想要的OFBiz,而这并不需要向任何一家公司支付所谓的专利费用。
2.1.2   Apache OFBiz功能模块
Apache OFBiz提供大量功能模块,包括有:
(1)  高级电子商务;
(2)  目录管理;
(3)  促销及定价管理;
(4)  定单管理(销售与供应);
(5)  客户管理;
(6)  仓库管理;
(7)  工作流程;
(8)  账户管理;
(9)  生产管理;
(10)   绩效管理;
(11)   内容管理。
虽然当中的某些模块还不太完善,但总体上来看,Apache OFBiz的目标是提供一个能应用于企业信息化的一个成熟的软件框架。
2.1.3   完善的实体引擎
OFBiz的核心技术在于实体引擎Entity Engine。OFBiz实体引擎提供了一组工具和设计模式来对现实世界中特定的实体(数据对象)进行建模和管理[6]。简言之,实体引擎的主要功能是将数据库表创建、对象与数据表的映射、对象的查询等强大的封装,这样就可以在一个简单的XML文件中定义数据库表结构,OFBiz会自动在数据库中建表,并动态生成映射对象,开发者在程序中可以只考虑对对象的处理,OFBiz会自动通过事务逻辑更新到数据库中。
实体引擎的目标是简化企业级应用中对实体数据(对应关系型数据库表)的大量操作,包括定义、维护、通用操作(增、删、改、查实体和实体之间的关系)的开发工作。
2.1.4   扩展性和可移植性
OFBiz提供一个基于纯Java应用程序的系统框架,在具体实现中大量采用了各种设计系统模式,完全符合面向对象的设计原则中绝大部分要求,除采用J2EE核心设计模式、数据库设计模式外,在实现代码中大量引入Java设计,成为系统扩展性和可移植性的基础。
OFBiz目前兼容Weblogic,Tomcat,Jboss,Resin,Orion等厂商的应用服务器,兼容Oracle,MySQL,Sybase,PostgreSQL,Hsql等数据库产品,可以在Unix和Windows两大操作系统上进行开发和测试,具备Java应用系统的所有跨平台特点[7]。
2.1.5   开源社区支持
开源软件的参与者一般是高热情的志愿者,他们出于兴趣而不是具体的报酬参与其中,*地贡献各方面的技术和想法,帮助发现潜在的错误,复用已有的代码,避免不必要的重复开发[3]。
Apache OFBiz显然也继承了开源软件这一共性。Apache 组织专门为OFBiz建立的网上社区为爱好者们提供了良好的信息交流平台。来自众多专家和支持者的观点及更新为OFBiz的发展增添了无尽的生命力。
2.2   相关技术及标准
OFBiz的框架中引入了当前最先进的主流开发Web应用系统构建技术,正是有这些技术的支撑,整个系统在原来的基础上不断被重构和修订,也吸引了众多对最新技术敏感的编程爱好者。
与OFBiz相关的开源项目有 : FreeMarker 、BeanShell 、Tomcat、 Jetty 、JOTM 、XAPool 、Javolution 、JPublish、 DataVision、 JasperReports、 WEKA、 Xerces、 Xalan 、Axis、 FOP、 Batik、Ant、 BSF 、Commons 、Log4J、 Lucene 、ORO 、POI、 OpenJMS 、PostgreSQL 、MySQL、MaxDB by MySQL、 Hypersonic SQL Derby等 。
与OFBiz相关的技术标准有:XML 、SOAP、 HTML 、Java、J2EE、 RuleML、XPDL、BPML、UNSPSC 、ebXML 、FASB 、Workflow、GL & Party 、Product 、qbXML、 OAGIS 、UBL等 。
2.3   二次开发方法论
Apache创始人Brian Behlendorf先生曾总结开源项目开发方法论最重要的特点是:“它的组织者不是‘管理’开发者,而是‘带领’他们充分发挥开发者的主观能动性”[10]。
开源软件的二次开发方法也因为这个特点与众不同。首先,以最*的方式修改现有模块,甚至突破原有框架扩展功能;第二,免费得到最新技术支持,这要得益于开源社区的贡献;第三,没有固定不变的开发模式,完全由用户需求决定,大大节省成本。