Implementación de un SMA de negociación basado en subastas electrónicas



Documentos relacionados
Técnicas de Desarrollo de Programas Ingeniería Informática Curso 2008 / Ejercicios de Patrones de Diseño:

Elementos requeridos para crearlos (ejemplo: el compilador)

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Está creado como un organizador y gestor de tareas personalizables para generar equipos de alto desempeño en diferentes rubros de empresas.

Gestión de la Configuración

Procedimiento de Sistemas de Información

Mantenimiento de Sistemas de Información

Análisis y diseño del sistema CAPÍTULO 3

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Integración de AuraPortal con SAP

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

Unidad 1. Fundamentos en Gestión de Riesgos

comunidades de práctica

Adelacu Ltda. Fono Graballo+ Agosto de Graballo+ - Descripción funcional - 1 -

Guía Metodológica para el diseño de procesos de negocio

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

Mesa de Ayuda Interna

Metodología básica de gestión de proyectos. Octubre de 2003

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

UNIVERSIDAD DE SALAMANCA

PROTOCOLO OPERATIVO PARA AGENTES DE NIVEL 3.

CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler

SISTEMA ELECTRÓNICO DE CONTRATACIONES DEL ESTADO - SEACE - MANUAL DE USUARIO PARA ENTIDADES

Workflows? Sí, cuántos quiere?

Oficina Online. Manual del administrador

I. T. en Informática de Sistemas. Facultad de Informática

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Gestión de Oportunidades

MANUAL TRAMITACIÓN PROCEDIMIENTO

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

M.T.I. Arturo López Saldiña

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Introducción a JADE Java Agent DEvelopment Framework

NOTAS TÉCNICAS SOBRE EL SIT: Documentos de Gestión

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2.

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Ejemplo de desarrollo software empleando UML

Arquitectura de Aplicaciones

Sistemas de Gestión de Calidad. Control documental

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

LiLa Portal Guía para profesores

Ley Orgánica de Protección de Datos

Ingeniería de Software. Pruebas

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

CAPÍTULO 3 Servidor de Modelo de Usuario

CMMI (Capability Maturity Model Integrated)

configurándola para ser usada dentro del área de QA de una fábrica de software.

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

FOROS. Manual de Usuario

VENTA Y REALIZACIÓN DE PROYECTOS

Contenido Derechos Reservados DIAN - Proyecto MUISCA

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Qué es Google Calendar? Qué se puede hacer en Google Calendar?

Manual del usuario del Módulo de Administración de Privilegios del Sistema Ingresador (MAPSI)

Gestión y Desarrollo de Requisitos en Proyectos Software

Patterns & Practices. Catálogo de templates. HelpDesk. Versión: 2.0. Fecha de publicación Aplica a: Q-flow 3.0 y Q-flow 3.

Bolsa POLÍTICA DE EJECUCIÓN DE ÓRDENES BANESTO BOLSA

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler

GedicoPDA: software de preventa

Planificación en Team Foundation Server 2010

Software de Simulación aplicado a entornos de e-learning

Ministerio de Educación, Cultura y Deporte. Joomla! La web en entornos educativos. Guía del alumnado

Aplicación para la gestión de prácticas en empresas. Memoria

Guía paso a paso para la cumplimentación del formulario de candidatura

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

PRESENTACIÓN DEL PRODUCTO

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Marco Normativo de IT

- MANUAL TÉCNICO - Implantación de software de Marketing Online

CAPÍTULO 3 VISUAL BASIC

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

MANUAL WEBSOPORTE DE IRIS-EKAMAT

CURSO COORDINADOR INNOVADOR

Roles y Características

La netbook puede ser administrada durante su uso en el aula mediante el Software de Gestión del Aula.

Modelado Avanzado con Casos de Uso. Diseño de Software Avanzado Departamento de Informática

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Edición de Ofertas Excel Manual de Usuario

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Capitulo I. Introducción

Operación 8 Claves para la ISO

SINAUTO. (Captura Requirimientos) GRUPO 03

MACROPROCESO GESTIÓN TECNOLÓGICA

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Manual Operativo Sistema de Postulación Online

a) Cita y comenta brevemente los grados de acoplamiento. Clasifícalos y ordénalos en orden creciente al nivel de acoplamiento asociado.

Base de datos en Excel

PROCEDIMIENTO GENERAL RAZÓN SOCIAL DE LA EMPRESA. Auditorias Internas de Calidad. Código PG-09 Edición 0. Índice:

Transcripción:

Implementación de un SMA de negociación basado en subastas electrónicas Estudiante: Rodolfo de Benito Arango Ingeniería en Informática Consultor: David Isern Alarcón Junio 2009

Agradecimientos A mi hijo Carlos por aceptar que su padre siempre estuviera estudiando. A mi mujer Ana por ayudarme a seguir, a pesar de las dificultades. A ambos por sacrificar tantos fines de semana. A mis padres por su apoyo y ánimos. Al resto de mi familia por su comprensión. A mi consultor David Isern Alarcón, por sus consejos, orientaciones y aliento. A la Universitat Oberta de Catalunya por darme la oportunidad de completar mis estudios y por su estupendo modelo de enseñanza-aprendizaje. -2/106-

Índice de contenidos Capítulo1. Introducción... 6 1.1.JustificacióndelPFCycontextoenelquesedesarrolla...6 1.2.ObjetivosdelPFC...8 1.2.1.Objetivosgeneralesyalcance... 8 1.2.2.Objetivosespecíficos...11 1.3.Planificacióndetrabajo... 12 1.3.1.Divisióndeltrabajoentareasyestimacióndetiempos...12 1.3.2.Identificacióndehitos...14 1.3.3.Planificacióntemporal...15 Capítulo2. Especificaciónderequisitos... 17 2.1.Conceptosprincipalesdelsistema... 17 2.1.1.Tiposdesubastas...17 2.1.2.Agentes...17 2.1.3.Estrategiasdenegociación...19 2.1.4.Historialdetransacciones...20 2.1.5.Problemasasolventarenelsistema...20 2.2.Diagramadecasosdeuso... 21 2.3.Descripcióntextualdecasosdeuso... 21 2.3.1.Registrarsubasta...22 2.3.2.Determinarganador...22 2.3.3.Bajarprecio...22 2.3.4.Crearcompra...23 2.3.5.Pujar...23 2.3.6.Localizarsubasta...23 Capítulo3. EspecificacióndelSMA... 24 3.1.Modeloderoles... 24 3.2.Modelodeentorno... 26 3.3.Modelodetareas... 28 3.4.Modelodeontologías... 29 3.5.Modelodecoordinación... 30 3.5.1.NegociaciónsubastadoringlesayComprador...30 3.5.2.NegociaciónsubastadorholandesayComprador...30 3.5.3.Suscripcióncompradorysubastador...31 3.5.4.Búsquedadesubastas.Comprador Buscador Casadesubastas...32 Capítulo4. Implementación... 34 4.1.Diagramadeclases... 34 4.2.Implementacióndelosagentes... 35 4.3.Comunicaciónentreagentes... 35 4.4.Implementacióndeloscomportamientos(behaviours)... 36 4.4.1.Comportamientosdesubastadores...36 4.4.2.Comportamientosdecompradores...37 4.4.3.Comportamientosqueinicianunapetición...37 4.4.4.Comportamientosquerespondenaunapetición...38 4.5.Implementacióndelasestrategias... 38 4.5.1.Interfacesutilizadosenlasestrategias...38 4.5.2.ClasesqueimplementanelinterfaceICfgApuesta...38-3/106-

