SlideShare uma empresa Scribd logo
1 de 37
Arquitectura y Diseño de Aplicaciones Java EE Carlos G. Gavidia Avances Tecnológicos SRL
Agenda Evolución de la computación distribuida Arquitectura Java EE Spring Framework Aplicaciones en capas con Spring Framework
Evolución de la Computación Distribuida Computación distribuida: Dividir una aplicación en partes que se ejecutan simultáneamente en computadoras diferentes Cada una de estas partes se denomina “nivel” (tier) Cada nivel brinda servicios a otras niveles cliente Cada nivel puede dividirse a su vez en “capas” (layers) La mayoría de aplicaciones posee tres capas Capa de presentación Capa de negocio Capa de acceso a datos
Arquitecturas de un nivel Mainframes accedidos mediante terminales Las interfaces de usuario, la lógica de negocio y la data estaban es una sola computadora Los usuarios accedían mediante terminales o consolas
Arquitectura de dos niveles También conocida como “cliente-servidor” Los clientes ejecutan los programas de interfaz de usuario Los servidores administran la lógica de negocio y la data Ejemplo: Aplicaciones Oracle Forms En algunos casos, la lógica de negocio estaba contenida en el cliente Clientes gruesos/gordos
Arquitectura de tres niveles Clientes “delgados” (Browser) El servidor maneja la presentación, la lógica de negocio y la lógica de acceso a datos La data de la aplicación se encuentra en un sistema de información empresarial (EIS) Como un DBMS La lógica de negocio es accesible de manera remota Servidor = Servidor de Aplicaciones = Middleware
Arquitectura de n-niveles Los servidores Web se encargan de la presentación del contenido Los servidores de aplicaciones contienen componentes de negocio accesibles remotamente
Arquitecturas Java EE Hacer aplicaciones de n-niveles tiene sus ventajas Mejor utilización de recursos Asignar expertos a cada nivel También tiene sus dificultades Los niveles se deben integrar eficientemente Requiere servicios: Transacciones, seguridad Administrar conexiones costosas con: DBMS Middleware orientado a mensajes El uso de API’s del servidor middleware dificulta la mantenibilidad  y limita la portabilidad
Arquitectura J2EE En 1999, Sun Microsystems lanza la plataforma J2EE para solucionar estos problemas Basada en la edición estándar de la plataforma Java “Programa una vez, despliega y ejecuta donde quieras” Apoyada por la comunidad Open Source, IBM, Oracle, BEA, etc Actualmente, nos encontramos en Java EE 5.
Contenedores Java EE Los contenedores proveen un entorno de ejecución para componentes Java. También brindan los servicios de seguridad, transacciones, administración del ciclo de vida, caching, persistencia, comunicación en la red Existen dos tipos de contenedores: Contenedores Web: Almacenan componentes de presentación (JSP, Servlets) Contenedores EJB: Administran  la ejecución de componentes EJB
Contenedores Java EE
Contenedores Java EE Los contenedores brindan servicios a las aplicaciones Se accede a los servicios a través de API’s Java EE: Java Transaccion API Java MessageService Java Naming and Directory Interface Java Persistence API Java Transaction API Gracias a esto se reducen los tiempos de desarrollo, y se simplifica el mantenimiento
El modelo MVC Propuesto por TrygveReenskaug en 1979 “Applications Programming in Smalltalk-80: How to use Model-View-Controller.” Divide a la aplicación en 3 componentes: El modeloadministra la data y aplica la lógica de negocio La vista muestra la data de la aplicación y permite al usuariointeractuar con el sistema El controladorsirve de mediador entre la vista y el modelo
El modelo MVC
Arquitectura Java EE y MVC La tecnología Servlet sirve para la construcción de componentes controlador Los controladores Servlet pueden invocar a componentes EJB del modelo La data obtenida o modificada se puede mostrar en pantalla mediante páginas JSP Podemos tener especialistas en cada tecnologías Menos riesgos, mayor productividad Los componentes de cada capa son fácilmente manipulables
Arquitectura Java EE y MVC
Capas en una Aplicación Java EE Una arquitectura multi-capas es una extensión de una arquitectura MVC En MVC: La capa de negocio contiene la capa de acceso a datos En Java EE: La capa de acceso a datos es una capa independiente Muchos orígenes de datos: DBMS, ERP’s, Mainframes La capa de negocio se centra en la lógica de negocio
Arquitectura y diseño de aplicaciones Java EE Aplicaciones Java EE y Spring framework
Spring Framework Framework open-sourcepara aplicaciones Java Ya lo puede usar .NET también Fue descrito por  Rod Johnson en Expert One-on-One J2EE Design and Development  el 2002
¿Porqué es importante? La plataforma Java EE estandarizó las aplicaciones empresariales Pero no le dio importancia a un modelo simple de programación Construir aplicaciones de n-niveles requería demasiado esfuerzo Localizar objetos EJB mediante JNDI Manejo de Data Transfer Objects Usar EJB’s para soporte de transacciones implicaba crear una aplicacíón distribuida El API de Beans de Entidad era sumamente complejo
¿Porqué Spring es importante? Los desarrolladores buscaron otras alternativas: Apache Struts: MVC mediante el API Servlet Hibernate: Persistencia mediante POJO’s  con configuración mínima Spring es un frameworkmulti-nivel Se integra con los mejores frameworks de un nivel Provee un modelo de programación simple basado en POJO’s Con Spring AOP podemos implementar seguridad y transacciones Con Spring JDBC-ORM nos permite una interacción simple con la Base de Datos
Estructura de Spring Framework Está dividido en varios módulos independientes Provee puntos de integración con otros frameworks
Spring Core “Columna vertebral” de todo el framework Todos los módulos de Spring dependen de él También se le conoce como el contenedor IOC Inversión del Control (IOC) Registramos objetos en el framework El framework invoca los métodos de los objetos cuando sea necesario El control se ha invertido: Aplicación<-Framework IOC no es un concepto nuevo. Ejemplo: EJB’s
Spring Core También da soporte a la inyección de dependencias (DI) Cómo un objeto encuentra a los objetos que necesita Podemos lograr DI a través de IOC Estrategias DI Instanciación directa FactoryHelper Servicio de registro
Inyección de dependencias
Fábrica de Beans Implementación sofisticada del patrón factorymethod (GoF) Crea y administra los objetos de la aplicación Permite configurar las clases de la aplicación y sus dependencias en archivos XML Para acceder a un bean: Lo registramos en el archivo de configuración XML Iniciamos el contenedor IOC Obtenemos el Bean de la fábrica de beans
Fábrica de beans
Inyección por setters
Inyección por constructores
Contexto de aplicación Fábrica de beans: Pool donde los objetos son creados y administrados por archivos de configuración. Un contexto de aplicación se la fábrica de beans más algunos servicios adicionales: Archivos properties para I18N Soporte AOP: Transacciones declarativas y seguridad Para aplicaciones Web (También se puede registrar un servletlistenerpara inicializar el contexto)
Spring AOP Nos permite separar las funcionalidades transversales del resto de la aplicación Como el manejo de transacciones Nos permite construir aspectos personalizados y configurarlos declarativamente
Spring DAO Las aplicaciones Java EE utilizan el API JDBC para acceder a RDBMS Esto implica codificar: Obtención de la conexión Instanciar PreparedStatement Enviar parámetros a la sentencia SQL Ejecutar el PreparedStatement Obtener la información del ResultSet  y poblar DTO’s Liberar los recursos utilizados Con Spring JDBC/DAO se remueve el código común y lo coloca en templates. Implementando el patrón templatemethod Agregamos el código personalizado a templatespre-establecidos Spring se encarga de liberar los recursos de base de datos
Spring ORM Persistencia para objetos POJO en RDBMS Extensión de Spring DAO Se integra con los principales productos ORM Hibernate JPA TopLink IBatis
Web MVC Basado en el patrón arquitectónico MVC Integrado con el API Servlet Soporta diversas tecnologías de vista: JSP Velocity Adobe Flex Si no se desea trabajar con Spring MVC, se puede optar por: Struts JSF
Aplicación en capas con Spring Presentación: Spring MVC permite implementar el controlador Provee una capa de administración de vistas Lógica de negocio Los componentes de negocio son clases Java planas Sin depender de un framework específico Ejecutan lógica de negocio y manipulan data mediante los componente de la capa de integración Con Spring AOP se puede manejar transacciones, seguridad y auditoría Se pueden exponer los objetos de negocio mediante servicios web Integración Interactúa con el RDBMS mediante el API JDBC a través de objetos DAO Nos podemos apoyar en Spring DAO y/o Spring ORM También puede interactuar con ERP’s, mainframes o sistemas CRM
Arquitectura de aplicaciones con Spring
Bibliografía Pro Java™ EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE Patterns with the Spring Framework De DhrubojyotiKayal

