Tema 1: Patrones Arquitectónicos

Documentos relacionados
Arquitectura Web. Arquitectura e Integración de Sistemas Software Curso 2012/2013. Índice

Tema 3.1: Introducción a Servicios Web

Diseño arquitectónico 1ª edición (2002)

Arquitectura de Aplicaciones Empresariales. Lic. Esteban Cesar Calabria 2007

Tema 8: Diseño arquitectónico Ingeniería del Software de Gestión II

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Gestionando sus Cotizaciones Eficientemente

INGENIERÍA DEL SOFTWARE

Arquitectura cliente/servidor

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIOS DE LICENCIATURA

Clase 2: Arquitectura de Software

Arquitectura de Empresa. Herramienta de gobierno para el alineamiento de las TI con la estrategia de negocio

Service Oriented Architecture

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

SISTEMA INTEGRADO DE INFORMACIÓN ESPACIAL Y HERRAMIENTAS DE APOYO A LAS DECISIONES

OMG - CORBA. Object Management Group. Common Object Request Broker (CORBA)

CUADRO DE MANDO PARA LA ALTA DIRECCIÓN EN EL MINISTERIO DE FOMENTO

Comunicación entre procesos

Modelo Cliente / Servidor. Gerardo Grinman 5D

JAVA 2 ENTERPRISE EDITION

Arquitectura cliente/servidor

Planteamiento preventivo: elementos

Arquitectura de Software

Introducción al Cloud Computing

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico

norma española UNE-EN EXTRACTO DEL DOCUMENTO UNE-EN Seguridad funcional

CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO

Tema 2. Gestión por Procesos. Soporte de Tecnología

COMPUTACIÓN DISTRIBUIDA EN JAVA

Cloud Computing Huibert Aalbers Senior Certified Software IT Architect

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

Aspectos Básicos de Networking

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1

Arquitecturas y Tecnologías para Comercio Electrónico y Servicios Internet.

GRADO EN INGENIERÍA INFORMÁTICA

Soluciones BYOD para el aula. 24.Febrero.2016

Arquitectura de aplicaciones

MANUAL PARA GESTIÓN DE METADATOS

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Guía docente de la asignatura

Developing ASP.NET MVC 4 Web Applications

EBA Sistema de Internet Banking

Ingeniería de Sistemas de Información Fernando Berzal, Cuestiones administrativas

SISINF - Sistemas de Información

Desarrollo de una aplicación Web para la gestión de hipódromos mediante la tecnología J2EE

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Tienda Online: WebCine. Jose Luis Del Hoyo Fernández Consultor: Antoni Oller Arcas 13/01/2014

Sistema de Comunicaciones Automatización Control Integración. CASO DE ÉXITO

Grado en Ingeniería del Software

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa

Plone 3: Un sistema de gestión de contenidos libre

SaciLab / SaciWeb CARACTERÍSTICAS TÉCNICAS Y FUNCIONALES

AUTOMATIZACIÓN INDUSTRIAL

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

INTERFACES INTELIGENTES. ING. MA. MARGARITA LABASTIDA ROLDÁN E mail:

PREGUNTAS ESTRATÉGICAS GOBIERNO EN LÍNEA-GEL Y MANEJO DE HERRAMIENTAS TECNOLÓGICAS

Visión 360º y análisis transversal del desempeño de cada unidad de negocio

GESTIÓN DE BASES DE DATOS

Concepto de Arquitectura en Desarrollo Software. Arquitectura física Distribución de nodos en la red. Concepto de Arquitectura software Moderno

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP.

Graficacion. Prof. Aquiles M. Garcia.

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

Servicios Web. Capítulo 5: Introducción a los Servicios Web. Pedro Álvarez alvaper@unizar.es José Ángel Bañares banares@unizar.es

Front-end y Biblioteca de Interacción con Subversion para GNOME con tecnologías C# y Mono. Antonio Gutiérrez Mayoral <agutierr@gsyc.escet.urjc.

>> Tecnologías clave << Captura de de información. Infraestructura. Técnicas de de Prototipado rápido

Materia requisito: DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) I. INTRODUCCION A LAS BASES DE DATOS

MICROSOFT PowerPoint 2016 Básico

Jornadas de capacitación Desarrollo de Taxonomías XBRL

MS_10962 Advanced Automated Administration with Windows PowerShell

Coordinación n de Componentes mediante Conectores Implementados con Servicios Web

Resumen. Introducción

Aviso Legal sobre Cookies L.S.S.I.C.E. EMPLEO DE COOKIES

INFORMÁTICA Y COMUNICACIONES

Escuela Normal Profesor Carlos A. Carrillo

Proyecto Multimedia. Elio Sancristóbal Ruiz

MANUAL DE POLÍTICA CONTROL DE LICENCIAS DE SOFTWARE

ARQUITECTURAS DE SOFTWARE ORIENTADAS A SERVICIOS

Arquitectura de sistemas: Título: AnalyticsMOOC- Solución TIC Big Data para entornos MOOC Número de expediente: TSI

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software

