Ingeniería de Aplicaciones Web

Documentos relacionados
Ingeniería de Aplicaciones Web

Departamento de Ciencias e Ing. geniería de la Computación. Diego C. Martínez - DCIC-UNS

PATRONES DE DISEÑO EMPRESARIALES TERCERA PARTE ELSA ESTEVEZ UNIVERSIDAD NACIONAL DEL SUR DEPARTAMENTO DE CIENCIAS E INGENIERIA DE LA COMPUTACION

Java web: servlets, Jsp, Jstl, Struts & Ajax

MVC (Model-View-Controller)

Java Web J2EE con JSP

Java Web J2EE con JSP

Java Web J2EE con JSP

Presentación del Curso Presencial. Programación Web con Java J2EE

Arquitectura Java Web. Ing. Juan Zevallos Valle

Proyecto de fin de Carrera 2013/2014. Autor: Miguel Souto Bartolomé Consultor: Óscar Escudero Sánchez

Programa de Certificación e Integración Laboral. Desarrollo Web Universidad Autónoma de Chihuahua Facultad de Ingeniería

Diseño e implementación de un framework de presentación

Introducción a las Aplicaciones Web

Estudiaremos desde los fundamentos hasta conceptos más avanzados de la tecnología JSF.

Introducción a las Aplicaciones Web

Arquitectura de Presentación

Aplicaciones Web. Aplicaciones Distribuidas

DISEÑO E IMPLEMENTACIÓN DE APLICACIONES EMPRESARIALES CON MOVILIDAD. 1 OBJETIVOS...1

Diseño e implementación de un framework de presentación

Introducción a las Aplicaciones Web

Ajax. Technology review

Web Frameworks y patrones de diseño

Programación Web Tema 1.1: Introducción

MODELO VISTA-CONTROLADOR (MVC)

Evolución del Desarrollo WEB

Creación de un framework de presentación para aplicaciones JEE

Yei. Servicios de desarrollo. Systems

MVC(Modelo Vista - Controlador)

Diseño e implementación de un marco de trabajo de presentación para aplicación J2EE

Páginas WEB Estáticas

FACULTAD DE INGENIERÍA Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Programación Orientada a Objetos y Patrón MVC en PHP5. Pablo Ramirez A.

Developing ASP.NET MVC 4 Web Applications

Agosto. Inicio. Avanzado. Informaciones Human Business Fonos: (02) / (02) Web:

Curso Developing ASP.NET MVC 4 Web Applications (20486)

Ingeniería de Sistemas

DIPLOMADO DESARROLLO WEB Y CREACIÓN DE APPS MÓDULO DESARROLLO DE APLICACIONES WEB CON PHP & MYSQL

Las tecnologías del desarrollo Web

Este capitulo contiene una análisis de los posibles soluciones que se pueden presentar en el momento de desarrollar aplicaciones con J2EE

formación CURSOS A MEDIDA ESPECIALIZACIÓN PROFESIONAL HERRAMIENTAS TIC

Oracle Fusion Middleware 11g: Creación de Aplicaciones con ADF I

SECUENCIA DIDÁCTICA. Módulo Competencia de Módulo:

Modelo Vista Controlador. Rogelio Ferreira Escutia

Spring MVC. Desarrollo de Aplicaciones Empresariales

ESPECIALISTA EN TECNOLOGIAS JAVA

Diseño de la capa de presentación. Aplicaciones Distribuidas

Programa Regular. Vázquez Alejandro. Jefe de TP simple.

Código ETAP: SR Servidores de Web

Ingeniería del Software

Universidad Nacional del Nordeste. IBM WebSphere Studio Application Developer (WSAD)

BASES DE DATOS AVANZADAS. Facultad de Estadística e Informática

Daniel Rodríguez Simó Tutor: Óscar Escudero Sánchez

AngularJS. Programa de Estudio.

Ingeniería de Aplicaciones Web

Programa de Capacitación en. Aplicaciones Visual Studio.NET 2013

Concepto de Arquitectura en Desarrollo Software. Concepto de Arquitectura software Moderno

SISTEMAS DE INFORMACIÓN

Desarrollo Web. Parte 2 Edición Taller de Programación

Diplomado Web con PHP, MySQL 7.0, Apache y AJAX

Sistemas Informáticos del Valle

Arquitectura y diseño de sistemas web modernos

SAP FIORI Una evolución en la experiencia de usuarios

