SlideShare una empresa de Scribd logo
1 de 8
APLICACIONES EN CAPAS HECHO POR: MARIANA CRUZ NOVA SOTO ROJAS ANAHI MONSERRAT
Aplicaciones en capas La estrategia tradicional de utilizar aplicaciones compactas causa gran cantidad de problemas de integración en sistemas software complejos como pueden ser los sistemas de gestión de una empresa o los sistemas de información integrados consistentes en más de una aplicación. Estas aplicaciones suelen encontrarse con importantes problemas de escalabilidad, disponibilidad, seguridad, integración... Para solventar estos problemas se ha generalizado la división de las aplicaciones en capas que normalmente serán tres: una capa que servirá para guardar los datos (base de datos), una capa para centralizar la lógica de negocio (modelo) y por último una interfaz gráfica que facilite al usuario el uso del sistema.
Si establecemos una separación entre la capa de interfaz gráfica (cliente), replicada en cada uno de los entornos de usuario, y la capa modelo, que quedaría centralizada en un servidor de aplicaciones, según el diagrama que podemos ver en la figura: “Arquitecura en tres capas”, obtenemos una potente arquitectura que nos otorga algunas ventajas: ,[object Object]
No replicación de lógica de negocio en los clientes: esto permite que las modificaciones y mejoras sean automáticamente aprovechadas por el conjunto de los usuarios, reduciendo los costes de mantenimiento.
Mayor sencillez de los clientes.Si intentamos aplicar esto a las aplicaciones web, debido a la obligatoria sencillez del software cliente que será un navegador web, nos encontramos con una doble posibilidad: ,[object Object],[object Object]
[object Object],Figura: “ Arquitectura web en 3 capas” La arquitectura utilizada por el proyecto ONess define tres capas bien diferenciadas, si bien gracias al soporte que proporciona en framework Spring permite la implantación de una capa de modelo basada en Enterprise JavaBeans (EJB) que posibilitase una arquitectura de cuatro capas y unas funcionalidades más orientadas a grandes sistemas o sistemas críticos como pueden ser replicación, trabajo en cluster,...
La arquitectura MVC y Model 2 La arquitectura Model-View-Controller surgió como patrón arquitectónico para el desarrollo de interfaces gráficos de usuario en entornos Smalltalk. Su concepto se basaba en separar el modelo de datos de la aplicación de su representación de cara al usuario y de la interacción de éste con la aplicación, mediante la división de la aplicación en tres partes fundamentales: El modelo, que contiene la lógica de negocio de la aplicación. La vista, que muestra al usuario la información que éste necesita. El controlador, que recibe e interpreta la interacción del usuario, actuando sobre modelo y vista de manera adecuada para provocar cambios de estado en la representación interna de los datos, así como en su visualización. Esta arquitectura ha demostrado ser muy apropiada para las aplicaciones web y especialmente adaptarse bien a las tecnologías proporcionadas por la plataforma J2EE, de manera que: El modelo, conteniendo lógica de negocio, sería modelado por un conjunto de clases Java, existiendo dos claras alternativas de implementación, utilizando objetos java tradicionales llamados POJOs (PlainOld Java Objects) o bien utilizando EJB (Enterprise JavaBeans) en sistemas con unas mayores necesidades de concurrencia o distribución. La vista proporcionará una serie de páginas web dinámicamente al cliente, siendo para él simples páginas HTML. Existen múltiples frameworks que generan estas páginas web a partir de distintos formatos, siendo el más extendido el de páginas JSP (JavaServerPages), que mediante un conjunto de tags XML proporcionan un interfaz sencillo y adecuado a clases Java y objetos proporcionados por el servidor de aplicaciones. Esto permite que sean sencillas de desarrollar por personas con conocimientos de HTML. Entre estos tags tienen mención especial la librería estándar JSTL (JavaServerPages Standard Tag Library) que proporciona una gran funcionalidad y versatilidad.
El controlador en la plataforma J2EE se desarrolla mediante servlets, que hacen de intermediarios entre la vista y el modelo, más versátiles que los JSP para esta función al estar escritos como clases Java normales, evitando mezclar código visual (HTML, XML...) con código Java. Para facilitar la implementación de estos servlets también existe una serie de frameworks que proporcionan soporte a los desarrolladores, entre los que cabe destacar Struts, que con una amplia comunidad de usuarios se ha convertido en el estándar de facto en este rol. Con todo lo anterior, el funcionamiento de una aplicación web J2EE que utilice el patrón arquitectural MVC se puede descomponer en una serie de pasos: El usuario realiza una acción en su navegador, que llega al servidor mediante una petición HTTP y es recibida por un servlet (controlador). Esa petición es interpretada y se transforma en la ejecución de código java que delegará al modelo la ejecución de una acción de éste. El modelo recibe las peticiones del controlador, a través de un interfaz o fachada que encapsulará y ocultará la complejidad del modelo al controlador. El resultado de esa petición será devuelto al controlador. El controlador recibe del modelo el resultado, y en función de éste, selecciona la vista que será mostrada al usuario, y le proporcionará los datos recibidos del modelo y otros datos necesarios para su transformación a HTML. Una vez hecho esto el control pasa a la vista para la realización de esa transformación. En la vista se realiza la transformación tras recibir los datos del controlador, elaborando la respuesta HTML adecuada para que el usuario la visualice. Esta arquitectura de aplicaciones otorga varias ventajas clave al desarrollo de aplicaciones web, destacando: 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.

