Modernisation et développement d applications IBM i Stratégies, technologies et outils



Documents pareils
IBM Power Systems - IBM i IBM Rational

S1 Boostez votre productivité avec la version 9 des solutions Rational pour IBM i

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Java pour le Web. Cours Java - F. Michel

WEBSPHERE & RATIONAL. Jacques Rage

Module BD et sites WEB

Notre Catalogue des Formations IT / 2015

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Introduction à. Oracle Application Express

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Hébergement de sites Web

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

les techniques d'extraction, les formulaires et intégration dans un site WEB

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2011/2012

1 JBoss Entreprise Middleware

Formation en Logiciels Libres. Fiche d inscription

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

Ingénieur Développement Nouvelles Technologies

Vulgarisation Java EE Java EE, c est quoi?

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

JOnAS Day 5.1. Outils de développements

Catalogue des Formations Techniques

Expert technique J2EE

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

> + Consultant / Architecte JEE Indépendant. Fabien GUIBERT 34 ans, 11 ans d expérience d expérience COMPETENCES / DOMAINES METIERS

30 ans d ingénierie, 23 ans de conseil en architecture de SI

Projet de développement

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Modernisation et développement d applications sur IBM Power System i : où en est-on aujourd hui?

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Mise en œuvre des serveurs d application

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

Développement des Systèmes d Information

Armand PY-PATINEC 2010

Introduction à la plateforme J2EE

Modernisation et développement d applications IBM i

Bureautique Initiation Excel-Powerpoint

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

Refonte front-office / back-office - Architecture & Conception -

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Assurances & Mutuelles, Industrie, Santé, Énergie, Transport, Médias / Multimédias, Télécoms, Services

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Modernisation et développement d applications IBM i Technologies, outils et nouveautés 2012/2013. Volubis.fr

Devenez un véritable développeur web en 3 mois!

Joomla! Création et administration d'un site web - Version numérique

Famille IBM WebSphere Application Server

Sommaire Livre blanc CGIDEV2 pour RePeGlio

Environnements de développement (intégrés)

10. Base de données et Web. OlivierCuré

Applications distribuées: le retour du client "riche"

La reconquête de vos marges de manœuvre

Logiciels libres et Open source

Vérifier la qualité de vos applications logicielle de manière continue

JACi400 Développement JACi400 Déploiement

ECLIPSE ET PDT (Php development tools)

JOnAS 5. Serveur d application d

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

2.1 Liferay en un clin d'oeil Forces, faiblesses, opportunités et menaces Résumé de notre évaluation... 5

IBM DB2 Alphablox. d administration GC

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

R E S O T E L. Ingénierie des Systèmes Informatiques Réseaux et Télécommunications. Calendrier des Formations IT

LES SOLUTIONS OPEN SOURCE RED HAT

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

COMPÉTENCES TECHNIQUES

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2011/2012

Systèmes en réseau : Linux 1ère partie : Introduction

Catalogue Formations Jalios

GECKO Software. Introduction à MOBIDICK. Modular But Integrated Application Framework

A5.2.4 Étude d une technologie, d'un composant, d'un outil

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Architectures web/bases de données

Formation Webmaster : Création de site Web Initiation + Approfondissement

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Créateur de sites Internet. Développeur de logiciels.

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

Automation Engine 10. Plates-formes prises en charge

Paul FLYE SAINTE MARIE

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Environnements de Développement

DotNet. Plan. Les outils de développement

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Président d Inotekk Gestion de la société, développement du portefeuille clients, gestion et réalisation des projets informatiques

Livre Blanc WebSphere Transcoding Publisher

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Transcription:

IBM Power Systems IBM i Modernisation et développement d applications IBM i Stratégies, technologies et outils S5 Développement d'applications Web sous IBM i : comparaison des solutions CGI-PHP-Java-EGL Lundi 16 mai 2011 16h00 Mardi 17 mai 2011 11h00 Philippe Bourgeois - pbourgeois@fr.ibm.com IBM France 2009

Objectif et plan de la présentation L objectif de cette session est de présenter et de comparer quatre langages/technologies qui permettent de développer des applications Web sous IBM i : CGI, PHP, Java et EGL Présentation : principes, mise en œuvre, accès aux ressources IBM i Comparaison : compétences et formation nécessaires, logiciels nécessaires, facilité, prix, support Plan Quelques mots sur l architecture des applications Un exemple très simple qui nous servira pour le comparatif Présentation des solutions CGI, PHP, Java et EGL Synthèse sous forme de tableau comparatif 2

La nouvelle architecture des applications Objectifs: Développer de nouvelles interfaces utilisateur Vue Client Web, Web 2.0 Client mobile Client Windows Pouvoir accéder à la logique métier RPG / COBOL Contrôleur Logique de contrôle RPG, COBOL, Java, PHP, EGL,.NET, autres Développer en MVC : Modèle Vue Contrôleur Modèle Logique métier RPG/COBOL SQL, C, Java, PHP, EGL, autres DB2 SQL 3

L exemple pour la comparaison Ce que l on veut obtenir 4

L exemple pour la comparaison Ce que l on veut obtenir 5

Développement en CGI 6

