tema 1: introducción a j2ee - tic.udc.esfbellas/teaching/is-2002-2003/tema1.pdf · n en el ejemplo...

29
Tema 1: Introducción a J2EE

Upload: nguyentuong

Post on 11-Feb-2019

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Tema 1: Introducción a J2EE

Page 2: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Índice

n Arquitecturas características de las aplicaciones empresariales

n Tecnologías J2EE

n Alternativas a J2EE

n Tecnologías de integración de aplicaciones

n Patrones arquitectónicos Model-View-Controller y Layers

Page 3: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Características de las aplicaciones empresariales (1)

n Acceso a bases de datos (BD)n Normalmente con BD relacionales

n Transaccionalesn Propiedades ACID (Atomicity-Consistency-Isolation-Durability)

n Escalablesn Deberían poder soportar más carga de trabajo sin necesidad de

modificar el software (sólo añadir más máquinas)

n Disponibilidadn Idealmente no deben dejar de prestar servicio

n Segurasn No todos los usuarios pueden acceder a la misma funcionalidad

n Integraciónn Es preciso integrar aplicaciones construidas con distintas

tecnologías

Page 4: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Características de las aplicaciones empresariales (y 2)

n Tipo de interfazn De entorno de ventanas (clientes standalone): normalmente

sólo tiene sentido en intranetsn Web: En Internet y en intranets

n Separación clara entre la interfaz gráfica y el modelon Modelo: encapsula la lógica de negocion Ejemplo => aplicación bancaria

n Modelo: conjunto de clases que nos permiten: crear cuentas, destruirlas, encontrarlas por distintos criterios, hacer transferencias bancarias, etc.

n El modelo debería ser reusable con distintas interfaces gráficasn En el ejemplo de la aplicación bancaria podría haber dos

clientes: uno web y otro standalone

n Arquitecturas multi-capa

Page 5: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Una aplicación con clientes standaloneArquitectura en dos capas (1)

Intranet

Int.gráfica Modelo

Capa 1 Capa 2

Int.gráfica Modelo

Int.gráfica Modelo

Base de datos

Page 6: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Una aplicación con clientes standaloneArquitectura en dos capas (y 2)

n Probleman Cambios en la implementación de la capa modelo =>

recompilación de toda la aplicación y reinstalación en clientesn Cambios de drivers de acceso a la BDn Cambios en la lógica del modelon Cambio de tipo de BD

n Soluciónn Modelo en servidor intermedio

n Un cambio en la implementación del modelo sólo afecta al servidor

n Clientes standalonen Sólo disponen de la interfaz gráfican Acceden al servidor que implementa el modelo

Page 7: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Una aplicación con clientes standaloneArquitectura en tres capas

Intranet

Capa 2 Capa 3Capa 1

Int.gráfica

Int.gráfica

Int.gráfica

Modelo

Serv. modelo

Base de datos

Page 8: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Una aplicación puramente webArquitectura en tres capas

Internet/Itranet

Capa 2 Capa 3

NavegadorInt.web

Modelo

Navegador

Capa 1

Navegador

Base de datos

Serv. ap. web

Page 9: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Una aplicación con distintos tipos de clientesArquitectura en 4 capas

Internet/Intranet

Capa 2 Capa 3 Capa 4

Int.gráfica

aplicaciónstandalone

Int.web Modelo

Navegador

Navegador

Capa 1

Base de datos

Serv. ap. web Serv. modelo

Page 10: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Comentarios acerca de las anteriores arquitecturas

n ¿ Cómo conseguir escalabiliad y disponibilidad ?n Replicando los servidores de aplicaciones web y del modelo

en máquinas distintas

n Un comentarios sobre las aplicaciones puramente webn La arquitectura en 3 capas es la más usadan La arquitectura en 4 capas puede ser más escalable

Page 11: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

¿ Qué es J2EE ?

n J2EE es un conjunto de especificaciones de APIs Java para la construcción de aplicaciones empresarialesn La mayor parte de las abstracciones de las APIs corresponden a

interfaces y clases abstractasn Existen múltiples implementaciones de distintos fabricantes, incluso

algunas OpenSource n Una aplicación construida con J2EE no depende de una

implementación particularn Sitio central: http://java.sun.com/j2ee

n Es necesario distinguir entren J2ME (Java 2 Platform, Micro Edition)

n Para dispositivos (ej.: PDAs)n J2SE (Java 2 Platform, Standard Edition)

n Para aplicaciones y appletsn J2EE (Java 2 Platform, Enterprise Edition)

n Se apoya en J2SEn Con el paso del tiempo, algunas APIs de J2EE se pasaron (y quizás se

sigan pasando) a J2SE

Page 12: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Principales tecnologías proporcionadas por J2EE (1)

n JDBC (J2SE)n API para acceso a bases de datos relacionalesn El programador puede lanzar queries (consulta,

actualización, inserción y borrado), agrupar queries en transacciones, etc.

