SlideShare una empresa de Scribd logo
Combinación de tecnologías en la
  construcción de Aplicaciones
              Web
       Juan Ramón Pérez Pérez
          Universidad de Oviedo
          jrpp@pinon.ccu.uniovi.es
De las tecnologías a la
              arquitectura
• Ya conocemos varias tecnologías que nos sirven
  de base para construir servidores de información.
• Pero, ¿Cómo construimos una aplicación web?
   – ¿Utilizamos una sola tecnología?
      • ¿Cuál de ellas podemos utilizar?
   – ¿Combinamos varias tecnologías recogiendo sus
     ventajas?
      • ¿En qué parte de la aplicación encaja cada tecnología?



                                                                 2
Tecnologías servlets y JSP
• Pudiendo utilizar JSP. ¿Es necesario desarrollar
  algún servlet?
• ¿Cuál es la mejor forma de combinar servlets y
  JSP?
• ¿Dónde situamos el código escrito en Java?
• ¿Hay otros componentes involucrados en el
  procesamiento de peticiones como los JavaBeans?
• Si es así, ¿en qué parte de la arquitectura aparecen
  y cuál es su papel?
                                                         3
Qué es la arquitectura de una
            aplicación
• Una arquitectura se utiliza para organizar las
  diferentes partes de una aplicación.
• Las aplicaciones web pueden tener muchos
  elementos:
   – Páginas JSP, clases Java, archivos HTML.
• Definir una arquitectura:
   – Ayudará a decidir cómo dividir la aplicación web.
   – Proporcionará una pauta para definir la forma en que
     todos los componentes trabajen juntos para llevar a
     cabo la funcionalidad que se pretende conseguir con la
     aplicación.
                                                              4
Arquitecturas para construir
       Aplicaciones Web
• Arquitectura centrada en páginas. JSPs
  gestionan las peticiones directamente. 
  Modelo 1.
• Arquitectura de “dispatcher” o centrada
  en servlets. Un servlet o un JSP actúa de
  mediador o controlador, delegando la
  resolución de peticiones en páginas JSP y
  JavaBeans.  Modelo 2.
                                              5
Arquitectura centrada en páginas
• Se utilizan páginas JSP/HTML para interactuar
  con el usuario (lógica de presentación).
• Páginas JSP responsables de controlar el flujo de
  la aplicación: recibir peticiones, direccionar a la
  siguiente página (lógica de control o
  procesamiento).
• El acceso a los datos se lleva a cabo desde la
  misma página JSP o con JavaBeans, según la
  variante.
                                                        6
Esquema de la arquitectura
    centrada en páginas
                               Nivel de
                JSP            lógica de
                 JSP           negocio
                  JSP
HTML               JSP
 HTML
 / HTML
   JSP
   / HTML
     JSP
     / / JSP
       JSP
                               JavaBeans
                                JavaBeans
                                 JavaBeans
                                  JavaBeans
 Nivel de           Nivel de
 presentación       Datos
                                      BD
                                              7
Arquitectura centrada en páginas
• Ventajas:
  – es simple de programar y permite al creador de las
    páginas generar contenido dinámico fácilmente,
    basándose en la petición y el estado de la aplicación.
• Inconvenientes:
  – Tiene problemas de mantenimiento cuando la
    aplicación crece. Muchos scriptlets incrustados en las
    páginas JSP.
  – No sólo reduce modularidad y oportunidades de
    reutilización de código; sino que también proporciona
    una separaciones de papeles de desarrollo muy pobre.
                                                             8
Vista-Página (I)
• Esta arquitectura básica conlleva:
  – Invocaciones directas a páginas del servidor
  – Código Java incrustado (scriplets) y
  – Etiquetas JSP que generan dinámicamente la
    salida por sustitución dentro del HTML.
  – El acceso a datos se realiza directamente sobre
    la página JSP.


                                                      9
Vista-Página (y II)
• Beneficios:
   – Desde el punto de vista del desarrollador es una
     aproximación muy directa al problema y fácil de
     abordar.
   – El código es fácil de localizar ya que se encuentra junto
     con la página que gestiona.
