1. Boubker ABERWAG
Développeur Java/JEE IBM Client Innovation Center
aberwagb@fr.ibm.com
b_aberwag@yahoo.fr
Site officiel IBM CIC
http://www-05.ibm.com/fr/clientinnovationcenter/index.html
https://fr.linkedin.com/in/boubker-aberwag-6209289b
http://www.viadeo.com/fr/profile/boubker.aberwag
FORMATION D’ARCHITECTE LOGICIEL
AFCEPF
2. PRÉSENTATION D’IBM CIC
• IBM Client Innovation Center Lille
• Premier Client Innovation Center de France
• Crée en 2013
• Equipe de 400 collaborateurs (Objectif : atteindre 1000 collaborateurs en
2018
• Président Directeur Général : MIHLE Nicolas
• http://www-05.ibm.com/fr/clientinnovationcenter/
3. PRÉSENTATION DE L’AFCEPF
• Association française de conseil et d'éducation professionnelle
• Fondé en 1984
• Directeur : Patrick Rakotomalala
• Titres délivrés :
• Analyste informaticien
• Architecte logiciel
• Consultant en Assistance à Maîtrise d'Ouvrage
• Site officiel : http://www.afcepf.fr/
4. INTRODUCTION
• La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
• Théorie VS Pratique
• Formation avec 40% de théorie et 60% de pratique
• Un projet d’e-commerce à développer en parallèle
5. Cours + TP
Projet e-commerce
Mettre en place
le site e-
commerce
Intégration des
web services
Présentation
du projet aux
entreprises
PLANNING
Intégration du
big data
6. PROGRAMME DE LA FORMATION
• Java Objet
• Java JEE & Web (servlet, jsp)
• Java JEE & Web (JSF)
• XML/XSL
• Hibernate/Spring
• EJB/JPA
• Soa concepts et urbanization
• Services Web et mode distribué (rmi, soap, ejb…)
• SOA Concepts, Architecture, BPEL
• Qualité Logicielle
• UML : Diagrammes et Etudes de cas
• MDA
• Java & RIA
• Big Data
11. JAVA JEE & WEB (JSF)
• Framework java
• MVC2
• Basé sur la notion de composants
• Standard java
• Managed bean
• Facelets
• Le templating
12. XML/XSL
• XML : Extensible Markup Language
• XSLT : Extensible Stylesheet Language Transformations
• DTD: Document type definition
• XSD : XML Schema definition
13. HIBERNATE
• Framework Java
• ORM (Object-Relational mapping)
• Open source
• Crée en 2001 par Gavin King et son équipe
• Alternative à EJB2 entity
• Jboss Inc
20. JPA
• Java Persistence API
• Standard java
• Couvre 3 zones
• L’API
• JPQL (Java Persistence Query Language)
• Les métadonnées relationnelles
21. Application
JPA
Base de données relationnelle
Objets
transients
EntityManager
EntityMana
gerFactory
Objets
persistants
Hibernate, OpenJPA ……
JPA
22. CYCLE DE VIE DES INSTANCES PERSISTANTES (JPA)
Transient
Persistant
Détaché
Retiré
Garbage collector
Garbage collector
Garbage collector
remove
Instancier
persist()
merge()
close()
clear()
merge()
find()
getReference()
query.getResultList()
query.getSingleResult()
23. SERVICES WEB ET MODE DISTRIBUÉ
(RMI, SOAP, EJB…)
• RMI
• SOAP
• REST
• EJB remote
24. SOA CONCEPTS ET URBANISATION
• Service Oriented Architecture (programming in the large )
• ESB
• Implémentation de SOA
• Nouvelle génération de EAI Construite sur des standars comme
• XML
• JMS
• Web Services
• BPEL (Orchestrateur)
• Apache ODE
29. UML : DIAGRAMMES ET ETUDES DE CAS
• Début 90 : plusieurs méthodes
• Rational : Unified Method
• Devient UML en 95
• Standardisation OMG en 97 V1.1
• Version 2 en 2003
30. Diagramme
Diagramme
de classes
Diagramme de
composants
Diagramme
d’objets
Diagramme de
packages
Diagramme de
déploiement
Diagramme de
structure composite
Diagramme
structurel
Diagramme de
comportement
Diagramme
états-transitions
Diagramme
de use case
Diagramme
d’activité
Diagramme
d’interaction
Diagramme
de temps
Diagramme
de séquence
Diagramme global
d’interaction
Diagramme de
communication
33. MODELES
• « Modéliser est le futur, et je pense que les sociétés qui travaillent dans
ce domaine ont raison » B. Gates
• « Obtenir du code à partir d’un modèle stable est une capacité qui
s’inscrit dans la durée » R. Soley
• « A quoi bon modéliser puisque in fine il faudra toujours écrire du
code? »
• « Un bon schéma vaut mieux qu’un long discours … sauf qu’à un
schéma (UML) correspond plus d’un long discours ! »
Besoin de bonnes pratiques et d’objectifs précis
34. PRATIQUES ET OBJECTIFS
Pratiques
• Décomposer en niveaux d’abstraction
• Automatiser les relations inter/intra niveaux
• Formaliser les informations contenues dans les niveaux
Objectifs
• Élaboration de nouvelles applications
• Évolution d’applications existantes
• Maîtriser l’impact des nouvelles technologies
35. L’APPROCHE
Modèle d’exigences:
représente l’application
dans son environnement.
Modèle d’analyse et de
conception abstraite:
représente l’architecture
de l’application.
Modèle de code:
représente la construction
de l’application.
Code de l’application et
fichier de configuration.
36. LES MOYENS
• Définition de tous les métamodèles de manière uniforme
• Le standard MOF définit le langage de définition des métamodèles
• Format standard d’import et d’export des modèles
• Le standard XMI définit les moyens d’import et d’export de tous les modèles
selon le format XML
• Langage de manipulation des modèles
• Les frameworks JMI/EMF définissent les moyens de représentation des modèles à
l’aide de langages de programmation objet.
• Langage dédié au transformation de modèles
• Le standard QVT définit le langage d’expression de transformations de modèles
37. LES RESULTATS
• Pérennité des savoir-faire
• L’ambition du MDA est de faire en sorte que les modèles (CIM, PIM) aient une
durée de vie supérieure au code.
• L’objectif est donc de fournir des langages de modélisation supportant
différents niveaux d’abstraction.
• Gains de productivité
• MDA vise à apporter des gains de productivité en automatisant les opérations
sur les modèles.
• L’objectif est donc de faciliter la création d’opérations de production sur les
modèles (du contemplatif au productif)
• Prise en compte des plates-formes d’exécution
• MDA veut rendre explicite la prise en compte des plates-formes d’exécution
dans le cycle de vie des applications.
• L’objectif est donc de construire des langages permettant de modéliser les
plates-formes et de lier ces modèles aux modèles des applications.
41. HADOOP
• Hadoop
• Créé par Doug Cutting
• Fait partie des projets Apache depuis 2009
• Inspiré des publications de mapReduce, GFS et BigTable de Google
• Implémentation libre du mapReduce
• HDFS
42. NOSQL
• Développé par les grands acteurs du WEB : Facebook, Google …
• Annoncé pour la première fois en 2009
• Not Only SQL
• MongoDB
• Orienté document
• Schema-less
• Morphia
• Hibernate OMG
51. SONAR
• SonarSource
• Supporte plus de 25 langages
• Reproting
• Duplications de code
• Niveau de documentation
• Règles de programmation
• Des bugs potentiels
• Couverture de tests
• Analyse de la répartition de la complexité
52. DOCKER
• automatise le déploiement d'applications dans des
conteneurs logiciels
• Intégré dans IBM BlueMix
Container Container Container
Docker Engine
Linux Operating System
Physical Server
Linux Kernel
ApplicationApplicationApplication
53. KIBANA
• Plugin de visualisation pour elasticsearch
• Open source
• Développé en AngularJS
54. LOGSTASH
• Collecte de données
• Syslog
• Email via le protocole IMAP
• Un tweet
• Analyse de données
• Analyse
• Mise en forme avec des filtres
• Stockage de données
• Exporte les données sous divers format
• Email
• Fichier texte
• Alarme Nagios
• BDD elasticsearch