DISEÑO Y ARQUITECTURA DE SOFTWAREUnidad 1. ARQUITECURA Actividad 3. Patrones de arquitectura de software Alumno: Agustín Radilla Garduño Los patrones de diseño de software ofrecen soluciones a problemas de arquitectura de software en ingeniería de software. Dan una descripción de los elementos y el tipo de relación que tienen junto con un conjunto de restricciones sobre cómo pueden ser usados. Un patrón arquitectónico expresa un esquema de organización estructural esencial para un sistema de software, que consta de subsistemas, sus responsabilidades e interrelaciones. En comparación con los patrones de diseño, los patrones arquitectónicos tienen una nivel de abstracción mayor. PATRON DE ARQUITECTURA CARACTERISTICAS La Arquitectura dirigida por eventos, Event-driven architecture o EDA, es un patrón de arquitectura software que promueve la producción, detección, consumo de, y reacción a eventos. Arquitectura dirigida por eventos Un evento puede ser definido como "un cambio significativo en un estado". Por ejemplo, cuando un consumidor compra un coche, el estado del coche pasa de "se vende" a "vendido". La arquitectura del sistema del vendedor de coches debe tratar este cambio de estado como un evento, cuyo suceso puede ser conocido en otras aplicaciones en la arquitectura. Desde una perspectiva formal, lo que es producido, publicado, propagado, detectado o consumido es un mensaje (típicamente asíncrono) llamado notificación del evento, y no el evento en sí mismo, el cuál es el cambio de estado que disparó la emisión del evento. Los eventos no viajan, solamente ocurren. Por otro lado, el término evento es frecuentemente usado para denotar el mensaje de notificación en sí mismo, lo cual puede llevar a algún tipo de confusión. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingenierías y Tecnología Ingenierías y Tecnología . le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También se consideran aquí los programas de aplicación. para recibir las solicitudes y presentar los resultados. Capa de datos Es donde residen los datos y es la encargada de acceder a los mismos. para solicitar al gestor de base de datos almacenar o recuperar datos de él. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos. y con la capa de datos. Esta capa se comunica únicamente con la capa de negocio. un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación. se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Capa de presentación Es la que ve el usuario (también se la denomina "capa de usuario") Presenta el sistema al usuario. Programación en capas Capa de negocio Es donde residen los programas que se ejecutan.DISEÑO Y ARQUITECTURA DE SOFTWARE Unidad 1. ARQUITECURA PATRON DE ARQUITECTURA CARACTERISTICAS La programación por capas es una arquitectura cliente-servidor en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño. PATRON DE ARQUITECTURA CARACTERISTICAS Educación Superior Abierta y a Distancia • Ciencias Exactas. También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. es decir. Es difícil obtener una traza de los pasos que llevaron a la solución. Ingenierías y Tecnología . no se tiene un conocimiento completo del problema a resolver. denominados agentes. Los agentes suelen estar especializados en una tarea concreta o elemental. sus objetivos individuales no están aparentemente coordinados. o simplemente. no ofrece explicaciones Arquitectura en pizarra Educación Superior Abierta y a Distancia • Ciencias Exactas.DISEÑO Y ARQUITECTURA DE SOFTWARE Unidad 1. puesto que no existe una cota respecto al tiempo de cómputo necesario para resolver el problema. y un instrumento de control denominado pizarra. Todos ellos cooperan para alcanzar una meta común. La computación termina cuando se alcanza alguna condición deseada entre los resultados escritos en la pizarra. Es una arquitectura ineficiente. puesto que cada implementación en particular puede solventar estas desventajas en algún ámbito limitado: No existe garantía de que se alcanzará una solución. otro agente puede trabajar sobre los resultados generados por otro. De esta manera. El comportamiento básico de cualquier agente consiste en examinar la pizarra. si bien. cuando el flujo de control del algoritmo es enrevesado. Es importante no generalizar en este aspecto. realizar su tarea y escribir sus conclusiones en la misma pizarra. Las desventajas de la arquitectura son bastante obvias a priori. ARQUITECURA La arquitectura en pizarra consta de múltiples elementos funcionales. Es decir. Esta arquitectura es tremendamente útil cuando el problema a resolver (o algoritmo a implementar) es extremadamente complejo en términos cognitivos. Es decir. Peer-to-peer Educación Superior Abierta y a Distancia • Ciencias Exactas. vídeo o software). por sus siglas en inglés) es una red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos. Dichas redes son útiles para diversos propósitos. y obtienen así más rendimiento en las conexiones y transferencias que con algunos métodos centralizados convencionales. audio. red entre iguales. Normalmente este tipo de redes se implementan como redes superpuestas construidas en la capa de aplicación de redes públicas como Internet. donde una cantidad relativamente pequeña de servidores provee el total del ancho de banda y recursos compartidos para un servicio o aplicación. Ingenierías y Tecnología . ARQUITECURA PATRON DE ARQUITECTURA CARACTERISTICAS Una red peer-to-peer. en cualquier formato. solamente ocurren. sino una serie de nodos que se comportan como iguales entre sí. administran y optimizan el uso del ancho de banda de los demás usuarios de la red por medio de la conectividad entre los mismos. actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red. red entre pares o red punto a punto (P2P. lo cual puede llevar a algún tipo de confusión. Los eventos no viajan. Por otro lado. Las redes P2P permiten el intercambio directo de información.DISEÑO Y ARQUITECTURA DE SOFTWARE Unidad 1. entre los ordenadores interconectados. lo que ha generado una gran polémica entre defensores y detractores de estos sistemas. El hecho de que sirvan para compartir e intercambiar información de forma directa entre dos o más usuarios ha propiciado que parte de los usuarios lo utilicen para intercambiar archivos cuyo contenido está sujeto a las leyes de copyright. red de pares. Este tipo de red también suele usarse en telefonía VoIP para hacer más eficiente la transmisión de datos en tiempo real. A menudo se usan para compartir ficheros (archivos) de cualquier tipo (por ejemplo. Las redes peer-to-peer aprovechan. el término evento es frecuentemente usado para denotar el mensaje de notificación en sí mismo. geográficamente dispersos y bajo cualquier figura de propiedad. De exposición de funcionalidades . Arquitectura orientada a servicios Educación Superior Abierta y a Distancia • Ciencias Exactas. SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de negocio y puede dar soporte a las actividades de integración y consolidación.Donde las funcionalidades de la capa aplicativa son expuestas en forma de servicios (generalmente como servicios web).DISEÑO Y ARQUITECTURA DE SOFTWARE Unidad 1.donde los servicios son desplegados a los usuarios finales. ARQUITECURA PATRON DE ARQUITECTURA CARACTERISTICAS La 'Arquitectura Orientada a Servicios de cliente' (en inglés Service Oriented Architecture). De composición de procesos .Sistemas desarrollados bajo cualquier arquitectura o tecnología. lo cual facilita la interacción entre diferentes sistemas propios o de terceros. y que varía en función del negocio. Permite la creación de sistemas de información altamente escalables que reflejan el negocio de la organización. Ingenierías y Tecnología . De entrega . a su vez brinda una forma bien definida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web).Que define el proceso en términos del negocio y sus necesidades. SOA define las siguientes capas de software: Aplicaciones básicas .Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a procesos empresariales internos o en colaboración. es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. De integración de servicios . la vista y el controlador. Ingenierías y Tecnología . Para ello MVC propone la construcción de tres componentes distintos que son el modelo. y por otro lado para la interacción del usuario. por un lado define componentes para la representación de la información. ARQUITECURA PATRON DE ARQUITECTURA CARACTERISTICAS El Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Modelo vista a controlador Este patrón de diseño se basa en las ideas de reutilización de código y la separación de conceptos.DISEÑO Y ARQUITECTURA DE SOFTWARE Unidad 1. Educación Superior Abierta y a Distancia • Ciencias Exactas. características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento. es decir.