• Inconvenientes
   – Sólo permite abordar aplicaciones web de pequeña
     escala.
   – El que todo el código esté dentro de las página impide
     separar papeles en el desarrollo.
                                                              10
Vista-Página con JavaBeans
• Se utilizan JavaBeans para acceder a los datos.
• La utilización de componentes JavaBeans permite:
   – Separar el código Java relacionado con la lógica del
     negocio del código de almacenamiento.
   – Se podrían utilizar etiquetas de usuario en la página
     JSP para hacer referencia al JavaBean.
   – Permite realizar una pequeña separación de papeles en
     el desarrollo de la aplicación web.


                                                        11
Separación de papeles en el
   desarrollo de una aplicación web
                                Dominio de los

    Presentación                desarrolladores

        de          Lógica
       datos         de la
                   aplicación



                    Acceso
                      a              Base de
                    datos             datos
Dominio de los
Diseñadores web
                                                  12
Arquitectura de “dispatcher” o
              MVC
• Los JSP se utilizan para generar el nivel de
  presentación y los Servlets para realizar las tareas
  que requieren procesamiento.
• Además el controlador gestiona la navegación,
  decidiendo a que página JSP debe redireccionarse
  a continuación.
• No aparece lógica de procesamiento dentro de la
  presentación JSP: simplemente accede a los
  JavaBeans que previamente se han cargado para
  extraer dinámicamente su contenido.
                                                     13
Esquema de la arquitectura MVC
            1. Envío de petición              Nivel de
            al controlador
                                   Servlet    lógica de
                                      o       negocio
  HTML                               JSP
   HTML
   / HTML
     JSP                                      2. Invocación
     / HTML
       JSP                                    de Beans
       / / JSP
         JSP       3. Redirección a
                   la página                     JavaBeans
                                                  JavaBeans
                                                   JavaBeans
                                                    JavaBeans
 Nivel de                                Nivel de
 presentación                            Datos
                                                       BD
                                                                14
Componentes arquitectura MVC
                    Datos
Modelo       (Propiedades Beans)    Vista
Beans                               JSPs
                                                    Info.Interfaz
                         Evento                        (HTML)
 Evento                 (forward)                        Datos
(petición)                                  (<jsp:getproperty>)
                Controlador                       Info.Eventos
                  servlet                          (parámetros)
                               Evento
                              (petición)     Interfaz
                                            Navegador
                                                             15
El Modelo
• Representa la lógica de negocio de una
  aplicación.
• Encapsula las reglas de negocio en
  componentes que son fáciles de probar,
  permiten mejorar la calidad del software y
  promueven la reutilización.


                                               16
Componentes de estado
• El estado:
   – Define el conjunto actual de valores del modelo.
   – Incluye métodos para cambiar estos valores.
• Estos métodos recogen parte de la lógica de
  negocio.
• Deberían de ser independientes del protocolo que
  se utilizara para acceder a ellos.
• Los JavaBeans son la elección lógica para
  implementar los componentes de estado.

                                                        17
Cualidades del diseño en
             JavaBeans
• La construcción independiente de estos
  componentes permite las siguientes cualidades de
  diseño:
   – Reutilización, la eliminación de la lógica de
     presentación, permite que diferentes aplicaciones hagan
     uso de la misma lógica de negocio.
   – Calidad, recogiendo la lógica de negocio en el mismo
     sitio, se puede probar y revisar.
   – Robustez, encapsulando toda la lógica en un solo sitio
     podemos facilitar su reutilización y reducir las
     posibilidades de que aparezca un error.
                                                          18
Componentes de proceso
• Las acciones:
  – Definen los cambios permitidos para los
    estados en respuesta a los eventos.
• La lógica de negocio también determina
  como se construyen los componentes de
  proceso.


                                              19
Alternativas en el diseño de
     componentes de proceso
• El diseño de estos componentes permite más
  alternativas que los de estado:
   – En sistemas simples, las acciones pueden ser llevadas a
     cabo en el controlador; pero generalmente no se
     recomienda.
   – Normalmente se plantea un nivel de componentes de
     proceso para capturar los requisitos que dirigen la
     interacción con los componentes de estado.
