You are on page 1of 55

UNIVERSIDADE DA CORUA Departamento de Tecnoloxas da Informacin e as Comunicacins (TIC)

Introduccin al Desarrollo de Aplicaciones Empresariales

Alberto Pan Bermdez apan@udc.es Diciembre 2008

[Basado en la charla de Juan Raposo Santiago, curso 2007/08 (http://www.tic.udc.es/~jrs)]

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

Caractersticas de las aplicaciones empresariales (1) Acceso a bases de datos (BD).


Normalmente con BD relacionales.

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

Caractersticas de las aplicaciones empresariales (2)


Tipo de interfaz:
De entorno de ventanas (clientes standalone).
Normalmente slo tiene sentido en intranets.

Web: En Internet y en intranets.

Separacin clara entre la interfaz grfica y el modelo.


Modelo: encapsula la lgica de negocio. El modelo debera ser reusable con distintas interfaces grficas.
cu1

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

Una aplicacin con clientes standalone

Arquitectura en dos capas (1)

Capa 1
Int. Modelo grfica

Capa 2
Base de datos

Intranet

Int. Modelo grfica

Int. Modelo grfica

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

Una aplicacin con clientes standalone

Arquitectura en dos capas (2) Problema


Cambios en la implementacin de la capa modelo => recompilacin de toda la aplicacin y reinstalacin en clientes.
Cambios de drivers de acceso a la BD. Cambios en la lgica del modelo. Cambio de tipo de BD.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

Una aplicacin con clientes standalone

Arquitectura en tres capas Capa 1


Int. grfica

Capa 2
Modelo Serv. modelo

Capa 3
Base de datos

Int. grfica

Intranet

Int. grfica

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

Una aplicacin web

Arquitectura en tres capas Capa 1


Navegador

Capa 2
Int. Modelo web Serv. ap. web

Capa 3
Base de datos

Navegador

Internet/ Intranet

Navegador

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

Una aplicacin web

Arquitectura en cuatro capas Capa 1


Navegador Int. web Serv. ap. web Modelo Serv. modelo Base de datos

Capa 2

Capa 3

Capa 4

Navegador

Internet/ Intranet

Navegador

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

Una aplicacin web

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.

Cmo conseguir escalabilidad y disponibilidad?


Replicando servidores.

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Es necesario distinguir entre


J2ME (Java 2 Platform, Micro Edition) renombrado a Java ME
Conjunto de tecnologas y especificaciones destinadas a dispositivos tales como telfonos mviles, PDA's, ...

J2SE (Java 2 Platform, Standard Edition) renombrado a Java SE


Para aplicaciones y applets

J2EE (Java 2 Platform, Enterprise Edition) renombrado a Java EE


Se apoya en Java SE. Con el paso del tiempo, algunas APIs de Java EE se pasaron (y quizs se sigan pasando) a Java SE.
Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 11

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.

Mustang Diciembre 2006

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

12

Java EE: Aplicaciones multicapa basadas en componentes (1)


La plataforma Java EE define un estndar para el desarrollo de aplicaciones empresariales multicapa basadas en componentes.
La lgica de la aplicacin se divide en componentes de acuerdo a su funcin, y cada componente puede ser instalado en una mquina diferente dependiendo de la capa a la que pertenezca.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

13

Java EE: Aplicaciones multicapa basadas en componentes (2)

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Introduccin al Desarrollo de Aplicaciones Empresariales

15

Contenedores Java EE (2)

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Introduccin al Desarrollo de Aplicaciones Empresariales

17

Componentes/Tecnologas Java EE (1)


Un componente es una unidad de software autosuficiente y funcional que se ensambla dentro de una aplicacin Java EE y se comunica con otros componentes. La especificacin Java EE define los siguientes componentes:
Parte cliente:
Componentes que se ejecutan en la mquina cliente: Aplicaciones Cliente / Applets. Cliente Web: Pginas Web + Navegador.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

19

Componentes Java EE (1) Capa cliente.

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

20

Componentes Java EE (2) Capa Web.

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

21

Componentes Java EE (3) Capa modelo o de negocio.

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

22

Acceso a Base de Datos JDBC (1) JDBC (Java SE):


API para acceso a bases de datos relacionales. El programador puede lanzar queries (consulta, actualizacin, insercin y borrado), agrupar queries en transacciones, etc. Permite implementar la capa modelo.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

23

Acceso a Base de Datos JDBC (2)


Aplicacin

<<use>>

<<use>>

java.sql

javax.sql

BD

<<access>>

Driver JDBC

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

24

Acceso a Base de Datos JDBC (3)


Driver Tipo 1 (ej.: bridge JDBC-ODBC) <<use>> API nativa estndar (ej.: ODBC) <<access>> Driver Tipo 2 (ej: Oracle OCI) <<use>> API nativa BD (normalmente en C/C++) <<access>>

<<access>> Driver Tipo 3 <<use>> Servidor con API genrica

BD

Driver Tipo 4 (ej: Oracle thin) Diciembre 2008

<<access>>

Introduccin al Desarrollo de Aplicaciones Empresariales

25

Acceso a Base de Datos JDBC (4)

DriverM anager

+ m anages

0..n

< < Interfac e> > Driver

< <i nstanti ate> >

< < Interfac e> > Connection

< < ins tantiate>>

< < Interfac e> > S tatem ent

<<i ns tan ti ate>>

<< Interfac e> > ResultS et

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

26

Acceso a Base de Datos JDBC (5)


Idealmente, si nuestra aplicacin cambia de BD, no necesitamos cambiar el cdigo; simplemente, necesitamos otro driver. Sin embargo, desafortunadamente las BDs relacionales usan distintos dialectos de SQL ( a pesar de que en teora es un estndar !).
Tipos de datos: varan mucho segn la BD. Generacin de identificadores: secuencias, autonumerados, etc.

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.

Otros conceptos relacionados:


DriverManager vs DataSource.
JNDI (Java Naming and Directory Interface).

Pool de conexiones. Transacciones.


Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 27

Tecnologas Web (1)


Aplicacin web:
Aplicacin que corre en al menos un servidor web y a la que el usuario accede desde un cliente de propsito general (ej.: navegador en un PC, telfono WAP, etc.).

La comunicacin en la Web gira en torno al protocolo HTTP.


Protocolo de nivel de aplicacin. Funciona sobre TCP.
Usa el puerto 80 por defecto.

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

Servidor aplicaciones web

Tecnologas Web (2) Acceso a la web desde dispositivos mviles:


WAP es una pila de protocolos que nada tiene que ver con TCP/IP. WML es el lenguaje equivalente a HTML para mviles.
Es una aplicacin de XML. Lgicamente, tiene menos posibilidades grficas.

Mvil
WML WAP

Gateway
WML HTTP TCP/IP

Servidor aplicaciones web

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

29

Tecnologas Web (3) Objetivo que se pretende


Separacin de roles:
Personas que realizan el aspecto grfico => diseadores grficos o similares.
Conocimientos de diseo grfico y herramientas para generacin de HTML y WML.

Personas que implementan el controlador y el modelo => informticos.


Conocimientos de diseo e implementacin.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

30

Tecnologas Web (4) Tecnologas web Java EE.


APIs: Servlets, pginas JSP y JSTL. Permiten implementar la interfaz grfica (vista+controlador) de una aplicacin web.
Contenedor de aplicaciones web
Navegador Aplicaciones web (int. grf. + modelo ) JDBC BD

NOTA: Contenedor = servidor

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

31

Tecnologas Web (5)


Un servlet es una clase Java que puede recibir peticiones (normalmente HTTP) y generar una salida (normalmente HTML, WML o XML).
Los servlets que conforman una aplicacin web se ejecutan en un servidor de aplicaciones web (contenedor). Cada servlet se puede asociar a uno o ms URLs. Paquetes javax.servlet y javax.servlet.http.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

32

Capa Modelo Componentes EJB (Java EE).


Automatizan la persistencia (API de persistencia).
Permite almacenar clases persistentes (llamadas entidades) en una Base de Datos relacional. Alternativa de ms alto nivel que JDBC.

Dan soporte a la implementacin de fachadas del modelo.


Session Beans. Pueden tener interfaz local y/o remota.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

33

Arquitectura multi-capa (1) Arquitectura de una aplicacin con clientes standalone.

Contenedor de componentes EJB


Ap. Standalone (int. grfica) Componentes EJB (modelo)

BD

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Introduccin al Desarrollo de Aplicaciones Empresariales

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.

Contenedor de aplicaciones web


Navegador Aplicaciones web (int. grf.)

Contenedor de componentes EJB


Componentes EJB (modelo) BD

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

36

Arquitectura multi-capa (4) Arquitectura de una aplicacin web con un contenedor web (3 capas).
Acceso a BD a travs de API JDBC.

Contenedor de aplicaciones web


Navegador Aplicaciones web (int. grf.) + Modelo (JDBC) BD

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

37

XML (1) XML - eXtensible Markup Language (http://www.w3c.org).


Lenguaje de etiquetas (similar en sintaxis a HTML). Es extensible (no dispone de etiquetas predefinidas). Permite expresar datos y no aspecto visual (a diferencia de HTML).

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>

day="1 month=10 year=2001"/> day="2 month=10 year=2001"/>

day="1 month=10 year=2001"/> day="2 month=10 year=2001"/>

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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.

Parsers XML (XML


SAX.

objetos + [validacin estructura]).

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

Introduccin al Desarrollo de Aplicaciones Empresariales

39

XML (3) SAX DOM

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

40

XML (4) APIs para XML.


Las APIs de SAX y DOM estn estandarizadas y existen un gran nmero de implementaciones para distintos lenguajes.
En el caso de Java, familia de paquete org.xml.sax y org.w3c.dom (bsicamente contienen interfaces y clases abstractas). Ej.: Apache Software Foundation proporciona Crimson (SAX y DOM slo para Java), Xerces (SAX y DOM) y Xalan (XSL).

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

Introduccin al Desarrollo de Aplicaciones Empresariales

41

XML (5) APIs para XML (cont):


JAXP.
Define una API para trabajar con parsers SAX, DOM y transformaciones XSL. Proporciona factoras para crear instancias de parsers y transformadores XSL de manera portable. Existen un gran nmero de implementaciones que proporcionan adaptadores para JAXP.
Ej: Crimson+Xalan, Xerces.

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

42

Servicios Web (1)


Se han estandarizado una serie de protocolos basados en XML que permiten el intercambio de informacin en un entorno distribuido.
Cuentan con el respaldo de todos los fabricantes de tecnologa (Sun, Oracle, IBM, Microsoft, etc.). Tambin existen APIs para los lenguajes de programacin ms usuales, que facilitan el envo y recepcin de mensajes. En general, las APIs no son estndares, sin embargo ello no afecta a la interoperabilidad (porque los protocolos estn estandarizados). En Java, las APIs se estandarizan.

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

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Estandarizado por W3C (http://www.w3c.org)

Servidor

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Introduccin al Desarrollo de Aplicaciones Empresariales

45

Implementaciones de Java EE (y 2) Implementaciones OpenSource.


Tomcat (proyecto de Apache): http://tomcat.apache.org
Contenedor de aplicaciones web.

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

Alternativas a Java EE (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 mquina 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.

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

Alternativas a Java EE (2) LAMP


http://www.onlamp.com Linux + Apache + MySQL + Perl/PHP/Python. Perl/PHP/Python:
Lenguajes tipo Script. Acceso a base de datos. Tecnologas web. Soporte para XML y servicios Web.

Requiere menos conocimientos tcnicos que Java EE o .NET. Y la calidad del software ?

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Introduccin al Desarrollo de Aplicaciones Empresariales

49

Patrones arquitectnicos MVC y Layers (2)


Patrn arquitectnico MVC.
Separacin clara entre el modelo (lgica de negocio) y la vista (interfaz grfica), gracias a un controlador que los mantiene desacoplados. Ventajas:
El modelo es reutilizable con distintas vistas (ej.: una vista web y una con interfaz de ventanas) Divisin clara de trabajo entre los miembros de un equipo, que estar formado por personas con distintos niveles de especializacin.

Patrn arquitectnico Layers.


El software est estructurado en capas. Permite ocultar las tecnologas que usa nuestro software.
Cuando hay un cambio de versin en una de ellas (o incluso se reemplaza por otra distinta), no tiene impacto sobre las capas superiores. Divisin clara de trabajo entre los miembros de un equipo.

Dar soporte a la arquitectura MVC.


Ej.: tanto la vista como el controlador nunca conocern las tecnologas que usa la implementacin del modelo.

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

50

Capas de una Aplicacin Web Java EE: MVC+Layers

Vista

HTML + JSP + JSTL Servlets

Controlador

Interfaces con Casos de Uso (lgica de negocio)

Modelo

Plugin: Plain | RMI | EJB |

Interfaces para Acceso a Datos


Plugin: JDBC | XML | EJB | Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 51

Referencias (1) Libros:


J. Crupi, D. Alur, D. Malks, Core J2EE Patterns, 2nd edition, Prentice Hall, 2003. F. Marinescu, EJB Design Patterns, John Wiley & Sons, 2002. G. Reese, Database Programming with JDBC and Java, 2nd edition, O. Reilly, 2000. E. R. Harold, W. S. Means, XML in a Nutshell: A Desktop Quick Reference, O. Reilly , 2001. B. McLaughlin, Java and XML, 2nd edition, O. Reilly, 2001. H. Bergsten, JavaServer Pages, 3rd edition, O. Reilly, 2003.

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

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

Introduccin al Desarrollo de Aplicaciones Empresariales

53

Referencias (3) Sitios Web


http://java.sun.com/reference/blueprints/index.html http://java.sun.com/javaee http://java.sun.com/webservices http://jakarta.apache.org http://www.w3.org/Style/CSS http://www.microsoft.com/net http://www.onlamp.com http://www.xml.org

Diciembre 2008

Introduccin al Desarrollo de Aplicaciones Empresariales

54

Referencias (4) Asignaturas en la Facultad de Informtica de la UDC.


Integracin de Sistemas:
http://www.tic.udc.es/~fbellas/teaching/is 5 Ingeniera Informtica. Se centra en el diseo e implementacin de aplicaciones empresariales con Java EE y .NET. Transparencias y cdigo disponibles.

Anlisis y Diseo Orientado a Objetos:


http://www.tic.udc.es/~fbellas/teaching/adoo Optativa 2 ciclo, Ingeniera Informtica. Se centra en el diseo e implementacin con servicios Web con Java EE. Transparencias y cdigo disponibles.

Transparencias de esta charla disponibles en la pgina de la asignatura PFC


Diciembre 2008 Introduccin al Desarrollo de Aplicaciones Empresariales 55

You might also like