ORACLE ADF
Présentation Technique du Framework ADF
Hassan BOUMARSEL
Architecte Oracle Middleware
hboumarsel@anasys.fr
Février 2014
ANASYS
Oracle ADF | 02/2014© ANASYS
SOMMAIRE
Oracle ADF | 02/2014
• ORACLE ADF : VUE D’ENSEMBLE
• ORACLE ADF : ARCHITECTURE
• COMPOSANTS ADF
• STRUCTURE DES PROJETS ADF
• DÉMONSTRATION
• RETOUR D’EXPÉRIENCE
• PRINCIPALES FORCES ET FAIBLESSES
© ANASYS
Oracle ADF :
Vue d'ensemble
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Vue d'ensemble (1/5)
Oracle Application Development Framework (Oracle ADF).
Une solution complète de développement des applications
multicanales.
Un Framework de développement stratégique pour Oracle,
produit et supporté depuis 1999.
Inclus dans la licence Weblogic Server à partir de la 11g.
 Une version Essentials disponible en Open-Source.
S'intègre avec la SOA Suite, WebCenter, OBIEE, EBS et autres
produits Oracle:
 Le Framework de développement de la suite Oracle Fusion Applications.
 Le Framework de développement de l'UI de la SOA Suite.
 Le Framework de développement des applications WebCenter.
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Vue d'ensemble (2/5)
Définit un seul modèle d'architecture, mais permet des choix
techniques multiples.
Abstraction de la complexité Java EE :
 Se concentrer sur les fonctionnalités, et non pas sur l'implémentation technique.
Forrester : The Oracle 11g development environment may
finally be the “Visual Basic for Java”
Met en œuvre les meilleures pratiques et Design Patterns
JavaEE.
Intégré dans les environnements de développement :
 Oracle JDeveloper (Depuis la version 9).
 Eclipse OEPE : Oracle Enterprise Pack for Eclipse (A partir de la version 12c).
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Vue d'ensemble (3/5)
S'appuyant sur les métadonnées, le Framework simplifie la création des
services métiers (Business Services), et l’intégration des services externes.
Une approche de développement visuelle et déclarative.
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Vue d'ensemble (4/5)
Couverture du cycle de vie complet de l’application
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Vue d'ensemble (5/5)
Une solution complète avec un large choix de composants qui
couvrent toutes les couches de l’application:
 Persistance des données,
 Mapping objet / relationnel,
 Invocation des services web,
 Intégration des systèmes JMS,
 Définition et implémentation des EJB,
 Contrôleurs réutilisables,
 Mapping des données avec l'interface utilisateur,
 Composants d'interface client riches,
 Gestion des profils et des personnalisations de l‘UI (Basée sur MDS),
 Implémentation des services web.
 Gestion des transactions,
 Gestion de la sécurité,
 Gestion des Logs
 Support de l'AOP et de l'introspection JMX,
Oracle ADF | 02/2014© ANASYS
Oracle ADF :
Architecture
© ANASYS Oracle ADF | 02/2014
Oracle ADF : Architecture (1/5)
Oracle ADF est basé sur le modèle MVC : Model-View-
Controller.
Un architecture MVC standard est composée de 3 couches :
 Model : Le Modèle exécute la logique métier de l’application, implémente les
interactions avec la base de données et les accès aux ressources externes.
 View : La Vue retourne une présentation des données venant du model et reçoit les
interactions de l’utilisateur avec l’IHM.
 Controller : Le Contrôleur gère le flux des requêtes utilisateurs. Il est responsable de
retourner une réponse en s’appuyant sur les couches Modèle et Vue.
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Architecture (2/5)
Architecture standard du modèle MVC :
Oracle ADF | 02/2014
Business Services
Rich Clients Web and Mobile
Model
Controller
Business
Services
Model
(JSR-227)
Controller
View
© ANASYS
Oracle ADF : Architecture (3/5)
Oracle ADF : Architecture Logicielle
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Architecture (5/5)
Comparaison entre la stack Java EE et la stack ADF
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Architecture
Oracle Fusion Middleware : Vue d’ensemble
© ANASYS Oracle ADF | 02/2014
Oracle ADF : Architecture (4/5)
Architecture Oracle Fusion
Oracle ADF | 02/2014© ANASYS
Oracle ADF : Architecture
Architecture type HD Weblogic et ADF :
© ANASYS Oracle ADF | 02/2014
Composants ADF
© ANASYS Oracle ADF | 02/2014
Composants ADF
Liste des composants clés d’Oracle ADF
ADF Faces Rich Client : Composants UI avec support d’Ajax
ADF TaskFlow : Une logique de présentation et de navigation réutilisable, allant d'une page
web simple à un parcours de navigation complet.
ADF Model/Binding : Couche de mapping entre les services métiers et l'interface
utilisateur.
ADF Business Components : Composants métiers réutilisables pour l'implémentation de
la logique métier et l'accès aux services externes (Base de données, Service Web, Connecteurs
spécifiques).
ADF Security : Couche de sécurité transverse pour gérer les authentifications (Avec support
du SSO) et les autorisations aux composants de l’application ADF et aux services externes.
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Business Services (1/8)
Permet d'accéder aux données provenant de différentes
sources.
Fournit plusieurs services comme la persistance des données, le
Mapping Objet/Relationnel, l’invocation des services web, la
gestion des transactions, l'exécution de la logique métier…
Plusieurs technologies peuvent être utilisées pour implémenter
la couche Business Services dans ADF :
 ADF Business Components (ADF BC)
 EJB
 POJOs
 Objets JPA
 L’utilisation des Business Components est recommandée.
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Business Services (2/8)
Basés sur les standards Java, XML et Groovy.
Une approche de développement RAD déclarative et visuelle.
Outils 4GL : Utilisation des assistants et des éditeurs visuels.
Configurer les accès aux sources externes et implémenter la logique métier
sans écrire du code.
La logique métier est implémentée via des Validations et des Business Rules.
Le code Java est optionnel : Besoin d’implémenter une logique métier
spécifique.
Oracle ADF | 02/2014
ADF Business Components
© ANASYS
Composants ADF : La couche Business Services (3/8)
La définition des composants ADF BC est stockée dans des fichiers XML de
définition des données, appelés Métadonnées.
Lors de l'exécution de l'application, le Framework ADF analyse les
Métadonnées et construit en temps réel les composants applicatifs (Eager ou
Lazy loading).
Les ADF BC Implémentent les meilleurs pratiques d'accès aux ressources
externes :
 Design Patterns : Singleton, Abstract Factory, Business Delegate, Adapter...
 Mise en cache, Range fetching, Timeouts…
 Contrôle des transactions distribuées.
 Gestion des accès concurrents.
 Pour optimiser les composants ADF BC, il faut connaitre les paramètres clés des
