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
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/
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/
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
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
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
RECHERCHES PERSONNELLES
• SVN
• GIT
• Nexus
• Sonar
• Docker
• Kibana
• Logstash
PROGRAMME DE LA FORMATION
JAVA OBJET
• Bases de java
• Concept de classe/objet
• Héritage
• Polymorphisme
• Encapsulation
• Exceptions
REVISION JAVA
JAVA JEE & WEB (SERVLET, JSP)
• Servlets
• Jsp
• Filter
• MVC
• Java Beans
• JSTL
JAVA JEE & WEB (JSF)
• Framework java
• MVC2
• Basé sur la notion de composants
• Standard java
• Managed bean
• Facelets
• Le templating
XML/XSL
• XML : Extensible Markup Language
• XSLT : Extensible Stylesheet Language Transformations
• DTD: Document type definition
• XSD : XML Schema definition
HIBERNATE
• Framework Java
• ORM (Object-Relational mapping)
• Open source
• Crée en 2001 par Gavin King et son équipe
• Alternative à EJB2 entity
• Jboss Inc
Application
Hibernate
Base de données relationnelle
Objets
transients
Session
SessionFac
tory
Objets
persistants
HIBERNATE
CYCLE DE VIE DES INSTANCES PERSISTANTES (HIBERNATE)
Transient
Persistant
Détaché
Retiré
Garbage collector
Garbage collector
Garbage collector
Delete
Instancier
save()
saveOrUpdate()
close()
clear()
evict()
update()
get()
Load()
query.list()
query.scroll()
query.iterate()
query.uniqueresult()
SPRING
• Conteneur léger
• S’appuie sur 3 concepts :
• l’inversion de contrôle
• AOP
• une couche d’abstraction
• Configuration :
• XML
• Annotation v2.0
• JavaConfig v3
MODULES DE SPRING
EJB3
• Enreprise java Beans
• EJB Session
• Stateless
• Stateful
• EJB Entity
• Persistant
• Managed Driven Bean
Interface
Interface
Serveur JavaEE
StatelessStateful
Serveur JavaEE
JPA
• Java Persistence API
• Standard java
• Couvre 3 zones
• L’API
• JPQL (Java Persistence Query Language)
• Les métadonnées relationnelles
Application
JPA
Base de données relationnelle
Objets
transients
EntityManager
EntityMana
gerFactory
Objets
persistants
Hibernate, OpenJPA ……
JPA
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()
SERVICES WEB ET MODE DISTRIBUÉ
(RMI, SOAP, EJB…)
• RMI
• SOAP
• REST
• EJB remote
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
ESB
principaux éditeurs d'ESB : IBM, Oracle, Bea, Tibco …
IBM : IBM Integration Bus
BPEL
BPMN
QUALITÉ LOGICIELLE
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
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
Besoins
utilisateurs
Maquette
Code
Diagramme de séquence
Système
Diagramme de classes
participantes
Diagramme d’interaction
Diagramme de classes de
conception
Use Case
MDA
• Model Driven Architecture
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
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
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.
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
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.
JAVA & RIA
• Rich Internet Application
• JavaScript
• jQuery
• AngularJS
BIG DATA
• D’après Wikipédia :
• Le traitement de gros volume de données.
• ETL vers ELT
LES 3 (4) V
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
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
LE THÉORÈME CAP
ELASTICSEARCH
• Elasticsearch
• Basé sur Lucene
• Base de données orientée recherche
• Trier les résultats
RECHERCHES PERSONNELLES
SVN
• Première version : 2000
• logiciel de gestion de versions
• Mode Client-Serveur
• Serveur centralisé et unique
• Dépôt
• Logiciel tournant en tâche de fond
• postes clients
• Fichiers synchronisés
• Logiciel Client
GIT
• Développé par Linus Torvalds en 2005
• logiciel de gestion de versions décentralisé
• Possibilité d’avoir des branches
NEXUS
• repository manager
• un proxy configurable entre votre organisation et les
repositories publics maven
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é
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
KIBANA
• Plugin de visualisation pour elasticsearch
• Open source
• Développé en AngularJS
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
ELK
• Elasticsearch – Logstach - Kibana

