La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.

Presentaciones similares


Presentación del tema: "IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web."— Transcripción de la presentación:

1 IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web

2 IS2Objetos Distribuidos - J2EE,RMI2 Introducción La web es uno de los servicios presentes en Internet, es un sistema de hipertexto/hipermedia que conforma un entramado de paginas por las que podemos navegar Las paginas Web pueden ser: Estáticas: Paginas que muestran información y no tienen funcionalidad más allá de los propios enlaces Dinámicas: Paginas que permiten la interactividad con el usuario, el interfaz de usuario de las aplicaciones web

3 IS2Objetos Distribuidos - J2EE,RMI3 Introducción Dentro de las aplicaciones web debemos distinguir entre la parte de la aplicación que se ejecuta en el cliente y la parte de la aplicación que se ejecuta en el servidor En la parte cliente se ejecutan operaciones relativas al interfaz de usuario de la aplicación: efectos de presentación, cálculos y validaciones que no requieran de datos alojados en el servidor etc,etc En la parte servidora es donde se ejecuta toda la lógica asociada a nuestra aplicación que requiere de datos que están en el servidor

4 IS2Objetos Distribuidos - J2EE,RMI4 Introducción: tecnologías para la parte cliente Lenguajes de Script: JavaScript VisualBasicScript Estos lenguajes son interpretados y ejecutados por el navegador, están embebidos dentro del código HTML de las paginas web y se suelen utilizar para realizar pequeños procesos dentro de la pagina web que esta visualizando el cliente Desde estos lenguajes es posible acceder a todos los elementos de la pagina web (ventanas, formularios, controles..) y programar respuestas a determinadas acciones del usuario (cerrar una ventana, pulsar un boton...)

5 IS2Objetos Distribuidos - J2EE,RMI5 Introducción: tecnologías para la parte cliente Otras tecnologías del lado cliente: DHTML: Permite dividir una pagina en diferentes “capas” de modo en cada momento podemos seleccionar visualizar una u otra CSS (Cascade Style Sheet): Son hojas de estilo que permiten uniformar el aspecto de nuestras paginas web, definiendo tabulaciones, tamaño de letra, color y una gran gama de posibilidades Applets: Son programas Java que se ejecutan dentro del navegador del cliente, se utilizan cuando se requiere implementar alguna funcionalidad en el lado cliente que por sus características o complejidad no puede hacerse con otros lenguajes o tecnologías del lado cliente ActiveX: Es una alternativa a los Applets de Java, sólo funcionarán en clientes con sistema operativo Windows

6 IS2Objetos Distribuidos - J2EE,RMI6 Introducción: tecnologías para la parte servidor La parte servidora de una aplicación web podemos dividirla en: Lógica de presentación: Es la parte encargada de construir dinámicamente las paginas que se presentarán al usuario Lógica de negocio: los diferentes procesos que efectuará nuestra aplicación: dar de alta un usuario, realizar un pedido etc,etc. Acceso a fuentes de datos: Bases de datos, sistema legacy u otras fuentes de datos

7 IS2Objetos Distribuidos - J2EE,RMI7 Introducción: tecnologías para la parte servidor CGI (Common Gateway Interface) Es una norma para establecer comunicación entre un servidor web y un programa Un CGI se puede programar en cualquier lenguaje, los más habituales son: PERL, C, C++, phyton, visual basic etc,etc Por cada petición el servidor ejecuta el programa CGI pasandole los datos de la petición, el programa CGI escribe el HTML en la salida estándar y el servidor web la envía al cliente Desventajas de esta tecnología: Para cada petición el servidor web lanzara un CGI en su propio espacio de memoria, los sistemas basados en CGI’s son poco escalables

8 IS2Objetos Distribuidos - J2EE,RMI8 Introducción: tecnologías para la parte servidor Lenguajes de Script: ASP PHP JSP Son lenguajes para programar scripts del lado del servidor, que se incrustan dentro del código HTML El servidor web se encarga de ejecutar el código incrustado y devolver el HTML generado al cliente Desventajas: En estos lenguajes se mezcla la lógica de presentación con la lógica de negocio, pueden ser útiles para desarrollos pequeños/medianos pero no se recomienda su uso en grandes desarrollos

9 IS2Objetos Distribuidos - J2EE,RMI9 Introducción: tecnologías para la parte servidor Servlets Java: Permiten construir programas para generar paginas dinámicas en Java, aportan una serie de ventajas sobre la tecnología CGI: Cada petición es manejada por un thread Java de peso ligero, no un pesado proceso del sistema operativo en CGI, si hay N peticiones simultáneas para el mismo programa CGI, el código de este programa se cargará N veces en memoria. Sin embargo, con los Servlets, hay N threads pero sólo una copia de la clase Servlet Portabilidad del código Java