Más contenido relacionado

La actualidad más candente (20)

Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palma
 
Taller MVC
Taller MVCTaller MVC
Taller MVC
 
Servicios web
Servicios webServicios web
Servicios web
 
Documentacion struts 2
Documentacion struts 2Documentacion struts 2
Documentacion struts 2
 
Arquitectura Mvc
Arquitectura MvcArquitectura Mvc
Arquitectura Mvc
 
Documentacionstruts2 luiggi
Documentacionstruts2 luiggiDocumentacionstruts2 luiggi
Documentacionstruts2 luiggi
 
MODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADORMODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADOR
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Modelo, vista, controlador
Modelo, vista, controladorModelo, vista, controlador
Modelo, vista, controlador
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
El patrón MVC
El patrón MVCEl patrón MVC
El patrón MVC
 
Analisis del patron mvc
Analisis del patron mvcAnalisis del patron mvc
Analisis del patron mvc
 
S8 arely medina_power_point
S8 arely medina_power_pointS8 arely medina_power_point
S8 arely medina_power_point
 
Patrón MVC
Patrón MVCPatrón MVC
Patrón MVC
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
 
Asp
AspAsp
Asp
 
MVC
MVCMVC
MVC
 

Destacado

III Seminario "Inclusión Social: discursos y realidades"
III Seminario "Inclusión Social: discursos y realidades"III Seminario "Inclusión Social: discursos y realidades"
III Seminario "Inclusión Social: discursos y realidades"Gobernabilidad
 
Présentation de l'Agence
Présentation de l'AgencePrésentation de l'Agence
Présentation de l'AgenceEuphorie
 
Powerpoint plátano(resúmen)
Powerpoint plátano(resúmen)Powerpoint plátano(resúmen)
Powerpoint plátano(resúmen)mascaraque
 
Benito perez galdos nerea,r laura gorane y aitziber
Benito perez galdos nerea,r laura gorane y aitziberBenito perez galdos nerea,r laura gorane y aitziber
Benito perez galdos nerea,r laura gorane y aitziberkarmele
 
Presentación redes normativa tic
Presentación redes normativa ticPresentación redes normativa tic
Presentación redes normativa ticGobernabilidad
 
Base accueil de groupe
Base accueil de groupeBase accueil de groupe
Base accueil de groupeCoraia
 
Unidad 2
Unidad 2Unidad 2
Unidad 2asimovv
 
El elogio de la lentitud
El elogio de la lentitudEl elogio de la lentitud
El elogio de la lentitudJuan José
 
Concientízate valora tu medio ambiente
Concientízate  valora tu medio ambienteConcientízate  valora tu medio ambiente
Concientízate valora tu medio ambientemarlyn mercado
 
Cantantes internacionales
Cantantes internacionalesCantantes internacionales
Cantantes internacionalesEvaMusic94
 
La guitarra
La guitarraLa guitarra
La guitarraDiego
 
Presentación autobiografias
Presentación autobiografiasPresentación autobiografias
Presentación autobiografiasAlvaro da Silva
 
Presentacion redes sociales
Presentacion redes socialesPresentacion redes sociales
Presentacion redes socialesguestf3b75d8
 

Destacado (20)

III Seminario "Inclusión Social: discursos y realidades"
III Seminario "Inclusión Social: discursos y realidades"III Seminario "Inclusión Social: discursos y realidades"
III Seminario "Inclusión Social: discursos y realidades"
 