1. Qu'est-ce que CGI? CGI : Common Gateway Interface CGI permet de développer des applications Web en intégrant des APIs de gestion du HTML dans des programmes écrits en ILE RPG/COBOL Les inconvénients des APIs CGI Assez peu documentées Imbrication du HTML dans le code du programme Nécessité de recompiler le programme lorsque le HTML change Pas de possibilité d utiliser des éditeurs HTML Pas de développement MVC La solution : CGIDEV2 Bibliothèque de fonctions permettant de faciliter le développement d applications Web en CGI et ILE RPG (HTML externe, validation des données, gestion des messages, etc.) Gratuit - Développé et maintenu par IBM Lab Services Tutoriaux et exemples sur le site EASY400.NET 7

2. CGI - Architecture (avec CGIDEV2) http://mon_serveur:7000/cgi/pgm1.pgm IBM i Serveur HTTP (IBM HTTP Server for IBM i) Document HTML1 /section1 Content-type: text/html Programme ILE RPG PGM1 1) Récupération des données en input (GET ou POST) 2) Traitement 3) Chargement du document HTML1 4) Affectation des données en output (ici prenom) 5) Ecriture des «sections» HTML (ici section1) <html><body> <p>bonjour /%prenom%/</p> </body></html> Programme de service CGISRVPGM2 Fourni avec CGIDEV2 Procédures qui encapsulent les APIs CGI 8

3. CGI - Exemple 1/4 Formulaire de saisie 9

3. CGI - Exemple 2/4 - Contrôleur 10

3. CGI - Exemple 3/4 - Modèle 11

3. CGI - Exemple 4/4 Vue 12

4. CGI - De quoi a-t-on besoin? Développement Pour développer les programmes RPG RD Power ou SEU Pour développer les pages Web RDi SOA (qui inclut RD Power) ou Eclipse + plugin WDT (Web Development Tools) ou autre éditeur HTML Exécution Le serveur HTTP de l IBM i (57xx-DG1 IBM HTTP Server for IBM i, fourni en standard avec l IBM i) Les sources des pages Web (fichiers HTML, images, feuilles de style ) sont stockés dans l IFS 13

5. CGI - Etapes de mise en œuvre 1/2 A. Télécharger et restaurer la bibliothèque CGIDEV2 http://www-03.ibm.com/systems/services/labservices/library/ 14

5. CGI - Etapes de mise en œuvre 2/2 Mettre à jour le groupe de PTFs sur le serveur HTTP Installer RDi SOA ou autre outil pour développer les pages Web RDi SOA permet en un seul outil de développer les pages Web et les programmes RPG Développer, tester! 15

6. CGI - Comment accéder aux ressources IBM i? Comme d habitude, puisque l on développe en RPG! Accès à DB2 for i, programmes, DTAARA, DTAQ 16

7. CGI - Quelles sont les compétences nécessaires? Des compétences HTML, CSS et JavaScript Pour le développement des pages Web Des compétences dans l utilisation de CGIDEV2 A partir du site de EASY400.NET : http://www.easy400.net/cgidev2/start 17

8. CGI - Prix et support Prix La bibliothèque CGIDEV2 : gratuite Le serveur HTTP pour IBM i : gratuit, fourni en standard L environnement de développement : RD Power : 839 par développeur (*) Version d évaluation 2 mois RDi SOA : 2102 par développeur (*) Version d évaluation 2 mois Autres possibilités : SEU + Eclipse + WDT, SEU + éditeur HTML tiers Support CGIDEV2 : IBM Lab Services Serveur HTTP : IBM RD Power / RDi SOA : IBM (*) Prix catalogue au 01/04/2011 Susceptible de modification sans préavis Autres offres tarifaires possibles (licences flottantes, trade-up ) 18

9. CGI - Pour en savoir plus 1/3 Les tutoriaux et exemples de EASY400 http://www.easy400.net/cgidev2/start 19

9. CGI Pour en savoir plus 2/3 Renaissance (CoralTree) : framework opensource basé sur CGIDEV2 20

9. CGI Pour en savoir plus 3/3 powerext : framework opensource basé sur CGIDEV2 21

Développement en PHP 22

1. Qu est-ce que PHP? 1/2 PHP = PHP: Hypertext Preprocessor PHP est un langage de scripts (côté serveur) pour le développement d applications Web dynamiques C est une langage open-source, portable, simple, robuste et sécurisé Les scripts sont traités à la demande (pas de compilation) PHP est le langage le plus utilisé pour le développement Web : Simplicité (facile à apprendre (procédural), utiliser, administrer) Ouverture, flexibilité et interopérabilité PHP est le langage de choix pour la plupart des applications Web (Intranet / extranet / internet, gestion de contenu, CRM, e-commerce, forums, blogs, wikis, web-mail ) Une communauté importante et très active Le cœur de PHP est développé par la communauté Des milliers d applications open-source ou commerciales Des dizaines de clubs utilisateurs 23

