® IBM i Développer en EGL (Enterprise Generation Language) sur IBM Power System i (AS/400) avec RDi SOA (Rational Developer for i for SOA Construction) version 7.1 Journée Technologique IBM du 6 novembre 2008 Philippe Bourgeois – IBM France – [email protected] © IBM France 2008 Plan Développer en EGL avec RDi SOA Chapitres 1. Introduction - EGL et RDi SOA 2. Développer une application Web avec accès à DB2 for i © IBM France 2008 2 Qu’est-ce qu’EGL (Enterprise Generation Language) ? EGL est un langage de programmation de haut niveau pour développer des applications métier Masque la complexité technologique sous-jacente Permet le développement rapide d’applications Simplifie le développement de Services Génère un code run-time pour la plate-forme appropriée Java pour Windows, Linux, Unix, i5/OS… COBOL pour l’i5/OS et le z/OS Est le chemin de migration pour les clients CSP, Visual Age Generator et Informix 4GL Intègre des technologies reconnues Eclipse, JSFs, Serveurs d’applications, etc. © IBM France 2008 3 Les 3 principaux avantages d’EGL PORTABLE Java, SOA, COBOL, System i/z/p, Navigateur, ... Génération native optimale Interopérabilité avec les applications legacy Haute productivité et flexibilité Simplicité et robustesse du langage Utilisable immédiatement par les développeurs métier ABSTRACTION © IBM France 2008 Masque la complexité technologique Utilise une approche déclarative Supporte les standards émergents 4 SIMPLE La portabilité d’EGL Windows, Linux, System zUnix System z USS Java Java COBOL COBOL Batch CICS System z iSeries Navigateur IE Safari JavaScript Firefox Web 2.0 © IBM France 2008 Autres serveurs d’applications J2EE COBOL Java Linux IMS WebSphere Application Server Code EGL System z WebSphere Application Server 5 System System i z iSeries WebSphere Application Server Autres serveurs d’applications J2EE Serveur d’applications intégré à l’i5/OS i5/OS natif Quelles applications peut-on développer avec EGL ? Applications Batch Applis 5250/3270 Applis. Web & Web 2.0* Applis GUI* Rapports Sources de donné données Handler Handler Library Library Logique métier Accès aux ressources des applis legacy System i System z © IBM France 2008 • DB2 • SQL Server • Oracle • Informix • DL/1 • VSAM • autres… autres… Service Service/ /Interface Interface Program Program Services Web et natifs System p 6 Interfaces externes • COBOL • RPG • PL/1 • C, C++ • Java SIMPLE EGL = haut niveau d’abstraction EGL VB COBOL/RPG PHP/Ruby COMPLEXE Java/J2EE et C# © IBM France 2008 C, C++ Assembleur Language machine 7 Le modèle de programmation EGL - Introduction Programmes (program) Point d’entrée unique – Principal (main - local) ou appelé (called – local ou distant) Bibliothèque (library) Ensemble de fonctions qui pourront être appelées par les autres composants (local) Services (service) Identiques aux bibilothèques mais peuvent être publiés, exposés sous forme de Services Web et invoqués à distance Gestionnaires de page Web (JSFHandlers) Fichier spécialisé qui permet de contrôler les actions d’entrée/sortie associées à une page Web Gestionnaires de rapports (ReportHandler) Fichier spécialisé qui permet de contrôler les actions d’entrée/sortie associées à un rapport BIRT ou JASPER Build Files (.eglbld) Contiennent les spécifications nécessaires à la génération du code (Java ou Cobol) © IBM France 2008 8 L’environnement de développement RDi SOA RDi SOA : Rational Developer for i for SOA Construction Combinaison de 3 produits : RBD : Rational Business Developer pour développer des applications EGL RDi : Rational Developer for i pour développer des applications RPG/Cobol HATS Toolkit : pour webiser des applications 5250 (runtime non fourni) Se commande : Soit par le configurateur : 5733-SOA – N’est pas couvert par l’abonnement logiciel –> ne pas oublier de commander la maintenance software Soit par Passport Advantage : 5724-T83 (IBM Rational Developer for System i for SOA Construction Authorized User License + SW Subscription & Support 12 Months : D03L5LL) Prix : 2029 € par développeur Version d’essai disponible 60 jours (version actuelle : 7.1) : http://www.ibm.com/developerworks/downloads/r/rbex/learn.html http://www.ibm.com/developerworks/downloads/r/rdi/learn.html © IBM France 2008 9 Qu’est-ce que Rational Business Developer (RBD) ? L’environnement de développement (IDE, Integrated Development Environment) pour développer des applications EGL Membre de la Rational Software Development Platform (RSDP) Basé sur Eclipse (RBD 7.1 s’appuie sur Eclipse 3.2) © IBM France 2008 10 RBD – Quelques notions à connaître Espace de travail (workspace) Ensemble de projets (EGL, Web, Java, HATS…) , euxmêmes constitués de dossiers et de fichiers Il est possible de créer plusieurs workspaces Projet Projet Web EGL Ensemble des ressources constituant une application Web développée en EGL Contient 3 dossiers principaux : Workspace Dossiers EGL Source – Contient tous les sources EGL (fichiers .egl) Ressources Java : src – Contient tous les sources Java (fichiers .java) générés à partir des sources EGL Fichiers WebContent – Contient toutes les ressources Web (fichiers JSPs, images, CSS…) © IBM France 2008 11 Ma première application Web avec EGL © IBM France 2008 12 Mise en oeuvre Les étapes Créer une page Web “hello1.jsp” et choisir un modèle de page (template) Personnaliser la page Editer le code EGL contenant la logique de gestion de la page (jsfhandler) Glisser-poser des variables EGL dans la page pour créer des composants JSF Réitérer les étapes 1 à 4 pour la page “hello2.jsp” Exécuter (tester) les pages sur le serveur © IBM France 2008 13 RBD – Création d’une page Web (source .jsp) © IBM France 2008 14 RBD – Personnalisation de la page Web © IBM France 2008 15 RBD – Edition du code de page (source .egl) © IBM France 2008 16 RBD – Ajouter des zones EGL à la page Web © IBM France 2008 17 RBD – Ajouter des fonctions EGL à la page Web © IBM France 2008 18 RBD – Tester (exécuter) la page Web © IBM France 2008 19 RBD – Tester (exécuter) la page Web - Résultat © IBM France 2008 20 RBD – Création d’une seconde page Web et du code de page associé © IBM France 2008 21 RBD – Ajout des zones EGL à la page Web © IBM France 2008 22 RBD - Résultat © IBM France 2008 23 Plan Développer en EGL avec RDi SOA Chapitres 1. Introduction - EGL et RDi SOA 2. Développer une application Web avec accès à DB2 for i © IBM France 2008 24 Ce que l’on veut obtenir © IBM France 2008 25 Mise en oeuvre Pour le développement de cette page Web simple, nous allons utiliser le modèle de développement suivant : 1. Définition du modèle de base de données Création de fonctions permettant les opérations de lecture, ajout, mise-à-jour et suppression d’enregistrements base de données 2. Développement de la page Web Edition du code de page EGL afin d’appeler la logique métier Ajout des variables et fonctions EGL sur la page Web sous forme de composants JSF © IBM France 2008 26 RBD - L’assistant d’accès base de données Pour simplifier l’accès aux bases de données, RBD fournit un assistant qui permet, à partir des tables et vues de la base de données de générer : Un « dictionnaire » (répertoire) contenant les définitions des colonnes de chaque table source dataDefinitions.egl Des enregistrements de type sqlRecord, correspondant à la structure de chaque table et vue souces nom_table.egl Des bibliothèques de fonctions d’accès aux données (lecture, ajout, mise-à-jour et suppression) sources nom_tableLib.egl Il est possible de modifier et compléter ces sources Et il est bien sûr possible de se créer ses propres fonctions d’accès aux données © IBM France 2008 27 RBD – Application EGL d’accès aux données © IBM France 2008 28 RBD – Application EGL d’accès aux données © IBM France 2008 29 RBD – Application EGL d’accès aux données - Résultats L’assistant crée 4 ensembles de ressources dans 4 packages différents 1. Control Records – utilisés dans les “Data Access Libraries” 2. Data Access Libraries – fonctions de lecture, mise-à-jour, ajout et suppression d’enregistrements 3. Data Access Records – enregistrements EGL de type sqlRecord Control Records Data Access Libraries Data Access Records EGL DataItems 4. EGL DataItems – dictionnaire contenant les définitions des colonnes © IBM France 2008 30 EGL - Les dataitem et les sqlRecord © IBM France 2008 31 EGL – Le fichier ConditionHandling.egl © IBM France 2008 32 EGL – Les fonctions des bibliothèques xxxLib.egl © IBM France 2008 33 EGL – Affichage / Ajout de l’instruction SQL © IBM France 2008 34 EGL – Affichage / Ajout de l’instruction SQL © IBM France 2008 35 EGL – Validation de l’instruction SQL après modification © IBM France 2008 36 EGL – Génération du code © IBM France 2008 37 RBD – Création de la page « liste_des_films.jsp » © IBM France 2008 38 RBD – Création de la page « liste_des_films » - Ajout d’une variable EGL © IBM France 2008 39 RBD – Création de la page « liste_des_films » - Ajout du contrôle de liste © IBM France 2008 40 RBD – Création de la page « liste_des_films » - Résultat © IBM France 2008 41 RBD – Page « liste_films » - Edition du code de page © IBM France 2008 42 RBD – Exécution sur le serveur - Résultat © IBM France 2008 43 RBD – Personnalisation de la page Web « liste_films » - Bordure © IBM France 2008 44 RBD – Personnalisation de la page Web « liste_films » - Ajout pagination © IBM France 2008 45 RBD – Personnalisation de la page Web « liste_films » - Catégorisation © IBM France 2008 46 EGL – Site Web © IBM France 2008 47 EGL – Formation © IBM France 2008 48