Arquitectura de Software El Rol del Arquitecto de Software

FICHA PÚBLICA DEL PROYECTO

Desarrollo de Rich Entreprise Applications con Flex

13 Diseño Web. Máster U. En Diseño Gráfico y de Interface para nuevos dispositivos. Semipresencial. 75% Presencial 25% Online


FUJITSU Java Development Framework

Liderando Proyectos de software para dispositivos de Apple. Creatividapps

La seguridad informática en la PYME Situación actual y mejores prácticas

Guía docente de la asignatura

ESCUELA DE INFORMÁTICA

PROCEDIMIENTO DE CORREO ELECTRÓNICO GENÉRICO

Maestría en Seguridad Informática. Jorge Ezequiel, Bo Hugo Pagola Alberto Dums

Servicios Web con Java EE

Servicios Web con Java EE

Tema 1: Introducción a Java EE

Curso: 10983A Upgrading Your Skills To Windows Server 2016

PERFIL PROFESIONAL EN COMPETENCIAS PROFESIONALES TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN. Versión Ejecutiva PRESENTACIÓN

Transcripción:

escuela técnica superior de ingeniería informática Tema 1: Patrones Arquitectónicos Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software de Gestión III

Índice Definiciones Qué es un SID? Aplicación de ejemplo Diseño de un SID Arquitectura de un SID Patrón MVC Bibliografía

Definiciones "Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled." Eoin Woods En [Buschmann96] se definen tres tipos de patrones Patrones arquitectónicos sobre aspectos fundamentales de la estructura de un sistema software. Especifican un conjunto predefinido de subsistemas con sus responsabilidades y una serie de recomendaciones para organizar los distintos componentes Patrones de diseño sobre aspectos relacionados con el diseño de los subsistemas. Por tanto se centran en aspectos más específicos Un Idiom que es un patrón de bajo nivel específico de un lenguaje de programación o entrono de desarrollo

Qué es un SID? Dominio del problema Cliente Visitante Administrador Vendedor SID: Sistema de Información Distribuido

Aplicación de ejemplo USVirtual Identificarse Consultar Productos Añadir Productos Cliente Sistema Eliminar Productos Confirmar Compra

Aplicación de ejemplo Consultar Productos Seguir Compra Añadir Añadir Productos Visualizar Carrito Cliente Eliminar Productos Eliminar Confirmar Compra Acabar Compra

Diseño de un SID Se pueden distinguir varios aspectos comunes en el diseño de un SID Diseño en capas Diseño arriba-abajo ( top-down ) Diseño abajo-arriba ( bottom-up ) Diseño: Concepción original de un objeto u obra destinados a la producción en serie. Diseño gráfico, de modas, industrial Design: a mental project or scheme in which means to an end are laid down

Diseño en Capas de un SID Cliente Presentación Lógica de aplicación Acceso a Datos /Recursos Sistema de Información Sólo son conceptuales: No tienen por qué corresponderse con la estructura de la implementación. También conocida como vista lógica de la arquitectura. Capa (Layer), Nivel (Tier)

presentación Cliente Presentación SID Responsable de: (1) presentar información e (2) interactuar con la capa inferior externas A veces también se le llama CLIENTE pero da lugar a confusiones Cuál es la diferencia entre cliente y la capa de presentación?

lógica de aplicación Presentación Lógica de aplicación Datos/ Recursos Responsable de: implementar las operaciones solicitadas por los clientes a través de la capa de presentación. Ej: el componente encargado de ver si un cliente está o no logado Dependiendo de la complejidad y de la técnica de implementación empleada, también se le conoce como: proceso/lógica/reglas de negocio o simplemente servidor

acceso a datos/recursos Presentación Lógica de aplicación Datos/ Recursos Responsable de: gestionar todos los elementos de información del SID; ficheros planos, XML, SGBD, etcétera También conocida como capa de gestión de recursos Qué otros elementos pueden proporcionar información? En algunas arquitecturas se considera como parte integrante de esta capa aquellos sistemas externos que proporcionan información. Es el eslabón necesario para componer SID a partir de otros SID. Denominar a esta capa como capa de datos no es del todo riguroso, por qué?

Diseño arriba-abajo ( top-down ) Definir la funcionalidad del sistema desde el punto de vista del cliente Ir propagando por las capas según las necesidades identificadas en las capas anteriores Ventajas: Desde el principio se tienen claras las funcionalidades y se dirige el desarrollo sobre ellas Desventaja: Sólo es posible aplicarlo a sistemas desarrollados desde cero Los componentes por lo general son fuertemente acoplados pues se usan en entornos homogéneos. Cliente Presentación Lógica de aplicación Acceso a Datos /Recursos Sistema de Información

