Déployer une application Java EE
dans Azure
José Paumard @JosePaumard
Sébastien Pertus @SebastienPertus
tech.days 2015#mstechdays #JEEAzure
#JEEAzure
Déployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzure
 Podcast « les casts codeurs »
http://lescastcodeurs.com/2014/10/26/lcc-111-interview...
tech.days 2015#mstechdays #JEEAzure
 Pourquoi vouloir déployer une application Java EE
dans Azure ?
Déployer une applicat...
tech.days 2015#mstechdays #JEEAzure
 Pourquoi vouloir déployer une application Java EE
dans Azure ?
Déployer une applicat...
tech.days 2015#mstechdays #JEEAzure
 Pour une application Java EE :
Déployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzure
 Outils de développement pour le « Javaiste »
 IHM de gestion d’Azure, configuration...
tech.days 2015#mstechdays #JEEAzure
 Eclipse Java EE « classique »
 + plugin spécifique Azure
 Ressource Github
https:/...
tech.days 2015#mstechdays #JEEAzure
 Java EE = jeu de spécifications
 Java EE = du papier !
 Du papier + une implémenta...
tech.days 2015#mstechdays #JEEAzure
 Organisation
Déployer une application Java EE dans Azure
Portable
extensions
JSP 2.3...
tech.days 2015#mstechdays #JEEAzure
 Organisation
Déployer une application Java EE dans Azure
Portable
extensions
JSP 2.3...
tech.days 2015#mstechdays #JEEAzure
 Organisation
Déployer une application Java EE dans Azure
Portable
extensions
JSP 2.3...
tech.days 2015#mstechdays #JEEAzure
 Organisation
Déployer une application Java EE dans Azure
Portable
extensions
JSP 2.3...
tech.days 2015#mstechdays #JEEAzure
 JPA, EJB, JAX-RS, JAX-WS
 JSF (si on l’utilise)
 JMS ?
 Java Mail ?
 Journalisat...
tech.days 2015#mstechdays #JEEAzure
SQL Database
Déployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzure
 Deux versions de Java EE
 Tomcat implémente le « web profile »
 Wildfly (JBoss), G...
