Openbravo ERP架构分析

  作者:北自所
2009/10/15 10:14:04
研究同行业的开源软件,有助于我们掌握其产品架构,了解其设计理念,从而积累软件设计经验,以应用到自己的产品开发中。

本文关键字: ERP Openbravo 开源ERP系统

2、 编译系统结构

2.1 概述

得益于Openbravo 较为完善的编译系统,他的一个主要的优点就是其开发速度快,能后迅速的开发出一个应用程序。

主要开发过程如下:

1. 在数据库中生成表

2. 在Openbravo中定义表和字段

3. 在Openbravo中定义windows,tab

4. 编译window

这样一个具有前端显示和后台业务数据结构的程序就生成了。

2.2 编译过程

编译任务由Ant任务compile.development完成。主要有以下几个子任务构成。(参见/src/build.xml)

图 3.1主要Ant任务流程

图 3.1主要Ant任务流程

2.2.1 generate.entities任务

generate.entities的任务主要是检查更新的数据字典,在ModelProvider中实例化org.openbravo.base.model包中的类型,以提供给系统的其他部分使用。

图 3.2任务中的类的主要关系

图 3.2任务中的类的主要关系

2.2.2 wad任务

Wad任务的主要工作使用org.openbravo.wad包中的Wad类来完成任务。Wad根据传入的参数,读取数据库信息生成代码,如:

  • 按钮控件配置
  • 配置web.xml。

和针对windows的每个标签页生成:

  • 含有sql操作的xsql。
  • 控制器Java源文件。
  • 配置参数和数据域的xml文件。

2.2.3 sqlc任务

将含有sql操作的xml编译成Java源文件,对应业务层中的负责执行SQL的类。

2.2.4 translate任务

根据一些信息,如程序所注册的模块,对数据进行必要的转换。完成之后所有运行时需要的文件都已经生成,重启服务器就可以看到新开发的页面了。

3、 评述

OpenbravoERP的体系结构并不算复杂,自成一体。

软件结构表现层,控制器,和业务层较为清晰。表现层xmlEngine的设计很有独到之处。应用数据字典和编译系统的设计为程序的开发和定制提供了全面的支持,使得开发者几乎不需要手工编写代码就可以自己开发程序。

当然,运行时的三层体系结构还是略显单薄,业务层和持久层的耦合紧密。所以其体系结构对代码重用及模块复用的支持有限,更多的是依靠其较为完备的应用数据字典的定义来生成使用的代码。换句话说,主要是利用引擎生成部分相似的代码的方式来解决复用问题。

Openbravo组织意识到了这种方式的不足,也在逐渐的做出改变,在2.5版本中我们见到了一些OR-Mapping的设计,更多信息可以参考最新的产品白皮书。

共2页: [1]2 下一页
责编:张赛静
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918