+ All Categories
Home > Software > Java EE Class

Java EE Class

Date post: 18-Aug-2015
Category:
Upload: oltruong
View: 55 times
Download: 0 times
Share this document with a friend
112
Jeudi 2 octobre 2014 Introduction à Java Entreprise Edition
Transcript

Jeudi 2 octobre 2014

Introduction à Java Entreprise Edition

Introduction à JavaEE

Présentons-nous

Olivier Truong

2006 : Télécom Bretagne

2006-2014 : Air France

Concepteur/Développeur applications JavaEE

Responsable d’équipe, développeur, coach technique

github.com/oltruong

@oltruong

Introduction à JavaEE

Objectifs

Découvrir l’origine et l’objectif de JavaEE

Parcourir les possibilités offertes par JavaEE et

leurs principes sous-jacents

Partager l’expérience JavaEE

Introduction à JavaEE

Pourquoi JavaEE ?

Pour JavaEE 6

+50 millions téléchargements composants JavaEE

#1 choix pour les développeurs d’entreprise

#1 plateforme de développement

Profils JavaEE recherchés

Introduction à JavaEE

Plan

Survol de JavaEE Les besoins

Un peu d’histoire

Concepts de base

Les fonctionnalités de JavaEE Transverses

Persistance

Logique métier

Communication

Présentation

L’expérience JavaEE Démonstration

La boîte à outils

Avec le recul…

Les besoins

Introduction à JavaEE

Application complexe

Introduction à JavaEE

Application qui s’interface avec l’existant

Introduction à JavaEE

Système robuste, fiable

Introduction à JavaEE

Maîtrise des coûts

Introduction à JavaEE

Question de programmation

Vous voulez une fonction

qui vous indique si une liste contient un élément précis…

Introduction à JavaEE

Réponse…

Une solution : Mais plus simple encore :

Introduction à JavaEE

Ne pas réinventer la roue !

Introduction à JavaEE

JavaEE

Ensemble de spécifications pour construire

une application d’entreprise basée sur le

langage Java

Ensemble d’API mises à disposition

Se concentrer sur la logique métier

Introduction à JavaEE

Plusieurs implémentations disponibles

Introduction à JavaEE

Quelques mots sur Java

Introduction à JavaEE

Un monde sans Java ?

Introduction à JavaEE

Un peu d’histoire Un peu d’histoire

Introduction à JavaEE

Java en 1999

Pas de standard Java EE

Pas d’open source (en Java :)

Serveurs proposés par quelques fournisseurs

Introduction à JavaEE

Evolution de JavaEE

Expérience

Introduction à JavaEE

Java EE 7

Plus riche 31 spécifications

Plus léger Profil Web

Elagage (pruning)

Plus simple Toujours plus d’annotations

Introduction à JavaEE

Qui définit JavaEE ?

Java Specification Request

Exemple : JSR342, JSR346

Introduction à JavaEE

Création d’une Java Specification Request (JSR)

Spécification complète

Implémentation de référence

Test de compatibilité

Technology Compatibility Kit (TCK)

Adopt a JSR Program !

Introduction à JavaEE

L’influence de l’Open Source

Introduction à JavaEE

L’arrivée de l’Open Source

Introduction à JavaEE

L’arrivée de l’Open Source

Spécification

puis implémentation

Implémentation

puis spécification

Concepts de base

Introduction à JavaEE

Une architecture n-Tier

Introduction à JavaEE

Une architecture en conteneurs

Introduction à JavaEE

Conteneurs, composants et services

Les conteneurs fournissent des services à leurs composants

Introduction à JavaEE

Concrètement…

Conteneur Web : fichier WAR Conteneur EJB : fichier JAR

Application gobale :

fichier EAR

Introduction à JavaEE

Plan

Survol de JavaEE Les besoins

Un peu d’histoire

Concepts de base

Les fonctionnalités de JavaEE Transverse

Persistance

Logique métier

Communication

Présentation

L’expérience JavaEE Démonstration

La boîte à outils

Avec le recul…

Transverse :

CDI, Bean Validation, Java Batch

Introduction à JavaEE

Context and Dependency Injection 1.1

Le besoin : des objets qui dépendent d’autres

Introduction à JavaEE

Comment instancier mes objets

Tout simplement…

Ou bien avec l’injection de dépendances

Introduction à JavaEE

Principe

Inversion de contrôle (IoC)

