Académique Documents
Professionnel Documents
Culture Documents
2. SISTEMAS DISTRIBUIDOS
Desde la aparición de los primeros ordenadores comercialmente
disponibles halla por los años 50, los grandes ordenadores
centralizados multiusuario por los años 60 y 70, el desarrollo de Figura 1. Estructura Típica de Internet
los potentes microprocesadores que dieron lugar a la aparición
También tenemos a Coulouris [5] con la siguiente definición: “Un
de la PC o Computadora Personal por los años 80; estos siempre
sistema distribuido es aquel en el que los componentes
han presentado ciertos problemas, ya sean los relacionados a los
localizados en computadores, conectados en red, comunican y
costos elevados, o su poco aprovechamiento en términos de
coordinan sus acciones únicamente mediante el paso de
rendimiento, o la posibilidad de administrar otro tipo de recursos
mensajes”.
(como por ejemplo impresoras o procesadores especializados). En
ese contexto aparecen la redes de computadoras de alta velocidad, Lo que debe quedar claro es que el objetivo primordial de los
y la solución a esto ultimo con la unión de los computadores sistemas distribuidos es el compartimiento fácil y eficiente de los
personales y las redes LAN, que permiten la aparición de los recursos entre múltiples usuarios.
Sistemas de Red. El siguiente paso fue el de los Sistemas Un sistema distribuido se puede definir como un conjunto
Distribuidos. Con estos sistemas, los usuarios pueden saber que cooperante y transparente de componentes de hardware y
hay multiplicidad de estaciones y equipos en la red, pero no
software remotos que se comunican entre sí mediante el 3. AGENTES DE SOFTWARE
intercambio de mensajes y que presenta dos características
fundamentales: 3.1 Definición de agentes
La palabra agente deriva de otra, robota [9] (o robot), de origen
• Está basado en una arquitectura en dos y tres niveles. checo cuyo creador fue el escritor checo Karel Kapec que usó
• Define un servicio particular ofrecido en una red de dicha palabra en una novela (Opilek) y posteriormente en una
computadoras. obra de teatro (Rossum Universal Robots). Aunque durante siglos
han existido autómatas de muy diversos tipos, especialmente
2.2 Características de los Sistemas como mecanismos de relojería y ha habido alguna obra influyente
Distribuidos al respecto (Julián La Mettrie: L´Homme Machine) no es hasta la
Un sistema distribuido puede verse como un sistema formado por segunda guerra mundial y el desarrollo de las computadoras
varios ordenadores haciendo algo conjuntamente, de lo que se cuando empieza a cobrar importancia todo lo relacionado con los
desprenden tres características inmediatas: agentes o robots, especialmente de la mano del padre de la
cibernética, Norbert Wiener. Sin embargo, el término agente, tal y
• Compuesto por múltiples ordenadores.
como se entiende actualmente, procede de los trabajos
• Hay interconexión entre ellos. comenzados en 1950, fundamentalmente, por parte del padre de la
• Tienen un estado compartido. inteligencia artificial, John McCarthy, el cual definió un agente
como un programa robot viviendo y trabajando en una
Entre algunas otras características que se consideran computadora e interactuando con el exterior en términos próximos
fundamentales tenemos [7]: al modelo humano. Quiere decir esto, que la primera disciplina
a) Consistencia. Un sistema distribuido es un único informática en estudiar el mundo de los agentes, o los sistemas
sistema formado por múltiples máquinas compuestos por múltiples agentes, fue la inteligencia artificial y
independientes. Ya que es un único sistema, debe tener más en concreto la inteligencia artificial distribuida [6] (DAI); la
un único estado global compartido por todos los equipos cual se divide, a su vez, en dos grandes áreas: Resolución
que lo componen. El estado global se refiere a datos: distribuida de problemas (DPS) y sistemas multiagente (MAS).
como tablas de mantenimiento del sistema, la hora Conviene resaltar que DAI se centra principalmente en la
actual o datos que estén compartidos por procesos de investigación de agentes estáticos o fijos en una máquina sin
distintas máquinas. capacidad de moverse por la red.
b) Transparencia. La construcción de un sistema
distribuido que se comporte según esperan los usuarios, Aunque el término agente no es un término nuevo, no hay todavía
requiere la consideración de otras características, que en una definición estandarizada y aceptada por todos. A la hora de
principio diremos que son deseables tales como: definir un agente, existe una clara controversia entre los
Compartimiento de Recursos, Sistema Abierto, investigadores en función de sus características.
Escalabilidad, Tolerancia a Fallos y Seguridad. Un
sistema que reúna todas estas propiedades conseguirá 3.2 Características de los Agentes
entonces la principal característica deseada por el Podemos reconocer dos tipos de características: las fundamentales
usuario: la TRANSPARENCIA, es decir, su sistema y las adicionales.
distribuido va a comportarse de manera ideal sin que el ¾ Características fundamentales:
usuario se aperciba en ningún momento de los posibles 9 Autonomía: Independencia de actuación, es decir, sin
y normales problemas que pueden producirse en el sufrir la intervención directa de nadie.
sistema (en las máquinas que lo componen). 9 Flexibilidad:
Reactividad-Adaptabilidad: Perciben, se adaptan
2.3 Modelos de Cliente/Servidor para el al entorno y actúan en él.
desarrollo de Aplicaciones Distribuidas Proactividad: Capacidad de tomar la iniciativa.
Para el desarrollo de aplicaciones distribuidas o en red según el Comunicabilidad – Sociabilidad: Acceso a
modelo cliente-servidor, existen los siguientes modelos [4]: recursos y capacidad de interacción con otras
¾ Modelos basados en llamadas a funciones, Sockets. entidades.
¾ Modelos basados en llamadas a procedimientos 9 Continuidad Temporal: Proceso en continua ejecución.
remotos, RPC (Remote Procedure Call). ¾ Atributos adicionales:
¾ Modelos basados en llamadas a objetos distribuidos, 9 Movilidad (Agentes móviles): Migrar, interactuar y
RMI (Remote Method Invocation), JINI, CORBA, regresar bajo su propio control.
COM+ (Common Object Model Plus), Enterprise Java 9 Capacidad de Razonamiento/Aprendizaje: Inteligencia.
Beans. 9 Seguridad/Confiabilidad: Mecanismos y servicios de
¾ Modelo basado en servicios Web distribuidos, es una seguridad para evitar sorpresas por parte del agente
tecnología que, a su vez, utiliza los siguientes representante y/o de otras entidades.
estándares, XML, SOAP, WSDL, UDDI. En función de lo anterior, cuando se define un agente se
¾ Modelos basados en agentes móviles. establecen dos tipos de visiones:
¾ Visión amplia - Atributos mínimos:
9 Autonomía.
9 Flexibilidad:
• Reactividad-Adaptabilidad,
• Proactividad dispone de un conjunto más o menos amplio de atributos entre los
• Comunicabilidad-Sociabilidad que destaca la movilidad en el sentido de que no está limitado al
9 Continuidad Temporal sistema donde comienza la ejecución sino que tiene la completa
¾ Visión estricta.- Atributos opcionales añadidos a los mínimos libertad para viajar, es decir, migrar, interactuar y regresar bajo su
o básicos. propio control.
9 Movilidad Como se muestra en la siguiente figura, los agentes móviles son
9 Capacidad de Razonamiento-Aprendizaje funcionalmente objetos de software [3] que transportan en un
9 Seguridad-Confiabilidad mensaje su estado y código para poder interactuar remotamente
Según se muestra en la siguiente figura, la definición más con otros agentes o recursos. Para que el agente móvil pueda
completa de un agente sería aquélla que junte los atributos básicos interactuar con otros agentes o recursos afines es necesaria la
de la visión amplia con los atributos opcionales de la visión definición de un protocolo que especifique el formato de los
estricta. En definitiva, esta definición se correspondería con todos mensajes y las acciones que se han de efectuar. En el mensaje
los atributos que en teoría debe disponer un agente móvil, transportado por el agente móvil se incluye un:
inteligente y seguro. a) Estado: Como su nombre indica, contiene el estado del
objeto o los valores de los atributos del agente y el
estado de la máquina o estado de ejecución (contador de
programa, punteros de pila, registros, etc.).
b) Código: Incluye la clase con los métodos de interacción
permitidos.