10 IS2Objetos Distribuidos - J2EE,RMI10 Servlets Caracteristicas: Son independientes del servidor y del sistema operativo utilizado Permiten obtener facilmente información acerca del cliente (ip del cliente) Permiten gestionar de forma sencilla sesiones con el cliente Se aprovechan de todas las capacidades del lenguaje Java para comunicaciones, conexiones a bases de datos y un largo etc

11 IS2Objetos Distribuidos - J2EE,RMI11 Servlets Algunos interfaces importantes del API servlet: Interface ServletContext : Permite acceder a información sobre el entorno de ejecución del servlet Interface ServletConfig: Permite leer parametros de inicialización del servlet Interface HttpServletRequest: Permite acceder a la petición enviada por el cliente Interface HttpServletResponse: Contiene los métodos necesarios para devolver la respuesta al cliente

12 IS2Objetos Distribuidos - J2EE,RMI12 Servlets: Ciclo de vida El Método Init(): Cuando un servlet es cargado por primera vez, el método init es llamado por el contenedor de servlets. Este método no será llamado nunma más mientras el servlet se este ejecutando Este método recibe un sólo parametro del tipo ServletConfig que permite leer los datos de configuración del servlet Se puede utilizar este método para incluir operaciones de inicialización costosas en tiempo de proceso, por ejemplo establecer la conexión con una base de datos

13 IS2Objetos Distribuidos - J2EE,RMI13 Servlets: Ciclo de vida Método service(): Cada petición por parte del cliente se traduce en una llamada al método service() del servlet Este método recibe dos parametros: ServletRequest: que contiene la petición del cliente ServletResponse: que contiene los métodos necesarios para devolver la respuesta La clase HttpServlet define el método service llamando a otros dos métodos DoGet() y DoPost() según sea la petición. De modo que cuando implementemos un servlet sobreescribiremos estos métodos en lugar del método service

14 IS2Objetos Distribuidos - J2EE,RMI14 Servlets: Ciclo de vida Método Destroy(): El servidor llamará a este método cuando el servlet se descargue de memoria De esta forma, es posible liberar recursos (ficheros abiertos, conexiones con bases de datos, etc.) de una forma segura. Cuando esto no es necesario o importante, no hará falta redefinir el método destroy()

15 IS2Objetos Distribuidos - J2EE,RMI15 Servlets: Seguimiento de usuarios El API servlets nos facilita la labor para el siguiente de usuarios con la posibilidad de usar 3 métodos diferentes: Cookies: La clase javax.servlet.http.cookie facilita la creación, lectura y escritura de cookies Reescritura de URL's: Consiste en reescribir los enlaces internos a otras paginas de mi aplicación incluyendo en ellos un identificador de sesión. La clase HttpServletResponse dispone del método encodeURL() que automatiza esta tarea Sesiones gestionadas por el servidor: Se delega en el contenedor de servlets la gestión de servlets, el contenedor dependiendo de su configuración o las reestricciones del cliente utilizara alguno de los dos métodos anteriores para gestionar la sesión

16 IS2Objetos Distribuidos - J2EE,RMI16 MVC Web La arquitectura MVC (Model/View/Controller) fue introducida como parte de la versión Smalltalk-80 del lenguaje de programación Smalltalk. Fue diseñada para reducir el esfuerzo de programación necesario en la implementación de sistemas múltiples y sincronizados de los mismos datos

17 IS2Objetos Distribuidos - J2EE,RMI17 MVC Web En la web este patron es ligeramente diferente ya que el modelo no puede enviar notificaciones a las vistas por las restricciones del protocolo HTTP En la Web este patron tiene como principal ventaja una separación clara de las distintas partes de la aplicación Web Modelo = lógica de negocio Vista = lógica de presentación Controlador = esquema de navegación

18 IS2Objetos Distribuidos - J2EE,RMI18 MVC Web Browser firewall controlador Vista lógica presentación Modelo lógica negocio acceso datos BD Esquema de navegación

19 IS2Objetos Distribuidos - J2EE,RMI19 MVC Web 1. El controlador carga el esquema de navegación al comienzo de la aplicación 2. El browser realiza una petición 3. El controlador recibe la petición y la redirige al método adecuado de la lógica de negocio 4. la capa de lógica de negocio consulta a través de la capa de acceso a datos la BD 5. la capa de lógica de negocio devuelve el resultado de la operación al controlador 6. El controlador redirige el resultado a la vista adecuada (en función de la configuración de navegación y el resultado de la operación) 7. La vista genera la pagina que se enviará al cliente a partir de los datos recibidos del controlador

