1 java ee 5 - introduction
Post on 28-Jun-2015
235 Views
Preview:
TRANSCRIPT
1
Chapitre 1- Introduction à Java et à Java EE
Chapitre 1
Introduction à Java et aux
technologies Java EE
Introduction à Java et à Java EE
2
Sommaire
Introduction à Java et à l'édition Standard (Java SE)
Introduction à l'édition Entreprise (Java EE)
Conteneurs et composants de Java EE
Les Designs patterns Java EE
Offre commerciale des outils Java EE
2
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
3
Qu'est-ce que Java ?
Un langage de programmation orienté objets purQualité, productivité, et maîtrise de la complexitéd'applications
Une architecture de Virtual MachinePortabilité
Un ensemble d'API (bibliothèques) riches et variéesNetworking, accès aux bases de données, distribution, interfaces graphiques, …
Les spécifications de Java et le JDK sont publicsJava se veut un standard pour le développement d'applications d'entreprise
Les variantes JDK sont disponibles sur http://java.sun.com
Introduction à Java et à Java EE
4
Les caractéristiques du langage Java
Simple• Ok, c'est plus simple que le C++.
Orienté objets• OO pur dans la ligne de Smalltalk et les
autres langages de POO
Interprété• Le compilation génère un code
indépendant des machines, le bytecode. Ce code est ensuite interprétée par la JVM.
Portable• Java est "architecture neutral", il tourne
sur les PC, les Macs, UNIX, …
Robuste • C'est difficile d'avoir des échecs
mémoire ou de corrompre le code ou le stack.
Sécurisé• Mécanismes de sécurité (Bytecode
verifier, Security manager, …)
Multi-threads• Le multi-tâches est immédiatement
supporté.
Distribué• Support des protocoles réseau• Support de la distribution d'objets,
Appels RMI, CORBA
3
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
5
Les trois éditions de Java
1. Java 2 Platform, Standard Edition (J2SE)Applications "stand-alone"
2. Java 2 Platform, Enterprise Edition (J2EE)Applications à large échelle, applications distribuées, applications Web, …
3. Java 2 Platform, Micro Edition (J2ME) Application pour terminaux mobiles (PDA, téléphones mobiles, …)
Introduction à Java et à Java EE
6
1991 – Sun Microsystems (James Gosling)Codename Green – first time called “Oak”Originally developed for intelligent consumer-electronic products such as – set top boxes, Microwaves, TV, etc.
1993 – WWW exploded in popularityWidely used with dynamic content (interactivity & animations)
Current – used forDevelop large scale enterprise applicationsEnhance WWW server functionalityProvide applications for consumer devices
Cellular phone, Palm, Personal Game, etc.
Historique de Java
4
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
7
Historique de Java(www.wikipedia.com)
JDK 1.0 (1996) – Initial release. 212 classes, 8 packages.
JDK 1.1 (1997) – Major additions, most notably the extensive retooling of the event model, as well as the introduction of inner classes.
504 classes, 23 packages.
J2SE 1.2 (December 4, 1998) – Codename Playground. Major changes were made to the API (reflection was introduced, the Swing graphical API was integrated into the core classes, Collections API, etc) and to Sun's JVM (which was equipped with a JIT compiler). These had little impact on the language itself, however: the only change to the Java language was the addition of the keyword strictfp. This and subsequent releases were rebranded "Java 2", but this had no effect on any software version numbers. 1520 classes, 59 packages.
Introduction à Java et à Java EE
8
J2SE 1.3 (May 8, 2000) – Codename Kestrel. The most notable changes were: HotSpot JVM, Remote MethodInvocation (RMI) was changed to be based on CORBA, RMI/IIOP, Java Naming and Directory Interface (JNDI), Java Sound, etc1842 classes, 76 packages.
J2SE 1.4 (February 13, 2002) – Codename Merlin. As of 2004, the most widely used version.
The most notable changes were: low-level I/O API, regular expressions(modeled after Perl regular expressions), logging, user preferences, XML-based persistence, DOM and SAX for XML parsing, SSL, securityand cryptography extensions (JCE, JSSE, JAAS) were integrated intoJ2SE, image reading/writing, drag-and-drop for Swing, assertkeyword, etc2991 classes, 135 packages.
Historique de Java
5
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
9
J2SE 5.0 (September 29, 2004) – Codename Tiger. (Originally numbered 1.5, which is still used as the internal version number) Added a number of significant new language features:
Generics – Provides compile-time type safety for collections and eliminates the need for most typecasts. Autoboxing/unboxing – Automatic conversions between primitive types (such as int) and wrapper types (such as Integer). Metadata – also called Annotations, allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities Enumerations – the enum keyword creates a typesafe, ordered list of values (such as Day.monday, Day.tuesday, etc.). Previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern). Enhanced for loop – the for loop syntax is extended with special syntax for iterating over each member of an array or Collection.>3000 classes
Historique de Java
Introduction à Java et à Java EE
10
Java SE 6 (December 11, 2006) – Codename Mustang. As of this version, Sun replaced the name "J2SE" with Java SE and dropped the ".0" from the version number.
Web Services support in Java SE 6 (before it was partially available only in Java EE) : JAX-WS, JAXB, StAX, …
Scripting facilities in SE 6 (Developer APIs to allow mixing of scripting code with your Java application,The Rhino JavaScript engine in Java SE 6)Database Development facilities, More Desktop APIsMonitoring and Management facilities
Java SE 7 – Codename Dolphin. Project started up in August 2006, with release estimated in 2008.
Historique de Java
6
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
11
La plateforme J2SE 5.0
Version 1.5.0 or 5.0Both version numbers "1.5.0" and "5.0" are used to identify this release of the Java 2 Platform Standard Edition. Version "5.0" is the product version, while "1.5.0" is the developer version. The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE. The number "5.0" was arrived at by dropping the leading "1." from "1.5.0". Where you might have expected to see 1.5.0, it is now 5.0 (and where it was 1.5, it is now 5).
Introduction à Java et à Java EE
12
La plateforme J2SE 5.0
7
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
13
Java™ Platform, Standard Edition 6
Java™ SE 6, Platform Name and Version NumbersAt this release, the platform name has changed from J2SE™ to Java™SE. The official name is Java™ Platform, Standard Edition 6.Both version numbers (1.6.0 and 6) are used to identify this release of the Java Platform. Version 6 is the product version, while 1.6.0 is the developer version. The number 6 is used to reflect the evolving level of maturity, stability, scalability and security of Java SE.
Version 6 Used in Platform and Product Names
Due to significant popularity within the Java developer community, "JDK" continues to be the acronym for the development kit, as does "JRE" for the runtime environment.
Introduction à Java et à Java EE
14
JRE
JDK
Java SEAPI
Java™ Platform, Standard Edition 6
8
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
15
Les packages de Java SE
Le succès de Java tient, entre autres, à la richesse de son API. L'API estorganisée en packages chacun couvrant un domaine d'application.
java.lang – Package systématiquement visible contant des classes fondamentales : Object, System, String, Thread, ..java.util – Utilitaires de programmation : Date,List, Stack,Vector, ...java.io – Classes pour les différents modes d'entrée/sortie java.applet – Développement d'appletjava.awt – Développement d'interfaces graphiquesjavax.swing – Développement d'interfaces graphique JFC, amélioration des performances de AWT apparue depuis Java 2.java.net – Programmation réseau : Sockets TCP, URL, Datagrammes,... java.sql – Programmation des accès aux bases de données relationnellesjava.rmi – Développement d'applicatifs Java distribué sur plusieurs machines
Introduction à Java et à Java EE
16
Java EE pour quoi faire ?
Infrastructure « serveur » pour le support d’applications d’entrepriseSupport des architecture multi-tiers
1. Architecture client léger (architecture Web basée « browser »)2. Architecture client lourd3. Architecture orientée service (application répartie sans présentation)
Support de QoS : transaction, sécuritéConnexion standard à des systèmes d’information externes (accès au « legacy »)
Java EE est la spécification d’un modèle de composants distribués prenant en compte les différentes couches d’un système d’information d’entreprise
La Java EE définit une architecture standard incluantUn modèle de programmation (application multi-tiers, client légers)Une plate-forme (ensemble de spécifications et de politiques requises)Un ensemble de test de compatibilitéUne implantation de référence
Les standards de la Java EE sont gérés par la communauté JCP (Java CommunityProcess www.jcp.org) à travers des JSR(Java Specification Request)
9
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
17
Vue générale de l’architecture J2EE
This model is a logical model. It does not imply physical partitioning into machines, processes, etc.No “all or nothing” requirement
use what you need
Introduction à Java et à Java EE
18
Evolutions des versions de la Java EE
EJB 1.0March 1998
Servlets 2.1November 1998
JSP 1.0September 1999
J2EE 1.2December 1999
J2EE 1.3September 2001
J2EE 1.4November 2003
1998 1999 20012000 … 2003 2006…
Java EE 5May 2006
10
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
19
Evolutions des versions de la Java EE
J2EE 1.3Connector APIEJB (2.x) local interfaces and new CMP model
J2EE 1.4“Web services”Management, Deployment, JAAS
Java EE 5 (May 2006)“Ease of Development”AnnotationsDependency InjectionBetter defaultsJava Persistance API, StAX, JAX-WS
Introduction à Java et à Java EE
20
L'architecture Java EE 5
11
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
21
Containers de la Java EE
Java2EE Components live in Containers
Containers shield the Components from the underlying infrastructure
Containers are responsible forManaging the lifecycle of the Components and notify Components about lifecycle events such as Activation, Passivation and TransactionprogressProvide Components uniform access to services like transactions, security and persistenceRegister and deployment of Components
Introduction à Java et à Java EE
22
Composants et containers de la Java EE
The Interceptor Pattern is used making the Components aware of lifecycle events
The Component is registered to the Container and the Container attachs the Component as an Interceptor to the RuntimeThe Component is called by the Runtime through the Abstract Interceptor Interface
12
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
23
Java EE 5 APIs and VersionsJavaTM Platform, Enterprise Edition 5 (Java EE 5) Specification (http://jcp.org/en/jsr/detail?id=244)
Java EE 5 fait l'objet de la JSR 244Elle a été lancée en Mai 2006 avec GlassFish V1 comme implémentation de référence
Java EE 5 regroupe 23 spécificationsWeb : JSF 1.2, JSP 2.1, JSTL 1.2, Servlet 2.5Entreprise : Common Annotations 1.0, EJB 3.0, JAF 1.1, JavaMail 1.4, JCA 1.5, JMS 1.1, JPA 1.0, JTA 1.1Web Services : JAX-RPC 1.1, JAX-WS 2.0, JAXB 2.0, SAAJ 1.0, StAX 1.0, Web Services 1.2, Web Services MetaData 2.0Management and Security : JACC 1.1, Java EE Application Deployement 1.2, Java EE management 1.1
Introduction à Java et à Java EE
24
Architecture Java EE: Les points critiques
Navigateur
Serveur WebNavigateur
Navigateur
Services Métiers
InformationsPersistantes
Couche de présentation Séparation
Modèle-Vue-Contrôleur
Interface de communication
Contrôles et Entités
Métier
GestionDe la
Persistance
13
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
25
Bonnes pratiques pour le développement Java EE
Apprendre les technologies Java EE est nécessaire mais certainement insuffisant pour assurer la qualité
Besoin de se conformer aux bonnes pratiques de développement professionnelSe référer à des solutions qui ont fait leur preuve
Qu'est ce qu'un design pattern ?Les designs patterns sont des modèles de conceptions génériques prouvées dont l'utilisation pourra contribuer au respect des bonnes pratiquesIls constituent un vocabulaire commun
Un concepteur qui ne reposerait pas sur les patterns fournirait un effort plus important pour transmettre sa conception à d'autres
Les design patterns doivent servir de guides aux architectes et aux développeurs pour construire des solutions tout en profitant du savoir-faire et de l'expérience de la communauté.
Limitent l'espace de la solutionNe pas "réinventer la roue"
Introduction à Java et à Java EE
26
Le catalogue "Core J2EE™" Patterns de Sun
L'objectif de ce catalogue est de produire une documentation formelle pour cataloguer les expériences et les bonnes pratiques
Le catalogue est construit sur la base du Sun Java CenterServices experience
Le catalogue contient 21 Design Patterns dans sa seconde édition
Les patterns sont réparties sur les trois couches du modèle Java EEOuvrage de référence : Core J2EE™ Patterns: Best Practices and Design Strategies, Second Edition, By Deepak Alur, John Crupi, Dan Malkshttp://java.sun.com/blueprints/patterns/catalog.html
Sun lance le programme Java BluePrint Program dans l'objectif de démontrer l'application des patterns et des bonnes pratiques de conception
http://java.sun.com/blueprintsDans le cadre de ce programme, des démons d'applications telles que PetShop, Jav Adventure Builder sont disponibles
14
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
27
Facilite le traitement asynchrone des composants EJB.Service activator
Abstrait les ressources de données, fournit un accès transparent aux donnéesData access object
Encapsule la complexité de la recherche et de la création du service métier.Service locator
Gère l’exécution des requêtes, la mise en cache des résultats et le traitement de ceux-ci.
Value list handler
Assemble un objet valeur composite à partir de plusieurs sources de donnéesValue object assembler
Best practice visant à concevoir des beans entité à gros grain, en regroupant des objets dépendants d’un parents dans seul bean.
Composite entity
Masque la complexité de l’objet métier : centralise la gestion du workflowSession facade
Facilite l’échange des données entre les couches en réduisant la bavardage du réseau
Value object
Découple les couches présentation et service et fournit aux services une interface servant de façade ou de proxy.
Business Delegate
Associe un composant Dispatcher aux patterns Controller et View helpe, en reportant plusieurs activités au moment du traitement de la vue.
Dispatcher viewAssocie un composant Dispatcher aux patterns Controller et view helperService to workerCrée une vue composite à partir de sous composantsComposite view
Encapsule la logique qui n’est pas liée à la mise en forme de la représentation dans des composants dits helpers.
View helper
Fournit un contrôleur centralisé permettant de gérer le traitement des requêtes
Front controller
Facilite le prétraitement et le post-traitement d’une requête.Intercepting filter
RésuméNom du pattern
J2EE design patterns
Présentation
Métier
Intégration
Liste des patterns J2EE
Introduction à Java et à Java EE
28M.Romdhani, R el
a tin
en
tre l es
pa
tt ern
s J
2 EE,
2nd Ed
itio
n
15
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
29
Java PetStore Patterns
Front Controller
Page-by-Page Iterator
Fast-Lane Reader
Value Object
Session Facade
Data Access Object
EncapsulatesData
WorkflowMediator
AbstractsData Access
Centralizes View Management
AcceleratesRead-Only
Access
EfficientSub list
Traversal
PRESENTATION TIER
BUSINESS TIER
INTEGREATION TIER
Introduction à Java et à Java EE
30
Frontal Web : MVC 2, un principe architectural éprouvé
Vue- Rendu du modèle- MAJ du rendu- Récupération actions utilisateurs.
Modèle- Expose les fonctionnalités- Encapsule les informations métiers- Répond aux changement d ’état.
Contrôleur- Logique de présentation- Convertion des actions utilisateur en appel de méthodes sur le modèle
Sélection des vues
actions utilisateurs
changement d’état
notification changements
récupération état
16
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
31
Bonnes pratiques d'accès aux données
Objectifs générauxAssurer une indépendance de l'accès aux données vis-à-vis du client utilisé
Avoir un code du programme client clair et simpleAssurer une indépendance vis-à-vis de la technologie de base de données utilisée
Accroître le degré de portabilité des applicationsAssurer une migration vers une persistance gérée par le conteneur
Le design pattern "Data Access Object"Regrouper la logique d'accès aux données dans un objet séparé auquel les clients délègueront la responsabilité de l'accès aux donnéesOffrir un mécanisme qui supporte divers outils de plusieurs fournisseurs (Hibernate, JDO, TopLink, …)
Introduction à Java et à Java EE
32
Les objets "Data Access" et "Transfer"
17
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
33
Contexte :L’accès aux données dépend de la source et de type de stockage ; bases de données relationnelles, base de données orientées objet, …
Problème :API de stockage persistant varient d’un fournisseur à un autre.Des composants (bean session, servelet...) doivent extraire et mémoriser des informations issues de stockage persistant (système existant, LDAP…)
Solution :Utiliser DAO pour abstraire et encapsuler tous ce qui concerne l’accès aux sources de données. Le DAO gère la connexion, l’obtention des données et leur mémorisation.
Le design pattern DAO
Introduction à Java et à Java EE
34
Le design pattern DAO
18
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
35
Exemple d'implémentation (DAO)
package com.mRomdhani.dao;// importspublic class StockDAO {
final private String tableName = "Stock";// select statement uses fieldsfinal private String fields = "project_id, name," + …;public List findProjects(ProjectTO projCriteria) throws SQLException {
...try {
.. .stmt = con.prepareStatement(selectStatement);stmt.setString(1, resourceID);ResultSet rs = stmt.executeQuery();list = createResultsList(rs);stmt.close();
}finally {
con.close();}return list;
}}
Introduction à Java et à Java EE
36
Le design pattern DTO (Value Objet)
ContexteLes clients de l’application doivent échanger des données avec les beans entreprise
ProblèmeChaque appel de méthode à l’objet du service métier est potentiellement distant.Plus ces appels de méthodes sont nombreux. Plus les performances de l’application peuvent se dégrader de manière significative.
SolutionUtiliser un Value Object pour encapsulerles données métier. Un seul appelde méthode sert à envoyer et à extrairel’objet valeur. Lorsque le client demande
des données au bean entreprise, celui-ci construit l’objet valeur,lui affecte les valeurs des attributs,
et le passe par valeur au client
19
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
37
Le design pattern DTO (Value Objet)
Introduction à Java et à Java EE
38
Exemple d'implémentation (DTO)
Package com.mRomdhani.dto;//importspublic class OrderDetails implements java.io.Serializable {
private String orderId;private String userId;private String orderDate;private float orderValue;private String orderStatus;
public OrderDetails(String oid, String uid, String date, float value,String stat) {
orderId = oid;userId = uid;orderDate = date;orderValue = value;orderStatus = stat;
}
public String getOrderId() {return(orderId);
}// ...
}
20
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
39
Offre commerciale
Introduction à Java et à Java EE
40
Offre en termes de serveurs d’applications
Offre commercialeIBM / WebSphere (n° 1)BEA / WebLogicSun OneOracle 9i Application ServerEt aussi Borland Entreprise Server, Macromedia / Jrun, SAP Web Application Server, Iona / Orbix E2A
Offre « open source »JBoss (n° 1)GlassFish
Implémentation de référence Java EE 5Partnership Sun et Oracle (TopLink Essentials)
JOnASJSAS (Java System Application Server de Sun, serveur de test d’applications J2EE)
21
Chapitre 1- Introduction à Java et à Java EE
Introduction à Java et à Java EE
41
Offre en termes d’IDE de développement
Offre commercialeIBM / WebSphere Studio Application Developer (WSAD)Borland JBuilderSun One DeveloperOracle JDeveloperIDEA software…
Offre « Open Source »Eclipse (Projet eclipse.org soutenu par IBM)NetBeans (de Sun Microsystems)Emacs + ant, …
top related