Agentes de software móviles: un paradigma alternativo para diseñar sistemas distribuidos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Agentes de software móviles: un paradigma alternativo para diseñar sistemas distribuidos"

Transcripción

1 Agentes de software móviles: un paradigma alternativo para diseñar sistemas distribuidos Carla Mónica Capart - Marcia Silvana Stippi Director de tesina: Ing. Alejandro Rosales Tesina presentada a la Facultad de Ingeniería de la Universidad Nacional de la Patagonia San Juan Bosco como parte de los requisitos para la obtención del título de Licenciado en Informática Trelew, diciembre de 2006 Facultad de Ingeniería Sede Trelew Universidad Nacional de la Patagonia San Juan Bosco

2 Agradecimientos De Carla: A mi esposo Rodrigo y a mi hijito Franco, por comprenderme y perdonarme por todo el tiempo que les he quitado. A mamá, papá y mi hermano Alejandro, por valorar y apoyar siempre mis decisiones y proyectos. A mis suegros, por su acompañamiento durante la realización de este trabajo. De Marcia: A mi esposo Alexis, por su paciencia sin límites y su aliento constante. A toda mi familia, especialmente a mis padres, por inculcarme la importancia del estudio y ser un ejemplo de perseverancia y esfuerzo. De Carla y Marcia: Al Ing. Alejandro Rosales, por su dirección y sus sugerencias durante el desarrollo de esta tesina.

3 Resumen Un agente móvil es una entidad de software que tiene la capacidad de migrar en forma autónoma entre los nodos de una red. Para ello, suspende su ejecución, se transporta con su código, datos y estado de ejecución, y continúa ejecutándose en el nodo destino. En este trabajo, se presenta una aproximación general de la teoría de agentes móviles y su comparación con otros paradigmas de cómputo distribuido, se mencionan diferentes arquitecturas utilizadas para construir agentes de software, y se profundizan dos aspectos principales relacionados con la movilidad: el proceso de migración y la comunicación de agentes. Finalmente, se desarrolla un ejemplo siguiendo una metodología de análisis y diseño orientada a agentes con el propósito de facilitar la aplicación de los conceptos teóricos en un caso práctico. Carla M. Capart - Marcia S. Stippi Pág.: 1

4 Índice CAPÍTULO 1 INTRODUCCIÓN ORGANIZACIÓN MOTIVACIÓN EL CAMPO DE ESTUDIO OBJETIVOS Generales Particulares... 8 CAPÍTULO 2 CONCEPTOS BÁSICOS DEFINICIÓN DE AGENTE CLASIFICACIÓN DE AGENTES DEFINICIÓN DE AGENTE MÓVIL PARADIGMAS DE DISEÑO DE SISTEMAS DISTRIBUIDOS Cliente-servidor Evaluación remota Código por demanda Agentes móviles como un nuevo paradigma de diseño Comparación entre paradigmas BREVE HISTORIA DE AGENTES MÓVILES Los primeros pasos en código móvil Evaluación Remota Objetos móviles Procesos móviles Agentes móviles CARACTERÍSTICAS DE LOS AGENTES MÓVILES VENTAJAS DE LA UTILIZACIÓN DE AGENTES MÓVILES POSIBLES DOMINIOS DE APLICACIÓN CAPÍTULO 3 MODELOS Y ARQUITECTURAS ARQUITECTURAS ABSTRACTAS PARA AGENTES INTELIGENTES Agentes puramente reactivos Subsistemas de Percepción y Acción Agentes con estado TIPOS DE ARQUITECTURAS Agentes de razonamiento deductivo Agentes de razonamiento práctico Agentes reactivos Agentes híbridos ARQUITECTURAS MULTIAGENTES LA ARQUITECTURA FIPA ARQUITECTURA MASIF CAPÍTULO 4 MIGRACIÓN DE AGENTES TERMINOLOGÍA BÁSICA ESTRUCTURA DE UN AGENTE MÓVIL CICLO DE VIDA DE UN AGENTE MÓVIL Carla M. Capart - Marcia S. Stippi Pág.: 2

5 4.4 PROCESO DE MIGRACIÓN DE UN AGENTE TÓPICOS DE DISEÑO DE LA MIGRACIÓN DE AGENTES Vista del programador Vista del agente Vista de la red DESVENTAJAS DE LAS TÉCNICAS DE MIGRACIÓN SIMPLES RENDIMIENTO DE LOS AGENTES MÓVILES Aspectos de runtime Aspectos de transmisión CAPÍTULO 5 COMUNICACIÓN DE AGENTES MÓVILES TÓPICOS DE COMUNICACIÓN DE AGENTES MÓVILES CLASIFICACIÓN DE LOS MODELOS DE COMUNICACIÓN Pasaje de mensajes Espacio de información COMUNICACIÓN TRANSPARENTE DE LA UBICACIÓN Servidor Central Servidor Origen Punteros de Reenvío Broadcast Aproximaciones Jerárquicas COMPONENTES DEL MODELO DE COMUNICACIÓN LENGUAJES DE COMUNICACIÓN KQML (Knowledge Query and Manipulation Language) FIPA ACL (FIPA Agent Communication Language) CAPÍTULO 6 PLATAFORMAS PARA AGENTES MÓVILES CARACTERÍSTICAS DE ALGUNAS PLATAFORMAS ELECCIÓN DE LA PLATAFORMA A UTILIZAR DESCRIPCIÓN DE LA PLATAFORMA ELEGIDA: JADE Arquitectura de la plataforma Modelo de comunicación Características de un agente JADE Comportamientos Modelo de movilidad Requerimientos de software Ejecución de la plataforma Principales herramientas gráficas Ventajas de la utilización de JADE CAPÍTULO 7 CASO DE APLICACIÓN PRESENTACIÓN DE LA APLICACIÓN METODOLOGÍAS PARA EL DESARROLLO DE SISTEMAS MULTIAGENTES ANÁLISIS Y DISEÑO DE LA APLICACIÓN Fase de Análisis Fase de Diseño DIAGRAMAS DE CLASES CAPÍTULO 8 CONCLUSIONES GLOSARIO APÉNDICE A LUCENE APÉNDICE B INSTRUCTIVO DE LA APLICACIÓN APÉNDICE C MAILS A LISTA DE JADE BIBLIOGRAFÍA Carla M. Capart - Marcia S. Stippi Pág.: 3

6 Capítulo 1 Introducción 1.1 Organización A través de este trabajo pretendemos ofrecer una primera aproximación al paradigma de agentes de software, y en particular de agentes de software móviles, mostrando el estado del arte en lo que respecta a esta tecnología y aplicando una metodología de análisis y diseño orientada a agentes en el desarrollo de un caso práctico. Delinearemos a continuación, la secuencia de contenidos que iremos desarrollando en esta tesina. En el presente capítulo mencionamos nuestra motivación por el tema elegido; presentamos el campo de estudio, describiendo de manera general el paradigma de agentes móviles y cómo se inserta esta nueva tecnología dentro de los sistemas distribuidos actuales; e incluimos los objetivos de nuestra investigación. En el capítulo 2 introducimos los conceptos básicos referentes a agentes de software, y en particular a agentes de software móviles. Detallamos también los paradigmas tradicionales de diseño de sistemas distribuidos comparándolos con la tecnología de agentes móviles. Finalmente, describimos brevemente la evolución histórica de los agentes móviles y los posibles dominios de aplicación de esta tecnología. En el capítulo 3 presentamos arquitecturas abstractas para el modelado de agentes e incluimos una clasificación de los tipos de arquitecturas que se utilizan en la actualidad para construir agentes, la cual se basa en los diferentes modelos de representación del conocimiento y razonamiento utilizados en el diseño de los agentes. Luego abordamos las arquitecturas de sistemas multiagentes, mencionando los estándares FIPA y MASIF. En el capítulo 4 detallamos la estructura de un agente móvil y los pasos que tienen lugar en el proceso de migración. Luego explicamos los distintos tópicos de diseño concernientes a la migración de agentes y mencionamos los factores que inciden en el rendimiento de los mismos. Carla M. Capart - Marcia S. Stippi Pág.: 4