20 IS2Objetos Distribuidos - J2EE,RMI20 MVC Web: ventajas del modelo Al separar de manera clara la lógica de negocio (modelo) de la vista permite la reusabilidad del modelo, de modo que la misma implementación de la lógica de negocio que maneja una aplicación pueda ser usado en otras aplicaciones, sean éstas web o no Permite una sencilla división de roles, dejando que sean diseñadores gráficos sin conocimientos de programación o desarrollo de aplicaciones los que se encarguen de la realización de la capa vista, sin necesidad de mezclar código Java entre el código visual que desarrollen Permite crear diferentes vistas para un mismo modelo: Diferentes “temas” según el usuario Internacionalización de la aplicación Diferentes formatos de salida para distintos dispositivos (browsers, pda's, moviles etc)

21 IS2Objetos Distribuidos - J2EE,RMI21 MVC Web: J2EE Esta arquitectura encaja muy bien con las tecnologías de la plataforma J2EE: El modelo: Existen dos claras alternativas para implementar la lógica de negocio en J2EE: POJOs (Plain Old Java Objects) Utilizando EJB (Enterprise JavaBeans) en sistemas con unas mayores necesidades de concurrencia o distribución

22 IS2Objetos Distribuidos - J2EE,RMI22 MVC Web: J2EE Para la vista existen diversas opciones: JSP (Java Server Pages): muy extendidas, con gran cantidad de librerías tanto open source como comerciales Motores de plantillas: Velocity Freemaker Xml + XSLT: la lógica de negocio devolverá los datos a presentar en xml, para generar la vista se transforma este xml mediante una plantilla de transformación xslt

23 IS2Objetos Distribuidos - J2EE,RMI23 MVC Web: J2EE El controlador en J2EE se implementa mediante servlets, existen diversos frameworks que proporcionan implementaciones MVC facilitando enormemente los desarrollos Struts JSF (Java Server Faces) Tapestry WebWork.....

24 IS2Objetos Distribuidos - J2EE,RMI24 Servicios Web Definición: Un Web Service es un componente de software que se comunica con otras aplicaciones codificando los mensaje en XML y enviando estos mensaje a través de protocolos estándares de Internet tales como el Hypertext Transfer Protocol (HTTP). Intuitivamente un Web Service es similar a un sitio web que no cuenta con un interfaz de usuario y que da servicio a las aplicaciones en vez de a las personas

25 IS2Objetos Distribuidos - J2EE,RMI25 Servicios Web En la actualidad existen dos protocolos diferentes para llevar a cabo la implementación de servicios web: Xml-RPC SOAP La diferencia entre SOAP y XML-RPC es su complejidad. XML-RPC está diseñado para ser sencillo. SOAP por el contrario está creado con idea de dar un soporte completo y minucioso de todo tipo de servicios web

26 IS2Objetos Distribuidos - J2EE,RMI26 Servicios Web Caracteristicas de SOAP: No esta asociado con ningún lenguaje No se encuentra asociado a ningún protocolo de transporte Aprovecha los estándares existentes en la industria Permite la interoperabilidad entre múltiples entornos

27 IS2Objetos Distribuidos - J2EE,RMI27 Servicios Web: WSDL WSDL (Web Service Description Language) es un lenguaje que nos permite describir los servicios web de una forma estándar Un fichero WSDL debe proporcionar toda la información necesaria para que un cliente pueda realizar peticiones al servicio, incluyendo: El formato de los mensajes de petición que pueden aceptar los servicios así como el formato de las respuestas Los parametros y los tipos de los parametros de los mensajes de petición y respuesta Las direcciones de cada uno de los servicios expuestos El protocolo de transporte de mensajes (HTTP, SMPT...)

28 IS2Objetos Distribuidos - J2EE,RMI28 Servicios Web: UDDI UDDI (Universal Description Discover and Integration) es un mecanismo que permite dar a conocer el servicio Web para que los clientes puedan utilizarlo Basicamente la interfaz UDDI permite dos tipos de acciones: Registrar nuevos servicios web Realizar busquedas de servicios web existentes

29 IS2Objetos Distribuidos - J2EE,RMI29 Servicios Web


Descargar ppt "IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web."

Presentaciones similares


Anuncios Google