Page 13: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Principales tecnologías proporcionadas por J2EE (2)

n Tecnologías web (J2EE)n APIs: Servlets, páginas JSP y JSTLn Permiten implementar la interfaz gráfica de una aplicación

web

BDAplicaciones

web (int. gráf. + modelo )

Contenedor deaplicaciones web

NavegadorJDBC

Page 14: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Principales tecnologías proporcionadas por J2EE (3)

n Componentes EJB (J2EE)n Entity Beans

n Permiten implementar fácilmente los objetos persistentes del modelo

n Representan una alternativa a JDBC (idealmente), permitiendo construir una capa modelo que no depende de un tipo particular de BD (relacional, objetual)

n Session Beansn Permiten implementar fachadas del modelon Se definen con interfaz remota si interesa separación física

entre interfaz gráfica y modelo (solución más reusable)n Se definen con interfaz local en otro caso

n Permiten especificar las operaciones que son transaccionales, así como las que requieren seguridad, de forma declarativan Facilidad de desarrollo

Page 15: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Principales tecnologías proporcionadas por J2EE (4)

n Componentes EJB (cont)

BDNavegador Componentes

EJB (modelo)

Contenedor decomponentes EJB

Aplicaciones web (int. gráf.)

Contenedor deaplicaciones web

Ap. Standalone(int. gráfica)

Page 16: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Principales tecnologías proporcionadas por J2EE (5)

n Componentes EJB (cont)

BDNavegador

Componentes EJB (modelo)

Aplicaciones web (int. gráf.)

Contenedor J2EE

Page 17: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Principales tecnologías proporcionadas por J2EE (6)

n APIs para XMLn XML (http://www.w3c.org)

n Lenguaje de tags (similar en sintaxis a HTML)n Es extensible (no dispone de tags predefinidos)n Permite expresar datos y no aspecto visual (a diferencia de HTML)

n 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>

Page 18: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Principales tecnologías proporcionadas por J2EE (y 7)

n APIs para XML (cont)n Campos de aplicación

n Intercambio de datos entre aplicaciones heterogéneasn Configuración de aplicacionesn Generación de aspecto visual (ej.: HTML) a partir de los datosn Bases de datosn ... y muchos otros ...

n JAXP (J2SE)n API Java para procesamiento de documentos XML

n APIs para integración de aplicaciones heterogéneasn CORBA (API básica en J2SE) y Servicios Web (J2EE)

Page 19: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Implementaciones de J2EE (1)

n Existen un gran número de fabricantes que venden servidores de aplicaciones certificados J2EEn Lista completa en

http://java.sun.com/j2ee/compatibility.htmln Algunos ejemplos

n BEA WebLogic Server: http://www.bea.comn Inprise/Borland AppServer: http://www.inprise.comn IBM WebSphere ApplicationServer: http://www.ibm.comn IONA iPortal Application Server: http://www.iona.comn Sun ONE Application Server: http://www.sun.comn Macromedia JRun Server: http://www.macromedia.comn Oracle Application Server: http://www.oracle.comn Sun Java 2 SDK Enterprise Edition:

http://java.sun.com/j2ee/download.htmln ¡ Es la implementación de referencia y no es eficiente !n Es especialmente útil para los fabricantes de servidores J2EE

Page 20: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Implementaciones de J2EE (y 2)

n Implementaciones OpenSourcen Tomcat (subproyecto de Jakarta):

http://jakarta.apache.org/tomcatn Contenedor de aplicaciones web

n JBoss: http://www.jboss.orgn Evidan JOnAS: http://www.evidian.com/jonasn OpenEJB: http://openejb.sourceforge.net

n Portabilidadn Si una aplicación sólo usa las APIs estándares => es posible

instalarla sobre cualquier servidor de aplicaciones conforme a J2EE

n ¡ No se depende de un fabricante !

Page 21: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Alternativas a J2EE (1)

n .NETn http://www.microsoft.com/netn Define un Common Language Runtime (CLR) y un IL (Intermediate

Language) al que todos los lenguajes conformes a .NET compilann Idea similar a la máquina virtual de Java y a los bytecodes generados

por el compilador de Java, respectivamente

n Lenguajesn Visual Basic .NET, Visual C++ .NET, Visual C# .NET, Visual J#

.NET, etc.n Tecnologías

n ADO.NET, ASP.NET, COM+: similares en concepto a JDBC, JSP y EJB,respectivamente

n Son una mejora de sus versiones anteriores (ADO, ASP, COM, etc.)n APIs para XML

n ¡ Un solo fabricante !n Pero es Microsoft ...

n Menos maduro que J2EE

Page 22: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Alternativas a J2EE (y 2)

n LAMPn http://www.onlamp.comn Linux + Apache + MySQL +Perl/PHP/Pythonn Perl/PHP/Python