4.5.3.ClasesqueimplementanelinterfaceICfgSubasta...38 4.6.Clasesdeinformaciónmanejadaenlasubasta... 38 4.7.Estructuradepaquetes... 39 4.8.Libreríasutilizadas... 40 4.9.Distribuciónfinal... 40 Capítulo5. Ejecución... 41 5.1.EjecucióndelSMA... 41 5.2.Testdeejecución... 41 5.2.1.Muestradeflujodemensajeseneltestdelasubastainglesa...44 5.2.2.Muestradeintercambiodemensajesdenegociaciónentresubastadory compradoreseneltestdelasubastainglesa...45 5.2.3.Muestradeflujodemensajeseneltestdelasubastaholandesa...46 5.2.4.Muestradeintercambiodemensajesdenegociaciónentresubastadory compradoreseneltestdelasubastaholandesa...47 5.2.5.MuestrademensajesentreelagenteSubastador,elagenteDFyelagente CasaSubastas...48 5.2.6.Rondasypujasobtenidaseneltestdelasubastainglesa...49 5.2.7.Rondasypujasobtenidaseneltestdelasubastaholandesa...49 5.3.Sistemadelogging... 50 Capítulo6. Conclusionesypropuestasdemejora... 51 AnexoA.ClasesJavaimplementadas... 55 ClaseAgenteBase...55 ClaseAgenteCasaSubastas...57 ClaseAgenteSubastador...64 ClaseAgenteBuscador...67 ClaseAgenteComprador...68 ClaseSubastadorBehaviour...72 ClaseSubastadorHolandesaBehaviour...73 ClaseSubastadorInglesaBehaviour...76 ClaseCompradorInglesaIncrementalBehaviour...79 ClaseCompradorHolandesaNRondasBehaviour...82 ClaseCompradorHolandesaIncrementoDinamicoBehaviour...84 ClaseBuscadorBehaviourInitiator...87 ClaseCompradorSuscribirBehaviourInitiator...90 ClaseSubastadorTransaccionesBehaviourInitiator...91 ClaseBuscadorBehaviourResponder...92 ClaseCasaSubastasBusquedasBehaviourResponder...93 ClaseSubastadorSuscribirBehaviourResponder...94 ClaseCasaSubastasTransaccionesBehaviourResponder...96 ClaseICfgApuesta...97 ClaseICfgSubasta...98 ClaseIncrementalCfgImpl...98 ClaseApuestaUnicaNRondasCfgImpl...99 ClaseApuestaUnicaIncrementoDinamicoCfgImpl...101 ClaseSubastaHolandesaImpl...103 ClaseSubastaInglesaImpl...103 ClaseSubasta...104 ClaseTransacción...106-4/106-

Índice de figuras Figura 1. Remote Agent Management de JADE... 9 Figura 2. Sniffer de JADE mostrando el flujo de mensajes entre 3 agentes... 9 Figura 3. Instrospector de JADE mostrando los mensajes recibidos por un agente y el comportamiento que está ejecutando... 10 Figura 4. Log Manager de JADE... 10 Figura 5. Diagrama de Gantt de las tareas del proyecto... 16 Figura 6. Diagrama de casos de uso... 21 Figura 7. Diagrama de modelo de roles... Error!Marcador no definido. Figura 8. Diagrama de actividad subasta inglesa... 28 Figura 9. Diagrama de actividad subasta holandesa... 28 Figura 10. Diagrama de conceptos... 29 Figura 11. Diagrama de secuencia del protocolo de interacción de la subasta inglesa... 30 Figura 12. Diagrama de secuencia del protocolo de interacción de la subasta holandesa.. 31 Figura 13. Diagrama de secuencia del protocolo de suscripción mantenido entre Comprador y Subastador... 31 Figura 14. Diagrama de secuencia del protocolo FIPA-Brokering... 32 Figura 15. Diagrama de secuencia del protocolo FIPA-Query que actúa como subprotocolo en el proceso de búsqueda de una subasta... 33 Figura 16. Diagrama de clases del SMA... 34 Figura 17. FIPA Contract Net Interaction Protocol... 37 Figura 18. Estructura de paquetes utilizada en el desarrollo del SMA... 39 Figura 19. Intercambio de mensajes en subasta inglesa... 44 Figura 20. Intercambio de mensajes en subasta holandesa... 46-5/106-

Capítulo 1. - Introducción 1.1. Justificación del PFC y contexto en el que se desarrolla El proyecto pertenece al ámbito de la Inteligencia Artificial y, más concretamente, al ámbito de los Sistemas Multiagente o SMA. Entendiendo como SMA [1]: "Un conjunto de agentes autónomos inteligentes que se comunican para resolver un problema de manera conjunta. Cuando los componentes de este tipo de sistemas quieren cooperar en la resolución del problema, se habla de un conjunto de agentes colaborativos.". En cuanto a los agentes que integran un SMA, hay muchas definiciones al respecto. La FIPA [2] (Foundation for Intelligent Physical Agents) los define de la siguiente manera: "Un agente es una entidad de software encapsulado con su propio estado, conducta, hilo de control y la habilidad para interactuar y comunicarse con otras entidades (gente, otros agentes o sistemas legados). Los agentes se definen como [3]:...hardware o (más usualmente) sistema de computación que posea las siguientes propiedades: - autonomía: opera sin intervención directa de los humanos u otros programas, y tiene algún tipo de control sobre sus acciones o estado interno; - habilidad social: interactúan con otros agentes a través de un lenguaje de comunicación; - reactividad: perciben su entorno (mundo físico, usuario a través de interfaz gráfica, agentes, Internet) y responden a cambios que ocurren en él; - pro-actividad: exhiben comportamiento dirigido por objetivos, tomando la iniciativa. El campo de actuación de los SMA comprende, entre otros [4]: Flujos de trabajo y gestión de procesos de negocio. Como por ejemplo el SMA utilizado por SCA Packaging para explorar diferentes estrategias encaminadas a reducir los niveles de stocks sin comprometer los tiempos de reparto, que consigue reducir los niveles de stock en almacén un 35%. Reputación y confianza. Aportan nuevas técnicas para expresar el razonamiento sobre la reputación y la confianza a nivel individual y social para posibilitar la interacción en entornos abiertos y dinámicos. Creación y gestión de Organizaciones Virtuales en Grid computing. En lo que se refiere la gestión y desarrollo de procedimientos y métodos para la automatización de creación de Organizaciones Virtuales (VOs), gestión y disolución. -6/106-

