InicioApuntes Y MonografiasBase Datos con Agentes
Resumen: Este trabajo presenta una breve introducción sobre como podría implementarse una metodología de agentes en un gestor de base de datos. Cuales serian los roles y responsabilidades que deberían tener para poder gestionar un gestor de base de datos. Dado la gran cantidad de metodologías de agentes en la actualidad el presente trabajo tiene por objetivo plantear los mínimos requerimientos que debe poseer un sistema de gestor de base de datos para ser creado, administrado y controlado por agentes. Por ello se hará un resumen de las características más generales para su óptimo desempeño sin entrar en detalle en un tipo de metodología de agente en particular. Introducción Plataformas Y Metodologías De Desarrollo Los agentes inteligentes fueron durante algunos años entidades muy académicas, es decir, objetos de estudio para teorizar, estudiar y respaldar con análisis de sistemas, simulaciones y propuestas. Sobra hablar del significado del potencial comercial que ha surgido para las empresas y corporaciones su presencia Web: nuevos servicios abiertos 24 horas los siete días de la semana sin festivos (reconocido como 24/7 en algunos países), información permanente y personalizada para los clientes (potenciales o efectivos), capacidades de interacción con los usuarios del sitio y más importante aún, un potencial mundial de comercialización: el mundo es el nuevo alcance del mercado. La evolución de estos sistemas ha hecho pasar a las empresas y la industria de desarrollo Web por varias etapas de las cuales la más conocida fue aquella de los años 90 en que cualquier negocio que se publicara en Internet esperaba tener un gran impacto y altas rentabilidades. La ilusión duró poco y las empresas después de algunos descalabros entendieron que publicar información simplemente no era justificación suficiente para los costos que acarreaba centrar su estrategia sólo en Web, que se necesitaba algo más. Por esta misma época, los agentes inteligentes, con una fuerte base teórica, diversa y sólida, convergieron con las nuevas tecnologías desarrolladas para solucionar la aparente falta de efectividad de los sitios Web mientras, en la trastienda, entidades comunitarias sin ánimo de lucro como la w3c y la IETF seguían discutiendo sobre las mejores formas, prácticas y tecnologías para estimular el uso de Internet. Tecnologías como XML, SOAP, Web Services y RSS fueron entrando en escena tímidamente para demostrar que la representación del conocimiento y los protocolos especiales para aplicaciones distribuidas eran una solución para hacer efectivas las inversiones en estos sistemas. Los agentes inteligentes aparecieron entonces como el perfecto complemento de estas nuevas tecnologías: el agente inteligente como entidad autónoma y reactiva era el modelo perfecto de aplicación distribuida. fue esta necesidad de las grandes corporaciones de optimizar sus sistemas Web una de las tendencias más importantes que impulsaron la pequeña explosión de plataformas que vamos a describir, cada una acompañada de alguna clase de metodología de diseño y un conjunto de utilidades ligadas (casi siempre) con un lenguaje de preferencia. Cabe aquí destacar que la mayoría de los desarrollos de plataformas se basan en propuestas y experimentos de comunidades académicas que sustentan y proveen a esta incipiente industria de herramientas y elementos constitutivos para ensamblar sus plataformas, que surgen después de existir cierta cantidad de elementos comunes a este tema, como la interacción de agentes, el monitoreo de los mismos y la administración de recursos dentro de un ambiente de ejecución. Una plataforma se define como un conjunto de tecnologías (hardware) y subsistemas (software) que proveen funcionalidades coherentes destinadas a un uso determinado a través de diferentes interfaces y especificaciones de patrones de uso para tales aplicaciones. Una plataforma de agentes inteligentes por lo tanto, es un conjunto de funcionalidades básicas sobre las cuales se accede al estado de los agentes y de sus comunicaciones, tanto para visualizarlos como para alterarlos (visualizar estados, monitorear procesos, reiniciar un agente o detener su ejecución). Fundamentalmente una plataforma de agentes debe asegurarse de la integridad de las comunicaciones, estados y conocimiento de los agentes que operan sobre ella y ofrecer utilidades de alto nivel para monitorear tales propiedades. Una plataforma de agentes es entonces, puesto en términos fáciles, un conjunto de programas o utilidades y librerías escritas con el sólo propósito de facilitar la implementación y ejecución de sistemas de agentes. Ejemplos de plataformas son JADE (Java Agent DEvelopment Framework), que se define literalmente en su página de FAQs de la siguiente manera: “Un marco de trabajo para desarrollar aplicaciones basadas en agentes en concordancia con las especificaciones de FIPA para sistemas multiagente interoperables.” Otra plataforma líder en este campo es JACK que cuenta con una metodología que soporta sus estructuras de programación en conceptos correspondientes de las fases de análisis y diseño, de tal manera que aplicando la metodología se puede llegar a un diseño cuyos objetos finales se corresponden con construcciones directas en el lenguaje de agentes propietario de JACK. JACK es definido por sus autores como: “Un ambiente para la construcción, ejecución e integración de sistemas multiagente de nivel comercial usando una aproximación basada en componentes” Dentro de los componentes o elementos constitutivos que podemos identificar dentro de una plataforma tenemos fundamentalmente los siguientes: kernel, comunicaciones e Interfaz Gráfica de Usuario (GUI por sus siglas en inglés -Graphical User Interface). El kernel o núcleo es básicamente el conjunto de elementos de la plataforma que ejecutan las tareas fundamentales para el funcionamiento del sistema, como la creación de agentes, la migración de éstos entre plataformas y servicios de utilidad como el tratamiento de documentos especiales o el soporte de lenguajes declarativos; las comunicaciones de una plataforma están determinadas por las utilidades de ésta para transmitir información o para migrar un agente de una arquitectura física a otra, también incluye el soporte para lenguajes de comunicación; finalmente la GUI es simplemente una interfaz que permite realizar operaciones administrativas sobre la plataforma y observar su estado a través de ventanas, botones y todos los elementos clásicos visuales de las aplicaciones comunes en entornos gráficos como Windows, Macintosh, GNOME o KDE en GNU/Linux o CDE en Solaris. En este marco general surge un nuevo término de la ingeniería de software acuñado durante los últimos años y que ahora goza de cierta popularidad aunque más bien por el amplio estudio de sus métodos que por su uso extendido. Estamos hablando de la Ingeniería de Software Orientada a Agentes (AOSE por sus siglas en inglés o AOP). Dentro de esta nueva forma de diseñar sistemas acusada de ser la natural sucesora de la Programación Orientada a Objetos- se reconocen dos tendencias mayores de marcos metodológicos basados en desarrollo de agentes e ingeniería del conocimiento. Basados en enfoques de arriba para abajo (top-down) y de abajo para arriba (bottom-up) refiriéndonos al nivel de abstracción, es decir, del alto nivel al bajo nivel y del bajo nivel al alto nivel respectivamente. Tenemos como ejemplo del primer marco metodológico a los agentes basados en Creencias, Deseos e Intenciones (BDI por sus siglas en inglés), ya mencionado anteriormente y considerado un enfoque basado en desarrollo de agentes. Del segundo marco metodológico (basado en ingeniería del conocimiento) sólo tenemos como ejemplo popular la metodología Cassiopea que se basa en la definición de roles y comportamientos, y sus interrelaciones. Para el primer marco metodológico se tiene como base teórica respectivamente la lógica del modelo BDI desarrollada por Rao y Georgeff y para el segundo la lógica basada en la teoría de la intención desarrollada por Cohen-Levesque . Para más ilustración sobre la explosión de metodologías ver la Figura 2, en la que se muestra una genealogía de metodologías. En dicha figura vemos como raíces la Orientación a Objetos (OO), la Ingeniería de Requerimientos (RE: Requirments Engineering), la Ingeniería de conocimiento (KE: Knowledge Engineering). Características Sistemas Gestor De Base De Datos Manejado Con Agentes Escalabilidad La capacidad de incorporar al sistema nuevos dispositivos Físicos sin romper los enlaces organizacionales previamente establecidos es conocida como Escalabilidad. Esto le brinda al sistema la flexibilidad suficiente para adecuarse a nuevos requisitos. Lo mismo ocurre al querer eliminar uno de los dispositivos (ya sea por caducidad o por mantención del mismo). En definitiva, la escalabilidad consiste en contar con mecanismos que permitan proporcionar la integración de nuevos componentes o la eliminación de los mismos sin modificar la estructura general del sistema global. Reconfiguración Dinámica Es posible aplicar la reconfiguración dinámica de los sistemas de bases datos actuales. Los sistemas bases datos actuales, dificultan en demasía la adecuación del sistema ante cambios en su configuración o sucesos imprevistos. Si bien la escalabilidad, es decir, la posibilidad de ir modificando incrementalmente el sistema sin afectar los enlaces previamente establecidos, está presente en gran parte los vínculos en cuanto a comunicaciones y dependencias de las unidades hacen complicada la reconfiguración. En muchos casos esto se debe a la tendencia de los fabricantes por construir sistemas especializados, donde prácticamente son necesarios varios equipos con software y hardware de la misma firma. Sin embargo, uno de los principales problemas nace a causa de la preponderante estrategia de administración centralizada. Con esto, una reconfiguración acarrea generalmente una reestructuración del modelo con el que se generan los planes de contingencia, lo que se convierte en un proceso engorroso y que requiere muchas veces un tiempo considerable. Capitalización y Distribución del Conocimiento Antiguamente los sistemas de bases datos de las organizaciones se basaban en la utilización de grandes bases de datos corporativas centralizadas, que almacenaban los datos provenientes de todas las áreas de la empresa. De hecho, actualmente la mayoría de los softwares aplican esta ideología. En efecto, la centralización de los datos en potentísimos computadores facilita enormemente el procesamiento de los datos y la programación de las distintas tareas. En términos de administración esto se traduce en la implementación de sistemas altamente dependientes de una unidad central de almacenamiento. La tendencia es hoy hacia la distribución del conocimiento, para agilizar y modularizar el procesamiento de los datos, al realizarlo de forma concurrente. Entornos Heterogéneos e Interoperabilidad Por su estrecha relación estos dos puntos se revisarán en conjunto. Al complejizarse la configuración de los sistemas, es necesario que estos se adapten de forma eficaz a ambientes con hardware y software heterogéneos. Cada vez más, se hará necesario que los sistemas operen haciendo uso de aplicaciones escritas en distintos lenguajes y en distintas plataformas. Tolerancia a Fallos En los tiempos que vivimos donde la competencia es fuerte y el tiempo se traduce en dinero, es crítico que el sistema sea capaz de sobreponerse a fallos en cualquier nivel, ya sea de control o de procesos. Se debe contar con mecanismos que detecten estos fallos y los reporten en forma oportuna. El propio programa de gestión debe administrar los fallos. Es muy frecuente en los sistemas que actualmente funcionan, ya sea en forma automática o semi-automática, que en el momento en que falla uno de los dispositivos de software o de hardware, el sistema completo se ve bloqueado, teniendo que reconfigurarse manualmente para seguir ejecutando las operaciones correspondientes. Esta reconfiguración es, por lo general, demorosa, teniéndose muchas veces que volver a levantar todo el sistema y realizar el plan de contingencia nuevamente. Gracias a los nuevos sistemas de gestores que utilizan las bases de datos estos problemas se solucionaron, brindando confiabilidad, escalabilidad en la calidad de la información. Requerimientos de Desarrollo del Sistema Identificación cinco requisitos deseables en el desarrollo de todo sistema. Estos requisitos aparecen clasificados en 2 categorías: A. Requisitos funcionales B. Requisitos de ingeniería de software A) Requisitos Funcionales Requisito 1: “Los sistemas de bases de datos requieren agentes semi-autónomos. Los agentes deben razonar sobre el comportamiento del sistema, pero no sobre sus propias actitudes mentales o aquellas de otras unidades de control”. Requisito 2: “Las unidades de control requieren de un comportamiento basado en rutinas que es al mismo tiempo efectivo y oportuno. Este comportamiento puede ser tanto configurable o auto-daptativo”. B) Requisitos de Ingeniería de Software Requisito 3: “Los métodos de programación deben proveer encapsulación de datos y procesos”. Requisito 4: “Los programas deben tener una semántica clara. Adicionalmente, el comportamiento de un agente debería ser completamente especificado por su programa de tareas”. Requisito 5: “Un método o metodología de programación debería conducir directamente de una tarea a un programa de agente”. Los primeros requisitos indican la necesidad de concebir el sistema como un conjunto de unidades que en conjunto, y valiéndose de protocolos de interacciones, se organicen a sí mismas para realizar el control global del sistema. Los segundos, son requisitos propios de los métodos de desarrollo utilizados en las etapas de desarrollo del sistema a construir. Requerimientos del Sistema Los requisitos expuestos antes en esta sección del presente documento pretenden ilustrar en cierta forma la situación general que se vive actualmente. Lo que a continuación se presenta son los requisitos más relevantes identificados para un sistema como el que se pretende abordar y que se considerarán en el modelo propuesto. Requerimiento 1: “El sistema debe asegurar la calidad de la información que en él se procesan”. Requerimiento 2: “El sistema debe asegurar en lo posible la confiabilidad de los datos”. Requerimiento 3: “El sistema debe ser resistente ante las fallas, es decir, la falla de uno de los dispositivos no debe generar la caída total del sistema Requerimiento 4: “El software de control debe ser robusto”. Requerimiento 5: “La configuración del sistema, es decir, la agregación o eliminación de unidades hardware en el sistema debe ser simple”. Explicación: El Requerimiento 3 es fundamental. Después de todo, es deseable que la falla de una pequeña unidad no afecte al sistema en su conjunto, y que pueda seguir operando dentro de lo posible. El sistema debe sobreponerse a las fallas. El cuarto requerimiento tiene una solución casi obvia, y esta es seguir, procedimientos de ingeniería de software para asegurar la optimización del código del sistema. Así como valerse de sistemas de carácter distribuido para evitar la caída por exceso procesamiento de una sola unidad. Por último es clara la necesidad de evitar largos procesos de reconfiguración del software cada vez que es necesario agregar o quitar una unidad de hardware del sistema. Espero que les sirva saludos, comenten.
Datos archivados del Taringa! original
0puntos
1,191visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

v
Usuario
Puntos0
Posts20
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.