Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ongoing Research on Software Engineering for Multi-Agent Systems

Similar presentations


Presentation on theme: "Ongoing Research on Software Engineering for Multi-Agent Systems"— Presentation transcript:

1 Ongoing Research on Software Engineering for Multi-Agent Systems
Carlos José Pereira de Lucena Software Engineering Lab (LES) – PUC-Rio October 2004 – SBES’04

2 Presentation Overview
Software Agents: Motivation Perspectives on Software Engineering for MASs MAS-SE at LES MAS Modeling (two approaches) Developing Method based on Aspects Technology Evaluation Technology Transfer Future research directions at LES Conclusions Software Engineering Lab (LES) – PUC-Rio

3 Software systems will be
The Scenario With the advances in network-based applications, the introduction of autonomous components in software systems has become usual Software systems will be Everywhere Always connected Always active to perform something on the user’s behalf SELMAS 2001, 2002, 2003 e 2004 ICSE 2005 Software Engineering Lab (LES) – PUC-Rio

4 New Characteristics of Software Systems1
Situatedness Components execute in the context of an environment, and they can influence and be influenced by it Openness Systems have decentralized management and can dynamically change their structure Locality in control Components represent autonomous and proactive loci of control Locality in interactions Components interact with each other accordingly to local patterns Futuro de Computer Science e Software Engineering Computabilidade Peter Wegner => interação + forte que algoritmos 1 F. Zambonelli, H.V.D. Parunak. Towards a Paradigm Change in Computer Science and Software Engineering: A Synthesis. Knowledge Engineering Review, 2004. Software Engineering Lab (LES) – PUC-Rio

5 Software Agents The complexity introduced by this new kind of software systems goes beyond the capabilities of traditional software engineering abstractions, such as objects and components Software Agent An agent is an interactive computer system that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its design objectives2 Outras definições: Object with attitude Object that say no and go 2 M. Wooldridge, N.R. Jennings. Intelligent Agents: Theory and Practice. Knowledge Engineering Review 10(2), 1995, pp Software Engineering Lab (LES) – PUC-Rio

6 O que são Sistemas Multi-Agentes?
No ponto de vista de IA Um sistema multi-agente é uma sociedade de agentes (agentes IA) individuais, que interagem por meio de troca de conhecimento e de negociação para alcançar um objetivo local ou global No ponto de vista de ES Um sistema multi-agente é um sistema de software composto por diversos locos de controle (agentes ES) encapsulados e independentes, que interagem no contexto específico de uma aplicação Software Engineering Lab (LES) – PUC-Rio

7 Agency Characteristics
Characteristics of multi-agent systems include Autonomy Capable of acting without direct external intervention Interactivity Communicates with the environment and other agents Adaptation Capable of responding to other agents and/or its environment to some degree Pro-activity Goal-oriented - it does not simply react to the environment OMG, White paper Software Engineering Lab (LES) – PUC-Rio

8 Agency Characteristics (cont’d)
Characteristics of multi-agent systems include Learning Modify its behavior based on its experience Rationality Able to choose an action based on internal goals Mobility Able to transport itself from one environment to another Software Engineering Lab (LES) – PUC-Rio

9 Evolution of SE Paradigms
Assembly Languages Functional Abstraction Structured Programming Object-Orientation Components Design Patterns ... Software Agents Abstractions determined by the machine architecture Time Abstractions determined by the problem domain Agents 1950 Software engineering X Knowledge Engineering Cognitvo X Reativo Software Engineering Lab (LES) – PUC-Rio

10 Today’s Technological Environment
The advances in Internet technologies increased the demand for the development of distributed, heterogeneous and complex systems The evolution of the Web towards a Semantic Web is creating contents that can be directly manipulated by processes Software agents embody distribution and heterogeneity and, thus, they are indicated as the new abstraction for the engineering of complex distributed systems HTML -> XML -> RDF -> OWL Software Engineering Lab (LES) – PUC-Rio

11 The Multi-Agent Paradigm
The Multi-Agent paradigm offers A decomposition model An abstraction for software development based on the problem domain A model of system development as a composition of organizational units A decentralization model to reduce the unit coupling Antropomórfica Generalização na forma de comunicação de agente Software Engineering Lab (LES) – PUC-Rio

12 Experimental Development since 1998
AulaNet Learning Management System 2BuyNet e-Business (B2C) VBroker e-Business (B2C) VMarket e-Business (C2C) iDeal e-Business (B2B) CommercePipe e-Business (C2B) PortalWare Knowledge Management SkillO Skill Management WebClipper Web Crawling Software Engineering Lab (LES) – PUC-Rio

