Aplicaciones Web de Servidor

Slides:



Advertisements
Presentaciones similares
Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Advertisements

Internet y tecnologías web
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Curso de Java Capitulo 7: Continuación Poo Profesor:
Noveno Semestre UNIDEC
Servicios de red e Internet
DSOO - María Eugenia Valencia
Programación Distribuida
"java del lado del servidor" Servlet y JSP Java Server Pages.
Model View Controller (MVC)
Servlets Servlets.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Curso de Java y Aplicaciones Web
Capitulo 4 Excepciones.
Java 2 Platform Enterprise Edition
Ingeniería del Software
Sesión en Servlets 31 de Marzo de Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura.
RESUMENCURSO STRUTS 2 Resumen de lo visto en este tercer módulo: VISTA del framework Struts 2 Debes tener los conceptos muy claros sobre: Results UI Tags.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Laura Patricia Pinto Prieto Ingeniera de sistemas.
Tecnologías para el desarrollo de aplicaciones Web
Patrones de Comportamiento: Patrón de Diseño Observer
Semana 5 Subprogramas..
Servlets, JSP, JavaBEANS,JDBC
Diseño del Software Diseño de datos Diseño arquitectónico
DISEÑO DE SOFTWARE 1ª. Parte
SPRING MVC.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
Desarrollo de aplicaciones para ambientes distribuidos
TEMA 6. Applets y servlets
CURSO STRUTS 2 RESUMEN Resumen de lo visto en este primer módulo de INTRODUCCIÓN al framework Struts 2 Debes tener los conceptos muy claros sobre: Framework.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Arquitectura en Tres Capas
SICSTRA Sistema de Información para el control de solicitudes de tramites jurídicos Ministerio de Justicia y Seguridad Pública.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Modelo-Vista-Controlador Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación original fue realizada en Smalltalk.
FRAMEWORK VS Código fuente
Desarrollo con Servlets. Servlets: Introducción  Módulos que amplían los servidores orientados a petición/respuesta.  La respuesta en el lenguaje Java.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Daniel Fernández Lanvin Capa de Presentación. Daniel Fernández Lanvin Capa de Presentación Responsabilidades Navegabilidad del sistema Formateo de los.
Servlets 10 de Mayo de 2006.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Términos y Conceptos Básicos
Sun Microsystems. Los servlets son objetos que corren dentro del contexto de un contenedor de servlets y extienden su funcionalidad. También podrían correr.
Modelo de 3 capas.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
Cairngorm Framework v2.2. Mate Framework Prototipos rápidos Aplicación con compleja o repetitiva lógica Independencia en el desarrollo de UI de la lógica.
Luis Ponce Cabello.  Primera Parte : JSF  Segunda Parte : Facelets  Tercera Parte : Icefaces.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
Gestión de proyectos fin de carrera
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Aclaraciones al modelo MVC del Framework de Justicia
Generador de Páginas Hélio Martins
Autentificación y Seguridad en Aplicaciones Web.  Delegadas en el cliente y el servidor ◦ Basados en estándares de Internet  Autentificación Básica.
Conociendo el modelo Cliente-Servidor
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Notario electrónico Consejería de Justicia y Administración Pública Dirección General de Organización, Inspección y Calidad de los Servicios Antonio Pedro.
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
Presentado por : Grisales Ramírez Jhonier las capas del modelo osi.
JSF Simplificando nuestro trabajo. JSF – Java Server Faces Celula Creative SUN 2 La principal intención es liberar al programador de aspectos Web Pretende.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Aplicaciones Web de Servidor
Transcripción de la presentación:

Aplicaciones Web de Servidor Arquitectura y diseño: Patrón MVC 9 de Mayo de 2008

El patrón Modelo-Vista-Controlador

Arquitectura y diseño: Patrón MVC El patrón Modelo-Vista-Controlador se originó en la comunidad Smalltalk para implementar interfaces de usuario en los que las responsabilidades están bien distribuidas entre distintas partes (componentes) del diseño. Así, se decidió, distinguir tres responsabilidades distintas: Lógica de negocio  Modelo. Gestión de eventos de usuario  Controlador. Presentación  Vista.

Arquitectura y diseño: Patrón MVC Interfaz Usuario Vista Modelo Controlador Evento Datos Mostrar Vista Información Evento

Arquitectura y diseño: Patrón MVC - Tecnologías Java Interfaz Usuario (Navegador) Vista (JSPs) Modelo (beans) Controlador (servlet) Evento (forward) Datos (Propiedades de los Beans) (Petición) Mostrar Vista (HTML), jsp:getProperty Información Evento (Parámetros)

Arquitectura y diseño: Patrón MVC - El modelo El modelo representa la lógica de negocio de la aplicación. Encapsular el modelo de una aplicación en componentes facilita la depuración, mejora la calidad y favorece la reutilización de código. Puede dividirse en dos tipos de componentes: De estado. De acción.