Présentation de l'Agence
Présentation de l'AgencePrésentation de l'Agence
Présentation de l'Agence
 
4eme project
4eme project4eme project
4eme project
 
Powerpoint plátano(resúmen)
Powerpoint plátano(resúmen)Powerpoint plátano(resúmen)
Powerpoint plátano(resúmen)
 
Carlos Cordero
Carlos CorderoCarlos Cordero
Carlos Cordero
 
Benito perez galdos nerea,r laura gorane y aitziber
Benito perez galdos nerea,r laura gorane y aitziberBenito perez galdos nerea,r laura gorane y aitziber
Benito perez galdos nerea,r laura gorane y aitziber
 
Presentación redes normativa tic
Presentación redes normativa ticPresentación redes normativa tic
Presentación redes normativa tic
 
Base accueil de groupe
Base accueil de groupeBase accueil de groupe
Base accueil de groupe
 
Webquest(2)
Webquest(2)Webquest(2)
Webquest(2)
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Webquest(2)
Webquest(2)Webquest(2)
Webquest(2)
 
El elogio de la lentitud
El elogio de la lentitudEl elogio de la lentitud
El elogio de la lentitud
 
Concientízate valora tu medio ambiente
Concientízate  valora tu medio ambienteConcientízate  valora tu medio ambiente
Concientízate valora tu medio ambiente
 
Cantantes internacionales
Cantantes internacionalesCantantes internacionales
Cantantes internacionales
 
tic`s
tic`stic`s
tic`s
 
La guitarra
La guitarraLa guitarra
La guitarra
 
Presentación autobiografias
Presentación autobiografiasPresentación autobiografias
Presentación autobiografias
 
Tecnología al dia
Tecnología al diaTecnología al dia
Tecnología al dia
 
Presentacion redes sociales
Presentacion redes socialesPresentacion redes sociales
Presentacion redes sociales
 
E:\el tabaquismo
E:\el tabaquismoE:\el tabaquismo
E:\el tabaquismo
 

Similar a Aplicaciones en capas: Arquitectura MVC y Model 2

Similar a Aplicaciones en capas: Arquitectura MVC y Model 2 (20)

Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...
 
modelo MVC.pptx
modelo MVC.pptxmodelo MVC.pptx
modelo MVC.pptx
 
Framework
FrameworkFramework
Framework
 
patrón MVC.pdf
patrón MVC.pdfpatrón MVC.pdf
patrón MVC.pdf
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
S01-s1-MVC.pptx
S01-s1-MVC.pptxS01-s1-MVC.pptx
S01-s1-MVC.pptx
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_Diseñoweb
 
Modelo vistacontrolador
Modelo vistacontroladorModelo vistacontrolador
Modelo vistacontrolador
 
Modelo vistacontrolador
Modelo vistacontroladorModelo vistacontrolador
Modelo vistacontrolador
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Taller 4 - Teleinformatica
Taller 4 - TeleinformaticaTaller 4 - Teleinformatica
Taller 4 - Teleinformatica
 
Sistema de ventas, compras y almacén
Sistema de ventas, compras y almacénSistema de ventas, compras y almacén
Sistema de ventas, compras y almacén
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 
Unidad 1 MOOC MVC
Unidad 1 MOOC MVCUnidad 1 MOOC MVC
Unidad 1 MOOC MVC
 
Articulo MVC
Articulo MVC Articulo MVC
Articulo MVC
 
Programacion 3 mvc
Programacion 3 mvcProgramacion 3 mvc
Programacion 3 mvc
 