13 The State of the Art of SE-MAS
Software Engineering for Multi-agent Systems at a very early stage Several proposals, little agreement AOSE/AAMAS, SELMAS/ICSE JAAMAS Ad-hoc or proprietary development Lack of an assessment of the impacts of the agent technology on software development There is a need to develop a proper Software Engineering for the Agent Paradigm AOSE/AAMAS AAMAS 3 anos em 2004 AOSE 5 anos em 2004 JAAMAS desde 1998 – 6 anos em 2004 Métricas Software Engineering Lab (LES) – PUC-Rio

14 Agent-oriented requirements analysis and specification
Research Topics Agent-oriented requirements analysis and specification Best practice in agent-oriented development Engineering large-scale agent systems Experiences with field-tested agent systems Formal methods for agent-oriented systems, including specification and verification logics Software Engineering Lab (LES) – PUC-Rio

15 Research Topics (cont’d)
Implications of agent-oriented software on organizational and social structures within and between companies (e.g. changes in roles, responsibilities, transparency, business processes and decision schemes) Integration of agent-oriented software into existing business processes and implications on business process re-engineering Market and other economic models in agent systems engineering Software Engineering Lab (LES) – PUC-Rio

16 Research Topics (cont’d)
Methodologies for agent-oriented analysis and design Model checking for agent-oriented systems Model-driven architecture (MDA) for MAS Practical coordination and cooperation frameworks for agent systems Refinement and synthesis techniques for agent-based specifications Relationship of AOSE to other SE paradigms (e.g., OO) Software Engineering Lab (LES) – PUC-Rio

17 Research Topics (cont’d)
Re-use approaches for agent-oriented software, including design patterns, frameworks, components, and architectures Software development environments and CASE tools for AOSE Standard APIs for agent programming Standardizations for AOSE UML and agent systems Verification and validation techniques for agent-based systems LES cobre quase tudo OMG – RFI (Request For Information) Software Engineering Lab (LES) – PUC-Rio

18 MAS Conceptual Framework MAS Modeling
MAS-SE at LES MAS Conceptual Framework TAO MAS Modeling ANote MAS-ML Developing Methods and Frameworks Aspect-oriented agent patterns Software Engineering Lab (LES) – PUC-Rio

19 MAS Conceptual Frameworks
Describe the structure of the abstractions of MAS Examples KAoS, d'Inverno and Luck, Yu and Schmidt Issues The description of the interplay between these abstractions The description of the other MAS abstractions surrounding the agent, such as environment and organization The use of the abstractions to guide the creation of models Software Engineering Lab (LES) – PUC-Rio

20 The TAO Conceptual Meta-model
Defines a core set of MAS abstractions The entities that may be described in MAS, their properties and the relationships associated with them (structural aspects of MAS) The creation and destructions of entities and also defines domain-independent behavior (dynamic aspects of MAS) Defines a core set of MAS relationships TAO groups together the abstractions that are frequently described in the literature for MAS Software Engineering Lab (LES) – PUC-Rio

21 The TAO3 Abstractions Relationships
Agent, object, environment, organization and role Relationships Inhabit, ownership, play, control, dependency, association, aggregation/composition and specialization 3 V. Silva et al. Taming Agents and Objects in Software Engineering. In: Garcia et al. (eds.) Software Engineering for Large-Scale Multi-Agent Systems, LNCS 2603, 2003, pp Software Engineering Lab (LES) – PUC-Rio

22 MAS Modeling languages and methodologies
MAS modeling languages that do not extend UML Gaia, MaSE ANote (Choren et al, SELMAS 2004), CAMLE (Shan and Zhu, SELMAS 2004) MAS modeling languages that extend UML AUML, AORML MAS-ML (Silva et al, LNCS 2940, 2004) Methodologies that use or extend MAS modeling languages MESSAGE, Prometheus Prometheus -> AUML Message -> AUML Software Engineering Lab (LES) – PUC-Rio

23 MAS Modeling Languages that Do Not Extend UML
Issues Do not have a conceptual framework Overuse or lack information on diagrams (scattered design of the system) Miss the definition of the non-agent entities (environmental resources) Do not explicitly show the agency properties such as adaptation or autonomy Software Engineering Lab (LES) – PUC-Rio

24 MAS Modeling Languages that Extend UML
Issues Do not explicitly define the extensions applied to the UML meta-model Do not define guidelines to implement the systems modeled using the language Do not model the same of the structural aspects and dynamic aspects frequently described in MAS Heavy Software Engineering Lab (LES) – PUC-Rio

