Java EE 6

Transcription

Java EE 6
Java 7, JEE 6 et OSGI
© 2012 IBM Corporation
Logiciel IBM
Ordre du jour
La terminologie
Java SE 7
Java EE 6
Modularisation de Java avec OSGI
2
© 2012 IBM Corporation
Logiciel IBM
Java, quelques termes
La plateforme Java fait référence à la fois à :
– Une machine virtuelle Java pour une plateforme matérielle ou logicielle précise qui
exécute les applications technologiques Java
– Les interfaces de programmation d’applications (API ) Java qui définissent la version
– J2SE, Java Standard Edition
– La fonctionnalité de base du langage de programmation Java exprimée dans une API
– La plateforme Java SE est formée d’une machine virtuelle, d’outils de développement,
de technologies de déploiement et d’autres bibliothèques de classes et boîtes à outils
fréquemment utilisés dans Java
Java EE, Java Enterprise Edition
– La plateforme Java EE est superposée à la plateforme Java SE. La plateforme Java EE
fournit un environnement d’API et d’exécution permettant de développer et d’exécuter
des applications de réseau à grande échelle, multiniveaux, fiables et sécurisés.
http://www.ibm.com/developerworks/java/
3
© 2012 IBM Corporation
4
Logiciel IBM
Qu’est-ce que Java 7? Les thèmes
Version principale de la plateforme Java qui touche à tous les
aspects du langage et de la machine virtuelle Java (JVM). Dans le
brouillon du document JSR document (*), les objectifs sont :
– Compatibilité - «Tout programme s’exécutant sur une version précédente
de la plateforme doit également s’exécuter telle quelle sur une mise en
œuvre de Java SE 7»
– Productivité - «...favoriser les pratiques exemplaires en matière de codage
et réduire le code réutilisable... courbe d’apprentissage minimale...»
– Performance - «...nouvelles API de concurrence... introduction d’API
véritablement asynchrones pour les applications à fort pourcentage d’E/S..»
– Universalité - «...accélérer la performance des langages dynamiques sur la
machine virtuelle Java.»
– Intégration - «Java SE 7 comprend un nouveau système de fichier souple
faisant partie de JSR 203...»
*Disponible auprès de jcp.org
4
© 2012 IBM Corporation
5
Logiciel IBM
Nouvelles structures de langage – Projet Coin
Une multitude de petits changements.
Chaînes dans switch
switch(myString) {
case “one”: <do something>; break;
case “red”: <do something else>; break;
default: <do something generic>;
}
Amélioration de l’inférence des types pour la création des
instances génériques (opérateur diamant)
Map<String,MyType> foo = new Map<String,MyType>();
Devient :
Map<String,MyType> foo = new Map<>();
5
© 2012 IBM Corporation
6
Logiciel IBM
Le projet Coin s’est poursuivi
Une proposition omnibus de meilleurs intégraux littéraux
– Permet les littéraux binaires (0b10011010)
– Permet le soulignement entre les chiffres pour former des blocs visuels
(34_409_066)
– Littéraux non signés(0xDEu)
Appel simplifié de la méthode Varargs
– Avertissements dans la déclaration de méthode plutôt que sur chaque utilisateur.
Réduit les avertissements inévitables.
@SafeVarargs
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
6
© 2012 IBM Corporation
7
Logiciel IBM
Coin – Gestion automatique des ressources
Il est difficile gérer tous les chemins d’échec possibles
Il est difficile de fermer les ressources
Idée : Faire appel au compilateur et définir une interface sur les ressources qui savent
comment mettre de l’ordre automatiquement.
try(InputStream inFile = new FileInputStream(aFileName);
OutputStream outFile = new FileOutputStream(aFileName)) {
byte[] buf = new byte[BUF_SIZE];
int readBytes;
while ((readBytes = inFile.read(buf)) >= 0)
inFile.write(buf, readBytes);
}
7
© 2012 IBM Corporation
8
Logiciel IBM
Projet Coin – Interceptions multiples
Les concepteurs veulent souvent intercepter 2 exceptions de la
même façon, mais en sont incapables dans Java 6 :
try {
O
} catch(Exception a) {
handle(a);
} catch(Error b) {
handle(b);
}
Ceci fonctionnement maintenant
try {
O
} catch(Exception|Error a) {
handle(a);
}
8
© 2012 IBM Corporation
9
Logiciel IBM
NIO.2 – Nouvelle API de système de fichiers
Résolution des problèmes de longue date en matière de facilité
d’utilisation et de code réutilisable
– Modélisation de niveau utilisateur d’un plus grand nombre de concepts de
systèmes de fichiers comme les liens symboliques
– Attributs de fichiers modélisés pour représenter des attributs propres à FS (par ex. :
propriétaire, permissions, etc.)
– DirectoryStream itère au sein des répertoires
• Changement d’échelle en utilisant moins de ressources.
• Permet le filtrage glob, regex ou personnalisé.
– Marches récursives modélisées sur le visiteur.
Modélisation de systèmes de fichiers entièrement artificiels ressemblant
beaucoup aux extensions Windows® Explorer
Notification de changement de fichier
– Améliore la performance des applications qui font actuellement une attente active
pour observer les changements.
9
© 2012 IBM Corporation
1
0
Logiciel IBM
Visite de répertoire - exemple
Files.walkFileTree(myPath, new SimpleFileVisitor<Path>() {
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) {
try {
file.doWhatIWanted();
} catch (IOException exc) {
// failed to do op, do error handling here
}
return FileVisitResult.CONTINUE;
}
}
);
10
© 2012 IBM Corporation
1
1
Logiciel IBM
Mises à jour de java.util.concurrent
Les appareils multicœur sont de plus en plus répandus – il est important que les
structures de données et les algorithmes en tiennent compte.
Nouvelle abstraction importante : Cadre de référence Fork/Join
Très bonne méthode «Diviser pour régner» pour résoudre les problèmes
– Modèle spécifique pour accélérer le traitement parallèle. Beaucoup plus efficace que
les modèles de synchronisation normaux basés sur l’unité d’exécution ou l’exécuteur.
– Vol de travail pour la répartition de travail déséquilibré
Autres améliorations
– TransferQueue – modélisation efficace des files producteur/consommateur
– Phaser – barrière de synchronisation très souples
11
© 2012 IBM Corporation
1
2
Logiciel IBM
JSR 292 - invokedynamic
L’environnement d’exécution JVM géré supporte plus de langages (par ex. : jruby,
jython, fan, clojure, etc.) mais est dépourvu de certains éléments fondamentaux qui
permettent à ces langages d’être rapides.
JSR 292 découple la recherche de méthode et la distribution de méthode
– Évitez d’utiliser uniquement Java (le langage).
Méthode : Introduire un nouveau code-octet qui exécute directement une méthode
donnée et permet de recâbler cette méthode en mode d’exécution.
– Inclure un modèle de construction de mutateurs (ajout d’un paramètre, suppression
d’un paramètre, etc.)
– S’assurer que JIT peut exploiter ces constructions efficacement pour assurer la
génération efficace de code.
12
© 2012 IBM Corporation
1
3
Logiciel IBM
Éléments secondaires
Changements apportés au chargeur de classe
– Fonction de chargement de classe parallèle via une nouvelle API «sécuritaire».
– URLClassLoader acquiert une méthode close().
I18N - Unicode 6.0, amélioration des paramètres régionaux, des paramètres
régionaux d’utilisateur séparés et des paramètres régionaux d’interface
utilisateur
TLS 1.2 – Mise à niveau de sécurité.
JDBC 4.1 – Visibilité ARM.
Mises à jour du client (interface utilisateur)
– Création de nouvelles API de plateforme pour les fonctions graphiques de 6u10
– Aspect et convivialité de Nimbus pour Swing
– Composant JLayer pour Swingcomponent
– Prise en charge de XRender
Mise à jour de la pile XML
13
© 2012 IBM Corporation
Logiciel IBM
Ordre du jour
La terminologie
Java SE 7
Java EE 6
– Servlet 3.0
– JAX-RS 1.1
– CDI 1.0
– EJB 3.0
– Autres
Modularisation de Java avec OSGI
14
© 2012 IBM Corporation
Logiciel IBM
Tout d’abord, un peu d’inspiration....
«Évaluer l’état d’avancement par les lignes de code est l’équivalent d’évaluer le progrès de la
construction d’un avion par le poids.»
Bill Gates
«Codez toujours comme si la personne qui doit assurer la maintenance de votre code est un
psychopathe violent qui sait où vous habitez.»
Martin Golding
«Du code bien écrit constitue la meilleure documentation. Lorsque vous êtes sur le point
d’ajouter un commentaire, posez-vous la questions «Comment puis-je améliorer le code pour
qu’il puisse se passer de commentaire?»
Steve McConnell
15
© 2012 IBM Corporation
Logiciel IBM
Thèmes d’amélioration de Java EE
Avec le lancement de Java EE 5, la productivité, la simplicité et la rationalisation sont
devenues des thèmes
Java EE5 lançait l’utilisation répandue des annotations
– EE6 a continué sur cette voie
Les annotations offrent dans plusieurs cas un modèle de programmation POJO plus simple
Java EE6 met également l’accent sur la rationalisation en mettant de côté des technologies
plus anciennes et peu utilisées
– JAX-RPC, EJB entity beans, JAXR
L’extensibilité continue d’être un thème important
* POJO – bon vieil objet Java
16
© 2012 IBM Corporation
Logiciel IBM
Annotations Servlet 3.0
Les annotations @WebServlet, @WebFilter, @WebListener peuvent remplacer la
configuration de web.xml
Favorise la productivité du concepteur
Avant Servlet 3.0, les déployeurs devaient joindre un web.xml à l’application :
<servlet>
<servlet-name>myAnnotatedServlet</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>myAnnotatedServlet</servlet-name>
<url-pattern>/MyAnnotatedServlet</url-pattern>
</servlet-mapping>
Les concepteurs n’ont maintenant qu’à annoter leur classe de servet :
17
© 2012 IBM Corporation
Logiciel IBM
Configuration programmatique
Les méthodes programmatiques telles que addServlet permettent une configuration
dynamique lors de l’initialisation de l’application Web
Permet de personnaliser dynamiquement l’application selon la configuration ou d’autres
situations observables
Exemple :
18
© 2012 IBM Corporation
Logiciel IBM
Servlets asynchrones
Supportent le paradigme suspend/resume qui vous permet de détacher une
demande/réponse du cycle de vie normal de l’unité d’exécution
Efficace pour les opérations push du serveur
Augmente l’évolutivité
Utilisations et applications :
• Appel de la méthode EJB asynchrone
• Accès aux services Web RESTful
• Clavardage
• Qualité du service
19
© 2012 IBM Corporation
Logiciel IBM
Exemple de servet asynchrone
@WebServlet("/foo" asyncSupported=true)
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) {
...
AsyncContext aCtx = request.startAsync(req, res);
ScheduledThreadPoolExecutor executor = new ThreadPoolExecutor(10);
executor.execute(new AsyncWebService(aCtx));
}
}
public class AsyncWebService implements Runnable {
AsyncContext ctx;
public AsyncWebService(AsyncContext ctx) {
this.ctx = ctx;
}
public void run() {
// Invoke web service and save result in request attribute
// Dispatch the request to render the result to a JSP.
ctx.dispatch("/render.jsp");
}
}
20
© 2012 IBM Corporation
Logiciel IBM
Qu’est ce que REST?
REST (Representational State Transfer) est un style d’architecture décrit dans la thèse de
doctorat de Roy Fielding
Manipulation des ressources à travers des représentations (noms) définies aux URI avec
des méthodes prédéfinies (verbes)
Utilisation optimale d’HTTP
Un service Web RESTful est formé comme une phrase – il simplifie l’accès aux services par
les concepteurs
• Verbe = Action HTTP (GET, POST, PUT, DELETE)
• Nom = URI du service (document)
• Adjectif = Type MIME du document qui en résulte
http://sports.espn.go.com/oly/summer08/swimming/news/story?id=3530615
21
© 2012 IBM Corporation
Logiciel IBM
Qu’est-ce que JAX-RS?
JSR-311, nouveau dans Java EE 6
Utilisation d’annotations pour déclarer les services (ressources) avec des
classes d’assistance pour créer les mises en œuvre
– Utilise également les annotations pour préciser le «contrat» RESTful
La logique de mappage de ressources ne relève plus du concepteur
– Les annotations contiennent les métadonnées nécessaires pour
mapper les chemins URI aux ressources
Offre un système enfichable pour la logique de rendu des ressources
22
© 2012 IBM Corporation
Logiciel IBM
Exemple de JAX-RS
23
© 2012 IBM Corporation
Logiciel IBM
Qu‘est-ce que l’injection de contexte et de dépendances (CDI)?
Nouvelle spécification (JSR 299) dans EE6
Norme EE qui a été inspirée de SEAM, Google Guice, Spring
Utilise les annotations de JSR 330 (injection de dépendances pour Java)
Permet le couplage lâche des composants
Offre des contextes de cycle de vie extensibles auxquels les composants sont liés
Intégration avec le Unified Expression Language
24
© 2012 IBM Corporation
Logiciel IBM
Définition d’un bean CDI
Suivant un ensemble de règles simple, n’importe quel bon vieil objet Java (POJO)
peut être traité comme un bean CDI
Déployez une classe dans une archive de déploiement bean. EAR/WAR/JAR avec un
beans.xml dans le répertoire WEB-INF/ ou META-INF/
Doit disposer d’un constructeur sans argument ou un constructeur annoté avec @Inject
Doit être une classe concrète (à l’exception de @Decorator)
Ne doit pas être une classe interne non statique
25
© 2012 IBM Corporation
Logiciel IBM
Injection de dépendances
CDI supporte l’injection dans les champs et les méthodes
Les points d’injection sont résolus avec une combinaison de type et de qualificateurs
public class Order {
@Inject @Selected Product product; //field injection
private Quantity quantity;
@Inject //Initializer method
void setQuantity(Quantity q) {
this.quantity = q;
}
…
26
© 2012 IBM Corporation
Logiciel IBM
Enterprise Java Bean 3.0
EJB étend le modèle MBeans afin de fournir un modèle de programmation de bon
vieil objet Java (POJO) annoté complet, y compris :
– Beans EJB sans interface
– Extensions d’appel de méthode asynchrone pour le travail long
– Paquetage dans le fichier WAR
– Intégration avec les technologies d’interface utilisateur
27
© 2012 IBM Corporation
Logiciel IBM
EJB 3.0 : Avant et après
Code 2.x
public interface ShoppingCart
extends EJBObject {
Code 3.0
public interface ShoppingCart {
public int someShoppingMethod();
}
public int someShoppingMethod()
throws RemoteException;
}
public class CartBean
implements SessionBean {
private float total;
private Vector productCodes;
@Stateful public class CartBean implements
ShoppingCart {
private float total;
private Vector productCodes;
public int someShoppingMethod() { ... }
public int someShoppingMethod() { O }
}
public void ejbActivate() { }
public void ejbPassivate() { }
}
28
© 2012 IBM Corporation
Logiciel IBM
Beans de session Singleton
Nouveau type de bean de session dans lequel une seule instance est créée dans
la JVM
Tout particulièrement utile pour mettre en cache les données souvent utilisées
avec l’application
Prend en charge l’initialisation pressée au démarrage de l’application
– Assure la disponibilité des données une fois que l’application commence à
répondre aux demandes
Permet la gestion de la concurrence par les annotations
–
–
–
@ConcurrencyManagement(BEAN)
e.g. public synchronized setProductInfoO.
@ConcurrencyManagement(CONTAINER)
•@Lock(LockType.READ)
•@Lock(LockType.WRITE)
29
© 2012 IBM Corporation
Logiciel IBM
Appels de beans de session asynchrone
Permettent aux méthodes EJB de s’exécuter en mode asynchrone
Améliorent la performance et augmente l’évolutivité
Deux modes :
• Tire et oublie
• Tire et retourne les résultats
30
© 2012 IBM Corporation
Logiciel IBM
Contenant EJP incorporable
Par le passé, pour tester le logiciel commercial EJB, il fallait accéder à un
environnement de serveurs d’application Java EE configuré
Cela nuit à la productivité du concepteur en augmentant le temps de cycle
entre le développement et les tests unitaires simples
Un contenant EJB incorporable était une exigence de EJB 3.0
Le contenant incorporable a uniquement besoin que Java SE s’exécute, et
ainsi, fournit un environnement facile à obtenir pour plusieurs scénarios de
tests unitaires EJB
Le contenant incorporable prend en charge EJB lite
31
© 2012 IBM Corporation
Logiciel IBM
Contenant EJP incorporable
32
© 2012 IBM Corporation
Logiciel IBM
Paquetage des EJB dans les fichiers WAR
Les EJB peuvent maintenant être paquetés directement dans
un module WAR
Les EJB peuvent être définis par des annotations ou un
descripteur de déploiement standard
Le module EJB peut également exister dans la bibliothèque lib
de WAR
Option de paquetage pratique lorsqu’on exploite les nouvelles
capacités CDI du langage UEL
Sauf pour les beans d’identité, le contenu EJB 2.x et 1.x est
supporté dans un module WAR.
33
© 2012 IBM Corporation
Logiciel IBM
Faits saillants de JPA 2.0
Mappages améliorés pour permettre des scénarios additionnels
– Collections intégrées
– Intégration multiniveau
– Listes ordonnées
Indicateurs de requête standardisés
Comportement de verrouillage en mode pessimiste standardisé
Plugiciel de cache de niveau 2 et configuration standardisés
API de requête fondée sur les critères
– Requêtes dynamiques «à la volée»
– Indépendant du langage de requête (voir Hibernation et JDO)
Intégration avec Java EE Bean Validation
34
© 2012 IBM Corporation
Logiciel IBM
Java EE Bean Validation
Modèle de métadonnées permettant de déclarer les contraintes de validation d’un type
JavaBean
Interface de programmation d’application (API) qui permet de déterminer si une instance
JavaBean enfreint les contraintes de validation déclarées pour le type JavaBean
Les exigences en matière de validation de beans sont précisées dans JSR 303
public class Stuart implements SmalleyBean {
@Resource ValidatorFactory validatorFactory;
@Resource Validator validator;
@NotNull public String state = “acceptance”;
public Boolean validateMe(Stuart me) {
Set<ConstraintViolation<Stuart>> cvSet = null;
try {
cvSet = validator.validate(me);
}
catch (Throwable t) {
t.printStackTrace(); // The validator
failed unexpectedly!
}
return cvSet != null && cvSet.size() == 0;
}
. . .
35
© 2012 IBM Corporation
Logiciel IBM
Simplification des services Web avec JAX-WS
@WebService
public class MyService {
@Resource
private WebServiceContext ctx;
@Resource
private SampleService svc;
@WebServiceRef
private SamplePort port;
public String echo (String input) {
…
}
}
36
© 2012 IBM Corporation
Logiciel IBM
Mises à jour de JAX-WS 2.2
Prise en charge de la méthode d’usine de services client pour les fonctions de
service Web pour MTOM, Respect Binding et l’adressage.
Ne retourne pas de réponse au demandeur lorsqu’une mise en œuvre
WebServiceProvider sans WSDL retourne un résultat nul.
Permet à un service d’être paqueté sans les classes bean d’encapsuleur JAX-B.
Expose uniquement les méthodes publiques, non statiques et non finales dans les
services avec un SEI implicite fondé sur les annotations WebMethod et/ou
WebService.
Supporte les annotations de fonction de service Web pour MTOM, la fonction
RespectBinding et l’adressage de références de port WebServiceRef injectés.
Configuration de l’adressage de service Web via l’assertion de politique de service
Web dans WSDL.
37
© 2012 IBM Corporation
Logiciel IBM
Ordre du jour
La terminologie
Java SE 7
Java EE 6
Modularisation de Java avec OSGI
38
© 2012 IBM Corporation
Logiciel IBM
Qu’est-ce que OSGi?
«Le système de modules dynamiques pour Java»
– Technologie parvenue à maturité – lancée y a 10 ans
– Régi par l’alliance OSGi : http://www.osgi.org
– Utilisé à l’intérieur de la quasi totalité des intergiciels Java
• IBM WebSphere, Oracle WebLogic, Red Hat JBoss, Sun GlassFish, Paremus
Service Fabric, Eclipse Platform, Apache Geronimo (liste non exhaustive)
• http://www.osgi.org/wiki/uploads/News/2008_09_16_worldwide_market.pdf
JAR
Paquetage
JAR
Exportations explicites
Class
Class
Classe
Class
Class
Classe
Paquetage
Class
Class
Classe
39
Paquetage
Paquetage
Dépendances explicites
Class
Class
Classe
© 2012 IBM Corporation
Logiciel IBM
Quel est l’apport d’OSGi?
Raffermit l’architecture et simplifie la maintenance
Permet un déploiement modulaire
Permet la coexistence de plusieurs versions de bibliothèques
– Simplifie l’évolution indépendante des applications
– Meilleure séparation des préoccupations entre l’application et l’intergiciel
Mise à jour véritablement dynamique des modules des applications
Bundle
Paquetage
Bundle
Exportations explicites
Class
Class
Classe
Class
Class
Classe
Paquetage
Class
Class
Classe
40
Paquetage
Paquetage
Dépendances explicites
Class
Class
Classe
© 2012 IBM Corporation
Logiciel IBM
Bundles OSGi et chargement des classes
Bundle OSGi – Un fichier d’archive contenant :
– Les classes et le ressources.
– Le manifeste de bundle.
Composition d’un manifeste :
– Bundle-Version : Il peut y avoir plusieurs
versions de bundle simultanées.
– Import-Package : De quels paquetages
d’autres bundles ce bundle dépend-il?
– Export_Package : Quels paquetages de ce
bundle sont visibles et réutilisables hors du
bundle?
Manifest-Version: 1.0
Chargement des classes
– Chaque bundle dispose de son propre
chargeur.
– Pas de chemin de classe plat ou
monolithique.
– Le partage de classes et la visibilité
sont déterminés par des dépendances
déclaratives, non pas par les
hiérarchies de chargeur de classes.
Bundle-ManifestVersion: 2
Bundle-Name: MyService bundle
Bundle-SymbolicName: com.sample.myservice
Bundle-Version: 1.0.0
Bundle-Activator: com.sample.myservice.Activator
Import-Package:
com.something.i.need;version=1.1.2
Export-Package: com.myservice.api;version=1.0.0
41
© 2012 IBM Corporation
Logiciel IBM
Services déclaratifs OSGi utilisant Blueprint
Injection de dépendances
Service publié
Assemblage et
configuration statiques
de composants
(POJO)
Consommation
du service
OSGI-INF/blueprint/
blueprint.xml
Bundle Blueprint
La définition XML Blueprint décrit la configuration des composants et leur champs
d’application
– Publication et consommation facultatives vers/de le registre de services OSGi.
– Standardisation des conventions Spring établies
Simplifie les tests unitaires à l’extérieur de Java EE ou OSGi r/t.
42
© 2012 IBM Corporation
Logiciel IBM
Blueprint simplifie le dynamisme des services
<blueprint>
<bean id=”shop” class=”org.example.ecomm.ShopImpl”>
<property name=”billingService” ref=”billingService” />
</bean>
<reference id=”billingService”
interface=”org.example.bill.BillingService” />
</blueprint>
<blueprint>
<service ref=”service” interface =
”org.example.bill.BillingService” />
<bean id=”biller” scope=”prototype”
class=”org.example.bill.impl.BillingServiceImpl” />
</blueprint>
Commerce
électronique
Facturation
Le cycle de vie de service dynamique est géré par le contenant
Blueprint
La référence du service est injectée par le contenant
– Le service peut changer au fil du temps
– Il est être temporairement absent sans que le bundle n’y porte attention
43
© 2012 IBM Corporation
Logiciel IBM
Comment les applications d’entreprise utilisent-elles OSGi?
Enterprise OSGi met l’accent sur les préoccupations liées
à l’application, y compris les technologies Web,
l’assemblage fin des composants et l’accès aux
référentiels de persistance
– Par l’exploitation des technologies Java EE
– D’une façon qui convient à un environnement OSGi
dynamique
– À l’aide de normes définies par JCP et l’alliance OSGi
– Utilise une archive d’application à plusieurs bundles
Permet aux conteneurs d’application d’entreprise et aux
systèmes de déploiement de mieux prendre en charge :
– Le partage de modules entre les applications
– Plusieurs versions concurrentes des modules
– La mise à jour dynamique et les extensions
d’applications
44
<web.xml />
Composant Web
<blueprint.xml/>
Blueprint
<persistence.xml/>
Entités
Application
© 2012 IBM Corporation
Logiciel IBM
ITALIAN
TRADITIONAL CHINESE
HINDI
SPANISH
JAPANESE
FRENCH
RUSSIAN
TAMIL
BRAZILIAN PORTUGUESE
THAI
GERMAN
SIMPLIFIED CHINESE
ARABIC
Nous apprécions vos commentaires.
Veuillez remplir le formulaire de sondage afin que nous puissions améliorer cette
session de formation.
45
© 2012 IBM Corporation
Logiciel IBM
WebSphere est totalement certifié pour Java SE et Java EE
http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html
46
© 2012 IBM Corporation
Versions de WebSphere et normes Java
WebSpher
e
V4.0
V5.x
V6.0
V6.1
Normes
J2EE 1.2
J2SE 1.3
IDE
WebSphere
Studio 5.0
V7.0
V8.0
V8.5
J2EE 1.3
J2SE 1.3
(V5.0)
J2SE 1.4
(V5.1)
J2EE 1.4
J2SE 1.4
J2EE 1.4
J2SE 5
JEE 5
JSE 6
JEE 6
JSE 6
JEE 6
JSE 6/7
WebSphere
Studio 5.1
RAD
V6.0
RAD V7.0
RAD
V7.5
RAD V8.0
RAD V8.5
• IDE, Integrated Development Environment
• J2EE, Java 2 Platform, Enterprise Edition
• J2SE, Java 2 Platform, Standard Edition
• JEE, Java Enterprise Edition
• JSE, Java Standard Edition
• RAD, Rational Application Developer
47
© 2012 IBM Corporation