Mais conteúdo relacionado

Mais procurados

Partes de la pantalla de eclipse
Partes de la pantalla de eclipsePartes de la pantalla de eclipse
Partes de la pantalla de eclipselourdes9898
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaMariana de Azevedo Santos
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepGuo Albert
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!Jakub Kubrynski
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webYaskelly Yedra
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)diegob1098
 
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Oswaldo Hernández
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JSJavier Vélez Reyes
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6Maga Lasic
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de softwareJohn Fonseca
 

Mais procurados (20)

Frameworks Java
Frameworks JavaFrameworks Java
Frameworks Java
 
Partes de la pantalla de eclipse
Partes de la pantalla de eclipsePartes de la pantalla de eclipse
Partes de la pantalla de eclipse
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Tecnologia ASP.net
Tecnologia ASP.netTecnologia ASP.net
Tecnologia ASP.net
 
Spring boot
Spring bootSpring boot
Spring boot
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones web
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Spring User Guide
Spring User GuideSpring User Guide
Spring User Guide
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)
 
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JS
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6
 
Java Spring Framework
Java Spring FrameworkJava Spring Framework
Java Spring Framework
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Introducción a Angular
Introducción a AngularIntroducción a Angular
Introducción a Angular
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de software
 

Destaque

Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEFernando Montaño
 