Métadonnées, et le cycle de vie des objets en Runtime.
 ADF ne contrôle pas le code Java Custom, il est du devoir des développeurs d’écrire un code
Java propre.
Oracle ADF | 02/2014
ADF Business Components
© ANASYS
Composants ADF : La couche Business Services (4/8)
Il existe plusieurs types de composants ADF BC :
Oracle ADF | 02/2014
ADF Business Components
© ANASYS
Composants ADF : La couche Business Services (5/8)
Exemple : Créer un Data Model à partir de la définition de la base de
données (Etape 1/3)
Oracle ADF | 02/2014
Schéma
Nom du VO
Sélection des tables
ADF Business Components
© ANASYS
Composants ADF : La couche Business Services (6/8)
Exemple : Créer un Data Model à partir de la définition de la base de
données (Etape 2/3)
Oracle ADF | 02/2014
Edition visuelle
du modèle
Entités, Associations,
et VO représentant le
modèle de données
ADF Business Components
© ANASYS
Composants ADF : La couche Business Services (7/8)
Exemple : Créer un Data Model à partir de la définition de la base de
données (Etape 3/3)
 Quelle est la charge de développement nécessaire pour obtenir le même résultat ?
Oracle ADF | 02/2014
Outil de test
intégré
ADF Business Components
© ANASYS
Composants ADF : La couche Business Services (8/8)
Exemple : Cinématique des appels lors de l’invocation de la base de données
Oracle ADF | 02/2014
ADF Business Components
© ANASYS
Composants ADF : La couche Model/Binding (1/6)
La couche Modèle relie les objets métiers implémentés par les
Business Services aux interfaces utilisateur.
Une implémentation du standard JSR-227 : « A Standard Data
Binding & Data Access Facility for J2EE ».
Abstraction des détails d'implémentation.
Basée sur les métadonnées XML : Implémentation déclarative
et visuelle (Drag & Drop).
Couplage faible entre les services et la couche de présentation
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Model/Binding (2/6)
La couche Model/Binding est composée de :
Data Controls
Data Bindings
Les Data Controls représentent l'interface
publique des Business Services.
Support de plusieurs types de BS :
ADF BC, Classes Java, EJB, WS, URL, Adapters…
Les Data Bindings mettent les méthodes
et attributs des Data Controls à la disposition de la couche de
présentation.
Les Data Binding sont des composants pivots qui séparent la
Vue du Modèle.
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Model/Binding (3/6)
Exemple : Création d’un Data Control à partir d’un Business Service
Oracle ADF | 02/2014
New Gallery
Depuis un
Business Service
existant
© ANASYS
Composants ADF : La couche Model/Binding (4/6)
Exemple : Mise en œuvre de la couche Model/Binding pour exposer les
champs d'une table dans un formulaire (Etape 1/3)
Oracle ADF | 02/2014
ADF BC
Data Binding
Data Control
© ANASYS
Exemple : Mise en œuvre de la couche Model/Binding pour exposer les
champs d'une table dans un formulaire (Etape 2/3)
Composants ADF : La couche Model/Binding (5/6)
Oracle ADF | 02/2014
Data Control
ADF VO
© ANASYS
Exemple : Mise en œuvre de la couche Model/Binding pour exposer les
champs d'une table dans un formulaire (Etape 3/3)
Composants ADF : La couche Model/Binding (6/6)
EIG WebCenter Portal | 11/2013
Data Control
Page
Binding
container
Built-In
Operations
Attributs
ADF VO
© ANASYS
Composants ADF : La couche Controller (1/4)
Gère le flux applicatif et la logique de navigation entre les pages.
Reçoit tous les événements de l'utilisateur et enclenche les actions à
effectuer.
Le flux applicatif et les règles de navigation sont modélisés via un
diagramme de flux :
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Controller (2/4)
ADF offre plusieurs possibilités pour implémenter la couche
Contrôleur dans des applications web :
JSF Controllers : ADF 11g supporte le standard JSF 1.2 (JSR 252) / ADF 12g supporte
JSF 2.0 (JSR 314).
ADF Controllers : Une surcouche de JSF avec des fonctionnalités supplémentaires
comme les ADF TaskFlows.
Struts Controllers : Implémentation de la logique de navigation avec Struts Page
Flow (Struts-config.xml). La version supportée par défaut est la 1.2.
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Controller (3/4)
ADF Controller permet de créer des modèles de navigation réutilisables :
ADF Taskflows
Les ADF TaskFlow offrent plusieurs avantages :
 La couche de présentation peut être découpée en plusieurs modules.
 Les TaskFlows sont réutilisables au sein de la même application, ou entre
