P. 1
1 Java EE 5 - Introduction

1 Java EE 5 - Introduction

|Views: 215|Likes:
Published by Paul Pat

More info:

Published by: Paul Pat on Jan 27, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/04/2014

pdf

text

original

Chapitre 1

Introduction à Java et aux technologies Java EE

Sommaire

Introduction à Java et à Java EE

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

Qu'est-ce que Java ?
Un langage de programmation orienté objets pur
Qualité, productivité, et maîtrise de la complexité d'applications

Introduction à Java et à Java EE

Une architecture de Virtual Machine
Portabilité

Un ensemble d'API (bibliothèques) riches et variées
Networking, accès aux bases de données, distribution, interfaces graphiques, …

Les spécifications de Java et le JDK sont publics
Java se veut un standard pour le développement d'applications d'entreprise Les variantes JDK sont disponibles sur http://java.sun.com

3

Introduction à Java et à Java EE

Les caractéristiques du langage Java
Simple
• Ok, c'est plus simple que le C++.

Robuste
• C'est difficile d'avoir des échecs mémoire ou de corrompre le code ou le stack.

Orienté objets
• OO pur dans la ligne de Smalltalk et les autres langages de POO

Sécurisé
• Mécanismes de sécurité (Bytecode verifier, Security manager, …)

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.

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

Portable
• Java est "architecture neutral", il tourne sur les PC, les Macs, UNIX, …

4

1993 – WWW exploded in popularity Widely used with dynamic content (interactivity & animations) Current – used for Develop large scale enterprise applications Enhance WWW server functionality Provide applications for consumer devices Cellular phone. applications Web. applications distribuées. Microwaves. Java 2 Platform. Personal Game. TV. Java 2 Platform. Java 2 Platform.Introduction à Java et à Java EE Les trois éditions de Java 1. etc. Standard Edition (J2SE) Applications "stand-alone" 2. téléphones mobiles. …) 5 Introduction à Java et à Java EE Historique de Java 1991 – Sun Microsystems (James Gosling) Codename Green – first time called “Oak” Originally developed for intelligent consumer-electronic products such as – set top boxes. Palm. … 3. Enterprise Edition (J2EE) Applications à large échelle. etc. 6 . Micro Edition (J2ME) Application pour terminaux mobiles (PDA.

1998) – Codename Playground. etc) and to Sun's JVM (which was equipped with a JIT compiler). 212 classes. etc 1842 classes. security and cryptography extensions (JCE. SSL. as well as the introduction of inner classes. 135 packages. the Swing graphical API was integrated into the core classes. This and subsequent releases were rebranded "Java 2". 2002) – Codename Merlin. Java Sound. regular expressions (modeled after Perl regular expressions). RMI/IIOP. J2SE 1.wikipedia.Historique de Java (www. etc 2991 classes.com) Introduction à Java et à Java EE JDK 1. assert keyword. Java Naming and Directory Interface (JNDI). drag-and-drop for Swing. 8 . logging. JSSE.2 (December 4. 2000) – Codename Kestrel.0 (1996) – Initial release. The most notable changes were: low-level I/O API. 504 classes. DOM and SAX for XML parsing.4 (February 13. 59 packages. XML-based persistence. Collections API. however: the only change to the Java language was the addition of the keyword strictfp. 76 packages. These had little impact on the language itself. JDK 1. most notably the extensive retooling of the event model.3 (May 8. The most notable changes were: HotSpot JVM. As of 2004. 23 packages.1 (1997) – Major additions. Major changes were made to the API (reflection was introduced. J2SE 1. the most widely used version. 1520 classes. 7 Introduction à Java et à Java EE Historique de Java J2SE 1. user preferences. JAAS) were integrated into J2SE. image reading/writing. 8 packages. but this had no effect on any software version numbers. Remote Method Invocation (RMI) was changed to be based on CORBA.

