Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Java Day Santiago RD 2015
Java Day Santiago RD 2015
Loading in …3
×
1 of 40

Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Escalables

3

Share

Download to read offline

Mi presentación en el BarCamp RD 2014, celebrado el 29 de noviembre del 2014, Campus Pontificia Universidad Católica Madre y Maestra, Santiago de los Caballeros, República Dominicana.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Escalables

  1. 1. Aplicaciones Web Modernas y Escalables 29 NOVIEMBRE 2014, PUCMM , SANTIAGO DE LOS CABALLEROS, R. D. @eudriscabrera @eudriscabrera EUDRIS CABRERA RODRÍGUEZBARCAMP RD 2014 HTML5, REST, JSON, ANGULARJS Y JAVA EE 7
  2. 2. ● Ingeniero Telemático | Consultor Desarrollador Informático en PAFI / Ministerio de Hacienda. ● Más de 7 años de experiencias en desarrollo de sistemas bajo Java SE y Java EE. ● Entusiasta de la tecnología y el software libre. ● Miembro del equipo de desarrollo de Astive Toolkit http://astivetoolkit.org Comunidades ● Github: @ecabrerar Google Groups: @letsrockjava Sobre Eudris Cabrera Rodríguez
  3. 3. Agenda ● Definición de aplicaciones web modernas. ● Opciones disponibles en el mundo de Java. ● Como construir aplicaciones web modernas usando Java EE 7 ○ Aspectos importantes de Java EE 7 ○ AngularJS ○ Opciones para despliegue en la nube ○ Limitaciones y desafíos de Java EE 7 ● Ejemplo Integración Java EE 7 con AngularJS ● Caso de Estudio: Miles2Run (http://www.miles2run.org)
  4. 4. Definición de Aplicaciones Web Modernas ● Expone servicios REST en formato JSON. ● Usa HTML 5. ● Aplicación web de una sola página (SPA). ● Sin estado (Stateless) para que pueda escalar horizontalmente. ● Usa OAuth. ● Adopta persistencia poliglota. ● Usa diseño web adaptable (Responsive Web Design). ● Orientada a la nube. ● Es social.
  5. 5. Ejemplo de persistencia poliglota Cortesía de http://martinfowler.com/bliki/PolyglotPersistence.html
  6. 6. Opciones disponibles en el mundo de Java ● Java EE 7 ● Spring Framework ● Google Web Toolkit ● Play Framework ● Spark Micro Web Framework
  7. 7. Como construir aplicaciones web modernas usando Java EE 7 ● Los API de Java EE ofrecen un buen punto de inicio para el desarrollo de este tipo de aplicaciones. ● Los APIs CDI, JAX-RS, JPA son el corazón de cualquier aplicación web moderna.
  8. 8. Como construir aplicaciones web modernas usando Java EE 7 REST API Business Tier RDBMS or NoSQL CDI JAX- RS JPA Web SPA Angular / HTML 5 Push Notifications
  9. 9. Aspectos importantes de Java EE 7 ● Construido sobre la base de Java EE6. ● Desarrollo basado en estándares. ● Portabilidad a través de los servidores de aplicaciones ● Soporte para HTML5. ● Despliegue ligero
  10. 10. Plataforma Java EE 7
  11. 11. Un vistazo a algunos API de Java EE
  12. 12. CDI 1.1 ---‐ Contexts and Dependency Injection ● Permite utilizar inyección de dependencia en el entorno Java EE sin necesidad de utilizar librerías de terceros. ● El contenedor CDI gestiona el ciclo de vida de los componentes. ● CDI trae inyección de dependencias, contexto, alcances e interceptores.
  13. 13. CDI 1.1:¿Qué hay de nuevo en Java EE 7? Uno de los cambios más significativos de CD 1.1/Java EE 7, es que CDI está activada de forma predeterminada. Ahora también proporciona un control más preciso sobre la exploración de componente mediante el atributo 'bean-discovery-mode', con sus tres posibles valores annotated, all y none. Si no se especifica nada y no hay beans.xml, asume el modo 'annotated' de forma predeterminada.
  14. 14. JPA (Java Persistence API) ● Framework para manejar los datos de una base de datos relacional a un mapeo de objeto (ORM). ● JPA proporciona un API para realizar operaciones de crear, consultar, actualizar y borrar en entidades. ● Una entidad es un POJO, cuyo estado es mapeado a una tabla de base de datos relacional. ● JPA también proporciona un lenguaje de consulta para hacer consultas en entidades almacenados en bases de datos relacionales.
  15. 15. JPA(Java Persistence API)
  16. 16. Los elementos nuevos JPA 2.1: ● Soporte procedimientos almacenados ● Tipo de conversión ● Criteria Update / Delete ● Creación runtime named Queries JPA 2.1--¿Qué hay de nuevo en Java EE 7?
  17. 17. Clase Entidad - JPA
  18. 18. Bean Validation ● Define un modelo de metadatos y una interfaz para la validación de JavaBeans. ● Validación basada en anotaciones ● Permite sobreescribir y extender estos metadatos por medio del uso de descriptores de validación en formato XML.
  19. 19. Ejemplo de Bean Validation
  20. 20. ¿Qué hay de nuevo en Java EE 7? Bean Validation 1.1 estuvo enfocado en los siguientes temas: ● Validación a nivel de método (validación de parámetros o valores de retorno) ● Inyección de dependencias para los componentes Bean Validation ● Integración con el contexto y la inyección de dependencias (CDI) ● Integración con JAX‐RS
  21. 21. Validación de métodos
  22. 22. Integración con CDI
  23. 23. ● Representational State Transfer (REST): ○ Servicio web sobre HTTP representado con JSON. ○ Estándar Flexible ○ Operaciones definidas, GET, POST, PUT y DELETE soportando un CRUD. Servicios Web REST
  24. 24. JavaScript Object Notation: Es un formato ligero para el intercambio de datos. Su simplicidad ha dado lugar a la generalización de su uso, especialmente como alternativa a XML como representación de objetos y es el estándar de facto para servicios REST. JSON
  25. 25. ● API de Java para crear servicios web REST ● Simplifica el proceso de creación de servicios Web mediante Plain Old Java Objects (POJOS) y anotaciones. ● Mapea las peticiones HTTP con invocaciones de método Java ● Incluye anotaciones para implementar servicios Web: @Path, @Get, @Put, @Post, @Delete,@PathParam, @QueryParam @Produces, @Consumes, entre otros. JAX-RS
  26. 26. Ejemplo Clase JAX-RS
  27. 27. JAX-RS 2.0: ○ Introduce elementos que ayudan a la productividad. ○ Simplifica el API ○ Incluye los siguientes aspectos: ■ API para el Cliente ■ Llamadas Asincrónicas vía Http ■ Filtros e interceptores ¿Qué hay de nuevo en Java EE 7?
  28. 28. AngularJS ● Extiende HTML para agregar dinamismo para que podamos construir aplicaciones web modernas con facilidad. ● Enfoque declarativo ● Elimina la manipulación DOM por la vinculacion de datos en dos via. ● Ideal para la construcción de aplicaciones web de una página sencilla
  29. 29. Porque AngularJS ? ● Consta con el respaldo de Google y goza de una gran comunidad de desarrolladores. ● Full Stack framework : Esto significa que no tengo que depender de otros scripts con la incertidumbre de se integrarán perfectamente.
  30. 30. Principales Componentes de AngularJS ● Controlador (Controller): Código detrás de la vista. ● Alcance(Scope): Contiene los datos del modelo. ● Módulo(Module): Para definir los nuevos servicios o utilizar los servicios existentes, directivas, filtros, etcétera. ● Directiva: le permite extender HTML definiendo sus directivas HTML específica propia del proyecto.
  31. 31. AngularJS en Acción
  32. 32. Opciones para despliegue en la nube
  33. 33. Limitaciones y desafíos de Java EE ● Java EE no tiene soporte proveedores de OAuth como Twitter ● Diseñar para que tu aplicación trabaje como Single SPA ● Los contenedores servlets no crean sesiones cuando renderiza páginas HTML 5
  34. 34. Código fuente de los ejemplos en GitHub https://github.com/ecabrerar/javaee7-angular-barcamprd2014
  35. 35. Ejemplo Integración Java EE 7 con AngularJS Un proyecto de ejemplo para demostrar el uso de Java EE 7 y AngularJS. Technology Stack ● Java EE 7 y JDK 7 – JPA,EJB,CDI,JAX--‐RS ● MySQL ● AngularJS ● Twitter Bootstrap ● Glassfish 4.0 https://github.com/ecabrerar/javaee7-angular-booklibrary
  36. 36. Caso de Estudio: Miles2Run ● Red social para corredores http://www.miles2run.org ● Aplicación que permite almacenar a los corredores sus actividades diarias ● Construida sobre Java EE 7 ● Autenticación usando Twitter, Facebook y Google. ● Código disponible en https://github.com/miles2run/miles2run
  37. 37. ¿Preguntas?
  38. 38. Asuntos Legales Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios y/o representantes. Su utilización es solamente para fines ilustrativos.
  39. 39. Referencias ● http://www.slideshare.net/shekhargulati/modern-web-application-development-with-java-ee-7 ● https://thinkster.io/angulartutorial/mean-stack-tutorial ● https://angularjs.org/ ● https://blog.openshift.com/day-2-angularjs-getting-my-head-around-angularjs/ ● http://java.dzone.com/articles/whats-new-jax-rs-20 ● http://www.infoq.com/news/2013/06/Whats-New-in-JAX-RS-2.0
  40. 40. @eudriscabrera @eudris @ecabrerar @eudriscabrera Eudris Cabrera Rodríguez Ingeniero Telemático Desarrollador de Software / Consultor Informático eudris@gmail.com https://www.linkedin.com/in/eudriscabrera http://www.slideshare.net/eudris https://twitter.com/eudriscabrera https://github.com/ecabrerar

×