Más contenido relacionado
La actualidad más candente (20)
Similar a Oracle ADF : Vue d'ensemble (20)
Oracle ADF : Vue d'ensemble
- 1. 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
- 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
- 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
- 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
- 18. 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
- 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 : 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
- 32. 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
- 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
- 47. 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
- 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
- 52. Projets ADF
Structure du module Model Structure du module UI
Oracle ADF | 02/2014
Structure d’un projet ADF
© ANASYS
- 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 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