Coordinación y reubicación de recursos. En la gestión autónoma y coordinada de recursos distribuidos. Negociación. Aportando estrategias y protocolos que establecen reglas de negociación así como los propios mecanismos de negociación. Determinando qué algoritmo de negociación es el más adecuado bajo determinadas circunstancias. Aprendizaje y optimización. Aplicado por ejemplo al campo de la logística en sistemas de optimización de transporte basados en coste, como es el caso de Adaptive Transportation Networks cuyos agentes negocian utilizando un protocolo similar al utilizado en las subastas. Trazabilidad. Aportando mecanismos para la conocer la traza de cómo se ha logrado alcanzar determinado resultado identificando los servicios que lo han producido. El presente proyecto se centra en el ámbito del comercio electrónico en la modalidad de agentes de subasta (auction bots) [5]: "Agents that can run, and participate in, online auctions for goods." Lo que se pretende es lograr es llevar a cabo todo el proceso de negociación de las subastas sin intervención humana, por medio de sus agentes representantes. De tal manera que un vendedor parametrice la subasta a realizar (tipo de subasta, precio mínimo, tiempo de subasta, etc.) y genere un agente vendedor que lo representará en la subasta. Por otra parte, los compradores generarán sus agentes parametrizados acorde al objeto de la subasta y a la estrategia a seguir en la misma. A partir de ahí se produce la interacción "automática" entre agentes compradores y vendedores de la subasta, según sus modelos de comportamiento y estrategias de negociación, hasta el momento en que ésta concluya. Al finalizar, los agentes tanto compradores como vendedores informarán de los resultados e iniciarán los procesos necesarios tras la adjudicación del producto de la subasta, en caso de que esta adjudicación se produzca. En cuanto a los modelos de subasta, los contemplados en el sistema corresponden a la tipología de subastas abiertas y más concretamente a las subastas al alza (inglesa) y las subastas a la baja (holandesa). En el Capítulo 2 se explican en que consisten cada una de ellas. En este campo de los sistemas multiagente de subastas existen bastantes estudios sobre todo en el contexto de la subasta doble continua o CDA y se han utilizado algunos de ellos [6, 7, 8] como fuente para obtener información sobre las estrategias de negociación de los agentes "tipo". En cuanto a la justificación del proyecto, en gran parte se debe al interés del estudiante de obtener una visión práctica del funcionamiento de los SMA y adquirir una experiencia básica en la implementación de estos sistemas utilizando Java. -7/106-

1.2. Objetivos del PFC 1.2.1.Objetivosgeneralesyalcance El objetivo general del proyecto es adquirir una experiencia en el modelado e implementación de sistemas multiagente (SMA) de negociación. Más concretamente, la negociación se realizará en un entorno de subastas electrónica. En un principio, el modelado de la especificación se pensó realizarla con IDK [9] (INGENIAS Development Kit) pero se descartó debido fundamentalmente a problemas de tiempo para hacer una especificación tan detallada como exige el IDK, hecho ya previsto por el consultor del proyecto. Motivo por el cual se buscó una metodología menos exigente pero que a la vez reflejara claramente los requisitos y modelara el SMA a alto nivel. La metodología que más se adapta a estas necesidades está definida en el artículo "Una Aproximación Metodológica para la Construcción de Modelos de simulación Basados en el Paradigma Multi-Agente" [10] y, en líneas generales, ha sido la que se ha seguido en este proyecto. El entorno de desarrollo del proyecto se realizará en Eclipse y la ejecución del SMA se llevará a cabo con JADE [11,12] (Java Agent Development Framework) un entorno de desarrollo y ejecución de agentes basado en Java, que cumple la especificación FIPA, y que simplifica la implementación de aplicaciones distribuidas. JADE proporciona: Un API Java para desarrollar los agentes. Un contenedor o entorno de ejecución en el que "viven" los agentes (similar al concepto de contenedor EJB en J2EE). Un conjunto de herramientas gráficas gestión y depuración de agentes, entre los que se encuentran: o RMA o Remote Agent Management. Desde él se pueden iniciar el resto de herramientas gráficas y gestionar los agentes. -8/106-

Figura 1. Remote Agent Management de JADE o Snnifer para capturar el flujo de mensajes entre los agentes. Figura 2. Sniffer de JADE mostrando el flujo de mensajes entre 3 agentes -9/106-

o Instrospector para acceder a la cola de mensajes enviados y recibidos por un agente y a los comportamientos que está ejecutando. Figura 3. Instrospector de JADE mostrando los mensajes recibidos por un agente y el comportamiento que está ejecutando o JADE Log Manager para ver los logs que se producen en la ejecución del SMA. Figura 4. Log Manager de JADE -10/106-

El alcance del proyecto se centra en la capa de negocio y no incluye un entorno gráfico para el interfaz del usuario ni persistencia de datos. Como futura mejora del proyecto se podría realizar un interfaz del usuario Web y utilizar una solución de persistencia como por ejemplo Hibernate [13] o ibatis [14]. De tal manera que combinara J2EE con el entorno de ejecución de JADE. 1.2.2.Objetivosespecíficos Los objetivos específicos del proyecto consisten en: Modelar la especificación de un SMA utilizando la metodología definida en "Una Aproximación Metodológica para la Construcción de Modelos de simulación Basados en el Paradigma Multi-Agente" [15] Utilizar JADE como entorno de ejecución y comunicación de un SMA. Implementar las clases de test que comprueben el funcionamiento de los agentes y del SMA. Implementar las clases de los agentes y de sus comportamientos con el fin de lograr un SMA de subastas virtuales con agentes compradores y vendedores capaces de negociar en base a diferentes estrategias. -11/106-

1.3. Planificación de trabajo 1.3.1.Divisióndeltrabajoentareasyestimacióndetiempos Se ha optado por una división Top-Down de las tareas necesarias para satisfacer los objetivos señalados anteriormente. En la Tabla 1.1 se recogen la división de estructuras del trabajo y sus duraciones estimadas. T01 Definicióndelplandetrabajo 5días Elaboracióndelplandetrabajodelproyecto T01.1 Recogidadedocumentaciónbásica Obtencióndedocumentaciónnecesariapara 2días iniciarelestudiodelproyecto.fuenteprincipal Internet T01.2 Propósitodelproyecto Propósitoydefinicióndelproyecto 1día T01.3 Objetivos Definicióndelosobjetivosgeneralesy 1día específicos T01.4 Planificación Descomposicióndeltrabajoentareassiguiendo 1día unametodologíawbsyplanificacióntemporal delasmismas. T02 DocumentaciónderequisitosdelSMA 7días EspecificarlosrequisitosdelSMAmodelandoloscasosdeusoenundiagramageneralyobteniendouna descripcióntextualdeloscasosdeuso,conelpropósitodeidentificarquédebehacerelsistema,cómoy cuándo.asícomounaintroduccióndelosconceptosprincipalesdelsistema. T02.1 Conceptosprincipalesdelsistema Protocolosdesubastas,agentes,estrategiasde negociación,elhistorialdetransaccionesy previsióndeproblemasasolventaenelsistema. 2días T02.2 Diagramadecasosdeuso T02.3 Descripcióntextualdecasosdeuso T03 EspecificacióndelSMA Diagramageneraldecasosdeusoqueserviráde baseparaidentificarlosrequisitosfuncionales delsistema. Descripcióntextualdeloscasosdeuso identificadoseneldiagramadecasosdeuso. Serviránparaidentificarlosagentesdelsistema, sustareasylainteracciónentreellos. UnavezconocidoslosrequisitosdelsistemarealizaráunaespecificacióndelSMAbasándoseenla MetodologíadescritaenelApartado1.2.1. T03.1 Modeloderoles Identificalosrolesopapelesdelosagentes tomandocomobaseeldiagramadecasosde uso. T03.2 Modelodeentorno Describeaquelloscomponentesdelsistemaque nosonagentesperoqueintervienendeunau otraformaenlosprocesosquellevanacabolos agentes. 1días 4días 27 días 5días 5días -12/106-

