Professional Documents
Culture Documents
ndice Arquitecturas caractersticas de las aplicaciones empresariales. Tecnologas Java EE. Alternativas a Java EE. Patrones Arquitectnicos.
Model-View-Controller. Layers.
Referencias.
Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 2
Transaccionales.
Propiedades ACID: Atomicity (atomicidad), Consistency (coherencia), Isolation (aislamiento), Durability (permanencia).
Escalables.
Deberan poder soportar ms carga de trabajo sin necesidad de modificar el software (slo aadir ms mquinas).
Disponibilidad.
Idealmente no deben dejar de prestar servicio.
Seguras.
No todos los usuarios pueden acceder a la misma funcionalidad.
Integracin.
Es preciso integrar aplicaciones construidas con distintas tecnologas.
Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 3
Interfaz grfica 1 Gestor de Eventos eventos de usuario Acciones a Ejecutar Interfaz grfica m casos de uso
cu2
...
cun
Modelo
Base de Datos
Arquitecturas multi-capa.
Introduccin al Desarrollo de Aplicaciones Empresariales 4
Diciembre 2008
Capa 1
Int. Modelo grfica
Capa 2
Base de datos
Intranet
Diciembre 2008
Solucin:
Modelo en servidor intermedio.
Un cambio en la implementacin del modelo slo afecta al servidor.
Clientes standalone.
Slo disponen de la interfaz grfica. Acceden al servidor que implementa el modelo.
Diciembre 2008
Capa 2
Modelo Serv. modelo
Capa 3
Base de datos
Int. grfica
Intranet
Int. grfica
Diciembre 2008
Capa 2
Int. Modelo web Serv. ap. web
Capa 3
Base de datos
Navegador
Internet/ Intranet
Navegador
Diciembre 2008
Capa 2
Capa 3
Capa 4
Navegador
Internet/ Intranet
Navegador
Diciembre 2008
Arquitectura en tres o cuatro capas Para una aplicacin web, la arquitectura en tres capas es ms eficiente.
En la arquitectura en tres capas, la comunicacin entre la interfaz grfica y el modelo es local. En la arquitectura en cuatro capas, la comunicacin entre la interfaz grfica y el modelo es remota.
Diciembre 2008
10
Qu es Java EE ?
Java EE es un conjunto de especificaciones de APIs Java para la construccin de aplicaciones empresariales.
La mayor parte de las abstracciones de las APIs corresponden a interfaces y clases abstractas. Existen mltiples implementaciones de distintos fabricantes, incluso algunas OpenSource. Una aplicacin construida con Java EE no depende de una implementacin particular. Sitio central: http://java.sun.com/javaee
API Java SE 6
Proporciona un entorno para el desarrollo de aplicaciones Java de escritorio y applets. Contiene un compilador, herramientas, entornos de ejecucin y APIs Java que permiten escribir, probar y ejecutar applets y aplicaciones.
Diciembre 2008
12
Capas y componentes:
Los componentes de la capa cliente se ejecutan en la mquina cliente. Los componentes de la capa Web se ejecutan dentro del servidor Java EE. Los componentes de la capa modelo se ejecutan dentro del servidor Java EE. El software de la capa EIS (Enterprise information system) se ejecuta en el servidor EIS.
Una aplicacin Java EE suele estar compuesta por tres o cuatro capas.
Cuando la capa Web y la capa modelo se ejecutan en el mismo Servidor Java EE se considera que est compuesta por tres capas porque estn distribuidas en tres mquinas: cliente, servidor Java EE y BD.
Diciembre 2008
13
Diciembre 2008
14
Contenedores Java EE (1) Cada uno de los componentes de Java EE se ejecuta en un contenedor apropiado. Un contenedor es el entorno de ejecucin para un componente, que le proporciona acceso a una serie de servicios, entre los que se encuentran:
Seguridad. Gestin de transacciones. Directorio de nombres JNDI. Conectividad remota.
De esta forma el desarrollador de componentes se centra en la resolucin de los problemas de lgica de negocio. Para que un componente pueda ser ejecutado, debe de ser previamente desplegado (deploy) en el contenedor correspondiente de un servidor Java EE.
Diciembre 2008
15
Diciembre 2008
16
API Java EE 5
Se basa en Java SE y proporciona servicios, herramientas y APIs adicionales para soportar el desarrollo simplificado de aplicaciones empresariales. Mayo 2006
Diciembre 2008
17
Parte servidora:
Componentes Web basados en tecnologas Java Servlet, JavaServer Faces, y JavaServer Pages (JSP) que se ejecutan dentro de un contenedor Web. Componentes EJB (de lgica de negocio) que se ejecutan dentro contenedor EJB.
Los componentes Java EE se despliegan en un servidor Java EE que es el encargado de ejecutarlos y gestionarlos.
Introduccin al Desarrollo de Aplicaciones Empresariales 18
Diciembre 2008
Componentes/Tecnologas Java EE (2) Acceso a Bases de Datos: API JDBC (Java SE). Integracin de Aplicaciones Heterogneas.
API XML (Java SE). Servicios Web (Java EE).
Diciembre 2008
19
Diciembre 2008
20
Diciembre 2008
21
Diciembre 2008
22
Conceptos JDBC:
El programador siempre trabaja contra los paquetes java.sql y javax.sql. Para poder conectarse a la BD y lanzar queries, es preciso tener un driver adecuado a ella.
Un driver suele ser un fichero .jar que contiene una implementacin de todas las interfaces de la API de JDBC. Nuestro cdigo nunca depende del driver, dado que siempre trabaja contra los paquetes java.sql y javax.sql.
Diciembre 2008
23
<<use>>
<<use>>
java.sql
javax.sql
BD
<<access>>
Driver JDBC
Diciembre 2008
24
BD
<<access>>
25
DriverM anager
+ m anages
0..n
Diciembre 2008
26
Solucin (patrones):
Usaremos interfaces para el acceso a BD, de manera que se puedan construir adaptadores para distintas BDs, proporcionando implementaciones por defecto con SQL estndar cuando sea posible.
Modelo peticin/respuesta. No tiene estado. Al igual que SMTP, es un protocolo ASCII, que usa MIME para transferir informacin no ASCII. Navegador
HTML HTTP TCP/IP
Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 28
Mvil
WML WAP
Gateway
WML HTTP TCP/IP
Diciembre 2008
29
Deberan poder usarse directamente las herramientas de diseo de pginas web. Las actualizaciones al aspecto grfico no deben provocar un rearranque del servidor.
Diciembre 2008
30
Diciembre 2008
31
Una pgina JSP (Java Server Page) es un tipo especial de servlet (javax.servlet.jsp y javax.servlet.jsp.tagext) orientado a generar el texto de la interfaz grfica.
Tiene el aspecto de una pgina HTML. Puede incluir scriptlets (scripts) para generar HTML dinmicamente. Tpicamente los scriptlets se escriben en Java.
JSTL (JSP Standard Tag Library) es una librera estndar de tags que pueden utilizarse en pginas JSP.
Diciembre 2008
32
Enfoque declarativo.
Se declaran las clases y atributos que son persistentes. Se declaran las operaciones que son transaccionales y los aspectos de seguridad.
Facilidad de desarrollo.
Al menos con EJB 3.0 ...
Diciembre 2008
33
BD
Diciembre 2008
34
Arquitectura multi-capa (2) Arquitectura de una aplicacin web con un contenedor completo Java EE (tres capas).
Contenedor Java EE
Navegador Aplicaciones web (int. grf.) Componentes EJB (modelo)
BD
Diciembre 2008
35
Arquitectura multi-capa (3) Arquitectura de una aplicacin web con un contenedor web y un contenedor de EJB (quiz de distinto fabricante).
Si los dos contenedores corren en la misma mquina fsica, se puede considerar como una arquitectura en tres capas. En general, es mejor la alternativa anterior.
Diciembre 2008
36
Arquitectura multi-capa (4) Arquitectura de una aplicacin web con un contenedor web (3 capas).
Acceso a BD a travs de API JDBC.
Diciembre 2008
37
Ejemplo:
<?xml version=1.0> <forecasts> <city name="COR"> <forecast type="sunny" <forecast type="foggy" </city> <city name="LUG"> <forecast type="rainy" <forecast type="rainy" </city> ... </forecasts>
Diciembre 2008
38
XML (2)
Campos de aplicacin (entre muchos otros):
Intercambio de datos entre aplicaciones heterogneas. Configuracin de aplicaciones. Generacin de aspecto visual (ej.: HTML, PDF) a partir de los datos. Bases de datos.
Simple API for XML. Es un pequeo framework basado en eventos. El programador proporciona uno o varios objetos callback a los que el parser llamar cada vez que ocurra un evento de inters (apertura de una etiqueta, cierre de una etiqueta, un error, etc.).
DOM.
Document Object Model. Construye una representacin (un rbol) en memoria del documento. El programador puede acceder a los datos del documento recorriendo el rbol.
Diciembre 2008
39
Diciembre 2008
40
Lo que no est estandarizado es cmo crear instancias de los parsers. JAXP - Java API for XML Processing (Java SE).
API Java para procesamiento de documentos XML. Incluido en Java SE 1.4. Familia de paquetes java.xml.{parsers, transform}.
Diciembre 2008
41
Diciembre 2008
42
Un Servicio Web es un servicio ofrecido a travs de la web, que usa los anteriores protocolos y APIs para recibir peticiones y enviar las correspondientes respuestas. Enfoque REST: peticiones directas HTTP, respuestas XML.
Diciembre 2008
43
Servicios Web (2) APIs para Servicios Web: Integracin de aplicaciones heterogneas.
Tecnologas basadas en XML para la integracin de aplicaciones heterogneas. Un servicio Web ofrece un conjunto de operaciones que pueden ser invocadas por clientes remotos, independientemente de la tecnologa en la que estn implementados el servidor y el cliente. Protocolo de comunicacin: SOAP
Estandarizado por W3C (http://www.w3c.org). Utiliza XML para el intercambio de informacin. Conceptualmente permite enviar peticiones/respuestas en XML (normalmente sobre HTTP).
Definicin de la interfaz del servicio: WSDL. Existen APIs para los lenguajes ms usuales.
Disponible para Java EE, .NET y LAMP.
SOAP Cliente Servicio Web
Servidor
Diciembre 2008
44
Implementaciones de Java EE (1) Existen un gran nmero de fabricantes que venden servidores de aplicaciones certificados Java EE.
Lista completa en http://java.sun.com/javaee/overview/compatibility.jsp Algunos ejemplos.
BEA WebLogic Server: http://www.bea.com IBM WebSphere ApplicationServer: http://www.ibm.com Sun Java System Application Server: http://www.sun.com Oracle Application Server: http://www.oracle.com
Diciembre 2008
45
JBoss: http://www.jboss.com
Contenedor Java EE.
GlassFish: https://glassfish.dev.java.net
Contenedor Java EE.
OpenEJB: http://openejb.codehaus.org
Contenedor de EJB.
Geronimo: http://geronimo.apache.org
Contenedor Java EE.
Portabilidad.
Si una aplicacin slo usa las APIs estndares => es posible instalarla sobre cualquier servidor de aplicaciones conforme a Java EE. No se depende de un fabricante !
Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 46
Lenguajes:
Visual Basic .NET, Visual C++ .NET, Visual C# .NET, Visual J# .NET, etc.
Tecnologas:
ADO.NET, ASP.NET, COM+: similares en concepto a JDBC, JSP y EJB (parcialmente), respectivamente. Son una mejora de sus versiones anteriores (ADO, ASP, COM, etc.). APIs para XML y servicios Web.
Implementaciones:
Principalmente la de Microsoft. Tambin Mono (Open Source): http://www.mono-project.com
Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 47
Requiere menos conocimientos tcnicos que Java EE o .NET. Y la calidad del software ?
Diciembre 2008
48
Patrones arquitectnicos MVC y Layers (1) Cmo se debe disear una aplicacin empresarial para que sea mantenible y contenga partes reutilizables?
Debera estar diseada siguiendo la arquitectura que fijan los patrones arquitectnicos 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 patrn arquitectnico es un patrn de alto nivel que fija la arquitectura global de una aplicacin. Posteriormente, el diseo har uso de patrones de diseo para resolver problemas especficos.
Diciembre 2008
49
Diciembre 2008
50
Vista
Controlador
Modelo
Diciembre 2008
52
Referencias (2)
Libros (cont):
T. Husted, C. Dumoulin, G. Franciscus, D. Winterfeldt, Struts in Action, Manning, 2003. R Patel, G. Brose, M. Silverman, Mastering Enterprise Java Beans, 3.0, John Wiley & Sons, 2006. B. Burke, R. Monson-Haefel, Enterprise JavaBeans 3.0, 5th edition, O. Reilly, 2006. R. Andrew, D. Shafer, HTML Utopia: Designing Without Tables Using CSS, Sitepoint Pty Ltd, 2006. J. Zeldman, Designing with Web Standards, 2th edition, New Riders, 2006. J. McGovern, S. Tyagi, M. E. Stevens, S. Mathew, Java Web Services Architecture, Morgan Kaufmann, 2003.
Diciembre 2008
53
Diciembre 2008
54