Injection de dépendances

Les ressources sont injectées par le conteneur dans

l’application au lieu d’être gérées par l’application

Introduction à JavaEE

Hollywood principle

Don’t call us, we’ll call you !

Introduction à JavaEE

Context and Dependency Injection en action

Utilisation de @Inject

Introduction à JavaEE

Context and Dependency Injection

En cas de conflit…

Utilisation de votre annotation via @Qualifier

Introduction à JavaEE

BeanValidation 1.1

Contrôle des données

Sur les attributs

Sur les paramètres

Introduction à JavaEE

Java Batch 1.0

Nouveauté JavaEE 7

Fortement inspiré de SpringBatch

Persistance

Introduction à JavaEE

Le problème

Objet java Base de données

?

Code Java pour traduire en SQL

ID ISBN NAME PRICE

Introduction à JavaEE

La solution

Object-Relational Mapping

Délègue à un framework la correspondance entre objets

et tables

Java Persistence API (2.1)

Introduction à JavaEE

Java Persistence API

Facilite l’Object-Relational Mapping :

Annotations

Fichier de description XML

Objets Entités

Introduction à JavaEE

Java Persistence API

Objet java Base de données

ID ISBN NAME PRICE

Introduction à JavaEE

Java Persistence API

(Configuration par exception)

Convention plutôt que configuration

Introduction à JavaEE

Java Persistence API

Objet java Base de données

ID ISBN NOM PRICE

Introduction à JavaEE

Trop simple ?

Introduction à JavaEE

Java Persistence API

Ecriture de requêtes complexes :

Java Persistence Query Language

Similaire au SQL

Retourne des entités et non un tableau

SELECT b from Book b where b.name LIKE ‘Java%'

Introduction à JavaEE

Java Persistence API

Et bien plus encore…

Stratégie d’héritage @Inheritance (Strategy…)

Chargement des relations (EAGER/LAZY)

Gestion des relations 1…n @OnetoMany

Logique métier

Introduction à JavaEE

Tâches complexes

Interaction entre composants

Communication externe

Entreprise Java Beans (3.2)

Composant côté serveur qui encapsule

la logique métier

Introduction à JavaEE

Différence avec la persistance

JPA modélise les noms (Pilote, Avion)

EJB modélise les verbes (affecter un pilote)

Introduction à JavaEE

Les EJB dans l’architecture

Introduction à JavaEE

3 types d’EJB de session

Sans état

Avec état

Singleton

Introduction à JavaEE

Bean sans état

Une tâche doit s’accomplir par un appel de méthode

Conteneur EJB

Pool

Instance 1

Instance 2

Client 1

Client 2

Client 3

Introduction à JavaEE

Bean avec état

Tâches nécessitant plusieurs étapes :

une instance par session

Conteneur EJB

Instance 1

Instance 2

Client 1

Client 2

Client 3 Instance 3

Introduction à JavaEE

Pour bien comprendre la différence

Imaginez que vous voulez changer de forfait…

Centre d’appel

Introduction à JavaEE

Bean singleton

Tâches où l’on ne requiert qu’un seul exemplaire

Conteneur EJB

Instance unique

Client 1

Client 2

Client 3

Introduction à JavaEE

Exemple

Introduction à JavaEE

Autres fonctionnalités

Timer

Sécurité

Appels asynchrones

Introduction à JavaEE

Transaction

Ensemble d’opérations qui gardent les données

dans un état cohérent

Exemple : Paiement d’un loyer

Locataire Propriétaire

Introduction à JavaEE

Exemple de transaction

Prélèvement du compte locataire

Versement sur compte propriétaire

Enregistrement des opérations dans l’historique

Introduction à JavaEE

Transaction

A

C

I

D

tomicité

ohérence

solement

urée

Java Transaction API (1.2)

Introduction à JavaEE

Et bien plus encore

Conteneur intégré

API permettant d’exécuter les EJB dans un

environnement Java SE

EJB Lite

Sous ensemble de l’API EJB (profil Web)

Communication

Introduction à JavaEE

Communication externe

Echanger avec des systèmes différents

Définir un format d’échange commun

WEB Services (Simple Object Access Protocol,

REpresentational State Transfer)

Introduction à JavaEE

JavaEE et les WebServices

Java Architecture for XML Binding (JAXB)

Java API for XML-Based Web Services (JAX-WS)