25 Lightweight, agent-oriented notation language Focus
The ANote4 Lightweight, agent-oriented notation language Focus Specification of systems with distributed computing, agents and knowledge representation (ontology) Characteristics Agent-centric / Agency features Goal-oriented Design views 4 R. Choren, C. Lucena. Modeling Multi-agent Systems with ANote. Journal of Software and Systems Modeling, 2004. Software Engineering Lab (LES) – PUC-Rio

26 ANote Conceptual Meta-model
Software Engineering Lab (LES) – PUC-Rio

27 Each concept defines a perspective or view
Views Each concept defines a perspective or view ANote defines seven views each of which has its own representation (diagram) Software Engineering Lab (LES) – PUC-Rio

28 ANote Goal View Provides an initial identification of a tree of goals that outline the functions performed by the agents They are specified from elaborations, process descriptions and system problem (functional decomposition) Software Engineering Lab (LES) – PUC-Rio

29 ANote Agent View Specifies the agent types of the multi-agent application solution and their relationships (system structural base) They are specified from the logical subdivision of the system’s functional goals Software Engineering Lab (LES) – PUC-Rio

30 UML Class Diagram used as notation
ANote Ontology View Identifies the non-agent components of the system, specified with an ontology They are specified from the system environment resources, their relationships and functions (object-oriented approach) UML Class Diagram used as notation Software Engineering Lab (LES) – PUC-Rio

31 Captures agent behavior in specific contexts
ANote Scenario View Captures agent behavior in specific contexts Describe how goals can be achieved by an ordering of actions and events It specifies the normal course of action and the alternative paths of execution (emergent context) Shows the agents, interactions and plans involved in achieving a goal in a context (enterprise modeling) Scenario table used as notation Software Engineering Lab (LES) – PUC-Rio

32 ANote Planning (Action) View
Specifies the execution states, or actions, an agent has to perform to compute an action plan (derived from a scenario that illustrated a goal) It allows the modeling of the agents’ workflows Software Engineering Lab (LES) – PUC-Rio

33 ANote Interaction (Message) View
Shows the structural organization of agents that send and receive messages while executing an action plan It allows the modeling of the interaction protocols (conversation graphs) Software Engineering Lab (LES) – PUC-Rio

34 ANote Organization View
Specifies the multi-agent system implementation unit that offers services (set of goals), accessed by an interface (set of message protocols) There is no basic approach to split the agents into logical organizations (it is not a property of the abstraction, but a design decision) Software Engineering Lab (LES) – PUC-Rio

35 ANote Diagrams in a Nutshell
Software Engineering Lab (LES) – PUC-Rio

36 ANote Diagrams in a Nutshell
Software Engineering Lab (LES) – PUC-Rio

37 Web-based Insurance System Basic Railcar Control System
Some Usage Examples Agent Marketplace Web-based Insurance System Basic Railcar Control System Trading Agent Competition (TAC) Software Engineering Lab (LES) – PUC-Rio

38 Ongoing Research on ANote
Tool support Graphical tool Internal XML representation Eclipse Platform plug-in Translation (from model to code) support MAS Framework (TAC) Transformation from ANote models XML representations to MAS Framework Software Engineering Lab (LES) – PUC-Rio

39 Extended UML notation language Focus
The MAS-ML5 Extended UML notation language Focus Specification of the structural and dynamic aspects of MAS through a conservative extension of UML Characteristics Agent/organization-centric (based on TAO meta-model) UML extension Structural and dynamic aspects 5 V.T. Silva, C.J.P. Lucena. From a Conceptual Framework to a Multi-Agent System Modeling Language. Journal of Autonomous Agents and Multi-Agent Systems 9(1/2), 2004, pp Software Engineering Lab (LES) – PUC-Rio

40 MOF Architecture MOF ER meta-meta-model meta-meta-model UML TAO
Meta-meta-model layer instantiation UML meta-model TAO meta-model Meta-model layer unification MAS-ML meta-model Domain model layer MAS-ML models Instance layer Software Engineering Lab (LES) – PUC-Rio

41 Meta-classes of UML meta-model
The MAS-ML Meta-model Duty Right Features Classifier Structural Feature Behavioral Feature Belief Goal Axiom Operation Property Class AgentClass ObjectRoleClass OrganizationClass AgentPlan Meta-classes of UML meta-model New meta-classes New stereotypes Legend AgentRoleClass AgentAction 1..* * sender receiver 1 Element AgentProtocol AgentMessage Constraint postcondition precondition 0..1 EnvironmentClass Active Passive Software Engineering Lab (LES) – PUC-Rio