Aplicaciones en capas: Arquitectura MVC y Model 2

  • 1. APLICACIONES EN CAPAS HECHO POR: MARIANA CRUZ NOVA SOTO ROJAS ANAHI MONSERRAT
  • 2. Aplicaciones en capas La estrategia tradicional de utilizar aplicaciones compactas causa gran cantidad de problemas de integración en sistemas software complejos como pueden ser los sistemas de gestión de una empresa o los sistemas de información integrados consistentes en más de una aplicación. Estas aplicaciones suelen encontrarse con importantes problemas de escalabilidad, disponibilidad, seguridad, integración... Para solventar estos problemas se ha generalizado la división de las aplicaciones en capas que normalmente serán tres: una capa que servirá para guardar los datos (base de datos), una capa para centralizar la lógica de negocio (modelo) y por último una interfaz gráfica que facilite al usuario el uso del sistema.
  • 3.
  • 4. No replicación de lógica de negocio en los clientes: esto permite que las modificaciones y mejoras sean automáticamente aprovechadas por el conjunto de los usuarios, reduciendo los costes de mantenimiento.
  • 5.
  • 6.
  • 7. La arquitectura MVC y Model 2 La arquitectura Model-View-Controller surgió como patrón arquitectónico para el desarrollo de interfaces gráficos de usuario en entornos Smalltalk. Su concepto se basaba en separar el modelo de datos de la aplicación de su representación de cara al usuario y de la interacción de éste con la aplicación, mediante la división de la aplicación en tres partes fundamentales: El modelo, que contiene la lógica de negocio de la aplicación. La vista, que muestra al usuario la información que éste necesita. El controlador, que recibe e interpreta la interacción del usuario, actuando sobre modelo y vista de manera adecuada para provocar cambios de estado en la representación interna de los datos, así como en su visualización. Esta arquitectura ha demostrado ser muy apropiada para las aplicaciones web y especialmente adaptarse bien a las tecnologías proporcionadas por la plataforma J2EE, de manera que: El modelo, conteniendo lógica de negocio, sería modelado por un conjunto de clases Java, existiendo dos claras alternativas de implementación, utilizando objetos java tradicionales llamados POJOs (PlainOld Java Objects) o bien utilizando EJB (Enterprise JavaBeans) en sistemas con unas mayores necesidades de concurrencia o distribución. La vista proporcionará una serie de páginas web dinámicamente al cliente, siendo para él simples páginas HTML. Existen múltiples frameworks que generan estas páginas web a partir de distintos formatos, siendo el más extendido el de páginas JSP (JavaServerPages), que mediante un conjunto de tags XML proporcionan un interfaz sencillo y adecuado a clases Java y objetos proporcionados por el servidor de aplicaciones. Esto permite que sean sencillas de desarrollar por personas con conocimientos de HTML. Entre estos tags tienen mención especial la librería estándar JSTL (JavaServerPages Standard Tag Library) que proporciona una gran funcionalidad y versatilidad.
  • 8. El controlador en la plataforma J2EE se desarrolla mediante servlets, que hacen de intermediarios entre la vista y el modelo, más versátiles que los JSP para esta función al estar escritos como clases Java normales, evitando mezclar código visual (HTML, XML...) con código Java. Para facilitar la implementación de estos servlets también existe una serie de frameworks que proporcionan soporte a los desarrolladores, entre los que cabe destacar Struts, que con una amplia comunidad de usuarios se ha convertido en el estándar de facto en este rol. Con todo lo anterior, el funcionamiento de una aplicación web J2EE que utilice el patrón arquitectural MVC se puede descomponer en una serie de pasos: El usuario realiza una acción en su navegador, que llega al servidor mediante una petición HTTP y es recibida por un servlet (controlador). Esa petición es interpretada y se transforma en la ejecución de código java que delegará al modelo la ejecución de una acción de éste. El modelo recibe las peticiones del controlador, a través de un interfaz o fachada que encapsulará y ocultará la complejidad del modelo al controlador. El resultado de esa petición será devuelto al controlador. El controlador recibe del modelo el resultado, y en función de éste, selecciona la vista que será mostrada al usuario, y le proporcionará los datos recibidos del modelo y otros datos necesarios para su transformación a HTML. Una vez hecho esto el control pasa a la vista para la realización de esa transformación. En la vista se realiza la transformación tras recibir los datos del controlador, elaborando la respuesta HTML adecuada para que el usuario la visualice. Esta arquitectura de aplicaciones otorga varias ventajas clave al desarrollo de aplicaciones web, destacando: 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.
  • 9. 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 (tan sólo utilizando algunos tags, no muy diferentes de los usados en el código HTML). Model 2 Sun Microsystems, creadora de la plataforma Java, acuñó el término Model 2 para referirse al modelo arquitectural recomendado para las aplicaciones web desarrolladas sobre J2EE. Dicha arquitectura consiste en el desarrollo de una aplicación según el patrón Model-View-Controller, pero especificando que el controlador debe estar formado por un único servlet, que centralice el control de todas las peticiones al sistema, y que basándose en la URL de la petición HTTP y en el estado actual del sistema, derive la gestión y control de la petición a una determinada acción de entre las registradas en la capa controlador. Esta centralización del controlador en un único punto de acceso se conoce como patrón frontcontroller. Las ventajas que este patrón ofrece provienen de la capacidad de gestionar en un único punto la aplicación de filtros a las peticiones, las comprobaciones de seguridad, la realización de logs, etc.