T03.3 Modelodetareas Detallaelfuncionamientodecadarolmediante 4días ladescomposicióndelastareasensecuenciasde actividadesysurepresentaciónenundiagrama deactividad. T03.4 Modeloderazonamientoyaprendizaje Englobalascreencias,objetivos,capacidadesy 9días decisionesdecadarolylasrelacionaconlas actividadesquedebeefectuar.serepresenta gráficamentemediantediagramasdeflujo. T03.5 Modelodeontología Representarlosconceptosdelaontología 2días (estructuraysignificadodelosconceptos principalesdelsistema)ysusrelaciones medianteundiagramadeclasesuml. T03.6 Modelodecoordinación UtilizalosdiagramasdesecuenciasUMLpara 2días representarlasinteraccionesentrelosrolesylas etapasquelascomponen. T04 ImplementaciónSMA 34 días ImplementaciónenJADEdelSMAsegúnlasespecificacionesdelatareaT03. T04.1 Creardespliegue Definirlaconfiguracióndedesplieguequeserá utilizadaparalanzarlosagentes. T04.2 ImplementarclasesdelSMA Crearlasclasesnecesariasparael funcionamientodelsma. T04.3 Refinarelcódigo. IntegrarelcódigoIDKconlasclasesdelatarea T04yrefinarelcódigoparaquefuncione correctamente. T05 Redacciónmemoriadelproyecto Redaccióndelamemoriadelproyecto T05.1 DocumentarrequisitosSMA RedactarlosrequisitosdelSMAenbaseal trabajoobtenidoenlatareat02. T05.2 DocumentarespecificaciónSMA RedactarlaespecificacióndelSMAenbaseal trabajoobtenidoenlatareat03. T05.3 DocumentarimplementacióndelSMA RedactarlaimplementacióndelSMAenbaseal trabajoobtenidoenlatareat04. T05.4 Conclusiones,mejoras,referenciasy Completarlamemoriaañadiendolas bibliografía conclusiones,lasmejorasposibles,las referenciasylabibliografía. T05.5 Revisiones Realizarlasmodificacionesnecesariasenla memoriaenbasealasindicacionesdel consultor. 3días 25 días 6días 31 días 5días 7días 7días 7días 5días -13/106-

T06 Test 20 días Elaboracióndelosjuegosdepruebasnecesariosparaprobarelcorrectofuncionamientosdelosagentesydel SMAimplementado. T06.1 Testdeagentes T06.2 TestSMA Crearunjuegodepruebasqueverifiqueel funcionamientodelosagentestipoque intervienenenelsma. Crearunjuegodepruebasqueverifiqueel funcionamientodelsma. T07 Elaborarpresentaciónvirtual ElaboracióndeunapresentaciónPowerPointquesinteticeyexpongaeltrabajorealizadoenelproyecto. T08 Revisiones RevisionesfinalesdelSMAobtenido,delamemoriaydelapresentación. 1.3.2.Identificacióndehitos Tabla 1.1. División del trabajo y duración estimada. PEC 1: entrega Planificación en fecha 8/3/2009. PEC 2: entrega Requisitos y Especificación del SMA en fecha 12/4/2009. PEC 3: entrega Implementación del SMA en fecha 17/5/2009. Entrega final: implementación del SMA, memoria y presentación en fecha 19/6/2009. 10 días 10 días 10 días 20 días -14/106-

1.3.3.Planificacióntemporal En la Tabla 1.2 se muestra la planificación temporal de las tareas con su duración, fechas de comienzo y fechas de fin. En la Figura 1 se muestra el diagrama de Gantt correspondiente a la planificación. Tabla 1.2. Planificación temporal tareas. -15/106-

Figura 5. Diagrama de Gantt de las tareas del proyecto. -16/106-

Capítulo 2. - Especificación de requisitos En este Capítulo se introducen los conceptos principales del núcleo central del SMA y se especifican los requisitos del SMA modelando los casos de uso en un diagrama general y realizando una descripción textual de los casos de uso más relevantes, con el propósito de identificar las funcionalidades principales del sistema y sus actores. Originalmente, el proyecto no consideraba más agentes que los que directamente intervienen en los procesos de negociación de las subastas, es decir, Agente Subastador y Agente Comprador. Tras la lectura de "A Trustworthy Agent Based Online Auction System" [15] se vio la necesidad de incorporar un agente Casa de subastas y agente Buscador, más adelante se detalla el rol de cada uno de ellos, además de adoptarse un diseño similar para conseguir que el sistema sea abierto a la extensión en cuanto a estrategias de compra se refiere. 2.1. Conceptos principales del sistema 2.1.1.Tiposdesubastas Los tipos de subasta que podrá elegir el vendedor corresponden a la tipología de subastas abiertas y más concretamente a las siguientes [16,17]: Subasta al alza. Pretende fomentar la competencia de los posibles compradores de tal modo que el vendedor establece un precio de salida bajo. Este precio se va incrementando con las sucesivas pujas de modo que se adjudica el objeto de la subasta al participante que haya realizado la puja más alta durante el tiempo de vida de la subasta. El vendedor puede fijar un precio mínimo de tal modo que si al finalizar la subasta la puja máxima no es mayor o igual que el precio mínimo entonces no se producirá la venta o adjudicación. Es la subasta clásica, también conocida como subasta inglesa. Subasta a la baja. El vendedor fija un precio de salida alto y sucesivamente lo baja hasta que aparece un comprador que acepta el precio momento en el cual se le adjudica el objeto de la subasta. Normalmente el vendedor fija un precio de reserva de tal modo que ese precio será el mínimo al que puede llegar el objeto subastado. También se conoce como subasta holandesa. Nota: en un principio se consideraron las subastas a segundo precio o Vickrey pero se descartaron para no aumentar la complejidad del proyecto. 2.1.2.Agentes En la concepción inicial de este proyecto se consideraron dos agentes con los roles de vendedor o subastador y de comprador. A medida que el proyecto evoluciona se ve la necesidad de crear nuevos tipos de agentes como es el caso de un agente Casa de subastas que registra las subastas activas y los movimientos del historial de transacciones, entre otras cosas, así como de un agente Buscador que localice las subastas activas que subasten un bien determinado de interés para el usuario. -17/106-