DAP - Configuracion ambiente de desarrollo
DAP - Configuracion ambiente de desarrolloDAP - Configuracion ambiente de desarrollo
DAP - Configuracion ambiente de desarrolloYesith Valencia
 
Desarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales IntroducciónDesarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales IntroducciónYesith Valencia
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7Carlos Camacho
 
Programación Web - Introducción
Programación Web - IntroducciónProgramación Web - Introducción
Programación Web - IntroducciónYesith Valencia
 
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 nubeFernando Montaño
 
Procesos de la ingeniería de requisitos
Procesos de la ingeniería de requisitosProcesos de la ingeniería de requisitos
Procesos de la ingeniería de requisitosYesith Valencia
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Sesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jeeSesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jeeHéctor Santos
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 

Destaque (20)

Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
Java script
Java scriptJava script
Java script
 
MVC: La Vista
MVC: La VistaMVC: La Vista
MVC: La Vista
 
DAP - Configuracion ambiente de desarrollo
DAP - Configuracion ambiente de desarrolloDAP - Configuracion ambiente de desarrollo
DAP - Configuracion ambiente de desarrollo
 
MVC: El modelo
MVC: El modeloMVC: El modelo
MVC: El modelo
 
Desarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales IntroducciónDesarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales Introducción
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7
 
Programación Web - Introducción
Programación Web - IntroducciónProgramación Web - Introducción
Programación Web - Introducción
 
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
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Procesos de la ingeniería de requisitos
Procesos de la ingeniería de requisitosProcesos de la ingeniería de requisitos
Procesos de la ingeniería de requisitos
 
CRUD html php mysql
CRUD html php mysqlCRUD html php mysql
CRUD html php mysql
 
Html
HtmlHtml
Html
 
