JAVA 2 ENTERPRISE EDITION



Documentos relacionados
Tema 1: Introducción a Java EE

Introducción al Desarrollo de Aplicaciones Empresariales

Tema 1: Introducción a J2EE

Tema 1: Introducción a J2EE

Tema 1: Introducción a las Tecnologías Java

Tema 6: Comparativa CORBA/Servicios Web

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Introducción al Desarrollo de Aplicaciones Empresariales

5.1 Introducción a Servicios Web

Tema 1. Introducción a Java EE

Tema 1: Introducción a J2EE

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Tema 5. Plataforma Java EE

Introducción al Desarrollo de Aplicaciones Empresariales

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

Generador GeneXus JAVA

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Concepto de Arquitectura en Desarrollo Software. Arquitectura física Distribución de nodos en la red. Concepto de Arquitectura software Moderno

7.1 Java vs.net, la lucha se acrecienta

Estilos Arquitectónicos

Notas técnicas de JAVA Nro. 7 Tip Breve

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

Caso J2EE. Necesidades del negocio. Arquitectura Luther

1. INTRODUCCIÓN Y OBJETIVOS

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Visual Studio 2008 es el conjunto de herramientas de

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

Tema 4: Tecnologías Web Java

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

Tema 5. Plataforma Java EE

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Tema 1: Introducción a los estándares de portales

Desarrollo y servicios web Sesión 18

Sesión 17. Servicios web RESTful

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Construcción de portales

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

CentralTECH JAVA EE 7 Desarrollo

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Capítulo II. Arquitectura del Software

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Descripción de Arquitectura Repositorio de metadatos de componentes de software


Estilos Arquitectónicos

Cómo puede ayudarle JBuilder en sus Desarrollos Java?

Productos para desarrollar aplicaciones web: ASP, CFM, JSP y PHP

Capítulo III. Análisis y diseño.

INTRODUCCIÓN A JAVA. Índice

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Introducción al Desarrollo de Aplicaciones Web D R A. M A R I C E L A B R A V O

Análisis y diseño del sistema CAPÍTULO 3

Java 7.0 Advanced Application Developer

Capítulo 7. Implementación del Sistema

UNIVERSIDAD DE PIURA

2524 Developing XML Web Services Using Microsoft ASP.NET

Artículos técnicos Grupo Danysoft: Soporte de Servidores de Aplicaciones con JBuilder

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

aplicaciones web: ASP, CFM, JSP y PHP

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

CAPÍTULO 5 IMPLEMENTACIÓN DEL SISTEMA

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

[CASI v.0109] Pág. 1

Temario máster Java. Módulo 1 Fundamentals of the Java Programming Language. Duración: 40 horas

arquitectura que maneja. Encontraremos también los diferentes servidores que

Service Oriented Architecture

Arquitectura de Software

Enterprise JavaBeans

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

04/04/2005 InnovaPortal e InnovaNet 26 de marzo 961 of Montevideo - Uruguay

Pattern Oriented Software Architecture. Whole-Part. Jamir Antonio Avila Mojica César Julio Bustacara Medina. Patrones de Software

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Servicios Web con Java EE

Servicios Web con Java EE

Curso de JavaServer Faces

JavaEE.

CAPÍTULO 3: Resultados

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

Documentación técnica del producto

Diseño dinámico de arquitecturas de información

Panorámica de la asignatura

Arquitectura cliente/servidor

Transcripción:

JAVA 2 ENTERPRISE EDITION Jon Castro Jonathan Escolano Índice Arquitecturas características de las aplicaciones empresariales Tecnologías J2EE Alternativas a J2EE Tecnologías de integración de aplicaciones Patrones arquitectónicos Model-View- Controller y Layers