1. Qu est-ce que PHP? 2/2 PHP et IBM i Le support de PHP sous IBM i se fait par les solutions Zend Zend : «The PHP Company» Ont développé le ZEND ENGINE : le noyau technologique de PHP IBM et Zend ont signé un accord de partenariat afin de délivrer les produits et solutions Zend pour IBM i : Zend Studio for i : environnement de développement d applications PHP Zend Server for i : environnement d exécution et de supervision d applications PHP Ojectifs Développement rapide et simple d applications Web sous IBM i Accès à DB2 for i et aux ressources IBM i (programmes, DTAQ ) Extension des applications 5250 existantes (appel de scripts PHP à partir d applications RPG/COBOL) : graphiques, PDF, appel de Services Web 24

2. PHP Architecture http://mon_serveur:7000/php/pgm1.php PASE IBM i IBM HTTP Server for IBM I Module Fast CGI Scripts PHP Programme FastCGI Zend Server Objets DB2 for i 25

3. PHP - Exemple 1/4 Formulaire de saisie 26

3. PHP - Exemple 2/4 Contrôleur Le code exposé ci-dessus et pages suivantes est donné à titre d exemple. Il pourrait être bien évidemment être amélioré (utilisation de variables, gestion des exceptions, utilisation de frameworks ) 27

3. PHP - Exemple 3/4 Modèle 28

3. PHP - Exemple 4/4 Vue 29

4. PHP - De quoi a-t-on besoin? Développement Zend Studio for IBM i Basé sur Eclipse Zend Studio V8 peut s installer comme plugin de RDp V8 1 seul environnement de développement pour PHP et RPG/COBOL Remarque : Zend Studio for IBM i n est pas un outil de conception de pages Web (il dispose juste d un éditeur HTML) Zend Studio V8 peut s installer comme plugin de RDi SOA V8, pour disposer des outils de conception de pages Web Pour l obtenir : auprès de Zend, par téléchargement ou par commande HW/SW IBM i (econfig/aas) : 5639-ZS1 Ou Eclipse + plugin PDT (PHP Development Tools) ou autre plugin Ou autres éditeurs 30

4. PHP - De quoi a-t-on besoin? Développement - Zend Studio for i - Fonctionnalités Edition, exécution, débogage et profilage de scripts PHP Projets PHP locaux avec possibilité de support remote Accès distant par FTP ou SSH Edition de scripts Sources en couleur, vérification de syntaxe en ligne, complétion de code, templates, formattage, refactoring, suggestion de corrections, support Java Script Débogage de scripts En local ou à distance sur le System i Pas à pas (over/into), exécution jusqu au curseur, points d arrêt conditionnés Intégration dans Internet Explorer et Firefox Support SQL pour les bases de données DB2 et MySQL Support des Services Web Travail en équipe (SVN, CVS) Tests unitaires avec PHPUnit Documentation de code avec PHPDocumentor 31

4. PHP - De quoi a-t-on besoin? Zend Studio for Eclipse 32

4. PHP - De quoi a-t-on besoin? Ou Zend Studio comme plugin de RDp 33

4. PHP - De quoi a-t-on besoin? Exécution Le serveur HTTP de l IBM i (57xx-DG1 IBM HTTP Server for IBM i, fourni en standard avec l IBM i) Zend Server for IBM i Environnement d exécution PHP (Zend Server CE, Community Edition anciennement Zend Core) et de supervision et optimisation des applications PHP (Zend Server dans sa version complète anciennement Zend Platform) Inclut : le PHP Toolkit for IBM i (accès aux ressources IBM i à partir de PHP) MySQL Community Edition et PHPMyAdmin Zend Framework Les Java Bridge et 5250 Bridge 34

4. PHP - De quoi a-t-on besoin? Zend Server for IBM i versus Zend Core for IBM i Les fonctionnalités de Zend Server CE qui n existaient pas dans Zend Core Optimizer+ (accélération de bytecode) Cache de données Java Bridge et 5250 Bridge Les fonctionnalités de Zend Server version complète, qui ne sont pas disponibles avec la version CE : Code tracing Pour la détermination des problèmes (scripts lents, erreurs d exécution ) Job Queue Exécution asynchrone de scripts PHP Page caching Cache des pages 35

4. PHP - De quoi a-t-on besoin? Zend Server for IBM i Menus 5250 36

4. PHP - De quoi a-t-on besoin? Zend Server for IBM i Interface d administration Web 37

4. PHP - De quoi a-t-on besoin? Optionnellement, installation de MySQL for IBM i La base de données MySQL La base de données OpenSource la plus utilisée Le M de la plateforme LAMP (Linux, Apache, MySQL, PHP) MySQL s installe sur IBM i Juillet 2007 : MySQL AB a annoncé la disponibilité de la base de données MySQL sur IBM i version Community Server (gratuit, pas de support) version Enterprise Server (facturable, 3 niveaux de support) Mars 2009 : DB2 for i comme moteur de stockage de MySQL : Applications développées pour MySQL, données stockées dans DB2 Accès aux données MySQL à partir d interfaces i (programmes RPG/COBOL ) Décembre 2010 : Oracle annonce l arrêt du support de MySQL sous IBM i et AIX Installation d applications PHP sur IBM i Blogs, wikis, CRM Permet d ouvrir le System i aux milliers d applications PHP disponibles 38