7 En el capítulo 5 tratamos los tópicos referentes a la comunicación de agentes móviles y describimos los distintos modelos de comunicación existentes. Explicamos también las técnicas que utilizan las plataformas de agentes para permitir que éstos se comuniquen de manera confiable a medida que van cambiando de ubicación durante la migración. Finalizando el capítulo, presentamos los lenguajes de comunicación de agentes, mencionando algunos estándares. En el capítulo 6 especificamos las características más relevantes de algunas plataformas para el desarrollo de agentes móviles. Luego presentamos la plataforma elegida para el desarrollo del caso de aplicación, justificando su elección; a continuación detallamos las características de esta plataforma y explicamos cómo utilizar el toolkit que provee para programar agentes móviles. En el capítulo 7 describimos el caso de aplicación desarrollado, presentamos la metodología seguida y exponemos los resultados obtenidos en las fases de análisis y diseño, incluyendo también los diagramas de clases de la aplicación. Finalmente, en el capítulo 8, exponemos algunas conclusiones del estudio realizado y sugerimos algunos trabajos que se podrían considerar en el futuro para profundizar en el conocimiento de esta tecnología y su aplicación. La tesina concluye con tres apéndices. En el apéndice A, describimos las características más relevantes de Lucene, la librería utilizada en la aplicación desarrollada para confeccionar los índices y realizar las búsquedas en los documentos. En el apéndice B incluimos información sobre los requerimientos y la configuración del programa, así como también el instructivo de uso. En el apéndice C recopilamos los mails intercambiados con los desarrolladores de la plataforma utilizada. 1.2 Motivación La tecnología de agentes móviles plantea para nosotras un nuevo universo dentro del diseño de sistemas distribuidos, ya que es un tema que trasciende las fronteras de los contenidos abordados en materias como Redes y Transmisión de Datos y Sistemas Distribuidos, de la Licenciatura en Informática, en las cuales hemos estudiado algunas técnicas tradicionales de distribución de código como cliente-servidor (aplicaciones basadas en RPC, RMI, etc.) o código bajo demanda (por ejemplo, Applets en lenguaje Java). Carla M. Capart - Marcia S. Stippi Pág.: 5

8 Teníamos conocimiento del auge de la mencionada tecnología y de las afirmaciones de investigadores que la proponen como una solución promisoria para satisfacer las demandas del usuario de hoy, que surgen de la computación nómada y del uso creciente de las redes inalámbricas, entre otras tendencias actuales. Estas demandas conllevan a buscar soluciones tan dinámicas y móviles como los usuarios finales. Esto nos llevó a interiorizarnos sobre el tema ya que concebimos como profesionales en informática, que para aplicar una tecnología es importante conocer, además del uso de las herramientas, los fundamentos que la sustentan. Todo lo expuesto nos orientó a enfocar la investigación en los mecanismos utilizados para implementar la movilidad y a profundizar sobre los aspectos de diseño relacionados con el proceso de migración y la comunicación de los agentes móviles, ya que consideramos que en ambientes distribuidos con ciertas características (entornos abiertos y cambiantes, con redes heterogéneas y con conexiones de red de distinta calidad) la tecnología de agentes móviles se convierte en una herramienta que se debe tener en cuenta a la hora de diseñar sistemas distribuidos. 1.3 El campo de estudio Como consecuencia de los avances de los últimos años en las tecnologías de redes y computación, los sistemas distribuidos, antes compuestos por un conjunto de computadoras homogéneas, con igual tipo de procesador y de sistema operativo, conectadas por una red dedicada, evolucionaron permitiendo la conexión de un gran número de computadoras heterogéneas. Internet ha sido ampliamente aceptada como un medio de intercambio de información muy importante, incrementándose continuamente el número de usuarios y el número de servicios ofrecidos en la red. El proceso de encontrar los datos más adecuados para un usuario se ha convertido en una tarea sumamente compleja, llevando al desarrollo de nuevas técnicas inteligentes para búsqueda, filtrado y gestión de datos con el fin de optimizar el uso de los recursos compartidos. Sumado a esto, han surgido nuevas tendencias que van tomando importancia, tales como el uso de redes inalámbricas y la computación nómada, la cual implica que los usuarios deben poder conectarse desde diferentes lugares y dispositivos y ver uniformemente los mismos datos y aplicaciones. Braun y Rossak (2005) sostienen que estas Carla M. Capart - Marcia S. Stippi Pág.: 6

9 tendencias requerirán la utilización de técnicas basadas en principios de comunicación entre pares (peer-to-peer), más que paradigmas centralizados como cliente-servidor. Es en este contexto que la tecnología de agentes de software móviles ofrece un paradigma de diseño de sistemas distribuidos alternativo a otras técnicas de cómputo distribuido más tradicionales, como cliente-servidor, código bajo demanda o evaluación remota. Este paradigma se basa en la utilización de código móvil y acepta la distribución como concepto básico, ofreciendo además nuevas características que permiten alcanzar un nuevo nivel de abstracción y calidad. Así como la programación orientada a objetos ofrece un mayor nivel de abstracción que la programación estructurada, facilitando el desarrollo y el mantenimiento del software, la teoría de agentes, y en particular la de agentes móviles, otorga una serie de mecanismos que permiten dar un paso más allá en el desarrollo de sistemas informáticos distribuidos, agregando características como la interacción dinámica de componentes de software autónomos y heterogéneos. Un agente de software es un programa capaz de interactuar en forma autónoma con el ambiente en el cual se encuentra, a fin de lograr sus objetivos. Un agente móvil es un tipo especial de agente de software, que tiene la capacidad de suspender su ejecución, moverse a otro nodo de la red transportando su código, datos y estado de ejecución, y continuar ejecutándose en el nodo destino. Los agentes móviles ayudan a los usuarios a operar en entornos dinámicos y distribuidos que exigen que el software, además de responder a los requerimientos del usuario, se adapte a las circunstancias, se anticipe e intente solucionar los inconvenientes que se presentan sin la intervención del mismo. La diferencia principal entre el paradigma de agentes móviles y los otros mencionados, consiste en que los agentes poseen la capacidad de controlar su propia localización en una red, con el fin de desplazarse en forma autónoma hacia donde se encuentran los recursos tanto de hardware como de información que necesita para llevar a cabo determinada tarea. Esta característica se traduce en ventajas como la reducción del tráfico en la red, la eliminación de latencia de red en aplicaciones de tiempo real y la posibilidad de operar sin conexión, las cuales resultan muy beneficiosas para los usuarios que utilizan computadoras portátiles, con baja capacidad de proceso o con poco espacio de almacenamiento y los que tienen bajo ancho de banda en la red. Carla M. Capart - Marcia S. Stippi Pág.: 7

