Title: Extending Rational Rose to support MAS design in UML
1Extending Rational Rose to support MAS design in
UML
presented by Renato Levy
- Intelligent Automation Inc.
- 2 Research Place, Suite 202
- Rockville, MD 20850
- http//www.i-a-i.com
2Outline
- Introduction to IAI and its software tools
- Three-tier agent architecture
- Cybele
- Design of MAS using DIVA
- Problems and pitfalls
3Expertise
- Multi-agent Systems Design, Development and
Simulation - Distributed Computing
- Scheduling and Logistics
- Agent-based Distributed Control
4Software tools
- Cybele? Agent Infrastructure for distributed
computing and inter-agent communication - DIVA A case tool with design document editing,
online repository, runtime execution support
service, verification and Cybele code generation
5Three Tier Architecture of IAI Agents
1- Role Layer Describes the syntax and
semantics of the roles this agent can perform in
this application.
2- Adapter Objects Makes the necessary
translation between domain independent semantic
of the role layer to the passive domain object
expertise. 3- Domain Layer Represents the
information content of an agent. Holds the domain
expertise of the agent. Layer were existent
legacy software can be easily reused.
6An Example of Role Interaction
Dutch Auction Art Buyer
English Auction Art Buyer
English Auction Car Buyer
Buyer
Buyer
Buyer
Adapter
Adapter
Adapter
Buying Art
Buying Art
Buying Car
7Cybele? An Agent Infrastructure
- Provides location independent communication among
agents with efficient flexible, dynamic
multicasting - Provides services for creating, migrating and
terminating agents at run time - Supports multi-threaded and shared-threaded
- Provides an activity model where an agent can
work on multiple tasks concurrently - Emphasis is on high-performance, scalability,
flexibility and ease of use - Current prototype of Cybele is implemented using
the object-oriented paradigm with a Java API
8Cybele? Architecture Guidelines
- Cybele basics Enforcement of the
Activity-oriented programming interfaces or AOPI. - Portability of users code User-written agent
code runs on any Cybele environment in which the
needed services are available - Reusability of users code Users code are
re-usable even if services are modified - Plug n play service Encourage vendors to plug
whatever service they desire into the Cybele to
suite a particular platform - Provision for addition of new services Provide
means for agent developers to add and access
supplemental services without affecting the
reusability and portability
9Cybele? Architecture
Basic Service Layer
Fundamental Service Layer
Cybele Kernel Supporting Three-tier
architecture And AOPI
Distributed, Interactive Computing Infrastructure
(DICI)
Supplementary Service Layer
10DIVA
- A design tool for agent based distributed system
- Use an extension of UML as means for system
description - Integrated with the industry leader Rational Rose
98i/2000e - Automatic code generation
- Maximize interaction and protocol reusability
- Automatically generate verification model from
the same design document
11DIVA and Rose
12Multi-agent System Design Entities
- Physical entities of the System (MODEL)
- Agents
- Non-agent entities (such as databases, legacy
classes) - Protocols
- Roles
13Multi-agent System Design Diagrams
Agents X MODEL -gt Deployment Diagram Agents X
Hosts (distribution) -gt Deployment Diagram Agents
X non-agent -gt Class Diagrams Agents X Protocols
-gt Class Diagram Protocols X Roles -gt Class
Diagram
14Multi-agent System Design Protocols
Protocols are defined as the description of a
relation between two or more agents of the
system. Any interaction between two agents are
subject to a protocol ruling. The agents that
play a part on the protocol perform according
with the roles described on this protocol. A
protocol is described by a class diagram which
depicts its roles and by a set of interaction
diagrams which show the details of the exchange
of information between such roles. In Rational
Rose, protocols were created using stereotypes.
15Multi-agent System Design Agents X Roles
In order to play a role on a protocol an agent
has to adhere to an interface publicized by the
role. The interface required by the roles is
automatically extracted by the DIVA case
tool. The agent implements the interface by means
of delegation to non-agent object that conforms
with the interface. (adapter objects)
16Multi-agent System Design Role Classes
Roles are entities contained by protocols, that
define the syntax of a protocol player. Agents
can play different roles on different protocols
or even more than one role on the same protocol
instance
17Role Design State Diagram
A Role is defined by an enhanced state machine
diagram, in which the information about the guard
conditions and actions are detailed enough to
extract the conversation syntax.
18Role Reusability
The correct extraction of the syntax of a
conversation from the semantics and context that
they carry is fundamental to provide role
reusability across domains.
19DIVA Interaction Protocol Verification
State Diagrams Of Roles and Sequence Diagrams of
Interactions
RoseScript, Java Bean/COM Server
Role and Adaptor Objects in Java
PROMELA Translator
Concurrent Processes in PROMELA Script
SPIN Tool
Verified and Re-usable Roles and Protocols
20Importing Protocols/Roles
DIVAs repository allows validated protocols and
roles to be shared and reused on several domains.
21Rose and UML pitfalls
- Rose is rather inconsistent on the way it can be
extended by a third-party add-in. A variety of
different techniques are needed to interface with
Rose in order to accomplish the most simple
tasks. (i.e. Rosescript, COM, ActiveX, Java
beans, .) - Despite all the methods to interface with Rose
there was no way to enhance its graphical output,
forcing us to recreate some of the graphics on a
separate child window. - UML, as implemented in Rose, leaves too much
room for free-form notes. In order to
describe a complex system with less ambiguity,
richer and more formal representation is needed.