Características de las aplicaciones empresariales(1) Acceso a bases de datos (BD) Normalmente con BD relacionales Transaccionales Propiedades ACID (Atomicity-Consistency-Isolation-Durability) Escalables Deberían poder soportar más carga de trabajo sin necesidad de modificar el software (sólo añadir más máquinas) Disponibilidad Idealmente no deben dejar de prestar servicio Seguras No todos los usuarios pueden acceder a la misma funcionalidad Integración Es preciso integrar aplicaciones construidas con distintas tecnologías Características de las aplicaciones empresariales (y 2) Tipo de interfaz De entorno de ventanas (clientes standalone): normalmente sólo tiene sentido en intranets Web: En Internet y en intranets Separación clara entre la interfaz gráfica y el modelo Modelo: encapsula la lógica de negocio Ejemplo => aplicación bancaria Modelo: conjunto de clases que nos permiten: crear cuentas, destruirlas, encontrarlas por distintos criterios, hacer transferencias bancarias, etc. El modelo debería ser reusable con distintas interfaces gráficas En el ejemplo de la aplicación bancaria podría haber dos clientes: uno web y otro standalone Arquitecturas multi-capa

Una aplicación con clientes standalone Arquitectura en dos capas (1) Una aplicación con clientes standalone Arquitectura en dos capas (y 2) Problema Cambios en la implementación de la capa modelo => recompilación de toda la aplicación y reinstalación en clientes Cambios de drivers de acceso a la BD Cambios en la lógica del modelo Cambio de tipo de BD Solución Modelo en servidor intermedio Un cambio en la implementación del modelo sólo afecta al servidor Clientes standalone Sólo disponen de la interfaz gráfica Acceden al servidor que implementa el modelo

Una aplicación con clientes standalone Arquitectura en tres capas Una aplicación puramente web Arquitectura en tres capas

Una aplicación con distintos tipos de clientes Arquitectura en 4 capas Comentarios acerca de las anteriores arquitecturas Cómo conseguir escalabiliad y disponibilidad? Replicando los servidores de aplicaciones web y del model en máquinas distintas Un comentarios sobre las aplicaciones puramente web La arquitectura en 3 capas es la más usada La arquitectura en 4 capas puede ser más escalable

Qué es J2EE? J2EE es un conjunto de especificaciones de APIs Java para la construcción de aplicaciones empresariales La mayor parte de las abstracciones de las APIs corresponden a interfaces y clases abstractas Existen múltiples implementaciones de distintos fabricantes, incluso algunas OpenSource Una aplicación construida con J2EE no depende de una implementación particular Sitio central: http://java.sun.com/j2ee Es necesario distinguir entre J2ME (Java 2 Platform, Micro Edition) Para dispositivos (ej.: PDAs) J2SE (Java 2 Platform, Standard Edition) Para aplicaciones y applets J2EE (Java 2 Platform, Enterprise Edition) Se apoya en J2SE Con el paso del tiempo, algunas APIs de J2EE se pasaron (y quizás se sigan pasando) a J2SE Principales tecnologías proporcionadas por J2EE (1) JDBC (J2SE) API para acceso a bases de datos relacionales El programador puede lanzar queries (consulta,actualización, inserción y borrado), agrupar queries en transacciones, etc.

Principales tecnologías proporcionadas por J2EE (2) Tecnologías web (J2EE) APIs: Servlets, páginas JSP y JSTL Permiten implementar la interfaz gráfica de una aplicación web Principales tecnologías proporcionadas por J2EE (3) Componentes EJB (J2EE) Entity Beans Permiten implementar fácilmente los objetos persistentes del modelo Representan una alternativa a JDBC (idealmente), permitiendo construir una capa modelo que no depende de un tipo particular de BD (relacional, objetual) Session Beans Permiten implementar fachadas del modelo Se definen con interfaz remota si interesa separación física entre interfaz gráfica y modelo (solución más reusable) Se definen con interfaz local en otro caso Permiten especificar las operaciones que son transaccionales, así como las que requieren seguridad, de forma declarativa Facilidad de desarrollo

Principales tecnologías proporcionadas por J2EE (4) Componentes EJB (cont) Principales tecnologías proporcionadas por J2EE (5) Componentes EJB (cont)