El sistema trabajará con los tipos de agentes siguiente: Agente casa de subastas. Puesto en funcionamiento por el sistema, tiene las responsabilidades siguientes: o Mantener la lista de subastas activas y de bienes subastados. o Crear la subastas y el agente subastador cuando se da de alta una nueva en el sistema. o Obtener la lista de subastas activa. o Obtener la lista de bienes que se subastan. Para acotar el problema se considera que no puede haber dos subastas activas que subasten el mismo bien. o Cerrar la subasta cuando concluye. o Responder al agente buscador sobre la búsqueda de una subasta concreta. o Registrar en el historial las transacciones que se produzcan a consecuencia de la interacción entre agentes compradores y vendedores. o Realizar los test de funcionamiento del SMA de subastas. Agente subastador. Son puestos en funcionamiento por el agente Casa de subastas y configurados previamente con: o El artículo a vender. o El tipo de subasta a realizar: inglesa, holandesa. o El precio de salida. o El precio de reserva. o La fecha de finalización de la subasta. Una vez liberado en el sistema, el agente comprador hará las gestiones necesarias para responder a los mensajes de los compradores, notificar los cambios de precios a los agentes involucrados en la subasta, reducir los precios en caso de la subasta holandesa, determinar el ganador, notificar el ganador y notificar la finalización de la subasta al agente Casa de subastas. Agente buscador. Actúa de intermediario entre el usuario el agente Casa de subastas para localizar las subastas activas que subasten un bien por el que el usuario está dispuesto a pujar. Agente comprador. Puesto en funcionamiento por el agente Casa de subastas y configurado con: o El artículo que se pretende comprar. o La puja a realizar. o El precio de reserva (la puja máxima a la puede llegar el agente). o La estrategia a seguir (se detallan en el apartado Estrategias de negociación) -18/106-

El agente comprador está vinculado a la subasta establecida en su configuración inicial y se mantendrá en la misma realizando las pujas que considere el agente en base a sus estrategias de negociación y al tipo de subasta. 2.1.3.Estrategiasdenegociación Las estrategias de negociación [6] determinarán el comportamiento de los agentes en la subasta y serán parametrizadas al crear el agente aunque podrían modificarse dinámicamente según el conocimiento del entorno, lo que permitiría, por ejemplo, que en la subasta inglesa no todos los compradores pujen de la misma forma. Las estrategias seguidas por los agentes y los resultados a los que llevan éstas podrán contrastarse ya que el sistema guardará un historial de transacciones de las subastas. En general, la estrategia del pujador determinará cuánto debe pujar y cuándo hacerlo. Para ello, el sistema contemplará las estrategias siguientes: Incremental. Estrategia del comprador de la subasta inglesa en la que el agente puja a intervalos regulares incrementando la puja en una cantidad preestablecida al crear el agente. Se puede optar por una de estas dos formas de incrementar la puja: o Nueva puja = puja anterior + incremento. o Nueva puja = puja anterior * incremento. Apuesta única n rondas. Estrategia del comprador de la subasta holandesa en la que al principio el agente considera pujar en la subasta por el precio configurado en su atributo Puja. Si en el transcurso de la subasta se supera el número de rondas configurado en la estrategia entonces el valor de aceptación de la puja será el de su precio de reserva. Apuesta única n rondas incremento dinámico. Estrategia del comprador de la subasta holandesa en la que en principio el agente considera pujar en la subasta por el precio configurado en su atributo Puja. Si se supera el número de rondas preestablecido en la estrategia entonces incrementará el valor de aceptación de la puja en una cantidad fija siempre y cuando no llegue al precio de reserva. Por otra parte, se pretende que el SMA a implementar pertenezca abierto a la extensión en el sentido de que sea sencillo implementar nuevas estrategias y configurarlas para que sean utilizadas por los agentes compradores. Por ejemplo, para que en lugar de ser estrategias estáticas, como las comentadas anteriormente, sean dinámicas y reactivas al comportamiento de otros pujadores o al historial de transacciones. Además, en la subasta holandesa podría resultar interesante incluir adaptaciones de estrategias propias de agentes de subastas dobles continuas [7, 8] como por ejemplo la de los Agentes Kaplan, Agentes Zero-Intelligente Plus (ZIP) o Agentes GD. -19/106-

2.1.4.Historialdetransacciones El sistema guardará un registro de las transacciones que tienen lugar en las subastas, almacenando información referente al identificador de la subasta, identificador del agente que realizó la transacción, el tipo de transacción, el precio (de puja o de venta) y la fecha. El propósito de este historial es doble, por una parte puede utilizarse como fuente de datos para realizar un estudio sobre el comportamiento de los tipos de agentes en las subastas. Por otra parte puede utilizarse como base de conocimiento para que los agentes compradores y vendedores puedan adaptar su estrategia de negociación. 2.1.5.Problemasasolventarenelsistema En una valoración previa de las cuestiones que deben resolverse en la implementación de este SMA de subastas se pueden identificar los siguientes: El sistema de suscripciones a las subastas y notificaciones de cambios de precios. Puede solventarse empleando el patrón Observador, de modo que los compradores se suscriben a las subastas de los vendedores y estos podrán notificar eventos de la subasta a todos sus subscriptores. Pujas simultáneas en la subasta inglesa. Se produce cuando más de un comprador realiza una puja simultáneamente. Puede tomarse como un problema de concurrencia de productor-consumidor, siendo el productor el vendedor y el consumidor el comprador. Se solventa utilizando una cola thread safe para procesar los mensajes de puja que reciba el vendedor, aunque esta funcionalidad ya está incorporada en el propio JADE y por tanto no es necesario implementarla de el sistema. Colisiones en ofertas realizadas por los compradores en la subasta holandesa. Se produce cuando más de un comprador oferta el mismo precio. Se puede resolver con el mismo sistema que el caso de las pujas simultaneas en la subasta inglesa. Otra solución que puede adoptarse es utilizar un contador de colisiones, establecer un máximo de colisiones permitidas y repetir la subasta hasta que el contador llegue al máximo en cuyo caso se daría como ganador aleatoriamente a una de las pujas ganadoras. -20/106-

2.2. Diagrama de casos de uso En la Figura 6. Diagrama de casos de uso, se identifica el actor Agente CasaDesSubastas que se encarga de poner en marcha los casos de uso Revistar subasta y Crear compra que desencadenan todo el proceso de una subasta. También figuran los agentes Comprador y Subastador y una especialización de este último, el Agente Subastador holandesa que pone en marcha el caso de uso bajar precio (caso particular de este tipo de subastas). Así como el agente Buscador encargado de localizar una subasta en base a un criterio. Figura 6. Diagrama de casos de uso 2.3. Descripción textual de casos de uso En la descripción textual siguiente solo se tendrán en cuenta los casos de uso que no están incluidos en otros puesto que su descripción textual no aporta nada a la documentación de requisitos aunque es importante que figuren en el diagrama de casos de uso para ofrecer una visión de las implicaciones de los casos de uso "principales" (puestos en marcha directamente por un actor). -21/106-

