Download Introducción al Desarrollo de Aplicaciones Empresariales

Document related concepts
no text concepts found
Transcript
UNIVERSIDADE DA CORUÑA
Departamento de Tecnoloxías da Información e as Comunicacións (TIC)
Introducción al Desarrollo de Aplicaciones
Empresariales
Manuel Álvarez Díaz
http://www.tic.udc.es/~mad
[email protected]
Noviembre 2006
[Actualización charla de Fernando Bellas curso 2005/06 (http://www.tic.udc.es/~fbellas)]
Índice
• Arquitecturas características de las aplicaciones
empresariales
• Tecnologías Java EE
• Alternativas a Java EE
• Patrones Arquitectónicos
ƒ Model-View-Controller
ƒ Layers
• Referencias
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
2
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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
3
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
ƒ El modelo debería ser reusable con distintas interfaces gráficas
cu1
Interfaz gráfica 1
Gestor de Eventos
eventos de usuario
Acciones a Ejecutar
cu2
...
Modelo
Base de
Datos
cun
Interfaz gráfica m
casos de uso
•
Arquitecturas multi-capa
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
4
Una aplicación con clientes standalone
Arquitectura en dos capas (1)
Capa 1
Capa 2
Base de
datos
Int.
Modelo
gráfica
Intranet
Int.
Modelo
gráfica
Noviembre 2006
Int.
Modelo
gráfica
Introducción al Desarrollo de Aplicaciones Empresariales
5
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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
6
Una aplicación con clientes standalone
Arquitectura en tres capas
Capa 1
Int.
gráfica
Capa 2
Modelo
Capa 3
Base de
datos
Serv. modelo
Int.
gráfica
Intranet
Int.
gráfica
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
7
Una aplicación web
Arquitectura en tres capas
Capa 1
Capa 2
Navegador
Int.
Modelo
web
Capa 3
Base de
datos
Serv. ap. web
Navegador
Internet/
Intranet
Navegador
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
8
Una aplicación web
Arquitectura en cuatro capas
Capa 1
Capa 2
Capa 3
Capa 4
Navegador
Int.
web
Serv. ap. web
Navegador
Modelo
Base de
datos
Serv. modelo
Internet/
Intranet
Navegador
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
9
Comentarios
• Para una aplicación web, la arquitectura en tres capas es
más eficiente
ƒ En la arquitectura en tres capas, la comunicación entre la interfaz
gráfica y el modelo es local
ƒ En la arquitectura en cuatro capas, la comunicación entre la
interfaz gráfica y el modelo es remota
• ¿ Cómo conseguir escalabilidad y disponibilidad ?
ƒ Replicando servidores
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
10
¿ Qué es Java EE ?
•
Java EE 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 Java EE no depende de una
implementación particular
ƒ Sitio central: http://java.sun.com/javaee
•
Es necesario distinguir entre
ƒ J2ME (Java 2 Platform, Micro Edition) – renombrado a Java ME
• Conjunto de tecnologías y especificaciones destinadas a dispositivos tales
como teléfonos móviles, 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 quizás se sigan
pasando) a Java SE
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
11
API Java SE 5
ƒ Proporciona un entorno para el desarrollo de aplicaciones Java de Desktop
y applets. Contiene un compilador, herramientas, entornos de ejecución y
APIs Java que permiten escribir, probar y ejecutar applets y aplicaciones.
Tiger
Octubre 2004
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
12
API Java EE 5
ƒ Define un estándar para el desarrollo de aplicaciones empresariales
multicapa basadas en componentes.
ƒ Se basa en Java SE y proporciona servicios, herramientas y APIs
Mayo 2006 adicionales para soportar el desarrollo simplificado de aplicaciones
empresariales.
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
13
Principales tecnologías proporcionadas por Java EE
• Cada uno de los componentes de Java EE se ejecuta en un
contenedor apropiado.
• Un contenedor es el entorno de ejecución para un
componente, que le proporciona acceso a una serie de
servicios, entre los que se encuentran:
ƒ
ƒ
ƒ
ƒ
Seguridad
Gestión de transacciones
Directorio de nombres JNDI
Conectividad remota
• De esta forma el desarrollador de componentes se centra en
la resolución de los problemas de lógica de negocio.
• Para que un componente pueda ser ejecutado, debe de ser
previamente deployado en el contenedor correspondiente
de un servidor Java EE.
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
14
Principales tecnologías proporcionadas por Java EE
• Características de las aplicaciones Empresariales
ƒ Acceso a Bases de Datos: API JDBC (Java SE)
ƒ Aplicaciones
Transaccionales/Escalables/Disponibles/Seguras/Multicapa
(derivadas de la arquitectura Java EE):
• Componentes que se ejecutan en la máquina cliente
– Aplicaciones Cliente
– Applets
– Browser (aplicaciones web)
• Componentes que se ejecutan en la máquina servidora
– Contenedor Web:
» Componentes Web: API Servlets/JSPs/JSTL
– Contenedor EJB:
» Componentes de lógica de negocio (modelo) Æ Componentes
EJB
ƒ Integración de Aplicaciones Heterogéneas
• API XML (Java SE)
• API Servicios Web
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
15
Principales tecnologías proporcionadas por Java EE
• Múltiples capas ...
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
16
Acceso a Base de Datos JDBC (1)
• JDBC (Java SE)
ƒ 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.
ƒ Permite implementar la capa modelo
• Conceptos JDBC
ƒ El programador siempre trabaja contra los paquetes java.sql y
javax.sql.
ƒ Para poder contectarse a la BD y lanzar queries, es preciso tener un
driver adecuado a ella
• Un driver suele ser un fichero .jar que contiene una implementación
de todas las interfaces de la API de JDBC
• Nuestro código nunca depende del driver, dado que siempre trabaja
contra los paquetes java.sql y javax.sql
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
17
Acceso a Base de Datos JDBC (2)
• Drivers JDBC
Aplicación Java
java.sql
javax.sql
API JDBC
JDBC Driver Manager
API Driver
JDBC
Driver JDBC-ODBC
Driver Java
Nativa
Drivers ODBC
API Nativa BD
Driver JDBC-Net
Driver Java
Implementaciones
Driver JDBC
Servidor con
API Genérica
Protocolo de acceso propietario
a una base de datos
Base de Datos
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
18
Acceso a Base de Datos JDBC (3)
DriverM anager
0..n
< < Interfac e> >
Driver
< < ins tantiate>>
< < Interfac e> >
S tatem ent
+ m anages
< <i nstanti ate> >
< < Interfac e> >
Connection
Noviembre 2006
<<i ns tan ti ate>>
Introducción al Desarrollo de Aplicaciones Empresariales
<< Interfac e> >
ResultS et
19
Acceso a Base de Datos JDBC (y 4)
•
•
Idealmente, si nuestra aplicación cambia de BD, no necesitamos
cambiar el código; simplemente, necesitamos otro driver
Sin embargo, desafortunadamente las BDs relacionales usan distintos
dialectos de SQL (¡ a pesar de que en teoría es un estándar !)
ƒ Tipos de datos: varían mucho según la BD
ƒ Generación de identificadores: secuencias, autonumerados, etc.
•
Solución
ƒ Usaremos interfaces para el acceso a BD, de manera que se puedan
construir adaptadores para distintas BDs, proporcionando
implementaciones por defecto con SQL estándar cuando sea posible
•
Otros conceptos relacionados
ƒ DriverManager vs DataSource
• JNDI (Java Naming and Directory Interface)
ƒ Pool de conexiones
ƒ Transacciones
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
20
Tecnologías Web (1)
•
Aplicación web
ƒ Aplicación que corre en al menos un servidor y a la que el usuario accede
desde un cliente de propósito general (ej.: navegador en un PC, teléfono
WAP, etc.)
•
La comunicación en la Web gira en torno al protocolo HTTP
ƒ Protocolo de nivel de aplicación
ƒ Funciona sobre TCP
• Usa el puerto 80 por defecto
ƒ Modelo petición/respuesta
ƒ No tiene estado
ƒ Al igual que SMTP, es un protocolo ASCII, que usa MIME para transferir
información no ASCII
•
Acceso a la web desde dispositivos móviles
ƒ WAP es una pila de protocolos que nada tiene que ver con TCP/IP
ƒ WML es el lenguaje equivalente a HTML para móviles
• Es una aplicación de XML
• Lógicamente, tiene menos posibilidades gráficas
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
21
Tecnologías Web (2)
• Objetivo que se pretende
ƒ Separación de roles
• Personas que realizan el aspecto gráfico => diseñadores gráficos o
similares
– Conocimientos de diseño gráfico y herramientas para generación de
HTML y WML
• Personas que implementan el controlador y el modelo =>
informáticos
– Conocimientos de diseño e implementación
ƒ Se deberían poder usar directamente las herramientas de diseño de
páginas web
ƒ Las actualizaciones al aspecto gráfico no deben provocar un rearranque del servidor
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
22
Tecnologías Web (3)
• Tecnologías web (Java EE)
ƒ APIs: Servlets, páginas JSP y JSTL
ƒ Permiten implementar la interfaz gráfica (vista+controlador) de
una aplicación web
Contenedor de
aplicaciones web
Navegador
„
Aplicaciones
web (int. gráf.
+ modelo )
JDBC
BD
NOTA: Contenedor = servidor
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
23
Tecnologías Web (y 4)
•
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 aplicación web se ejecutan en un servidor
de aplicaciones web (contenedor)
ƒ Cada servlet se puede asociar a uno o más URLs
ƒ Paquetes javax.servlet y javax.servlet.http
•
Una página 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 gráfica
ƒ Tiene el aspecto de una página HTML
ƒ Puede incluir scriptlets (scripts) para generar HTML dinámicamente
ƒ Típicamente los scriptlets se escriben en Java
•
JSTL (JSP Standard Tag Library) es una librería estándar de tags que
pueden utilizarse en páginas JSP.
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
24
Capa Modelo
• Componentes EJB (Java EE)
ƒ Automatizan la persistencia: API de persistencia:
• Permite mapear clases persistentes (“llamadas entidades”) a una Base
de Datos relacional
• Alternativa de más alto nivel que JDBC
ƒ Dan soporte a la implementación de fachadas del modelo
• Session Beans
• Pueden tener interfaz local y/o remota
ƒ Enfoque declarativo
• Se declaran las clases que son persistentes
• Se declaran las operaciones que son transaccionales y los aspectos de
seguridad
ƒ Facilidad de desarrollo
• Al menos con EJB 3.0 ...
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
25
Arquitectura multi-capa (1)
• Arquitectura de una aplicación con clientes standalone
Contenedor de
componentes EJB
Ap. Standalone
(int. gráfica)
Noviembre 2006
Componentes
EJB (modelo)
BD
Introducción al Desarrollo de Aplicaciones Empresariales
26
Arquitectura multi-capa (2)
• Arquitectura de una aplicación web con un contenedor
completo Java EE (tres capas)
Contenedor Java EE
Navegador
Noviembre 2006
Aplicaciones
web (int. gráf.)
Componentes
EJB (modelo)
Introducción al Desarrollo de Aplicaciones Empresariales
BD
27
Arquitectura multi-capa (y 3)
• Arquitectura de una aplicación web con un contenedor web
y un contenedor de EJB (quizá de distinto fabricante)
ƒ Si los dos contenedores corren en la misma máquina física, se pude
considerar como una arquitectura en tres capas.
ƒ En general, es mejor la alternativa anterior
Contenedor de
aplicaciones web
Navegador
Noviembre 2006
Aplicaciones
web (int. gráf.)
Contenedor de
componentes EJB
Componentes
EJB (modelo)
Introducción al Desarrollo de Aplicaciones Empresariales
BD
28
XML (1)
• APIs para XML
ƒ XML - eXtensible Markup Language (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"
<forecast type="foggy"
</city>
<city name="LUG">
<forecast type="rainy"
<forecast type="rainy"
</city>
...
</forecasts>
Noviembre 2006
day="1” month=“10” year=“2001"/>
day="2” month=“10” year=“2001"/>
day="1” month=“10” year=“2001"/>
day="2” month=“10” year=“2001"/>
Introducción al Desarrollo de Aplicaciones Empresariales
29
XML (2)
• APIs para XML (cont)
ƒ Campos de aplicación (... entre muchos otros ...)
•
•
•
•
Intercambio de datos entre aplicaciones heterogéneas
Configuración de aplicaciones
Generación de aspecto visual (ej.: HTML, PDF) a partir de los datos
Bases de datos
ƒ Parsers XML (XML Æ objetos + [validación estructura])
• SAX
– Simple API for XML
– Es un pequeño 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 interés (apertura de un
tag, cierre de un tag, un error, etc.)
• DOM
– Document Object Model
– Construye una representación (un árbol) en memoria del documento
– El programador puede acceder a los datos del documento recorriendo el
árbol
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
30
XML (3)
SAX
DOM
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
31
XML (4)
• APIs para XML (cont)
ƒ Las APIs de SAX y DOM están estandarizadas y existen un gran
número de implementaciones para distintos lenguajes
• Ej.: Apache Software Foundation proporciona Crimson (SAX y DOM
sólo para Java), Xerces (SAX y DOM) y Xalan (XSL)
• En el caso de Java, familia de paquete org.xml.sax y org.w3c.dom
(básicamente contienen interfaces y clases abstractas)
ƒ Lo que no está estandarizado es cómo 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}
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
32
XML (y 5)
• APIs para XML (cont)
ƒ JAXP
• Define una API para trabajar con parsers SAX, DOM y
transformaciones XSL
• Proporciona factorías para crear instancias de parsers y
transformadores XSL de manera portable
• Existen un gran número de implementaciones que proporcionan
adaptadores para JAXP
– Ej.: Crimson, Xerces y Xalan
• Sun proporciona una implementación de JAXP por defecto: Crimson
y Xalan.
• Es posible utilizar otras implementaciones vía configuración
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
33
Servicios Web (1)
•
•
Enfoque REST: peticiones directas HTTP, respuestas XML
Se han estandarizado una serie de protocolos basados en XML que
permiten el intercambio de información en un entorno distribuido
ƒ Cuentan con el respaldo de todos los fabricantes de tecnología (Sun,
Oracle, IBM, Microsoft, etc.)
ƒ También existen APIs para los lenguajes de programación más usuales,
que facilitan el envío y recepción de mensajes
ƒ En general, las APIs no son estándares, sin embargo ello no afecta a la
interoperabilidad (porque los protocolos están estandarizados)
ƒ En Java, las APIs se estandarizan
•
Un Servicio Web es un servicio ofrecido a través de la web, que usa
los anteriores protocolos y APIs para recibir peticiones y enviar las
correspondientes respuestas
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
34
Servicios Web (y 2)
• APIs para integración de aplicaciones heterogéneas
ƒ Principalmente APIs para Servicios Web
• Tecnologías basadas en XML para la integración de aplicaciones
heterogéneas
• Un servicio Web ofrece un conjunto de operaciones que pueden ser
invocadas por clientes remotos, independientemente de la tecnología
en la que estén implementados el servidor y el cliente
• Protocolo de comunicación: SOAP
– Estandarizado por W3C (http://www.w3c.org )
– Utiliza XML para el intercambio de información
– Conceptualmente permite enviar peticiones/respuestas en XML
(normalmente sobre HTTP)
– Estandarizado por W3C (http://www.w3c.org )
• Existen APIs para los lenguajes más usuales
– Disponible para Java EE, .NET y LAMP
SOAP
Cliente
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
Servicio Web
• Definición de la interfaz del servicio: WSDL
Servidor
35
Implementaciones de Java EE (1)
• Existen un gran número 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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
36
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 aplicación sólo usa las APIs estándares => es posible
instalarla sobre cualquier servidor de aplicaciones conforme a Java
EE
ƒ ¡ No se depende de un fabricante !
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
37
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 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
(parcialmente), respectivamente
• Son una mejora de sus versiones anteriores (ADO, ASP, COM, etc.)
• APIs para XML y servicios Web
ƒ Implementaciones
• Principalmente la de Microsoft
• También Mono (Open Source): http://www.mono-project.com
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
38
Alternativas a Java EE (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 y servicios Web
ƒ Requiere menos conocimientos técnicos que Java EE o .NET
ƒ ¿ Y la calidad del software ?
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
39
Patrones arquitectónicos MVC y Layers (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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
40
Patrones arquitectónicos MVC y Layers (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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
41
Capas de una Aplicación Web Java EE: MVC+Layers
HTML + JSP + JSTL
Vista
Servlets
Controlador
Interfaces con Casos de Uso (lógica de negocio)
Modelo
Plugin: Plain | RMI | EJB | …
Interfaces para Acceso a Datos
Plugin: JDBC | XML | …
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
42
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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
43
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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
44
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
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
45
Referencias (y 4)
• Asignaturas en la Facultad de Informática de la UDC
ƒ Integración de Sistemas
• http://www.tic.udc.es/~fbellas/teaching/is
• 5º Ingeniería Informática
• Se centra en el diseño e implementación de aplicaciones
empresariales con Java EE y .NET.
• Transparencias y código disponibles
ƒ Análisis y Diseño Orientado a Objetos
•
•
•
•
http://www.tic.udc.es/~fbellas/teaching/adoo
Optativa 2º ciclo, Ingeniería Informática
Se centra en diseño e implementación con servicios Web con Java EE
Transparencias y código disponibles
• Transparencias de esta charla disponibles en
ƒ http://www.tic.udc.es/~mad/teaching/pfc3
Noviembre 2006
Introducción al Desarrollo de Aplicaciones Empresariales
46