SlideShare una empresa de Scribd logo
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
● 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
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)
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.
Ejemplo de persistencia poliglota
Cortesía de http://martinfowler.com/bliki/PolyglotPersistence.html
Opciones disponibles en el mundo de Java
● Java EE 7
● Spring Framework
● Google Web Toolkit
● Play Framework
● Spark Micro Web Framework
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.
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
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
Plataforma Java EE 7
Un vistazo a algunos API de Java EE
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.
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.
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.
JPA(Java Persistence API)
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?
Clase Entidad - JPA
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.
Ejemplo de Bean Validation
¿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
Validación de métodos
Integración con CDI
● 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
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
● 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
Ejemplo Clase JAX-RS
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?
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
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.
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.
AngularJS en Acción
Opciones para despliegue en la nube
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
Código fuente de los ejemplos en GitHub
https://github.com/ecabrerar/javaee7-angular-barcamprd2014
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
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
¿Preguntas?
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.
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
@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

Más contenido relacionado

La actualidad más candente

Mejores a nuestros proyectos de Software
Mejores a nuestros proyectos de SoftwareMejores a nuestros proyectos de Software
Mejores a nuestros proyectos de Software
Jose Luis Bugarin Peche
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
Roberto Marchena
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
Antonio Contreras
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
Iker Canarias
 
Sesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jeeSesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jee
Héctor Santos
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
Rodolfo Finochietti
 
Java script
Java scriptJava script
Java script
Yesith Valencia
 
020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...
020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...
020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...GeneXus
 
Weblogic. Administración Avanzada servidor de aplicaciones
Weblogic. Administración Avanzada servidor de aplicacionesWeblogic. Administración Avanzada servidor de aplicaciones
Weblogic. Administración Avanzada servidor de aplicaciones
CLEFormación
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Oscar Gensollen
 
Framework de programacion de paginas web
Framework de programacion de paginas webFramework de programacion de paginas web
Framework de programacion de paginas web
Geraldyn De Sousa
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Rodolfo Finochietti
 
Aplicaciones empresariales Java EE en la nube
Aplicaciones empresariales Java EE en la nubeAplicaciones empresariales Java EE en la nube
Aplicaciones empresariales Java EE en la nube
Fernando Montaño
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
Carlos Gavidia-Calderon
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
Esteban Saavedra
 
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
VS 2005 Y SQL Server 2005 Juntos Son Aun MejoresVS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
juliocasal
 
Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014
Fernando Petrola
 

La actualidad más candente (20)

Mejores a nuestros proyectos de Software
Mejores a nuestros proyectos de SoftwareMejores a nuestros proyectos de Software
Mejores a nuestros proyectos de Software
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
 
Sesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jeeSesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jee
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Java script
Java scriptJava script
Java script
 
020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...
020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...
020 Gx Consulting Development Framework Metodologia De Administracion De Ambi...
 
Weblogic. Administración Avanzada servidor de aplicaciones
Weblogic. Administración Avanzada servidor de aplicacionesWeblogic. Administración Avanzada servidor de aplicaciones
Weblogic. Administración Avanzada servidor de aplicaciones
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
Framework de programacion de paginas web
Framework de programacion de paginas webFramework de programacion de paginas web
Framework de programacion de paginas web
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
Aplicaciones empresariales Java EE en la nube
Aplicaciones empresariales Java EE en la nubeAplicaciones empresariales Java EE en la nube
Aplicaciones empresariales Java EE en la nube
 
spring
springspring
spring
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
Java ee 6
Java ee 6Java ee 6
Java ee 6
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
 
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
VS 2005 Y SQL Server 2005 Juntos Son Aun MejoresVS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
 
SERVLET BASICS
SERVLET BASICSSERVLET BASICS
SERVLET BASICS
 
Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014
 

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

[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7Eudris Cabrera
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5
Eudris Cabrera
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
Iván Campaña Naranjo
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’s
Pablo Pellegrinet
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
MarvelNanosoft
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperOscar V
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
Paradigma Digital
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
Luis Fernando Aguas Bucheli
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Robert Rayco Quiroz
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
George Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
George Navarro Gomez
 
[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper
Eudris Cabrera
 
Capitulo_3_1.pptx
Capitulo_3_1.pptxCapitulo_3_1.pptx
Capitulo_3_1.pptx
VernicaPaulinaChimbo
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
Carlos Camacho
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
Luis Fernando Aguas Bucheli
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
Alejandro Pérez
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
riojadotnet
 
GraphQL Reactivo
GraphQL ReactivoGraphQL Reactivo
Weblogic arquitectura-orientada-soa-427129-esa(1)
Weblogic arquitectura-orientada-soa-427129-esa(1)Weblogic arquitectura-orientada-soa-427129-esa(1)
Weblogic arquitectura-orientada-soa-427129-esa(1)
Ellizz Lsc
 

Similar a Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Escalables (20)

[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’s
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper
 
Capitulo_3_1.pptx
Capitulo_3_1.pptxCapitulo_3_1.pptx
Capitulo_3_1.pptx
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 
GraphQL Reactivo
GraphQL ReactivoGraphQL Reactivo
GraphQL Reactivo
 
Weblogic arquitectura-orientada-soa-427129-esa(1)
Weblogic arquitectura-orientada-soa-427129-esa(1)Weblogic arquitectura-orientada-soa-427129-esa(1)
Weblogic arquitectura-orientada-soa-427129-esa(1)
 

Último

Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
yuki22434
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Todo sobre Minirobotica. Revista Saber Electronica
Todo sobre  Minirobotica. Revista Saber ElectronicaTodo sobre  Minirobotica. Revista Saber Electronica
Todo sobre Minirobotica. Revista Saber Electronica
Carlos Carlosnoemi
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 

Último (20)

Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Todo sobre Minirobotica. Revista Saber Electronica
Todo sobre  Minirobotica. Revista Saber ElectronicaTodo sobre  Minirobotica. Revista Saber Electronica
Todo sobre Minirobotica. Revista Saber Electronica
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 

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

  • 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. ● 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. 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. 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. Ejemplo de persistencia poliglota Cortesía de http://martinfowler.com/bliki/PolyglotPersistence.html
  • 6. Opciones disponibles en el mundo de Java ● Java EE 7 ● Spring Framework ● Google Web Toolkit ● Play Framework ● Spark Micro Web Framework
  • 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. 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. 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
  • 11. Un vistazo a algunos API de Java EE
  • 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. 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. 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.
  • 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?
  • 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. Ejemplo de Bean Validation
  • 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
  • 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. 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. ● 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
  • 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. 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. 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. 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.
  • 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. Código fuente de los ejemplos en GitHub https://github.com/ecabrerar/javaee7-angular-barcamprd2014
  • 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. 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
  • 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. 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. @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