Diseño abajo-arriba ( bottom-up ) Gestión de TIC 3% CIO Magazine Survey, Febrero 2002 Automatización Suministros 4% Gestión de Conocimiento 7% Atención Usuarios Convergencia entre TIC y Negocios Seguridad y Privacidad 12% 14% 14% Mejora Procesos de Desarrollo Comercio Electrónico Reducción de Costes Gestión de Relaciones con Clientes Recursos Humanos Nuevas Tecnologías 18% 21% 22% 24% 25% 26% Integración de Sistemas 36% 0% 5% 10% 15% 20% 25% 30% 35% 40%

Diseño abajo-arriba ( bottom-up ) Suele surgir por necesidad más que por elección Muchos de los sistemas de hoy en día se basan en la integración de productos existentes (legancy systems: sistemas heredados) Sistema heredado: aquel que es utilizado en un contexto distinto del que en principio fue concebido. La mayoría de SID se convierten en sistemas heredados Si tenemos que integrar sistemas heredados no podemos seguir un diseño arriba-abajo Definimos por tanto la funcionalidad del sistema al final? Cliente Presentación Lógica de aplicación Acceso a Datos /Recursos Sistema de Información

Diseño abajo-arriba ( bottom-up ) Definir la funcionalidad desde el punto de vista del cliente Examinar recursos existentes y la funcionalidad que ofrecen Encapsular la funcionalidad existente Adaptar la salida de la aplicación a las necesidades del cliente Ventaja: Los componentes por lo general son poco acoplados y pueden ser reutilizados Desventaja: Viene impuesto por necesidades existentes Cliente Presentación Lógica de aplicación Acceso a Datos /Recursos Sistema de Información

Arquitectura de un SID Arquitectura: Arte de proyectar y construir (edificios) Architecture: the art or science of building A la hora de implementar un SID las capas (layer) conceptuales pueden quedarse en uno o más niveles (tier) Existen 4 tipos básicos de arquitecturas: 1-tier, 2-tier, 3-niveles, N-niveles

Arquitectura 1-tier Aplicaciones monolíticas Las capas de presentación, lógica y datos se mezclan en una mismo nivel Suelen ser cerrados y no presentan ningún tipo de interfaz Son un ejemplo claro de sistemas heredados qué hacemos si tenemos que integrarlo? tienen alguna ventaja? Cliente Presentación Lógica de aplicación Acceso a Datos /Recursos Sistema de Información

Arquitectura 2-tier Surge con la aparición de los PCs Se vio la posibilidad de sacar la capa de presentación a otro nivel Ventajas: Se pude aprovechar las capacidad de computo del cliente Permite personalizar la capa de presentación para distintos fines y portarla a distintos entornos Un caso particular son las arquitecturas cliente/servidor Surgieron los RPC (Remote Procedure Call) lo que motivó para la creación de APIs Si el cliente es independiente del servidor, qué puede suceder? Desventaja: Cuando hay que hacer una integración real de más de un dos sistemas resulta poco mantenible y escalable (?) Cliente Presentación Lógica de aplicación Acceso a Datos /Recursos Sistema de Información

Arquitectura 2-tier Cliente Lógica de la aplicación Presentación 1 Presentación 2 Servidor 1 Servidor 2 Lógica de aplicación Lógica de aplicación Gestión de Recursos Gestión de Recursos

Arquitectura 3-tier Debido al problema de integración de varios sistemas aparece un nuevo nivel (middleware, nivel intermedio) La capa presentación reside en el cliente, la capa lógica reside en el nivel intermedio, y la capa de datos reside en el nivel de recursos que está compuesto por tantos recursos como el sistema pretende integrar La responsabilidad de integrar pasa al middleware (CORBA, DCOM), que también se encarga de: Transacciones Balanceo de carga Replicación 2-tier tiene ventajas y desventajas desde el punto de vista del rendimiento 3-tier separa el nivel lógico de datos (recursos) por lo que es más fácilmente escalable. Es la opción a seguir si se pretende hacer una integración de sistemas, por qué? Cliente Presentación Lógica de aplicación middleware Gestión de Recursos SID

Arquitectura N-tier Es la arquitectura n-tier escalada tantas veces como sea necesario La capa de recursos (datos) puede ser otro sistema n-tier Presentación Lógica de aplicación SID middleware Gestión de Recursos 1-tier 3-tier

Patrón MVC Modelo Vista Controlador (MVC): es un patrón de diseño de software. Modelo: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o portes en un carrito de la compra. Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente un elemento de interfaz de usuario. Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista. Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos. MVC no menciona específicamente esta capa de acceso a datos. Frameworks comunes: Jakarta Struts Velocity

Arquitecturas SOA SOA: Service Oriented Architecture XML SOAP SOAP SOAP SOAP Internet HTTP SOAP SOAP SOAP SOAP XML XML XML

Bibliografía Web Services Concepts, Architectures and Applications Alonso, G., Casati, F., Kuno, H., Machiraju, V. 2004, Springer ISBN: 3-540-44008-9 Pattern-Oriented Software Architecture Buschmann, F. et. al 1996, John Wiley & Sons ISBN: 0471958697

!Gracias! Podemos mejorar esta lección? Mándanos un email a benavides@us.es Visite la web de la asignatura www.lsi.us.es