10 1.4 Objetivos Generales Investigar el paradigma de agentes de software, en particular, aquellos denominados móviles. Desarrollar un ejemplo de aplicación práctica que utilice la tecnología de agentes móviles Particulares Estudiar las características generales de agentes, así como también su clasificación y los diferentes problemas en los cuales encuentran aplicación. Investigar ventajas/desventajas del paradigma de agentes móviles respecto a otros tradicionales como cliente-servidor. Presentar las distintas arquitecturas, modelos de movilidad y de comunicación de agentes móviles. Diseñar e implementar una aplicación basada en agentes móviles de tal forma de poder aplicar en forma práctica los conceptos teóricos investigados. Investigar las plataformas existentes que permiten la implementación de agentes móviles, a fin de seleccionar una de ellas para el desarrollo de la aplicación práctica. Carla M. Capart - Marcia S. Stippi Pág.: 8

11 Capítulo 2 Conceptos básicos En este capítulo se presentarán los conceptos básicos referentes a agentes de software, y en particular a agentes de software móviles: definición, clasificación, orígenes, ventajas y posibles dominios de aplicación. Además se describirán brevemente algunos paradigmas tradicionales de diseño de sistemas distribuidos, comparándolos con la tecnología de agentes móviles. 2.1 Definición de agente El término agente viene del latín agere que significa hacer. Agente deriva del participio agens. Expresa la capacidad de acción o actuación de una entidad. En las Ciencias de la Computación, el término agente ha sido usado desde mediados de la década del 70 y fue introducido por el área de la Inteligencia Artificial. No existe una definición universalmente aceptada para el término agente de software, ya que ésta se ve influenciada por las diferentes áreas en las que los agentes se han aplicado, como la Inteligencia Artificial, los Sistemas Distribuidos, la Ingeniería de Software, etc. En el presente trabajo se abordará la definición desde el punto de vista de los Sistemas Distribuidos: un agente es una entidad de software con una arquitectura robusta y adaptable que puede funcionar en distintos entornos o plataformas computacionales y es capaz de realizar de forma inteligente y autónoma distintos objetivos intercambiando información con el entorno, o con otros agentes humanos o computacionales (Garijo, 2002: 2). La entidad de software involucrada puede ser un programa de computadora, un componente de software, o, en términos de lenguajes orientados a objetos, simplemente un objeto. Sin embargo, los verdaderos agentes de software, deben considerarse como una extensión más general del concepto de objetos o componentes de software, ya que mientras los objetos de software son pasivos, los agentes son activos. Carla M. Capart - Marcia S. Stippi Pág.: 9

12 La definición de qué constituye exactamente un agente de software ha sido y continúa siendo debatida por la comunidad de investigadores. Sin embargo, existe un acuerdo común en que un agente debe exhibir algunas características mínimas para ser calificado como tal. Dichas características son: Autonomía: los agentes operan y funcionan de acuerdo con sus propios planes, no necesitan seguir un orden en la ejecución del plan dado por su propietario y no necesitan pedirle confirmación al mismo para ejecutar cada tarea (Braun y Rossak, 2005: 9). Comportamiento Social: los agentes interactúan con otros agentes o humanos mediante algún mecanismo de comunicación. Esta comunicación puede restringirse a un intercambio puro de información o puede incluir sofisticados protocolos de negociación (Braun y Rossak, 2005: 9). Reactividad: los agentes perciben su ambiente y responden a los cambios de éste (Wooldridge, 2005: 23). Proactividad: los agentes no solo actúan en respuesta a su ambiente, sino que son capaces de tomar la iniciativa y tener comportamiento orientado a metas para satisfacer sus objetivos de diseño (Wooldridge, 2005: 23). 2.2 Clasificación de agentes Al igual que sucede con la definición de agentes de software, no hay una sola clasificación posible de los mismos. En base a sus capacidades de resolver problemas se clasifican en: Agentes reactivos: realizan tareas sencillas. Reaccionan a cambios en su ambiente o a mensajes provenientes de otros agentes. No son capaces de razonar acerca de sus intenciones. Sus acciones se realizan como resultado de reglas establecidas. Agentes cognitivos: realizan tareas complejas. Son capaces de razonar acerca de sus intenciones y conocimientos, crear planes de acción y ejecutar dichos planes. Utilizan algún tipo de representación explícita (simbólica) del conocimiento. Además, pueden tener la capacidad de aprender en base a su experiencia. En base a su movilidad: Carla M. Capart - Marcia S. Stippi Pág.: 10

13 Agentes estáticos: son entidades que permanecen siempre fijas en un nodo, es decir, no se les permite migrar. Agentes móviles: son entidades de software capaces de viajar por redes de computadoras visitando distintos nodos a fin de realizar las tareas necesarias para cumplir con sus objetivos de diseño. Una vez concluido su trabajo pueden regresar a su lugar de origen o eliminarse. En base a la tarea que desempeñan: Agentes colaborativos: enfatizan su autonomía y cooperación (con otros agentes) para llevar a cabo tareas para sus propietarios. Agentes de interfaz: asistentes personales que colaboran con el usuario en un ambiente dado. Soportan y proveen asistencia al usuario observándolo y sugiriéndole otras formas de realizar las acciones. Agentes de entretenimiento: agentes que proveen al usuario de algún tipo de entretenimiento (por ejemplo, juegos). Agentes de información: también se conocen como agentes web, de búsqueda, spiders, worms, robots o crawlers. Realizan la tarea de administrar, manipular o recolectar información proveniente de varias fuentes distribuidas. Agentes híbridos: son aquellos que en su funcionamiento poseen la combinación de dos o más de las capacidades de los tipos mencionados. Con respecto a los agentes de información, cabe mencionar que su uso más difundido está dado por los motores de búsqueda (google, yahoo, etc.) para buscar en páginas web y construir índices automáticamente. Los agentes web convencionales son estáticos; se conectan a los servidores web mediante el protocolo HTTP para solicitar una página html y la procesan en forma local. Sin embargo, existen agentes web móviles que migran a los servidores web y realizan su tarea utilizando los recursos del nodo destino. 2.3 Definición de agente móvil Los agentes de software móviles se definen como programas de computadora completos e identificables, empaquetados con su código, datos, y estado de ejecución, que pueden moverse dentro de una red heterogénea de sistemas de computación. Ellos pueden Carla M. Capart - Marcia S. Stippi Pág.: 11

14 suspender su ejecución en un punto arbitrario y transportarse a sí mismos a otro sistema de computación. Durante esta migración el agente es transmitido completamente, esto es, como un conjunto de código, datos, y estado de ejecución. En el sistema de computación destino, la ejecución de un agente es reanudada exactamente en el punto donde fue suspendida antes (Braun y Rossak, 2005: 11). Desde el punto de vista de los Sistemas Distribuidos, la tecnología de agentes móviles se puede considerar como un paradigma de diseño adicional en el área de la programación distribuida y un suplemento útil a otros paradigmas tradicionales tales como cliente-servidor, los cuales se tratarán en la próxima sección. 2.4 Paradigmas de diseño de sistemas distribuidos Para presentar los distintos paradigmas de diseño se partirá de la definición de sistema distribuido. Según Tanenbaum y Van Steen (2002: 2) un sistema distribuido es una colección de computadoras independientes que se presentan a sus usuarios como un solo sistema coherente. Para lograr satisfacer esta definición, este tipo de sistemas se organiza frecuentemente en una jerarquía de capas de software como se muestra en la figura 2.1. Aplicaciones Distribuidas Middleware Sistema Operativo de Red Sistema Operativo de Red Sistema Operativo de Red Sistema Operativo Sistema Operativo Sistema Operativo Sitio Sitio Sitio Hardware Figura 2.1: Sistema distribuido estructurado como middleware La capa inferior, ubicada sobre el hardware, está conformada por el sistema operativo (S.O.), que provee servicios básicos tales como la administración de archivos, Carla M. Capart - Marcia S. Stippi Pág.: 12