plusieurs applications.
 Ce concept est largement exploité dans
les applications WebCenter Portal.
 La navigation ne se fait pas seulement
entre pages ou fragments.
 Support d’autres types d’activités :
 Appel de méthodes,
 Orchestration des appels,
 Utilisation des Expressions régulières,
 Appel d’autres Taskflows,
 Boutons de retour,
 Modélisation des transactions, Oracle ADF | 02/2014
ADF Controllers
© ANASYS
Composants ADF : La couche Controller (4/4)
ADF fournit un grand nombre de composants pour modéliser les Taskflows
de tout type, allant d'une simple séquence de pages, à des fonctionnalités
complexes de routage et d'orchestration :
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Présentation (1/8)
Support du multicanal : Applications web, Clients lourds,
Mobile, Suite Bureautique...
Choix varié de technologies et Frameworks d'implémentation :
 ADF Faces
 JSF
 JSP
 ADF Mobile
 ADF Swing
 Microsoft Office
ADF Faces est une extension de JSF basée sur le Framework
Apache MyFaces Trinidad.
 L’utilisation des composants ADF Faces est recommandée.
Oracle ADF | 02/2014© ANASYS
Composants ADF : La couche Présentation (2/8)
150 composants Rich web components avec support d'AJAX,
Fonctionnalités de validation et de contrôle de surface,
Fonctionnalités intégrées de Templating, Drag&Drop, Scrolling, Tri...,
Composants prêts à l’emploi pour créer des Pop-up, Dialogs, Query, Print…
Prévisualisation en mode Design,
Support de la personnalisation des interfaces par utilisateur ou par Profil (La
personnalisation est stockée dans le référentiel MDS),
Rafraichissement Partiel : Partial Page Rendering (PPR),
4 Grandes catégories de composants : Layout, Common, Data Visualization,
Opérations,
Oracle ADF | 02/2014
ADF Faces
© ANASYS
Composants ADF : La couche Présentation (3/8)
Oracle ADF | 02/2014
ADF Faces : Layout Components
© ANASYS
Composants ADF : La couche Présentation (4/8)
Oracle ADF | 02/2014
ADF Faces : Common Components (1/2)
© ANASYS
Composants ADF : La couche Présentation (5/8)
Oracle ADF | 02/2014
ADF Faces : Common Components (2/2)
© ANASYS
Composants ADF : La couche Présentation (6/8)
Oracle ADF | 02/2014
ADF Faces : Operations
© ANASYS
Composants ADF : La couche Présentation (7/8)
Oracle ADF | 02/2014
ADF Faces : Data Visualization (1/2)
© ANASYS
Composants ADF : La couche Présentation (8/8)
Oracle ADF | 02/2014
ADF Faces : Data Visualization (2/2)
Graphes
Jauge
CartesTables PivotsDiagramme de Gantt
© ANASYS
Composants ADF : ADF Security
Oracle ADF | 02/2014
Paramétrage fin de la sécurité et des règles d’accès
© ANASYS
Structure des projets
ADF
© ANASYS Oracle ADF | 02/2014
Projets ADF
Dans le contexte ADF, les fichiers de Métadonnées sont utilisés pour :
Stocker la définition des composants ADF Business Components.
Définir les paramètres, les méthodes et les valeurs de retour dans les Data Controls.
(Les Data Controls représentent l'interface publique des Business Services)
Créer des objets de Binding entre les Data Controls et l'UI.
Configurer les composants de présentation (Rich User Interfaces Components).
Définir la configuration cible sur le serveur d'application.
Oracle ADF | 02/2014
Fichiers de Métadonnées
© ANASYS
Projets ADF
Hiérarchie des fichiers de Métadonnées :
Oracle ADF | 02/2014
Fichiers de Métadonnées
© ANASYS
Projets ADF
 bc4j.xcfg : Application Modules MetaData
Liste des AM, Connexion DB, Sécurité, Taille des Pools…
 AM*.xml : Application Module Definition
Stocke la définition des VO et autres BC appartenant
au module.
 *PageDef.xml : Page Definition files
Créé pour chaque page utilisant le modèle :
Déclaration du context de binding de la page.
 DataBindings.cpx : Binding Context de
l’application ADF
Mapping entre les pages JSF et les *PageDef.xml.
Déclaration des DataControls utilisés par la vue.
 adfm.xml : Registry of Registries
Maintient le chemin d’accès à tous les fichiers *.cpx,
*.dcx, *.jpx, et *.xcfg de l’application.
Oracle ADF | 02/2014
Fichiers de Métadonnées
© ANASYS
Projets ADF
 <application>.jws : Référentiel de l’application
Liste des projets (UI, Modele,…), Versions des composants utilisés
 cwallet.sso : Credentials et SSO
Stocke les mots de passe d’accès aux ressources externes (DB, Web Services tiers…).
 adf-config.xml : Configuration des ressources de l’application
Taille du cache, Configuration MDS, Tailles des Pools des ressources...
 connections.xml : Informations de connexion aux services externes
URL des services, Chaine de connexion JDBC, références utilisées en interne par le projet ADF.
 adfc-config.xml, facesconfig.xml, Struts-config.xml : Définition de la logique de navigation
Liste des managed beans, Liste des pages, Connexions entre les pages, règles de navigation...
 web.xml, weblogic.xml : Descripteurs de déploiement
Configuration de l’application web : Liste des Servlets, Listeners, Mapping, Sessions, Cookies, Sécurité J2EE...
Oracle ADF | 02/2014
Fichiers de Métadonnées
© ANASYS
Projets ADF
Structure de l’application ADF :
Oracle ADF | 02/2014
Structure d’un projet ADF
© ANASYS
Projets ADF
Structure du module Model Structure du module UI
Oracle ADF | 02/2014
Structure d’un projet ADF
© ANASYS
Retour d’Expérience
© ANASYS Oracle ADF | 02/2014
Retour d’Expérience
Oracle ADF | 02/2014
Composante Appréciation Commentaire
Architecture technique /
Respect des standards et
des bonnes pratiques
Oracle ADF met en œuvre plusieurs standards (JSR-227,
JSR 252, JSR 314...) et Design Patterns (MVC, Abstract
Factory, Business Delegate...).
Il implémente nativement des bonnes pratiques comme
la mise en cache, le Range fetching, les Timeouts…
Pérennité Un Framework de développement produit et supporté
par Oracle.
ADF constitue désormais le socle technique de plusieurs
produits Oracle : EBS, HCM, OBIEE, SOA Suite,
WebCenter, OBIEE...
Compétences et ressources
disponibles
Peu de développeurs se sont spécialisés dans Oracle
ADF en France.
Le marché manque de profils spécialisés dans le
Framework.
Présence sur le marché Oracle ADF prend la place d’Oracle Forms, il est
désormais omniprésent dans les produits Oracle Fusion
Applications, et dans les applications SOA et WebCenter
Portal.
© ANASYS
Retour d’Expérience
Oracle ADF | 02/2014
Composante Appréciation Commentaire
Clients et communauté • Clients en France :
Thélem Assurances, CMA-CGM, CGGVeritas,
Arval, Alcatel, SETMAT, MyOracle Support…
• Dans le monde :
Schneider, Government of Australia, Acco Brands,
HYATT, Energie DataServices Nederland,
Washington University…
Productivité / ROI Oracle ADF permet une approche de développement
RAD déclarative et visuelle. Il fournit également un très
grand nombre de fonctionnalités, d’assistants et de
composants prêts à l’emploi qui permettent une
productivité accrue, que ce soit pour le web ou le
mobile.
Performances, Robustesse,
montée en charge,
Scalabilité
Les applications ADF nécessitent beaucoup de
ressources (Mémoire, Disk, Réseau…).
Toutefois, un Tuning est possible grâce aux multitudes
de possibilités de configuration (Attributs des
Métadonnées).
© ANASYS
Principales Forces et Faiblesses
• Le « Tout-En-Un » : ADF couvre tout le périmètre de développement et le cycle
de vie des projets.
• Framework stratégique pour Oracle.
• Le choix de la technologie d’implémentation (EJB ou ADF BC, JPA ou ADF
DataModel, JSF, Struts ou ADF Faces…).
• Un outil 4GL et une approche de développement RAD déclarative et visuelle.
• Développement de composants réutilisables (exemples : Taskflows.)
• Adapté pour les applications de gestion des données et les applications
multicanales avec des interfaces graphiques riches et complexes.
Forces
• ADF reste compliqué à appréhender, surtout parce que JSF lui-même est
compliqué à appréhender.
• Beaucoup de nouveaux concepts à assimiler (Navigation entre pages, Task flows,
Bindings, Expression Languages).
• Les applications ADF sont gourmandes en ressources matérielles, un Tuning fin
peut s’avérer nécessaire.
• L’aspect Wizard peut être trompeur : La connaissance des technologies sous-
jacentes (Java, JSF, HTML, CSS) est indispensable.
• Manque de développeurs spécialisés dans le Framework en France.
Faiblesses
© ANASYS Oracle ADF | 02/2014
Questions ?
Oracle ADF | 02/2014
Hassan BOUMARSEL
Architecte Oracle Middleware
hboumarsel@anasys.fr
06 76 59 05 18
ANASYS
Oracle ADF | 02/2014
Contact

Oracle ADF : Vue d'ensemble

  • 1.
    ORACLE ADF Présentation Techniquedu Framework ADF Hassan BOUMARSEL Architecte Oracle Middleware hboumarsel@anasys.fr Février 2014 ANASYS Oracle ADF | 02/2014© ANASYS
  • 2.
    SOMMAIRE Oracle ADF |02/2014 • ORACLE ADF : VUE D’ENSEMBLE • ORACLE ADF : ARCHITECTURE • COMPOSANTS ADF • STRUCTURE DES PROJETS ADF • DÉMONSTRATION • RETOUR D’EXPÉRIENCE • PRINCIPALES FORCES ET FAIBLESSES © ANASYS
  • 3.
    Oracle ADF : Vued'ensemble Oracle ADF | 02/2014© ANASYS
  • 4.
    Oracle ADF :Vue d'ensemble (1/5) Oracle Application Development Framework (Oracle ADF). Une solution complète de développement des applications multicanales. Un Framework de développement stratégique pour Oracle, produit et supporté depuis 1999. Inclus dans la licence Weblogic Server à partir de la 11g.  Une version Essentials disponible en Open-Source. S'intègre avec la SOA Suite, WebCenter, OBIEE, EBS et autres produits Oracle:  Le Framework de développement de la suite Oracle Fusion Applications.  Le Framework de développement de l'UI de la SOA Suite.  Le Framework de développement des applications WebCenter. Oracle ADF | 02/2014© ANASYS
  • 5.
    Oracle ADF :Vue d'ensemble (2/5) Définit un seul modèle d'architecture, mais permet des choix techniques multiples. Abstraction de la complexité Java EE :  Se concentrer sur les fonctionnalités, et non pas sur l'implémentation technique. Forrester : The Oracle 11g development environment may finally be the “Visual Basic for Java” Met en œuvre les meilleures pratiques et Design Patterns JavaEE. Intégré dans les environnements de développement :  Oracle JDeveloper (Depuis la version 9).  Eclipse OEPE : Oracle Enterprise Pack for Eclipse (A partir de la version 12c). Oracle ADF | 02/2014© ANASYS
  • 6.
    Oracle ADF :Vue d'ensemble (3/5) S'appuyant sur les métadonnées, le Framework simplifie la création des services métiers (Business Services), et l’intégration des services externes. Une approche de développement visuelle et déclarative. Oracle ADF | 02/2014© ANASYS
  • 7.
    Oracle ADF :Vue d'ensemble (4/5) Couverture du cycle de vie complet de l’application Oracle ADF | 02/2014© ANASYS
  • 8.
    Oracle ADF :Vue d'ensemble (5/5) Une solution complète avec un large choix de composants qui couvrent toutes les couches de l’application:  Persistance des données,  Mapping objet / relationnel,  Invocation des services web,  Intégration des systèmes JMS,  Définition et implémentation des EJB,  Contrôleurs réutilisables,  Mapping des données avec l'interface utilisateur,  Composants d'interface client riches,  Gestion des profils et des personnalisations de l‘UI (Basée sur MDS),  Implémentation des services web.  Gestion des transactions,  Gestion de la sécurité,  Gestion des Logs  Support de l'AOP et de l'introspection JMX, Oracle ADF | 02/2014© ANASYS
  • 9.
    Oracle ADF : Architecture ©ANASYS Oracle ADF | 02/2014
  • 10.
    Oracle ADF :Architecture (1/5) Oracle ADF est basé sur le modèle MVC : Model-View- Controller. Un architecture MVC standard est composée de 3 couches :  Model : Le Modèle exécute la logique métier de l’application, implémente les interactions avec la base de données et les accès aux ressources externes.  View : La Vue retourne une présentation des données venant du model et reçoit les interactions de l’utilisateur avec l’IHM.  Controller : Le Contrôleur gère le flux des requêtes utilisateurs. Il est responsable de retourner une réponse en s’appuyant sur les couches Modèle et Vue. Oracle ADF | 02/2014© ANASYS
  • 11.
    Oracle ADF :Architecture (2/5) Architecture standard du modèle MVC : Oracle ADF | 02/2014 Business Services Rich Clients Web and Mobile Model Controller Business Services Model (JSR-227) Controller View © ANASYS
  • 12.
    Oracle ADF :Architecture (3/5) Oracle ADF : Architecture Logicielle Oracle ADF | 02/2014© ANASYS
  • 13.
    Oracle ADF :Architecture (5/5) Comparaison entre la stack Java EE et la stack ADF Oracle ADF | 02/2014© ANASYS
  • 14.
    Oracle ADF :Architecture Oracle Fusion Middleware : Vue d’ensemble © ANASYS Oracle ADF | 02/2014
  • 15.
    Oracle ADF :Architecture (4/5) Architecture Oracle Fusion Oracle ADF | 02/2014© ANASYS
  • 16.
    Oracle ADF :Architecture Architecture type HD Weblogic et ADF : © ANASYS Oracle ADF | 02/2014
  • 17.
    Composants ADF © ANASYSOracle ADF | 02/2014
  • 18.
    Composants ADF Liste descomposants clés d’Oracle ADF ADF Faces Rich Client : Composants UI avec support d’Ajax ADF TaskFlow : Une logique de présentation et de navigation réutilisable, allant d'une page web simple à un parcours de navigation complet. ADF Model/Binding : Couche de mapping entre les services métiers et l'interface utilisateur. ADF Business Components : Composants métiers réutilisables pour l'implémentation de la logique métier et l'accès aux services externes (Base de données, Service Web, Connecteurs spécifiques). ADF Security : Couche de sécurité transverse pour gérer les authentifications (Avec support du SSO) et les autorisations aux composants de l’application ADF et aux services externes. Oracle ADF | 02/2014© ANASYS
  • 19.
    Composants ADF :La couche Business Services (1/8) Permet d'accéder aux données provenant de différentes sources. Fournit plusieurs services comme la persistance des données, le Mapping Objet/Relationnel, l’invocation des services web, la gestion des transactions, l'exécution de la logique métier… Plusieurs technologies peuvent être utilisées pour implémenter la couche Business Services dans ADF :  ADF Business Components (ADF BC)  EJB  POJOs  Objets JPA  L’utilisation des Business Components est recommandée. Oracle ADF | 02/2014© ANASYS
  • 20.
    Composants ADF :La couche Business Services (2/8) Basés sur les standards Java, XML et Groovy. Une approche de développement RAD déclarative et visuelle. Outils 4GL : Utilisation des assistants et des éditeurs visuels. Configurer les accès aux sources externes et implémenter la logique métier sans écrire du code. La logique métier est implémentée via des Validations et des Business Rules. Le code Java est optionnel : Besoin d’implémenter une logique métier spécifique. Oracle ADF | 02/2014 ADF Business Components © ANASYS
  • 21.
    Composants ADF :La couche Business Services (3/8) La définition des composants ADF BC est stockée dans des fichiers XML de définition des données, appelés Métadonnées. Lors de l'exécution de l'application, le Framework ADF analyse les Métadonnées et construit en temps réel les composants applicatifs (Eager ou Lazy loading). Les ADF BC Implémentent les meilleurs pratiques d'accès aux ressources externes :  Design Patterns : Singleton, Abstract Factory, Business Delegate, Adapter...  Mise en cache, Range fetching, Timeouts…  Contrôle des transactions distribuées.  Gestion des accès concurrents.  Pour optimiser les composants ADF BC, il faut connaitre les paramètres clés des Métadonnées, et le cycle de vie des objets en Runtime.  ADF ne contrôle pas le code Java Custom, il est du devoir des développeurs d’écrire un code Java propre. Oracle ADF | 02/2014 ADF Business Components © ANASYS
  • 22.
    Composants ADF :La couche Business Services (4/8) Il existe plusieurs types de composants ADF BC : Oracle ADF | 02/2014 ADF Business Components © ANASYS
  • 23.
    Composants ADF :La couche Business Services (5/8) Exemple : Créer un Data Model à partir de la définition de la base de données (Etape 1/3) Oracle ADF | 02/2014 Schéma Nom du VO Sélection des tables ADF Business Components © ANASYS
  • 24.
    Composants ADF :La couche Business Services (6/8) Exemple : Créer un Data Model à partir de la définition de la base de données (Etape 2/3) Oracle ADF | 02/2014 Edition visuelle du modèle Entités, Associations, et VO représentant le modèle de données ADF Business Components © ANASYS
  • 25.
    Composants ADF :La couche Business Services (7/8) Exemple : Créer un Data Model à partir de la définition de la base de données (Etape 3/3)  Quelle est la charge de développement nécessaire pour obtenir le même résultat ? Oracle ADF | 02/2014 Outil de test intégré ADF Business Components © ANASYS
  • 26.
    Composants ADF :La couche Business Services (8/8) Exemple : Cinématique des appels lors de l’invocation de la base de données Oracle ADF | 02/2014 ADF Business Components © ANASYS
  • 27.
    Composants ADF :La couche Model/Binding (1/6) La couche Modèle relie les objets métiers implémentés par les Business Services aux interfaces utilisateur. Une implémentation du standard JSR-227 : « A Standard Data Binding & Data Access Facility for J2EE ». Abstraction des détails d'implémentation. Basée sur les métadonnées XML : Implémentation déclarative et visuelle (Drag & Drop). Couplage faible entre les services et la couche de présentation Oracle ADF | 02/2014© ANASYS
  • 28.
    Composants ADF :La couche Model/Binding (2/6) La couche Model/Binding est composée de : Data Controls Data Bindings Les Data Controls représentent l'interface publique des Business Services. Support de plusieurs types de BS : ADF BC, Classes Java, EJB, WS, URL, Adapters… Les Data Bindings mettent les méthodes et attributs des Data Controls à la disposition de la couche de présentation. Les Data Binding sont des composants pivots qui séparent la Vue du Modèle. Oracle ADF | 02/2014© ANASYS
  • 29.
    Composants ADF :La couche Model/Binding (3/6) Exemple : Création d’un Data Control à partir d’un Business Service Oracle ADF | 02/2014 New Gallery Depuis un Business Service existant © ANASYS
  • 30.
    Composants ADF :La couche Model/Binding (4/6) Exemple : Mise en œuvre de la couche Model/Binding pour exposer les champs d'une table dans un formulaire (Etape 1/3) Oracle ADF | 02/2014 ADF BC Data Binding Data Control © ANASYS
  • 31.
    Exemple : Miseen œuvre de la couche Model/Binding pour exposer les champs d'une table dans un formulaire (Etape 2/3) Composants ADF : La couche Model/Binding (5/6) Oracle ADF | 02/2014 Data Control ADF VO © ANASYS
  • 32.
    Exemple : Miseen œuvre de la couche Model/Binding pour exposer les champs d'une table dans un formulaire (Etape 3/3) Composants ADF : La couche Model/Binding (6/6) EIG WebCenter Portal | 11/2013 Data Control Page Binding container Built-In Operations Attributs ADF VO © ANASYS
  • 33.
    Composants ADF :La couche Controller (1/4) Gère le flux applicatif et la logique de navigation entre les pages. Reçoit tous les événements de l'utilisateur et enclenche les actions à effectuer. Le flux applicatif et les règles de navigation sont modélisés via un diagramme de flux : Oracle ADF | 02/2014© ANASYS
  • 34.
    Composants ADF :La couche Controller (2/4) ADF offre plusieurs possibilités pour implémenter la couche Contrôleur dans des applications web : JSF Controllers : ADF 11g supporte le standard JSF 1.2 (JSR 252) / ADF 12g supporte JSF 2.0 (JSR 314). ADF Controllers : Une surcouche de JSF avec des fonctionnalités supplémentaires comme les ADF TaskFlows. Struts Controllers : Implémentation de la logique de navigation avec Struts Page Flow (Struts-config.xml). La version supportée par défaut est la 1.2. Oracle ADF | 02/2014© ANASYS
  • 35.
    Composants ADF :La couche Controller (3/4) ADF Controller permet de créer des modèles de navigation réutilisables : ADF Taskflows Les ADF TaskFlow offrent plusieurs avantages :  La couche de présentation peut être découpée en plusieurs modules.  Les TaskFlows sont réutilisables au sein de la même application, ou entre plusieurs applications.  Ce concept est largement exploité dans les applications WebCenter Portal.  La navigation ne se fait pas seulement entre pages ou fragments.  Support d’autres types d’activités :  Appel de méthodes,  Orchestration des appels,  Utilisation des Expressions régulières,  Appel d’autres Taskflows,  Boutons de retour,  Modélisation des transactions, Oracle ADF | 02/2014 ADF Controllers © ANASYS
  • 36.
    Composants ADF :La couche Controller (4/4) ADF fournit un grand nombre de composants pour modéliser les Taskflows de tout type, allant d'une simple séquence de pages, à des fonctionnalités complexes de routage et d'orchestration : Oracle ADF | 02/2014© ANASYS
  • 37.
    Composants ADF :La couche Présentation (1/8) Support du multicanal : Applications web, Clients lourds, Mobile, Suite Bureautique... Choix varié de technologies et Frameworks d'implémentation :  ADF Faces  JSF  JSP  ADF Mobile  ADF Swing  Microsoft Office ADF Faces est une extension de JSF basée sur le Framework Apache MyFaces Trinidad.  L’utilisation des composants ADF Faces est recommandée. Oracle ADF | 02/2014© ANASYS
  • 38.
    Composants ADF :La couche Présentation (2/8) 150 composants Rich web components avec support d'AJAX, Fonctionnalités de validation et de contrôle de surface, Fonctionnalités intégrées de Templating, Drag&Drop, Scrolling, Tri..., Composants prêts à l’emploi pour créer des Pop-up, Dialogs, Query, Print… Prévisualisation en mode Design, Support de la personnalisation des interfaces par utilisateur ou par Profil (La personnalisation est stockée dans le référentiel MDS), Rafraichissement Partiel : Partial Page Rendering (PPR), 4 Grandes catégories de composants : Layout, Common, Data Visualization, Opérations, Oracle ADF | 02/2014 ADF Faces © ANASYS
  • 39.
    Composants ADF :La couche Présentation (3/8) Oracle ADF | 02/2014 ADF Faces : Layout Components © ANASYS
  • 40.
    Composants ADF :La couche Présentation (4/8) Oracle ADF | 02/2014 ADF Faces : Common Components (1/2) © ANASYS
  • 41.
    Composants ADF :La couche Présentation (5/8) Oracle ADF | 02/2014 ADF Faces : Common Components (2/2) © ANASYS
  • 42.
    Composants ADF :La couche Présentation (6/8) Oracle ADF | 02/2014 ADF Faces : Operations © ANASYS
  • 43.
    Composants ADF :La couche Présentation (7/8) Oracle ADF | 02/2014 ADF Faces : Data Visualization (1/2) © ANASYS
  • 44.
    Composants ADF :La couche Présentation (8/8) Oracle ADF | 02/2014 ADF Faces : Data Visualization (2/2) Graphes Jauge CartesTables PivotsDiagramme de Gantt © ANASYS
  • 45.
    Composants ADF :ADF Security Oracle ADF | 02/2014 Paramétrage fin de la sécurité et des règles d’accès © ANASYS
  • 46.
    Structure des projets ADF ©ANASYS Oracle ADF | 02/2014
  • 47.
    Projets ADF Dans lecontexte ADF, les fichiers de Métadonnées sont utilisés pour : Stocker la définition des composants ADF Business Components. Définir les paramètres, les méthodes et les valeurs de retour dans les Data Controls. (Les Data Controls représentent l'interface publique des Business Services) Créer des objets de Binding entre les Data Controls et l'UI. Configurer les composants de présentation (Rich User Interfaces Components). Définir la configuration cible sur le serveur d'application. Oracle ADF | 02/2014 Fichiers de Métadonnées © ANASYS
  • 48.
    Projets ADF Hiérarchie desfichiers de Métadonnées : Oracle ADF | 02/2014 Fichiers de Métadonnées © ANASYS
  • 49.
    Projets ADF  bc4j.xcfg: Application Modules MetaData Liste des AM, Connexion DB, Sécurité, Taille des Pools…  AM*.xml : Application Module Definition Stocke la définition des VO et autres BC appartenant au module.  *PageDef.xml : Page Definition files Créé pour chaque page utilisant le modèle : Déclaration du context de binding de la page.  DataBindings.cpx : Binding Context de l’application ADF Mapping entre les pages JSF et les *PageDef.xml. Déclaration des DataControls utilisés par la vue.  adfm.xml : Registry of Registries Maintient le chemin d’accès à tous les fichiers *.cpx, *.dcx, *.jpx, et *.xcfg de l’application. Oracle ADF | 02/2014 Fichiers de Métadonnées © ANASYS
  • 50.
    Projets ADF  <application>.jws: Référentiel de l’application Liste des projets (UI, Modele,…), Versions des composants utilisés  cwallet.sso : Credentials et SSO Stocke les mots de passe d’accès aux ressources externes (DB, Web Services tiers…).  adf-config.xml : Configuration des ressources de l’application Taille du cache, Configuration MDS, Tailles des Pools des ressources...  connections.xml : Informations de connexion aux services externes URL des services, Chaine de connexion JDBC, références utilisées en interne par le projet ADF.  adfc-config.xml, facesconfig.xml, Struts-config.xml : Définition de la logique de navigation Liste des managed beans, Liste des pages, Connexions entre les pages, règles de navigation...  web.xml, weblogic.xml : Descripteurs de déploiement Configuration de l’application web : Liste des Servlets, Listeners, Mapping, Sessions, Cookies, Sécurité J2EE... Oracle ADF | 02/2014 Fichiers de Métadonnées © ANASYS
  • 51.
    Projets ADF Structure del’application ADF : Oracle ADF | 02/2014 Structure d’un projet ADF © ANASYS
  • 52.
    Projets ADF Structure dumodule Model Structure du module UI Oracle ADF | 02/2014 Structure d’un projet ADF © ANASYS
  • 53.
  • 54.
    Retour d’Expérience Oracle ADF| 02/2014 Composante Appréciation Commentaire Architecture technique / Respect des standards et des bonnes pratiques Oracle ADF met en œuvre plusieurs standards (JSR-227, JSR 252, JSR 314...) et Design Patterns (MVC, Abstract Factory, Business Delegate...). Il implémente nativement des bonnes pratiques comme la mise en cache, le Range fetching, les Timeouts… Pérennité Un Framework de développement produit et supporté par Oracle. ADF constitue désormais le socle technique de plusieurs produits Oracle : EBS, HCM, OBIEE, SOA Suite, WebCenter, OBIEE... Compétences et ressources disponibles Peu de développeurs se sont spécialisés dans Oracle ADF en France. Le marché manque de profils spécialisés dans le Framework. Présence sur le marché Oracle ADF prend la place d’Oracle Forms, il est désormais omniprésent dans les produits Oracle Fusion Applications, et dans les applications SOA et WebCenter Portal. © ANASYS
  • 55.
    Retour d’Expérience Oracle ADF| 02/2014 Composante Appréciation Commentaire Clients et communauté • Clients en France : Thélem Assurances, CMA-CGM, CGGVeritas, Arval, Alcatel, SETMAT, MyOracle Support… • Dans le monde : Schneider, Government of Australia, Acco Brands, HYATT, Energie DataServices Nederland, Washington University… Productivité / ROI Oracle ADF permet une approche de développement RAD déclarative et visuelle. Il fournit également un très grand nombre de fonctionnalités, d’assistants et de composants prêts à l’emploi qui permettent une productivité accrue, que ce soit pour le web ou le mobile. Performances, Robustesse, montée en charge, Scalabilité Les applications ADF nécessitent beaucoup de ressources (Mémoire, Disk, Réseau…). Toutefois, un Tuning est possible grâce aux multitudes de possibilités de configuration (Attributs des Métadonnées). © ANASYS
  • 56.
    Principales Forces etFaiblesses • Le « Tout-En-Un » : ADF couvre tout le périmètre de développement et le cycle de vie des projets. • Framework stratégique pour Oracle. • Le choix de la technologie d’implémentation (EJB ou ADF BC, JPA ou ADF DataModel, JSF, Struts ou ADF Faces…). • Un outil 4GL et une approche de développement RAD déclarative et visuelle. • Développement de composants réutilisables (exemples : Taskflows.) • Adapté pour les applications de gestion des données et les applications multicanales avec des interfaces graphiques riches et complexes. Forces • ADF reste compliqué à appréhender, surtout parce que JSF lui-même est compliqué à appréhender. • Beaucoup de nouveaux concepts à assimiler (Navigation entre pages, Task flows, Bindings, Expression Languages). • Les applications ADF sont gourmandes en ressources matérielles, un Tuning fin peut s’avérer nécessaire. • L’aspect Wizard peut être trompeur : La connaissance des technologies sous- jacentes (Java, JSF, HTML, CSS) est indispensable. • Manque de développeurs spécialisés dans le Framework en France. Faiblesses © ANASYS Oracle ADF | 02/2014
  • 57.
  • 58.
    Hassan BOUMARSEL Architecte OracleMiddleware hboumarsel@anasys.fr 06 76 59 05 18 ANASYS Oracle ADF | 02/2014 Contact