2014-12-31 Created By BaoXinjian


ADF(Application Development Framework)是Oracle公司为简化Java EE程序开发的复杂性专门开发的一种解决方案,是Oracle提供的下一代企业级应用开发框架。

同时,Oracle ADF也是Fusion体系架构中最重要的技术之一和Fusion Application的核心技术,Oracle日后的几乎全部产品都将转到ADF框架。

1. 开放性

Oracle ADF可以充分利用Application Server的良好特性(尤其是WebLogic),

另外,Oracle ADF非常好的平衡了组件和编码,可以说既用组件、可视化、声明式的开发方式解决了简单、重复的劳动,又留下了自由编码的充分空间,在面对复杂应用时能够游刃有余。

2. 安全性

Oracle提供了完整的安全解决方案,提供基础的安全框架OPSS(Oracle Platform Security Services),一个基于标准的,可插拔的集成的企业级安全平台。

Oracle ADF提供了基于OPSS之上的安全组件ADF Security,实现基于ADF应用的企业级安全解决方案。同时ADF应用还可以集成Oracle Entitlements Server实现更细粒度的授权。

而Oracle所有的Fusion Fusion中间件(IDM、WebCenter、SOA/OSB、BPM、ODI、MDM等)和应用产品(升级后的EBS、Siebel、PS、Hyperion以及Fusion Application等),都是在OPSS基础之上实现安全解决方案,可以互相之间实现安全无缝连接。如果企业选择Oracle产品路线,那么Oracle ADF具有先天优势。

3. 扩展性

(1). Oracle ADF提供了200多个界面组件,完全可以满足常规应用,除此以外,可以基于这些组件方便地扩展出新的组件以满足错综复杂的业务需求。并且由于ADF是在JSF基础上的扩展,所有JSF的标准组件以及自定义组件也可以与ADF无缝集成。

(2). 从与其他Oracle产品关联性来看,Oracle ADF底层与其他Fusion中间件产品无缝集成,例如:BC部分借助于Oracle Database发挥更优良的特性、数据层及页面流可直接与Oracle Delivery Network集成实现基于消息事件的异步服务集成以及BPM/BPEL流程集成、展现层与WebCenter共同构建完整的企业门户。

此外,Oracle ADF作为满足J2EE标准规范的端到端解决方案及开发框架,可以方便地与其他开源技术/产品进行融合。

4. 框架能力

Oracle ADF,系统生命周期方面提供比了深入、全面的功能。比如个性化,是其基本功能,可以从系统和用户两个层次对界面元素、风格进行个性化定义而无需牵动原有系统设计和代码更改。比如Adapter,依赖Oracle“大而全”的产品线,Oracle ADF可以方便的使用各种现成的“知识库”性质的系统集成适配器。比如向导,Oracle提供了从简单到复杂、各种应用和对象的上百种向导功能,协助开发人员快速“初始化”应用和功能。

Oracle ADF应用开发框架是一个端到端的Java EE框架,它通过提供现成的基础架构服务以及可视的、声明式开发体验简化了开发。使用Oracle ADF构建RIA(Rich Internet Application)富互联网应用,基于Web 2.0的用户界面,带给用户高度互动性、丰富的用户体验以及功能强大的客户端:

  • 局部页面刷新
  • 立即验证
  • 拖放操作
  • 弹出窗口
  • 动态和复杂的布局
  • 类似桌面应用的交互
  • ......

ADF架构


ADF架构图

ADF架构图如下所示:

最佳实践来看,使用Oracle ADF来构建应用,你的应用将清晰分离业务逻辑、页面导航及用户界面并遵循模型、视图及控制器的MVC三层架构模式。如上图所示的ADF架构:

  • 模型层代表与当前页面相关的数据值(Model)
  • 视图层包含用于查看/修改数据的用户界面(View)
  • 控制器层处理用户输入并确定页面导航(Controller)
  • 业务服务层处理数据访问及封装业务逻辑(Business Service)

ADF架构说明


1. ADF 架构说明

  • Oracle ADF对应的每一层实现分别为:
  • 业务服务层—ADF Business Components
  • 模型层—Data Control和Bindings
  • 控制器层—Taskflow
  • 视图层—ADF Faces

1.1.  ADF Business Components

在以数据库为中心的业务逻辑中,ADF提供了下面三种关键部件: Entity Object, ViewObject, Application module。

这三层建立的顺序是这样的,先建立持久层的实体对象(Entity Object),然后建立数据访问层的视图对象(ViewObject),最后建立接口层(Application module)。

其中建立持久层的实体对象主要是和数据库的表或者同义词对象建立关联,数据访问层的视图对象(ViewObject)是基于实体层的实体对象建立的(当然也可以只建视图对象,不过这样就不是基于实体对象的,而是基于SQL),

主要是进行数据库的访问,而接口层是整个Business Service 层和Model层的接口,在数据访问层建立的视图对象需要注册到接口层中,这样在Model层中才可以访问。

1.2.  ADF Model

ADF model是ADF框架最核心的模块——它实现了JSR-227规范,包括两部分:Data Control和declarative bindings(声明式绑定)。

Data Control 通过使用标准元数据描述业务层中操作和数据集合(包括属性信息,方法调用等),从而抽象了业务逻辑的实现。