• Frecuentemente estos componentes están ligados a
  un protocolo para poder obtener información del
  evento.
                                                           20
La vista
• Constituye la lógica de presentación de una
  aplicación.
• Los componentes de la vista obtienen el estado
  actual del sistema del modelo y proporcionan el
  interfaz de usuario para el protocolo involucrado
  (en nuestro caso HTTP de los navegadores web).
• Como parte de la generación del interfaz de
  usuario la vista presenta los eventos que el usuario
  puede activar en cada momento.
• JSP es la elección natural para implementar la
  vista.                                             21
El controlador
• Proporciona unión a toda la arquitectura.
• Responsable de:
   –   recibir eventos,
   –   determinar cual es el manejador apropiado,
   –   invocar este manejador y
   –   determinar la generación de la respuesta apropiada.
• Los servlets son la elección ideal para la
  tecnología del controlador.

                                                             22
Tareas que debería gestionar el
           controlador
• Seguridad, asegurar autentificación y autorización.
  Esto podría delegarse en el motor de servlets.
• Identificación de eventos.
• Preparar el modelo, asegurar la disponibilidad de
  los componentes de modelo requeridos.
• Procesamiento del evento.
• Gestión de errores, gestionar los errores generados
  por los manejadores.
• Activar la generación de la respuesta, pasando el
  control al generador apropiado.
                                                   23
Cuestiones de diseño
• Esta arquitectura implica, de forma inherente, un
  cierto acoplamiento entre los distintos
  componentes que deberíamos de evitar. Ej.: La
  vista debe proporcionar información de eventos de
  forma que puedan ser identificados de forma única
  por el controlador.
• La vista tiene acoplamiento con el controlador por
  la información de eventos y el controlador está
  acoplado tanto con el modelo como con la vista.
• Para superar este inconveniente se puede utilizar
  un fichero de inicialización, con las capacidades 24
  de introspección y reflectividad de Java.
Ejemplo de arquitectura MVC
(desde el contenedor            Controlador (servlet)
de servlets)
                                       Tabla manejadores
init                 init( )           eventos
                                       Evento – Manejador
 petición           doGet( )
                    doPost( )


                                      process( )     Clases
                                   process( )        manejadoras
     respuesta                       forward( )      de eventos
  respuesta                        forward( )
                                                             25
Proyecto Struts
•   Qué es Struts
•   Particularidades del MVC en Struts
•   ¿Para qué sirve?
•   ¿Cómo se puede utilizar?
•   Más información
    – http://jakarta.apache.org/struts
    – http://jakarta.apache.org/struts/userGuide
    – http://www.programacion.com/java/tutorial.joa_struts.html


                                                          26

Más contenido relacionado

PDF
1/9 Curso JEE5, Soa, Web Services, ESB y XML
PDF
SERVLET BASICS
PDF
Herramientas de Desarrollo de Sistemas
PDF
Introducción al desarrollo de aplicaciones web en Java
PPS
Aplicaciones empresariales Java EE en la nube
PDF
Introducción a java EE 7
PDF
[ES] Fundamentos de Java Enterprise Edition
1/9 Curso JEE5, Soa, Web Services, ESB y XML
SERVLET BASICS
Herramientas de Desarrollo de Sistemas
Introducción al desarrollo de aplicaciones web en Java
Aplicaciones empresariales Java EE en la nube
Introducción a java EE 7
[ES] Fundamentos de Java Enterprise Edition

La actualidad más candente (20)

