7 minute read
Tipos de Arquitecturas
Tipos de Tipos de
Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto.
Advertisement
Para algunos autores existe una sutil diferencia entre tipos de arquitectura (o estilos de arquitectura) y patrones de arquitectura. Diciendo que un estilo de arquitectura es una manera conceptual como se creará o trabajará el sistema, mientras que un patrón de arquitectura describe una solución para la aplicación de un estilo de arquitectura a nivel de subsistemas o módulos y sus relaciones.
Para otros autores son conceptos similares.
arquitecturas arquitecturas
Como te decíamos al principio, la arquitectura de software sigue una serie de pasos en su construcción, pero ¿sabes cuáles son? Aunque existen distintos modelos de arquitectura y procesos de desarrollo, podemos encontrar los siguientes arquetipos comunes, que describen los elementos y la relación entre ellos:
Cliente-Servidor
La Arquitectura Cliente Servidor es un modelo para el desarrollo de sistemas de información en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que responde a las solicitudes. En este modelo las aplicaciones se dividen de forma que el servidor contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece sólo lo particular de cada usuario.
El Cliente-Servidor es un sistema distribuido entre múltiples Procesadores donde hay clientes que solicitan servicios y servidores que los proporcionan. El componente del servidor proporcionará servicios a múltiples componentes del cliente. Los clientes solicitan servicios del servidor y el servidor proporciona servicios relevantes a esos clientes. Además, el servidor sigue escuchando las solicitudes de los clientes.
Funciones de los ClientesServidor
• Manejo de la interfaz de usuario.
• Captura y validación de los datos de entrada.
• Generación de consultas e informes sobre las bases de datos.
Por su parte los servidores realizan, entre otras, las siguientes funciones:
• Gestión de periféricos compartidos.
• Control de accesos concurrentes a bases de datos compartidas.
• Enlaces de comunicaciones con otras redes de área local o extensa.
Ejemplos
Aplicaciones en línea como correo electrónico, uso compartido de documentos y banca.
Arquitectura por capas
Especialización de la arquitectura clienteservidor, que se puede utilizar para estructurar programas que se pueden descomponer en grupos de subtareas con un reparto claro de funciones. Una capa solamente tiene relación con la siguiente.
Las 4 capas más comúnmente encontradas de un sistema de información general son las siguientes.
• Capa de presentación (también conocida como capa UI)
• Capa de aplicación (también conocida como capa de servicio)
• Capa de lógica de negocios (también conocida como capa de dominio)
• Capa de acceso a datos (también conocida como capa de persistencia)
El estilo de arquitectura basado en capas se identifica por las siguientes características:
• Describe la descomposición de servicios de forma que la mayoría de la interacción ocurre solamente entre capas vecinas.
• Las capas de una aplicación pueden residir en la misma maquina física (misma capa) o puede estar distribuido sobre diferentes computadores (ncapas).
• Los componentes de cada capa se comunican con otros componentes en otras capas a través de interfaces muy bien definidas.
• Este modelo ha sido descrito como una “pirámide invertida de re-uso” donde cada capa agrega responsabilidad y abstracción a la capa directamente sobre ella. EJEMPLOS
Algunos tipos comunes de aplicaciones por capas incluyen:
• Aplicaciones de línea de negocios (LOB), como contabilidad, y sistemas de gestión de clientes.
• Aplicaciones web Corporativas y sitios Web
• Aplicaciones corporativas de escritorio o clientes inteligentes con servidores centralizados de aplicación con lógica de negocios.
Arquitectura Orientada a servicios
La arquitectura orientada a servicios (SOA, siglas del inglés Service Oriented Architecture) permite que la funcionalidad de la aplicación se exponga y consuma como un conjunto de servicios. Los servicios usan una forma estándar de interacción que les permiten ser invocados, publicados y descubiertos. Los servicios SOA están enfocados en proveer un esquema y una interacción basada en mensajes con una aplicación. Los servicios SOA proveen interfaces con alcance de aplicación en vez de interfaces del nivel de componente u objeto. En otras palabras un servicio SOA no debe ser tratado como un servicio proveído por un componente.
BENEFICIOS
Los mayores beneficios del estilo de arquitectura SOA son:
• Alineación con el Dominio. El re-uso de servicios comunes con interfaces estándar incrementa las oportunidades de negocios y reduce costos.
• Abstracción. Los servicios son autónomos y se accede a ellos a través de un contrato formal lo que provee desacople y abstracción.
• Capacidad de Descubrimiento. Los servicios pueden exponer descripciones que permiten a otras aplicaciones y servicios localizarlos y determinar de forma automática la interfaz.
El estilo de arquitectura SOA se caracteriza por:
• Estar basado en el diseño de servicios que reflejan las actividades del negocio en el mundo real, estas actividades forman parte de los procesos de negocio de la compañía.
• Representar los servicios utilizando descripciones de negocio para asignarles un contexto de negocio.
• Requerir un conjunto de pruebas que determinen que es un buen servicio.
• Tener requerimientos de infraestructura específicos y únicos para este tipo de arquitectura, en general se recomienda el uso de estándares abiertos para la interoperabilidad y transparencia en la ubicación de servicios. EJEMPLOS Ejemplos comunes de aplicaciones orientadas a servicios incluyen:
• Sistemas que comparten información médica. (Harvard Medical School)
• Sistemas de reservas (Starwood Hotels and Resorts)
• Sistemas de WorkFlow. (State Children’s Health Insurance Program)
Arquitectura en pizarra
La arquitectura de software en pizarra es un modelo arquitectónico de software habitualmente utilizado en sistemas expertos, sistemas multiagente y, en general, sistemas basados en el conocimiento. Es útil para problemas para los que no se conocen estrategias de solución deterministas. Arquitectura en pizarra consta de 3 componentes principales.
pizarra: una memoria global estructurada que contiene objetos del espacio de solución.
fuente de conocimiento: módulos especializados con su propia representación.
componente de control: selecciona, configura y ejecuta módulos.
BENEFICIO
Esta arquitectura es tremendamente útil cuando el problema a resolver (o algoritmo a implementar) es extremadamente complejo en términos cognitivos. Es decir, cuando el flujo de control del algoritmo es enrevesado, o simplemente, no se tiene un conocimiento completo del problema a resolver. El estilo de arquitectura en pizarra se identifica por las siguientes características:
• La arquitectura en pizarra consta de múltiples elementos funcionales, denominados agentes, y un instrumento de control denominado pizarra.
• Los agentes suelen estar especializados en una tarea concreta o elemental. Todos ellos cooperan para alcanzar una meta común, si bien, sus objetivos individuales no están aparentemente coordinados.
• El comportamiento básico de cualquier agente consiste en examinar la pizarra, realizar su tarea y escribir sus conclusiones en la misma pizarra. De esta manera, otro agente puede trabajar sobre los resultados generados por otro.
• La computación termina cuando se alcanza alguna condición deseada entre los resultados escritos en la pizarra.
EJEMPLOS
Reconocimiento de voz
• La pizarra tiene un doble papel. Por una parte, coordina a los distintos agentes y, por otra, facilita su intercomunicación. El estado inicial de la pizarra es una descripción del problema que resolver y el estado final será la solución del problema.
• Los resultados generados por los agentes deben responder a un lenguaje y semántica común. En general, se suelen utilizar formalismos lógicos o matemáticos, tales como expresiones lógicas de primer orden.
Identificación y seguimiento del vehículo Identificación de la estructura proteica Sonar señala la interpretación.
Modelo–vista–controlador
Modelo-vista-controlador (MVC) es un patrón de arquitectura de software, que separa los datos y principalmente lo que es la lógica de negocio de una aplicación de su representación y el módulo encargado de gestionar los eventos y las comunicaciones. Este patrón divide una aplicación interactiva en 3 partes:
Modelo: contiene la funcionalidad y los datos básicos.
Vista: muestra la información al usuario (se puede definir más de una vista).
Controlador : maneja la entrada del usuario. Esto se hace para separar las representaciones internas de información de las formas en que se presenta y acepta la información del usuario. Desacopla los componentes y permite la reutilización eficiente del código. Características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento.
Ventajas de MVC
Las principales ventajas del uso del patrón MVC son (4):
• La separación del Modelo y la Vista, lo cual logra separar los datos, de su representación visual.
• Facilita el manejo de errores.
• Permite que el sistema sea escalable si es requerido.
• Es posible agregar múltiples representaciones de los datos.
Ejemplos
• Arquitectura para aplicaciones World Wide Web en los principales lenguajes de programación.
• Marcos web como Django y Rails.