2.3.1.Registrarsubasta Caso de uso Actores Precondición Poscondición Descripción Flujo alternativo 2.3.2.Determinarganador Caso de uso Actores Precondición Poscondición Descripción Flujo alternativo Registrar subasta Agente CasaDeSubastas La subasta no está registrada en el sistema La subasta está registrada en el sistema y hay un agente subastador encargado de la venta objeto de la subasta. 1. El Agente CasaDeSubastas crea un Agente Subastador encargado de la subasta. 2. Registra el bien subastado en la lista de bienes subastados. 3. Registra la subasta en la lista de subastas activas: El identificador de la subasta La fecha de inicio de la subasta El identificador del agente subastador El objeto a subastar El tipo de subasta a realizar: inglesa, holandesa. El precio de salida El precio de venta de reserva Determinar ganador Agente Subastador Hay un Agente Subastador encargado de la subasta y, o bien, la subasta es inglesa y ha finalizado, o bien, la subasta es holandesa y hay uno o más compradores que ofertan el precio establecido por el Agente Subastador. La subasta cierra 1. El Agente Subastador comprueba que la puja actual es la ganadora. 2. El Agente Subastador notifica al Agente CasaDeSubastas y a los agentes compradores del resultado de la subasta. 3. El Agente Subastador da por cerrada la subasta y se lo notifica a al Agente CasaDeSubastas. 2.3.3.Bajarprecio Caso de uso Actores Precondición Poscondición Descripción Flujo alternativo Bajar precio Agente Subastador El tipo de subasta es holandesa y no ha finalizado El precio del bien subastado se ha reducido 1. El Agente Subastador determina en base a su estrategia que es necesario bajar el precio. 2. Calcula el nuevo precio de la subasta. 3. Notifica el nuevo precio al Agente CasaDeSubastas y a los agentes vendedores suscritos en la subasta. -22/106-

2.3.4.Crearcompra Caso de uso Actores Precondición Poscondición Descripción Flujo alternativo Crear compra Agente CasaDeSubastas Hay una subasta en curso de interés para el comprador Se crea un agente comprador suscrito a la subasta 1. Crea un agente Comprador asignándole una estrategia parametrizada de la forma siguiente. Para la subasta inglesa: La forma de incrementar la puja. El incremento. La puja inicial La puja máxima o reserva. Para la subasta Holandesa: El incremento El precio aceptable inicial El precio aceptable máximo o reserva. El número de ronda máximo para incrementar el precio aceptable 2. Le asigna una subasta concreta. 2.3.5.Pujar Caso de uso Actores Precondición Poscondición Descripción Flujo alternativo Pujar Agente comprador El agente Comprador está suscrito a una subasta. Una nueva puja del agente comprador es notificada al Agente Subastador 1. El agente comprador determina realizar una puja y el importe de la misma según la estrategia seguida por el agente Comprador. 2. El agente Comprador envía un mensaje al Agente Subastador notificando la puja. 3. El Agente Subastador procesa la puja. 4. El Agente Subastador verifica que la puja es correcta y la notifica al Agente CasaDeSubastas y al resto de compradores. 4a. Si la subasta ha finalizado entonces caso de uso Determinar ganador. 2.3.6.Localizarsubasta Caso de uso Actores Precondición Poscondición Descripción Flujo alternativo Localizar subasta Agente Buscador 1. El usuario indica el objeto de subasta que le interesa localizar. 2. El agente Buscador envía un mensaje al Agente CasaDeSubastas con la búsqueda a realizar. 3. El Agente CasaDeSubastas envía un mensaje al Agente Buscador con el resultado de la búsqueda. 4. El Agente Buscador informa textualmente al usuario del resultado de la búsqueda. -23/106-

Capítulo 3. - Especificación del SMA 3.1. Modelo de roles En este modelo se identificación los roles o papeles de los agentes tomando como base el diagrama de casos de uso. En la Figura 7, se pueden ver los roles de los agentes contemplados en el sistema. El agente CasaDeSubastas está relacionado con 0 o más agentes Subastadores Cada agente Comprador dispone de un agente Buscador el cual solicita al agente CasaDeSubastas la lista de subastas actuales o aquellas en las que se subasta un bien determinado. La relación de uso entre Agente Subastador y Agente Comprador representa la negociación entre ambos que se produce en la subasta. También se puede ver la relación de especialización del agente Subastador Holandesa respecto al agente Subastador. Complementando al diagrama anterior, se describe a alto nivel y en formato tabular el papel que desempeña cada tipo de agente en cuanto a sus objetivos, responsabilidades principales, capacidades e información que requiere para cumplir sus objetivos. Rol Objetivos Responsabilidades Capacidades Agente Buscador Localizar las subastas activas según criterio de búsqueda Enviar mensajes de búsqueda de subastas al Agente CasaDeSubastas Notificar las subastas encontradas al usuario Buscar subastas Información requerida El "objeto" o bien que quiere localizarse en subasta -24/106-

Rol Objetivos Agente CasaDeSubastas Llevar un control de todas las subastas del sistema Responsabilidades Crear los agentes subastadores Crear los agentes compradores Registrar las subastas en el sistema Notificar la subasta activa de un bien determinado Eliminar al agente subastador cuando concluya una subasta Actualizar el Historial de transacciones Capacidades Creación de agentes y gestión de las subastas Información requerida Los parámetros de configuración de la subasta. Los parámetros de configuración de los agentes compradores Los parámetros de configuración de los agentes subastadores Las datos de la transacción a registrar. Rol Agente Subastador Objetivos Vender el objeto de la subasta con el mayor beneficio posible respetando el precio de reserva. Responsabilidades Determinar el ganador. Notificar ganador. Notificar nueva oferta a los suscriptores (subasta inglesa) Capacidades Vender un producto mediante subasta electrónica. Información requerida Los parámetros de configuración de la subasta. Las ofertas de compra (pujas) de los vendedores. Rol Agente Subastador Holandesa Objetivos Vender el objeto de la subasta con el mayor beneficio posible respetando el precio de reserva Responsabilidades Las mismas que las del Agente Subastador y además la estrategia a seguir a la hora de determinar: Cuando ofertar el objeto de la subasta a un precio más reducido. La disminución de precio. Capacidades Vender un producto mediante subasta electrónica. Información requerida Los parámetros de configuración de la subasta (igual que en Agente Subastador) Las ofertas de compra (pujas) de los vendedores. Rol Objetivos Responsabilidades Capacidades Agente Comprador Comprar el objeto de la subasta al menor precio posible sin superar el precio de reserva. Efectuar las pujas según el tipo de subasta y la estrategia elegida por el comprador. Comprar productos en una subasta electrónica. Información requerida Los parámetros de configuración del agente. El tipo de subasta. El precio de venta actual. La estrategia a seguir -25/106-

3.2. Modelo de entorno El modelo del entorno describe aquellos componentes del sistema que no son agentes pero que intervienen de una u otra forma en los procesos que llevan a cabo los agentes. Se puede entender como la relación a nivel de flujo de información que se produce entre los agentes y el entorno, identificando las entradas de datos, procesos que se llevan a cabo y las salidas generadas. Componente Entradas Dato Precio de compra aceptable (subasta holandesa) El número de rondas actuales de la subasta El número de rondas máximo para el comprador El precio de compra aceptable actual El precio de compra de reserva El incremento de precio de compra por ronda Emisor(es) Comprador Subastador Procesos En las subastas holandesas el comprador recalculará el precio de compra aceptable según su estrategia. Para la estrategia Apuesta única n rondas: SI numero rondas actual >= número de rondas máximo para el comprador ENTONCES Precio de compra aceptable=precio de compra de reserva FIN SI Para la estrategia Apuesta única incremento dinámico: SI numero rondas actual >= número de rondas máximo para el comprador ENTONCES SI precio de compra aceptable + incremento > precio de compra de reserva ENTONCES No se modifica el precio de compra aceptable SI NO Precio de compra aceptable=precio de compra aceptable anterior + incremento FIN SI FIN SI Salidas Dato El precio de compra aceptable Receptor(es) Comprador -26/106-

