ofbiz框架以及核心原理介绍

转载 2015年11月19日 22:29:30

1. 什么是Ofbiz

OfbizOpen for business)是一个开源的,基于J2EEXML规范的,用于构建大型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架(Framework)。

Ofbiz几乎实现了所有的J2EE核心设计模式,各个模块之间的耦合比较松散,用户能够比较容易的根据自己的需要进行拆卸。

Ofbiz内置了许多其它开源项目,如JBossPostgreSQLMySQLApacheJettyJOTMJpublishBeanShellAntBSFLog4J,等,提供了相对成本比较低的解决方案。同时,用户也可以比容易的更换成其他组件,如将Jboss&&Tomcat换成Bea Weblogic或者IBM Websphere

2. Ofbiz的好处

l 缩短开发周期,降低成本

据称,很多基于J2EE的失败实践,都可以归结于拙劣的设计。J2EE规范并不复杂,但是如何遵照J2EE规范,根据自己的业务需求,做一个合适的、高效的、可扩展的设计,是需要实际经验和智慧的。国外的大中型系统基于J2EE的早就很多了,国内近几年也多了起来,但是优秀的设计人员不是很多。

Ofbiz的价值在于它的架构非常好,不仅用到了几乎所有的J2EE核心设计模式(Sun公司推荐的),而且还实现了工作流、业务规则引擎,以处理灵活的与变更。这样,就避免了缺少优秀设计人员所造成的拙劣设计。

基于Ofbiz开发,无疑会缩短开发周期,好的设计以及工作流和业务规则引擎的引入,也最大程度的降低了系统的维护成本。

l 用很少的 Code 完成复杂的处理

这是Ofbiz 宣称的优点之一。如果把Ofbiz消化了,则基于Ofbiz开发一个CRMERP系统会大大缩短开发周期,由于Ofbiz优良的设计,维护的成本应该比较小。

Ofbiz 已经完成了大部分业务类软件系统都需要的部件,像用户认证、工作流、业务规则处理等,很多业务需求都可以通过写XML配置文件,以及很少的java代码来完成。代码量不大,但知道怎么写会比较费时。弄懂Ofbiz以后,写实现代码通常会比较简单,只需要按照它的开发机制度就是了。

l 扩展性和移植性好

OFBIZ所提供的系统框架,是一个纯Java的应用程序。框架提供的接口十分的完备,例如核心部件实体引擎,早期版本就有,已经十分的成熟。通过实体引擎,用户不用直接操纵数据库,建立库表、查询、视图、触发器等都可以通过写XML配置文件来完成。也有人提出,实体引擎不能够处理复杂的SQL查询,实际上,一方面这种复杂的SQL查询很少遇到,另一方面实体引擎也同样允许你用SQL代码来操纵这种复杂的查询。

OFBIZ开发者同时维护和Weblogic,Tomcat,Jboss,Resin,Orion等16个厂商的Web和App应用服务器的兼容版本.

OFBIZ开发者同时维护和Oracle,MySql,Sybase,PostgreSQL,Hsql等数据库产品的兼容支持,包括编译、打包、部署到这些数据库产品或应用服务器产品的运行环境下。

OFBIZ开发者同时在Unix和Windows两大操作系统上进行开发和测试,而且具备Java应用系统的所有跨平台的特点。

有了这些,对于大型企业级应用系统的具体、特定实现来说,你有信心实现所谓的“一次开发,到处运行”。

l 没有版权问题

免费的,可以用于商业目的,可以分发。

3. OfbizMVC 模式实现

Ofbiz最大的价值,也许就是它不仅仅是一个技术框架,更是一个实现企业应用得很好的业务框架。它的MVC模式不仅仅是Web层,而是贯穿于业务层和数据层,每一层都有出色的控制器。

 数据层的控制器 (Entity Engine)

实体引擎是Ofbiz最有价值、最核心的、也是最稳定的一个数据层控制器,通过它基本不用编码或很少编码就可以访问数据层。Ofbiz提供了用XML些配置文件的方法来操纵数据。