Arquitectura para aplicaciones web
Arquitectura para aplicaciones webArquitectura para aplicaciones web
Arquitectura para aplicaciones web
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Sesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jeeSesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jee
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 

Semelhante a Arquitectura y diseño de aplicaciones Java EE

01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptxjohann
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdfMarvelNanosoft
 
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
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition Eudris Cabrera
 
01 jee5-componentes
01 jee5-componentes01 jee5-componentes
01 jee5-componentesUTN
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación JavaAntonio Contreras
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacionkaolong
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosJaziel Torres
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo WebEmilio Aviles Avila
 
Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Pedro Gallardo
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)Eudris Cabrera
 
Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Renan Cayao
 

Semelhante a Arquitectura y diseño de aplicaciones Java EE (20)

spring
springspring
spring
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptx
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
 
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)
 
Spring
SpringSpring
Spring
 
framework.pptx
framework.pptxframework.pptx
framework.pptx
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition
 
01 jee5-componentes
01 jee5-componentes01 jee5-componentes
01 jee5-componentes
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Introducción JEE
Introducción JEEIntroducción JEE
Introducción JEE
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 
Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 
JEE y Tomcat
JEE y TomcatJEE y Tomcat
JEE y Tomcat
 
Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...
 

Mais de Carlos Gavidia-Calderon

What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...Carlos Gavidia-Calderon
 
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
Game-theoretic Analysis of Development Practices: Challenges and OpportunitiesGame-theoretic Analysis of Development Practices: Challenges and Opportunities
Game-theoretic Analysis of Development Practices: Challenges and OpportunitiesCarlos Gavidia-Calderon
 
Segmentación de imágenes mediante algoritmos ACO
Segmentación de imágenes mediante algoritmos ACOSegmentación de imágenes mediante algoritmos ACO
Segmentación de imágenes mediante algoritmos ACOCarlos Gavidia-Calderon
 

Mais de Carlos Gavidia-Calderon (9)

What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
 
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
Game-theoretic Analysis of Development Practices: Challenges and OpportunitiesGame-theoretic Analysis of Development Practices: Challenges and Opportunities
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Segmentación de imágenes mediante algoritmos ACO
Segmentación de imágenes mediante algoritmos ACOSegmentación de imágenes mediante algoritmos ACO
Segmentación de imágenes mediante algoritmos ACO
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Paralelismo a nivel de Instrucciones
Paralelismo a nivel de InstruccionesParalelismo a nivel de Instrucciones
Paralelismo a nivel de Instrucciones
 
OpenUP como proceso de desarrollo
OpenUP como proceso de desarrolloOpenUP como proceso de desarrollo
OpenUP como proceso de desarrollo
 
GWT - Una introducción
GWT - Una introducciónGWT - Una introducción
GWT - Una introducción
 
Spring Web Services
Spring Web ServicesSpring Web Services
Spring Web Services
 

Último

UNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdf
UNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdfUNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdf
UNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdfARACELIGINESZARATE1
 
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdfPROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdfrgsteveo32
 
presentacion norma240201056induccion.pdf
presentacion norma240201056induccion.pdfpresentacion norma240201056induccion.pdf
presentacion norma240201056induccion.pdfIsabelSena13
 
Material modulo para AFP integra en diapositivas
Material modulo para AFP integra en diapositivasMaterial modulo para AFP integra en diapositivas
Material modulo para AFP integra en diapositivasErnesto840942
 
TALLERorientacion_herramientas de orientacion laboral.ppt
TALLERorientacion_herramientas de orientacion laboral.pptTALLERorientacion_herramientas de orientacion laboral.ppt
TALLERorientacion_herramientas de orientacion laboral.pptxico33a
 
UA 2 - Uniformes del Ejercito.pdfasfdasfa
UA 2 - Uniformes del Ejercito.pdfasfdasfaUA 2 - Uniformes del Ejercito.pdfasfdasfa
UA 2 - Uniformes del Ejercito.pdfasfdasfaRODRIGOGAVINOAVILAGA
 