15 memoria y procesos. Sobre la capa del S.O. se localiza el sistema operativo de red, que provee servicios de comunicación dependientes de la localización de los recursos (por ejemplo, sockets). Entre el sistema operativo de red y las aplicaciones se encuentra ubicada una capa denominada middleware, que oculta la heterogeneidad de las plataformas subyacentes y brinda transparencia de distribución a dichas aplicaciones. Los sistemas distribuidos que ofrecen movilidad de código presentan una perspectiva diferente, ya que no ocultan la estructura de la red a los programadores. En estos sistemas, la capa middleware no brinda transparencia de distribución, sino que provee un entorno de ejecución el cual permite que los componentes de software migren de un sitio a otro de la red (ver figura 2.2). De acuerdo con lo explicado anteriormente, se puede resaltar que la diferencia entre un sistema distribuido que provee movilidad de código y uno que no, se encuentra en el hecho de que, en el primero, el programador debe tener en cuenta la localización de los componentes de software. Esto último, sumado a la capacidad de movilidad que posee cada componente, influye directamente en el modo en que éstos interactúan con los recursos, dependiendo de si son locales o remotos. Aplicaciones Distribuidas Entorno de Ejecución Entorno de Ejecución Entorno de Ejecución Sistema Operativo de Red Sistema Operativo de Red Sistema Operativo de Red Sistema Operativo Sistema Operativo Sistema Operativo Sitio Sitio Sitio Hardware Figura 2.2: Sistema distribuido que provee movilidad de código A continuación se mencionan tres paradigmas tradicionales de diseño de sistemas distribuidos. El primero, cliente-servidor, se incluye por su amplia difusión aunque no presenta la característica de movilidad. Los dos restantes, evaluación remota y código por Carla M. Capart - Marcia S. Stippi Pág.: 13

16 demanda, sí explotan la noción de movilidad de código. Por último, se presenta un paradigma alternativo de diseño de sistemas distribuidos basado en agentes móviles. En lo que resta de esta sección se utilizarán los siguientes términos: Sitio: representa una localidad en un sistema distribuido, por ejemplo, una simple computadora como parte de una red. Recursos: los recursos de un sitio son cualquier tipo de archivo, base de datos, o cualquier dispositivo externo. Interacción: cualquier relación entre código o recursos del mismo o distintos sitios Cliente-servidor Cliente-servidor es, en el presente, el paradigma de computación distribuida más común (figura 2.3). En él, un sitio que actúa como servidor ofrece un conjunto de servicios. Otro sitio, el cliente, requiere de alguno de esos servicios para completar su tarea; entonces, envía al servidor un requerimiento por un servicio específico usando una interacción. El servidor ejecuta el servicio requerido utilizando recursos locales y envía el resultado al cliente usando otra interacción. En este paradigma, todos los componentes son inmóviles con respecto a su ejecución, no existe código móvil. El requerimiento usualmente contiene el nombre del servicio junto con algunos parámetros adicionales. Este concepto es usado, por ejemplo, en Remote Procedure Call (RPC), Remote Method Invocation (RMI) y CORBA. En los últimos años, ha ganado popularidad una nueva técnica cliente-servidor para sistemas distribuidos, denominada Web Services. Mientras que las aplicaciones basadas en CORBA o RMI se desarrollan principalmente para ser ejecutadas en redes de área local (intranets), los web services son componentes de software distribuidos ampliamente en Internet Evaluación remota A diferencia del paradigma anterior, en este caso el cliente envía un fragmento de código al servidor para que sea ejecutado allí, como se muestra en la figura 2.4. El servidor ejecuta el código utilizado recursos locales y luego envía el resultado al cliente usando una interacción. Aquí el código es móvil y se envía desde cliente a servidor. El tipo de código depende de la implementación concreta del paradigma, puede ser algún tipo de script que se transmite como código fuente o algún formato de código intermedio que puede ser Carla M. Capart - Marcia S. Stippi Pág.: 14

17 interpretado fácilmente por el servidor. Por ejemplo, el lenguaje PostScript utilizado por algunas impresoras, permite que una aplicación interactúe con la misma enviándole programas PostScript. Dichos programas son ejecutados por la impresora, por lo tanto pueden utilizar los dispositivos de impresión tales como el tóner, tractor, etc., los cuales en este caso cumplirían el rol de recursos. Este esquema permite flexibilizar al máximo las capacidades de software de la impresora (por ejemplo, se utiliza para descargar fuentes en el disco rígido de la impresora), a la vez que permite alivianar la carga de CPU de la computadora que utiliza la impresora Código por demanda En este paradigma se invierten los roles con respecto a evaluación remota, ya que en este caso el código viaja de servidor a cliente (figura 2.5). Éste último tiene acceso a sus recursos pero el código para accederlos se encuentra en el servidor, el código se envía del servidor al cliente y se ejecuta allí. El ejemplo más claro de esta técnica son los applets del lenguaje Java Agentes móviles como un nuevo paradigma de diseño En este paradigma, el código, mientras se está ejecutando en un sitio, determina que necesita acceder a algún recurso actualmente localizado en otro sitio. Los dos sitios interactúan de forma tal que el código se transmite al sitio destino, junto con alguna información acerca del estado de ejecución actual. En el sitio destino, el código se continúa ejecutando, accediendo a los recursos locales. Más tarde, puede decidir que necesita recursos de otros sitios, y entonces, migrar nuevamente hacia otro sitio. Referencias C: Componente de código R: Recurso F: Fragmento de código Cliente Servidor C Requerimiento (1) C R Respuesta (2) Sitio A Sitio B Figura 2.3: Cliente-Servidor Carla M. Capart - Marcia S. Stippi Pág.: 15

18 Cliente Servidor Código (1) F F C R Respuesta (2) Sitio A Sitio B Figura 2.4: Evaluación Remota Cliente Req. de código(1) Servidor R C F C F Código (2) Sitio A Sitio B Figura 2.5: Código por demanda Migración (3) C Migración C R Migración C (1) (2) Sitio A Sitio B Sitio C R Figura 2.6: Paradigma de agentes móviles Comparación entre paradigmas La diferencia principal entre el paradigma cliente-servidor y los demás mencionados es que en el primero el código permanece en una ubicación fija, en cambio, en los otros la localización puede variar, transformándolos en modelos más flexibles y configurables. Al mismo tiempo estos paradigmas, con la posibilidad de movilidad de código que brindan, promueven la descomposición de la aplicación en varios componentes simples. Esta característica es aprovechada al máximo por el paradigma de agentes móviles, en el cual se aspira, además, a que cada componente sea autónomo. De esa manera, las aplicaciones se Carla M. Capart - Marcia S. Stippi Pág.: 16

