La acci´onsendpermite enviar un mensaje a un solo agente o a una lista de agentes. Esta acci´on debe determinar la direcci´on del agente o agentes (consultando al ADS si fuera necesario), generar los t´erminos MAI2L correspondientes y finalmente llevar a cabo el env´ıo.
Las primitivas de cooperaci´on representan la transferencia de conocimiento de un agente a uno o m´as agentes mediante t´erminos MAI2L, utilizando una meta espec´ıfica. Por otro lado, los m´etodos de cooperaci´on son planes multi-agente independientes del dominio que se utilizan para construir y ejecutar planes multi-agente espec´ıficos del dominio.
3.12. Agentes y sistemas de recuperaci ´on de informaci ´on
Una de las posibles aplicaciones de los agentes es la gesti´on de informaci´on. A este tipo de agentes se les denomina agentes de informaci´on (information agent).
Papazoglou et al. [PLS92] definen un agente de informaci´on como un agente que tiene acceso a, al menos, una y potencialmente muchas fuentes de informaci´on y es capaz de recoger y manipular dicha informaci´on de cara a responder a las consultas realizadas por los usuarios y por otros agentes de informaci´on.
De acuerdo a la clasificaci´on de Dick Stenmark [STE], los agentes de informaci´on se pueden clasi- ficar en:
Agentes interfaz: Se utilizan para decrementar la complejidad de sistemas de informaci´on m´as sofisticados y sobrecargados. Algunos de ellos permiten interpretar el lenguaje natural.
Agentes de sistema: Ejecutan como parte integrante de los sistemas operativos o de dispositivos de la red. Realizan labores tales como inventario de hardware, interpretaci´on de los eventos de red, gesti´on de copias de seguridad o de dispositivos de almacenamiento o detecci´on de virus. Estos agentes no suelen trabajar de forma directa con las aplicaciones de usuario.
Agentes asesores: Se emplean en complejos sistemas de ayuda o de diagnosis.
Agentes de filtrado: Se utilizan para reducir la sobrecarga de informaci´on eliminando datos que no encajan con determinados perfiles.
Agentes de recuperaci´on de informaci´on (information retrieval agents): Se encargan de buscar y recuperar informaci´on y se pueden utilizar como gestores de documentos.
Agentes de “navegaci´on”: “Navegan” a trav´es de redes internas y externas, recordando enlaces, pre-cargando informaci´on y almacenando enlaces interesantes.
Agentes de monitorizaci´on: Proporcionan al usuario informaci´on sobre determinados eventos que se encarga de monitorizar, tal como movimientos, actualizaciones o borrados de informaci´on. Agentes de recomendaci´on: Este tipo de agentes se utiliza de forma colaborativa. Estos agentes realizan recomendaciones sobre determinadas decisiones a tomar por los sistemas.
Agentes paraprofiling: Estos agentes construyensitescon informaci´on y recomendaciones adap- tadas a las necesidades individuales de cada usuario.
Cap´ıtulo 4
E/S distribuida y paralela
4.1. Introducci ´on
Salvo raras excepciones, las aplicaciones requieren interactuar con el exterior, a trav´es de la entrada o salida de datos. El sistema de E/S es el encargado de gestionar en el computador los dispositivos que ejercen de interfaz del mismo. Aunque tradicionalmente se ha discriminado la importancia de este sistema frente al estudio del procesador, lo cierto es que constituye una parte fundamental de la arquitectura de cualquier computador. Como afirma Patterson en el pr´ologo de [JCB02], “Un computador sin dispositivos de E/S es como un coche sin ruedas - no puedes llegar muy lejos sin ellas”.
La mayor´ıa de las aplicaciones utilizan los ficheros como una forma de almacenamiento perma- nente de la informaci´on y como medio de compartici´on con otras aplicaciones. El sistema de ficheros es la parte del sistema de E/S que se encarga de la gesti´on de los ficheros y proporciona un me- canismo de abstracci´on a los usuarios, de forma que oculta todos aquellos detalles relacionados con el almacenamiento y distribuci´on de la informaci´on en los discos, as´ı como el funcionamiento de los mismos.
Los sistemas de ficheros tradicionales o secuenciales son aquellos sistemas que se ejecutan en entornos monoprocesador o SMP y ofrecen sus servicios ´unicamente a los usuarios de dichos sistemas. Un ejemplo de sistema de este tipo lo constituye el sistema de ficheros de UNIX (UFS: UNIX File System) [Bac86]. En UNIX cada fichero se representa como una secuencia de bytes lineal y un puntero a partir del cual se realizan las operaciones de E/S [Tho78]. UFS proporciona un conjunto de operaciones b´asicas de acceso a ficheros, que permiten acceder de forma contigua a los datos almacenados en discos locales. Esta interfaz no es adecuada para los requisitos de aplicaciones distribuidas y paralelas.
4.2. Sistemas de ficheros distribuidos
Con la aparici´on de las redes de interconexi´on, surgi´o la necesidad de compartir datos entre dife- rentes m´aquinas, problema que origin´o la aparici´on de los sistemas de ficheros distribuidos [Svo84],
[LS90]. Los sistemas de ficheros distribuidos permiten que procesos de m´ultiples computadores puedan acceder a un conjunto com´un de ficheros. Un sistema de este tipo garantiza la transparencia de acceso a los ficheros en un entorno distribuido, ofreciendo un espacio de almacenamiento global que permite a m´ultiples clientes compartir los dispositivos de almacenamiento.
Aunque un sistema de ficheros distribuido est´a formado por m´ultiples servidores y dispositivos de almacenamiento, el acceso a la informaci´on no se realiza en paralelo.
NFS [SGK+85], AFS [HKM+88], Coda [SKK+90], Sprite [OCD+89] o GFS [SRO96] son ejemplos
de sistemas de ficheros distribuidos.
4.2.1. NFS
NFS (Network File System) fue dise˜nado originalmente por Sun Microsystems en 1985 [SGK+85].
NFS permite el acceso transparente a ficheros y directorios situados en m´aquinas remotas, para poder utilizarlos como si fueran locales. Sigue un esquema cliente-servidor, de forma que el nodo remoto se denomina servidor NFS y el nodo local se denomina cliente NFS. El servidor sit´ua directorios de su propio ´arbol de directorios a disposici´on de otros nodos que se encuentran conectados a trav´es de una red. Para llevar a cabo esta tarea, el servidor debe exportar dichos directorios. Los clientes a fin de utilizar los directorios exportados previamente deben “montarlos” en alg´un directorio de su propio sistema de ficheros, directorio al cual se denomina “punto de montaje”.
Los clientes y servidores se comunican a trav´es de la red mediante el uso de RPC. El servidor NFS tiene una interfaz que permite programar cualquier cliente para comunicarse con el mismo [NFS89], [NFS95].
El protocolo NFS fue dise˜nadosin estado, de modo que el servidor escribe de forma estable los datos que hayan sido modificados antes de devolver los resultados al cliente. El cliente hace peticiones al servidor que incluyen toda la informaci´on necesaria para completar la operaci´on. Esta propiedad del servidor le permite que sea sencillo recuperarse de un fallo, ya que si un cliente “cae” no afecta a las operaciones del servidor o de otros clientes. Si es el servidor el que falla, ´este s´olo necesita reiniciarse. El protocolo NFS proporciona otro protocolo denominado NLM (Network Lock Manager), que permite gestionar cerrojos sobre los ficheros.
NFS de Sun Microsystems se transform´o en el ´est´andar para compartir archivos bajo plataforma UNIX. Actualmente existen implementaciones de NFS para otros sistemas operativos. Como ejemplo, Linux tiene dos implementaciones diferentes del servidor NFS: un servidor NFS en espacio de usuario y otro servidor NFS en el n´ucleo del sistema operativo [Lu99].
4.2.2. AFS
AFS (Andrew File System) es un sistema de ficheros distribuido que permite una cooperaci´on entre diferentes nodos a fin de compartir de una forma eficiente los recursos a trav´es de una LAN o una WAN. Para ello, AFS utiliza un esquema cliente-servidor
AFS fue desarrollado originalmente en el Centro de Informaci´on Tecnol´ogica de la Universidad de Carnegie-Mellon.
La unidad organizativa m´as importante de AFS es la celda, que consiste en un conjunto de servi- dores agrupados, que almacenan la estructura de los vol´umenes o sub´arboles en los que se divide el ´arbol de directorios completo AFS. Adem´as tambi´en existen servidores de autenticaci´on, que permiten gestionar la seguridad de acceso a AFS a trav´es del protocolo Kerberos.
El uso de cache permite incrementar el rendimiento de AFS, reduciendo de forma significativa el tr´afico por la red. AFS est´a disponible para muchas plataformas, entre las que se incluyen SUN, HP, SGI, DEC o IBM.