OFBiz 二次开发

此次对开源电子商务软件Apache OFBiz的二次开发实践证明,以这种模式构建的电子商务软件平台同样能满足当前甚至未来的电子商务应用需求。

首先,研究过Apache OFBiz的人都会被其成熟、领先的开发思想和技术所吸引。Apache OFBiz完全具备大型复杂的电子商务平台的框架特性,必将成为未来优秀的电子商务解决方案。

另一方面,使用Apache OFBiz的框架和组件,可以大大缩短开发企业级WEB应用系统的进度和成本。当然,前提是要有扎实的编程基础和敏感的技术嗅觉,因为这个项目涉及的技术范畴十分广。要想完全透彻地理解,并熟练地应用到实际中去,确实需要大量的努力和研究。

当前,国内的企业电子商务应用水平参差不齐,缺乏成熟的电子商务软件平台是其中一个重要原因。从开发成本的角度看,国内大多数企业,特别是对电子商务需求正不断增长的中小型企业难以负担得起成熟软件平台的开发及维护费用。开源提供了另外一种可能的解决方案。

只要对Apache OFBiz研究透彻,既可以吸收开源软件公开的优秀技术,又能在其框架上开发、定制所需的应用模块,无论从技术更新还是投入成本讲,Apache OFBiz不失为一种即经济又有效的电子商务解决方案。

在文献资料方面,由于OFBiz的中文官方站点还没有开通,网络上并没有相关的中文权威资料库。虽然国内也有不少人开始研究OFBiz,研究心得之类的文献资源较零散。OFBiz的英文技术文档大部分可以从其英文官方网站获取,从这一点来看,多数开源项目由国外发起,因此一定的英文材料阅读能力是必需的。

OFBiz基于大型电子商务应用构建,因此涉及的开发技术相当多,系统结构也十分复杂。对技术的学习能力和合理选择研究方向是对这个项目进行二次开发的关键前提。OFBiz是由世界各地的技术高手共同维护的项目,一个人并不可能完全掌握其中所有技术要点。

研究开源软件的意义,并不只在于学习新技术,从更高层次的角度考虑,我国软件行业如果能在基于开源软件的基础上加在投入的话,就有机会从本质上提升我国软件产业的研发能力,缩小和发达国家软件巨头之间的差距。

Apache OFBiz 主要使用 Java 开发。官方将其定义为基于 Java 的企业应用框架和 ERP 系统。

用途 技术/语言
核心框架、复杂业务逻辑 Java
服务和业务脚本 Groovy、Java
实体与数据库模型 XML
服务定义、页面流程、组件配置 XML
页面模板 FreeMarker(FTL)
前端交互 HTML、CSS、JavaScript
数据库访问 OFBiz Entity Engine,通常不直接大量编写 SQL
构建工具 Gradle

典型的 OFBiz 组件目录可能类似:

mycomponent/
├── src/main/java/          # Java 代码
├── groovyScripts/          # Groovy 服务脚本
├── entitydef/
│   └── entitymodel.xml     # 数据库实体定义
├── servicedef/
│   └── services.xml        # 服务定义
├── webapp/
│   ├── WEB-INF/controller.xml
│   └── templates/*.ftl     # FreeMarker 页面
└── widget/
    └── *.xml               # 页面、菜单、表单定义