4. PHP - De quoi a-t-on besoin? MySQL peut être automatiquement installé lors de l'installation de Zend Server for IBM i L'administration de MySQL for i peut de faire par un menu 5250 39

5. PHP - Etapes de mise en oeuvre Télécharger Zend Server for i et Zend Studio for i du site de Zend Installer Zend Server for i sur le System i Quelques prérequis (5733-SC1, groupe de PTFs sur le serveur HTTP ) Installation de MySQL optionnelle Installer la clé de licence si utilisation de Zend Server en version complète Installer Zend Studio for i sur un PC développeur Seul ou comme plugin d un produit Rational (RDp, RDi SOA ) Installer la clé de licence Configurer le débogage distant Développer, tester, superviser, optimiser! 40

6. PHP - Comment accéder aux ressources IBM i? PHP Extensions (ibm_db2, odbc, pdo_ibm) PHP Toolkits for i Zend Framework (db2 adapter) DB2 for i PHP Extensions (mysql, odbc, pdo_mysql) Zend Framework MySQL i PHP PHP Toolkits for i Procédures stockées SQL ( extensions ibm_db2, odbc, pdo_ibm ou Zend Toolkit) Services Web Programmes ou procédures RPG/Cobol PHP PHP Toolkits for i DTAARA, DTAQ 41

6. PHP - Comment accéder aux ressources IBM i? Exemple Appel RPG via une procédure stockée 42

6. PHP - Comment accéder aux ressources IBM i? PHP Toolkits for i Ensembles de fonctions / classes PHP permettant d accéder à des ressources IBM i appel des commandes CL appel des programmes accès à DB2 for i en mode natif accès à des DTAARA, DTAQ, User Spaces récupération de valeurs système récupération d une liste de spools, d afficher un spool, de créer un spool récupération d une liste d objets Deux PHP Toolkits for i disponibles : L original (i5 PHP Toolkit) produit EasyCom de AURA Equipements Fourni gratuitement avec Zend Server for i jusqu à fin 2011, facturable ensuite L Open Source PHP Toolkit for i, actuellement en version bêta Les fonctionnalités offertes ne sont pas identiques 43

7. PHP - Quelles sont les compétences nécessaires? Des compétences HTML, CSS et JavaScript Pour le développement des pages Web Des compétences dans les domaines suivants : Langage PHP cours IBM/Zend de 4 jours (AS55FR PHP, l essentiel) Spécificités PHP sur i (installation, accès à DB2, appel de programmes ) cours IBM de 2 jours (AS47FR PHP sur System i) Optionnellement, frameworks permettent de faciliter la conception d applications Web dynamiques : Zend Framework, PRADO, CakePHP 44

8. PHP - Prix et support Zend Studio for IBM i Gratuit avec 1 an de maintenance (support Silver) Support réalisé par Zend Deux autres niveaux de support facturables : Gold et Platinium Voir présentation de la session «S4. PHP et les solutions Zend pour IBM i» Zend Server for IBM i Zend Server Community Edition for i Gratuit, livré avec l IBM i 5.4, 6.1, 7.1 ou téléchargebale du site de Zend Inclut 1 an de support Silver (support Zend), non renouvelable Zend Server for i Inclut les fonctionnalités de la version CE + des fonctionnalités avancées Remplace Zend Core + Zend Platform for IBM i Téléchargeable du site Zend ou commandable par IBM Facturable avec support Gold et Platinium Voir présentation de la session «S4. PHP et les solutions Zend pour IBM i» Support réalisé par Zend 45

9. PHP - Pour en savoir plus 46

9. PHP - Pour en savoir plus 47

Développement en Java J2EE 48

1. Qu est-ce que Java / J2EE? Java est un langage de programmation orienté objet permettant de développer des applications client-serveur (client lourd, client léger Web, Web 2.0, mobile) C est un langage Très répandu Robuste Portable : Les sources (.java) sont compilés en classes (.class) Classe : bytecode (code indépendant de la plate-forme) interprété par une JVM (Java Virtual Machine) Applications J2EE (appelé maintenant Java EE : Java Enterprise Edition) Applications d entreprise Plus particulièrement applications Web dynamiques s exécutant dans un serveur d applications 49

2. J2EE Architecture http://mon_serveur:7000/j2ee/servlet1 IBM i Servlet JavaBean Objets IBM HTTP Server for IBM I JSP WAS (WebSphere Application Server) ou Integrated Application Server DB2 for i 50

3. J2EE - Exemple 1/4 Formulaire de saisie 51

3. J2EE - Exemple 2/4 Contrôleur Le code exposé ci-dessus et pages suivantes est donné à titre d exemple. Il pourrait être bien évidemment être amélioré (utilisation de variables, gestion des exceptions, utilisation de frameworks ) 52

3. J2EE - Exemple 3/4 Modèle 53

3. J2EE - Exemple 4/4 Vue 54

4. J2EE - De quoi a-t-on besoin? Développement RAD SE (Rational Application Developer Standard Edition) ou RAD version complète Ou Eclipse + plugin WDT (Web Development Tools) ou autre RAD peut être combiné avec RDp(i) (développement J2EE + RPG/COBOL) Le package RAD SE + RDp(i) s appelle «Power Tools for i» Développement des pages Web : éditeur PageDesigner intégré - Utilisation possible du framework des JSFs (Java Server Faces) Test et débogage en local (environnement de test WebSphere Application Server, Tomcat ou autre) Pour développer plus rapidement : utiliser un framework. Par exemple les JSFs (JSR127) glisser/poser de composants liage des composants avec les zones et fonctions métier gestion des événements gestion des messages internationalisation moins de code à écrire 55

