Estilos Arquitectónicos

Los estilos arquitectónicos defines arquitecturas para el desarrollo de software. Los mismos estan compuesto por patrones de arquitectura.

sábado, 21 de junio de 2008

Estilos Arquitectónicos.

Los estilos arquitectónicos tienen muchas definiciones y conceptos definidos por los grandes desarrolladores de la ingeniería de software. Por ejemplo se puede citar una definición hecha por Mary Shawn y David Garlan donde plantean que “un estilo arquitectónico define una familia de sistemas en términos de patrón de organización estructural. Específicamente, un estilo arquitectónico determina el vocabulario de componentes y conectores que puede ser usado así como un conjunto de restricciones de cómo pueden ser combinados”.

Los estilos arquitectónicos están basados en los patrones de arquitecturas que se usen. Los estilos agrupan clases, englobando una serie de estilos arquitectónicos que comparten características. Generalmente los estilos proveen guías para crear una clase amplia de arquitectura, donde los patrones se enmarcan en darle solución a problemas más pequeños y más específicos dentro de un estilo dado.

A continuación se muestran los estilos arquitectónicos más recomendados para conformar la arquitectura que se propone.

Estilos de Llamada y Retorno.

• Modelo Vista Controlador: Conocido más bien como Model View Controler (por sus siglas en ingles, MVC). Este patrón separa el modelado del dominio, la presentación y las acciones basadas en la entrada de datos por el usuario en tres clases diferentes. El modelo está encargado de administrar el comportamiento y los datos del dominio de aplicación, respondiendo a requerimientos de información sobre su estado y a instrucciones de cambiar su estado (normalmente desde el controlador); la vista que controla la visualización de la información y el controlador que interpreta las acciones del ratón y del teclado, informando al modelo y/o a la vista para que cambien su estado según les sea factible.
• Cliente-Servidor: Es una arquitectura compuesta por dos componentes fundamentales, uno de estos elementos es el cliente que puede estar compuesto por una o varias computadoras conectadas en Red que solicitan servicio al otro componente, que es el servidor, que no es más que otra computadora en la misma Red.


Fig.1 Modelo cliente-servidor.

Este tipo de arquitectura permite que los usuarios puedan acceder a los mismos datos al establecer conexión con el servidor, este brinda un acceso transparente a las aplicaciones que se ejecutan en el, controlando el acceso a los recursos. Como se puede observar en la figura 3 esta arquitectura se basa en procesos distribuidos, procesos de pedidos y respuestas. En la actualidad se hace uso de esta tecnología, por ejemplo la Internet en el amplio sentido de la palabra está basada en esta tecnología. Esta arquitectura es recomendable para aplicaciones Web.

• Arquitectura en Capas: Es una organización jerarquizada, donde una capa le brinda servicios única y exclusivamente a su capa superior y es provista de su capa inferior. Las interacciones entre capas generalmente son invocadas por métodos, donde normalmente las capas inferiores no pueden utilizar las funcionalidades de los niveles superiores. Este tipo de estilo permite desarrollar la aplicación a través de módulos, facilitando a la vez la corrección de errores y brindar un mejor soporte al sistema una vez finalizado.

• Arquitectura Orientada a Objetos: En este estilo los componentes se basan en los principios orientados a objetos (OO). En una forma simple un diseño orientado a objetos permite diseñar sistemas para encapsular los datos y los objetos proveen explícitamente interfaces a otros objetos, las interfaces están separadas de las implementaciones. Pero la principal característica de este estilo es que se puede modificar la implementación de un objeto sin afectar la interfaz. Hay muchas variantes en este estilo ya que algunos sistemas permiten que los objetos sean tareas concurrentes, otros admiten que los objetos contengan diferentes interfaces.

Estilos de Código Móvil.

• Arquitectura de Máquinas Virtuales: En la nueva estrategia arquitectónica de Microsoft la máquina virtual por excelencia tiene gran relación con el Common Language Runtime (CLR), el CLR admite programación orientada a objetos (C#, F#, C++, Java, Phyton) y otros paradigmas puros y templados. Con una máquina virtual común el proceso evita la redundancia de compiladores compitiendo por recursos, unificando depurador y profilers.

Estilo Orientado a Servicios.

• Una arquitectura muy novedosa es la orientada a servicios (Service Oriented Architecture SOA). Esta es una arquitectura en la que se pueden establecer conexiones para consumir servicios que provee un servidor determinado, estos servicios pueden ser consumidos por terceras personas ya que esta arquitectura permite brindar información en interfaces estándares. En esta arquitectura hay tres componentes que juegan un papel importante que son: el proveedor del servicio, el registro del servicio y el consumidor del servicio. Generalmente a estos servicios son conocidos como webservices (servicios web) usando como formato principal para el intercambio de datos el estándar XML.

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio