ofbiz( http://sourceforge.net/projects/ofbiz/ ) 是Open For Business的简称。ofbiz是一个基于J2EE标准的开源企业应用工具。
由于 framework 的开发情况非常好, 使ofbiz目前已具有了一个非常优秀的 framework. 业务模块的开发已进行了一段时间. 目前正在开发的业务模块包括 e-Commerce,Catalog,Party,Order,Work Effort, 计划开发的业务模块还包括 Financials, Sales Force Automation, Marketing Automation, Service & Call Center, HR & Payroll, Inventory & Warehouse, Shipping & Delivery, Manufacturing.
ofbiz 的 commonapp 包已提供了接近 500 个业务对象, 这些业务对象是通过 XML 格式进行的建模, 涉及到 Common, Accounting, Human Resource, Order, Party, Product, Shipment, Work Effort, Workflow等领域.
ofbiz 广泛遵循了现有的标准, 包括XML,SOAP,HTML,Java,J2EE,RuleML,WfMC,BPML,ECCMA/UNSPSC,ebXML,GAAP/FASB,OMG,ArapXML,qbXML等.
通过 XML 这种自然语言来定义过程,规则,和数据.
两大核心组件(Service Engine和Entity Engine)使obfiz的framework成为目前最有效和易用的 framework, 给企业应用系统的开发带来了极大的方便.
通过 Workflow Engine 和 Message Flow Engine 来管理业务过程.
能通过 SOAP, RMI, EJB Session Bean 等技术来调用 Service Engine 提供的服务, 这使得多年来业界为之努力的业务与技术的分离梦想成真.
Entity Engine 提供了简单有效的数据建模方式, 通过简单的XML文件来描述实体, 不需要写任何代码就能实现实体的创建,存储,删除,查找,排序, 再也不需要编写和维护数据持久化代码, 通过 JDBC 支持任意种类的数据库.
目前的一些持久化技术, 例如 JDO, CMP Entity EJB, JDBC DAO, Embedded JDBC等, 都未能较好地解决数据持久化问题, 或则即使解决了, 也极大地降底了程序的可维护性. 而 obfiz 的 Entity Engine 在这一点上就做得非常好, 对实体的维护非常方便, 只需要维护 XML 表述的实体模型文件就全部搞定了.
我们知道一般的对象持久化技术(或称为O-R Map技术)首先需要编写数据库的建表脚本进行建表, 然后编写有大量累赘的get/set方法的实体对象, 然后编写 O-R Map 配置文件..., 如果对象模型需要修改, 则又...
ofbiz 的持久化技术的最主要的亮点在于极大地减轻了程序的维护工作量. ofbiz 的业务实体是通过 XML 进行建模, 实体模型的定义在 $OFBIZ_HOME/commonapp/entitydev/ 目录下. 有了实体模型后, 不需要编写任何 SQL 脚本, entity engine 将自动建立数据库表和纪录, 也不需要编写任何实体代码. 当需要对实体做修改时, 只需修改实体模型就行了, entity engine 会自动对数据库进行检查, 也不需要对实体代码进行任何修改, 因为根本就没有实体代码. 可以看看 ecommerce 包, 看看 ecommerce 是怎样应用 entity engine 来进行实体对象的增删改.
http://timesnet.blogchina.com/3325144.html
Ofbiz概况
OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。
OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。
系统组成与层次结构
几大引擎
实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等;
其中所有最底层的是实体引擎和服务引擎,工作流引擎是基于这两个引擎之上的。
几大应用
下面按应用名称和目录进行排列:
内容管理 content
用户管理 PartyMgr
市场管理 Marketing
编目管理 catalog
设备管理 facility
订单管理 ordermgr(使用了工作流引擎)
帐户管理 accounting
人力资源管理 workeffort
系统管理 webtools
工作流模块特点分析
根据ofbiz开发者在网上的反馈,ofbiz的工作流引擎能满足大多数的用户提出的功能需求;性能也不错。但它的用户群主要来自其他模块。
根据研究和代码分析,ofbiz的代码比较复杂。因为对于想用 ofbiz来开发工作流的开发者来说,它不仅仅是一个纯工作流引擎,它还是一个开发平台和工具集,它的各个模块交叉较多(比如启动流程不是调用工作流引擎的接口,而是调用entity engine和service engine的接口),代码量大。
复杂性的另一个表现是ofbiz的呈现层使用了大量自己定义的TagLib,业务逻辑层的采用自己独立的页面流转控制逻辑,持久层用实体引擎来实现,都不是采用通用的方法。
完整版数据库有500多张表,limit版(自己搭建的用于工作流的版本)数据库有170多张表。
ofbiz的工作流引擎已经有用户使用,而且其他模块已经在很多行业投入应用;但它的工作流引擎还是处于阿尔法版本。