1 / 73

Tutorial “Desarrollo de aplicaciones Web empleando el modelo J2EE”

Dr. Gabriel L ópez Morteo M.C. Jorge Ibarra Esquer Universidad Autónoma de Baja California Mexicali, B.C., México. Tutorial “Desarrollo de aplicaciones Web empleando el modelo J2EE”. 8o Encuentro Internacional de Ciencias de la Computaci ó n Morelia, Michoac á n, septiembre del 2007.

pisces
Télécharger la présentation

Tutorial “Desarrollo de aplicaciones Web empleando el modelo J2EE”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dr. Gabriel López Morteo M.C. Jorge Ibarra Esquer Universidad Autónoma de Baja California Mexicali, B.C., México Tutorial “Desarrollo de aplicaciones Web empleando el modelo J2EE” 8o Encuentro Internacional de Ciencias de la Computación Morelia, Michoacán, septiembre del 2007 UABC. Instituto y Facultad de Ingeniería. 2007

  2. Arquitectura Cliente-Servidor • 1 sola capa • 1 cliente • 1 servidor Servidor Cliente UABC. Instituto y Facultad de Ingeniería. 2007

  3. Arquitecturas de sistemas distribuídos: 2-tier • Dos divisiones (2-tier) • Usualmente dividido en presentación y datos • El cliente realiza todo el trabajo de cómputo mientras el servidor provee los datos • Emplea mucho ancho de banda • Requiere múltiples llamadas al servidor para operaciones simples • Corre el riesgo de saturar de conexiones al servidor • El mantenimiento de la aplicación y su actualización es muy difícil UABC. Instituto y Facultad de Ingeniería. 2007

  4. 2 capas UABC. Instituto y Facultad de Ingeniería. 2007

  5. 2 capas con acceso de datos en capa lógica UABC. Instituto y Facultad de Ingeniería. 2007

  6. Arquitecturas de sistemas distribuídos: 3-tier • Tres divisiones (3-tier) • Cada capa está separada del resto • La interacción se realiza mediante interfases bien denifidas • Comunmente se compone de • Despliegue (presentation layer) • Lógica de la aplicación (bussiness layer) • Datos (data layer) • Facilita el mantenimiento al tener separados los componentes del sistema • El origen de los datos es independiente del cliente UABC. Instituto y Facultad de Ingeniería. 2007

  7. 3 capas UABC. Instituto y Facultad de Ingeniería. 2007

  8. 3 capas y seguridad UABC. Instituto y Facultad de Ingeniería. 2007

  9. Arquitecturas de sistemas distribuídos: n-tier • N divisiones (n-tier) • No tiene un esquema único • Se compone de: • Interfaz de usuarios • Lógica de presentación • Lógica del negocio • Infraestructura de servicios • Capa de datos • La capa lógica se divide por funciones más que físicamente • Pueden estar involucrados más de un servidor para cada componente UABC. Instituto y Facultad de Ingeniería. 2007

  10. Optimización de recursos UABC. Instituto y Facultad de Ingeniería. 2007

  11. ¿Porqué usar componentes? • Fomentan la reutilización de código • Optimiza recursos. • Accede a recursos distribuídos • Facilita el acceso a sistemas legados. • Permite desarrollar soluciones para una variedad grande de clientes UABC. Instituto y Facultad de Ingeniería. 2007

  12. UABC. Instituto y Facultad de Ingeniería. 2007

  13. Componente en e-commerce UABC. Instituto y Facultad de Ingeniería. 2007

  14. Relación entre un componente y su interfaz UABC. Instituto y Facultad de Ingeniería. 2007

  15. Patrones de diseño • Patrón de diseño Modelo-Vista-Controlador (MVC) • Uno de los más socorridos en el modelo J2EE • Separa la presentación, la manipulación de los datos y la introducción de información • Modelo (Modelo). Se encarga de la lógica de la aplicación y la manipulación de datos • Vista (View). Se encarga del despliegue y la actualización de los elementos que la componen • Controlador (Controller). Se encarga de la introducción de datos a la aplicación, por lo general de parte del usuario UABC. Instituto y Facultad de Ingeniería. 2007

  16. Modelo MVC UABC. Instituto y Facultad de Ingeniería. 2007

  17. Espacios de ejecución de un sistema distribuído UABC. Instituto y Facultad de Ingeniería. 2007

  18. Requerimientos del J2EE • Independencia de la plataforma • Especialmente del lado del cliente • Reusabilidad • Modularidad • Escalabilidad • Facilidad de administración y mantenimiento La idea detrás del J2EE es la de proveer un estandar simple y unificado para aplicaciones distribuídas a través de modelos de aplicación basado en componentes. UABC. Instituto y Facultad de Ingeniería. 2007

  19. La plataforma J2EE • Es en escencia un ambiente de servicios de aplicaciones distribuídas • Se compone de: • Una infraestructura de ejecución para el hospedaje de aplicaciones (runtime hosting applications) • Una familia de APIs para construir aplicaciones UABC. Instituto y Facultad de Ingeniería. 2007

  20. J2EE APIs • Java Database Connectivity (jdbc) • Remote Method Invocation Inter-ORB protocol (RMI-IIOP) • Enterprise Java Beans (EJB) • Java Servlets 2.2 • Java Server Pages 1.1 (jsp) • Java Message Service (JMS) • Java Naming and Directory Interface (JNDI) • Java Transaction API • Java Mail • Standard Java API UABC. Instituto y Facultad de Ingeniería. 2007

  21. Arquitectura de J2EE • Contenedores • La arquitectura se compone de cuatro contenedores • Un contenedor de WEB. Para hospedar Java servlets y páginas JSP. • Un contenedor de EJB. Para hospedar componentes JavaBeans • Un contenedor de Applets. Para ejecutar applets. • Un contenedor de aplicaciones clientes. Para ejecutar aplicaciones clientes de consola. • Un contenedor es un ejecutor (runtime) Java 1.2 Standar Edition para componentes de aplicaciones UABC. Instituto y Facultad de Ingeniería. 2007

  22. Arquitectura de un contenedor • Componentes de aplicaciones (application components). • Incluye servlets, jsp, ejb, etc. Pueden ser empaquetados en archivos. • Definidores del despliegue e iniciación (deployment descriptors). • Un archivo en XML que describe los componentes de la aplicación. • Incluye también información adicional para la administración efectiva de componentes de la aplicación. UABC. Instituto y Facultad de Ingeniería. 2007

  23. Partes de la arquitectura de un contenedor • Contratos de componentes • Definidos por la JVM • Para el contenedor WEB el contrato es para seguir los APIs de Servlets y JSP • APIs de servicios del contenedor • Un contenedor provee una vista global a varios APIs corporativos especificados en la plataforma J2EE • Accesibles via JNDI • Servicios declarativos • Son servicios o aciones que se llevan a cabo por el contenedor en el que se encuentra una aplicación via una invocación específica en los deployment descriptors • Otros servicios del contenedor • Recolección de basura • Colecciones de recursos (resource pooling) UABC. Instituto y Facultad de Ingeniería. 2007

  24. Tecnologías en J2EE • Tecnologías de componentes • Contienen la lógica de la aplicación • Servlets, JSP, EJB • Tecnologías de servicio • Servicios de soporte para los componentes de aplicaciones • JDBC, JNDI, JTA • Tecnologías de comunicación • Proveen los mecanismos de comunicación entre las diferentes partes de la aplicación, ya sean locales o remotas • HTTP, TCP/IP, SSL, RMI, RMI-IIOP,JMS,JavaMail UABC. Instituto y Facultad de Ingeniería. 2007

  25. UABC. Instituto y Facultad de Ingeniería. 2007

  26. Desarrollando aplicaciones J2EE • Desarrollo del componente de la aplicación • Se modelas las lógica del sistema en la forma de componentes de aplicaciones • Composición de los componentes de la aplicación en módulos • Los componentes de la aplicación se empaquetan en módulos. Se proveen deployment descriptors para cada módulo • Composición de módulos en la aplicación • Integración de múltiples módulos en aplicaciones J2EE proveyendo sus deployment descriptors • Despliegue de la aplicación • Se despliega e instala la aplicación empaquetada en un servidor J2EE UABC. Instituto y Facultad de Ingeniería. 2007

  27. Estructura de despliegue de una aplicación J2EE • Se distribuye en un solo archivo .WAR • Cada directorio a nivel raíz del servidor se considera un contenedor de aplicaciones • Cada aplicación WEB debe contener: • Directorio WEB-INF en donde se coloca el material no visible para el cliente • Archivo web.xml, que es el deployment descriptor para cada aplicación WEB • Directorio lib, se colocan todas las librerias en archivos .jar (opcional) • Directorio classes, se colocan todas las clases en java manteniendo la estructura jerarquica de sus paquetes UABC. Instituto y Facultad de Ingeniería. 2007

  28. SERVLETS UABC. Instituto y Facultad de Ingeniería. 2007

  29. ¿Qué es un Servlet? • Es un programa JAVA que se ejecuta en el marco de un servicio de red, como por ejemplo un servidor web, y que recibe peticiones de un cliente y responde a ellas. “Los servlets son a los servidores lo que los applets son a los browsers” El Ciclo de Vida • Los Servlets al igual que los Applets poseen un Ciclo de Vida perfectamente definido controlado por un contenedor. • La interfaz que se utiliza para implementarlos define una serie de métodos para cada una de sus etapas. Es el contenedor el que se encarga de invocarlos. UABC. Instituto y Facultad de Ingeniería. 2007

  30. Servlets • Extienden la funcionalidad de un servidor • Se hospedan en un contenedor de servlets • Reciben solicitudes de un cliente y generan una respuesta HTML o XML • El API indica como: • Inicializar y finalizar un servlet • Acceder al entorno del contenedor • Recibir solicitudes y enviar respuestas • Mantener información sobre la sesión • Interactuar con otros servidores UABC. Instituto y Facultad de Ingeniería. 2007

  31. Ciclo de vida de un Servlet UABC. Instituto y Facultad de Ingeniería. 2007

  32. Ciclo de vida de un Servlet • Cuando el servidor carga el Servlet, invoca el métodoinit. Todas las peticiones que lleguen antes de que este método finalice su ejecución, deberán esperar para ser atendidas. • Al finalizar la ejecución del método init, las peticiones son atendidas por el métodoservice. Normalmente el servidor puede manejar varias peticiones simultáneamente y asigna un hilo de ejecución a cada petición. • Cuando el servidor quiere descargar el Servlet invoca el método destroy. UABC. Instituto y Facultad de Ingeniería. 2007

  33. Ejemplo de un Servlet • Página HTML con un campo de entrada y botones Submit y Reset • Código HTML <html> <head> <title>Ejemplo "Mi Primer Servlet"</title> </head> <body> <form action=http://servidor:8080/servlet/MiPrimerServlet method=POST> <BR> <BR>Introduzca un texto en el cuadro y presione "Submit"<BR> <BR> <input type=text name=TEXTO> <BR> <BR><input type=submit><input type=reset></form> </body> </html> UABC. Instituto y Facultad de Ingeniería. 2007

  34. Ejemplo En el código HTML destacan dos partes. • La cabecera del form, que indica la acción a desencadenar en el servidor al presionar el botón Submit. • La parte en que se define la forma. UABC. Instituto y Facultad de Ingeniería. 2007

  35. Código del Servlet // MiPrimerServlet.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class MiPrimerServlet extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { PrintStream out = new PrintStream(res.getOutputStream()); res.setContentType("text/html"); String TEXTO = req.getParameter("TEXTO"); out.println("<p>Usted ha escrito : "+TEXTO+"</p>"); } } UABC. Instituto y Facultad de Ingeniería. 2007

  36. Ejemplo • El ejemplo da muestra del potencial y simplicidad que se deriva de la utilización de los Servlets. • El archivo que contiene el Servlet MiPrimerServlet.java. Después de compilarlo con javac, se debe almacenar en el directorio /servlets dentro del directorio donde se haya instalado el servidor de Web. • Para ejecutar y comprobar que funciona bien el Servlet, solo se tiene que introducir en el navegador una dirección como: http://[nombre_servidor_DNS]:8080/MiPrimerServlet.html UABC. Instituto y Facultad de Ingeniería. 2007

  37. Java Server Pages UABC. Instituto y Facultad de Ingeniería. 2007

  38. Introducción • El objetivo de la especificación de JSP es la de simplificar la creación y administración del páginas dinámicas mediante la separación del contenino y su presentación. • Son archivos que combinan HTML estandar y etiquetas de script. • Simplifican la capa de presentación dinámica en una arquitectura multi-capas. UABC. Instituto y Facultad de Ingeniería. 2007 1

  39. Desarrollo de un JSP • Se edita un archivo de texto con HTML y etiquetas de script. • Se “despliega” en el servidor de aplicaciones con la extensión .jsp en el área de contenido visible por el cliente. • Al solicitarlo, el contenedor WEB lo compila y lo convierte en un servlet. • Cuando se realizan modificaciones al archivo original, el contenedor recompila el JSP. UABC. Instituto y Facultad de Ingeniería. 2007 1

  40. Ciclo de vida de un JSP • public void jspInit() • Similar al método init de los servlets. • public void jspDestroy() • Similar al método destroy de los servlets • public void _jspService(HttpSerlvetRequest req, HttpServletResponse res) throws ServletException, IOException • Corresponde al cuerpo de la página jsp. • Nunca debe de ser provista por el desarrollador • No es indispensable que el programador proporcione los dos primeros métodos UABC. Instituto y Facultad de Ingeniería. 2007 1

  41. JSP <jsp tags> <java code> JSP <jsp tags> <java code> First request JSP <jsp tags> <java code> client Generates response Servlet Proceso de solicitud de un jsp Uses Translated Uses UABC. Instituto y Facultad de Ingeniería. 2007 1

  42. Etiquetas en JSP • Caen dentro de tres categorías: • Directrices • Afectan la estructura completa del servlet resultante de la transportación del jsp. • Elementos de script • Permiten insertar código en java en la página jsp • Acciones • Etiquetas especiales disponibles para modificar el comportamiento durante la ejecución • Etiquetas creadas por el desarrollador (custom tags) • Sirven para insertar código reutilizable definido por el desarrollador. Funcionan como macros. UABC. Instituto y Facultad de Ingeniería. 2007 1

  43. Directrices de JSP • Sirven como mensajes enviados al contenedor • Se emplean como valores globales como • Declaraciones de clases • Métodos a implementar • Especificación del tipo de contenido • Sentencias import UABC. Instituto y Facultad de Ingeniería. 2007 1

  44. Directrices de JSP: tipos • Existen tres tipos principales de directrices: • Page • Include • Taglib • Sintaxis • <%@ directivename attribute=“value” %> UABC. Instituto y Facultad de Ingeniería. 2007 1

  45. Elementos de script • Permite incluir código en java en la jsp. • Declaración de variables • Declaración de métodos • Scriptlets (código en java arbitrario) • Expresiones UABC. Instituto y Facultad de Ingeniería. 2007 1

  46. Declaraciones (ejemplo) <%! Int numTimes=3; Public String diHola(String name) { return “Hola “ + name + “ manito”; } %> <html><head><title>Un titulo</title<body> <h1>Pagina de prueba de directivas</h1> <p>El valor de numTimes es <%= numTimes %></p> <p>Diciendo hola al visitante: <%= diHola(“Mani”) %></p> </body> </html> </head> UABC. Instituto y Facultad de Ingeniería. 2007 1

  47. Scriptlets • Es un bloque de código en java que se ejecuta durante la solicitud-procesamiento y se encierra entre etiquetas <% … %> • En Tomcat, todo el código entre estas etiquetas es puesta en el método service() tal y como se escribe y en el orden en el que aparece en el jsp. UABC. Instituto y Facultad de Ingeniería. 2007 1

  48. Scriptlets ejemplo <html><head><title>Un titulo</title></head> <body> <h1>Pagina de prueba de scriptlets</h1> <% For (int i-=0; i < 10; i++) { out.println(“<b>Hola Mundo</b> ” + i); System.out.println(“Esto va al flujo de salida System.out” + i); } %> </body> </html> UABC. Instituto y Facultad de Ingeniería. 2007 1

  49. Expresiones • La expresión es una notación para un scriptlet que envía el valor de la expresión en java de vuelta al cliente. • Se evalua en la solicitud HTTP y el resultado se convierte a String y desplegada. • La expresión se encierra entre etiquetas <%= … %> UABC. Instituto y Facultad de Ingeniería. 2007 1

  50. Expresiones ejemplo <%@ page language="Java" %> <html><head><title>Un titulo</title></head> <body> <h1>Pagina de prueba de expresiones</h1> <%! int i=0; %> <% i++; %> Hola Mundo <%= "Esta pagina se ha accesado " + i + " veces" %> </body> </html> UABC. Instituto y Facultad de Ingeniería. 2007 1

More Related