4. J2EE - De quoi a-t-on besoin? RAD (Rational Application Developer) : un ensemble d outils pour développer des applications Java et J2EE, des portails et portlets,des Services Web et applications SOA, des applications Web et Web 2.0 Editeur de source sophistiqué Complétion de code, correction des erreurs, refactoring Outils d optimisation de la qualité du code et de modélisation du code Outils de développement Web et Web 2.0 Editeurs visuels HTML, JSP, JSF Editeurs de CSS, JavaScript Conception de sites Web Support AJAX, JSON, DOJO Outils de développement de portlets et portails Outils de développement XML Outils de développement bases de données Outils de développement de Services Web Intégration des serveurs d application (WAS, Tomcat, tiers) 56

4. J2EE - De quoi a-t-on besoin? RAD (Rational Application Developer) Conception WYSIWYG des pages Web 57

4. J2EE - De quoi a-t-on besoin? Exécution (sous IBM i) Le serveur HTTP de l IBM i (57xx-DG1 IBM HTTP Server for IBM i, fourni en standard avec l IBM i) Un serveur d applications Web Environnement d exécution, de supervision et d optimisation des applications J2EE WebSphere Application Server (WAS) Versions Express, Base et Network Deployment (WAS 7.0 et 6.1) La version Express est livrée avec l IBM i 7.1, 6.1 et 5.4 La version ND permet de faire du clustering et workload management Ou le serveur d applications Web intégré à l IBM i Un conteneur Web pour l exécution d applications Web «simples» (servlets/jsps/jsfs - pas de support des EJBs, ni de JMS) Est basé sur le framework OSGI (Open Services Gateway Initiative) Consomme peu de mémoire et démarre rapidement Est utilisé en interne pour certains softwares (DB2 Web Query ) 58

4. J2EE - De quoi a-t-on besoin? Console d administration des serveurs HTTP, WAS et intégré 59

5. J2EE - Etapes de mise en oeuvre Installer RAD SE (+ RD Power) sur un PC développeur Développer les applications Web sous RAD Possibilité de tester/déboguer dans le serveur d applications local (WAS ) Packager ces applications Web dans des fichiers EAR/WAR Installer, si nécessaire, un serveur d applications WAS sur System i Note : WAS ou un autre serveur d applications peut être installé sur un serveur en frontal du System i Déployer l application Web dans le serveur d applications (WAS, serveur d applications Web intégré à l IBM i ) 60

6. J2EE - Comment accéder aux ressources IBM i? 1) Accès aux données de DB2 for i en JDBC (accès en SQL) par des classes de la Toolbox (accès niveau enregistrement) 2) Appel de programmes (*PGM) ou de procédures d'un programme de service (*SRVPGM) en JDBC (par des procédures stockées) par des classes de la Toolbox par des Services Web DB2 JDBC Toolbox for Java Java JDBC Toolbox for Java Service Web *PGM *SRVPGM 61

6. J2EE - Comment accéder aux ressources IBM i? IBM Toolbox for Java Ensemble de classes 100% Java permettant d'accéder aux ressources IBM i à partir d'un programme Java commandes et programmes DTAARAs et DTAQs IFS Attributs du système, d'un travail, d'un profil utilisateur Messages Imprimantes et spoules Fichiers et enregistrements base de données, etc. Les classes peuvent être utilisées à partir de n'importe quel programme Java Fourni en standard avec l IBM i et en Open Source (JT Open) 62

6. J2EE - Comment accéder aux ressources IBM i? Exemple Appel RPG via une procédure stockée 63

7. J2EE - Quelles sont les compétences nécessaires? Des compétences HTML, CSS et JavaScript Pour le développement des pages Web Mais les outils dans RAD facilitent considérablement le travail Des compétences dans les domaines suivants : Programmation orientée objet Langage Java Développement J2EE (servlets, JSPs) Serveur d applications (data sources, pools de connexions ) WebSphere Application Server Frameworks JSFs, struts, groovy Pour démarrer : Cours AS08FR Java pour programmeurs RPG 5 jours 64

8. J2EE - Prix et support L environnement de développement : Power Tools for IBM i (RAD SE + RDp(i)) : 2595 par développeur (*) Support : IBM Autres possibilités : SEU + Eclipse + WDT L environnement d exécution : Serveur d applications Web intégré : gratuit, fourni avec l IBM i WAS Express for i : gratuit, fourni avec l IBM i Support : IBM (*) Prix catalogue au 01/04/2011 Susceptible de modification sans préavis Autres offres tarifaires possibles (licences flottantes, trade-up ) 65

9. J2EE - Pour en savoir plus 66

9. J2EE - Pour en savoir plus 67

Développement en EGL 68

