Introduccin a la arquitectura J2EE con ejemplos prcticosLic. Gisela Rodrguez Gmez, UNNE
www.whyfloss.com/conference
Introduccin a la Arquitectura J2EE (Java 2 Enterprise Edition)
Disertante: Lic. Gisela Rodrguez Gmez
29 de Mayo - 2007
Objetivos Descubrir los aspectos nuevos y aquellos ms relevantes de la tecnologa J2EE y su aplicacin al desarrollo de soluciones Web corporativas de todos los tamaos bajo esta plataforma. Cmo y porqu se construyen hoy en da las aplicaciones corporativas.
29 de Mayo - 2007
3
Agenda Introduccin a J2EE. Tecnologas de Servicios. Conectividad JDBC. Tecnologas de Comunicaciones. Tecnologas de Componentes. Arquitectura J2EE. Introduccin a los Servicios Web. Ejemplos de aplicacin.29 de Mayo - 2007 4
Introduccin Internet y la WWW son la base de la economa de la informacin. Una aplicacin accesible desde Internet puede usarse en cualquier momento desde cualquier lugar, (24/7). La meta de J2EE es definir un estndar que ayude a suplir estos retos tecnolgicos. J2EE soporta aplicaciones distribuidas que toman ventajas de las tecnologas existentes y en desarrollo simplificando el proceso a travs de un modelo de aplicaciones basados en componentes.29 de Mayo - 2007 5
Introduccin J2EE soporta aplicaciones corporativas hasta E-Commerce con Web en Internet. Provee soporte tanto para el lado del servidor como para el lado del cliente para aplicaciones corporativas multi-nivel.1. Cliente: Interfase de usuario. 2. Lgica de datos: 1 o ms, servicios al cliente y la lgica de negocios para la aplicacin. 3. Datos: gestin de datos.29 de Mayo - 2007 6
Arquitectura BsicaWeb containerJSP
HTTP(s)
Browser
Datos
HTML, XML
Servlet
29 de Mayo - 2007
7
Existen 3 categoras: Servicios Comunicaciones Componentes
Tecnologas
29 de Mayo - 2007
8
Tecnologas de Servicios Existen varias formas de interactuar con una base de datos: Procedimiento Almacenado: propio de cada SGBD. SQLJ(SQL para Java), estndar pero no totalmente extendido. OC4J(Oracle Components for Java): no estndar pero de gran versatilidad. JDBC(Java Data Base Connectivity): estndar y ampliamente extendido.
29 de Mayo - 2007
9
Tecnologas de Servicios Conectividad JDBC: provee al desarrollador la capacidad de conectarse o unirse de manera independiente a las bases de datos relacionadas. Permite: Ejecutar conexiones y autenticacin a un servidor de BD. Gestionar transacciones. Realizar sentencias SQL sobre el motor de BD. Ejecutar procedimientos almacenados. Inspeccionar y modificar los resultados de una sentencia select. Es independiente de donde se encuentre el cliente y el servidor. Es una API de alto nivel y diferentes drivers cada uno para conectarse a una base de datos distinta.29 de Mayo - 2007 10
Tecnologas de Servicios Paquetes importantes de Java:
29 de Mayo - 2007
11
Tecnologas de Servicios
Una aplicacin se conecta a una base de datos con JDBC realizando las siguientes operaciones:Importacin de paquetes. Carga del driver JDBC. Conexin con la base de datos. Construccin de la sentencia SQL y ejecucin. Procesamiento de resultados, si los hay. Cierre de la sentencia y del cursor, si lo hay. Cierre de la conexin.
29 de Mayo - 2007
12
Tecnologas de Comunicacin Son aquellas que proveen al desarrollador la capacidad de comunicarse con los usuarios de las aplicaciones. A travs de: Java Mail: API de gestin automtica de mensajes, sencillo. JMS: API de servicios de mensajera de Java, potente. Internet Protocol.
29 de Mayo - 2007
13
Tecnologas de Comunicacin Internet Protocol: un cliente muy frecuente es un browser situado en cualquier parte del mundo. La peticin de un cliente y la respuesta de un servidor son comunicadas sobre 3 protocolos principales. HTTP: protocolo de nivel de aplicacin que trabaja en base a peticin/respuesta. TCP/IP: 2 protocolos combinados en uno para transportar los datos a travs de Internet. SSL: utiliza criptografa para encriptar el flujo de informacin entre cliente y el servidor.29 de Mayo - 2007 14
Tecnologas de Componentes La gestin de componentes se basa en el modelo de Contenedores. Un contenedor provee un ambiente estandarizado de ejecucin que provee servicios especficos a componentes, como acceso a las APIs. Los contenedores tambin poseen acceso a sistemas de informacin empresarial (RDBMS, JDBC).
29 de Mayo - 2007
15
Gestin de Componentes
Componentes del cliente:Web browsers con HTML estndar. HTML dinmico como JSP. Applets. Java stand-alone apps
Componentes de la lgica de negocios:La forma ms estndar de acceder un cliente a la siguiente capa es a travs de: http, html, xml. Interfaces ms complejas son: Servlets.
Componentes de los datos:EJB: Enterprise JavaBeans. El modelo de componentes EJB es el backbone del modelo de programacin J2EE.29 de Mayo - 2007 16
Cliente
Ambiente
Datos
29 de Mayo - 2007
17
Componentes Web Proveen respuesta a requerimientos. Genera interfaces de usuario para apps basadas en Web. J2EE especifica 2 tipos de componentes Web1. 2. Servlets. Java Server Pages
Todos los componentes Web proveen soporte para requerimientos de clientes, realizar un procesamiento y retornar los resultados.29 de Mayo - 2007 18
Servlets Programa que extiende la funcionalidad de un servidor Web. Recibe un requerimiento de un cliente, dinmicamente generan las respuestas y luego la mandan en documento HTML o XML al cliente.
Servlts
29 de Mayo - 2007
19
Servlets Servicios:Iniciar y finalizar servlets. Acceso al ambiente servlets. Recibir requerimientos y enviar respuestas. Mantener informacin de sesin. Interactuar con otros servlets o componentes.
Son programas del lado del servidor que permiten a la lgica de aplicacin ser integrada en el proceso de respuesta de peticin HTTP.
29 de Mayo - 2007
20
Servlets
29 de Mayo - 2007
21
Java Server Pages JSP Provee una forma de generar contenido dinmico para un cliente Web. Es un documento de texto que describe como procesar un requerimiento para crear una respuesta.
JSP
29 de Mayo - 2007
22
Java Server Pages JSP Contiene:Una plantilla de datos para formatear un documento Web (HTML, XML). Separa la presentacin del procesamiento dinmico. Elementos y scriptles JSP generan contenido dinmico. Una pgina JSP puede usar componentes JB o EJB.
Proveen una manera de integrar componentes dinmicos dentro de una pgina esttica como HTML, el cdigo se incluye dentro de las etiquetas:
Scriptlet29 de Mayo - 2007 23
Java Server Pages JSP
29 de Mayo - 2007
24
Servicios Web XML: (Extensible Markup Language) es uno de los formatos de informacin ms aceptados, por la flexibilidad y uniformidad que brinda para intercambiar informacin variando desde transacciones financieras, aplicaciones inalmbricas hasta aplicaciones de servidor; todo partiendo de un solo documento maestro con la confiabilidad de que el formato sea aceptable ampliamente. XML TECNOLOGA DE VANGUARDIA.Ejemplo del uso de esta tecnologa: Google Search29 de Mayo - 2007 25
Servicios WebCrear un servicio Web: Crear una clase Java con un mtodo por cada servicio web a publicar. Depositar la clase java en un archivo .jar y ubicar ste en un contenedor J2EE. Crear un servicio web (fichero.wsdl) y asociarlo con la clase java anterior. Publicar el servicio web en un servidor de aplicaciones. Crear un cliente que acceda a dicho servicio web.
29 de Mayo - 2007
26
Servicios Web
29 de Mayo - 2007
27
Contenedores de Componentes Web Los componentes Web son hospedados por contenedores servlets, JSP y Web. Un contenedor servlet provee servicios de red, decodificacin de requerimientos y formato de respuestas. Todos los contenedores servlets tienen que soportar HTTP as como protocolo para requerimientos y respuestas. Un contenedor JSP provee los mismos servicios que uno de servlets adems de un motor de interpretacin y procesamiento de pginas JSP dentro de un servlet. Un contenedor Web provee los mismos servicios que un JSP adems de servicios J2EE y API.
29 de Mayo - 2007
28
Componentes EJB La arquitectura EJB es una tecnologa del lado del servidor para desarrollo y ejecucin de componentes para lgica de negocio de una aplicacin empresarial. EJB son escalables, transaccionales y multiusuario.
Todos los contenedores EJB proveen soporte para gestin de transacciones, ciclo de vida, localizacin, y otros servicios.
29 de Mayo - 2007
29
Componentes EJB
Existen dos tipos de EJB:Session Bean: provee algn servicio detrs de un cliente y usualmente durante una nica sesin. Ejecuta operaciones como clculos o accesos a DB para el cliente. El contenedor EJB administra el estado si el estado tiene que ser removido de memoria, pero el mismo objeto session bean tiene que gestionar sus datos persistentes
29 de Mayo - 2007
30
Componentes EJB Entity Bean: un bean de entidad es un objeto persistente que representa el mantenimiento de los datos en un almacenamiento. Es decir es una envoltura de objeto para los datos ya que est centrado en los datos. Puede vivir tanto como los datos que este representa.
29 de Mayo - 2007
31
Contenedores de componentes EJB EJB son hospedados por un contenedor EJB. Adems de un contenedor estndar de servicios, uno de EJB provee un rango de servicios de transacciones y persistencia y acceso a servicios J2EE y APIs de comunicaciones.
29 de Mayo - 2007
32
Entorno de desarrollo de una aplicacin Web bajo la plataforma J2EE Utilizando el software: WebSphere de IBM. Simplificando el trabajo mediante la utilizacin de Wizards para el desarrollo de las aplicaciones. Proporciona cdigo preconstruido y pretesteado. Facilita el mantenimiento. Permite customizar el rea de trabajo.
29 de Mayo - 2007
33
Perspectivas del workbench:
29 de Mayo - 2007
34
Perspectiva J2EE:
29 de Mayo - 2007
35
Perspectiva Web:
29 de Mayo - 2007
36
Perspectiva Java:
29 de Mayo - 2007
37
Vistas de las perspectivas:Vista Simple
Vista Apilada
29 de Mayo - 2007
38
Toolbars:Workbench Toolbar
Acceso Directo Toolbar
Vista Toolbar
29 de Mayo - 2007
39
Creando un nuevo proyecto:Se puede crear cualquier tipo de proyecto en cualquier perspectiva.
29 de Mayo - 2007
40
Importando o creando paquetes Java:Proyecto creado desde la vista Package Explorer de la perspectiva Java
29 de Mayo - 2007
41
Construyendo el cdigo y manejo de errores:Vista Problemas Vista Editor Vista Outline
Vista Package Explorer
29 de Mayo - 2007
42
Arquitectura de una aplicacin J2EE:Contenedores por default
Vista Navegador
29 de Mayo - 2007
43
Arquitectura de una aplicacin J2EE:
Creando HTML
29 de Mayo - 2007
44
Arquitectura de una aplicacin J2EE:
Editando HTML Vista Editor Perspectiva Web
29 de Mayo - 2007
45
Creando Servidor
Servidores:
Vista Servidor
29 de Mayo - 2007
46
Ejecutando la aplicacin J2EE:
Corriendo el Servidor
29 de Mayo - 2007
47
Ejecutando la aplicacin J2EE:
Web browser
Servidor Corriendo
29 de Mayo - 2007
Resumen Crear y trabajar en un proyecto J2EE. Crear paquetes o importarlos. Crear clases. Crear pginas. Localizar errores de compilacin en el cdigo. Crear y correr el servidor. Ejecutar la aplicacin.
29 de Mayo - 2007
Conclusiones Conceptos ms relevantes sobre J2EE. Ventajas y desventajas de la tecnologa J2EE. Software para el desarrollo de una aplicacin J2EE. Aplicaciones corporativas solucionan problemas de escalabilidad, mantenimiento, fiabilidad, seguridad y velocidad de desarrollo. Tendencia a los Servicios Web: la flexibilidad es importante para poder construir grandes aplicaciones a partir de componentes distribuidos mas pequeos. Hoy comercio-e, gobierno-e, aprendizaje-e, pagos-e, tramitaciones-e.
29 de Mayo - 2007
Direcciones de Inters
http://www.sun.com http://java.sun.com/docs/books/tutorial http://java.sun.com/javase/downloads/index.jsp http://java.sun.com/javase/technologies/database.jsp http://www.informit.com/articles/article.asp?p=31568& http://java.sun.com/
29 de Mayo - 2007
MUCHAS GRACIAS
29 de Mayo - 2007