19 constituyen de varios agentes, cada uno de los cuales realiza una tarea específica, tratando de minimizar las interacciones remotas con otros componentes. Otro aspecto a considerar cuando se compara entre los paradigmas cliente-servidor y agentes móviles es el nivel de granularidad de servicios ofrecidos por cada uno. En clienteservidor, para proveer un nivel de granularidad alto, es decir para que el servidor cumpla exactamente el servicio que el cliente necesita, éste último tiene que realizar varias llamadas a procedimientos remotos para satisfacer sus requerimientos. Esta secuencia de llamadas a través de la red incrementa en gran medida el tráfico sobre la misma, especialmente cuando se envían grandes volúmenes de datos, viéndose perjudicado el rendimiento de todo el sistema. En cambio, en agentes móviles, la flexibilidad y reusabilidad de los servicios se incrementan considerablemente, aumentando el nivel de granularidad ofrecido por cada agente. 2.5 Breve historia de agentes móviles Los primeros pasos en código móvil La idea de enviar código en un formato independiente de la arquitectura hacia diferentes hosts en una red fue introducida, probablemente por primera vez, en 1969 por Rulifson y sus colaboradores en el desarrollo del lenguaje de programación DEL (Decode- Encode-Language) (Braun y Rossak, 2005: 18). La idea era comunicarse a un host remoto y descargar un programa al comienzo de la sesión. Dicho programa, escrito en DEL, podía entonces controlar la comunicación y usar eficientemente el ancho de banda disponible entre el host del usuario local y el host remoto. Aproximadamente diez años más tarde, un grupo de investigación de una Universidad en Suiza tuvo la idea de construir una red de radio orientada a paquetes, llamada Softnet. Cada paquete enviado por la red era un programa escrito en lenguaje FORTH, y cada nodo de red que recibía el paquete ejecutaba inmediatamente el programa. Usando esta técnica, cada usuario podía proveer a cada nodo de la red de nuevos servicios. En 1982, se hicieron los primeros experimentos con software móvil para la empresa Xerox, los cuales consistían en gusanos (worms) que buscaban en una red de área local procesadores ociosos. Carla M. Capart - Marcia S. Stippi Pág.: 17

20 2.5.2 Evaluación Remota Joseph R. Falcone abordó, en 1987, el problema de proveer interfaces específicas del cliente para servicios remotos a través de un sistema distribuido heterogéneo (Braun y Rossak, 2005: 18). En lugar de ofrecer una interfaz simple con muchas funciones pequeñas para satisfacer a una gran cantidad de clientes, Falcone buscaba habilitar a los clientes para que programen sus propias interfaces, usando un nuevo lenguaje de programación llamado NCL (Network Command Language). En NCL un cliente envía una expresión al servidor, el cual ejecuta la expresión usando funciones estándar provistas en forma de una librería. El servidor envía el resultado (otra expresión) hacia el cliente, el cual puede comenzar otra vez el proceso. Hubo otras aproximaciones similares a NCL, por ejemplo, REV (Remote-Evaluation), el cual extendía la idea de llamadas a procedimientos remotos (RPC) surgida en En REV, un cliente enviaba un requerimiento hacia el servidor en la forma de un programa. El servidor ejecutaba el programa y enviaba el resultado al cliente Objetos móviles Un paso más hacia la tecnología de agentes móviles fue la incorporación de un mínimo tipo de autonomía al concepto de mensajería. Esta técnica se conoció como objetos móviles. La idea era crear mensajes activos, es decir, mensajes que eran capaces de migrar hacia host remotos. Un mensaje contenía datos y algo de código de programa que era ejecutado en cada servidor. Sin embargo, en este concepto, dominaba la porción de datos por sobre la porción activa (es decir, el código). El proyecto Messengers propuso en 1996 el concepto de objetos autónomos, los que se llamó mensajeros. Los mensajeros eran capaces de migrar autónomamente a través de una LAN de servidores dedicados que aceptaban esos objetos. La diferencia con respecto a las técnicas descriptas previamente es que un mensajero no se transfería únicamente a un servidor remoto sino que era capaz de migrar autónomamente a través de una red completa. Sin embargo, el concepto estaba limitado a LANs estáticas y no incluía ninguna noción de inteligencia a nivel de aplicación. La autonomía de un mensajero estaba limitada a resolver problemas del sistema y no requerimientos del usuario. Carla M. Capart - Marcia S. Stippi Pág.: 18

5. MODELOS DE CLIENTE Y SERVIDOR ORIENTADOS A AGENTES MÓVILES

5. MODELOS DE CLIENTE Y SERVIDOR ORIENTADOS A AGENTES MÓVILES SISTEMAS DISTRIBUIDOS DE REDES 5. MODELOS DE CLIENTE Y SERVIDOR ORIENTADOS A AGENTES MÓVILES Programación remota: Introducción y generalidades INTRODUCCIÓN Debido a la dificultad de la arquitectura actual

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Módulo 2 Comunicación

Módulo 2 Comunicación Sistemas Distribuidos Módulo 2 Comunicación Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia San Juan Bosco Comunicación en Sistemas Distribuidos Modelos de Comunicaciones

Más detalles

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes. SISTEMAS DISTRIBUIDOS DE REDES 2.- MODELOS ORIENTADOS A OBJETOS DISTRIBUIDOS 2.1. Tecnologías de sistemas distribuidos Para la implementación de sistemas distribuidos se requiere de tener bien identificados

Más detalles

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica C1. Capacidad para la resolución de los problemas matemáticos que puedan plantearse en la ingeniería. Aptitud para aplicar

Más detalles

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software.

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. . TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. Índice 1 INTRODUCCIÓN 2 2 CARACTERÍSTICAS 2 2.1 Características del cliente...2 2.2 Características

Más detalles

Tema 1. Arquitectura Cliente/Servidor

Tema 1. Arquitectura Cliente/Servidor Tema 1. Arquitectura Cliente/Servidor SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs 27 de septiembre de 2009 FJRP, FMBR [sistemas cliente-servidor] CCIA 1.1 Sistemas

Más detalles

En verde están algunas propuestas que entendemos que faltan y que ayudarían a mejorar las fichas sustancialmente.

En verde están algunas propuestas que entendemos que faltan y que ayudarían a mejorar las fichas sustancialmente. NOTAS ACLARATORIAS: Esta ficha de grado es la resultante de las dos reuniones celebradas (9 enero 2009 y 23 de febrero de 2009) por la subcomisión creada desde el MICIIN para debatir las fichas de Grado

Más detalles

Concepto de Procesamiento Distribuido y Centralizado

Concepto de Procesamiento Distribuido y Centralizado Concepto de Procesamiento Distribuido y Centralizado Procesamiento Centralizado: En la década de los años 50 s las computadoras eran máquinas del tamaño de todo un cuarto con las siguientes características:

Más detalles

Simulador de Protocolos de Red a tráves de WEB

Simulador de Protocolos de Red a tráves de WEB Simulador de Protocolos de Red a tráves de WEB Propuesta de Estudio 20071608 Director Ing. Francisco Antonio Polanco Montelongo Resumen Introducción Actualmente, el desarrollo tecnológico a alcanzado niveles

Más detalles

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA 3.1. Características La tendencia hacia el futuro es el de lograr la integración total de componentes realizados por terceras partes, para lo cual es necesario

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Comparación de Dos Sistemas Distribuidos: Amoeba y Sprite

Comparación de Dos Sistemas Distribuidos: Amoeba y Sprite Comparación de Dos Sistemas Distribuidos: Amoeba y Sprite Hillary Caituiro Monge Departamento de Ingeniería Eléctrica y Computadoras hillarycm@hotmail.com Resumen En este ensayo se comparan Dos Sistemas

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

Informe de avance Implementación herramientas de back-end (3-III).

Informe de avance Implementación herramientas de back-end (3-III). Proyecto RG-T1684 Desarrollo e implementación de las soluciones Prueba piloto del Componente III Informe Número 1. Informe de avance Implementación herramientas de back-end (3-III). Lautaro Matas 11/04/2013

Más detalles

Grado en Ingeniería Informática

Grado en Ingeniería Informática Grado en Ingeniería Informática Competencias Generales y trasversales De acuerdo con la resolución del Consejo de Universidades de fecha 3 de marzo de 2009, para obtener este título de grado en ingeniería