1. Qu est-ce qu EGL? EGL est un langage de programmation IBM de haut niveau pour développer des applications métier Permet le développement rapide d applications Web et Web 2.0 mais également batch, 5250 et 3270 Masque la complexité technologique sous-jacente Simplifie le développement et la consommation de Services Génère un code run-time pour la plate-forme appropriée Java pour Windows, Linux, Unix, IBM i, z/os COBOL pour l IBM i et le z/os Intègre des technologies reconnues et supporte les standards émergents EGL est devenu un projet Eclipse en 2010 69

1. Qu est-ce qu EGL? EGL permet de conserver le confort du développement RPG/COBOL langage procédural contrôles de validité des zones (~ RANGE, VALUES, CHECK...) entêtes de colonne (~ COLHDG) dictionnaire de données (~répertoire) zones numériques avec décimales (num, dec) structures de données simples ou à occurences multiples Mais pour développer des applications Web ou Web 2.0 En masquant la complexité technologique Des accès bases de données, appel de Services Web, validation des données, etc. Objectifs : portabilité et simplicité 70

1. Qu est-ce qu EGL? EGL permet de simplifier le développement d applications RIA (Rich Internet Applications) - RUI (Rich User Interface) Applications Web dont l interface utilisateur est composée d éléments individuels au rendu dynamique, s exécutant dans le navigateur Une interface proche des applications client «lourd» et la facilité de gestion des applications Web Les applications Web du futur Technologies : Javascript, AJAX, DOJO, JSON, widgets, services Web, SOAP, REST EGL permet de développer rapidement et en utilisant un seul langage des applications RIA 71

2. EGL Architecture Applications Web http://mon_serveur:7000/egl/egl1.faces IBM i Servlet JavaBean Objets IBM HTTP Server for IBM I JSF JSP WAS (WebSphere Application Server) ou Code généré Integrated Application Server DB2 for i 72

2. EGL Architecture Applications Web 2.0 (RIA) http://mon_serveur:7000/egl/egl1.html HTML + AJAX (JavaScript + XML) - Code généré IBM i Services Java Objets IBM HTTP Server for IBM I Code généré WAS (WebSphere Application Server) DB2 for i 73

3. EGL - Exemple 1/4 Formulaire de saisie 74

3. EGL - Exemple 2/4 «Contrôleur» Le code exposé ci-dessus et pages suivantes est donné à titre d exemple. Il pourrait être bien évidemment être amélioré (gestion des exceptions ) 75

3. EGL - Exemple 3/4 Modèle 76

3. EGL - Exemple 4/4 Vue La vue est générée automatiquement, la lecture du code a moins d intérêt 77

4. EGL - De quoi a-t-on besoin? Développement RBD (Rational Business Developer) Permet de développer des applications Web, Web 2.0, 5250 et 3270 Support de multiples bases de données Fait partie du package RDi SOA (RDi SOA = RBD + RDp(i)) Facturable (voir point 9) Un seul outil et un seul langage pour développer des applications Web/Web 2.0 + RPG/COBOL Développement des pages Web / Web 2.0 en mode WYSIWYG Test et débogage en local (environnement de test WebSphere Application Server, Tomcat ou autre) Ou EGL Community Edition (EGL CE) Permet de développer uniquement des applications Web 2.0 Supporte uniquement les bases de données DB2, MySQL et Derby Tests sous Tomcat uniquement Gratuit, pas de support (voir point 9) 78

4. EGL - De quoi a-t-on besoin? RBD (Rational Business Developer) Conception WYSIWYG des pages Web ou Web 2.0 79

4. EGL - De quoi a-t-on besoin? Exécution (sous IBM i) Le serveur HTTP de l IBM i (57xx-DG1 IBM HTTP Server for IBM i, fourni en standard avec l IBM i) WebSphere Application Server (WAS) Pour exécuter le code J2EE (applications Web) ou les services (applications Web 2.0) Versions Express, Base et Network Deployment (WAS 7.0 et 6.1) La version Express est livrée avec l IBM i 7.1, 6.1 et 5.4 La version ND permet de faire du clustering et workload management 80

4. EGL - De quoi a-t-on besoin? Console d administration des serveurs HTTP et WAS 81

5. EGL - Etapes de mise en oeuvre Installer RBD (+ RD Power) ou EGL CE sur un PC développeur Développer les applications Web / Web 2.0 sous RBD Possibilité de tester/déboguer dans le serveur d applications local (WAS ) ou même sans serveur pour le Web 2.0 Packager ces applications Web / Web 2.0 dans des fichiers EAR/WAR Installer, si exécution sous IBM i, WAS sur le System i Note : WAS ou un autre serveur d applications peut être installé sur un serveur en frontal du System i Déployer l application Web dans WAS 82

6. EGL - Comment accéder aux ressources IBM i? Accès à DB2 : en natif Support de multiples bases de données dont DB2 for i Appel de programmes RPG/COBOL/CL En SQL par des procédures stockées Par l appel de Services Web Accès au DTAARA et DTAQ Par des fonctions fournies en standard 83

7. EGL - Quelles sont les compétences nécessaires? Des compétences HTML, CSS et JavaScript Pour le développement des pages Web Mais les outils dans RBD facilitent considérablement le travail Des compétences EGL Formation sur site en français Ou formation en «distance learning» en anglais Ou auto-formation 84