PDF
JBossAS: Desarrollo con Java Server Faces
DOC
JDBC MONOGRAFIA
PDF
Carrera php programmer no costo
PPTX
Arquitectura y diseño de aplicaciones Java EE
PPT
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
PPTX
Modulo 1 java ee platform
PDF
Introducción a JEE
PDF
Frameworks J2EE
PDF
Curso Básico de JDBC
PPT
Aplicaciones web
PDF
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
PDF
[ES] Introdución al desarrollo de aplicaciones web en java
PPTX
Ejercicio basico jsf’s
PDF
Sesion 3. desarrollo de aplicaciones jee
PPTX
06. jsf (java server faces) (1)
PDF
Manual programacion - java - jsp & xml
PPT
Curso Java Avanzado 3 Js Ps
PPTX
Java Web - Introduccion
JBossAS: Desarrollo con Java Server Faces
JDBC MONOGRAFIA
Carrera php programmer no costo
Arquitectura y diseño de aplicaciones Java EE
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Modulo 1 java ee platform
Introducción a JEE
Frameworks J2EE
Curso Básico de JDBC
Aplicaciones web
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
[ES] Introdución al desarrollo de aplicaciones web en java
Ejercicio basico jsf’s
Sesion 3. desarrollo de aplicaciones jee
06. jsf (java server faces) (1)
Manual programacion - java - jsp & xml
Curso Java Avanzado 3 Js Ps
Java Web - Introduccion
Publicidad

Destacado (7)

PPTX
07 Javabeans
PPTX
Distribución de aplicaciones
PPTX
Empaquetado de aplicaciones Java con Netbeans
PPT
Java netbeans-clase-001
PPTX
java (clases,herencias,encapsulamiento,.. )
PPT
Estructuras de control en Java
PPT
POO: Herencia, Abstraccion y Polimorfismo
07 Javabeans
Distribución de aplicaciones
Empaquetado de aplicaciones Java con Netbeans
Java netbeans-clase-001
java (clases,herencias,encapsulamiento,.. )
Estructuras de control en Java
POO: Herencia, Abstraccion y Polimorfismo
Publicidad

Similar a 5 c arquitecturas_aplicaciones_web (20)

PDF
Arquitectura web
PDF
200405 - Aplicaciones Web
PPT
01 introducción
PDF
Java
PDF
Master j2ee
PPTX
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
PDF
Tecnologias web
PPSX
Aplicaciones en capas1
PDF
Taller de arquitectura web
PDF
PDF
Tutor Java Web
PDF
I introduccion a_las_aplicaciones_web_co
PPTX
DOCX
Israel tecnologias para desarrollo-web
PPT
Plataforma de programación Java
PDF
10.desarrollowebconjava
PPTX
Presentacion sesion01 - Programacion WEB
PPTX
Introdución a aplicaciones web en java
PDF
Frameworks JAVA EE 5 de marzo de 2.012
PDF
Taller desarrollo web
Arquitectura web
200405 - Aplicaciones Web
01 introducción
Java
Master j2ee
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
Tecnologias web
Aplicaciones en capas1
Taller de arquitectura web
Tutor Java Web
I introduccion a_las_aplicaciones_web_co
Israel tecnologias para desarrollo-web
Plataforma de programación Java
10.desarrollowebconjava
Presentacion sesion01 - Programacion WEB
Introdución a aplicaciones web en java
Frameworks JAVA EE 5 de marzo de 2.012
Taller desarrollo web