Arquitectura y diseño: Patrón MVC - El modelo Los componentes de estado encapsulan el estado de la aplicación y exponen métodos para el acceso y cambio de éste. Al estar una capa por debajo de la capa de acción, los componentes de estado deben ser completamente independientes del protocolo. Así, podrán ser reutilizados en otro tipo de aplicaciones (RMI, etc…).

Arquitectura y diseño: Patrón MVC - El modelo La capa de componentes de acción define los cambios permisibles del estado en respuesta a los eventos. Los componentes de acción no pueden ser completamente independientes del protocolo, pero, aún así, se debe intentar reducir el acoplamiento al máximo o incluso construir dos subcapas, una dependiente del protocolo que transforme los eventos y delegue el procesamiento a otra capa de componentes de acción independientes del protocolo.

Arquitectura y diseño: Patrón MVC - El modelo Llamadas propias del protocolo Componentes de acción dependientes del protocolo Llamadas propias de la aplicación Acción Componentes de acción independientes del protocolo Llamadas propias de la aplicación Componentes de estado (independientes del protocolo) Estado

Arquitectura y diseño: Patrón MVC - El controlador El controlador es responsable de recibir los eventos, determinar el procesador del evento, invocar al procesador y finalmente provocar la generación de la vista apropiada. En una aplicación web java la tecnología más adecuada para implementar los controladores son los Servlets. Estos servlets actúan como direccionadores (dispatchers) de las peticiones.

Arquitectura y diseño: Patrón MVC - El controlador Los controladores deben realizar las siguientes tareas: Control de la seguridad. Identificación de eventos. Preparar el modelo. Procesar el evento. Manejar los errores. Provocar la generación de la respuesta.

Arquitectura y diseño: Patrón MVC - La vista La vista representa la lógica de presentación de la aplicación. Los componentes de la vista extraen el estado actual del sistema del modelo y proporcionan la interfaz de usuario para el protocolo que se está usando. Como parte de la generación la vista debe presentar al usuario el conjunto de eventos que puede generar en ese momento concreto. La tecnología Java indicada para la generación de vistas en aplicaciones web son las JSPs. Separar el modelo y la vista permite la construcción de interfaces con diferentes apariencias.

Delegación de peticiones: RequestDispatcher.

Arquitectura y diseño: Delegación de peticiones - RequestDispatcher Al construir un aplicación web suele ser necesario delegar el procesamiento de una petición a otros Servets (o JSPs), o incluir la salida de otros Servlets en la respuesta (para generación modulada de la respuesta). Para este tipo de procesamiento el API Servlet proporciona la interfaz javax.servlet.RequestDispatcher.

Arquitectura y diseño: Delegación de peticiones - RequestDispatcher Se puede recuperar un RequestDispatcher de tres manaras diferentes: ServletContext.getNamedDispatcher(String name)  Devuelve un RequestDispatcher para redirigir la petición a un servlet declarado en el DD con el nombre name. ServletContext.getRequestDispatcher(String path)  Devuelve un RequestDispatcher para redirigir la petición al recurso determinado por path. ServletRequest.getRequestDispatcher(String path)  Devuelve un RequestDispatcher para redirigir la petición al recurso determinado por path. Si cualquiera de estos métodos no pueden determinar el destino de la redirección devolverán null.

Arquitectura y diseño: Delegación de peticiones - RequestDispatcher La interfaz RequestDispatcher define los siguientes métodos: public void forward(ServletRequest req, ServletResponse res) throws ServletException, IOException public void include(ServletRequest req, ServletResponse res) throws ServletException, IOException.

Aspectos de arquitectura y diseño en el contenedor Web – Delegación de peticiones: forward. El método forward delega la petición en el servlet destino. El servlet origen no debe haber escrito nada en la respuesta, es decir, se supone que toda la generación de la respuesta la va a llevar a cabo el servlet destino. Si se ha escrito algo en la respuesta, cualquier llamada al método forward lanzará IllegalStateException. Antes de que la llamada al método forward termine el contenedor habrá “cometido” la respuesta y cerrado el stream.

Aspectos de arquitectura y diseño en el contenedor Web – Delegación de peticiones: include. Incluye toda la salida generada por el servlet destino en la respuesta. El servlet destino tiene acceso a todos los métodos de la petición, pero tiene ciertas limitaciones a la hora de interactuar con la respuesta (el objeto ServletResponse), ya que cualquier intento de modificar o establecer cabeceras en la respuesta serán ignorados. A no ser que el RequestDispatcher haya sido recuperado por medio del método getNamedDispatcher los siguientes atributos serán añadidos al objeto ServletRequest: javax.servlet.include.request_uri javax.servlet.include.context_path javax.servlet.include.servlet_path javax.servlet.include.path_info javax.servlet.include.query_string

Aspectos de arquitectura y diseño en el contenedor Web – Delegación de peticiones: errores. Si durante una llamada a forward o a include se produce una excepción, la especificación indica que: Si la excepción es de tipo IOException o ServletException se propagará hacia el servlet origen. Si la excepción es de otro tipo se envolverá en una ServletException y el servlet origen podrá recuperar la excepción por medio del método Throwable getRootCause() de ServletException.

Aplicación de Ejemplo de MVC MVCFutbol1