with release estimated in 2008. (Originally numbered 1. Metadata – also called Annotations.0" from the version number. Project started up in August 2006. etc. which can then be processed by metadata-aware utilities Enumerations – the enum keyword creates a typesafe. Previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern). More Desktop APIs Monitoring and Management facilities Java SE 7 – Codename Dolphin. 2006) – Codename Mustang.The Rhino JavaScript engine in Java SE 6) Database Development facilities.monday.5. Web Services support in Java SE 6 (before it was partially available only in Java EE) : JAX-WS.tuesday. Autoboxing/unboxing – Automatic conversions between primitive types (such as int) and wrapper types (such as Integer).). 2004) – Codename Tiger. JAXB. Enhanced for loop – the for loop syntax is extended with special syntax for iterating over each member of an array or Collection. Sun replaced the name "J2SE" with Java SE and dropped the ". allows language constructs such as classes and methods to be tagged with additional data. StAX. 10 .0 (September 29. 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.Introduction à Java et à Java EE Historique de Java J2SE 5. >3000 classes 9 Introduction à Java et à Java EE Historique de Java Java SE 6 (December 11. Day. As of this version. … Scripting facilities in SE 6 (Developer APIs to allow mixing of scripting code with your Java application. ordered list of values (such as Day.

5. it is now 5. stability.0 Introduction à Java et à Java EE 12 .0 or 5.5.0" are used to identify this release of the Java 2 Platform Standard Edition.0" was arrived at by dropping the leading "1.5.5. it is now 5). The number "5. The number "5." from "1. scalability and security of the J2SE. 11 La plateforme J2SE 5.5. Where you might have expected to see 1.Introduction à Java et à Java EE La plateforme J2SE 5.0". Version "5.0. while "1.0 Both version numbers "1.0" is the developer version.0" and "5.0 Version 1.0" is the product version.0" is used to better reflect the level of maturity.5.0 (and where it was 1.

0 is the developer version. Both version numbers (1. scalability and security of Java SE.Introduction à Java et à Java EE Java™ Platform.6. Standard Edition 6. Platform Name and Version Numbers At this release. the platform name has changed from J2SE™ to Java™ SE.0 and 6) are used to identify this release of the Java Platform. Version 6 is the product version. as does "JRE" for the runtime environment. while 1. 13 Introduction à Java et à Java EE Java™ Platform. "JDK" continues to be the acronym for the development kit. Standard Edition 6 JDK JRE Java SE API 14 . Standard Edition 6 Java™ SE 6. Version 6 Used in Platform and Product Names Due to significant popularity within the Java developer community. stability. The official name is Java™ Platform.6. The number 6 is used to reflect the evolving level of maturity.

Architecture orientée service (application répartie sans présentation) Support de QoS : transaction. Thread..swing – Développement d'interfaces graphique JFC.awt – Développement d'interfaces graphiques javax.. 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 incluant Un modèle de programmation (application multi-tiers. Architecture client léger (architecture Web basée « browser ») 2.jcp. Architecture client lourd 3. Stack.lang – Package systématiquement visible contant des classes fondamentales : Object.sql – Programmation des accès aux bases de données relationnelles java. à la richesse de son API. System.util – Utilitaires de programmation : Date. java. URL..applet – Développement d'applet java. java..io – Classes pour les différents modes d'entrée/sortie java.org) à travers des JSR(Java Specification Request) 16 . amélioration des performances de AWT apparue depuis Java 2. 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 Community Process www. String.Introduction à Java et à Java EE Les packages de Java SE Le succès de Java tient. java..rmi – Développement d'applicatifs Java distribué sur plusieurs machines 15 Introduction à Java et à Java EE Java EE pour quoi faire ? Infrastructure « serveur » pour le support d’applications d’entreprise Support des architecture multi-tiers 1.List. L'API est organisée en packages chacun couvrant un domaine d'application.. .net – Programmation réseau : Sockets TCP. . java. java. Datagrammes.Vector. entre autres.

0 March 1998 1999 2000 2001 … 2003 … 2006 Java EE 5 May 2006 JSP 1.Introduction à Java et à Java EE Vue générale de l’architecture J2EE This model is a logical model.2 December 1999 J2EE 1. No “all or nothing” requirement use what you need 17 Introduction à Java et à Java EE Evolutions des versions de la Java EE Servlets 2.0 September 1999 J2EE 1. It does not imply physical partitioning into machines. processes. etc.4 November 2003 1998 EJB 1.1 November 1998 J2EE 1.3 September 2001 18 .

JAX-WS 19 Introduction à Java et à Java EE L'architecture Java EE 5 20 .3 Connector API EJB (2. StAX. Deployment. JAAS Java EE 5 (May 2006) “Ease of Development” Annotations Dependency Injection Better defaults Java Persistance API.Introduction à Java et à Java EE Evolutions des versions de la Java EE J2EE 1.x) local interfaces and new CMP model J2EE 1.4 “Web services” Management.

Introduction à Java et à Java EE Containers de la Java EE Java2EE Components live in Containers Containers shield the Components from the underlying infrastructure Containers are responsible for Managing the lifecycle of the Components and notify Components about lifecycle events such as Activation. Passivation and Transaction progress Provide Components uniform access to services like transactions. security and persistence Register and deployment of Components 21 Introduction à Java et à Java EE 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 Runtime The Component is called by the Runtime through the Abstract Interceptor Interface 22 .

SAAJ 1.1.0.0.0.5 Entreprise : Common Annotations 1. JTA 1. Web Services 1.org/en/jsr/detail?id=244) Elle a été lancée en Mai 2006 avec GlassFish V1 comme implémentation de référence Java EE 5 regroupe 23 spécifications Web : JSF 1.0. JAX-WS 2. Enterprise Edition 5 (Java EE 5) Specification (http://jcp.5.1.2. JAF 1. JCA 1. JMS 1.0.2.2. Web Services MetaData 2.2. Servlet 2.1.0. JPA 1. StAX 1.4. JAXB 2. JSTL 1. EJB 3.0. JavaMail 1.1 Web Services : JAX-RPC 1.0 Management and Security : JACC 1.1.1.1 23 Introduction à Java et à Java EE Architecture Java EE: Les points critiques Couche de présentation Séparation Modèle-Vue-Contrôleur Navigateur Contrôles et Entités Métier Services Métiers Informations Persistantes Navigateur Serveur Web Navigateur Interface de communication Gestion De la Persistance 24 . Java EE Application Deployement 1.Java EE 5 APIs and Versions Java EE 5 fait l'objet de la JSR 244 Introduction à Java et à Java EE JavaTM Platform. JSP 2. Java EE management 1.

Dan Malks http://java.com/blueprints/patterns/catalog. Jav Adventure Builder sont disponibles 26 .com/blueprints Dans le cadre de ce programme. des démons d'applications telles que PetShop. John Crupi. By Deepak Alur. Limitent l'espace de la solution Ne pas "réinventer la roue" 25 Introduction à Java et à Java EE 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 Center Services experience Le catalogue contient 21 Design Patterns dans sa seconde édition Les patterns sont réparties sur les trois couches du modèle Java EE Ouvrage de référence : Core J2EE™ Patterns: Best Practices and Design Strategies. Second Edition.Bonnes pratiques pour le développement Java EE Introduction à Java et à 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 professionnel Se 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 pratiques Ils 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 savoirfaire et de l'expérience de la communauté.sun.sun.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.

nd 2 Edition M. Facilite l’échange des données entre les couches en réduisant la bavardage du réseau Masque la complexité de l’objet métier : centralise la gestion du workflow Best practice visant à concevoir des beans entité à gros grain. Abstrait les ressources de données. 27 Introduction à Java et à Java EE R el an ti entr e l es pa J tt erns 2 EE. la mise en cache des résultats et le traitement de ceux-ci. Assemble un objet valeur composite à partir de plusieurs sources de données Gère l’exécution des requêtes. 28 . fournit un accès transparent aux données Facilite le traitement asynchrone des composants EJB. Crée une vue composite à partir de sous composants Associe un composant Dispatcher aux patterns Controller et view helper Associe un composant Dispatcher aux patterns Controller et View helpe. Fournit un contrôleur centralisé permettant de gérer le traitement des requêtes Encapsule la logique qui n’est pas liée à la mise en forme de la représentation dans des composants dits helpers.Romdhani. Encapsule la complexité de la recherche et de la création du service métier.Introduction à Java et à Java EE Liste des patterns J2EE Présentation Nom du pattern Intercepting filter Front controller View helper Composite view Service to worker Dispatcher view Métier Business Delegate Value object Session facade Composite entity Value object assembler Value list handler Service locator Intégration Data access object Service activator Résumé J2EE design patterns Facilite le prétraitement et le post-traitement d’une requête. en regroupant des objets dépendants d’un parents dans seul bean. Découple les couches présentation et service et fournit aux services une interface servant de façade ou de proxy. en reportant plusieurs activités au moment du traitement de la vue.

Contrôleur actions utilisateurs . récupération état notification changements changement d’état Vue . un principe architectural éprouvé Introduction à Java et à Java EE Modèle .Rendu du modèle .Logique de présentation .Encapsule les informations métiers .Expose les fonctionnalités .Répond aux changement d ’état.Récupération actions utilisateurs.MAJ du rendu .Convertion des actions utilisateur en appel de méthodes sur le modèle Sélection des vues 30 .Introduction à Java et à Java EE Java PetStore Patterns PRESENTATION TIER Front Controller Centralizes View Management BUSINESS TIER Page-by-Page Iterator Value Object Encapsulates Data Efficient Sub list Traversal Accelerates Read-Only Access Session Facade Workflow Mediator Fast-Lane Reader Abstracts Data Access INTEGREATION TIER Data Access Object 29 Frontal Web : MVC 2.

…) 31 Introduction à Java et à Java EE Les objets "Data Access" et "Transfer" 32 . TopLink.Introduction à Java et à Java EE Bonnes pratiques d'accès aux données Objectifs généraux Assurer une indépendance de l'accès aux données vis-à-vis du client utilisé Avoir un code du programme client clair et simple Assurer une indépendance vis-à-vis de la technologie de base de données utilisée Accroître le degré de portabilité des applications Assurer 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ées Offrir un mécanisme qui supporte divers outils de plusieurs fournisseurs (Hibernate. JDO.

. … Problème : API de stockage persistant varient d’un fournisseur à un autre. l’obtention des données et leur mémorisation. LDAP…) Solution : Utiliser DAO pour abstraire et encapsuler tous ce qui concerne l’accès aux sources de données.Introduction à Java et à Java EE Le design pattern DAO Contexte : L’accès aux données dépend de la source et de type de stockage . servelet. bases de données relationnelles. base de données orientées objet. Des composants (bean session.. Le DAO gère la connexion. 33 Introduction à Java et à Java EE Le design pattern DAO 34 .) doivent extraire et mémoriser des informations issues de stockage persistant (système existant.

resourceID).close().dao. // select statement uses fields final private String fields = "project_id.mRomdhani. . Un seul appel de méthode sert à envoyer et à extraire l’objet valeur. stmt = con.Introduction à Java et à Java EE Exemple d'implémentation (DAO) package com. // imports public class StockDAO { final private String tableName = "Stock". celui-ci construit l’objet valeur..close(). ResultSet rs = stmt. lui affecte les valeurs des attributs." + …. stmt. Solution Utiliser un Value Object pour encapsuler les données métier. Plus les performances de l’application peuvent se dégrader de manière significative. list = createResultsList(rs).setString(1. stmt. name. } } 35 Introduction à Java et à Java EE Le design pattern DTO (Value Objet) Contexte Les clients de l’application doivent échanger des données avec les beans entreprise Problème Chaque appel de méthode à l’objet du service métier est potentiellement distant. } finally { con. public List findProjects(ProjectTO projCriteria) throws SQLException { .executeQuery(). et le passe par valeur au client 36 .prepareStatement(selectStatement). Lorsque le client demande des données au bean entreprise. } return list. try { ... Plus ces appels de méthodes sont nombreux.

String userId. } public String getOrderId() { return(orderId). //imports public class OrderDetails implements java. userId = uid. String uid.io. String date.mRomdhani.Introduction à Java et à Java EE Le design pattern DTO (Value Objet) 37 Introduction à Java et à Java EE Exemple d'implémentation (DTO) Package com. public OrderDetails(String oid. String orderStatus. String stat) { orderId = oid. orderDate = date.. float value. float orderValue. } 38 . orderValue = value.dto.Serializable { private private private private private String orderId. orderStatus = stat. String orderDate. } // ..

SAP Web Application Server. Iona / Orbix E2A Offre « open source » JBoss (n° 1) GlassFish Implémentation de référence Java EE 5 Partnership Sun et Oracle (TopLink Essentials) JOnAS JSAS (Java System Application Server de Sun.Introduction à Java et à Java EE Offre commerciale 39 Introduction à Java et à Java EE Offre en termes de serveurs d’applications Offre commerciale IBM / WebSphere (n° 1) BEA / WebLogic Sun One Oracle 9i Application Server Et aussi Borland Entreprise Server. Macromedia / Jrun. serveur de test d’applications J2EE) 40 .

Introduction à Java et à Java EE Offre en termes d’IDE de développement Offre commerciale IBM / WebSphere Studio Application Developer (WSAD) Borland JBuilder Sun One Developer Oracle JDeveloper IDEA software … Offre « Open Source » Eclipse (Projet eclipse. … 41 .org soutenu par IBM) NetBeans (de Sun Microsystems) Emacs + ant.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->