Java API for RESTful Web Services (JAX-RS)

Introduction à JavaEE

Nouveauté JavaEE7 : API pour JSON

JavaScript Object Notation : JSON

Plus concis que le format XML

Introduction à JavaEE

Architecture en API

Open Data : exemple : Vélib

Présentation

Introduction à JavaEE

Sites Web dynamiques

Servlet

Introduction à JavaEE

Les servlets dans l’architecture

Introduction à JavaEE

Exemple de servlet

Introduction à JavaEE

Servlet

Très utilisées (indirectement)

Version 3.1 : plus simple et plus riche

Reste bas niveau

Introduction à JavaEE

Java Server Page

Langage de script pour écrire une servlet

Cycle de vie géré par le conteneur Web

Introduction à JavaEE

Exemple de JSP

Introduction à JavaEE

Des marqueurs, encore des marqueurs

JSP Standard Tag Library

Offre des bibliothèques de marqueurs

Introduction à JavaEE

Java Server Faces va encore plus loin

Source : oracle.com

Enrichir toujours plus son interface

Pouvoir définir ses propres composants graphiques

Retourner du contenu multimédia / Utilisation d’Ajax

Introduction à JavaEE

JSF et le Modèle Vue Contrôleur

Introduction à JavaEE

Différents frameworks disponibles

Introduction à JavaEE

L’évolution de la couche présentation

Source : OCTO Technology

Introduction à JavaEE

Quelques frameworks Javascript

Introduction à JavaEE

Plan

Survol de JavaEE Les besoins

Un peu d’histoire

Concepts de base

Les fonctionnalités de JavaEE Persistance

Logique métier

Présentation

Communication

L’expérience JavaEE Démonstration

La boîte à outils

Avec le recul…

Introduction à JavaEE

Ça n’a pas l’air simple tout ça…

Introduction à JavaEE

Ça n’a pas l’air simple tout ça…

La parole est au maître…

Introduction à JavaEE

Exemple

Introduction à JavaEE

Integrated Development Environment

Introduction à JavaEE

Outils

Introduction à JavaEE

Mais alors…

JavaEE produit miracle ?

Introduction à JavaEE

La problématique du Cloud n’est pas encore traitée

JavaEE 8 ?

Introduction à JavaEE

Sur un plan plus « politique »

Avenir de Java avec ORACLE ?

Introduction à JavaEE

Le monde Java continue d’évoluer…

De nombreux languages pour la JVM

Introduction à JavaEE

Le monde Java continue d’évoluer…

De nombreux frameworks…

Introduction à JavaEE

Quel est le meilleur framework ?

http://static.raibledesigns.com/repository/presentations/Comparing_JVM_Web_Frameworks_February2014.pdf

Quel besoin ?

Quelles priorités ?

Quelles contraintes ?

Introduction à JavaEE

Conclusion

Introduction à JavaEE

Conclusion

JavaEE capitalise sur l’expérience pour

construire des applications d’entreprise

Introduction à JavaEE

Conclusion

JavaEE, un standard en perpétuelle évolution,

soutenu par une communauté et influencé par

le monde OpenSource

Plusieurs implémentations disponibles !

Introduction à JavaEE

Conclusion

JavaEE,

une plateforme riche et plus simple

Une palette d’API à votre disposition

Introduction à JavaEE

Conclusion

A VOUS de comprendre le besoin et de

concevoir l’application adéquate !

Introduction à JavaEE

Quelques pensées

Remember the KISS principle

Keep It Simple Stupid !

Introduction à JavaEE

Quelques pensées

Any fool can write code that a computer can

understand. Good programmers write code that

humans can understand. Martin Fowler

Introduction à JavaEE

Quelques pensées

Always code as if the guy who ends up

maintaining your code will be a violent

psychopath who knows where you live. Martin Golding

Ça n’est pas Martin Golding

Introduction à JavaEE

N’oubliez pas

Profils JavaEE recherchés

Introduction à JavaEE

Le mot de la fin

La plus grande difficulté n’est souvent pas technologique…

Introduction à JavaEE

Pour aller plus loin

Lire

Voir, écouter

Rencontrer

http://download.oracle.com/javaee/7/tutorial/doc/

http://jcp.org

Introduction à JavaEE

Essayez !

Introduction à JavaEE

Enjoy !

Introduction à JavaEE

Merci pour votre attention ! (J’espère )

Questions ?


Recommended