Java : la synthèse

chuckleelephantbutteSoftware and s/w Development

Jun 9, 2012 (5 years and 5 months ago)

622 views

58
www.institut.capgemini.fr
Pr oj et s et Dével oppement
1 Les concepts de base
L’origine de Java (rappels)
- Les objectifs des concepteurs de Java.
- Les débuts de Java: la notion d’applet. L’in-
tégration de Java dans les navigateurs.
- Les composants de base: le langage, la
machine virtuelle et les librairies.
- Les différentes utilisations de Java: de Java
embarqué (JavaME, Android, JavaCard) à
Java sur le serveur (Java EE). Historique des
versions de Java.
- Les conséquences du rachat de Sun par
Oracle.
La machine virtuelle Java (JVM)
- Principe de fonctionnement. Indépendance
de Java par rapport aux systèmes d’exploi-
tation. La portabilité des applications Java:
quelles limites?
- La structure des applications Java: les
fichiers .class et .jar.
- Les performances des JVM. Les évolutions:
du simple interpréteur aux compilateurs
natifs, en passant par les compilateurs Just-
In-Time et les compilateurs dynamiques
tels que HotSpot.
- Les principaux fournisseurs de JVM. Les
plates-formes supportées.
- Comment protéger le code des applica-
tions Java contre la décompilation?
Les principales caractéristiques de Java
- Langage orienté objet, conçu comme une
synthèse de C++, SmallTalk et Objective C.
- Langage favorisant l’écriture d’applications
robustes: principes de la gestion automatique
de la mémoire (“Garbage collect”) et méca-
nisme de gestion des erreurs (les exceptions).
- Langage orienté réseau: librairies de com-
munications, support du multitâche pour
le développement d’applications serveurs.
- Java: langage “ouvert”? Les processus de
décision sur les évolutions de Java: le JCP
(Java Community Process). Sun et le passage
de Java en Open Source. L’utilisation inten-
sive de Java par la communauté Open Source,
les principaux acteurs: Apache, Red Hat/
JBoss, Eclipse, Spring. Java et les principaux
acteurs du logiciel (Microsoft, IBM, Google,
SAP). L’analyse des décisions d’Oracle suite
au rachat de Sun. Quels impacts pour la com-
munauté Open Source, pour les utilisateurs
de Java et pour les éditeurs s’appuyant sur
Java? Les conséquences des conflits avec
Google et la fondation Apache.
Java et les autres langages
- Les principaux avantages et inconvénients
de l’utilisation de Java.
- L’offre concurrente de Microsoft: .NET, C#
et le CLR (Common Language Runtime).
- Les évolutions du langage Java avec les ver-
sions 5, 6 et 7. Les objectifs de la version 8.
- La JVM comme plate-forme d’exécution indé-
pendante du langage Java: l’émergence des
langages dynamiques utilisant la JVM (Clo-
sure, Groovy, JRuby, Jython, Scala, Ceylon, etc.).
2 Java EE: la principale
utilisation de Java
Présentation de Java EE
(précédemment nommé “J2EE”)
- Intérêts de Java EE pour le développe-
ment d’applications Intranet et Internet.
Les services offerts par Java EE: socle d’exé-
cution d’applications Web, gestion des
transactions, sécurité, persistance, etc.
- Les principaux composants techniques de
Java EE: servlets, JSP, EJB, JMS, JTS, etc.
- Les servlets et les JSP (Java Server Pages):
principes de fonctionnement. Comment
bien utiliser les servlets et JSP: le modèle
MVC. La notion de session. Les évolutions
apportées par la spécification JSF (Java
Server Faces). XSLT: une alternative aux
JSP?
- Les EJB (Entreprise Java Beans): le modèle
de composants Java distribués. Les princi-
paux types d’EJB: session, entité et mes-
sage. L’utilisation des EJB est-elle nécessaire?
Les précautions à prendre. Les apports de
la spécification EJB 3. Les solutions alterna-
tives: conteneurs légers, approche POJO,
Spring, Hibernate.
L’accès aux données
- L’accès aux bases de données relationnelles:
la librairie JDBC. Principes de fonctionne-
ment. Les différents types de drivers JDBC.
Les performances. Le support de JDBC par
les éditeurs de SGBDR.
- La spécification Java EE Connector Architec-
ture pour accéder aux autres sources de
données, par exemple l’accès à CICS, l’accès
aux progiciels (SAP, Oracle Applications, etc.).
Java dans les progiciels.
- Les solutions pour gérer la persistance des
objets Java en limitant l’écriture de code
technique: iBatis, Hibernate, EclipseLink.
La notion de mapping objet-relationnel.
Les POJO. La spécification JPA (Java Persis-
tence API).
Les frameworks
- La majorité des développements Java côté
serveur s’appuie sur des frameworks. Pour-
quoi utiliser un framework? Comment
choisir un framework?
Java:
la synthèse
u
les connaissances indispensables
En deux journées denses, ce séminaire explicite de façon didactique l’ensemble des concepts et connaissances indispensables
à tout informaticien en charge de gérer ou de participer à des projets Java.
Après avoir expliqué les principes de fonctionnement de Java et les principales caractéristiques du langage, le séminaire
examine son utilisation principale: la réalisation d’applications serveur en utilisant Java EE (précédemment nommé J2EE).
Sont ensuite étudiés le développement des applications Java, l’utilisation de Java sur le poste client, Java et le Web 2.0
ainsi que la mise en œuvre d’architectures orientées services (SOA) en Java.
Le séminaire répondra plus particulièrement aux questions suivantes:
• Que propose Java EE? Comment se décompose une application Java EE?
• Quel est le rôle des frameworks et comment faire son choix?
• Quelles méthodes et quels outils choisir pour le développement d’applications Java?
• Quelle plate-forme d’exploitation choisir?
• Quel avenir pour Java après le rachat de Sun par Oracle?
- Les principales notions mises en œuvre par
les frameworks: le modèle MVC 2, l’inversion
de contrôle et l’injection de dépendances,
les notions de composants et de services.
- Les frameworks historiques: Struts et Spring.
Les approches plus novatrices: Seam de
JBoss, Tapestry, Wicket, Grails, Spring ROO,
Play.
- Les conteneurs “légers” en remplacement
des serveurs Java EE. Le trio Tomcat, Spring
et Hibernate peut-il être une alternative
aux serveurs d’applications? La notion de
profil de Java EE 6.
La mise en exploitation
des applications Java EE
- Le modèle de déploiement des applica-
tions Java EE: les formats WAR et EAR.
- L’administration des applications Java EE.
Les outils et standards. La spécification JMX
(Java Management eXtension). Les fonc-
tionnalités de répartition de charge. Les
outils pour mesurer les performances.
- Les principaux serveurs d’applications Java:
IBM WebSphere, Oracle WebLogic Server,
JBoss de Red Hat, Tomcat, Geronimo et
TomEE de la fondation Apache, Glassfish
d’Oracle, JOnAS du consortium OW2, Jetty
de la fondation Eclipse. Caractéristiques
techniques, positionnement, parts de mar-
ché, forces et faiblesses de chaque offre.
Les solutions complémentaires: portails
et portlets, ESB, EAI, etc. Les conséquen-
ces des rachats de Sun et BEA par Oracle.
3 Développement
des applications Java
Les environnements
de développement Java
- Les fonctionnalités nécessaires: navigateurs
de classes, éditeurs sophistiqués, travail en
équipe, etc.
- L’outillage de base: le JDK. Le compilateur
Javac et l’outil Javadoc.
- L’intégration des IDE dans un cycle de déve-
loppement itératif. Lien avec les outils de
modélisation UML.
- L’offre Open Source: Eclipse et NetBeans.
Présentation des deux projets et des outils
associés. L’impact de la fondation Eclipse
et de ses projets sur l’offre des éditeurs.
- L’offre des éditeurs: Rational Application
Developper d’IBM, JDeveloper d’Oracle,
Idea d’IntelliJ.
- La problématique du développement des
servlets, JSP et EJB. L’utilisation des ser-
veurs d’applications lors de la phase de
développement.
L’organisation des développements
- Comment organiser les équipes? Quels
outils choisir, notamment pour le travail en
équipe et la gestion des versions?
- Nécessité de la modélisation objet pour les
applications Java? L’intégration des outils
de modélisation UML dans les IDE Java.
L’approche MDA: le projet Eclipse EMF, etc.
- L’utilisation de méthodes dites agiles. Les
outils utilisés par la communauté Open
Source: ANT, Ivy, Maven, JUnit, CVS, Sub-
version, Git, Hudson, Jenkins, etc. Leur adop-
tion en entreprise et leur intégration dans
les IDE Java.
- Les nombreuses librairies utilisables par
les développeurs. Librairies standard et
librairies Open Source, par exemple JNI,
RMI, JNDI, le projet POI d’Apache pour la
manipulation de documents Word ou Excel,
la librairie JFreeChart pour les graphiques,
les projets JasperReports et Eclipse BIRT
pour la génération de rapports, etc.
Tester, analyser et optimiser
les applications Java
- La gestion des tests unitaires avec JUnit.
Les outils de simulation de charge pour les
applications Web, notamment JMeter, The
Grinder, LoadRunner.
- La machine virtuelle pour analyser dyna-
miquement l’exécution d’un programme
Java. Les outils disponibles: JProbe, TPTP,
VisualVM, etc. Quel intérêt, quelles limites?
- Les outils pour analyser les problèmes d’uti-
lisation de la mémoire. Eclipse MAT.
- Analyser la qualité du code avec des outils
comme CheckStyle, FindBugs et Pmd. Les
outils pour faire des tests de couverture.
4 Java et les nouvelles
architectures applicatives
Java et les applications de type client riche
- Client lourd, client léger et client riche.
Avantages et inconvénients de l’utilisation
de Java dans ces contextes. Le déploie-
ment d’applications clientes avec Java Web
Start.
- Java et les interfaces graphiques: les librai-
ries AWT, Swing et SWT. Forces et faibles-
ses, complémentarité. Les constructeurs
d’interfaces graphiques. JavaFX 2: le renou-
veau des librairies graphiques Java?
- Les frameworks pour le développement de
clients riches: le projet Eclipse RCP (Rich
Client Platform) et le projet NetBeans RCP.
Quels sont les apports de ces plates-formes?
- Java sur les smartphones. Le projet Android
de Google.
Java et le Web 2.0
- Spécificités des clients riches Internet.
Web 2.0, Ajax.
- Java et JavaScript: deux langages très dif-
férents.
- Pourquoi utiliser Java pour le développe-
ment d’applications Ajax? Les librairies et
outils disponibles: Google Web Toolkit
(GWT), le projet RAP d’Eclipse, Echo2,
Vaadin, Zk.
- Java et le Cloud Computing: Java sur les
offres AppEngine de Google, EC2 d’Ama-
zon. Positionnement d’Oracle et d’IBM sur
le Cloud Computing. Le rachat de Spring-
Source par VMWare.
Java, Web Services et SOA
- Les Web Services (SOAP et WSDL) et les
architectures orientées services. L’alterna-
tive REST.
- L’intégration des Web Services dans les ser-
veurs Java EE. Les API définies dans la spé-
cification Java EE: JAX-RPC, JAX-WS, JAXB,
JAXR et SAAJ. Le projet AXIS d’Apache. Java
et l’approche REST, JAX-RS.
- Les spécifications SCA (Service Compo-
nent Architecture) et SDO (Service Data
Objects).
- Java et les ESB (Enterprise Service Bus).
DURÉE
2 journées
DATES
26-27 juin 2012
6-7 décembre 2012
PRIX
1 785 € ht (2 134,86 € ttc)
Renseignements: Véronique Groud
tél.: 01 44 74 24 10
veronique.groud@capgemini.com
59
Les Séminaires Capgemini Institut
Inscriptions en ligne