Componente Entradas Dato La puja actual El precio de reserva El incremento La forma de incrementar la puja Oferta de compra subasta inglesa Emisor(es) Comprador Subastador Procesos En la subasta inglesa el comprador determinará si puja o no en una ronda y el valor de la puja en base a su estrategia. Para la estrategia incremental: MIENTRAS (puja<puja actual) SI (tipo de incremento es sumar) ENTONCES puja = puja + incremento SI NO puja = puja * incremento FIN SI FIN MIENTRAS Salidas Dato La puja de un comprador en una ronda de una subasta Receptor(es) Comprador Subastador Componente Entradas Dato El precio de venta actual El precio de venta de reserva El decremento Oferta de venta subasta holandesa Emisor(es) Subastador Procesos En la subasta holandesa el subastador determinará el nuevo precio de venta ofertado si no hay ofertas de compra en una ronda. nuevo precio de venta = precio de venta actual - decremento SI (nuevo precio de venta>=precio de venta de reserva) ENTONCES precio de venta actual = nuevo precio de venta SI NO terminar subasta FIN SI Salidas Dato La oferta de venta del subastador holandesa Receptor(es) Subastador -27/106-

3.3. Modelo de tareas Detalle del funcionamiento de cada rol mediante la descomposición de las tareas en secuencias de actividades y su representación en un diagrama de actividad. En este modelo se contemplan los diagramas siguientes: Figura 7. Diagrama de actividad subasta inglesa Figura 8. Diagrama de actividad subasta holandesa -28/106-

3.4. Modelo de ontologías El modelo emplea como representación gráfica un diagrama muy similar al diagrama de clases de UML para representar los conceptos de la ontología (estructura y significado de los conceptos principales del sistema) y sus relaciones. Figura 9. Diagrama de conceptos -29/106-

3.5. Modelo de coordinación Este modelo utiliza los diagramas de secuencias UML para representar las interacciones entre los roles y las etapas que las componen. En estos diagramas se muestra el flujo de mensajes, y el tipo de los mismos, entre los roles. 3.5.1.NegociaciónsubastadoringlesayComprador El proceso de negociación de la subasta inglesa entre subastador y comprador se coordina según protocolo de interacción FIPA English Auction Interaction Protocol [18] donde Initiator corresponde al rol de Subastador y Participant al rol de Comprador. Figura 10. Diagrama de secuencia del protocolo de interacción de la subasta inglesa 3.5.2.NegociaciónsubastadorholandesayComprador El proceso de negociación de la subasta holandesa entre subastador y comprador se coordina según protocolo de interacción FIPA Dutch Auction Interaction Protocol [19] donde Initiator corresponde al rol de Subastador y Participant al rol de Comprador. -30/106-

Figura 11. Diagrama de secuencia del protocolo de interacción de la subasta holandesa 3.5.3.Suscripcióncompradorysubastador El proceso de suscripción a una subasta por parte del comprador se coordina según protocolo de interacción FIPA Subscribe Interaction Protocol [20] donde Initiator corresponde al rol de Comprador y Participant al rol de Subastador. Figura 12. Diagrama de secuencia del protocolo de suscripción mantenido entre Comprador y Subastador -31/106-

3.5.4.Búsquedadesubastas.Comprador Buscador Casadesubastas El proceso de búsqueda de una subasta por parte del comprador utilizando los servicios de un agente buscador que consulta al agente Casa de subastas se coordina según protocolo de interacción FIPA Brokering Interaction Protocol [21] donde Initiator corresponde al rol de Comprador y Broker al rol de Buscador. Figura 13. Diagrama de secuencia del protocolo FIPA-Brokering El subprotocolo utilizado para interrogar al agente Casa de subastas es el FIPA Query Interaction Protocol [22], donde Initiator es el agente Buscador y Participant es el agente Casa de subastas. -32/106-

Figura 14. Diagrama de secuencia del protocolo FIPA-Query que actúa como subprotocolo en el proceso de búsqueda de una subasta -33/106-

Capítulo 4. - Implementación La implementación del SMA se ha realizado en un ordenador con sistema operativo Mac OS X versión 10.5 y el entorno de desarrollo utilizado ha sido Eclipse 3.3.2. 4.1. Diagrama de clases Las clases necesarias para implementar el SMA de subastas son las que se muestran en la figura siguiente. Todas ellas incluyen comentarios tipo JavaDoc así como comentarios de línea. En el Anexo 1 se muestra el código Java de todas las clases utilizadas. Figura 15. Diagrama de clases del SMA

4.2. Implementación de los agentes Los agentes del sistema extienden una clase base llamada AgenteBase que implementa métodos de uso común para los agentes y que a su vez extiende la clase jade.core.agent. Concretamente un método para registrar al agente en las "páginas amarillas" (DF Services) de modo que sea fácilmente localizable y otro método para quitarlo de dicho registro. Los agentes que extienden AgenteBase son: AgenteBuscador AgenteCasaSubastas AgenteComprador AgenteSubastador Los mencionados agentes implementan el rol especificado en el punto 3.1. Modelo de roles. 4.3. Comunicación entre agentes La comunicación entre los agentes se realizará acorde al Lenguaje de Comunicación de Agentes (ACL) recogido en el protocolo FIPA-ACL [23]. Un mensaje FIPA-ACL, además de los datos de emisor (sender), receptor (receiver), protocolo (protocol) y otros datos de cabecera, adjunta el tipo de acción comunicativa según se puede ver en la tabla adjunta [24]. Acción comunicativa (Performative) Significado accept proposal Aceptarunapropuestarecibidapreviamente agree Estardeacuerdoenrealizaralgunaacción cancel Cancelaralgunaacciónpedidapreviamente cfp Solicitarpropuestaspararealizarunaaccióndada confirm Informaraunreceptorqueunaproposiciónescierta disconfirm Informaraunreceptorqueunaproposiciónesfalsa failure Informaraotroagentequeseintentóunaacciónperofalló inform Informaraunreceptorqueunaproposiciónescierta inform if Sielagentequerecibelaaccióncreequelasentenciaesverdaderainformarádemanera afirmativa,sinoindicaráqueesfalsa. inform ref Permitequeelemisorinformealreceptordeunobjetoquecreequecorrespondeaun descriptor,comopuedeserunnombreuotradescripciónqueloidentifique. not understood Informaraunreceptorqueelemisornoentendióelmensaje propagate Elreceptortrataelmensajecomosifuesedirigidodirectamenteaél,ydebeidentificar -35/106-