n Lenguajes tipo Scriptn Acceso a base de datosn Tecnologías webn Soporte para XML

n Requiere menos conocimientos técnicos que J2EE o .NETn ¿ Y la calidad del software ?

Page 23: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Tecnologías de integración de aplicaciones (1)

n ¿ Cómo podemos interconectar dos aplicaciones construidas con distintas tecnologías ?n Una aplicación Java que quiere acceder a un servidor C++n Una aplicación .NET que quiere acceder a una aplicación

Java

n Tecnologías de integración de aplicacionesn CORBAn Servicios Web

Page 24: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Tecnologías de integración de aplicaciones (2)

n CORBAn 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 servidorn En realidad, el cliente usa un Proxy del objeto remoto

n Protocolo de comunicación: IIOPn Binario

n Estandarizado por OMG (http://www.omg.org)n Éxito comercial en 1995

n El OMG ha estandarizado numerosos servicios CORBAn Nombres, Seguridad, Transacciones, Eventos, etc.

n Existen múltiples implementaciones comerciales y OpenSource, disponibles para los lenguajes y sistemas operativos más usuales

ObjetoCORBA

IIOPCliente Servidor

Page 25: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Tecnologías de integración de aplicaciones (3)

n CORBA (cont)n CORBA ha sido y continúa siendo una buena tecnología para

abordar integraciones complejas en intranetsn Sin embargo, no ha tenido éxito para integración de

aplicaciones en Internetn Existen firewalls que no reconocen IIOP

n 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

n Microsoft no fabrica implementaciones de CORBAn 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

n 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.)

Page 26: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Tecnologías de integración de aplicaciones (y 4)

n Servicios Webn Conjunto de tecnologías que usan XML para intercambio de

información en un entorno distribuidon Éxito comercial en 2000/2001

n Protocolo de comunicación: SOAPn Estandarizado por W3C (http://www.w3c.org)n Protocolo basado en XML para el intercambio de información n Conceptualmente permite enviar peticiones/respuestas en XML

(normalmente sobre HTTP)

n Existen APIs, para los lenguajes más usualesn Disponible para J2EE, .NET y LAMP

n Buena solución para integración de aplicaciones en Internetn Todos los firewalls reconocen HTTPn Todos los fabricantes de tecnología proporcionan soporte para Servicios

Web

n Las integraciones complejas en intranets suelen requerir funcionalidad que todavía no soportan los Servicios Webn Ej.: Transacciones

Page 27: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Patrones arquitectónicos Model-View-Controller y Layers (1)

n ¿ Cómo se debe diseñar una aplicación empresarial para que sea mantenible y contenga partes reusables ?n Debería estar diseñada siguiendo la arquitectura que fijan

los patrones arquitectónicos Model-View-Controller (MVC) y Layersn F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal,

Pattern-Oriented Software Architecture: A System Of Patterns, John Wiley and Sons, 1996.

n Un patrón arquitectónico es un patrón de alto nivel que fija la arquitectura global de una aplicación

n Posteriormente, el diseño hará uso de patrones de diseño para resolver problemas específicos

Page 28: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Patrones arquitectónicos Model-View-Controller y Layers (2)

n Patrón arquitectónico MVCn Separación clara entre el modelo (lógica de negocio) y la vista

(interfaz gráfica), gracias a un controlador que los mantiene desacoplados

n Ventajas: n El modelo es reusable con distintas vistas (ej.: una vista web y una con

interfaz de ventanas)n División clara de trabajo entre los miembros de un equipo, que estará

formado por personas con distintos niveles de especialización

n Patrón arquitectónico Layersn El software está estructurado en capasn Permite ocultar las tecnologías que usa nuestro software

n 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

n División clara de trabajo entre los miembros de un equipon Dará soporte a la arquitectura MVC

n Ej.: tanto la vista como el controlador nunca conocerán las tecnologías que usa la implementación del modelo

Page 29: Tema 1: Introducción a J2EE - tic.udc.esfbellas/teaching/is-2002-2003/Tema1.pdf · n En el ejemplo de la aplicación bancaria podría haber dos ... n La arquitectura en 3 capas es

Patrones arquitectónicos Model-View-Controller y Layers (y 3)

n En esta asignatura nos concentraremos en J2EE y aprenderemos a diseñar aplicaciones empresariales conn Arquitectura {MVC + Layers} + múltiples patrones de diseño

n Fuentesn Core J2EE Patternsn EJB Design Patternsn Java BluePrints (http://java.sun.com/blueprints)

n La descripción de los anteriores patrones usa EJB, sin embargo gran parte de ellos son aplicables cuando se usa JDBC

n Dos grandes ejemplos: MiniBank y MiniPortal, n Iremos viendo el diseño del modelo, vista y controlador a

medida que avancemosn Proporcionan varias versiones de la implementación de la capa

modelo (con JDBC y con EJB), sin que ello afecte a la vista y alcontrolador