7. EGL - Quelles sont les compétences nécessaires? Auto-formation 85

8. EGL - Prix et support Développement RDi SOA : Rational Developer for i for SOA Construction RBD + RD Power RPG and COBOL Development Tools for IBM i 5733-SOC ou 5724-T83 2102 / developpeur (*) Version d évaluation 2 mois Support : IBM EGL CE Gratuit Pas de support Exécution : WAS Express for i : gratuit, fourni avec l IBM i Support : IBM (*) Prix catalogue au 01/04/2011 Susceptible de modification sans préavis Autres offres tarifaires possibles (licences flottantes, trade-up ) 86

9. EGL - Pour en savoir plus 87

9. EGL - Pour en savoir plus S18 - Développez rapidement des applications Web 2.0 avec le langage IBM EGL (Enterprise Generation Language) Mardi 17 mai 15h30 88

Comparaison CGI, EGL, J2EE et PHP sous IBM i 1. Caractéristiques générales CGI (CGIDEV2) EGL J2EE PHP Langage propriétaire Oui : IBM (APIs dans pgms RPG) Oui : IBM Projet Eclipse Open EGL Non Logiciel libre Non Open source Type de langage L3G L4G Génère du Java (J2EE) ou du COBOL L3G L3G Type d interface des applications Web, Web 2.0 Web, Web 2.0 EGL permet de développer également des applications 5250 et 3270 Web, Web 2.0 Java permet également de développer des applications clientserveur et Eclipse RCP Web, Web 2.0 Objectif principal Développement d applications Web en RPG/COBOL Développement d applications métier et de Services Web Développement d applications Web et de Services Web Développement d applications Web et de Services Web 89

Comparaison CGI, EGL, J2EE et PHP sous IBM i 2. Compétences Formation CGI EGL J2EE PHP Facilité d apprentissage pour les développeurs RPG/COBOL Très forte Forte Faible Moyenne Facilité pour trouver des compétences externes Faible Très faible Des compétences chez IBM et quelques partenaires Forte Des compétences sur le marché et chez les jeunes qui sortent des écoles et des universités Forte Des compétences sur le marché et chez les jeunes qui sortent des écoles et des universités Comment se former? Gratuit : tutoriaux de easy400 Gratuit : cours en autoformation (supports en anglais), cours en ligne (en anglais) Facturable : cours en formation intra-entreprise (en français - par IBM) Gratuit : tutoriaux en ligne (en français) Facturable : livres, cours en formation inter et intraentreprise (en français IBM, centres de formation, SSII, etc.) Gratuit : tutoriaux en ligne (en français) Facturable : livres, cours en formation inter et intra-entreprise (en français ou anglais IBM, Zend, centres de formation, SSII, etc.) 90

Comparaison CGI, EGL, J2EE et PHP sous IBM i 2. Compétences - Formation CGI EGL J2EE PHP Rapidité d apprentissage A quoi se former? 3 jours sur CGIDEV2 par les tutoriaux de EASY400 Des connaissances en HTML, JavaScript sont également nécessaires Entre 6 et 15 jours * Développement d applications Web 2.0 (5 jours) + intégration avec l ibm i (1 jour) OU * Développement d applications Web (5 jours) + intégration avec l ibm i (1 jour) + compléments développement JSFs / EGL (5 jours) Entre 12 et 15 jours * Programmation orientée objet (2 jours) * Langage Java (3 jours) * Pour le développement d applications Web : - Servlets et JSPs (entre 3 et 5 jours) - JSFs (3 jours) * Pour le développement d applications Web 2.0 - AJAX et REST (5 jours) Des connaissances en HTML, JavaScript et serveurs d applications sont également nécessaires Entre 6 et 9 jours * Langage PHP (4 jours) * Intégration avec l IBM i (2 jours) * Pour le développement d applications Web 2.0 : AJAX (3 jours) Des connaissances en HTML, JavaScript et sécurité PHP sont également nécessaires 91

Comparaison CGI, EGL, J2EE et PHP sous IBM i 3. Installation CGI EGL J2EE PHP Environnement de développement A installer sur PC RD Power ou SEU pour le code RPG/COBOL Un environnement de dvpt de pages Web (Eclipse + plugin WTP ou outils Rational) RBD (Rational Business Developer) (Web, Web 2.0, batch ) (facturable) OU EGL CE (Web 2.0) (gratuit) Basés sur Eclipse RAD (Rational Application Developer) (facturable) Basé sur Eclipse OU Eclipse + plugs-in (gratuit) Zend Studio for IBM i (gratuit Maintenance facturable) Basé sur Eclipse Environnement d exécution Serveur HTTP Apache (fourni avec l IBM i) Serveur d applications (WAS, Tomcat, JBOSS ) S installe sur le System i ou sur un autre serveur Si WAS : WAS Express for IBM i est livré gratuitement en IBM i V5R4, V6R1 ou V7R1 Serveur d applications (WAS, Tomcat, JBOSS ) S installe sur le System i ou sur un autre serveur Si WAS : WAS Express for IBM i est livré gratuitement en IBM i V5R4, V6R1 ou V7R1 Zend Server for IBM i S installe sur le System i Version CE gratuite 92