Más detalles

Capítulo 1. Introducción

Capítulo 1. Introducción Capítulo 1. Introducción El WWW es la mayor fuente de imágenes que día a día se va incrementando. Según una encuesta realizada por el Centro de Bibliotecas de Cómputo en Línea (OCLC) en Enero de 2005,

Más detalles

Utilizar los servicios de Index Service para buscar información de forma rápida y segura, ya sea localmente o en la red.

Utilizar los servicios de Index Service para buscar información de forma rápida y segura, ya sea localmente o en la red. Funciones de servidor La familia Windows Server 2003 ofrece varias funciones de servidor. Para configurar una función de servidor, instale dicha función mediante el Asistente para configurar su servidor;

Más detalles

Memoria Compartida Distribuida (DSM) Sistema de Archivos

Memoria Compartida Distribuida (DSM) Sistema de Archivos Memoria Compartida Distribuida (DSM) La memoria compartida distribuida es una abstracción que se propone como alternativa a la comunicación por mensajes. Memoria compartida basada en páginas: este esquema

Más detalles

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones. Módulo Profesional: Servicios en Red. Código: 0227. Resultados de aprendizaje y criterios de evaluación. 1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

Más detalles

Nombre del documento: Programa de Estudio de asignatura de Especialidad. Referencia a la Norma ISO 9001:2008 7.3 Página 1 de 6

Nombre del documento: Programa de Estudio de asignatura de Especialidad. Referencia a la Norma ISO 9001:2008 7.3 Página 1 de 6 Referencia a la Norma ISO 9001:2008 7.3 Página 1 de 6 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura : Sistemas Distribuidos I Carrera: Ing. en Sistemas Computacionales Clave de la asignatura: RSD-1203

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño Tema 1. Introducción a los sistemas distribuidos 1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño Tema 1 Introducción a los Sistemas Distribuidos 1 Introducción y objetivos

Más detalles

Introducción a los Sistemas Multi Agentes

Introducción a los Sistemas Multi Agentes Introducción a los Sistemas Multi Agentes Mg. Jose Luis Jurado Departamento de Sistemas Facultad de Ingeniería Electrónica y Telecomunicaciones Conceptualización Qué son? Por qué otro paradigma? Otra moda

Más detalles

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx Contenido Middleware: Introducción Definición Genealogía Aplicaciones actuales: Servicios Web Computación

Más detalles

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor Agradecimientos: por su contribución a la realización de estas transparencias: Jesus Villamor Lugo y Simon

Más detalles

LA ARQUITECTURA TCP/IP

LA ARQUITECTURA TCP/IP LA ARQUITECTURA TCP/IP Hemos visto ya como el Modelo de Referencia de Interconexión de Sistemas Abiertos, OSI-RM (Open System Interconection- Reference Model) proporcionó a los fabricantes un conjunto

Más detalles

2.1 Compuertas para Bases de Datos

2.1 Compuertas para Bases de Datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Uno de los aspectos mas importantes en un sistema multibase de datos es la forma en como llevar a cabo la comunicación

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 6 Situación Contraste externo Actualización

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

La Arquitectura de las Máquinas Virtuales.

La Arquitectura de las Máquinas Virtuales. La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,

Más detalles

Capítulo 1. Introducción. 1.1. Antecedentes

Capítulo 1. Introducción. 1.1. Antecedentes Capítulo 1. Introducción En este capítulo se presenta una descripción general del problema a investigar y el enfoque con el que se aborda. Se establece la necesidad de incorporar técnicas de análisis novedosas

Más detalles

Unidad I Fundamentos de Sistemas Distribuidos. M.C. Juan Carlos Olivares Rojas

Unidad I Fundamentos de Sistemas Distribuidos. M.C. Juan Carlos Olivares Rojas Unidad I Fundamentos de Sistemas Distribuidos M.C. Juan Carlos Olivares Rojas Temario 1.1. Características de un sistema distribuido 1.2. Objetivos de los sistemas distribuidos 1.3. Ventajas y desventajas

Más detalles

Sistemas Distribuidos. (Arquitecturas)

Sistemas Distribuidos. (Arquitecturas) (Arquitecturas) Dr. Víctor J. Sosa Sosa vjsosa@cinvestav.mx II-1 Arquitecturas Los SD son los sistemas de software más complejos Nortel Networks crea switches los cuales pueden contener entre 25-30 millones

Más detalles

3. OBJETIVOS. 3.1. Objetivos. Objetivos generales del título. Objetivos específicos del título