Cirugía Oral…………………………………………………..……..pdf
Cirugía Oral…………………………………………………..……..pdfCirugía Oral…………………………………………………..……..pdf
Cirugía Oral…………………………………………………..……..pdfginpao14
 
Banco central de Reserva del Perú...,.....
Banco central de Reserva del Perú...,.....Banco central de Reserva del Perú...,.....
Banco central de Reserva del Perú...,.....MAICKELSANCHEZ2
 
Descubre el boletín del 12 de Abril de 2024
Descubre el boletín del 12 de Abril de 2024Descubre el boletín del 12 de Abril de 2024
Descubre el boletín del 12 de Abril de 2024Yes Europa
 
PRÁCTICAS PRE PROFESIONALES SESION_N°4.pptx
PRÁCTICAS PRE PROFESIONALES SESION_N°4.pptxPRÁCTICAS PRE PROFESIONALES SESION_N°4.pptx
PRÁCTICAS PRE PROFESIONALES SESION_N°4.pptxcarlosdaniellujandel1
 
Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024Yes Europa
 

Último (11)

UNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdf
UNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdfUNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdf
UNIDAD 2 REGISTRO Y CONTROL DE MERCANCIAS.pdf
 
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdfPROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
 
presentacion norma240201056induccion.pdf
presentacion norma240201056induccion.pdfpresentacion norma240201056induccion.pdf
presentacion norma240201056induccion.pdf
 
Material modulo para AFP integra en diapositivas
Material modulo para AFP integra en diapositivasMaterial modulo para AFP integra en diapositivas
Material modulo para AFP integra en diapositivas
 
TALLERorientacion_herramientas de orientacion laboral.ppt
TALLERorientacion_herramientas de orientacion laboral.pptTALLERorientacion_herramientas de orientacion laboral.ppt
TALLERorientacion_herramientas de orientacion laboral.ppt
 
UA 2 - Uniformes del Ejercito.pdfasfdasfa
UA 2 - Uniformes del Ejercito.pdfasfdasfaUA 2 - Uniformes del Ejercito.pdfasfdasfa
UA 2 - Uniformes del Ejercito.pdfasfdasfa
 
Cirugía Oral…………………………………………………..……..pdf
Cirugía Oral…………………………………………………..……..pdfCirugía Oral…………………………………………………..……..pdf
Cirugía Oral…………………………………………………..……..pdf
 
Banco central de Reserva del Perú...,.....
Banco central de Reserva del Perú...,.....Banco central de Reserva del Perú...,.....
Banco central de Reserva del Perú...,.....
 
Descubre el boletín del 12 de Abril de 2024
Descubre el boletín del 12 de Abril de 2024Descubre el boletín del 12 de Abril de 2024
Descubre el boletín del 12 de Abril de 2024
 
PRÁCTICAS PRE PROFESIONALES SESION_N°4.pptx
PRÁCTICAS PRE PROFESIONALES SESION_N°4.pptxPRÁCTICAS PRE PROFESIONALES SESION_N°4.pptx
PRÁCTICAS PRE PROFESIONALES SESION_N°4.pptx
 
Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024
 