5 c arquitecturas_aplicaciones_web

  • 1. Combinación de tecnologías en la construcción de Aplicaciones Web Juan Ramón Pérez Pérez Universidad de Oviedo jrpp@pinon.ccu.uniovi.es
  • 2. De las tecnologías a la arquitectura • Ya conocemos varias tecnologías que nos sirven de base para construir servidores de información. • Pero, ¿Cómo construimos una aplicación web? – ¿Utilizamos una sola tecnología? • ¿Cuál de ellas podemos utilizar? – ¿Combinamos varias tecnologías recogiendo sus ventajas? • ¿En qué parte de la aplicación encaja cada tecnología? 2
  • 3. Tecnologías servlets y JSP • Pudiendo utilizar JSP. ¿Es necesario desarrollar algún servlet? • ¿Cuál es la mejor forma de combinar servlets y JSP? • ¿Dónde situamos el código escrito en Java? • ¿Hay otros componentes involucrados en el procesamiento de peticiones como los JavaBeans? • Si es así, ¿en qué parte de la arquitectura aparecen y cuál es su papel? 3
  • 4. Qué es la arquitectura de una aplicación • Una arquitectura se utiliza para organizar las diferentes partes de una aplicación. • Las aplicaciones web pueden tener muchos elementos: – Páginas JSP, clases Java, archivos HTML. • Definir una arquitectura: – Ayudará a decidir cómo dividir la aplicación web. – Proporcionará una pauta para definir la forma en que todos los componentes trabajen juntos para llevar a cabo la funcionalidad que se pretende conseguir con la aplicación. 4
  • 5. Arquitecturas para construir Aplicaciones Web • Arquitectura centrada en páginas. JSPs gestionan las peticiones directamente.  Modelo 1. • Arquitectura de “dispatcher” o centrada en servlets. Un servlet o un JSP actúa de mediador o controlador, delegando la resolución de peticiones en páginas JSP y JavaBeans.  Modelo 2. 5
  • 6. Arquitectura centrada en páginas • Se utilizan páginas JSP/HTML para interactuar con el usuario (lógica de presentación). • Páginas JSP responsables de controlar el flujo de la aplicación: recibir peticiones, direccionar a la siguiente página (lógica de control o procesamiento). • El acceso a los datos se lleva a cabo desde la misma página JSP o con JavaBeans, según la variante. 6
  • 7. Esquema de la arquitectura centrada en páginas Nivel de JSP lógica de JSP negocio JSP HTML JSP HTML / HTML JSP / HTML JSP / / JSP JSP JavaBeans JavaBeans JavaBeans JavaBeans Nivel de Nivel de presentación Datos BD 7
  • 8. Arquitectura centrada en páginas • Ventajas: – es simple de programar y permite al creador de las páginas generar contenido dinámico fácilmente, basándose en la petición y el estado de la aplicación. • Inconvenientes: – Tiene problemas de mantenimiento cuando la aplicación crece. Muchos scriptlets incrustados en las páginas JSP. – No sólo reduce modularidad y oportunidades de reutilización de código; sino que también proporciona una separaciones de papeles de desarrollo muy pobre. 8
  • 9. Vista-Página (I) • Esta arquitectura básica conlleva: – Invocaciones directas a páginas del servidor – Código Java incrustado (scriplets) y – Etiquetas JSP que generan dinámicamente la salida por sustitución dentro del HTML. – El acceso a datos se realiza directamente sobre la página JSP. 9
  • 10. Vista-Página (y II) • Beneficios: – Desde el punto de vista del desarrollador es una aproximación muy directa al problema y fácil de abordar. – El código es fácil de localizar ya que se encuentra junto con la página que gestiona. • Inconvenientes – Sólo permite abordar aplicaciones web de pequeña escala. – El que todo el código esté dentro de las página impide separar papeles en el desarrollo. 10
  • 11. Vista-Página con JavaBeans • Se utilizan JavaBeans para acceder a los datos. • La utilización de componentes JavaBeans permite: – Separar el código Java relacionado con la lógica del negocio del código de almacenamiento. – Se podrían utilizar etiquetas de usuario en la página JSP para hacer referencia al JavaBean. – Permite realizar una pequeña separación de papeles en el desarrollo de la aplicación web. 11
  • 12. Separación de papeles en el desarrollo de una aplicación web Dominio de los Presentación desarrolladores de Lógica datos de la aplicación Acceso a Base de datos datos Dominio de los Diseñadores web 12
  • 13. Arquitectura de “dispatcher” o MVC • Los JSP se utilizan para generar el nivel de presentación y los Servlets para realizar las tareas que requieren procesamiento. • Además el controlador gestiona la navegación, decidiendo a que página JSP debe redireccionarse a continuación. • No aparece lógica de procesamiento dentro de la presentación JSP: simplemente accede a los JavaBeans que previamente se han cargado para extraer dinámicamente su contenido. 13
  • 14. Esquema de la arquitectura MVC 1. Envío de petición Nivel de al controlador Servlet lógica de o negocio HTML JSP HTML / HTML JSP 2. Invocación / HTML JSP de Beans / / JSP JSP 3. Redirección a la página JavaBeans JavaBeans JavaBeans JavaBeans Nivel de Nivel de presentación Datos BD 14
  • 15. Componentes arquitectura MVC Datos Modelo (Propiedades Beans) Vista Beans JSPs Info.Interfaz Evento (HTML) Evento (forward) Datos (petición) (<jsp:getproperty>) Controlador Info.Eventos servlet (parámetros) Evento (petición) Interfaz Navegador 15
  • 16. El Modelo • Representa la lógica de negocio de una aplicación. • Encapsula las reglas de negocio en componentes que son fáciles de probar, permiten mejorar la calidad del software y promueven la reutilización. 16
  • 17. Componentes de estado • El estado: – Define el conjunto actual de valores del modelo. – Incluye métodos para cambiar estos valores. • Estos métodos recogen parte de la lógica de negocio. • Deberían de ser independientes del protocolo que se utilizara para acceder a ellos. • Los JavaBeans son la elección lógica para implementar los componentes de estado. 17
  • 18. Cualidades del diseño en JavaBeans • La construcción independiente de estos componentes permite las siguientes cualidades de diseño: – Reutilización, la eliminación de la lógica de presentación, permite que diferentes aplicaciones hagan uso de la misma lógica de negocio. – Calidad, recogiendo la lógica de negocio en el mismo sitio, se puede probar y revisar. – Robustez, encapsulando toda la lógica en un solo sitio podemos facilitar su reutilización y reducir las posibilidades de que aparezca un error. 18
  • 19. Componentes de proceso • Las acciones: – Definen los cambios permitidos para los estados en respuesta a los eventos. • La lógica de negocio también determina como se construyen los componentes de proceso. 19
  • 20. Alternativas en el diseño de componentes de proceso • El diseño de estos componentes permite más alternativas que los de estado: – En sistemas simples, las acciones pueden ser llevadas a cabo en el controlador; pero generalmente no se recomienda. – Normalmente se plantea un nivel de componentes de proceso para capturar los requisitos que dirigen la interacción con los componentes de estado. • Frecuentemente estos componentes están ligados a un protocolo para poder obtener información del evento. 20
  • 21. La vista • Constituye la lógica de presentación de una aplicación. • Los componentes de la vista obtienen el estado actual del sistema del modelo y proporcionan el interfaz de usuario para el protocolo involucrado (en nuestro caso HTTP de los navegadores web). • Como parte de la generación del interfaz de usuario la vista presenta los eventos que el usuario puede activar en cada momento. • JSP es la elección natural para implementar la vista. 21
  • 22. El controlador • Proporciona unión a toda la arquitectura. • Responsable de: – recibir eventos, – determinar cual es el manejador apropiado, – invocar este manejador y – determinar la generación de la respuesta apropiada. • Los servlets son la elección ideal para la tecnología del controlador. 22
  • 23. Tareas que debería gestionar el controlador • Seguridad, asegurar autentificación y autorización. Esto podría delegarse en el motor de servlets. • Identificación de eventos. • Preparar el modelo, asegurar la disponibilidad de los componentes de modelo requeridos. • Procesamiento del evento. • Gestión de errores, gestionar los errores generados por los manejadores. • Activar la generación de la respuesta, pasando el control al generador apropiado. 23
  • 24. Cuestiones de diseño • Esta arquitectura implica, de forma inherente, un cierto acoplamiento entre los distintos componentes que deberíamos de evitar. Ej.: La vista debe proporcionar información de eventos de forma que puedan ser identificados de forma única por el controlador. • La vista tiene acoplamiento con el controlador por la información de eventos y el controlador está acoplado tanto con el modelo como con la vista. • Para superar este inconveniente se puede utilizar un fichero de inicialización, con las capacidades 24 de introspección y reflectividad de Java.
  • 25. Ejemplo de arquitectura MVC (desde el contenedor Controlador (servlet) de servlets) Tabla manejadores init init( ) eventos Evento – Manejador petición doGet( ) doPost( ) process( ) Clases process( ) manejadoras respuesta forward( ) de eventos respuesta forward( ) 25
  • 26. Proyecto Struts • Qué es Struts • Particularidades del MVC en Struts • ¿Para qué sirve? • ¿Cómo se puede utilizar? • Más información – http://jakarta.apache.org/struts – http://jakarta.apache.org/struts/userGuide – http://www.programacion.com/java/tutorial.joa_struts.html 26

Notas del editor

  • #4: Tanto servlets como JSP permiten construir aplicaciones web.