FRAMEWORKS (Conceptos y Prácticas)

Bases de Datos en Internet Agenda

UNIVERSIDAD TÉCNICA DEL NORTE

1) FUNDAMENTACIÓN DE LA MATERIA DENTRO DEL PLAN DE ESTUDIOS

Master en Java Certificación para Programadores

API: REST o RESTful WEB-SERVICES

TEMARIO. Arquitectura e implementación de un proyecto con Angular Duración: 35 Horas

Persistencia en Sistemas O.O.

Diplomado Programación Java 8 desde POO (JSE, Servlets & JSP) con Oracle 11g, JPA con Hibernate, Eclipse & Tomcat

APLICACIONES DE INTERNET: SOAP

4.3 Problemas con servlets y páginas JSP. Patrones

Acosta P., Salvador L.

SÍLABO DE SOLUCIONES WEB Y APLICACIONES DISTRIBUIDAS

SILABO DE TALLER DE PROGRAMACION WEB

Desarrollador Front Jr.

INFORMACIÓN SOBRE CURSOS BONIFICABLES

[1.4] Funcionamiento de una aplicación web

Programación de Aplicaciones Distribuidas

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

EXPERIENCIA PROFESIONAL.

UNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática

CURRICULUM VITAE. Máster en Administración y Dirección de Empresas (actual) EUDE Business School, España 01 de Julio de 2015.

06/05/2014. Clase 6. Single Table Inheritance. Class Table Inheritance

Aplicaciones web con MVC. Desarrollo de aplicaciones II

Programa Formativo. Código: Curso: Lenguaje PHP y Cake PHP Framework Modalidad: ONLINE Duración: 60h.

Symfony. Framework para el desarrollo de aplicaciones Web con PHP

Bootstrapping Databases en equipos móviles

Sencha es un framework, un marco de trabajo que nos facilita el desarrollo de una página web.

DIPLOMADO DESARROLLO WEB Y CREACIÓN DE APPS DESARROLLO DE APLICACIONES WEB CON PHP & MYSQL

Tecnología para la. Web (MVC)

SÍLABO POR OBJETIVOS CURSO: PROGRAMACIÓN DISTRIBUIDA Y WEB DOCENTE: Ing. JUAN JOSE ARAMBULO AQUIJES

Desarrollando servidores de información con Java

MAESTRO DE PHP PHP NIVEL 1

Conclusiones y recomendaciones

Transcripción:

Ingeniería de Aplicaciones Web Diego C. Martínez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Tecnologías web cliente servidor

Arquitecturas Web cliente servidor cómo organizar todas estas tecnologías? buscamos escalabilidad seguridad confiabilidad adaptabilidad

Arquitecturas Web cliente servidor cliente servidor

Arquitecturas web Static HTML bajo costo simple cacheable difícil de actualizar UI pobre CGI Contenido dinámico Fácil de actualizar Alto costo computacional UI pobre HTML + JavaScript Contenido dinámico UI Mejorada AJAX Lógica duplicada Riesgo de desbalance Poco cacheable Client Side Apps Contenido dinámico Reduce carga del servidor Cacheable Contenido no indexable Requiere browser moderno

Frameworks Básicamente diseño e implementación parcial para una aplicación en un dominio específico En cierto sentido es una aplicación incompleta..... y lo faltante puede completarse de diversas formas, de modo tal de obtener diferentes aplicaciones específicas Los frameworks son construídos cuando es necesario desarrollar varias aplicaciones similares (en función y estructura) El framework implementa aquellos aspectos comunes a estas aplicaciones.

Frameworks El proceso de obtener una aplicación concreta de un framework se denomina instanciación del framework (framework instantiation) + + Framework Aplicación A Aplicación B

Frameworks visión conceptual Framework Aplicación específica

Partes de un framework Framework Unused Library Classes Framework library Framework core Application extensions Application

Beneficios del uso de frameworks Reduce el tiempo de desarrollo. No se inicia el proyecto desde cero. Reduce los costos de desarrollo. Menos tiempo implica menos costos. El conocimiento del framework implica menos formación de RRHH. Induce una organización arquitectónica. Cada framework sigue una arquitectura particular, bastante rígida. Obliga a una disciplina de trabajo ordenada. Impregna calidad al proyecto. Los frameworks son testeados y mantenidos constantemente. Muchas instanciaciones actualmente en ejecución. Aumenta el espectro de desarrolladores informados. Un framework popular es conocido por muchos y por lo tanto ofrece más candidatos desarrolladores. Facilita la integración y renovación de desarrolladores. Un desarrollador familiarizado con un framework puede incorporarse rápidamente a proyectos de instanciación.