Principales tecnologías proporcionadas por J2EE (6) APIs para XML XML (http://www.w3c.org) Lenguaje de tags (similar en sintaxis a HTML) Es extensible (no dispone de tags predefinidos) Permite expresar datos y no aspecto visual (a diferencia de HTML) Ejemplo <?xml version= 1.0 > <forecasts> <city name="cor"> <forecast type="sunny" day="1 month= 10 year= 2001"/> <forecast type="foggy" day="2 month= 10 year= 2001"/> </city> <city name="lug"> <forecast type="rainy" day="1 month= 10 year= 2001"/> <forecast type="rainy" day="2 month= 10 year= 2001"/> </city>... </forecasts> Principales tecnologías proporcionadas por J2EE (y 7) APIs para XML (cont) Campos de aplicación Intercambio de datos entre aplicaciones heterogéneas Configuración de aplicaciones Generación de aspecto visual (ej.: HTML) a partir de los datos Bases de datos... y muchos otros JAXP (J2SE) API Java para procesamiento de documentos XML APIs para integración de aplicaciones heterogéneas CORBA (API básica en J2SE) y Servicios Web (J2EE)

Implementaciones de J2EE (1) Existen un gran número de fabricantes que venden servidores de aplicaciones certificados J2EE Lista completa en http://java.sun.com/j2ee/compatibility.html Algunos ejemplos BEA WebLogic Server: http://www.bea.com Inprise/Borland AppServer: http://www.inprise.com IBM WebSphere ApplicationServer: http://www.ibm.com IONA iportal Application Server: http://www.iona.com Sun ONE Application Server: http://www.sun.com Macromedia JRun Server: http://www.macromedia.com Oracle Application Server: http://www.oracle.com Sun Java 2 SDK Enterprise Edition: http://java.sun.com/j2ee/download.html Es la implementación de referencia y no es eficiente! Es especialmente útil para los fabricantes de servidores J2EE Implementaciones de J2EE (y 2) Implementaciones OpenSource Tomcat (subproyecto de Jakarta): http://jakarta.apache.org/tomcat Contenedor de aplicaciones web JBoss: http://www.jboss.org Evidan JOnAS: http://www.evidian.com/jonas OpenEJB: http://openejb.sourceforge.net Portabilidad Si una aplicación sólo usa las APIs estándares => es posible instalarla sobre cualquier servidor de aplicaciones conforme a J2EE No se depende de un fabricante!

Alternativas a J2EE (1).NET http://www.microsoft.com/net Define un Common Language Runtime (CLR) y un IL (Intermediate Language) al que todos los lenguajes conformes a.net compilan Idea similar a la máquina virtual de Java y a los bytecodes generados por el compilador de Java, respectivamente Lenguajes Visual Basic.NET, Visual C++.NET, Visual C#.NET, Visual J#.NET, etc. Tecnologías ADO.NET, ASP.NET, COM+: similares en concepto a JDBC, JSP y EJB, respectivamente Son una mejora de sus versiones anteriores (ADO, ASP, COM, etc.) APIs para XML Un solo fabricante! Pero es Microsoft... Menos maduro que J2EE Alternativas a J2EE (y 2) LAMP http://www.onlamp.com Linux + Apache + MySQL +Perl/PHP/Python Perl/PHP/Python Lenguajes tipo Script Acceso a base de datos Tecnologías web Soporte para XML Requiere menos conocimientos técnicos que J2EE o.net Y la calidad del software?

Tecnologías de integración de aplicaciones (1) Cómo podemos interconectar dos aplicaciones construidas con distintas tecnologías? Una aplicación Java que quiere acceder a un servidor C++ Una aplicación.net que quiere acceder a una aplicación Java Tecnologías de integración de aplicaciones CORBA Servicios Web Tecnologías de integración de aplicaciones (2) CORBA Tecnología de objetos distribuidos que permite la invocación de métodos de objetos remotos (como si fuesen objetos locales) sin que importe la tecnología que usen cliente y servidor En realidad, el cliente usa un Proxy del objeto remoto Protocolo de comunicación: IIOP Binario Estandarizado por OMG (http://www.omg.org) Éxito comercial en 1995 El OMG ha estandarizado numerosos servicios CORBA Nombres, Seguridad, Transacciones, Eventos, etc. Existen múltiples implementaciones comerciales y OpenSource, disponibles para los lenguajes y sistemas operativos más usuales

Tecnologías de integración de aplicaciones (3) CORBA (cont) CORBA ha sido y continúa siendo una buena tecnología para abordar integraciones complejas en intranets Sin embargo, no ha tenido éxito para integración de aplicaciones en Internet Existen firewalls que no reconocen IIOP Hay fabricantes que venden proxies de IIOP, pero no se puede esperar que todas las empresas que han adoptado las tecnologías de Microsoft los compren Microsoft no fabrica implementaciones de CORBA Hay terceros que sí lo hacen (ej.: Iona, Inprise, etc.), pero no se puede esperar que todas las empresas que han adoptado las tecnologías de Microsoft usen CORBA Para abordar integraciones de aplicaciones en Internet es preciso usar una tecnología que cuente con el apoyo de todos los fabricantes de tecnología (Sun, Oracle, IBM, Microsoft, etc.) Tecnologías de integración de aplicaciones (y 4) Servicios Web Conjunto de tecnologías que usan XML para intercambio de información en un entorno distribuido Éxito comercial en 2000/2001 Protocolo de comunicación: SOAP Estandarizado por W3C (http://www.w3c.org) Protocolo basado en XML para el intercambio de información Conceptualmente permite enviar peticiones/respuestas en XML (normalmente sobre HTTP) Existen APIs, para los lenguajes más usuales Disponible para J2EE,.NET y LAMP Buena solución para integración de aplicaciones en Internet Todos los firewalls reconocen HTTP Todos los fabricantes de tecnología proporcionan soporte para Servicios Web Las integraciones complejas en intranets suelen requerir funcionalidad que todavía no soportan los Servicios Web Ej.: Transacciones

Patrones arquitectónicos Model-View-Controller ylayers(1) Cómo se debe diseñar una aplicación empresarial para que sea mantenible y contenga partes reusables? Debería estar diseñada siguiendo la arquitectura que fijan los patrones arquitectónicos Model-View-Controller (MVC) y Layers F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, Pattern-Oriented Software Architecture: A System Of Patterns, John Wiley and Sons, 1996. Un patrón arquitectónico es un patrón de alto nivel que fija la arquitectura global de una aplicación Posteriormente, el diseño hará uso de patrones de diseño para resolver problemas específicos Patrones arquitectónicos Model-View-Controller ylayers(2) Patrón arquitectónico MVC Separación clara entre el modelo (lógica de negocio) y la vista (interfaz gráfica), gracias a un controlador que los mantiene desacoplados Ventajas: El modelo es reusable con distintas vistas (ej.: una vista web y una con interfaz de ventanas) División clara de trabajo entre los miembros de un equipo, que estará formado por personas con distintos niveles de especialización Patrón arquitectónico Layers El software está estructurado en capas Permite ocultar las tecnologías que usa nuestro software Cuando hay un cambio de versión en una de ellas (o incluso se reemplaza por otra distinta), no tiene impacto sobre las capas superiores División clara de trabajo entre los miembros de un equipo Dará soporte a la arquitectura MVC Ej.: tanto la vista como el controlador nunca conocerán las tecnologías que usa la implementación del modelo

Patrones arquitectónicos Model-View-Controller ylayers(y 3) En esta asignatura nos concentraremos en J2EE y aprenderemos a diseñar aplicaciones empresariales con Arquitectura {MVC + Layers} + múltiples patrones de diseño Fuentes Core J2EE Patterns EJB Design Patterns Java BluePrints (http://java.sun.com/blueprints) La descripción de los anteriores patrones usa EJB, sin embargo gran parte de ellos son aplicables cuando se usa JDBC Dos grandes ejemplos: MiniBank y MiniPortal, Iremos viendo el diseño del modelo, vista y controlador a medida que avancemos Proporcionan varias versiones de la implementación de la capa modelo (con JDBC y con EJB), sin que ello afecte a la vista y al controlador