实体引擎的功能类似于CICS、实体EJB、以及其他O-R Mapper。但是,Ofbiz的实体引擎不仅强大、而且灵活,程序员不需要JDBC知识,不用写SQL代码。基本上,实体引擎的封装能够解决绝大部分的数据库操作,同时,也提供了给你写SQL代码,实现复杂SQL查询的空间。

实体引擎采用了不少核心J2EE设计模式,如值对象、代表、助手等模式,用户的API接口比较友好。

 逻辑层的控制器 (Service Engine)

服务引擎是Ofbiz的另一个核心组件。Ofbiz只有这两个核心组件。实体引擎代表业务数据,而服务引擎代表了业务逻辑。

引入服务引擎的另一个价值是,它使得Ofbiz业务框架不限于Web应用。非Web的客户端包括java 应用、EJB、甚至SOAP都可以直接调用,这样,框架的可扩展性非常好。

服务引擎的服务可以分为同步、异步(关心还是忽略结果),支持JMS。具体实现方式可以是一个java 静态方法、工作流、Bean Shell脚本等。如下图:




 Web层控制器 (Control Servlet, JPublish, etc)

Web层控制器的核心是Control Servlet。和Struts一样,Web层的流控制器的配置文件也是一个XML文件。





串讲Apache OFBiz技术架构

以图代文,串讲Apache OFBiz技术架构。
  • yanghua_kobe
  • yanghua_kobe
  • 2015年02月17日 22:32
  • 10136

ofbiz框架入门例子详解(首篇)-------插入篇

ofbiz入门例子
  • diyagea
  • diyagea
  • 2015年12月02日 16:52
  • 5001

ofbiz框架以及核心原理介绍

1. 什么是Ofbiz Ofbiz(Open for business)是一个开源的,基于J2EE和XML规范的,用于构建大型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用...
  • LevelO
  • LevelO
  • 2017年01月23日 15:34
  • 457

唯一插件化Replugin源码及原理深度剖析--初始化之框架核心

提示:请不要忽略代码注释,由于通畅上下逻辑思维,不太重要的部分跳转代码不会全部进去一行行的看,但是会将注释写出来,所以请务必不要忽略注释,而且最好是 跟着文章一起看源码。一、Replugin的初始化...
  • yulong0809
  • yulong0809
  • 2017年11月02日 15:51
  • 980

SSH框架---核心原理(一)

在我前面的文章中,也试图总结过SSH,见http://blog.csdn.net/shan9liang/article/details/8803989,随着知识的积累,总感觉以前说得比较笼统,思路不够...
  • yuexianchang
  • yuexianchang
  • 2016年11月25日 09:08
  • 264

Struts框架核心工作流程与原理

Struts框架核心工作流程与原理 1、Struts2架构图    这是Struts2官方站点提供的Struts 2 的整体结构。     ...
  • duchao123duchao
  • duchao123duchao
  • 2015年08月01日 13:26
  • 253

SSH框架---核心原理(二)

Hibernate是一个开放源代码的ORM(对象-关系映射)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任...
  • yuexianchang
  • yuexianchang
  • 2016年11月25日 09:09
  • 629

Android核心分析(23)-----Andoird GDI之基本原理及其总体框架

Android GDI基本框架     在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了。但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理。 ...
  • hong19860320
  • hong19860320
  • 2011年11月17日 10:13
  • 577

Spring框架的AOP/IOC/容器核心原理实例详解

Spring框架主要可以分为3个核心内容: 1)容器 2)控制反转(IoC ,Inversion ofControl) 3)面向切面编程(AOP ,As...
  • xiu2016
  • xiu2016
  • 2016年10月13日 23:27
  • 916

mybatis框架(六)——核心技术与原理

引言 概述 内容 总结
  • u013045868
  • u013045868
  • 2017年04月10日 21:32
  • 251
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ofbiz框架以及核心原理介绍
举报原因:
原因补充:

(最多只允许输入30个字)