tech.days 2015#mstechdays #JEEAzure
 Accès aux données (JPA)
 Couche de service (EJB)
 Services REST (JAX-RS)
 IHM (JS...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
public class Musician {
p...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
public class Musician {
p...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 « Entité » JPA
Déployer une application Java EE dans Azure
@Entity
public class Musi...
tech.days 2015#mstechdays #JEEAzure
 Gestion des relations *:*
 Gestion de l’héritage
 Génération du schéma
 Adaptatio...
tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
 Injection / production
@Stateless
public ...
tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
 Injection / production
@Stateless
public ...
tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
 Injection / production
@Stateless
public ...
tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
 Injection / production
@Stateless
public ...
tech.days 2015#mstechdays #JEEAzure
 Implémentées par des EJB
Déployer une application Java EE dans Azure
public class Mu...
tech.days 2015#mstechdays #JEEAzure
 Implémentées par des EJB
Déployer une application Java EE dans Azure
@Stateless
publ...
tech.days 2015#mstechdays #JEEAzure
 Implémentées par des EJB
Déployer une application Java EE dans Azure
@Stateless
publ...
tech.days 2015#mstechdays #JEEAzure
 JAX-RS
Déployer une application Java EE dans Azure
public class MusicianRestService ...
tech.days 2015#mstechdays #JEEAzure
 JAX-RS
Déployer une application Java EE dans Azure
@Path("musician")
public class Mu...
tech.days 2015#mstechdays #JEEAzure
 JAX-RS
Déployer une application Java EE dans Azure
@Path("musician")
public class Mu...
tech.days 2015#mstechdays #JEEAzure
 JAX-RS
Déployer une application Java EE dans Azure
@Path("musician")
public class Mu...
tech.days 2015#mstechdays #JEEAzure
 JAX-RS
Déployer une application Java EE dans Azure
@Path("musician")
public class Mu...
tech.days 2015#mstechdays #JEEAzure
 JAX-RS / JAXB
Déployer une application Java EE dans Azure
@XmlRootElement @XmlAccess...
tech.days 2015#mstechdays #JEEAzure
 Présentation de l’IHM (MVC)
Déployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzure
IaaS / PaaS
Déployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzure
Application CRUD
Service REST
Déployer une application Java EE dans Azure
tech.days 2015#mstechdays #JEEAzure
 Azure offre une solution de déploiement
d’application Java
 Techniquement très comp...
tech.days 2015#mstechdays #JEEAzure
 Questions ? Commentaires ? Interrogations ?
@JosePaumard
@SebastienPertus
Déployer u...
© 2015 Microsoft Corporation. All rights reserved.
tech days•
2015
#mstechdays techdays.microsoft.fr
Prochain SlideShare
Chargement dans…5
×

Développez et déployez votre application Java dans Azure

1 083 vues

Publié le

Durant cette session, venez découvrir comment construire une appli Java EE 7 pour Azure : JPA, EJB, le tout construit sur CDI. Nous y ajouterons une interface web JSF et un accès REST. Dans un deuxième temps, nous déploierons cette application dans Azure via un serveur Glassfish ! Nous détaillerons toute l'installation, la configuration et l'interfaçage de tous ces éléments.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 083
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
26
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Développez et déployez votre application Java dans Azure

  1. 1. Déployer une application Java EE dans Azure José Paumard @JosePaumard Sébastien Pertus @SebastienPertus
  2. 2. tech.days 2015#mstechdays #JEEAzure #JEEAzure Déployer une application Java EE dans Azure
  3. 3. tech.days 2015#mstechdays #JEEAzure  Podcast « les casts codeurs » http://lescastcodeurs.com/2014/10/26/lcc-111-interview-sur-microsoft- azure-avec-patrick-chanezon-et-benjamin-guinebertiere/  MOOC sur MVA http://www.microsoftvirtualacademy.com/training-courses/deploiement- application-java-dans-microsoft-azure  Patterns ! https://github.com/Azure/azure-sdk-for-java Déployer une application Java EE dans Azure
  4. 4. tech.days 2015#mstechdays #JEEAzure  Pourquoi vouloir déployer une application Java EE dans Azure ? Déployer une application Java EE dans Azure
  5. 5. tech.days 2015#mstechdays #JEEAzure  Pourquoi vouloir déployer une application Java EE dans Azure ? Déployer une application Java EE dans Azure
  6. 6. tech.days 2015#mstechdays #JEEAzure  Pour une application Java EE : Déployer une application Java EE dans Azure
  7. 7. tech.days 2015#mstechdays #JEEAzure  Outils de développement pour le « Javaiste »  IHM de gestion d’Azure, configuration, monitoring  Gestion de données structurées / non structurées  Application jouet  Modes de déploiement de l’application  Démo de l’application  Q / R Déployer une application Java EE dans Azure
  8. 8. tech.days 2015#mstechdays #JEEAzure  Eclipse Java EE « classique »  + plugin spécifique Azure  Ressource Github https://github.com/azure Déployer une application Java EE dans Azure
  9. 9. tech.days 2015#mstechdays #JEEAzure  Java EE = jeu de spécifications  Java EE = du papier !  Du papier + une implémentation de référence  JPA → EclipseLink  JAX-RS → Jersey  JSF → Mojara Déployer une application Java EE dans Azure
  10. 10. tech.days 2015#mstechdays #JEEAzure  Organisation Déployer une application Java EE dans Azure Portable extensions JSP 2.3 JSF 2.2 JAX RS 2 EL 3 Servlet 3.1 Managed Beans 1.0 EJB 3.2 JCA 1.7 JPA 2.1 JTA 2.1 JMS 2.0 Interceptors 1.1 CDI 1.1 Common annotations 1.1 BeanValidation1.1 Concurrency utilities Batch applications Java API for JSON Java API for Websocket
  11. 11. tech.days 2015#mstechdays #JEEAzure  Organisation Déployer une application Java EE dans Azure Portable extensions JSP 2.3 JSF 2.2 JAX RS 2 EL 3 Servlet 3.1 Managed Beans 1.0 EJB 3.2 JCA 1.7 JPA 2.1 JTA 2.1 JMS 2.0 Interceptors 1.1 CDI 1.1 Common annotations 1.1 BeanValidation1.1 Concurrency utilities Batch applications Java API for JSON Java API for Websocket
  12. 12. tech.days 2015#mstechdays #JEEAzure  Organisation Déployer une application Java EE dans Azure Portable extensions JSP 2.3 JSF 2.2 JAX RS 2 EL 3 Servlet 3.1 Managed Beans 1.0 EJB 3.2 JCA 1.7 JPA 2.1 JTA 2.1 JMS 2.0 Interceptors 1.1 CDI 1.1 Common annotations 1.1 BeanValidation1.1 Concurrency utilities Batch applications Java API for JSON Java API for Websocket
  13. 13. tech.days 2015#mstechdays #JEEAzure  Organisation Déployer une application Java EE dans Azure Portable extensions JSP 2.3 JSF 2.2 JAX RS 2 EL 3 Servlet 3.1 Managed Beans 1.0 EJB 3.2 JCA 1.7 JPA 2.1 JTA 2.1 JMS 2.0 Interceptors 1.1 CDI 1.1 Common annotations 1.1 Concurrency utilities Batch applications Java API for JSON Java API for Websocket BeanValidation1.1
  14. 14. tech.days 2015#mstechdays #JEEAzure  JPA, EJB, JAX-RS, JAX-WS  JSF (si on l’utilise)  JMS ?  Java Mail ?  Journalisation ? → On peut utiliser directement des services cloud Déployer une application Java EE dans Azure
  15. 15. tech.days 2015#mstechdays #JEEAzure SQL Database Déployer une application Java EE dans Azure
  16. 16. tech.days 2015#mstechdays #JEEAzure  Deux versions de Java EE  Tomcat implémente le « web profile »  Wildfly (JBoss), Glassfish, Weblogic, Websphere, implémentent le « full profile » Déployer une application Java EE dans Azure
  17. 17. tech.days 2015#mstechdays #JEEAzure  Accès aux données (JPA)  Couche de service (EJB)  Services REST (JAX-RS)  IHM (JSF)  Stockage d’images en BLOB Déployer une application Java EE dans Azure
  18. 18. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure public class Musician { private String name ; private Date dateOfBirth ; private MusicType musicType ; // getters / setters }
  19. 19. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure public class Musician { private Long id ; private String name ; private Date dateOfBirth ; private MusicType musicType ; // getters / setters }
  20. 20. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @Id private Long id ; private String name ; private Date dateOfBirth ; private MusicType musicType ; // getters / setters }
  21. 21. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id ; private String name ; private Date dateOfBirth ; private MusicType musicType ; // getters / setters }
  22. 22. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id ; private String name ; @Temporal(TemporalType.DATE) private Date dateOfBirth ; private MusicType musicType ; // getters / setters }
  23. 23. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id ; @Column(name="name") private String name ; @Temporal(TemporalType.DATE) private Date dateOfBirth ; private MusicType musicType ; // getters / setters }
  24. 24. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id ; @Column(name="name") private String name ; @Temporal(TemporalType.DATE) private Date dateOfBirth ; @Enumerated(EnumType.STRING) private MusicType musicType ; // getters / setters } public enum MusicType { JAZZ, CLASSICAL, ROCK, FOLK }
  25. 25. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @OneToMany private List<Instrument> instruments ; // getters / setters }
  26. 26. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @OneToMany private List<Instrument> instruments ; @ManyToMany private List<Orchestra> orchestras ; // getters / setters }
  27. 27. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @OneToMany private List<Instrument> instruments ; @ManyToMany private List<Orchestra> orchestras ; @Embedded private Address address ; // getters / setters }
  28. 28. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @OneToMany private List<Instrument> instruments ; @ManyToMany private List<Orchestra> orchestras ; @Embedded private Address address ; @Column(name="email", length=80) private String email ; // getters / setters }
  29. 29. tech.days 2015#mstechdays #JEEAzure  « Entité » JPA Déployer une application Java EE dans Azure @Entity public class Musician { @OneToMany private List<Instrument> instruments ; @ManyToMany private List<Orchestra> orchestras ; @Embedded private Address address ; @Column(name="email", length=80) @Email private String email ; // getters / setters }
  30. 30. tech.days 2015#mstechdays #JEEAzure  Gestion des relations *:*  Gestion de l’héritage  Génération du schéma  Adaptation à un schéma existant  Gestion des requêtes SQL / JPQL  Configuration par annotations ou XML Déployer une application Java EE dans Azure
  31. 31. tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure  Injection / production @Stateless public class EntityManagerProvider { @PersistenceContext(unitName="DataService") private static EntityManager entityManager ; }
  32. 32. tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure  Injection / production @Stateless public class EntityManagerProvider { @Produces @PersistenceContext(unitName="DataService") private static EntityManager entityManager ; }
  33. 33. tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure  Injection / production @Stateless public class EntityManagerProvider { @Produces @PersistenceContext(unitName="DataService") private static EntityManager entityManager ; } @Stateless public class MusicianService { @Inject private EntityManager em ; }
  34. 34. tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure  Injection / production @Stateless public class EntityManagerProvider { @Produces @DBProd @PersistenceContext(unitName="DataService") private static EntityManager entityManager ; } @Stateless public class MusicianService { @Inject @DBProd private EntityManager em ; }
  35. 35. tech.days 2015#mstechdays #JEEAzure  Implémentées par des EJB Déployer une application Java EE dans Azure public class MusicianService { private EntityManager em ; public Musician findById(long id) { return em.find(Musician.class, id) ; } public List<Musician> findByName(String name) { Query q = em.createNamedQuery("Musician.byName") ; q.setParam("name", name) ; return q.getResultList() ; } }
  36. 36. tech.days 2015#mstechdays #JEEAzure  Implémentées par des EJB Déployer une application Java EE dans Azure @Stateless public class MusicianService { @Inject private EntityManager em ; public Musician findById(long id) { return em.find(Musician.class, id) ; } public List<Musician> findByName(String name) { Query q = em.createNamedQuery("Musician.byName") ; q.setParam("name", name) ; return q.getResultList() ; } }
  37. 37. tech.days 2015#mstechdays #JEEAzure  Implémentées par des EJB Déployer une application Java EE dans Azure @Stateless public class MusicianService { @Inject private EntityManager em ; @Transactionnal(TxType.SUPPORTS) public Musician findById(long id) { return em.find(Musician.class, id) ; } @Transactionnal(TxType.SUPPORTS) public List<Musician> findByName(String name) { Query q = em.createNamedQuery("Musician.byName") ; q.setParam("name", name) ; return q.getResultList() ; } }
  38. 38. tech.days 2015#mstechdays #JEEAzure  JAX-RS Déployer une application Java EE dans Azure public class MusicianRestService { private MusicianService musicianService ; public Response getById( long id) { Musician musician = musicianService.findById(id) ; if (musician == null) { return Response.status(Status.NOT_FOUND).build() ; } else { return Response.ok(musician).build() ; } } }
  39. 39. tech.days 2015#mstechdays #JEEAzure  JAX-RS Déployer une application Java EE dans Azure @Path("musician") public class MusicianRestService { @Inject private MusicianService musicianService ; @Path("{id}") // /musician/23 public Response getById( long id) { Musician musician = musicianService.findById(id) ; if (musician == null) { return Response.status(Status.NOT_FOUND).build() ; } else { return Response.ok(musician).build() ; } } }
  40. 40. tech.days 2015#mstechdays #JEEAzure  JAX-RS Déployer une application Java EE dans Azure @Path("musician") public class MusicianRestService { @Inject private MusicianService musicianService ; @Path("{id}") // /musician/23 public Response getById(@PathParam("id") long id) { Musician musician = musicianService.findById(id) ; if (musician == null) { return Response.status(Status.NOT_FOUND).build() ; } else { return Response.ok(musician).build() ; } } }
  41. 41. tech.days 2015#mstechdays #JEEAzure  JAX-RS Déployer une application Java EE dans Azure @Path("musician") public class MusicianRestService { @Inject private MusicianService musicianService ; @Path("{id}") // /musician/23 @GET public Response getById(@PathParam("id") long id) { Musician musician = musicianService.findById(id) ; if (musician == null) { return Response.status(Status.NOT_FOUND).build() ; } else { return Response.ok(musician).build() ; } } }
  42. 42. tech.days 2015#mstechdays #JEEAzure  JAX-RS Déployer une application Java EE dans Azure @Path("musician") public class MusicianRestService { @Inject private MusicianService musicianService ; @Path("{id}") // /musician/23 @GET @Produces({MediaType.TEXT_XML, MediaType.APPLICATION_JSON}) public Response getById(@PathParam("id") long id) { Musician musician = musicianService.findById(id) ; if (musician == null) { return Response.status(Status.NOT_FOUND).build() ; } else { return Response.ok(musician).build() ; } } }
  43. 43. tech.days 2015#mstechdays #JEEAzure  JAX-RS / JAXB Déployer une application Java EE dans Azure @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class Musician { @XmlAttribute private Long id ; @XmlElement private String name ; @XmlElement(name="date-of-birth") private Date dateOfBirth ; private MusicType musicType ; // getters / setters }
  44. 44. tech.days 2015#mstechdays #JEEAzure  Présentation de l’IHM (MVC) Déployer une application Java EE dans Azure
  45. 45. tech.days 2015#mstechdays #JEEAzure IaaS / PaaS Déployer une application Java EE dans Azure
  46. 46. tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
  47. 47. tech.days 2015#mstechdays #JEEAzureDéployer une application Java EE dans Azure
  48. 48. tech.days 2015#mstechdays #JEEAzure Application CRUD Service REST Déployer une application Java EE dans Azure
  49. 49. tech.days 2015#mstechdays #JEEAzure  Azure offre une solution de déploiement d’application Java  Techniquement très complète et « à jour »  Commercialement supportée  Donc oui, évaluer Azure lorsque l’on veut déployer du Java dans le cloud, c’est intéressant ! Déployer une application Java EE dans Azure
  50. 50. tech.days 2015#mstechdays #JEEAzure  Questions ? Commentaires ? Interrogations ? @JosePaumard @SebastienPertus Déployer une application Java EE dans Azure
  51. 51. © 2015 Microsoft Corporation. All rights reserved. tech days• 2015 #mstechdays techdays.microsoft.fr

×