42 The MAS-ML Meta-model Class AgentClass ObjectRoleClass
OrganizationClass AgentRoleClass EnvironmentClass define play 1 1..* 0..* sub-org play in inhabit sub- org Relationship Directed Relationship Classifier Element Association Dependency Ownership Inhabit Control Play Generalization 1..* Meta-classes of UML meta-model New meta-classes Legend Software Engineering Lab (LES) – PUC-Rio

43 MAS-ML Class Diagram Represents the relationships between the classes and other MAS entities Virtual Marketplace association Organization A AgentA Item Book Organization A AgentB specialization Imported Books Second-hand Books Legend: inhabit Object / Environment Organization Agent Software Engineering Lab (LES) – PUC-Rio

44 MAS-ML Organization Diagram
Models the organizations and the relationships between the organizations and other MAS entities Software Engineering Lab (LES) – PUC-Rio

45 Models the roles and the relationships between the roles
MAS-ML Role Diagram Models the roles and the relationships between the roles MAS-ML usa diagramas estáticos diferentes que dão enfoque em diferentes visões da modelagem Em AORML, por exemplo, os diagramas ficam sobrecarregados de informação. Problema com o uso de diferentes diagramas contendo um sub-conjunto de informações em comum: consistência Software Engineering Lab (LES) – PUC-Rio

46 MAS-ML Sequence Diagram
Represents the interactions between the MAS instances and the intra-actions defined by each instance New elements to represent interactions The concept of message was extended New stereotypes associated with messages were created Extensions to model protocols were defined New elements to represent intra-actions Extensions to model the execution of plans and actions were defined Software Engineering Lab (LES) – PUC-Rio

47 MAS-ML Sequence Diagram
New pathnames and icons Software Engineering Lab (LES) – PUC-Rio

48 plan organization method invocation environment agent action
Bob/buyerOfBooks/Bookfinder/Place-A : UserAgent/Buyer/ GeneralStore/VirtualMarketplace Place-A : VirutalMarketplace BrandNewBookstore/marketOfUsedBooks/Bookfinder/Place-A : Second-handBookstore/MarketOfUsedGoods/ GeneralStore/VirtualMarketplace environment plan Entering organization Search for organization organization getOrganizations() Vector method invocation Check_organization_goals Managing entrance Request (OrgGoals) Get_organization_goals Inform (OrgGoals) Check_organization_roles Request (OrgRoles) agent Get_organization_roles Inform (OrgRoles) action Bob/buyerOfSecond-handBooks/Bookfinder/Place-A : UserAgent/BuyerOfSecond-handBooks/ GeneralStore/VirtualMarketplace Select_role_to_play <<role_commitment>> message stereotype Inform (RoleToPlay) Entering organization Register_itself_in_organization Inform (Buyer_of_second_hand_books) Search_for_announcement Request (Announcement) ... Software Engineering Lab (LES) – PUC-Rio

49 Simple Matching System Agent Marketplace
Some Usage Examples Simple Matching System Agent Marketplace Paper Submission and Reviewing System Simple Supply-chain Management System Software Engineering Lab (LES) – PUC-Rio

50 Ongoing Research on MAS-ML
Preliminary approach to code generation Tool support Graphical tool Create the MAS-ML DTD based on the extended MAS-ML grammar Transform XMI based on MAS-ML DTD into XMI based on UML DTD MAS-ML Formalization MAS-ML Analyzer Description Logic Ontology Software Engineering Lab (LES) – PUC-Rio

51 The Aspect-Oriented Agents6
Agents with aspect-orientation Focus Specification of an architecture and of a pattern language for agents using the aspect-oriented approach Characteristics Aspect-oriented Architectural Method (kernel and agenthood properties) Pattern language 6 Garcia, A. F.; Lucena, C. J. P.; Cowan, D. D.; Agents in Object-Oriented Software Engineering. In Software: Practice & Experience, Elsevier, vol. 34, Issue 5 , pp , May 2004. Software Engineering Lab (LES) – PUC-Rio

52 The Architectural Problem
The agent properties are not orthogonal Crosscut each other and the agent’s basic functionality Interaction Collaboration Mobility Learning Roles Adaptation Autonomy Basic Functionality The problem is that although separation of concerns is critical to MAS engineers, it is often difficult to achieve it in realistic systems. The agent properties are not orthogonal – they crosscut each other and the agent’s basic functionality. For example, this is the architecture of a simple agent; it describes the high-level structure of an agent. Each architectural component modularizes an agent property or agent concern. Note that the adaptation component, which modularizes the adaptation concern, crosscuts the basic’s agent functionality, the autonomy property, and the interaction property… architectural component Software Engineering Lab (LES) – PUC-Rio