Layering La metáfora de las capas es la técnica común para particionar sistemas complejos. Ejemplo mínimo cliente-servidor en bases de datos Cada capa descansa sobre la capa inferior. Las capas inferiores son independientes de las superiores. Ventajas: Comprensión modular por capas Abstracción de capas inferiores Facilidad de cambios de capas Desventajas: Las capas no siempre encapsulan todo (cascading changes). Performance en riesgo

Las tres capas principales Las tres capas principales usualmente distinguidas son Presentación Centrada en la interacción con el usuario. Muestra información e interpreta comandos. Dominio Datos "Domain Logic" o "Business Logic" Computaciones sobre los datos dependientes del dominio particular Centrada en la comunicación con otros sistemas externos. Típicamente un DBMS.

Java 2 Platform Dominio Datos

Patrón general de diseño: MVC MVC es el patrón arquitectónico predominante en las aplicaciones web controller model view El Controlador administra el Modelo y la Vista. La Vista es responsable de observar el Modelo para exteriorizar los datos.

Patrón general de diseño: MVC MVC es el patrón arquitectónico predominante en las aplicaciones web controller model view

Patrón general de diseño: MVC controller model view

Patrón general de diseño: MVC listar productos en oferta obtener productos X,Y,Z model controller view mostrar listado para móviles ver listado

MVC: separaciones principales Usualmente sobrevalorada. Muchas aplicaciones terminan teniendo un controlador por vista. En algunos frameworks están combinados controller model view

MVC: separaciones principales Separación principal Las vistas y las presentaciones son problemas puntuales. Los programadores del modelo no necesitan conocer nada de las vistas. La misma información puede ser visualizada de maneras diferentes. El testing puede despojarse de características visuales. controller model view

Page controller Page-controller es un patrón de diseño congruente con el patrón arquitectónico MVC. Aquí un objeto controla el request de una página específica del sitio (action) Model Page Controller -atiende get / post -decide modelo y vista View -mostrar html Hay un controlador por cada página lógica del sitio. En algunos casos es la página misma. Principalmente vinculado a una acción del sitio Determina un conjunto de páginas parametrizables.

Page controller El page-controller puede ser un script (CGI, servlets, etc) un server page (ASP, PHP, JSP, etc) Page Controller -atiende get / post -decide modelo y vista Model View -mostrar html Las responsabilidades básicas del page-controller son: Decodificar la URL y extraer los datos correspondientes. http://misitio.com/productos/productoa/comprar Crear e invocar los objetos del modelo para procesar los datos. db = new DataBaseConnection(); a = db.getofertas(); Determinar qué vista debe mostrar los resultados y redireccionar. web, mobile, pdf, word, json, xml.. Al ser un patrón de diseño no necesariamente rige toda la arquitectura del sitio. Admite incluso la convivencia de los dos modos de page-controller. Es posible manejar algunas URLs como scripts, otras como pages. El patrón page-controller funciona particularmente bien en sitios de lógica simple.

Front controller Front-controller maneja todos los requests de un sitio web. Front Controller -atiende get / post Abstract Command procesar() Concrete Command A procesar() Concrete Command B procesar() El objeto Front-controller recibe el request del cliente y Recupera los datos correspondientes. Prepara los datos para los comandos. Decide qué comando ejecutar a continuación.

Front controller El objeto Front-controller es usualmente implementado como un módulo script (php, servlet, asp) en lugar de una server page. El objeto Front-controller decide el comando estática o dinámicamente parseando URL + lógica condicional. Simple y fácil de depurar. parseando URL + instanciando comandos. Hace uso de las ventajas del patrón Command. La clase Command explicitada en el URL, con archivos configurables que mapean el nombre de la clase correspondiente. Es un patrón más complicado de implementar que Page-controller. Sólo se implementa un Front-controller.

Template View Template View es un patrón que renderiza información a HTML, incrustando marcas en una plantilla HTML. { marca } <? marca?> <pre:marca/> <prefijo:marca> </prefijo:marca> Las marcas son reemplazadas por datos computados. Es en realidad el patrón habitual de los scripts PHP, JSP, ASP, aunque estos permiten la inclusión de lógica compleja. Es el patrón usualmente elegido para la Vista del patrón MVC