Formation d'architecte logiciel AFCEPF

  • 1.
    Boubker ABERWAG Développeur Java/JEEIBM 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 Projete-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 LAFORMATION • 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
  • 7.
    RECHERCHES PERSONNELLES • SVN •GIT • Nexus • Sonar • Docker • Kibana • Logstash
  • 8.
    PROGRAMME DE LAFORMATION
  • 9.
    JAVA OBJET • Basesde java • Concept de classe/objet • Héritage • Polymorphisme • Encapsulation • Exceptions REVISION JAVA
  • 10.
    JAVA JEE &WEB (SERVLET, JSP) • Servlets • Jsp • Filter • MVC • Java Beans • JSTL
  • 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
  • 14.
    Application Hibernate Base de donnéesrelationnelle Objets transients Session SessionFac tory Objets persistants HIBERNATE
  • 15.
    CYCLE DE VIEDES INSTANCES PERSISTANTES (HIBERNATE) Transient Persistant Détaché Retiré Garbage collector Garbage collector Garbage collector Delete Instancier save() saveOrUpdate() close() clear() evict() update() get() Load() query.list() query.scroll() query.iterate() query.uniqueresult()
  • 16.
    SPRING • Conteneur léger •S’appuie sur 3 concepts : • l’inversion de contrôle • AOP • une couche d’abstraction • Configuration : • XML • Annotation v2.0 • JavaConfig v3
  • 17.
  • 18.
    EJB3 • Enreprise javaBeans • EJB Session • Stateless • Stateful • EJB Entity • Persistant • Managed Driven Bean
  • 19.
  • 20.
    JPA • Java PersistenceAPI • Standard java • Couvre 3 zones • L’API • JPQL (Java Persistence Query Language) • Les métadonnées relationnelles
  • 21.
    Application JPA Base de donnéesrelationnelle Objets transients EntityManager EntityMana gerFactory Objets persistants Hibernate, OpenJPA …… JPA
  • 22.
    CYCLE DE VIEDES 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 ETMODE DISTRIBUÉ (RMI, SOAP, EJB…) • RMI • SOAP • REST • EJB remote
  • 24.
    SOA CONCEPTS ETURBANISATION • 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
  • 25.
    ESB principaux éditeurs d'ESB: IBM, Oracle, Bea, Tibco … IBM : IBM Integration Bus
  • 26.
  • 27.
  • 28.
  • 29.
    UML : DIAGRAMMESET 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 Diagrammede 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
  • 31.
    Besoins utilisateurs Maquette Code Diagramme de séquence Système Diagrammede classes participantes Diagramme d’interaction Diagramme de classes de conception Use Case
  • 32.
  • 33.
    MODELES • « Modéliser estle 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 dansson 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éfinitionde 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.
  • 38.
    JAVA & RIA •Rich Internet Application • JavaScript • jQuery • AngularJS
  • 39.
    BIG DATA • D’aprèsWikipédia : • Le traitement de gros volume de données. • ETL vers ELT
  • 40.
  • 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é parles 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
  • 43.
  • 44.
    ELASTICSEARCH • Elasticsearch • Basésur Lucene • Base de données orientée recherche • Trier les résultats
  • 45.
  • 46.
    SVN • Première version: 2000 • logiciel de gestion de versions • Mode Client-Serveur • Serveur centralisé et unique • Dépôt • Logiciel tournant en tâche de fond • postes clients • Fichiers synchronisés • Logiciel Client
  • 48.
    GIT • Développé parLinus Torvalds en 2005 • logiciel de gestion de versions décentralisé • Possibilité d’avoir des branches
  • 50.
    NEXUS • repository manager •un proxy configurable entre votre organisation et les repositories publics maven
  • 51.
    SONAR • SonarSource • Supporteplus 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 ledé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 devisualisation pour elasticsearch • Open source • Développé en AngularJS
  • 54.
    LOGSTASH • Collecte dedonné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
  • 55.
    ELK • Elasticsearch –Logstach - Kibana

Notes de l'éditeur

  • #37 MOF : Meta-Object Facility XMI : XML Meta interchange JMI : Java metadata interface EMF : Eclipse Modeling Framework QVT : query voiew transformation