Arquitectura y diseño de aplicaciones Java EE

  • 1. Arquitectura y Diseño de Aplicaciones Java EE Carlos G. Gavidia Avances Tecnológicos SRL
  • 2. Agenda Evolución de la computación distribuida Arquitectura Java EE Spring Framework Aplicaciones en capas con Spring Framework
  • 3. Evolución de la Computación Distribuida Computación distribuida: Dividir una aplicación en partes que se ejecutan simultáneamente en computadoras diferentes Cada una de estas partes se denomina “nivel” (tier) Cada nivel brinda servicios a otras niveles cliente Cada nivel puede dividirse a su vez en “capas” (layers) La mayoría de aplicaciones posee tres capas Capa de presentación Capa de negocio Capa de acceso a datos
  • 4. Arquitecturas de un nivel Mainframes accedidos mediante terminales Las interfaces de usuario, la lógica de negocio y la data estaban es una sola computadora Los usuarios accedían mediante terminales o consolas
  • 5. Arquitectura de dos niveles También conocida como “cliente-servidor” Los clientes ejecutan los programas de interfaz de usuario Los servidores administran la lógica de negocio y la data Ejemplo: Aplicaciones Oracle Forms En algunos casos, la lógica de negocio estaba contenida en el cliente Clientes gruesos/gordos
  • 6. Arquitectura de tres niveles Clientes “delgados” (Browser) El servidor maneja la presentación, la lógica de negocio y la lógica de acceso a datos La data de la aplicación se encuentra en un sistema de información empresarial (EIS) Como un DBMS La lógica de negocio es accesible de manera remota Servidor = Servidor de Aplicaciones = Middleware
  • 7. Arquitectura de n-niveles Los servidores Web se encargan de la presentación del contenido Los servidores de aplicaciones contienen componentes de negocio accesibles remotamente
  • 8. Arquitecturas Java EE Hacer aplicaciones de n-niveles tiene sus ventajas Mejor utilización de recursos Asignar expertos a cada nivel También tiene sus dificultades Los niveles se deben integrar eficientemente Requiere servicios: Transacciones, seguridad Administrar conexiones costosas con: DBMS Middleware orientado a mensajes El uso de API’s del servidor middleware dificulta la mantenibilidad y limita la portabilidad
  • 9. Arquitectura J2EE En 1999, Sun Microsystems lanza la plataforma J2EE para solucionar estos problemas Basada en la edición estándar de la plataforma Java “Programa una vez, despliega y ejecuta donde quieras” Apoyada por la comunidad Open Source, IBM, Oracle, BEA, etc Actualmente, nos encontramos en Java EE 5.
  • 10. Contenedores Java EE Los contenedores proveen un entorno de ejecución para componentes Java. También brindan los servicios de seguridad, transacciones, administración del ciclo de vida, caching, persistencia, comunicación en la red Existen dos tipos de contenedores: Contenedores Web: Almacenan componentes de presentación (JSP, Servlets) Contenedores EJB: Administran la ejecución de componentes EJB
  • 12. Contenedores Java EE Los contenedores brindan servicios a las aplicaciones Se accede a los servicios a través de API’s Java EE: Java Transaccion API Java MessageService Java Naming and Directory Interface Java Persistence API Java Transaction API Gracias a esto se reducen los tiempos de desarrollo, y se simplifica el mantenimiento
  • 13. El modelo MVC Propuesto por TrygveReenskaug en 1979 “Applications Programming in Smalltalk-80: How to use Model-View-Controller.” Divide a la aplicación en 3 componentes: El modeloadministra la data y aplica la lógica de negocio La vista muestra la data de la aplicación y permite al usuariointeractuar con el sistema El controladorsirve de mediador entre la vista y el modelo
  • 15. Arquitectura Java EE y MVC La tecnología Servlet sirve para la construcción de componentes controlador Los controladores Servlet pueden invocar a componentes EJB del modelo La data obtenida o modificada se puede mostrar en pantalla mediante páginas JSP Podemos tener especialistas en cada tecnologías Menos riesgos, mayor productividad Los componentes de cada capa son fácilmente manipulables
  • 17. Capas en una Aplicación Java EE Una arquitectura multi-capas es una extensión de una arquitectura MVC En MVC: La capa de negocio contiene la capa de acceso a datos En Java EE: La capa de acceso a datos es una capa independiente Muchos orígenes de datos: DBMS, ERP’s, Mainframes La capa de negocio se centra en la lógica de negocio
  • 18. Arquitectura y diseño de aplicaciones Java EE Aplicaciones Java EE y Spring framework
  • 19. Spring Framework Framework open-sourcepara aplicaciones Java Ya lo puede usar .NET también Fue descrito por Rod Johnson en Expert One-on-One J2EE Design and Development el 2002
  • 20. ¿Porqué es importante? La plataforma Java EE estandarizó las aplicaciones empresariales Pero no le dio importancia a un modelo simple de programación Construir aplicaciones de n-niveles requería demasiado esfuerzo Localizar objetos EJB mediante JNDI Manejo de Data Transfer Objects Usar EJB’s para soporte de transacciones implicaba crear una aplicacíón distribuida El API de Beans de Entidad era sumamente complejo
  • 21. ¿Porqué Spring es importante? Los desarrolladores buscaron otras alternativas: Apache Struts: MVC mediante el API Servlet Hibernate: Persistencia mediante POJO’s con configuración mínima Spring es un frameworkmulti-nivel Se integra con los mejores frameworks de un nivel Provee un modelo de programación simple basado en POJO’s Con Spring AOP podemos implementar seguridad y transacciones Con Spring JDBC-ORM nos permite una interacción simple con la Base de Datos
  • 22. Estructura de Spring Framework Está dividido en varios módulos independientes Provee puntos de integración con otros frameworks
  • 23. Spring Core “Columna vertebral” de todo el framework Todos los módulos de Spring dependen de él También se le conoce como el contenedor IOC Inversión del Control (IOC) Registramos objetos en el framework El framework invoca los métodos de los objetos cuando sea necesario El control se ha invertido: Aplicación<-Framework IOC no es un concepto nuevo. Ejemplo: EJB’s
  • 24. Spring Core También da soporte a la inyección de dependencias (DI) Cómo un objeto encuentra a los objetos que necesita Podemos lograr DI a través de IOC Estrategias DI Instanciación directa FactoryHelper Servicio de registro
  • 26. Fábrica de Beans Implementación sofisticada del patrón factorymethod (GoF) Crea y administra los objetos de la aplicación Permite configurar las clases de la aplicación y sus dependencias en archivos XML Para acceder a un bean: Lo registramos en el archivo de configuración XML Iniciamos el contenedor IOC Obtenemos el Bean de la fábrica de beans
  • 30. Contexto de aplicación Fábrica de beans: Pool donde los objetos son creados y administrados por archivos de configuración. Un contexto de aplicación se la fábrica de beans más algunos servicios adicionales: Archivos properties para I18N Soporte AOP: Transacciones declarativas y seguridad Para aplicaciones Web (También se puede registrar un servletlistenerpara inicializar el contexto)
  • 31. Spring AOP Nos permite separar las funcionalidades transversales del resto de la aplicación Como el manejo de transacciones Nos permite construir aspectos personalizados y configurarlos declarativamente
  • 32. Spring DAO Las aplicaciones Java EE utilizan el API JDBC para acceder a RDBMS Esto implica codificar: Obtención de la conexión Instanciar PreparedStatement Enviar parámetros a la sentencia SQL Ejecutar el PreparedStatement Obtener la información del ResultSet y poblar DTO’s Liberar los recursos utilizados Con Spring JDBC/DAO se remueve el código común y lo coloca en templates. Implementando el patrón templatemethod Agregamos el código personalizado a templatespre-establecidos Spring se encarga de liberar los recursos de base de datos
  • 33. Spring ORM Persistencia para objetos POJO en RDBMS Extensión de Spring DAO Se integra con los principales productos ORM Hibernate JPA TopLink IBatis
  • 34. Web MVC Basado en el patrón arquitectónico MVC Integrado con el API Servlet Soporta diversas tecnologías de vista: JSP Velocity Adobe Flex Si no se desea trabajar con Spring MVC, se puede optar por: Struts JSF
  • 35. Aplicación en capas con Spring Presentación: Spring MVC permite implementar el controlador Provee una capa de administración de vistas Lógica de negocio Los componentes de negocio son clases Java planas Sin depender de un framework específico Ejecutan lógica de negocio y manipulan data mediante los componente de la capa de integración Con Spring AOP se puede manejar transacciones, seguridad y auditoría Se pueden exponer los objetos de negocio mediante servicios web Integración Interactúa con el RDBMS mediante el API JDBC a través de objetos DAO Nos podemos apoyar en Spring DAO y/o Spring ORM También puede interactuar con ERP’s, mainframes o sistemas CRM
  • 37. Bibliografía Pro Java™ EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE Patterns with the Spring Framework De DhrubojyotiKayal