Modernisation et développement d’applications IBM i
Stratégies, technologies et outils
16 et 17 mai 2011 – IBM Forum de Bois-Colombes
Session plénière – Lundi 16 mai – 10h00/13h00 Philippe Bourgeois - [email protected]
2 © IBM France 2011
Objectifs du séminaire des 16 et 17 mai 2011
Faire le point sur les différentes aspects de la modernisation des applications IBM i
Découvrir ou approfondir les technologies et outils
disponibles pour moderniser et développer des applications IBM i :
–
Solutions Rational
–
Modernisation de la base de données DB2
–Evolution du RPG et de SQL
–
Support du XML, support des Services Web
–Développement d’applications Web
–
Cartographie et réingénierie des applications traditionnelles
–etc.
Agenda
Lundi 16 mai
– 9h30 accueil café
– 10h00-13h00 session plénière – 13h00-14h00 déjeuner
– 14h00-15h30 sessions à la carte (4 salles en parallèle) – 15h30-16h00 pause
– 16h00-17h30 sessions à la carte (4 salles en parallèle)
Mardi 17 mai
– 09h00-10h30 sessions à la carte (4 salles en parallèle) – 10h30-11h00 pause
– 11h00-12h30 sessions à la carte (4 salles en parallèle) – 12h30-13h30 déjeuner
– 13h30-15h00 sessions à la carte (4 salles en parallèle) – 15h00-15h30 pause
– 15h30-17h00 sessions à la carte (4 salles en parallèle)
4 © IBM France 2011
Intervenants - GAIA
Expertise et conseil
– Système (migration, optimisation…)
– Développement (méthodologie, assistance…)
– Accompagnement (conduite du changement, support aux équipes…)
Formation
– Inter-entreprises et sur site
– Plus de 150 cours (IBM i, Lotus Domino, Java, WebSphere, technos Web, PHP…)
Base de connaissances Web (KNOW400 (www.know400.gaia.fr))
– RPG IV, ILE, Services Web, SQL, exploitation, système…
http://www.gaia.fr/ - [email protected]
Intervenants - VOLUBIS
Formation IBM i, depuis 1994
– Formation débutant (12 jours) 2 à 3 fois par an – Formations perfectionnement à la demande :
– RPG-IV, format libre, ILE, intégration avec C / Java – SQL, conception, administration, développement – Apache, PHP, OmniFind... (volubis.fr est sur un M25)
– Et toute formation « sur mesure » que vous pourriez nous demander
Base de connaissance technique accessible via abonnement (aide par mail incluse) et comprenant près de 500 cours : AF400.
Conseil, réunions d’information technique (pause-café), forum
http://www.volubis.fr - [email protected]
6 © IBM France 2011
Intervenants - ASTECH
Au service des acteurs du marché (ISV, Partenaires Commerciaux IBM, SSII / intégrateurs, …) pour eux-mêmes et pour leurs clients
Prestations de “Conseil/Audit”, “Assistance Technique/Réalisation” ou
“Formation/Transfert de compétences”, au forfait ou en régie
Types de prestations
– Formations techniques et commerciales
– Exemple : Certifications IBM
– Applications & Technologies
– Logiciels Libres (“open source”)
– Portage & “roadmaps” modernisation d’applications
– Méthodologie et outillage de Développement d’Applications – Développement & Intégration “Mobile” (Blackberry, iPhone, …)
– Infrastructures
– Architecture & Optimisation des infrastructures informatiques – Performances (Java, DB2, …)
– Sécurité (Audit, Haute Disponibilité & PRA, Single Sign On, …) – Informatique “Verte” : maîtrise et reduction des coûts énergétiques
ASTECH Europe S.A.S - Pascal Thenon / [email protected]
Intervenants – ZEND
Zend a été sélectionné par IBM depuis 2006 pour mettre en oeuvre PHP sous IBM i
Mission de Zend : professionnaliser et industrialiser
l’utilisation de la technologie PHP pour développer des applications critiques d’entreprise :
–
Commercialisation de l’offre produits Zend (Zend Server, Zend Studio, Zend Guard…)
–
Services d’expertise (expertise technique PHP et Zend, conseil en architecture, audits de code, audits de performance…)
–
Formation (partenaire IBM)
–
Animation des communautés PHP et Open Source
8 © IBM France 2011
Intervenants - ARCAD Software
Editeur français spécialisé dans l’ALM (Application Lifecyle Management) :
–
Gestion de configuration
–Release management
–
Analyse/Transformation d’applications
–Automatisation des tests
–
Gestion du support technique
19 ans, 330 clients, 33 pays
Double compétence System i – Systèmes ouverts
Partenaire technologique Rational
Intégrateur du produit RDp (Rational Developer for Power
Systems)
Intervenants - DATABOROUGH
Spécialiste de la cartographie, documentation et réingénierie des applications IBM i depuis plus de 25 ans
–
Modélisation et références croisées automatiques des données et processus
–
Extraction des règles métier, design d’application
–
Extraction de données (sous-ensembles, jeux de test, anonymisation…)
–
Modernisation et restructuration automatisée des applications classiques (DDL, SQL, MVC)
Commencer par ce qui marche
Make it known Make it better Make it last
10 © IBM France 2011
Que signifie aujourd’hui pour vous ?
OS/400, i5/OS V5Rx IBM i 7.1 et 6.1
DB2 – PF/LF DB2 - SQL
RPG/400
ILE RPG IV
Programmes Procédures ILE
CLP
ILE CL Query/400
DB2 Web Query
System i Access for Web HATS
IBM Systems Director Navigator for i Java
PHP
Procédures stockées Omnifind
AIX, Linux SEU/PDM
5250 Virtualisation
Cryptage
XML PDF
Disques SSD
RPG Open Access Rational Services Web
Serveur d’applications intégré BLOB WebSphere
Format libre
EGL CGI PASE
Les différents aspects de la modernisation
1. Moderniser l’infrastructure (matériel / OS)
2. Moderniser la base de données DB2
3. Moderniser les environnements de développement
4. Moderniser le code RPG/COBOL
5. Moderniser l’interface utilisateur
6. Pour aller plus loin
12 © IBM France 2011
1. Moderniser l’infrastructure
(matériel / OS)
Moderniser l’infrastructure (matériel / OS)
Roadmap processeurs POWER – Gamme IBM Power Systems
Roadmap IBM i
Comparaison POWER5 / POWER7
Que peuvent m’apporter les versions 6.1 et 7.1 de l’IBM i ?
Bénéfices de la virtualisation – POWER6/7 – IBM i 6.1/7.1
Pour en savoir plus
14 © IBM France 2011
Roadmap processeurs POWER – Gamme IBM Power Systems
POWER4 POWER5 POWER6 POWER7 POWER8
2001 2004 2007 2010
Power 770 Power 750
Power 795
Power 720/740 Power 710/730
Power 780
PS Blades
Roadmap IBM i
2008 2010 2011-13
« Technology Refresh »
Plus simple à installer et moins pertubateur IBM i 6.1
IBM i 6.1.1
IBM i 7.1
IBM i jusqu’en 2020
16 © IBM France 2011
Comparaison POWER5 / POWER7
Que peuvent m’apporter les versions 6.1 et 7.1 de l’IBM i?
IBM i 6.1
– Les partitions IBM i virtuelles
– Le support de l’IBM i sur des lames POWER de chassis Blade Center – De nouvelles solutions de haute disponibilité (PowerHA)
– Le support des disques SSD
– La possibilié d’upgrader un serveur en 6.1 à partir d’une image sur le réseau – Une amélioration des performances Java (JVM 32 bits et nouvelle JVM 64 bits) – Une amélioration de la sécurité (cryptage des données…)
– Une nouvelle interface graphique Web « IBM Systems Director Navigator for IBM i » (console de gestion de l’IBM i)
– Des nouveautés SQL et RPG, le produit RPG Open Access
IBM i 7.1
– Le support XML en natif dans DB2
– Le cryptage des données DB2 au niveau colonne
– Le déplacement automatique des données les plus sollicitées vers les disques SSD – Des nouveautés SQL et RPG
– Une amélioration des performances du serveur de Services Web intégré – Une amélioration ans les domaines de la virtualisation et de PowerHA
18 © IBM France 2011
Bénéfices concrets de la virtualisation – POWER6/7 et IBM i 6.1/7.1
Vous êtes en 6.1 et désirez tester la 7.1 à moindres frais
– Hébergement d’une partition IBM i dans une partition IBM i– La partition IBM i utilise des ressources d’entrée/sortie fournies par une autre partition IBM i
– Moins de cartes et de disques à acheter pour l’ensemble des partitions IBM i – Une partition IBM i 6.1 peut héberger une partition IBM i 7.1 ou 6.1 et
réciproquement
Vous désirez consolider des environnements IBM i de petite taille en optimisant les ressources
– Virtualisation d’une partition IBM i dans une partition VIOS
– La partition IBM i utilise des ressources d’entrée/sortie fournies par une partition VIOS (Virtual I/O Server), composant de PowerVM
– Possibilité de partitions VIOS redondantes
– Configuration et coûts de maintenance optimisés tout en restant sur un même modèle de serveur Power
Moderniser l’infrastructure – Pour en savoir plus - Web
20 © IBM France 2011
Moderniser l’infrastructure – Pour en savoir plus - Web
Moderniser l’infrastructure – Pour en savoir plus - Web
22 © IBM France 2011
Moderniser l’infrastructure – Pour en savoir plus - Web
Pour en savoir plus - Sessions
S8 – IBM i : au delà des évidences ...
« Pourquoi IBM i en 2011 ? » : des pistes pour expliquer à son management (et sans langue de bois)
– Pascal Thenon (ASTECH) – Lundi 16 mai – 16h00
S16 - Bénéfices concrets de la virtualisation
– Christian Massé (VOLUBIS) – Mardi 17 mai - 13h30
S19 - Exemples d'utilisation de l'environnement UNIX sous IBM i : PASE
– Christian Massé (VOLUBIS) – Mardi 17 mai - 15h30
S20 - Adopter une stratégie de sauvegarde adaptée à votre entreprise
– Pierre-Louis Berthoin (GAIA) – Mardi 17 mai – 15h30
24 © IBM France 2011
2. Moderniser la base
de données DB2
Moderniser la base de données DB2
Modernisation de DB2 = SQL
–
Modernisation des objets DB2
–Modernisation des accès à DB2
Les interfaces « System i Navigator » et « IBM Systems Director Navigator for IBM i »
Pour en savoir plus
26 © IBM France 2011
Moderniser la base de données = SQL
Pourquoi SQL ?
–
Parce que c’est l’interface base de données stratégique pour l’industrie et pour l’IBM i
– SQL apporte des fonctionnalités très puissantes :
– Fonctions scalaires, fonctions de colonne, groupage, sous-requêtes, etc.
– SQL est nécessaire pour certaines fonctions et middlewares :
– Colonnes de type BLOB, XML…
– Colonnes auto-incrémentées
– Fonctions de cryptage des données – Triggers au niveau des colonnes
– Accès à DB2 à partir d’autres langages que RPG/COBOL (Java Æ JDBC…)
– Améliorations de performance avec le nouveau moteur SQL (SQE versus CQE) : uniquement disponible pour les interfaces SQL
–
Pour la portabilité du code et des compétences
–
Parce qu’il permet un meilleur positionnement du System i comme serveur base de données
–
Parce que les DDS n’évoluent plus depuis bien longtemps…
SQL évolue à chaque version d’IBM i
Quelques nouveautés IBM i 6.1
– Fonctions OLAP pour créer des données agrégées selon plusieurs dimensions : GROUPING SETS, ROLLUP, CUBE
– Nouvelle clause SKIP LOCKED DATA pour sauter les lignes verrouillées – Création d’index : possibilité de définir un nom de format, d’ajouter des
colonnes, d’indiquer une clause WHERE et de définir des clés sur des zones dérivées
– Amélioration du moteur SQE
Quelques nouveautés IBM i 7.1
– Support XML natif (colonnes de type XML, décomposition de documents XML en colonnes d’une table, génération de documents XML à partir de données)
– Cryptage de colonnes (opération transparente pour l’application)
– Variables globales, nouvelle instruction MERGE, support des tableaux SQL…
– Amélioration du moteur SQE
28 © IBM France 2011
Objets DDS
Objets SQLProgrammes natifs
Programmes SQL
La modernisation de DB2 avec SQL
*FILE
- PF-DTA - LF
*FILE
- PF-DTA - LF
1. Modernisation des objets DB2 2. Modernisation des accès à DB2
- Tables - Vues - Index
- Fichiers physiques - Fichiers
logiques
Modernisation des objets DB2
Créer des tables SQL à la place des fichiers physiques DDS
– Une table SQL est un objet de type *FILE d’attribut PF-DTA, créé par l’ordre CREATE TABLE
– Avantages
– D’avantage de types de données (INT, BLOB, XML…)
– Possibilité de donner des noms plus longs aux tables et aux colonnes (jusqu’à 128 caractères) (en plus du nom court)
– Zones auto-incrémentées (colonne IDENTITY ou objet SEQUENCE) – Meilleures performances en lecture
– Les contraintes peuvent être définies dans le source de définition de la table (en natif, il faut deux sources : un DDS et un CL)
– Standard de l’industrie
– Evolution permanente – Les DDS des PF sont stabilisées
– Inconvénients
– Moins bonnes performances en écriture
– Pas de support des multi-membres (mais possibilité de créer un ALIAS sur un membre particulier)
30 © IBM France 2011
Modernisation des objets DB2
Utiliser, dans les cas ou cela présente un intérêt, les vues SQL à la place des fichiers logiques DDS
–
Les vues SQL sont des objets de type *FILE d’attribut LF, créés par l’ordre CREATE VIEW
–
Avantages
– Plus de flexibilité en termes de sélection et de traitement des données
– Fonctions de colonne (SUM, AVG, COUNT, MIN, MAX…) – Fonctions scalaires (alphanumériques, de temps..)
– Groupage (GROUP BY)
– Tous types de jointure et d’unions – Sous-requêtes
– Vues de vues…
– Exemple :
– CREATE VIEW total_rep_sin AS SELECT sin_typ_l, SUM(mnt_rep) as total_rep FROM sinistres s1 INNER JOIN types_sin s2 ON s1.sin_typ_n = s2.sin_typ_n GROUP BY s1.sin_typ_n,
sin_typ_l
Modernisation des objets DB2
Les vues SQL
–
Inconvénients
– Il n’est pas possible de définir une clé dans une vue
– Les accès natifs en RPG ou COBOL à la vue ne pourront pas se faire sur clé
– Seuls les accès SQL permettront de travailler sur clé (clause ORDER BY) – Les programmes RPG/COBOL peuvent être modifiés pour faire des accès
SQL Æ SQL imbriqué dans les programmes
– Rappel : un fichier logique DDS peut s’appuyer sur des tables SQL
– Il est donc possible de garder les structures des fichiers logiques DDS existants (en les recréant sur les nouvelles tables)
– Afin de ne pas avoir à modifier les programmes RPG/COBOL existants
32 © IBM France 2011
Modernisation des objets DB2
Quelques mots sur les index SQL
–
Sont des objets de type *FILE d’attribut LF, créés par l’ordre CREATE INDEX
–
Un index SQL sert à améliorer les performances et peut servir à
assurer l’unicité (mais il est préférable de passer par une contrainte)
–
Jusqu’en i5/OS V5R4 :
– On ne peut définir que les valeurs de clé
CREATE INDEX sinpardate ON sinistres (sin_date)
–
A partir de la version 6.1 on peut définir un nom de format, spécifier
les zones, indiquer des critères de sélection et définir des clés sur
des zones dérivées
Modernisation des objets DB2
Comment passer du mode DDS au mode SQL ?
–
En générant, à partir des fichiers natifs (PF, LF), les instructions SQL correspondantes
– API QSQGNDDL – System i Navigator
–
Puis en exécutant ces instructions
–
A noter que :
– Toutes les fonctionnalités DDS ne sont pas supportées
– Des messages d’information sont générés
– La conversion peut se faire pour un seul objet ou un ensemble d’objets – Le résultat peut être sauvegardé :
– dans un fichier texte (pour une exécution par System i Navigator) – dans un membre source (pour une exécution par la commande
34 © IBM France 2011
Modernisation des accès à DB2
A. SQL imbriqué dans les programmes
–
Mélange de SQL et de RPG/COBOL/C
–
Programmes de type SQLRPGLE, SQLRPG, SQLCBLLE, SQLCBL et SQLCLE
–
Nécessite le produit 57xx-ST1 (Kit Dév DB2 Query Mgr et SQL)
–
Principaux domaines d'utilisation :
– Traitements de masse– Exploitation des fonctions SQL
– Requêtes complexes, avec critères de sélection dynamiques
Modernisation des accès à DB2
A. SQL imbriqué dans les programmes
SQL sans curseur, traitement de masse
SQL avec curseur, traitement ligne à ligne
36 © IBM France 2011
Modernisation des accès à DB2
Exemple de comparaison de performances
–
Lecture de 600.000 enregistrements en séquentiel
–
Programme 1 – Lecture RPG
– Résultat : 12 secondes–
Programme 2 – Lecture SQL
– Résultat : 12 secondes
–
Programme 3 – Lecture
SQL
bloquée
– Résultat : 2 secondesModernisation des accès à DB2
B. SQL procédural
– Procédures écrites en langage SQL
– Exécution par la commande SQL CALL
– Débogage par System i Navigator ou STRDBG
38 © IBM France 2011
L’interface System i Navigator
System i Navigator
– System i Navigator est l’interface graphique de l’IBM i – Il est fourni en standard avec l’IBM i
System i Navigator et la base de données
– Gestion des objets base de données– Tables, vues, index, procédures, journaux, contraintes, triggers…
– Création, modification, suppression, droits, verrouillage, journalisation…
– Visualisation et modification des données
– Exécution de scripts SQL
– Sauvegarde en fichier texte ou membre source – Débogage
– Organigrammes Database Navigator
– Moniteurs de performances SQL – Visual Explain – Assistant de gestion des index, centre de santé
System i Navigator – Base de données
40 © IBM France 2011
System i Navigator – DB - Génération d’instructions SQL
System i Navigator – DB – Création de table
42 © IBM France 2011
IBM i Navigator – DB – Exécution de scripts SQL
IBM i Navigator – DB – Organigramme Database Navigator
44 © IBM France 2011
L’interface « IBM Systems Director Navigator for i »
Console de gestion de l’IBM i
Reprend la majorité des fonctions de IBM i Navigator, mais en interface Web
Fourni en standard avec l’IBM i
–
IBM Systems Director Navigator for i (IBM i 6.1 et 7.1)
–
iSeries Navigator Tasks on The Web (i5/OS V5R4 – beaucoup moins de fonctionnalités)
Dans la catégorie “base de données” les fonctions suivantes ne sont pas supportées :
–
Scripts SQL
–Assistants SQL
–
Database Navigator
–Visual Explain
IBM Systems Director Navigator for i – Base de données
46 © IBM France 2011
IBM Systems Director Navigator for i – Base de données
DB2 et SQL – Pour en savoir plus - Formation
Prochaine session planifiée à Noisy : 23 mai
Centre de formation IBM de Noisy le Grand ou sur site client
48 © IBM France 2011
DB2 et SQL – Pour en savoir plus - Formation
Centre de formation IBM de Noisy le Grand ou sur site client
Prochaine session planifiée à Noisy : 24 mai
DB2 et SQL – Pour en savoir plus - Redbooks
50 © IBM France 2011
DB2 et SQL – Pour en savoir plus – White Papers
DB2 et SQL – Pour en savoir plus - Sessions
S3 – SQL embarqué : profitez de la puissance de SQL dans votre RPG
– Nathanaël Bonnet (GAIA) – Lundi 16 mai – 14h00
S6 – DB2, nouveautés 6.1 et 7.1
– Christian Massé (VOLUBIS) – Lundi 16 mai – 16h00
S11 – La modernisation de la base de données DB2 : passage des DDS à SQL
– Nathanaël Bonnet (GAIA) – Mardi 17 mai – 09h00
S13 – Comment utiliser au mieux les types de données récents ?
– Christian Massé (VOLUBIS) – Mardi 17 mai – 11h0052 © IBM France 2011
3. Moderniser les environnements de développement
- Introduction aux produits Rational
- Rational Developer for Power Systems (RD Power)
- Rational Team Concert (RTC)
Introduction aux produits Rational
Un ensemble de produits pour développer des applications pour IBM Power Systems (sous IBM i, AIX et Linux) :
– RD Power - Rational Developer for Power Systems Software – V8.0.0.2
– RPG and COBOL Development Tools for i – COBOL Development Tools for AIX
– C/C++ Development Tools for AIX
– C/C++ Development Tools for Linux on Power
– RAD - Rational Application Developer – V8.0.2
– Développement d’applications J2EE, Services Web, portail – Version SE (Standard Edition)
– RBD - Rational Business Developer – V8.0.1.1
– Développement d’applications EGL (Enterprise Generation Language) : applications métier en interface Web / Web 2.0 et Services Web
– RDi SOA – Rational Developer for IBM i for SOA construction – V8.0
– Combinaison de RD Power RPG and COBOL Development Tools for i et de RBD – Développement d’applications RPG/COBOL/EGL et de Services Web sous IBM i
– Power Tools for IBM i
– Combinaison de RD Power RPG and COBOL Development Tools for i et de RAD Standard Edition
54 © IBM France 2011
Comparatif des produits Rational
Comparaison Eclipse et produits Rational
–
https://www-304.ibm.com/support/docview.wss?uid=swg27010975
SEU en 7.1 - Nouveautés RPG et COBOL non supportées
Fonction supportée mais syntaxe incorrecte (%SUBST)
Fonction 7.1 non supportée dans SEU
Les 2 lignes sont en erreur avec le même message d’erreur
56 © IBM France 2011
Les environnements de développement RPG/COBOL – Historique - 1/2
Les ADTS (Application Development Tool Set)
– SEU, PDM, SDA, RLU, ISDB…– Développement RPG, COBOL, CL, DDS – Sont toujours supportés
– N’évolueront plus
CODE/400
– CODE Editor, CODE Designer, CODE Project Organizer – Développement RPG, COBOL, CL, DDS
– N’est plus supporté
WDSC (WebSphere Development Studio Client)
– Basé sur Eclipse– Développement RPG, COBOL, CL, DDS + Java, Web, Services Web – Version Advanced pour le développement full J2EE
– V4.0, V5.0, V5.1, V5.1.2, V6.0, V6.0.1, V7.0 – Est arrêté de support depuis le 30 avril 2010
Les environnements de développement RPG/COBOL – Historique - 2/2
RDi (Rational Developer for IBM i)
– Basé sur Eclipse– Développement RPG, COBOL, CL, DDS – V7.1, V7.5
– Est arrêté de commercialisation depuis le 11 mai 2010 – Est toujours supporté
RD Power (Rational Developer for Power Systems)
– Basé sur Eclipse– V7.5, 7.6, 8.0
– En V8.0 quatre dispositifs :
– RPG and COBOL Development Tools for i
– Développement RPG/COBOL sous IBM i – Successeur de RDi
– COBOL Development Tools for AIX – C/C++ Development Tools for AIX
– C/C++ Development Tools for Linux on Power
58 © IBM France 2011
RD Power – Pourquoi l’utiliser ? (1/2)
Parce que c’est un environnement de développement moderne
– Pour développer des applications RPG, COBOL, CL, DDS– Permettant d’améliorer la productivité – Et les compétences des développeurs i
Parce qu’il s’appuie sur le standard Eclipse
– Socle commun à l’ensemble des produits Rational – Connu des jeunes qui sortent des écoles
Parce qu’il permet de fédérer les différentes communautés de développeurs
– Jeunes et « plus anciens »
– Nouvelles technos et technologies « traditionnelles »
Parce que les ADTS (SEU, PDM, SDA..) n’évoluent plus (les nouveautés
IBM i 7.1 ne sont pas supportées) et n’évolueront plus
RD Power – Pourquoi l’utiliser ? (2/2)
Parce qu’il offre des nouvelles fonctionnalités
–
Connexions multiples - Filtres permanents
–
Éditeur plus sophistiqué (sources en couleur, structure du programme, complétion de code…)
–
Diagramme d’applications
–Débogueur plus sophistiqué
–
Screen Designer et Report Designer
–Projets i
–
…
Parce qu’il est nécessaire en tant que client du produit RTC (Rational Team Concert)
–
Contrôle des sources / versionning, gestion des demandes de
changement, travail en équipe, gouvernance des développements
60 © IBM France 2011
RD Power – Filtres permanents
Il est possible de définir autant de filtres que l'on veut et ces filtres sont nommés et permanents
Il est possible de définir plusieurs chaînes de filtrage pour un filtre et des noms génériques à tous les niveaux
RD Power – Vues multiples d’un même source en édition
62 © IBM France 2011
RD Power – Vue structure
RD Power – Complétion de code
64 © IBM France 2011
RD Power – Vérification - Compilation
- Filtrage
- Affichage dynamique
RD Power – Débogage
66 © IBM France 2011
RD Power – Diagramme d’applications
Représentation graphique de la structure d'une application 1) Diagramme des appels
- appels des sous-routines, des procédures et des programmes 2) Diagramme de la structure d'un programme
- modules liés dans un programme ou un programme de service - relations entre programmes et programmes de service
RD Power – Pour en savoir plus - Formation
Centre de formation IBM de Noisy le Grand ou sur site client
Prochaine session planifiée à Noisy : 16 juin
68 © IBM France 2011
RD Power – Pour en savoir plus - Livres
RD Power – Pour en savoir plus - Web
70 © IBM France 2011
RD Power – Pour en savoir plus - Sessions
S1 - RD Power (Rational Developer for Power Systems) : un environnement de développement moderne pour
améliorer la productivité et les compétences des développeurs IBM i
–
Philippe Bourgeois (IBM)
–
Session 1A : lundi 16 mai – 14h00
–Session 1B : mardi 17 mai – 13h30
RTC - Les challenges du développement applicatif aujourd’hui
La conformité réglementaire
– Traçabilité, audit
Des équipes de développement
– Qui ne collaborent et ne communiquent pas toujours facilement – Qui peuvent être géographiquement dispersées
Des applications multi-langages
– Traditionnels (RPG, COBOL) et nouvelles technologies (Java, EGL, PHP, .NET…)
Des environnements de développements divers et déconnectés les uns des autres
La nécessité de réduire les coûts
72 © IBM France 2011
Rapports et tableaux de bord
Tableaux de bord web adaptables Métriques et rapports en temps réel
Planification
Gestion des itérations
Choix de processus (agiles, traditionnels) Gestion des risques
72 72
Gestion des constructions
Support des types IBM i Build Specification, Ant, Maven…
Traçabilité avec les demandes de changement et les modifications source
Builds personnels et d’équipe
Remontée automatique des résultats
Analyse d’impact et gestion des dépendances
Gestion des activités, des demandes de
changement
Demandes d’évolution, de correction…
Suivi des tâches
Approbations
Requêtes
Jazz Team Server
Projets - Equipes - Rôles
Processus
Messagerie - Présenciel - Evénements - Alertes
Jazz Team Server
RTC - Une solution intégrée
Gestion de
configuration (SCM)
Contrôle des sources
Versionning applicatif
Retours arrière
Développement en //
Gestion des conflits
SCM distribué
Packaging et déploiement
A qui s’adresse RTC ?
RTC est un outil pour tous les acteurs concernés par un projet de développement (analystes métier, managers IT, chefs de projets, développeurs...)
Quelle que soit la plateforme (i, AIX, Windows, z/OS) et le langage (RPG, COBOL, C, C++, Java, EGL, PHP, .NET…)
Interfaces client:
– Eclipse
– Java, Web…
– Outils Rational
– RD Power (RPG, COBOL, C, C++…) – RAD, RBD, RDz, etc.
– Visual Studio
– .NET
– Web
– Pour les chefs de projet, analystes, managers IT, utilisateurs…
74 © IBM France 2011
RTC – Traçabilité des modifications source
Motif renseigné si demande de changement
RTC – Traçabilité des modifications source
Historique des modifications
76 © IBM France 2011
RTC – Génération - Exécution et résultat
RTC – Génération - Exécution et résultat
Traçabilité des sources transmis
Traçabilité des objets générés
78 © IBM France 2011 78
RTC – Demandes de changement
Collaboration avancée : - « Discussion »
- « Approbation »
- « Attachements » (pièces jointes, captures d’écran)
- « Souscription » pour notification de modification (flux RSS)
- « Liens » (hiérarchique, dépendance, association) vers des données du référentiel
Demande d’amélioration
RTC – Pour en savoir plus - Sessions
S9 - Contrôle des sources, traçabilité et gestion des demandes de changement sous IBM i avec le produit RTC (Rational Team Concert)
–
Philippe Bourgeois (IBM) –
Mardi 17 mai – 09h00 S17 - Automatisation des déploiements avec « ARCAD Deliver Extension for IBM Rational Team Concert »
(ARCAD Software)
–
Philippe Magne et Michel Mouchon (ARCAD Software) –
Mardi 17 mai – 13h3080 © IBM France 2011
4. Moderniser le code RPG/COBOL
Moderniser le code RPG/COBOL
Introduction – Pourquoi moderniser le code RPG/COBOL ?
Comment moderniser le code RPG/COBOL ?
– A. Exploiter les possibilités actuelles des langages
– RPG IV, environnement ILE
– B. Exposer le code afin qu’il soit accessible de l’extérieur
– Procédures stockées – Services Web
– C. Découvrir de nouvelles possibiités
– XML, appel de Services Web…
– Accès à d’autres ressources avec RPG Open Access
– D. Utiliser des outils pour faciliter la connaissance des applications existantes et modulariser le code
– Outils de cartographie, d’analyse d’impact et de rétro-documentation – Outils de restructuration et de réingénerie
82 © IBM France 2011
Introduction – Pourquoi moderniser le
code RPG/COBOL ?
Pourquoi moderniser le code RPG/COBOL ?
Pour l’ouvrir à l’extérieur et pouvoir le faire communiquer avec d’autres applications (intégration d’applications)
Pour répondre rapidement aux besoins d’évolution (flexibilité, agilité)
Pour éviter la redondance et simplifier la maintenance
– Assurer l’unicité des fonctions – Réutilisation - Lisibilité
Pour que la logique métier soit indépendante de l’interface utilisateur
Pour valoriser les investissements (code, plateforme, people) en offrant
une vision moderne de l’existant
84 © IBM France 2011
Rénovation / restructuration des applications existantes
DB2 SQL
Application RPG de suivi de sinistres
Affichage informations client Affichage liste des contrats Affichage liste des sinistres Enquete historique client Mise à jour d’un sinistre
DB2 DDS 5250
PHP
5250 5250
Informations client
Liste des contrats
Liste des sinistres
Enquête hist. client Mise à jour
sinistre
EGL
Java Autre
5250
Développement MVC
Développement MVC :
–
Modèle
–Vue
–
Contrôleur
DB2 SQL
ILE RPG/COBOL ILE RPG/COBOL ILE RPG/COBOL
5250 Client riche Web, Web 2.0 Mobile
Logique de contrôle
Logique de contrôle
Logique de contrôle
Logique de contrôle
Modèle Vue
Contrôleur
86 © IBM France 2011
Comment moderniser le code RPG/COBOL ?
Utiliser les possilités actuelles des langages (RPG IV, format libre, environnement ILE)
Restructurer
– Séparer la logique métier de l’interface utilisateur – Développement MVC (Modèle – Vue – Contrôleur) – Indépendance back-office / front-office
Modulariser
– Réutiliser pour éviter la duplication et les tests
– Réduction de la complexité (lisibilité - Création et appel de fonctions, composants plus petits)
– Faciliter la maintenance (distribution des tâches)
– Créer des fonctions métier, des fonctions d’accès aux données, assurer l’unicité des fonctions Æ créer des services
Documenter
Comment moderniser le code RPG/COBOL ?
A. Exploiter les possibilités actuelles des langages
88 © IBM France 2011
Les avantages du développement en RPG / COBOL
Rapidité et facilité de développement
Vous avez les compétences et souvent les développeurs connaissent le métier
Facilité de débogage (joblog, messages de 1er et 2nd niveau)
Intégration native avec DB2 – Possibilité d’intégrer du SQL
Fiabilité, robustesse
Facilité de mise en production
Utilisation native de la LIBL
Montée en charge sans se poser trop de questions
Stabilité
– Ce que vous écrivez aujourd’hui tournera demain
– On ne se pose pas la question tous les 4 mois de l’utilisation ou non de telle technologie ou de tel framework
Un programme RPG/COBOL de type batch peut être appelé de n’importe où
Des langages orientés applications de gestion
Les inconvénients du développement en RPG/COBOL
Ce sont des langages qui ne savent gérer nativement que le 5250
– Solution 1 : continuer à développer en RPG et :– Utiliser la technologie CGI
– Utiliser RPG Open Access et des handlers d’éditeurs tiers – Utiliser des produits tiers
– Solution 2 : restructurer/modulariser le code existant afin de séparer la logique métier de l’interface utilisateur. Cela permet :
– De garder en RPG/COBOL la logique métier
– De développer en Java, PHP, .Net ou autre langage l’interface utilisateur
Il est de plus en plus difficile de trouver des programmeurs RPG/COBOL sur le marché
– Solution 1 : former les jeunes au RPG/COBOL
– Mais en leur proposant RD Power comme environnement de développement – Et en leur faisant coder du RPG IV en format libre
– Solution 2 : Externaliser
– Centre de Services IBM i d'IBM Bordeaux (TMA, support utilisateur...) – Sociétés de conseil en ingénierie
90 © IBM France 2011
Pourquoi développer en RPG IV ?
Pour gagner en simplicité, lisibilité, rapidité, productivité, maintenabilité
Parce qu’il est plus facile, pour un jeune, de développer en RPG IV, en format libre et sous RD Power qu’en RPG/400 en mode colonné, sous SEU
Parce que certaines fonctionnalités de l’IBM i ou des outils de
développement ne sont disponibles ou intéressantes que pour des programmes dont le source est de type RPGLE (xxxLE)
Parce que le RPG/400 a été annoncé en mars 2008 comme stabilisé (n’évoluera plus). Seul le RPG IV évolue et continuera d’évoluer
Rappel : la commande CVTRPGSRC permet de convertir des sources
RPG/400 en RPG IV (RPG Æ RPGLE)
Le RPG IV versus le RPG/400 - 1/2
Spécifications D pour déclarer les zones, DS, tableaux…
– Support des noms longs et des minuscules / majuscules – Nouveaux types de données
– Support de la valeur indéfinie et des zones de longueur variable – Possibilité de définir des modèles
Extension des limites
Lignes à blanc
Mots-clés
Nouveaux codes opération
Expressions
Format libre (y compris en SQL)
Fonctions intégrées
Support des zones de type date, heure et horodate
Support des pointeurs
92 © IBM France 2011
Le RPG IV versus le RPG/400 – 2/2
Options de compilation et compilation conditionnelle
Environnement ILE - Procédures
Structures de données qualifiées
Interopérabilité avec Java
Contrôle à la compilation et à l’exécution des fichiers à ouvrir
Génération PCML
Sources dans l’IFS
Support XML en lecture
Tri des DS
Nouvelle gestion des erreurs
Support du multi-threading
Fichiers locauxs et fichiers en paramètre
Lecture des Result Sets
Pourquoi développer en ILE ?
Parce que les composants de l’environnement ILE (modules, procédures, programmes de service) répondent mieux à la modélisation fonctionnelle (création de fonctions)
Parce qu’une procédure a de nombreux avantages par rapport à une sous-routine :
–
Ressemble à une méthode Java ou à une fonction C ou PHP
–
Possibilité de variables locales et de fichiers locaux), de valeur de retour, de passage optionnel de paramètres, de procédure externe…
Parce que l’ILE est indispensable pour pouvoir
–
Appeler des procédures C
–
Appeler des Services Web (via du C ou du C++)
94 © IBM France 2011
Procédures ILE versus sous-routines et programmes
Une procédure ILE combine les avantages des programmes et des sous- routines :
– Appel aussi performant qu’un appel de sous-routine
– Avec possibilité de passer des paramètres comme pour un programme et de de pouvoir être externe au programme principal
Les procédures apportent quelques avantages supplémentaires :
– Analogie avec les méthodes Java ou les fonctions C, PHP, etc. (on se crée ses propres fonctions)
– Définition de variables locales et de fichiers locaux – Possibilité de définir une variable de retour
– Possibilité de passer des expressions en paramètres – Passage de paramètres par référence, par valeur – Passage optionnel de paramètres
– Possibilité d’appeler un programme externe
– Possibilité de faire référence à une procédure externe (procédure C par exemple)
Environnement ILE
Procédure A Procédure B Procédure C
SRV1
*SRVPGM
Procédure D Procédure E Procédure F
SRV2
*SRVPGM SRV1 *SRVPGM
SRV2 *SRVPGM BNDDIR1
*BNDDIR
H bnddir(‘BNDDIR1’)…
D…
/free
msg = procA(numcli) + … ; callp procE(z1:z2*z3);
…
PGM1
*PGM
96 © IBM France 2011
Le RPG IV évolue constamment
V5R1 :
– Format libre, interception d’erreurs par MONITOR, DS qualifiées, appel de Java…
V5R2 :
– DS qualifiées complexes, PCML, sources dans l’IFS…
V5R4 :
– Support XML, code opération EVAL-CORR…
V6R1 :
– Multi-threading, fichiers locaux, améliorations DS, plus de limites sur le nombre de postes d’un tableau…
V7R1
– Tri et recherche sur des tableaux de structures de données, cryptage de la liste de débogage, accès aux Result Sets…
RPG – Pour en savoir plus - Formation
Centre de formation IBM de Noisy le Grand ou sur site client
Prochaine session planifiée à Noisy : 23 mai
98 © IBM France 2011
RPG – Pour en savoir plus – Web
RPG – Pour en savoir plus - White paper
100 © IBM France 2011
RPG – Pour en savoir plus - Redbook
SG24-5402
RPG – Pour en savoir plus - Livres
102 © IBM France 2011
RPG/COBOL – Pour en savoir plus - Sessions
S10 – RPG, nouveautés 6.1 et 7.1
–
Christian Massé (VOLUBIS) –
Mardi 17 mai – 09h00 S13 – Comment utiliser au mieux les types de données récents ?
–
Christian Massé (VOLUBIS) –
Mardi 17 mai – 11h00Comment moderniser le code RPG/COBOL ?
B. Exposer le code afin qu’il soit accessible de l’extérieur
- Procédures stockées
- Services Web
104 © IBM France 2011
Exposer le code RPG/COBOL
Vous avez restructuré les programmes existants afin d’isoler les fonctions métier dans des programmes ou des procédures RPG / COBOL
Vous avez développé des nouvelles fonctions dans des programmes ou des procédures RPG / COBOL
Comment les exposer afin qu’ils(qu’elles) puissent être appelé(e)s par d’autres
applications externes au
System i (Java, PHP, VB, .NET, SQL ou autre) ?
DB2 SQL PHP
Informations client
Liste des contrats
Liste des sinistres
Enquête hist. client Mise à jour
sinistre
EGL
Java Autre
5250
Les procédures stockées
Une procédure stockée est un programme qui s'exécute sur un serveur et que l'on appelle par une instruction SQL
(instruction CALL)
–
possibilité de passer des paramètres en entrée, sortie ou entrée/sortie
–
peut retourner un ou plusieurs result sets
–
si SQL, peut retourner des tableaux depuis la version 7.1 de l’IBM i
Il en existe deux types :
–
les procédures stockées SQL
– écrites en langage SQL (SPL - SQL Procédural Language) –
les procédures stockées externes
– écrites en CL, RPG, ILE RPG, COBOL, ILE COBOL, JAVA, C ou C++
106 © IBM France 2011
Les procédure stockées externes
1) Création du programme ou de la procédure (RPG, COBOL...)
–
Objet de type *PGM ou de type *SRVPGM
–
Le programme peut contenir des instructions SQL imbriquées pour retourner un ou plusieurs result sets
2) Création (enregistrement) de la procédure stockée
–
Par l'instruction SQL CREATE PROCEDURE ou par System i Navigator
Il est possible de gérer, tester et déboguer les procédures
stockées par System i Navigator
Procédures stockées - System i Navigator
108 © IBM France 2011
Procédures stockées et listes
Autre possibilité SQL : les fonctions
… / …
110 © IBM France 2011
Les Services Web
Les Services Web sont des applications autonomes et autodescriptives qui peuvent être publiées, localisées et invoquées à travers Internet
Une implémentation de l’architecture orientée services (SOA Phase 1)
Ne contiennent que de la logique métier, pas d’interface utilisateur
Permettent l’interopérabilité des applications
– Indépendants de la plateforme et du langage – Basés sur le standard XML
Peuvent s’intéger dans toute application GUI ou non GUI
Peuvent être implémentés sur n’importe quelle plateforme
– Standard supporté par la majorité des acteurs du marché informatique, entre autres par IBM, Microsoft, SUN, HP, Oracle.
Les Services Web – Quels usages ?
Vous pouvez exposer vos fonctions métier afin qu’elles soient accessibles de l’extérieur :
– Clients
– Fournisseurs – Partenaires – Grand public
Mais également en interne, entre applications
Vous pouvez faire appel à des fonctions et processus métier exposables par d’autres entreprises ou en interne dans vos applications
– Etat d’une commande, d’un colis…
– Calcul de taux de crédit, d’assurance…
– Cours de la bourse, vérification d’un crédit…
– Météo, pages jaunes, itinéraires, plans…
Et ceci indépendemment de la plateforme et du langage
112 © IBM France 2011
La description du Service Web : le fichier WSDL
WSDL : Web Services Definition Language
Langage (structure XML) permettant de décrire le Service Web :
– La ou les procédures – Le ou les paramètres
– Comment invoquer le service
Création de Services Web sous IBM i
A partir de programmes RPG/COBOL sans interface 5250
– Avec le serveur de Services Web intégrés l’IBM i, les outils IBM Rational, les outils Zend
A partir de transactions interactives 5250
– Avec le produit IBM Rational HATS
A partir de requêtes ou procédures SQL
– Avec les outils Rational
A partir de Java ou EGL
– Avec les outils Rational
A partir de PHP
– Avec les outils Zend
114 © IBM France 2011
Service Web
Proxy Java
*PGM,
*SRVPGM
1) Par le « Integrated Web Services Server
for IBM i »– Programmes ILE RPG, ILE COBOL – Création, déploiement et exécution – Intégré à l’IBM i
– Technologie : Java
2) Avec l’environnement de développement
RDi SOA– Rational Developer for IBM i – SOA Construction
– Programmes RPG, COBOL, OPM ou ILE – Technologie : Java
– Un assistant permet de créer
automatiquement le Service Web à partir du programme RPG/COBOL
– Le Service Web est créé dans un projet Web J2EE qu’il faudra ensuite déployer dans un serveur d’applications (de type WAS –
WebSphere Application Server)
3) Avec l’environnement de développement Zend Studio for i
–
Programmes RPG, COBOL, OPM ou ILE
–Technologie : PHP
–
Il faut développer un programme PHP qui appelle le programme i, puis l’exposer sous forme de Service Web
–
Il faudra ensuite déployer ce programme PHP dans le serveur Zend Server for IBM i
Service Web
Proxy PHP
*PGM,
*SRVPGM
116 © IBM France 2011
Integrated Web Services Server for IBM i - Création
Integrated Web Services Server for IBM i - Création
118 © IBM France 2011
Integrated Web Services Server for IBM i - Création
Integrated Web Services Server for IBM i - Services
Permet de visualiser le WSDL
Permet de tester le service
120 © IBM France 2011
Integrated Web Services Server for IBM i - Test
Integrated Web Services Server for IBM i - Listes
122 © IBM France 2011
Integrated Web Services Server for IBM i - Nouveautés
Création d’un Service Web avec RDi SOA
…/…
L’assistant va créer :
- un JavaBean faisant appel au programme RPG/COBOL
- Un Service Web sur ce JavaBean - une application J2EE encapsulant tous les composants qu’il faudra ensuite déployer dans un serveur d’applications de type WAS (WebSphere Application Server)
L’assistant permet de choisir les
caractéristiques du Service Web (type d’encodage…)
124 © IBM France 2011
Procédures stockées et fonctions - Pour en savoir plus
Services Web - Pour en savoir plus - Formation
Centre de formation IBM de Noisy le Grand ou sur site client
Prochaine session planifiée à Noisy : 14 juin
126 © IBM France 2011
Services Web - Pour en savoir plus – Redbooks
Procédures stockées – Services Web – Pour en savoir plus - Sessions
S2 - Sortir du monde 5250 sans perdre les programmes et le savoir faire existants
–
Christian Massé (VOLUBIS) –
Lundi 16 mai – 14h00 S14 - Des Services Web dans vos programmes RPG et COBOL !
–
Nathanaël Bonnet (GAIA) –
Mardi 17 mai – 11h00128 © IBM France 2011
Comment moderniser le code RPG/COBOL ?
C. Découvrir de nouvelles possibilités
- XML, appel de Services Web…
- Accès à d’autres ressources avec RPG Open Access
1. RPG et XML
130 © IBM France 2011
1. RPG et XML – Pour en savoir plus
1. RPG et XML – Pour en savoir plus - Sessions
S10 – RPG, nouveautés 6.1 et 7.1
–