`
jiasudu1649
  • 浏览: 724609 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ofbiz的架构设计

阅读更多
1.数据层
在数据层中,OFBIZ使用ENTITY ENGINE作为其工具,并且能够满足99%与数据库交互的功能.有时在某些地方Entity Engine并不是有效的.这时就需要编写自定义的JDBC代码来与数据库交互.
2.逻辑层
OFBIZ 使用Service Engine作为调用逻辑的工具.几乎所有的业务逻辑都被实现成服务,以便提高重用和使基于组件的开发更便利.我们可以同步或者异步调用我们的逻辑,甚至 将它们作为一个计划表来按时间调用.当我们调用一个服务时,我们不需要知道该服务的位置或者如何实现.这也就意味着我们可以使用多种语言来实现该服务.例 如Java,BeanShell以及任何BSF编译脚本语言(python,jacl,javascript等等)
我们会一直通过Service Engine调用远端逻辑,可以通过不同机制包括HTTP,SOAP,JMS或者其他的机制,也可以通过创建一个简单的适配器来作为调用远端服务的调用机制.
很明显,我们大多数时间需要在一个事务里包装一些服务,以便服务能够全部成功或者全部失败.
3.显示层
经常分离输入处理逻辑,浏览数据预备层以及浏览显示模板.这样不仅能够在WEB程序中重用逻辑,而且也独立于胖客户端程序.
1)数据处理逻辑
数 据处理逻辑在controller.xml文件应该与请求(request)联系,而不是与视图联系.数据处理逻辑总的来讲被实现为一个服务,并且通过服 务事件句柄调用,服务事件句柄会自动从请求参数(request parameters)或者属性中抽取数据,并将它从字符串类型转化成在服务定义文件所定义的对象类型.
有一些情况是数据处理逻辑不能实现为服务 的.存在多种与请求关联的逻辑的其他类型事件句柄,这些句柄给你更多的请求上下文,但象服务那样不是环境未知的. 其中一个例子是接收上传数据.另一个好的例子是作一些特殊的前置处理和在传给服务处理之前的参数验证.注意到你可以从这些自定义事件中调用服务.
2)浏览数据预备逻辑
浏览数据预备逻辑应该与视图模板联系起来.这个应该通过JPublish在页面定义XML文件定义动作来实现.当一个页面被分割为多个模板,数据预备动作应该只和它为之准备数据的独立的小模板联系.这样使得移除模板和内容切片更容易,并且能够在很多页面中重用它们.
浏 览数据预备逻辑应该使用动态脚本语言,例如JAVASCRIPT,BeanShell,jython或者Jacl来实现.这样就更容易修改在表面修改用户 接口.一般数据接收应该实现成服务,这样可以从这些动态动作脚本调用.这样在多个页面和其他类型的用户接口里共享和重用功能模块.
注意到当使用 JSP作为视图模板时,你不能使用JPublish,所以动作特效不能提供.我们对JSP的建议时在每个页面的上端使用单个 scriptlet准备数据.在这种情况下,尝试调用工作者服务(worker service)或者工作者的java方法来 尽量可能多地将逻辑排除在页面之外.
3)视图显示模板
FreeMarker是我 们为HTML和其他文本生成推荐的最佳模板引擎.它象Velocity,但更灵活并且更好地与OFBIZ 核心框架工具搭配.除了直接使用FreeMarker的模板以外,我们强烈推荐使用JPublish,这样动作可以与页面和模板联系起来,页面可以被普通 模板渲染.
视图显示模板应该尽可能保持简单;通用内容例如headers,footers,sidebars等等应该实时通过渲染模式添加.被用 来渲染每个页面的模板文件在JPublish定义XML文件中定义.当你希望像视图一样显示报告,我们推荐使用JASPERREPORTS或者 Datavision,在 controller.xml文件里通过视图映射(view-map)装上这些报告.如果你希望使用其他文本生成工具例如Velocity或者XSLT, 我们推荐你通过JPublish做这项工作,特别是你想它能够被渲染或者拥有动作来为这些模板提供数据.
如果你使用能够经常重复的UI模式,例如 forms,请求数据显示,TAB或者menu bars,expanding tree views.我们现在推荐使用一个XML文件来描述该UI模式,然后使用XSLT转化成FreeMarker 模板,该模板可以合并最终模板和上下文的数据.注意到所推荐的会经常改变并重新定义,这也就说明了不同的方法存在多种解决方案.
当使用 FreeMarker是不可能或者不切实际时,我们推荐使用其他动态模板语言例如Velocity,如果这也是不切实际,那么我们则推荐JSP.但是当我 们是使用JSP时我们不能利用动作或者渲染模板的优点,因为你不能通过JPublish执行它.即使你不能使用渲染模式,你可以与OFbiz Region框架一起使用组合视图模式.Regions在Regions.xml文件里定义.注意到这些Regions并不和Jpublish组合视图那 样好用,并且它们不支持动作.
但是Regions框架确实提供了很多灵活性,并且在很多情况下非常有用.
分享到:
评论
1 楼 anhuiqm 2011-07-13  

相关推荐

    ofbiz数据结构设计

    《OFBiz数据结构设计详解》 OFBiz,全称为Open For Business Project,是一个开源的企业级应用框架,主要用于构建和管理电子商务、供应链管理、客户关系管理等业务系统。OFBiz的数据结构设计是其核心组成部分,它...

    ofbiz架构图

    综上所述,OFBiz和Opentaps都是面向企业级应用的框架,它们在架构设计上各有特点。OFBiz注重基础架构的灵活性和可控性,而Opentaps则通过引入DDD和加强集成能力,提升了系统的可扩展性和适应性。开发者在选择和使用...

    ofbiz10.04表结构

    标题中的"ofbiz10.04表结构"指的是OFBiz 10.04版本的数据模型设计,这是企业级开源应用框架OFBiz的一个重要组成部分。OFBiz全称为Open For Business Project,它是一个用于构建企业应用程序的全面业务解决方案,涵盖...

    opentaps (from apache ofbiz) 架构图 (chart of architecture)

    **OpenTaps与Apache OfBiz架构详解** OpenTaps(Open Source Total Appliance for Professional Services)是一款基于Apache OfBiz的企业级开源商务套件,旨在提供全面的企业应用解决方案,包括CRM(客户关系管理)...

    Ofbiz 数据库全模型

    在Ofbiz中,数据库模型扮演着至关重要的角色,它是系统数据结构的基础,定义了所有业务实体及其相互关系。 数据库模型是Ofbiz的核心组成部分,它描述了系统中的各种实体(如产品、订单、客户等)以及它们之间的关系...

    ofbiz开发手册

    OFBiz 概貌是指 OFBiz 的总体架构和组件结构。OFBiz 概貌包括 OFBiz 的核心架构、数据访问层、业务逻辑层、表示层等组件。OFBiz 概貌的了解将有助于开发者更好地理解 OFBiz 的工作机制和实现原理。 OFBiz 应用开发 ...

    关于OFBIZ的资料

    6. **源码分析**:对于开发人员而言,理解OfBiz的源码结构和设计模式有助于深入开发。Demo中的源码可以帮助开发者了解OfBiz的核心组件和工作原理。 7. **社区资源**:OfBiz拥有活跃的社区,用户可以在论坛、邮件...

    Apache OFBiz Cookbook

    - **模块化架构**:OFBiz 的架构设计使得各个组件之间可以独立工作,同时也能够无缝集成。 - **高度可定制性**:用户可以根据自身需求调整系统配置和功能。 - **全面的安全机制**:内置了强大的安全功能,确保...

    OfBiz和OpenTags架构图

    在提供的【OfBiz架构.jpg】和【OpenTags架构.jpg】文件中,你可以期待看到这两套系统的组件分布、交互方式和整体工作流程。OfBiz的架构图可能显示了其各个服务组件的层级关系,以及如何通过服务组件模型(Service ...

    OFBIZ快速入门OFBIZ快速入门

    这种设计使得外部应用程序和定制化应用可以轻松地集成到OFBiz中。 **七、深入学习与开发** 要深入理解和开发OFBiz,你需要了解其组件模型、服务定义、XML配置文件的用途(如`build.xml`、`component.xml`)、JSP和...

    ofbiz api开发文档

    API的设计遵循了面向服务架构(SOA),支持RESTful风格的Web服务,同时也提供传统的Java API调用方式。 2. **API 文档结构** OFBiz API中文版.chm文件是一个典型的Windows帮助文档,其中详细列举了OFBiz的所有服务...

    ofbiz开发入门总结

    Ofbiz的核心设计理念是模块化和可配置性,它的架构由多个相互独立的服务组件构成,包括但不限于产品管理、订单处理、库存控制等。每个组件都可以根据业务需求进行定制和扩展,这使得Ofbiz具有极高的灵活性和可扩展性...

    OFBIZ开发指南 英文2

    OFBIZ基于服务导向架构(SOA),采用模块化设计,使得系统扩展性和维护性极强。它的核心组件包括实体引擎(Entity Engine)、事务处理引擎(Transaction Engine)、服务引擎(Service Engine)、工作流引擎(Work...

    ofbiz框架(文档)全

    通过这种MVC结构,OFBiz实现了高度解耦的组件设计,使得开发者能够独立地修改和扩展各个部分,从而提高了系统的灵活性和可维护性。在实际应用中,这样的设计使得OFBiz能够处理复杂的业务场景,同时保持代码的清晰和...

    ofbiz开发者入门教程

    此外,理解Ofbiz的事件驱动模型和基于服务组件架构(Service Component Architecture, SCA)的设计原则也至关重要。 总之,Ofbiz提供了一个全面的平台,让开发者能够高效地构建企业级应用。通过逐步学习和实践,你...

    ofbiz综合使用手册

    ofbiz遵循了Model-View-Controller(MVC)设计模式,这种模式对于大型商业逻辑项目的开发尤其有益,因为它能够有效地分离用户界面、后台操作和业务逻辑,降低代码耦合度,提高系统的可维护性和可扩展性。 **1. MVC...

    ofbiz-practice

    3. **OFBiz架构理解**:OFBiz使用模型-视图-控制器(MVC)设计模式,包含实体(Entity)、服务(Service)、组件(Component)、控制器(Controller)和视图(View)等部分。理解这些概念对于开发至关重要。 4. **...

    Ofbiz-16-全量数据库873张表.rar

    Apache Ofbiz是一个开源的企业应用程序框架,它主要用于...通过深入研究这些SQL脚本,开发者不仅可以了解到Ofbiz的底层架构,还可以掌握如何在实际项目中配置和使用Ofbiz,为构建高效、灵活的企业级应用打下坚实基础。

    Ofbiz快速开发入门详解

    《Ofbiz快速开发入门详解》是一本针对初学者的指南,旨在...通过这本书,你不仅能理解Ofbiz的基本架构,还能学会如何利用Ofbiz快速开发出满足业务需求的应用程序。配合源代码实践,相信你能在Ofbiz的世界中快速成长。

    OFBIZ10.04组件开发入门.doc

    OFBIZ采用Service层、Event层、Model层和View层的架构,通过HTTP请求处理、服务调用、事件驱动和视图渲染来实现业务流程。 ### 4. OFBIZ的MVC模式 OFBIZ使用Model-View-Controller(MVC)设计模式,其中Model负责...

Global site tag (gtag.js) - Google Analytics