53 The Architectural Problem (cont’d)
Multiple agent types  heterogeneous architectures A Reactive Information Agent A Cognitive User Agent Interaction Interaction Need for a more flexible architectural approach Adaptation Autonomy Adaptation Autonomy Basic Functionality Basic Functionality The architectural definition of the system’s agents is not easy since a multi-agent system can include multiple agent types and each agent type has heterogeneous architectures. The incorporation of some properties into the agent architecture and their relationships depend on the agent type… Interaction, adaptation, and autonomy are often considered as basic concerns in the development of agent architectures, while properties like mobility, learning, roles and collaboration are optional concerns. These additional properties also affect or crosscut multiple architectural components of an agent. For example, a reactive information agent can include… A cognitive user agent encompasses different components…. Moreover, note that the agent properties are composed in different forms… In this reactive agent, adaptation crosscuts… In this cognitive agent, adaptation crosscuts… So, the main architectural problem is that the agent architecture should support the flexible incorporation and removal of agent properties, and a flexible composition of the architectural agent components in order to allow the construction of heterogeneous agent types. Mobility Learning Collaboration Roles Roles Software Engineering Lab (LES) – PUC-Rio

54 The Design Problem Basic Functionality Collaboration Mobility
Adaptation Autonomy Interaction Learning Basic Functionality Agent goals ... efectors adapters threads move() returnHome() itinerary processInformation() LCs startRole() itinerary remoteEnvironments roles processInf () sendMsg() receiveMsg() addAdapter() removeAdapter() notifyAdapters() makeDecision() startThread() addGoal() executePlan() Role agents protocol Collaboration getName() addAgent() Plan goal preCond() posCond() public Result searchKW(String KW) { adaptKnowledge(KW); processInformation(KW); ... << searching-specific code >> if (result = null) { this.move(KW) } InterfaceAgent InformationAgent UserAgent user DB userName receiveInstruction() monitor() ... The problems are not related to the architectural definition of the agents. It is also difficult to deal with the agent properties at the detailed design level. The transition of an architectural specification to a detailed object-oriented design is not straightforward. It is difficult to preserve the architectural separation of the agent concerns through the OO design and implementation. The object-oriented abstractions, such as classes, and the composition mechanisms are not able to modularize the agent properties. As the agent complexity increases, these properties tend to crosscut several classes that implement the agent’s basic functionality. For example, as you can see, in this example, these classes, on the left side, implement the basic functionality of three agent types. The methods implement the basic services of the agent types. These classes, on the right side, implement the collaboration concern. The introduction of the agent properties into the system leads to the problem of crosscutting concerns. Each agent concern cannot be modularized in a single class. For example, the learning concern crosscut the agent’s basic functionality and the collaboration concerns; even we try to modularize the learning strategies into separate classes, new learning-specific methods and attributes need to be introduced to the agent’s basic classes to connect them with the learning components. In addition, the problem of crosscutting concerns is not limited to the class-level modularity, the introduction of the agent properties to the system also impacts the method-level modularity. The implementation of the agent properties also crosscuts several methods, which implement the agent’s basic functionality and other agent properties. For example, the information agent has the basic function of searching for information based on some keywords. Note that the implementation of the search algorithm is intermingled with calls to the components that implement the agent properties, such as adaptation, learning, and mobility. The agent’s basic functionality should not be mixed with the implementation of the agent properties because these properties are not part of the agent’s basic functionality. The presence of crosscutting concerns makes it difficult to reuse and maintain the basic services of the agent and the implementation of the agent properties. getUser() checkPreference() Caller Answerer search(Keyword) search(Keywords) caller answerer receiveRequest() sendResponse() ... Plan1 Plan2 sendRequest() receiveResponse() ... action1() action2() action3() ... action1() action2() ... Software Engineering Lab (LES) – PUC-Rio

55 The Proposed Solution software architecture Architectural Method
detailed design Pattern Language This research work proposes an aspect-oriented approach for developing multi-agent systems. The hypothesis is that the use of aspects through the different development phases supports improved separation of MAS concerns and, as a consequence, leads to more reusable and maintainable agent-based systems. The approach is composed of: an architectural method for guiding the development of heterogeneous agent architectures a pattern language to document aspect-oriented solutions for the detailed design of multi-agent systems an aspect-oriented framework that follows the architectural solution and the design patterns Implementation Framework implementation Software Engineering Lab (LES) – PUC-Rio

56 The Architectural Method
Step 1: define the agent kernel Kernel Belief Goal Plan Agent name goals plans new() addBelief() setGoal() executePlan() ... - In the first step, the core of the agent is defined. Its kernel is decomposed in terms of goals, beliefs, plans and so forth. Garcia, A., Kulesza, U., Lucena, C. Aspectizing Multi-Agent Systems: From Architecture to Implementation. “Software Engineering for Multi-Agent Systems III”, Springer LNCS, State-of-the-Art Survey, December (prelo) Software Engineering Lab (LES) – PUC-Rio

57 The Architectural Method (cont’d)
Step 2: Define the agenthood properties Goal Creation Autonomy Execution Autonomy Message Reception Kernel Message Sending Belief Goal Interaction Plan Adaptation Agent (2nd Step: Propriedades Mínimas) The architecture is composed of a central component and aspectual components. In the 2nd step, the agenthood properties are modularized as architectural aspects. Each component crosscuts or affects the kernel and other aspectual components. For example, the adaptation aspect crosscuts not only the Kernel, but also the other architectural aspects, such as the Interaction aspectual component. Note that the aspect-oriented architecture is flexible enough to support different architectural compositions. name goals plans new() addBelief() setGoal() executePlan() ... Knowledge Adaptation Legend: aspectual component crosscutting interface Software Engineering Lab (LES) – PUC-Rio normal interface

58 The Architectural Method (cont’d)
Step 3: define the agent types Kernel InterfaceAgent receiveInstruction() monitor() memorize() ... InformationAgent search(Keyword) search(Keywords) search(Sentences) UserAgent getUser() checkPreference() Agent name beliefs goals plans addBelief() addGoal() executePlan() Software Engineering Lab (LES) – PUC-Rio

59 The Architectural Method (cont’d)
Step 4: define the additional properties Kernel Information Gathering Learning InterfaceAgent receiveInstruction() monitor() memorize() ... InformationAgent search(Keyword) search(Keywords) search(Sentences) UserAgent getUser() checkPreference() Collaboration Protocol (4rd Step: Propriedades Opcionais) Legend: aspectual component crosscutting interface Software Engineering Lab (LES) – PUC-Rio normal interface

60 Additional Properties
The Pattern Language Agenthood Additional Properties Environment Adaptation Mobility incoming message absent knowledge new message new goal new event outgoing message Interaction Kernel Learning absent knowledge new event new message agent creation collaboration joining Autonomy Roles Legend: Crosscuts Software Engineering Lab (LES) – PUC-Rio

61 The Adaptation Pattern
The Adaptation concern Observes events Triggers the adaptation strategy Adapts the agent knowledge or behavior Problem: how to separate the adaptation concern from the other agency concerns? Software Engineering Lab (LES) – PUC-Rio

62 The Adaptation Pattern (cont’d)
Observable addAdapter() removeAdapter() notifyAdapters() Role Agent Beliefs Observer collaboratingAgents collaborationProtocol adapters addAdapter() removeAdapter() notifyAdapters() addAgent() goals plans adapters addAdapter() removeAdapter() notifyAdapters() addAgent() removeAgent() executePlan() ... name addAdapter() removeAdapter() notifyAdapters() Collaboration Adapter adapt() PrimitiveBeliefs CompositeBeliefs update() Chair Reviewer Kernel papers submissionDeadline reviewDeadline addAgent() removeAgent() chair toReviewPapers reviewDeadline fillForm() updateForm() getChairName() MyPaper new() coauthors keywords publisher status Legend: Adaptation Concern Software Engineering Lab (LES) – PUC-Rio

63 The Adaptation Pattern (cont’d)
Solution Behavior Adapation adapters adaptBelief() findPlan() adaptSpecificBelief() findSpecificPlan() Agent Belief knowledge elements observed Aspect newGoal_() failedPlan_() planFinal_() changedBelief_() newMsg_() Knowledge Adaptation executePlan() Plan setGoal() Adapter adapt() Legend: _beforeAdvice afterAdvice_ _aroundAdvice_ Software Engineering Lab (LES) – PUC-Rio

64 Method Evaluation 4 qualitative studies and 1 quantitative study
3 prototypes in different application domains Portalware URL: ExpertCommittee URL: Aspect-oriented metrics suite Cohesion, coupling, size, separation of concerns 1. Sant'Anna, C., Garcia, A., Kulesza, U., Lucena, C., Staa, A. Design Patterns as Aspects: A Quantitative Assessment. Proceedings of the SBES’04, Brasília, Brazil, October 2004. 2. Garcia, A. et al. Separation of Concerns in Multi-Agent Systems: An Empirical Study. In: "Software Engineering for Multi-Agent Systems II", Springer-Verlag, LNCS 2940, State-of-the-Art Survey, January 2004, pp 3. Sant’Anna, C., Garcia, A., Chavez, C., Lucena, C., Staa, A. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. Proceedings of the SBES’03, Manaus, Brazil, October 2003. 4. Garcia, A., Chavez, C., Torres, V., Lucena, C. Engineering Multi-Agent Systems with Patterns and Aspects. Journal of the Brazilian Computer Society, SBC, Number 1, Volume 8, July 2002, pp Software Engineering Lab (LES) – PUC-Rio

65 Ongoing Research on Aspect-Oriented Agents
The generative approach More experimentation Refinement of patterns (ex: learning and mobility) Software Engineering Lab (LES) – PUC-Rio

66 Technology Evaluation
Trading Agent Competition The Trading Agent Competition (TAC) is an international forum designed to promote and encourage high quality research into the trading agent problem. The scenarios TAC Classic - a "travel agent" scenario based on complex procurement on multiple simultaneous auctions TAC SCM - a PC manufacturer scenario based on sourcing of components, manufacturing of PC's and sales to customers The TAC 2004 is the fifth event (Classic). The TAC research community: USA, Canada, Mexico, Brazil, France, UK, Sweden, Netherlands, Germany, Turkey, Israel, Macau, China, Japan, Australia, etc. Software Engineering Lab (LES) – PUC-Rio

67 TAC Classic Software Engineering Lab (LES) – PUC-Rio

68 TAC – Trading Agent Competition
Final Scores for TAC CLASSIC (2004). Position Agent Affiliation Average Score Games Played 1 whitebear04 Cornell University, USA. 35 2 Walverine University of Michigan, USA 3 LearnAgents PUC-Rio, Brazil. 4 SICS02 SICS, Sweden. 5 NNN Hebrew University, Israel. 6 UMTac-04 University of Utrecht, Netherlands. 7 The Chinese University of Hong Kong, China. 8 RoxyBot Brown University, USA. Software Engineering Lab (LES) – PUC-Rio

69 LearnAgents – A Multi-Agent System for the TAC Classic
Flight, Hotel, and Ticket Sensors Flight and Hotel Price Predictor Allocator Master + Allocator Slaves Corporate Knowledge Base Monitor Agent Flight, Hotel, and Ticket Negotiators Ordering Agents (Flight & Hotels, Tickets) Software Engineering Lab (LES) – PUC-Rio

70 LearnAgents – A Multi-Agent System for the TAC Classic
CPU 1 Flight, Hotel, Ticket Sensors (3) Update Prices in the Knowledge Base Filter the events from the environment Flight and Hotel Price Predictor (2) Flight: Maximum Likelihood Hotel: Moving Average Allocator Master (1) Calculates 50 allocations per minute Integer Programming Ordering Agent (2) Decide which allocation to use, and decides the next strategy. Flight, Hotel and Ticket Negotiators (28) Negotiates based on the strategy defined by the Ordering Agent Hotel: MiniMax, Neural Network, Temporal Difference Learning, LMS Learning CPU 2 Monitor Agent (1) Stores important data from each agent Monitor the Performance of each Agent and the Agency CPU 3 Allocator Slave (2) Calculates Ticket Allocation Calculates High Price Integer Programming Software Engineering Lab (LES) – PUC-Rio

71 Monitor the Performance of each Agent
Monitor the Performance of the Agency Parameters of the Agents Tuning Software Engineering Lab (LES) – PUC-Rio

72 Some Future Directions at LES
The generative approach Law governing in Multi-agent systems Architectures Component-based ASF Framework (MAS-ML-based) Tool support Case study development Software Engineering Lab (LES) – PUC-Rio

73 Technology Transfer: MindsatWork Ltda.
Agent-Based WebClipper (instance of a Multi-Agent based Framework) A Multi-Agent Based Architecture for the Development of Control and Acquisition Systems (Petrobras, Biogenie) Software Engineering Lab (LES) – PUC-Rio

74 Technology Transfer: Modulo Security Solutions S.A.
A Multi-Agent System for Monitoring News about Information Security An Agent-Based Remote Analysis of the Vulnerability of a Computer System. Software Engineering Lab (LES) – PUC-Rio

75 Development and adoption of agent technology
Conclusions Software Everywhere Development and adoption of agent technology We are in the infancy of SELMAS Software Engineering Lab (LES) – PUC-Rio

76 References    TAO Conceptual Framework ANote
V.T. Silva, A. Brandão, C. Chavez, C. Lucena, P.S.C. Alencar. Taming Agents and Objects in Software Engineering. In: A. Garcia, et al. (eds.) Software Engineering for Large-Scale Multi-Agent Systems. Lecture Notes in Computer Science, LNCS 2603, 2004, pp ANote R. Choren, C. Lucena. Modeling Multi-agent Systems with ANote. Journal on Software and Systems Modeling, 2004. R. Choren, C. Lucena. Agent-Oriented Modeling Using ANote. Proceedings of the 3rd International Workshop on Software Engineering for Large-Scale Multi-Agent Systems, SELMAS, 2004, pp Software Engineering Lab (LES) – PUC-Rio

77 References (cont’d)     MAS-ML
V.T. Silva, C.J.P. Lucena. From a Conceptual Framework to a Multi-Agent System Modeling Language. Journal of Autonomous Agents and Multi-Agent Systems, 9(1/2), 2004, pp V. Silva, R. Choren, C. Lucena. Using the MAS-ML to Model a Multi-Agent System. In: C. Lucena et al. (eds.) Software Engineering for Multi-Agent Systems II. Lecture Notes in Computer Science, LNCS 2940, 2004, pp The Aspect-Oriented Architectural Method A. Garcia, C. Lucena, D. Cowan. Agents in Object-Oriented Software Engineering. Software: Practice and Experience, Elsevier, 2004, pp A. Garcia, et al. An Aspect-Based Approach for Developing Multi-Agent Object-Oriented Systems. Proceedings of the 15th Brazilian Symposium on Software Engineering, SBES, 2001, pp Software Engineering Lab (LES) – PUC-Rio

78 References (cont’d)    The Aspect-Oriented Agent Architecture
A. Garcia, U. Kulesza, C. Lucena. Separation of Concerns in Open Multi-Agent Systems: An Architectural Approach. Proceedings of the 3rd International Workshop on Software Engineering for Large-Scale Multi-Agent Systems, SELMAS, 2004, pp Case Studies K. Silva, R. Choren, C. Lucena. Applying A Note to modeling Multi Agent Systems - A Case Study in E-Business. Proceedings of the IASTED International Conference on Software Engineering, SE, 2004, pp F. Melo, et al. Deploying Agents with the CORBA Component Model. In: W. Emmerich, A.L. Wolf (eds.) Component Deployment. Lecture Notes in Computer Science, LNCS 3083, 2004, pp Software Engineering Lab (LES) – PUC-Rio

79 References (cont’d)    Case Studies (cont’d)
V. Silva, R. Choren, C. Lucena. A UML Based Approach for Modeling and implementing Multi-Agent Systems. Proceedings of the 3rd International Conference on Autonomous Agents and Multi-Agent Systems, AAMAS, 2004. A. Garcia, et al. Engineering Multi-Agent Systems with Aspects and Patterns. Journal of the Brazilian Computer Society, Special Issue on Software Engineering and Databases, 8(1), 2002, pp A. Garcia, et al. Separation of Concerns in Multi-Agent Systems: An Empirical Study. In: C. Lucena, et al. (eds.) Software Engineering for Multi-Agent Systems II. Lecture Notes in Computer Science, LNCS 2940, 2004, pp Software Engineering Lab (LES) – PUC-Rio

80 References (cont’d) TAC  
Jose Alberto R. P. Sardinha, Ruy L. Milidiú, Carlos J. P. Lucena, Patrick M. Paranhos, Pedro Cunha. LearnAgents - A multi-agent system for the TAC Classic. Poster Session at AAMAS' Trading Agent Competition, New York, NY, July 2004. Jose Alberto R. P. Sardinha, Alessandro F. Garcia, Carlos J. P. Lucena, Ruy L. Milidiú. On the Incorporation of Learning in Open Multi-Agent Systems: A Systematic Approach. Sixth International Bi-Conference Workshop on Agent Oriented Information Systems(AOIS-2004) at CAiSE 2004, Riga, Latvia, Jun (to appear) Software Engineering Lab (LES) – PUC-Rio

81 Prof. Carlos José Pereira de Lucena lucena@inf.puc-rio.br
Thank You Prof. Carlos José Pereira de Lucena Software Engineering Lab (LES) Software Engineering Lab (LES) – PUC-Rio


Download ppt "Ongoing Research on Software Engineering for Multi-Agent Systems"

Similar presentations


Ads by Google