3.3 Arquitectura de dominio específico
El reto para el diseño es diseñar el software y hardware para proporcionar
características deseables a los sistemas distribuidos y, al mismo tiempo,
minimizar los problemas propios a estos sistemas. Es necesario comprender las
ventajas y desventajas de las diferentes arquitecturas de sistemas
distribuidos. Aquí se tratan dos tipos genéricos de arquitecturas de sistemas
distribuidos: Arquitectura cliente-servidor. En este caso el sistema puede ser
visto como un conjunto de servicios que se proporcionan a los clientes que
hacen uso de dichos servicios. Los servidores y los clientes se tratan de forma
diferente en estos sistemas.
Arquitecturas de objetos distribuidos. Para esta arquitectura no hay distinción
entre servidores y clientes, y el sistema puede ser visto como un conjunto de
objetos que interaccionan cuya localización es irrelevante. No hay distinción
entre un proveedor de servicios y el usuario de estos servicios.
Ambas arquitecturas se usan ampliamente en la industria, pero la distribución
de las aplicaciones generalmente tiene lugar dentro de una única organización.
La distribución soportada es, por lo tanto, intraorganizacional. También se
pueden tomar dos tipos más de arquitecturas distribuidas que son más adecuadas
para la distribución interorganizacional: arquitectura de sistemas peer-to-peer
(p2p) y arquitecturas orientadas a servicios. Los sistemas peer-to-peer han
sido usados principalmente para sistemas personales, pero están comenzando a
usarse para aplicaciones de empresa.
Los componentes en un sistema distribuido pueden implementarse en diferentes
lenguajes de programación y pueden ejecutarse en tipos de procesadores
completamente diferentes. Los modelos de datos, la representación de la
información y los protocolos de comunicación pueden ser todos diferentes.
Un sistema distribuido, por lo tanto, requiere software que pueda gestionar
estas partes distintas, y asegurar que dichas partes se puedan comunicar e
intercambiar datos. El término middleware se usa para hacer referencia a ese
software; se ubica en medio de los diferentes componentes distribuidos del
sistema.
Bernstein (Bernstein, 1996) resume los tipos de middleware disponibles para
soportar computación distribuida. El middleware es un software de propósito
general que normalmente se compra como un componente comercial más que
escribirse especialmente por los desarrolladores de la aplicación. Ejemplos de
middleware son software para gestionar comunicaciones con bases de datos,
administradores de transacciones, convertidores de datos y controladores de
comunicación.
Los sistemas distribuidos se desarrollan normalmente utilizando una
aproximación orientada a objetos. Estos sistemas están formados por partes
independientes pobremente integradas, cada una de las cuales puede interaccionar
directamente con los usuarios o con otras partes del sistema. Algunas partes
del sistema pueden tener que responder a eventos independientes. Los objetos
software reflejan estas características; por lo tanto, son abstracciones
naturales para los componentes de sistemas distribuidos.
Existen dos modelos de dominio específico:
1. Modelos genéricos que son abstracciones de varios sistemas reales.
2. Modelos de referencia que son modelos abstractos y describen a una clase
mayor de sistemas.
Modelo genérico: flujo de datos de un compilador
Modelo de Referencia: La arquitectura OSI.
Aquí se tratan dos tipos genéricos de arquitecturas de sistemas
distribuidos: Arquitectura cliente-servidor. En este caso el sistema puede ser
visto como un conjunto de servicios que se proporcionan a los clientes que
hacen uso de dichos servicios. Los servidores y los clientes se tratan de forma
diferente en estos sistemas. Arquitecturas de objetos distribuidos.
Para esta arquitectura no hay distinción entre servidores y clientes, y
el sistema puede ser visto como un conjunto de objetos que interaccionan cuya
localización es irrelevante. No hay distinción entre un proveedor de servicios
y el usuario de estos servicios. Ambas arquitecturas se usan ampliamente en la
industria, pero la distribución de las aplicaciones generalmente tiene lugar
dentro de una única organización. La distribución soportada es, por lo tanto,
intraorganizacional. También se pueden tomar dos tipos más de arquitecturas
distribuidas que son más adecuadas para la distribución interorganizacional:
arquitectura de sistemas peer-to-peer (p2p) y arquitecturas orientadas a
servicios.
Los sistemas peer-to-peer han sido usados principalmente para sistemas
personales, pero están comenzando a usarse para aplicaciones de empresa. Los
componentes en un sistema distribuido pueden implementarse en diferentes
lenguajes de programación y pueden ejecutarse en tipos de procesadores
completamente diferentes.
Los modelos de datos, la representación de la
información y los protocolos de comunicación pueden ser todos diferentes. Un
sistema distribuido, por lo tanto, requiere software que pueda gestionar estas
partes distintas, y asegurar que dichas partes se puedan comunicar e
intercambiar datos. El término middleware se usa para hacer referencia a ese
software; se ubica en medio de los diferentes componentes distribuidos del sistema.
Bernstein (Bernstein, 1996) resume los tipos de middleware disponibles para
soportar computación distribuida. El middleware es un software de propósito
general que normalmente se compra como un componente comercial más que
escribirse especialmente por los desarrolladores de la aplicación. Ejemplos de
middleware son software para gestionar comunicaciones con bases de datos,
administradores de transacciones, convertidores de datos y controladores de
comunicación. Los sistemas distribuidos se desarrollan normalmente utilizando
una aproximación orientada a objetos.
Estos sistemas están formados por partes independientes pobremente
integradas, cada una de las cuales puede interaccionar directamente con los
usuarios o con otras partes del sistema. Algunas partes del sistema pueden
tener que responder a eventos independientes. Los objetos software reflejan
estas características; por lo tanto, son abstracciones naturales para los
componentes de sistemas distribuidos.
No hay comentarios:
Publicar un comentario