当开发人员创建好接口层 (Application module)时,Data Control也就自动创建好了,它包含了接口层中所有的功能。

也就是说所有访问业务对象的方法现在都通过Data Control来进行,这样使得绑定层使用一种方式来访问数据,不论后台的数据对象是如何获取得(数据库,webservice, javabean, csv等)。

可以把Data Control看做是一种代理机制,从而隔离了业务逻辑层和UI层。

1.3.  ADF Taskflow

ADF Controller在实现了JSF标准的基础上进行了扩展,提供了更大的页面流功能。

1.4.  ADF Faces

Oracle ADF Faces 是一组基于 JavaServer Faces JSR (JSR 127) 的功能齐全的用户界面组件。

ADF Faces Rich Client内建有AJAX功能的组件,已提供了超过100个富客户端组件,其中包括了内置Flash和SVG数据可视化组件。通过使用这些组件,用户带来极大的视觉冲击。

除了使用ADF Faces RC,Oracle ADF也对Apache MyFaces Trinidad视图技术提供了完全的支持。

ADF界面效果及组件展示


1.  ADF控件

2.  ADF图表

Thanks and Regards

转载:得帆技术 - http://definesys.com/solution/adf/adfsolution.html

ERP_基于Oracle ADF的定制化企业级IT系统解决方案的更多相关文章

  1. 网易云基于 Kubernetes 的深度定制化实践

    本文由  网易云发布. 2017 年,Kubernetes 超越 Mesos 和 Docker Swarm成为最受欢迎的容器编排技术.网易云从 2015 下半年开始向 Kubernetes 社区贡献代 ...

  2. 基于Oracle ADF的应用程序开发

    ADF简介 ADF(Application Development Framework)是Oracle公司为简化J2EE程序开发的复杂性专门开发的一种解决方案,ADF通过减少实现设计模式和应用程序框架 ...

  3. solr特点三: 基于Solr实现排序定制化参考

    排序实现有N种形式,最低成本.最快响应时间是目标 一份索引,支持N种排序策略并且在线互不干扰是要考虑的每一种实现,处理的场景是不同的,不要千篇一律 020排序,从索引到效果,有不少坑,这篇文章没有细说 ...

  4. pytest+allure(allure-pytest基于这个插件)设计定制化报告

    一:环境准备 1.python3.6 2.windows环境 3.pycharm 4.allure-pytest 5.allure2.8.0 6.java1.8 allure-pytest快速安装 在 ...

  5. pytest+allure(pytest-allure-adaptor基于这个插件)设计定制化报告

    一:环境准备 1.python3.6 2.windows环境 3.pycharm 4.pytest-allure-adaptor 5.allure2.8.0 6.java1.8 pytest-allu ...

  6. Yoshino: 一个基于React的可定制化的PC组件库

    Github: https://github.com/Yoshino-UI... Docs: https://yoshino-ui.github.io/#/ Cli-Tool: https://git ...

  7. ERP_基于Oracle SOA的企业服务总线整合

    2015-01-01 Created By BaoXinjian

  8. 基于oracle的sql(结构化查询语言)指令

    创建表空间 create tablespace 表空间名 datafile '存储路径(c:\a\a.dbf)' size 200m autoextend on next 10m maxsize un ...

  9. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

随机推荐

  1. oracle锁机制

    1 前言 数据库大并发操作要考虑死锁和锁的性能问题.看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据 库执行请求,T2代表另一个请求,也可以理解为T1为 ...

  2. POJ 2186 Popular Cows(强连通)

                                                                  Popular Cows Time Limit: 2000MS   Memo ...

  3. Android开发之多级下拉列表菜单实现(仿美团,淘宝等)

    注:本文转载于:http://blog.csdn.net/minimicall/article/details/39484493 我们在常用的电商或者旅游APP中,例如美团,手机淘宝等等,都能够看的到 ...

  4. Frameworks , cat,kafka

    https://github.com/ServiceStack/ServiceStack https://github.com/ctripcorp/ https://github.com/ctripc ...

  5. IL-rewriting profiler

    https://blogs.msdn.microsoft.com/davbr/2007/03/06/creating-an-il-rewriting-profiler/ https://blogs.m ...

  6. Nginx反向代理讲解和配置

    首先来介绍下Nginx的反向代理.代理服务器一般分为正向代理(通常直接称为代理服务器)和反向代理. 画个图我们就好理解了. 正向代理:可以想象成是路由器,我们要通过它来上网的那种.(可以说是客户端的代 ...

  7. Oracle数据库查询语句

    编写以下查询的SQL语句,以scott用户的emp表和dept表作为查询数据: 1.列出至少有一个员工的所有部门. SQL语句: select * from SCOTT.DEPT where dept ...

  8. C语言计算开方

    C语言里面有sqrt可以计算开平方根,但似乎想要计算开任意次方根的话却没有一个固定的函数,自己写算法也蛮啰嗦的…… 其实啊,巧妙使用pow函数就可以实现需求. C语言库函数pow的原型声明如下: #i ...

  9. wikioi 1204 寻找子串位置

    /*======================================================================== 1204 寻找子串位置 题目描述 Descript ...

  10. eclipse 打开其他项目的jar源码 乱码解决

    步骤1.在eclipse菜单栏中,Window–>Preferences–>General–>Content types 将JAR Content , Java Class File ...