Comparaison CGI, EGL, J2EE et PHP sous IBM i 4. Développement CGI EGL J2EE PHP Type de programmation Procédural Procédural Orienté Objet Procédural ou Orienté Objet Modèle de programmation MVC si utilisation CGIDEV2 MVC MVC Possibilité de developper en MVC par l utilisation de include ou frameworks Frameworks de développement CGIDEV2 JSFs pour les applications Web Nombreux et largements utilisés et connus (JSFs, Struts ) Plusieurs mais pas de frameworks qui sortent du lot Portabilité Non Oui Multi OS (Java) Oui Multi OS Oui Multi OS ++++ ++++ ++ ++ Rapidité de dvpt d applications Web Masquage de la complexité technologique sous-jacente Développement rapide de l ensemble de l application Développement rapide des interfaces Web par l utilisation du framework des JSFs Développement rapide par l intégration HTML/PHP, mais développement moins rapide des interfaces Web Intégration Java En JNI Native Native Par l utilisation de middlewares 93

Comparaison CGI, EGL, J2EE et PHP sous IBM i 4. Développement CGI EGL J2EE PHP Développement rapide d applications Web 2.0? (pas testé) ++++ Masquage de la complexité technologique sous-jacente Pas de nécessité d apprendre les technologies AJAX, REST et de coder du JavaScript ++ Le développement peut être facilité par l utilisation de toolkits (DOJO, GWT ), mais des compétences sont requises + Des compétences sont requises (AJAX, REST, JavaScript) Support des bases de données DB2 for i De multiples bases de données (JDBC) De multiples bases de données (JDBC) De multiples bases de données, mais le meilleur support est pour MySQL Puissance du langage et facilité de développement Langage RPG ou COBOL ++++ Grand niveau d abstraction Typage des variables, structures de données, fichiers de référence, fonctions intégrées ++ Langage puissant mais assez complexe +++ Grande flexibilié dans la gestion des variables et des tableaux 94

Comparaison CGI, EGL, J2EE et PHP sous IBM i 4. Développement CGI EGL J2EE PHP Outils pour faciliter le dvpt d interfaces utilisateur de type Web ou Web 2.0 (palette d outils, conception de sites ) Dans Eclipse + WTP ou RAD Dans RBD (Rational Business Developer) Dans RAD (Rational Application Developer) Outils Web dans Zend Studio for IBM i Facilité de gérer les objets binaires (images, vidéo, BLOB, multi-média )? (pas testé) + + +++ Facilité de conception / consommation de Services Web -- ++++ + (++ avec RAD) ++ (+++ avec Zend Studio) Possibilité d appeler des programmes RPG/COBOL Natif - Procédures stockées - Services Web - Natif (CallLink) - Procédures stockées - Services Web - IBM Toolbox for Java - Procédures stockées - Services Web - PHP Toolkits for IBM i Sécurité 95 Failles très très limitées Failles de sécurité limitées Failles de sécurité limitées Grand nb de failles de sécurité (implique règles) Code interprété (à protéger)

Comparaison CGI, EGL, J2EE et PHP sous IBM i 5. Déploiement CGI EGL J2EE PHP Principes Fixhiers HTML dans l IFS et programmes CGI dans des bibliothèques Application packagée dans un EAR ou WAR, puis déployée et installée dans le serveur d applications Configuration du serveur d applications nécessaire (data sources, pools de connexions ) Code compilé Application packagée dans un EAR ou WAR, puis déployée et installée dans le serveur d applications Configuration du serveur d applications nécessaire (data sources, pools de connexions ) Code compilé Application packagée dans un ZIP, puis déployée dans le serveur Zend Server for IBM i Code interprété Optimisation des performances d éxécution An niveau du serveur HTTP Au niveau du serveur d applications Au niveau du serveur d applications Au niveau de Zend Server for IBM i Clustering Non Possible avec WAS Network Deployment Possible avec WAS Network Deployment Non supporté avec Zend Server for IBM i 96

Comparaison CGI, EGL, J2EE et PHP sous IBM i 6. Prix - Support CGI EGL J2EE PHP Environnement de dvpt Code CGI : SEU (gratuit) ou RD Power (823 par développeur) - Support IBM Pages HTML : Eclipse+WTP (gratuit) ou RBD/RAD (voir colonnes suivantes) RBD, via le produit RDi SOA (2102 par développeur) Support IBM OU EGL CE (Web 2.0), gratuit Pas de support RAD SE + RDp (2595 par développeur) Support IBM OU Eclipse : gratuit - Support possible avec Rational Elite Support for Eclipse Zend Studio for IBM i : gratuit Avec maintenance 1 an Support ZEND Zend Server for IBM i Environnement d exécution Serveur HTTP (gratuit) Support IBM WAS Express for IBM i (gratuit et support via la maintenance software de l IBM i Support IBM WAS Express for IBM i : gratuit et support via la maintenance software de l IBM i Support IBM Version CE (Community Edition) : gratuite Support 1 an non renouvelable Version complète : 5000 pour un P05 Support ZEND 97

Comparaison Eclipse et produits Rational 98