Introducción al Desarrollo de Aplicaciones Empresariales

Anuncio
Introducción al Desarrollo de
Aplicaciones Empresariales
Fernando Bellas Permuy
Departamento de Tecnologías de la Información y las Comunicaciones (TIC)
Universidad de A Coruña
http://www.tic.udc.es/~fbellas
fbellas@udc.es
Índice
„
„
„
„
Arquitecturas características de las aplicaciones
empresariales
Tecnologías J2EE
Alternativas a J2EE
Referencias
Características de las aplicaciones empresariales (1)
„
Acceso a bases de datos (BD)
„
„
Transaccionales
„
„
Idealmente no deben dejar de prestar servicio
Seguras
„
„
Deberían poder soportar más carga de trabajo sin necesidad de
modificar el software (sólo añadir más máquinas)
Disponibilidad
„
„
Propiedades ACID (Atomicity-Consistency-Isolation-Durability)
Escalables
„
„
Normalmente con BD relacionales
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
Arquitecturas multi-capa
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
Int.
Modelo
gráfica
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
Capa 1
Int.
gráfica
Capa 2
Modelo
Serv. modelo
Int.
gráfica
Intranet
Int.
gráfica
Capa 3
Base de
datos
Una aplicación web
Arquitectura en tres capas
Capa 1
Navegador
Capa 2
Int.
Modelo
web
Serv. ap. web
Navegador
Navegador
Internet/
Intranet
Capa 3
Base de
datos
Una aplicación web
Arquitectura en cuatro capas
Capa 1
Capa 2
Capa 3
Capa 4
Navegador
Int.
web
Serv. ap. web
Navegador
Navegador
Internet/
Intranet
Modelo
Serv. modelo
Base de
datos
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 escalabiliad y disponibilidad ?
„
Replicando servidores
¿ 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)
„
„
J2SE (Java 2 Platform, Standard Edition)
„
„
Para dispositivos (ej.: PDAs)
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.
Permite implementar la capa modelo
Principales tecnologías proporcionadas por J2EE (2)
„
Tecnologías web (J2EE)
„
„
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 )
NOTA: Contenedor = servidor
JDBC
BD
Principales tecnologías proporcionadas por J2EE (3)
„
Componentes EJB (J2EE)
„
Automatizan la persistencia
„
„
De manera independiente del repositorio de datos (BD
relacional, BD orientada a objetos, etc.)
Alternativa de más alto nivel a JDBC
„
„
Dan soporte para la implementación de fachadas
„
„
Pueden ser locales o remotas
Enfoque declarativo
„
„
„
„
En el caso de una BD relacional, la implementación de EJB utiliza
JDBC
Se declaran las clases que son persistentes
Se declaran las operaciones que son transaccionales y los
aspectos de seguridad
La implementación de EJB automatiza los anteriores aspectos
Facilidad de desarrollo
„
Al menos con el futuro EJB 3.0 ...
Principales tecnologías proporcionadas por J2EE (4)
„
Arquitectura de una aplicación con clientes standalone
Contenedor de
componentes EJB
Ap. Standalone
(int. gráfica)
Componentes
EJB (modelo)
BD
Principales tecnologías proporcionadas por J2EE (5)
„
Arquitectura de una aplicación web con un
contenedor completo J2EE (tres capas)
Contenedor J2EE
Navegador
Aplicaciones
web (int. gráf.)
Componentes
EJB (modelo)
BD
Principales tecnologías proporcionadas por J2EE (6)
„
Arquitectura de una aplicación web con un
contenedor web y un contenedor de EJB
„
En general, es mejor la anterior alternativa
Contenedor de
aplicaciones web
Navegador
Aplicaciones
web (int. gráf.)
Contenedor de
componentes EJB
Componentes
EJB (modelo)
BD
Principales tecnologías proporcionadas por J2EE (7)
„
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"
<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"/>
Principales tecnologías proporcionadas por J2EE (8)
„
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
Principales tecnologías proporcionadas por J2EE (y 9)
Servicios Web
„
„
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
„
„
„
„
Definición de la interfaz del servicio: WSDL
„
„
Estandarizado por W3C (http://www.w3c.org)
Existen APIs para los lenguajes más usuales
„
„
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)
Disponible para J2EE, .NET y LAMP
Buena solución para integración de aplicaciones heterogéneas
SOAP
Cliente
Servicio Web
„
Servidor
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
IBM WebSphere ApplicationServer: http://www.ibm.com
Sun Java System Application Server: http://www.sun.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
„
„
JBoss: http://www.jboss.com
„
„
Contenedor de EJB
Geronimo: http://geronimo.apache.org
„
„
Contenedor J2EE
OpenEJB: http://openejb.codehaus.org
„
„
Contenedor de aplicaciones web
Contenedor J2EE
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
„
„
Lenguajes
„
„
„
„
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
„
„
„
Visual Basic .NET, Visual C++ .NET, Visual C# .NET, Visual J#
.NET, etc.
Tecnologías
„
„
Idea similar a la máquina virtual de Java y a los bytecodes generados
por el compilador de Java, respectivamente
Principalmente la de Microsoft
Mono (Open Source, Linux y otros sistemas operativos):
http://www.mono-project.com
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 y servicios Web
Requiere menos conocimientos técnicos que J2EE o .NET
¿ Y la calidad del software ?
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
T. Husted, C. Dumoulin, G. Franciscus, D. Winterfeldt, Struts in
Action, Manning, 2003.
E. Roman, S. W. Ambler, T. Jewell, Mastering Enterprise Java
Beans, 2nd Edition, John Wiley & Sons, 2002
R. Monson-Haefel, Enterprise JavaBeans, 4th edition, O. Reilly,
2004
D. Shafer, HTML Utopia: Designing Without Tables Using CSS,
Sitepoint Pty Ltd, 2003
Referencias (2)
„
Libros (cont)
„
„
„
J. Zeldman, Designing with Web Standards, New Riders,
2003
J. McGovern, S. Tyagi, M. E. Stevens, S. Mathew, Java Web
Services Architecture, Morgan Kaufmann, 2003
Sitios Web
„
http://java.sun.com/reference/blueprints/index.html
„
http://java.sun.com/j2ee
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
Referencias (y 3)
„
Asignaturas en la Facultad de Informática de la UDC
„
Integración de Sistemas
„
„
„
„
„
Análisis y Diseño Orientado a Objetos
„
„
„
„
„
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 J2EE
Transparencias y código disponibles
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
J2EE
Transparencias y código disponibles
Transparencias de esta charla disponibles en
„
http://www.tic.udc.es/~fbellas/teaching/pfc3
Descargar