losagentesenestedescriptoryenviarleselmensajeaellos propose Enviarunapropuestapararealizarunaciertaacción proxy Elreceptordebeseleccionaragentesobjetivodenotadosporunadescripcióndada,y enviarlesunmensajeembebido query if Preguntarleaotroagentesiunadeterminadaproposiciónescierta query ref Preguntaraotroagenteporelobjetoreferenciadoenunaexpresión refuse Rechazarrealizarunaacción reject proposal Rechazarunapropuestaduranteunanegociación request Solicitaraunreceptorquerealicealgunaacción request when request whenever Solicitaralreceptorquerealicealgunaaccióncuandounaproposicióndadaseacierta Solicitaralreceptorquerealicealgunaaccióncadavezqueunaproposicióndadasea cierta subscribe Una intención persistente de notificar al emisor de un determinado valor, y volver a notificarlecadavezquedichovalorcambie En el apartado siguiente, Implementación de los comportamientos (behaviours) se indica el tipo de acciones comunicativas que utilizarán los agentes a implementar en el sistema. 4.4. Implementación de los comportamientos (behaviours) 4.4.1.Comportamientosdesubastadores Los comportamientos de los subastadores se han realizado adaptando el FIPA Contract Net Interaction Protocol [25] al protocolo de la subasta inglesa y holandesa. Encapsulan las estrategias de cada tipo de subasta: inglesa y holandesa. Las clases correspondientes a los subastadores: SubastadorHolandesaBehaviour y SubastadorInglesaBehaviour extienden la clase base SubastadorBehaviour que a su vez extiende la clase jade.proto.contractnetinitiator. SubastadorBehaviour contiene los métodos comunes a los comportamientos de los subastadores: registrartransacción. Envía un mensaje al agente CasaSubastas para que registre la transacción. getcasasubastas. Obtiene el identificador del agente CasaSubastas registrado en las páginas amarillas. -36/106-

Figura 16. FIPA Contract Net Interaction Protocol 4.4.2.Comportamientosdecompradores Los comportamientos de los compradores también obedecen a una adaptación del FIPA Contract Net Interaction Protocol. Los comportamientos de los compradores encapsulan las estrategias utilizadas por los compradores y ya comentadas en el apartado 2.1.3: CompradorInglesaIncrementalBehaviour, CompradorHolandesaNRondasBehaviour y CompradorHolandesaIncrementoDinamicoBehaviour; extienden la clase jade.proto. SSIteratedContractNetResponder. 4.4.3.Comportamientosqueinicianunapetición Estos comportamientos extienden la clase jade.proto.achievereinitiator que implementa los protocolos de estilo FIPA Request: BuscadorBehaviourInitiator. El agente Buscador realiza al agente CasaSubastas una petición de búsqueda de una subasta en base al nombre del objeto subastado. CompradorSuscribirBehaviourInitiator. El agente Comprador realiza una petición de suscripción a un comprador para que le suscriba en una subasta. SubastadorTransaccionesBehaviourInitiator. El agente Subastador realiza una petición al agente CasaSubastas para que registre una transacción. -37/106-

4.4.4.Comportamientosquerespondenaunapetición Estos comportamientos extienden la clase jade.proto.achievereresponder: BuscadorBehaviourResponder. Devuelve al agente Comprador el resultado de la búsqueda de la subasta. CasaSubastasBusquedasBehaviourResponder. Devuelve al agente Buscador el resultado de la búsqueda de la subasta. SubastadorSuscribirBehaviourResponder. Suscribe al agente Comprador a la subasta indicada en la petición correspondiente del comprador. CasaSubastasTransaccionesBehaviourResponder. Registra la transacción contenida en la petición realizada por el agente Subastador. 4.5. Implementación de las estrategias 4.5.1.Interfacesutilizadosenlasestrategias Se define el interface ICfgApuesta que deben implementar las estrategias de los compradores e ICfgSubasta para las estrategias de los subastadores. 4.5.2.ClasesqueimplementanelinterfaceICfgApuesta Encapsulan los datos necesarios para la estrategia de los compradores. Son las siguientes, ya comentadas en el apartado 2.1.3: IncrementalCfgImpl ApuestaUnicaNRondasCfgImpl ApuestaUnicaIncrementoDinamicoCfgImpl 4.5.3.ClasesqueimplementanelinterfaceICfgSubasta Encapsulan los datos necesarios para la estrategia de los subastadores. Son las siguientes: SubastaHolandesaImpl SubastaInglesaImpl 4.6. Clases de información manejada en la subasta Se utilizan las clases Subasta que contiene todos los datos necesarios para realizar la subasta y la clase Transacción que se utilizará para el registro del historial de transacciones. -38/106-

4.7. Estructura de paquetes Las clases implementadas se estructuran dentro del paquete uoc.sma. En la figura siguiente puede verse la estructura de paquetes utilizada con el fin de organizar todas las clases del sistema según sean de tipo agente, comportamiento, etc.. Figura 17. Estructura de paquetes utilizada en el desarrollo del SMA -39/106-

4.8. Librerías utilizadas Las librería utilizadas en la implementación corresponden a: El Java Runtime Environment 1.5.0 El entorno de ejecución JADE 3.6.1: o http.jar o iiop.jar o jade.jar o jadetools.jar o commons-codec-1.3.jar 4.9. Distribución final La distribución de la aplicación está almacenada en una carpeta llamada SUBASTAS dentro de la cual se encuentran las carpetas siguientes: Carpeta src: contiene los paquetes y clases creadas en el proyecto. Carpeta bin: contiene todas las clases del SMA en el archivo smasubastas.jar (incluyendo archivos fuente) así como las librerías de JADE. Carpeta doc: contiene el JAVADOC de la aplicación. -40/106-

Capítulo 5. - Ejecución 5.1. Ejecución del SMA La ejecución del SMA se realiza desde la clase IniciarSMA empaquetada en el archivo el archivo smasubastas.jar junto con el resto de clases del sistema multiagente. Esta clase realiza las acciones siguientes: Obtiene una referencia al entorno de ejecución de JADE Crea un contenedor JADE Crea un agente de tipo AgenteCasaSubastas Para ejecutar el SMA desde la línea de comandos hay que abrir la carpeta SUBASTAS\BIN y poner el comando: java -jar smasubastas.jar Hay que tener en cuenta que las clases utilizadas se han compilado con la versión 1.5 de Java. 5.2. Test de ejecución Puesto que el sistema de subastas se ocupa de la capa de negocio y no dispone de interfaz de usuario, en la clase AgenteCasaSubastas se han implementado métodos para probar el funcionamiento del SMA. Estos métodos ya se ejecutan directamente al iniciar la aplicación. testsubastas. Se lanza al crearse el AgenteCasaSubastas (método setup). Crea 2 subastas (y por tanto 2 agentes compradores), las añade al sistema e invoca la ejecución de los métodos que crean agentes compradores para la subasta inglesa y para la subasta holandesa. La primera subasta comienza transcurrido 1 minuto desde la ejecución de la clase IniciarSMA. La segunda subasta comienza 2 minutos después. testcrearcompradoresinglesa. Crea 3 agentes compradores y los suscribe a una subasta inglesa. testcrearcompradoresholandesa. Crea 3 agentes compradores y los suscribe a una subasta holandesa. Por otra parte, para comprobar el comportamiento del agente Buscador, el agente Comprador, al iniciarse (método setup), solicita la búsqueda de una subasta al agente Buscador. La realización de otros test podría realizarse solo con modificar la clase AgenteCasaSubastas en lo que atañe a los tres métodos citados anterioemente. -41/106-