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文件。





相关文章推荐

ofbiz框架入门例子详解-------分页篇

利用ofbiz分页展示数据 编写service类 public static Map showUsersByPage(DispatchContext ctx, Map contex...

用Kubernetes部署超级账本Fabric的区块链即服务

本文将探讨如何把 Fabric v1.0自动化部署在现今最流行的 Kubernetes 容器平台上,从而实现对分布式区块链平台的管理和监控等功能。

SQL处理库存与销售,先进先出原则

--库存表create table t(id int identity(1,1),name varchar(50),--商品名称j int, --入库数量c int,        --...

ApacheOFBiz的相关介绍以及使用总结(一)

由于最近一段时间在给一个创业的公司做客户关系管理CRM系统,限于人力要求(其实是没有多少人力),只能看能否有稳定,开源的半成品进行改造,而且最好不需要前端(js)相关开发人员的支援就可以把事情做成,经...

串讲Apache OFBiz技术架构

以图代文,串讲Apache OFBiz技术架构。

网站调用在线二维码生成 api

手机使用二维码确实十分方便,下面就是icech整理的二维码在线生成器网站地址大全。 谷歌图表 api http://code.google.com/intl/zh-CN/apis/chart/...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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