3. OBJETIVOS. 3.1. Objetivos. Objetivos generales del título. Objetivos específicos del título 3. OBJETIVOS 3.1. Objetivos Objetivos generales del título De acuerdo con lo establecido en el Libro Blanco y el acuerdo del plenario de la Conferencia de Directores y Decanos de Informática (Zaragoza,

Más detalles

Ingeniería de software orientado a agentes

Ingeniería de software orientado a agentes Ingeniería de software orientado a agentes ECSDI LSI-FIB-UPC cbea Curso 2014/2015 ECSDI (LSI-FIB-UPC cbea) Ingeniería de software orientado a agentes Curso 2014/2015 1 / 52 Índice 1 Ingeniería de software

Más detalles

c. Servidores ocultos: se inventaron en Internet para aligerar las infraestructuras de telecomunicaciones.

c. Servidores ocultos: se inventaron en Internet para aligerar las infraestructuras de telecomunicaciones. Intranet 1. Los servicios de transporte. Los servicios de transporte son aquellos que permiten vehicular la información de un punto a otro de una intranet. Los servicios de transporte de una intranet son:

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez jimezam@gmail.com

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez jimezam@gmail.com Modelos de los sistemas distribuidos Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/36 Contenidos Modelo arquitectónico

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

Tema: Agentes en la Inteligencia Artificial.

Tema: Agentes en la Inteligencia Artificial. Sistemas Expertos e Inteligencia Artificial. Guía No. 3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Sistemas Expertos e Inteligencia Artificial Tema: Agentes en la Inteligencia Artificial.

Más detalles

Antes de imprimir este documento piense en el medio ambiente!

Antes de imprimir este documento piense en el medio ambiente! Versión 1.0 Página 1 de 14 1. OBJETIVO: Suministrar la metodología que se aplicará para la estimación de esfuerzo para los desarrollos nuevos en el ICBF, para lo cual se detallan los aspectos a tener en

Más detalles

UNIVERSIDAD ESTATAL DE MILAGRO

UNIVERSIDAD ESTATAL DE MILAGRO UNIVERSIDAD ESTATAL DE MILAGRO TRABAJO DE INVESTIGACION DE BASE DE DATOS TEMA: SISTEMAS DISTRIBUIDOS NOMBRE: ANGEL SAUL NOBOA BARRENO PROFESOR: ING. RICHARD RAMIREZ CURSO: 6 To SEMESTRE C SISTEMAS DISTRIBUIDOS

Más detalles

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

Tema 4. Diseño arquitectónico.

Tema 4. Diseño arquitectónico. Tema 4. Diseño arquitectónico. Introducción, Objetivos del Diseño. Ingeniería del Software II 2011 Para la transformación del modelo de análisis en un modelo de diseño del sistema, se definen los objetivos

Más detalles

Documento de Competencias. Facultad de Informática, UPV/EHU. 1 Estructura general del Grado TE1 TE2 TE3 TE4 TE5 TE6 TE7 TE8

Documento de Competencias. Facultad de Informática, UPV/EHU. 1 Estructura general del Grado TE1 TE2 TE3 TE4 TE5 TE6 TE7 TE8 Documento de Competencias Grado en INGENIERÍA INFORMÁTICA Facultad de Informática, UPV/EHU 1 Estructura general del Grado 1.1 Fundamentos de Tecnología de los Principios de Diseño de Sistemas Digitales

Más detalles

Sistema Multiagente como apoyo a la educación a distancia sobre una plataforma Sakai

Sistema Multiagente como apoyo a la educación a distancia sobre una plataforma Sakai Sistema Multiagente como apoyo a la educación a distancia sobre una plataforma Sakai Resumen Fernando Olivares Fernández Facultad de Informática Inteligencia Artificial Universidad Politécnica de Valencia

Más detalles

Bases de Datos Distribuidas: Arquitectura Cliente/Servidor

Bases de Datos Distribuidas: Arquitectura Cliente/Servidor Bases de Datos Distribuidas: Arquitectura Cliente/Servidor Instituto Tecnológico Superior de los Ríos Ing. en Sistemas Computacionales 30 de enero de 2012 Bases de Datos Distribuidas:Arquitectura Cliente/Servidor

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 2 Unidad 1 Ciclo de vida del software y Diseño Orientado a Objetos Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

Introducción a Bases de Datos

Introducción a Bases de Datos de a M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2007 y del s: Sistemas de y del s: de y del s: Objetivos de la Unidad Dar a conocer las características,

Más detalles

Denominación de la materia. créditos ECTS = 36 carácter = OBLIGATORIA SISTEMAS OPERATIVOS, SISTEMAS DISTRIBUIDOS Y REDES

Denominación de la materia. créditos ECTS = 36 carácter = OBLIGATORIA SISTEMAS OPERATIVOS, SISTEMAS DISTRIBUIDOS Y REDES Denominación de la materia SISTEMAS OPERATIVOS, SISTEMAS DISTRIBUIDOS Y REDES créditos ECTS = 36 carácter = OBLIGATORIA Ubicación dentro del plan de estudios y duración La materia está formada por 6 asignaturas

Más detalles

Etapas del desarrollo

Etapas del desarrollo Capítulo 4 Etapas del desarrollo Este capítulo documenta la aplicación del modelo presentado anteriormente, para el caso de la detección y clasificación de eventos sísmicos sobre señales digitales. El

Más detalles

CAPÍTULO I. INTRODUCCIÓN

CAPÍTULO I. INTRODUCCIÓN CAPÍTULO I. INTRODUCCIÓN 1.1 Estado del arte del monitoreo de redes de computadoras. La palabra monitoreo no tiene una definición exacta, pero en el contexto computacional ha adquirido un auge muy grande,

Más detalles

Arquitectura de Software

Arquitectura de Software Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011 1 Diseño Arquitectónico Diseño Arquitectónico Arquitectura del Software Estilos Arquitectónicos Frameworks

Más detalles

En este capítulo se proporciona una visión general de las redes de computadores. Así, se presenta una descripción general de las comunicaciones de

En este capítulo se proporciona una visión general de las redes de computadores. Así, se presenta una descripción general de las comunicaciones de En este capítulo se proporciona una visión general de las redes de computadores. Así, se presenta una descripción general de las comunicaciones de datos y la tipología de redes que se emplean. Además este

Más detalles

SERVICIOS: EXPLORACIONES EN SOA y WEB.

SERVICIOS: EXPLORACIONES EN SOA y WEB. SERVICIOS: EXPLORACIONES EN SOA y WEB. López, G. 1 ; Jeder, I 1.; Echeverría, A 1.; Grossi, M.D. 2 ; Servetto, A 2.; Fierro, P. (PhD.) 3 1. Laboratorio de Informática de Gestión - Facultad de Ingeniería.

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

Capítulo 5. Implementación y Tecnologías Utilizadas

Capítulo 5. Implementación y Tecnologías Utilizadas Capítulo 5. Implementación y Tecnologías Utilizadas Cada vez más, se está utilizando Flash para desarrollar aplicaciones basadas en Web, pues permite la construcción de ambientes con mayor interacción.

Más detalles

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS Denominación de la materia INGENIERIA DE COMPUTADORAS N créditos ECTS = 36 carácter = MIXTA Ubicación dentro del plan de estudios y duración La materia Ingeniería de Computadoras está formada por 6 asignaturas

Más detalles

CONSTRUCCIÓN DE PORTALES

CONSTRUCCIÓN DE PORTALES Curso «Los portales de internet». Fac. Documentación. Universidad de Murcia. 29 CONSTRUCCIÓN DE PORTALES Juan Antonio Pastor Sánchez 1. Introducción La Gestión de los contenidos informativos de los portales

Más detalles

Redes inalámbricas ad hoc

Redes inalámbricas ad hoc Qué es una red ad hoc? También conocidas como MANET Mobile ad hoc networks. AD HOC viene del latín y se refiere a algo improvisado, mientras que en comunicaciones el propósito de ad hoc es proporcionar

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

BASES DE DATOS. 1.1 Funciones de un DBMS

BASES DE DATOS. 1.1 Funciones de un DBMS BASES DE DATOS Un DBMS, son programas denominados Sistemas Gestores de Base de Datos, abreviado SGBD, en inglés Data Base Management System (DBMS) que permiten almacenar y posteriormente acceder a los

Más detalles

- Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos adquiridos.

- Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos adquiridos. Competencias generales - Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto, de acuerdo con los

Más detalles

INTEGRACIÓN DE SISTEMAS HEREDADOS

INTEGRACIÓN DE SISTEMAS HEREDADOS CAPÍTULO 2 INTEGRACIÓN DE SISTEMAS HEREDADOS En el presente capítulo, se presenta el problema de integración de sistemas de Software. Una de cuyas características es la presencia de los llamados Sistemas

Más detalles

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS 1. Concepto de Sistema Operativo. Funciones Un sistema operativo (S.O.) es un programa o conjunto de programas de control que tiene por objeto facilitar

Más detalles

Sistemas Distribuidos. Sistemas Distribuidos. Definiciones. Definición

Sistemas Distribuidos. Sistemas Distribuidos. Definiciones. Definición Sistemas Distribuidos Sistemas Distribuidos Por: Mariela Curiel Basado en los textos: Sistemas Distribuidos Conceptos y Diseño G. Coulouris, J. Dollimore, TimKinberg Definiciones Ejemplos Desafíos en el

Más detalles

Uso de los Servicios Web en la nueva arquitectura de N-Capas del Sistema Económico Integral Rodas XXI.

Uso de los Servicios Web en la nueva arquitectura de N-Capas del Sistema Económico Integral Rodas XXI. Ponencia para Evento de Redes. Autor: Rubén Rivera Rodríguez, Citmatel Resumen Uso de los Servicios Web en la nueva arquitectura de N-Capas del Sistema Económico Integral Rodas XXI. Las nuevas tendencias

Más detalles

REPORTE OFICIAL OCTUBRE DE 2014. CA Unified Infrastructure Management para servidores

REPORTE OFICIAL OCTUBRE DE 2014. CA Unified Infrastructure Management para servidores REPORTE OFICIAL OCTUBRE DE 2014 CA Unified Infrastructure Management para servidores 2 Reporte oficial: CA Unified Infrastructure Management para servidores Tabla de contenidos Descripción general de la

Más detalles

Versión 4.0 BOLETÍN (ABRIL 2010) a2 Herramienta Administrativa Configurable (Arquitectura Cliente Servidor) a2 softway C. A.

Versión 4.0 BOLETÍN (ABRIL 2010) a2 Herramienta Administrativa Configurable (Arquitectura Cliente Servidor) a2 softway C. A. Versión 4.0 BOLETÍN (ABRIL 2010) a2 Herramienta Administrativa Configurable (Arquitectura Cliente Servidor) a2 softway C. A. VERSIÓN 4.0 a2 Herramienta Administrativa Configurable e-mail a2softway@cantv.net

Más detalles

2.1 Ingeniería de Software

2.1 Ingeniería de Software Capítulo 2 Marco Teórico Se pretende desarrollar un software que pueda ser aplicado como una herramienta útil para la administración de una empresa. Es necesario tener en cuenta que, en todo desarrollo

Más detalles

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1 Introducción al Proceso Unificado de Desarrollo de Software Autor: Ing. Silverio Bonilla 1 James Rumbaugh et al. Concepto de Método Una metodología de ingeniería del software es un proceso para producir

Más detalles

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

SISTEMAS DE ARCHIVOS DISTRIBUIDOS SISTEMAS DE ARCHIVOS DISTRIBUIDOS Tema # VII Sistemas de operación II Abril-Julio 2008 Yudith Cardinale Introducción Requisitos Aspectos de Diseño Servicios de archivos Servicios de directorios Módulo

Más detalles

CAPÍTULO II. Gráficos Dinámicos.

CAPÍTULO II. Gráficos Dinámicos. 2.1 Definición. Los gráficos dinámicos son representaciones a escala del proceso, en donde se muestra la información de las variables del proceso a través de datos numéricos y de animación gráfica. Éstos

Más detalles

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases 3.2 TÉCNICA DE MODELADO DE OBJETOS (OMT) (JAMES RUMBAUGH). 3.2.1 Introducción. En este documento se trata tanto el OMT-1 como el OMT-2, el primero contenido en el Libro Modelado y Diseño Orientado (Metodología

Más detalles

Motivación: Control Distribuido:

Motivación: Control Distribuido: Motivación: La clase pasada examinamos brevemente los conceptos de Diseño de sistemas de instrumentación inteligente e Instrumentación Virtual. Durante la discusión del diseño de sistemas de instrumentación,

Más detalles

Hoja de datos: Virtualización de puntos finales Symantec Endpoint Virtualization Suite Optimización dinámica del espacio de trabajo

Hoja de datos: Virtualización de puntos finales Symantec Endpoint Virtualization Suite Optimización dinámica del espacio de trabajo Hoja de datos: Virtualización de puntos finales Optimización dinámica del espacio de trabajo Descripción general es una solución flexible y efectiva que se centra en la productividad del usuario, independientemente

Más detalles

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R índice Módulo A Unidad didáctica 1: Introducción a las Bases de Datos Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos 3 19 Módulo B Unidad didáctica 1: Fase de análisis de requisitos Modelo

Más detalles

Capítulo 1. Componentes de CORBA.

Capítulo 1. Componentes de CORBA. Capítulo 1. Componentes de CORBA. La OMA (Object Management Architecture) define en alto nivel de abstracción las reglas necesarias para la distribución de la computación orientada a objetos (OO) en entornos

Más detalles

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Administración de Sistemas Operativos Fecha: 20-09-13

Administración de Sistemas Operativos Fecha: 20-09-13 Página 1 de 19 RESUMEN DE LA PROGRAMACIÓN ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS EN RED CURSO AC. 2012 / 2013 ÁREA / MATERIA / MÓDULO PROFESIONAL Administración de Sistemas Operativos (126 horas 6 h.

Más detalles

Nombre del documento: Programa de Estudio de asignatura de Especialidad

Nombre del documento: Programa de Estudio de asignatura de Especialidad Referencia a la Norma ISO 9001:2008 7.3 Página 1 de 10 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura : Redes II Carrera: Ing. en Sistemas Computacionales Clave de la asignatura: RSD-1204 (Créditos)

Más detalles

Definición arquitectura cliente servidor

Definición arquitectura cliente servidor www.monografias.com Definición arquitectura cliente servidor 1. Introducción 2. Elementos principales 3. En resumen 4. Algunos antecedentes, Por qué fue creado? 5. Evolución de la arquitectura cliente

Más detalles

Unidad 1. Introducción a los conceptos de Bases de Datos

Unidad 1. Introducción a los conceptos de Bases de Datos Unidad 1 Introducción a los conceptos de Bases de Datos 1.1 Definición de Base de Datos Dato: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos. Información:

Más detalles

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS I. Fundamentos del sistema operativo. OBJETIVO: El alumno seleccionará un sistema operativo de acuerdo

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Universidad Autónoma de Manizales Departamento de Ciencias Computacionales

Universidad Autónoma de Manizales Departamento de Ciencias Computacionales Universidad Autónoma de Manizales Departamento de Ciencias Computacionales ASIGNATURA Redes LAN CÓDIGO 10126 NÚMERO DE CRÉDITOS Trabajo Presencial PRERREQUISITOS Trabajo dirigido 80 créditos aprobados

Más detalles

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos Tema 13 Metodologías en el desarrollo de Sistemas de Software Prof. Oscar Adolfo Vallejos Desarrollo de Sistemas de Software Objetivo Conceptos en el contexto más amplio de Software e Ingeniería de Software

Más detalles

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: EL PROCESO DE DISEÑO DE SISTEMAS DISTRIBUIDOS MANEJANDO LOS DATOS EN LOS SISTEMAS DISTRIBUIDOS DISEÑANDO SISTEMAS PARA REDES DE ÁREA LOCAL DISEÑANDO SISTEMAS PARA ARQUITECTURAS CLIENTE/SERVIDOR

Más detalles

GENERALIDADES DE LA COMUNICACIÓN DE DATOS

GENERALIDADES DE LA COMUNICACIÓN DE DATOS Comunicaciones I Capítulo 1 GENERALIDADES DE LA COMUNICACIÓN DE DATOS 1 El Sistema de Comunicación Sistema de comunicación: Lleva a cabo el intercambio de información entre dos entes ubicados en los extremos

Más detalles

Denominación de la materia. N créditos ECTS = 36 carácter = OBLIGATORIO SISTEMAS DE SOFTWARE. Ubicación dentro del plan de estudios y duración

Denominación de la materia. N créditos ECTS = 36 carácter = OBLIGATORIO SISTEMAS DE SOFTWARE. Ubicación dentro del plan de estudios y duración Denominación de la materia SISTEMAS DE SOFTWARE N créditos ECTS = 36 carácter = OBLIGATORIO Ubicación dentro del plan de estudios y duración La materia Sistemas de Software está formada por 6 asignaturas

Más detalles

Vicente Toledo Israel Miralles. Base de Datos Distribuidas

Vicente Toledo Israel Miralles. Base de Datos Distribuidas Bases de Datos Distribuidas Vicente Toledo Israel Miralles Pg-1 Indice 1. - Que son Bases de Datos Distribuidas? Pg-3 1. -Comparación Pg-3 2. -Arquitectura de las Bases de Datos Pg-4 1. -Ejemplo de una

Más detalles

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Base de Datos ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Una base de datos es un conjunto de elementos de datos que se describe a sí mismo, con relaciones entre esos elementos, que presenta

Más detalles

Unidad 3: El sistema operativo. Trabajo con conexión.

Unidad 3: El sistema operativo. Trabajo con conexión. Unidad 3: El sistema operativo. Trabajo con conexión. 1.- Red de ordenadores Vamos a describir que es una red informática o red de ordenadores. Una red informática es un sistema de interconexión entre

Más detalles