Home
        JiVE: JAFMAS integrated Visual Environment
         Contents
1.            Conversation Editing Canvas      Output  Conversation    j    t         Initial    Initial    Delete Conversation  Add State  Request Conversation Edit Control    Final    Final    iii    Tool Bar  status Bar Popup Menu    Figure 3 4   Conversation Design Window    These GUIs are comprised of the following basic items     Menu Bar   The menu bar allows the user to access any of the commands applicable to this  window at any time  The items available on the menus are shown in Table 3 1    Tool Bar   The Tool bar allows the user to select from a subset of the commands    Status Bar   The status bar shows the users what is going on in the system  The status bar  includes  messages about what the user should do next when they select a specific command   error messages from the server  and information on what editing has taken place at this client    and other clients     24    Menu Items in Agent Design Window Menu Items in Conversation Design Window      File Menu   Close Menu  o Save Project o Close Window  o Exit   Edit Menu    Edit Menu o Add Conversation  o Add Type o Delete Conversation  o Add Subscribe o Add State  o Add Attribute o Delete State  o Add Message o Mark State as Initial  o Remove Type o Unmark State as Initial  o Remove Subscribe o Mark State as Final  o Remove Attribute o Unmark State as Final  o Remove Message o Add Conversation Rule    Edit Control Menu o Delete Conversation Rule  o Request Agent Edit Control o Edit Conversation Rule  o Relinqui
2.       Required Resources  Hew        Ca     ooo    conca    Waning Applet Window 00000000       4 4  We type in the name of the agent      Customer     The agent is of type    Customer      The attributes that this agent has are classified  as    Customer    attributes  The agent denotes  the intent to subscribe publish to the only  subject available  which is    Factory     We also  specify the type of resource this agent requires  as    Logistics     This means that this agent will  look for agents the have the attribute of     Logistics     After specifying each of the  properties for the agent we select    Okay     The     Add Agent Request is submitted to the server    and we see a message in the status bar    4     indicating that the agent was added to the design  and the agent appears on the Agent Design  Panel    We repeat this process for the two other agents     Logistics    and    Plant     Figure 4 2 shows the  three agents  as placed in the Supply Chain design  Agents can be dragged around the design  window and placed where desired    Each agent  once created  has a set of conversations associated with it  which must be added to  the design  Opening the Conversation Editor for that agent allows for the design and editing of    the conversations     4 4 Designing the Conversations    The Conversation Editor allows for the design and editing of the conversations for a particular       fas JAFMAS integrated   isual Environment  JWE    Conversation Design Window fo
3.       m OK   Cancel  This window also indicates to the user those 2d _ Cancel    subscription publication channels that were ENEE ENET A T    Figure 4 9   Such That Property Design       intended to be used  Additionally on the  Conversation Rule Editor  the buttons labeled     New    allow for the addition of new messages to  the system    The creation of the conversations continues until the entire set of conversations  states and  conversation rules have been specified    When we have designed the entire project  we are ready to check our conversations for errors    and then generate the source code for our project     4 6 Analyzing Conversations and Generating Code    The analysis of the conversations is as easy as making a selection on the menu  During analysis   no changes can be made to the design  In addition  the analysis can take some time depending  on the intricacies of the design and the processing power of the machine that is used as the  server  When the results are returned an alert will be provided concerning any problems in the    design  In our Supply Chain example  we have not marked the Initial state of the conversation    47       AnswerFormLargeTeam    as Final as well  This    The following errors were found in your conversations        causes deadlock conditions to appear in the Your conversations are not live     There are deadlock conditions in the agent conversations   The deadlocks are encountered when the system is in the following states  2 z   
4.      Deadlock  1      analysis  as shown 1n Figure 4  l 0  We then fix A token is in  State Startin Agent  Plantin Conversation  AnswerFormLargeTeam  A token is in  State Start in Agent  Plant in Conversation  AnswerFormSmallTeam  7 er Atoken is in  State Start in Agent  Plant in Conversation  KickOffexecution  the error marking the Initial State of Conversation Rule  Customer CustomerConversation cc6 has received an enabling messa  Conversation Rule  Logistics LogExecNet len5 has received an enabling message   Conversation Rule  Logistics LagExecNetlen8 has received an enabling message   c 9 i Conversation Rule  Logistics LogExecNetlen11 has received an enabling message   AnswerFormLargeTeam as Final as well  And The Conversation  CustomerConversation has reached a final state  The Conversation  LogExecNet has reached a final state     e    e The Conversation  FormLargeTeam has reached a final state  when the analysis 1S run again 1t returns a The Conversation  FormSmallTeam has reached a final state  The Conversation  KickOffexecution has reached a final state      Deadlock  2                    message stating that are conversations are ready   tre eet tintin caninin inaintea  Okay  to go  which means we can go ahead and jramgamewnes       generate the source code     Figure 4 10   Analysis Results    The generation of the source code requires a  click on the appropriate menu  and if successful  the files are stored on the server  The    automatically generated source code
5.      The conversation rule sends a message before completion   and this message is sent to the    Customer    agent with a message type of    Reject     Clicking     Okay    submits this conversation rule to the server   and notification of the success of the operation is  Logistics     shown in the status bar    In addition  the len6 conversation rule has a     suchThat    method specified  This means that the  specified method s  must return true before the    conversation rule can continue  If there are multiple    methods specified  they are evaluated using a Boolean       And function  Figure 4 9 shows the editor for the  Figure 4 8     Specification of Message    suchThat    methods  For each method that we would  Sender Recipient  like to add to the conversation we type it in the text    box on the top of the dialog and click add  In the case    46    of len6 we have added the method    Edit methods for    suchThat          cannotRankContractors     We are also able to         remove any methods that we do not want by  selecting them in the list on the bottom  and        clicking remove   Add Remove  In the Conversation Rule Editor  Figure 4 7    Remove      several buttons require additional description  cannotRankContractors       The button labeled    Subject  opens a  Subscription Publication Information window     which gives visibility of the relationships       between each agent and each subject  to assist in    selecting the Sender and Addressee properties    
6.     1 1 4 JAFMAS    The Java based Framework for Multi Agent Systems  JAFMAS   Chauhan 1997  provides the  basis for JIVE and resulting multi agent system design  JAFMAS is a methodology and  architecture for the design and implementation of multi agent systems in Java  It focuses on  communication  agent interaction  and multi agent system coherency and coordination    JiVE enhances the use of JAFMAS by providing a visual environment for the design of the  agents and their communications  It removes the difficult and time consuming task of manually  writing code to support communication between agents in a multi agent system  Furthermore   JiVE guides the designer through the JAFMAS methodology and automates the analysis of the    conversation model before generating source code in JAFMAS format     1 2 Objective    JiVE meets the following objectives   e Collaborative support for multiple  distributed users   e A graphical interface for the design and visualization of multi agent systems     e Automated design validation and error checking for multi agent system designs     2    e Generation of usable software code for the deployment of multi agent systems    In addition to those main objectives  other aspects are considered  The JiVE architecture is a  client server application allowing multiple users the ability to login to a design session  The use  of the Java    programming language and the Java Foundation Classes in the development of    JiVE provides platform indepen
7.     Brink 1996  R  S  Brink     A Petri Net Design  Simulation  and Verification Tool     MS Thesis   Department of Computer Engineering  Rochester Institute of Technology  September  1996    Available at http   www csh rit edu  rick thesis thesis  html     Chauhan 1997  D  Chauhan     JAFMAS  A Java Based Agent Framework for Multi Agent  Systems Development and Implementation     Masters Thesis  ECECS Department   University of Cincinnati  July 16  1997   Available at  http   www ececs uc edu  abaker JAFMAS index html     58     Chen 1998 Q  Chen     JSIM  A collaborative Environment For Web based Control System  Design     Masters Thesis  ECECS Department  University of Cincinnati  March 1  1998     Cost et al  1999  R  S  Cost  Y  Chen  T  Finin  Y  Labrou and Y  Peng     Modeling Agent  Conversations with Colored Petri Nets     Workshop on Specifying and Implementing  Conversation Policies of the Third Annual Conference on Autonomous Agents  Seattle  WA   May 1  1999  59 66     David and Kraus 2000  E  David and S  Kraus     Agents for Information Broadcasting      Intelligent Agents VI  LNAI Volume 1757   Eds  N  R  Jennings and Y  Lesperance   Springer Verlag  Berlin  Germany  2000  91 105     d   Inverno  Kinny and Luck 1998  M  d   Inverno  D  Kinny and M  Luck     Interaction Protocols  in Agentis     Proceedings of the Third International Conference on Multi Agent Systems   Paris  France  July 3 7  1998  112 119     Ehrlich 1999  K  Ehrlich     Chapter 1  Designing 
8.     e A message is received that enables this conversation rule  meaning it has a specific message  type and has been received from a specified agent or subscription publication channel    e The doBefore method is executed    e The status of all methods specified for the suchThat property is verified as true    e The doAfter method is executed    e  lt A specified message is sent with a specific message type to a specified recipient  either an  agent or a subscription publication channel    Not every item in the conversation rule   s order of execution needs to be filled in for any given    conversation rule     A 4 4 1 Adding and Editing Conversation Rules    To add a conversation rule in the Conversation Design Window  select the Rule button  from the toolbar or    Add Conversation Rule    from the    Edit    menu  click on the starting state of  the conversation rule  then click on the ending state of the conversation rule  This will bring up    the Conversation Rule Editing Window  as shown in Figure A 9  In this window  the properties    A12    desired for this conversation rule can be specified  First  fill in the name of the conversation    rule  noting that the name must be unique for that conversation     From the pull down menu  select the  agent or subscription channel  from  which a received message comes   and specify the received Message  Type  in order to enable this  conversation rule  If these  properties are left out then the  conversation rule will automati
9.     is    a final state  and    State     and    State3    are neither an initial nor a final state  This conversation    21    has four conversation rules     ConvRulel           ConvRule2     etc     ConvRulel    for example points  from    Statel    to    State2     this denotes that if the conversation is in    Statel    and the conditions  for       ConvRulel    are met  then the messages and or computations associated with    ConvRulel     are executed and    Conversation     would transition to    State2     If the user desired more  information on any conversation rule  they can expand that rule and view all of its properties    Figure 3 3 shows JiVE   s main graphical user interface  GUI  and Figure 3 4 shows the  Conversation Design Window  The use of each of these design windows 1s described as a part    of the example given in Chapter 4  The features of these windows are described here     2     fea JAFMAS integrated Visual Environment  JYE        File Edit Edit Control Tools Help    neta Editing Canvas    Tool Bar    ith    ribute    F    ribute    Delete Agent  Agent Properties  ent    Request Edit Control  of Agent Relinquish Edit Control  Status Bar    ssaqe    Mm    Popup Menu    mac     25  LA   T       IYE initialized    pe trpel added by System  subject Subject  added by System  subject Subject  added by System    DSC       Figure 3 3     Multi Agent System Design Window    23    fea JAFMAS integrated   isual Environment  JYE    Conversation Design Window 
10.    generated by JiVE and even automatically deployed     5 3 4 Better Project Support    For simplicity  the current design limits the number of actively edited projects to one  In order  to allow multiple projects JIVE would need to maintain and control multiple instances of the  JiVE Server  In addition  management of the communication between the clients and the  multiple servers would need to be added to the server  The ability for multiple projects to be    active in the system would increase the usability of JIVE  by allowing for an organization to    54    place the JiVE server in one central location and allow editing on any project at any time   Additionally  more comprehensive user management features would go along with this very  nicely  This could include interfaces for an administrator to manage the JiVE users and the  ability to limit user access to certain projects  as is done with the Administration client in    TeamRooms  Roseman and Greenberg 1996      5 3 9 Improved Analysis    The performance of the Petri net analysis  especially given certain constructs   c f Section 5 2   could be improved  This could be from the integration of better and more powerful Petri net  analysis tools  as well as supplementation by other formal methods  For example  the  incorporation of a Z specification language analysis could allow for the incorporate  programmatically controlled agent conversation while still allowing the analysis of the    coherency of the system as a who
11.    would be helpful  Examples of this can be found in  Inamdar 1997  and  Chen 1998   The  users could more effectively collaborate by drawing pictures and writing text directly to each  other  in tandem with their design efforts    A feature that would go hand in hand with this would be improved visibility of the users logged  in to the project  Inamdar 1997  Chen 1998   As it stands now  the users logged on to a JiVE    a2    project do not have access to a comprehensive list of who else is currently working on the  project    As previously mentioned  the addition of an Undo feature as found in Joint EMACS  Ressel   Nitssche Ruhland and Gunzenhauser 1996  would greatly enhance the usability of the  collaborative environment  allowing the users to back out mistakes and  or errors while keeping    the design consistent     5 3 2 Better Graphical Interface    There is additional room for improvement and enhancement in some of the graphical aspects of  JiVE  The look and feel of the agents and conversations on the Design Panels could be  improved in several ways  First  automatic positioning of the entities on the design panels  e g   agents  states  conversations  would enable the designer to more clearly see what is already in  the system without having to reposition the entities themselves    The conversation rules positioning are currently straight lines between the start and end state   The look and feel of the conversation design panel could be improved by better routing 
12.   2 6 9  agents Type   subject Subject  added by System  subject Subject  added by System      E          Attributes     and     Subjects      l Figure A 3   Multi Agent System Design Window  The agent   s    Type    is a  property that specifies the general agent type  For example  in a supply chain an agent might be    a    Customer    agent or a    Plant    agent  The Multi Agent System Design Window allows for the    addition and removal of these properties     A6    To add an agent    Type    property  push the    Tune Add An Agent Type Property  YP button on the toolbar or    Add Type    on  the    Edit    menu  A dialog box will open allowing HET ALE Customer    for the specification of the name of the Agent Type  clear   cancel    Wenning  Applet Window S    as in Figure A 4  When    Okay    is pressed  the  request to add a    Type    is sent to the JIVE Server  A  message will be shown in the status bar indicating Figure A 4   Add Property Window    the success or failure of the operation     ee E    To remove an agent    Type    property  push the button on the toolbar or    Remove  Type    on the    Edit    menu  A Remove Property window will appear where the    Type    to remove  is selected and the    Okay    button is pressed  This submits the request to the JIVE Server  A  message will appear in the status bar indicating the success or failure of the operation  The  agent   s    Attributes    are a set of one or more properties that classify what kinds of acti
13.   Galan  Baker 1999      First  each state in the automata is represented by a place in the Petri net  This is a one to  one mapping of states to places    For each conversation rule present in the state machine  a transition is added to the Petri net   Again  this is a one to one mapping of conversation rules to transitions    For each conversation rule  add an arc from the place corresponding to the beginning of the  conversation rule to the transition    Then add another arc from that transition to the place corresponding to the end of the  conversation rule    The transition must now be enabled by any and all messages  which trigger that conversation  rule   l e   the transition firing corresponds to the conversation rule receiving its required  utterance and executing   For each conversation rule do the following    Add a place for each utterance that will enable that conversation rule    Add an arc from the transition  corresponding to each utterance that will enable it to the  place s  in the previous step    If there are multiple utterances that will enable a conversation rule  then the arc  transition   and arc corresponding to that conversation rule will need to duplication    Add an arc from the place s  in the previous step to this conversation rules transition  or  duplicated transitions     For each final state in each conversation  a transition is added  For each final state  an arc is  added to its transition    For each conversation  one place is added  and a
14.   process is enhanced  not hindered  by the access control scheme utilized in JIVE  allowing for  the almost transparent sharing of a common design area  and the assurance of consistent project  data    JiVE   s design validation tool incorporates a unique approach to the verification of multi agent  system communication  The design of the multi agent system communications in the finite state    machine format and the algorithm for conversion to a Petri net allow the designer to analyze    56    their design before deployment  The accompanying direction for the resolution of design errors  assists the designer in locating and fixing problems found in the analysis    The design process is completed by allowing the generation of the source code in JAFMAS  format  allowing for the rapid deployment of the multi agent system  The ability to add  additional code to the system design and to subsequently regenerate the JiVE generated portion  of the system allows designers to iteratively design their multi agent system  This entire design  process was exhibited with the design of a multi agent system supply chain  which showed the  ease of use and versatile features    Overall  JIVE is shown as a full featured multi agent system design tool  which provides a quick    and easy bridge between design and implementation     57    Bibliography    Aknine and Aknine 1999  S  Aknine and H  Aknine     Contribution of a Multi agent  Cooperation Model in a Hospital Environment     Proceedings o
15.  2    The entry point to the JiVE Client  the    Chent  Communicator    applet  can be opened in a Java Enabled    web browser or by using the JDK    appletviewer  as of this writing  the major   E EE ER  Conversation Design  web browsers were just beginning to on Panel  support Java 2    The JiVE applet does nothing more than  Conversation  create the JiVE_Client object  The Rule    Editor       JiVE_Client object opens a login Window  object and creates a ClientCommunicator Figure 3 7   Client Architecture  object  Upon creation  the login window   must query the JiVE Server for the available current projects  it does this using a TCP IP Socket  on a predefined port  The user can then attempt to login to the system  either using an existing  project or by creating a new project  The login window attempts to validate the user by sending  a message via the ClientCommunicator to the JIVE Server  which validates the users name and    password  If the login is valid then the JiVE Client opens the Editor window  otherwise the user    can retry their login     31    The user is now looking at the main editing screen for the JiVE application  and can begin  constructing and or editing the multi agent system  Chapter 4 provides a comprehensive  description of the multi agent system design process    The ClientCommunicator class handles all of the communication between the client and server   for the client applet  In general the communication that transpires when the user makes any 
16.  3 3  Message NCS aioir a E A Eei 35  Taole ed   ist OFT VEC ASSES eran a E E A A2    1  Introduction    JiVE  JAFMAS integrated Visual Environment  allows a designer to draw a multi agent system  graphically  specify the necessary properties  check the design for correctness  and deploy their  application  This can all be done while working collaboratively with other designers located    elsewhere     1 1 Background    1 1 1 Agents    The definition of an agent is a topic that provides for much discussion  In general  an agent is a  piece of software  possibly with some intelligence  with a well defined role and a set of goals  it  can even be autonomous or pro active  Regardless of what properties the agent has  it will work  on the behalf of a user providing some service or data  The concept of software working on our  behalf is very appealing  More importantly is that the agent can work more efficiently than a  person and can take on tasks that would ordinarily not be appealing  These tasks can include    things that are highly repetitive  computationally intensive  or just plain mundane     1 1 2 Multi agent Systems    A multi agent system is a conglomeration of agents  which when acting together exhibit a  greater system level behavior  The designer programs this behavior in some cases and in other  cases this can be an emergent behavior  The system level behavior benefits from the individual  actions of the agents    Numerous multi agent systems have been deployed both
17.  Add Type       40    from the    Edit    menu or the menu bar  or we click on Type on the toolbar  This presents    us with a window  where we type the name of the property  Figure 4 3 shows the addition of a       Customer    type  We proceed to add the remaining types  peyer myp erren       Logistics    and    Plant     The    Attributes    are added in a    similar manner     Customer        Logistics           Paint     and    Transportation     We also add the    Subjects          Assembly        Hew Type Customer       Ca  Gear    enea  Waning Applet window 000000       that the agents can subscribe publish to  which in this case    is just one    Subject    called    Factory        Figure 4 3   Adding a Property    After adding the various properties  we can begin adding the agents  The three agents that the    Supply chain example has are     Customer        Logistics     and    Plant     There are several methods    by which we can add the agents  including selecting from the menu bar  from the toolbar or the    popup menu     To add the    Customer    agent we click on the s  gent toolbar button  and then click on the    location in the Agent Design Panel where we want the agent to be placed  The Agent property    window appears allowing us to specify the properties of the    Customer    agent  shown in Figure    Agent Properties Window  Editing Agenti X   Agent Name  Kustomer  Agent Type    Her      Customer       Attributes  New Customer    Logistics    Assembly 
18.  Add Type   Add Subscribe   Add Attribute   Add Message   Remove Type   Remove Subscribe  Remove Attribute  Remove Message   Get Subscription Info   Get Agent Properties  Edit Agent   Add Conversation  Delete Conversation  Move Conversation   Get Conversation Prop   Add State   Delete State   Move State   Mark State As Initial  Unmark State As Initial  Mark State As Final  Unmark State As Final  Add Conversation Rule  Delete Conversation Rule  Get Conversation Rule Prop   Edit Conversation Rule  Check Conversations  Get Agent Edit Control  Get Conversation Edit Control  Get Rule Edit Control  Give Agent Edit Control  Give Conversation Edit Control  Give Rule Edit Control  Refresh Data   Generate Code   Close Connection    Table 3 3   Message Types    Server Messages    Sent to One Client   Login Accepted   Login Not Accepted   Agent Not Added   Agent Not Deleted   Agent Not Moved   Type Not Added   Subscribe Not Added   Attribute Not Added   Message Not Added   Type Not Removed   Attribute Not Removed  Message Not Removed  Subscription Info  Returned  Subscription Info  Not Returned  Return Agent Properties   Agent Properties Not Returned  Agent Not Edited   Conversation Not Added  Conversation Not Deleted  Conversation Not Moved  Return Conversation Prop   Conversation Prop  Not Returned  State Not Added   State Not Deleted   State Not Moved   State Not Marked As Initial  State Not Unmarked As Initial  State Not Marked As Final  State Not Unmarked As Final  Conversation Rule
19.  IP Socket connection with    a potential client  Upon validating the client   s login data  the server puts the socket into an    index of active client sockets  See Figure 3 6     The mechanism that controls the communication between each client and the server  is an object    called SocketManager  Each client connects to the server through one of these SocketManager    objects  which is running as an independent thread and listens to the socket connection with the    client for a message  Upon receiving a message the socket manager passes the message to the    ServerCommunicator object for handling     The ServerCommunicator object   s tasks include    e Keeping track of the various clients that are connected to the system  via the socket    managers     e Registering new clients  as they log in     e De registering clients  as they log out  or if their connection gets broken     e Processing messages coming into the server and messages going out of the server     30    3 3 3 JIVE Client    The JiVE Client is written using the Java 2 Swing components  Swing is the name Sun has  given to a set of lightweight GUI components  This includes a lightweight version of many of  the Java 1 x GUI components    The JIVE Client is implemented as a series of windows  which are all descendant from a  JApplet  The Swing equivalent of an Applet object   Figure 3 7 illustrates this architecture  Not  shown in the figure are the various dialog  boxes used in the client  outlined in Table  3
20.  Not Added  Conversation Rule Not Deleted  Return Conversation Rule Prop   Conv  Rule Prop  Not Returned  Conversation Rule Not Edited  Request Agent Edit Control  Request Conv  Edit Control  Request Rule Edit Control  Code Not Generated    Server Messages   Sent to All Clients   Agent Added   Agent Deleted   Agent Moved   Type Added   Subscribe Added   Attribute Added   Message Added   Type Removed   Subscribe Removed  Attribute Removed   Message Removed   Agent Edited   Conversation Added  Conversation Deleted  Conversation Moved   State Added   State Deleted   State Moved   State Marked As Initial   State Unmarked As Initial  State Marked As Final   State Unmarked As Final  Conversation Rule Added  Conversation Rule Deleted  Conversation Rule Edited  Return Conversation Analysis  Relinquish Agent Edit Control  Relinquish Conv  Edit Control  Relinquish Rule Edit Control  Code Generated       There are  of course  various utility message types such as login messages  save messages  edit    control messages  code generation messages  and analysis messages  Table 3 3 also lists these     35    3 3 5 Agent Entity Representations    A group of objects that represent the entities in a multi agent system facilitates the handling of  editing and communication within JiVE  These objects are internal to the JiVE system but have  a one to one correspondence to the entities in the multi agent system design  The following are  represented in the system  Agents  Conversations  Conversati
21.  Project and Existing Project  which can be    toggled using the button in the lower right hand    Fes Login Window    corner of the window  The figure shows the            window in New Project mode   User Name  Alan    Password  ere    Project Name SupplyChain       Language Standard       project and select the agent communication    language  ACL  that the project will use  The   Okay   Clear   Exist  Project    waming  Applet Window OOOO O    A 4 1 1 New Project    To create a new project  type the name of the       name of the project can be any valid directory  name for the server file system  The    language     property of the project needs some more iene Eee VERE Oe   description    The language property refers to the Agent Communication Language  ACL  that the multi agent  system will use  Three possible ACLs can be specified for a multi agent system in JiVE  The  default or    Standard    language selection utilizes a subset of the JAFMAS Message class  This  means that the designer must specify the    Type    of each message and optionally may specify the     Intent    of a message  In addition to the    Standard    language option  there are pre defined agent  communication languages that are built into JIVE     KQML     and    FIPA ACL     These choices  preload a set of performatives into the set of available messages  These performatives conform  to the standard set of performatives of KQML  Labrou and Finin 1998  and FIPA ACL  FIPA  1997   For more informati
22.  Upon receiving a message from a    33    client  the message passes to the ServerCommunicator for handling  On the other end of the  communication channel  the client uses a similar object  ClientCommunicator to handle all  messages coming in from the server and going out to the server    All of the communications between the clients and server utilize the JiVE_Message class  The  JiVE_Message class allows for the storage of key value pairs that can be sent via the socket  i e   it implements the Java Serializable Interface  and extracted on the other end  The fields that are  included in each JiVE_Message are extracted in the    Communicator    objects on either end of the  communication channel    Table 3 3 outlines the different messages sent between the clients and the server  The clients  only communicate with the server  The server however can communicate with all of the clients   One set of server message types are sent only to the client who originally made the request   These generally are failure messages like    Agent Not Added     that would indicate to the client  who tried to add the agent why the request failed  or requests for information  Another set of  server message types are sent to all clients currently logged on to the project  These messages  are generally successful editing messages  which indicate to all users that there has been a    change to the design     34    Client Messages    to Server   Login   Save   Add Agent   Delete Agent   Move Agent  
23.  a message  This represents a subset of the  available fields in a JAFMAS Message  the user can optionally  manually specify additional  message fields by editing the generated source code  The    Standard    choice provides the  greatest flexibility    Besides the    Standard    choice there is the option to utilize one of the predefined agent  communication languages built into JIVE  which includes    KQML    or    ACL     The       KQML    and     ACL    language choices preload a set of performatives into the set of available messages  These  performatives conform to the standard set of performatives of KQML  Labrou and Finin 1998   and FIPA ACL  FIPA 1997   To support these Agent Communication Languages there are two  message classes included with JiVE that extend the original JAFMAS messaging class  These  classes  KOMLMessage and ACLMessage allow the user to manually fill in the remaining fields   i e  besides the performative  and then can be used in much the same way as the original    JAFMAS Message class     3 3 4 JiVE Communication    The communication between the clients and the server are TCP IP Socket connections  On the  server side  the Socket is originally opened in the JiVE_Server class  which passes it to the  ServerCommunicator who registers the client and creates a SocketManager object to listen for  any client communication  The SocketManager is a threaded object that allows the server to    listen to more than one socket  allowing for multiple clients 
24.  a web server  The web server  can serve the JiVE Client applet to  users who wish to log in to a JiVE  session on a JiVE Server  When a user  starts the applet  they will be given the  opportunity to log into the  JiVE_Server  The JiVE_Server  validates the user   s logon  which in  turn starts the main agent design  window  and gets the initial state of the    agent design  The user 1s now logged    JIVE Client JWE Client    on to the JiVE System  As multiple  clients log on to JiVE  the multi agent       system can be designed collaboratively    d distributedly  The JiVE_S  epee nee ore pe ane ee Figure 3 5   General JiVE Architecture    has full access to all of the Server   s file    29    Clients Clients    Figure 3 6   Server Architecture       systems so that  when prompted by a client  the  source code can be generated or the project file can  be saved for later use  Figure 3 5 illustrates this    architecture     3 3 2 JIVE Server    The JiVE Server is written as a Java application   The JiVE Server running on the web server listens  for any clients trying to connect to it  The JiVE  Server actually listens on two different ports for  two different types of client messages  First  there  is a LoginServer object  which responds to queries  by the various login clients  telling the clients what  projects are currently available on the server   The    client also has the option of creating a new    project   Second  the server listens to a port in order to make the TCP
25.  as being autonomous  goal  directed  reactive  or declaratively programmed  Others limit agents to the role of  representing a user or database      Huhns and Singh 1998     Given these disparities  it remains that an agent should provide a service to the user  working  toward some goal while representing the user   s interests    Linking these possibly intelligent and or autonomous agents together forms a conglomeration of  agents termed a multi agent system  This type of system is characterized by multiple  independent entities working towards a common goal  or solving a problem or set of problems     They interact within themselves and possibly with the environment and or outside entities     2 1 1 Specification of Conversations and Conversation rules    The cornerstone of a multi agent system 1s the communications  Conversations allow the agents  to interact and dictate the behavior of the system  The specification of the conversation rules is  an important aspect of the design and realization of multi agent systems  A graphical  representation usually provides the easiest description of agent conversations  The tendency is  to resort to a formal methods approach to specifying the conversations  The most common    means of representation are Petri nets or state machines     4    COOL  Barbuceanu and Fox 1995  presents an example of the specification of communications   where they use a finite state machine to represent each agent   s communication parameters   Chauhan fu
26.  can now be  generated    The generation of the source code requires selecting    Compile Code    from the    Tools    menu  and    if successful  the files are stored on the server  in the appropriate directory  c f  Section A 1 2      A 4 5 1 Tips for Designing a Multi Agent System using the Analysis tool    There are several aspects of designing a multi agent system using JiVE that will allow the   analysis tool to work more effectively    e Build the design incrementally  This will allow analysis checking as additional functionality  is added to the design  and it will allow the analysis tool to assist in creating a coherent  multi agent system design    e For conversations that may or may never be started according to the design  specify the  Initial state as a Final state also  In the absence of this  the analysis will flag a deadlock  condition    e Avoid using a single subscription publication message many different places in the design   This will tend to make the Petri net underlying the analysis grow very large  The result is an    analysis that will take a long time to complete     A 4 6 Collaboration    The collaborative features of the design environment are in many cases transparent to the user   That is  the user does not need to worry about edit control for the entities on which they are    working     Al5    The access control is applicable at several different levels  namely    e Agent Edit Control   e Conversation Edit Control   e Conversation Rule Edit Co
27.  changes to any of the entities in the design goes as follows  The GUI uses the    ClientCommunicator to send a message to the server  The JiVE_Server handles the editing    AboutDialog   This is a small dialog box that gives information about the program and its author  when  opened from the    About    menu selection    AddPropertyWindow   This dialog box is used for adding any of the basic agent properties to the system   such as  agent types  attributes and subjects  It is opened from the JiVE_Client window   AgentPropertiesWindow   This dialog box is used for editing the properties of a given agent  either upon  creation or for later editing  This is opened from the JiVE_Client window    ConversationPropertyEditor   This dialog is used for adding a conversation and for editing the name of the  conversation    ConversationRuleChooser     This dialog allows the user to indicate which conversation rule they are  attempting to select when it is ambiguous    EditMethodsWindow   This dialog box allows the user to specify the methods to be called by the suchThat  clause of a conversation rule  It is opened from the ConversationRuleEditor window    HelpWindow   This is a small dialog box that contains help text when the user selects a help button or menu  item  This window is opened from various locations in the system   InformationWindow   This dialog box displays a block of text to the user for informational purposes  and is  opened from various locations in the GUI    Message
28.  from the Supply Chain example is given in Appendix C     4 7 Collaboration    The collaborative features of the design environment are in many cases transparent to the user   That is  the user does not need to worry about edit control for the entities on which they are  working  This is a small description of a case where the user would deal with edit control   Collaboration only comes into play when more than one user is working on the same project at  the same time  As mentioned in Section 3 2 1  access control applies to several different entities  in the multi agent system design  i e  Agent  Conversation  Conversation Rule   For this  example in utilizing the collaboration feature we will reference a particular Agent  named     Customer       In this example  the first user to login to the system has the user name    Alan        Alan    is the user  who created the project  as well as the agent    Customer     When    Alan    created    Customer    that  user was automatically given edit control of the agent     Alan    had the ability to move that agent   edit that agent   s properties  or delete that agent if desired  The next user  named    User    logs into  the project that has already been started by    Alan     When    User    logs in  the current system will  be initialized and displayed on their client window     User    may want to move the agent       Customer    that was previously added to the design by    Alan     so    User    tries to move the agent     
29.  in Table A 1     Al    AboutDialog JiVE AgentRepresentation  AddProperty Window JiVE_Client CodeGenerator  AgentDesignPanel JiVE_Constants ConversationRepresentation  AgentPropertiesEditor JiVE_Message ConversationRuleRepresentation  AgentRepresentation LoginWindow JiVE_Constants  ClientCommunicator MessageEditor Window JiVE_Message  ConversationDesignPanel MessageRepresentation JiVE_Server  ConversationEditor RemovePropertyWindow   LoginServer  ConversationPropertyEditor StatePropertyEditor MessageRepresentation  ConversationRepresentation User PetriNetRepresentation  ConversationRuleChooser Images   gif PetriNetTranslator  ConversationRuleEditor PetriToolRepresentation  ConversationRuleRepresentation Repository  EditMethods Window ServerCommunicator  HelpWindow SocketManager  Information Window User   Users txt   index html   All files in PetriTool directory   The JiVE Jar file       Table A 1   List of JIVE Classes     A 1 2 File Structure    Figure A 1 shows the JiVE directory structure  The Installation Ditectory    JiVE distribution zip file will create this directory Hi wE   structure in the installation directory  when qa KRES   extracted  The installation directory contains a     images   directory with the complete set of javadoc generated Ee  documentation  docs   The directory containing all IE a   of the JIVE Source Code and class files is called E  JiVE and has a child directory that contains the Ee e  images used in the JIVE Client  The directory L Backups  co
30.  in academia and industry  ranging from  patient scheduling in a hospital  Aknine and Aknine 1999  to climate control of a building   Ygge and Akkermans 1997   in areas as varied as Information Broadcasting via the Internet   David and Kraus 2000  and supply chain integration  Nissen and Mehra 1999     The benefits of a multi agent system are many and in most cases can include flexibility     scalability  decentralization  and robustness     1 1 3 Multi agent System Design Tools    The complex nature of agents  and even more so  multi agent systems  suggests that additional  tools are required to assist in the design and implementation process  This is true for all but the  simplest of agents and systems  The tools that we call on to assist us range from the low level  frameworks to the higher level integrated development environments  Each level of abstraction  allows for a unique view into the construction and deployment of multi agent systems  They  each also provide a unique set of benefits to the system  The lower level frameworks provide a  designer assistance for a certain subset of design issues  for example handling communication or  agent mobility  The higher level tools provide an abstracted view of the multi agent system   allowing the designer to concentrate on the macro level behavior  leaving the lower level details  to the design tool  As is the case with JIVE  the higher level design tool can leverage a lower    level tool to provide a comprehensive solution 
31.  in the design     43    The conversation rules  displayed as an arrow between two states  specify the conditions needed    to transition between two states in a conversation as well as the result of that transition  To add    the conversation rules  after selecting    Add Conversation Rule    from the menu bar or    Rule   from the toolbar  we click on the starting state for the conversation rule followed by a click on  the ending state of the conversation rule  The conversation rule appears as a directed line  between the start state and the ending state  labeled with the conversation rules name  The  conversation rule editor window is shown  where we can specify the conversation rule   s    properties     4 5 Designing the Conversation Rules    Each conversation rule has a set of properties that defines the means by which the conversation    fas JAFMAS integrated Visual Environment  JYE    Conversation Design Window for agent  Logistics f    oO  x   Close Edit Edit Control    aConv  eae Jes LogExecMet TR mS Input Fo ss  Customer b Tell Messages a     Propose     Customer Logistics b p  mine nv  Logistics b Reject    Proposed nn   Accepti k   Customer b  Logistics b Proposed   State   gt Rejectt aT   gt  Logistics  soe F ET  State Logistics b Fropose      gt Reject      Logistics  Logistics b Accept    gt 5ati   Customer  b    Logistics Achiewe     gt F ail    Logistics  Satisfy    Customer  Fail    Customer    PE i Messages  neee erm nn   Propose      Accept         gt Rej
32.  in the system  We see two arrows going  out  to    Agent3    and    Agent4     and two coming in to the agent  from    Agent2    and    Agent4       With this information for each agent appearing on the Agent Editing screen  we can see the  interactions between the agents  but not overwhelming details about the substance of those    communications     A 4 3 Designing the Conversations    For each agent added  the agent   s conversations must be specified  The conversations for a  particular agent  including the states and conversation rules are added and edited from the    Conversation Design Window  as shown in Figure A 7  To bring up the Conversation Design    Window and edit an agent   s conversations  click the alts  button on the toolbar or on       Edit Conversation    from the    Edit    Menu     A9    EAJAFMAS integrated Yisual Environment  Ji  VE    Conversation Design Window    The Conversation Design    Window allows for the adding Conv         and editing of several entities    Conversation          Menu Bar Conversation Editing Canvas       First  there are the    conversations themselves        labeled rectangles  with a side Delete Conversation  Add State    bar on each side  There can be Request Conversation Edit Control             multiple conversations on a  mRule status Bar Popup Menu    Conversation Design Window           These conversations represent  the entire set of  communications for the    corresponding agent  1 e  the    Figure A 7   Conversatio
33.  interfaces for the design and development of a multi agent system  It  provides various graphical tools including project management  ontology management  agent  management  protocol management  and run time engines  AgentBuilder is Java based and its  communication language is KQML    The AgentBuilder agent model consists of agents that have beliefs  capabilities  commitments   intentions  and behavioral rules  Given an agent model   s initial state and external influences the  agent operates and communicates with the external world  which in turn modifies it   s states   Reticular 1999a   An interesting agent based system designed using AgentBuilder is a  prototype system for buying and selling power generation capacity  Reticular 1999b      2 3 2 ADE    Another commercial multi agent design tool is ADE  Agent Development Environment  by  Gensym  ADE is an Integrated Development Environment for Distributed Multi Agent  Applications  which is built on G2  an Object Oriented graphical environment  ADE provides a  graphical language called AdeGrafcet  an extension of the French Grafcet standard  which is  based on Petri net representations  for the specification of the agent   s behavior  ADE provides a  communication middleware  utilizing subject based addressing  ADE also has a simulation  environment for simulating the design before implementation  as well as a debugging    environment  Mehra and Nissen 1998      2 3 3 ZEUS    ZEUS 1s a toolkit for building distributed mul
34.  java  Follow the directions in the JAFMAS System Administration and Users Manual  Chauhan    1997   The only exception is when starting the agents themselves  as described next     A 5 3 Starting the Agents    Agents generated by JiVE use a slightly different mechanism for launching then those using the  original JAFMAS  This is because using JiVE generated agents relieves the user from having to  use the    CreateAgent    interfaces as specified in JAFMAS  In fact  JiVE allows the specification  of the agents to create at design time  The recommended method for deploying the application    is outlined here  specific applications may have different needs     A17    Each agent created with JIVE has a main method included such that it can be directly run the  agent from the command line  An agent called    Agent1    in the file called Agent1 java would be  compiled as above and executed with the following command in Windows    start java Agentl  Or in Unix    java Agentl  amp   Each agent in the JiVE generated system must be started using these commands in order to  deploy the multi agent system  It may be useful to create a batch file to start all agents in one  command  this would of course incorporate system specific constructs such as paths and    classpaths     A 6 References     Brink 1996  R  S  Brink     A Petri Net Design  Simulation  and Verification Tool     MS Thesis   Department of Computer Engineering  Rochester Institute of Technology  September  1996    Availab
35.  message handling protocol  KQML consists of three  layers  the content layer  the message layer  and the communication layer  The content layer  consists of the content of the message  The communication layer handles the lower level  communication parameters  The message layer consists of a performative  which conveys  information about the content of the message  as well as optional information to describe the    content language  Labrou and Finin 1998      FIPA ACL is another ACL with a format similar to that of KQML  ACL messages use a set of  parameters  the first representing the communicative act of the message  The additional  parameters specify items  to aid in message delivery  to assist in the interpretation of the content     and to allow the receiver to respond co operatively  FIPA 1997      2 2 JAFMAS    As the title of the software indicates  JiVE builds heavily on JAFMAS  Java Based Framework  for Multi Agent Systems   Chauhan 1997   JAFMAS provides a methodology and a framework  for designing multi agent system  JiVE uses the five step methodology provided by JAFMAS      Identify the Agents     Identify the Conversations     Identify the Conversation Rules     Analyze the Conversation Model     Implementation of Multi agent system   The JAFMAS software architecture provides a set of classes for the implementation of the multi   agent system  as proscribed by the methodology  These classes provide support for the sending  and processing of broadcast and direct
36.  of architecture and messaging  to that of JPECS  JiVE does improve upon access control issues of a collaborative programming  environment  JiVE provides a more fine grained view of access control entities in the system    and makes the access control more transparent  c f  Section 3 2 1   JIVE does not though    13    provide a full set of user communication tools  such as a whiteboard or a chat board and does no    user privilege control     2 4 4 2 JSIM    JSIM  Java Simulator  was built on JPECS  Inamdar 1997  and provides a collaborative tool for  the definition and simulation of control systems  JSIM provides a multi user communication  utility and a block diagram editor  There is also a conference management utility to allow  multiple design sessions to run concurrently  Chen 1998   JSIM  like JPECS  provides a basis    for the JiVE architecture and user control facilities     2 4 4 3 Joint EMACS    Joint EMACS is an EMACS style text editor that allows for the collaborative editing of  documents  It supports a high degree of fine grained mutual awareness  and has well developed  methodologies for handling concurrency control  Ressel  Nitssche Ruhland and Gunzenhauser  1996   In addition to the comprehensive handling of concurrency control  which JiVE also uses   Joint EMACS provides mechanisms for    Undo    operations  which could be a useful feature in a    tool such as JiVE     2 4 4 4 TeamRooms    TeamRooms is a collaboration tool that allows for collaboration eith
37.  practices of a user can adapt over time in response to a technology  In many aspects  this is the  opposite of what an application developer should desire  An application should leverage the  natural way that a user thinks about the work involved and design towards that end  enhancing    the user experience  not hindering it   2 4 1 2 Methodologies    11    Some methodologies for establishing the work practices involved in a groupware application are  ethnography  participatory design  and action research  Ehrlich 1999     Ethnography refers to the act of observing the end users of an application in action to evaluate  their work practices  This can involve watching their actions  interviewing and participation   The application of these findings can have very positive impacts on the application design   Participatory design allows the end users to be actively involved in the design process  Action  research also involves observing the end users of an application  but in an attempt to improve    the processes through the implementation of the technology     2 4 2 Architecture    Greenberg and Roseman discuss the merits of centralized vs  replicated architectures  Greenberg  and Roseman 1999   A centralized architecture is one that has a main application located on a  central server machine  Clients submit request to the server and display the results based on the  server   s Output  In this case  the server can handle all concurrency and synchronization locally   All client 
38. 48       User    receives a message in the status      a0T eit Renter x    bar  c f  Figure 3 3  back from the server    User User requests Edit Control of agent Customer    indicating that the move operation was  not successful because    User    does not  have edit control  At this point  if    User       wants to move the agent  they must       request the edit control of    Customer       They do  this by selecting Regest Edit Figure 4 11   Edit Control Request Dialog Box  Control of Agent    from the    Edit Control    menu on the menu bar and clicking on    Customer     or  selecting it from the popup menu   This request is sent via the Server and    Alan    sees a pop up  box as shown in Figure 4 11  saying the Edit Control of the agent    Customer    is requested by     User        Alan     can then select    Relinquish Edit Control    from the popup menu  or select it from  the    Edit Control    menu on the menu bar and click on the    Customer    agent  All users in the  system will see a message in their status bar  stating that edit control of    Customer    has been    relinquished     User    is now free to move the    Customer    agent  and upon moving it will    automatically receive edit control     4 8 Using the Design    To generate the source code for the multi agent system design  select    Compile Code    from the     Tools    menu on the menu bar  The source code is generated and placed in the project directory   see Appendix A 1 2   The source code ge
39. 6    4 7    4 8    Supply Chain   Project Initialization   Designing the Agents   Designing the Conversations   Designing the Conversation Rules   Analyzing Conversations and Generating Code  Collaboration    Using the Design    ll    13  13    15    17    17  17  17  18  18    19  19  20  26  28    29  29  30  31  33  36    38    39    39    39    40    42    44    47    48    49    4 9    Summary    5  Discussion and Future Work    Better Project Support    5 1 Summary   5 2 Discussion   5 3 Future Work and Enhancements  5 3 1 Improved Collaboration features  5 3 2 Better Graphical Interface  5 3 3 Improved Efficiency During Design  5 3 4  5 3 5 Improved Analysis  5 3 6 Improved ACL Support  5 3 7 Improvements in Agent Design   5 4 Summary   Bibliography    Appendix A   Users Manual    Appendix B   JiVE Source Code    Appendix C   Supply Chain Example Source Code    il    50    5I    5I    5I    52  52    a     53  54    E  E   E    55    56    o       Al    Bl    CI    List of Figures    Faure o aJiV 5 Agent Representa oine E 20  Figure 3 2   JIVE Agent Conversation Representation              ccccccccccccccscsssseseeeeeeeeeeeceeeeeeeeeeaaaags 21  Figure 3 3     Multi Agent System Design Window               cccccccccccececeeeeaeeseseeeseeseeeeeeeeeeeeeeaaaaeaes 23  Figure 3 4   Conversation Design Wind0w          ccccccccccsssssssseeseseeeececeeeeeeeeeeeeeasseaeeesesseseeeeeeeeeeees 24  Figure 3 5  Genetaljiy E ATDOT 15  E aoa naa 29  Paste S O   Server A Tc MIleC U E aa 
40. E EEE made iotetucennmeeys 30  Piste 327 2 C Heit Arent CULE ase wea annndstentniddw sige states a a 31  Piute 3 5   Object  RelatiOms tp saxasciacistocn ican E E tena neha aes dei asanse tua vesacamlana 37  Foue a toa VV 10 OWN aeaa ate eaten hea case EE E T A aw 39  Piste Aa   D CS1 Omi NGA OCIS EE a R 40  Figured  ys ACdInG a Proper Y noice E E 41  Piouite 4 4 ACen Propi asa a E E T E E S 41  Figure 4 5   Customer Agent s Conversation Design             ccccccccccccesessseecececeeeseaaeeseeceseeseaaeeeeees 42  Figure 4 6   Logistic Agent s Conversation Design               ccccccccccccececcueceeesssessesseseeescceeeesseananegs 44  Figure 4 7   LogExecNet Conversation Rule Design emacs enei e T 46  Figure 4 8     Specification of Message Sender Recipient               cccccccceececcccceeeceeaeeeeeceseeeeaaeeeeees 46  Figure 4 9   Such That Property Design          cc cc cccccccccccecesseseeeeceeeeeeeseeeeeeeeceeeessaaeesseeeeeeeeeauaaenees 47  Figure Alos Analysis  ReSUNSts2 ci   clus lecsthe cm E a ee eae  48  Figure 4 11   Edit Control Request Dialog BOX          c cc ccccccecesesceceeeceeeeeeceaeaeeeeeeeseseeeeeeeeeeeeeeaeaaags 49    List of Tables    Table 2 1   Comparison of JIVE with Exisiting Multi System Design Tools                cccccceeeeeee 10  Table al Liston di VE Menu emanen batecs het Selec dc et ates scuraeehea en iscts eddies 25  Table 3 2   List of Dialog Boxes and Their Functions              ccccccccccccccsseseeeececeeeeaaeeeeeceeeeeeaaeeenes 32  Table
41. Groupware Applications  A Work Centered  Design Approach     Computer Supported Co operative Work  Ed  M  Beaudouin Lafon   John Wiley  amp  Sons  West Sussex  England  1999  1 28     FIPA 1997  FIPA     Part 2  Agent Communication Language     FIPA 97 Specification   Foundation for Intelligent Physical Agents  Geneva  Switzerland  November 28  1997    Available at http   drogo cselt stet it fipa f7a12 zip     Galan and Baker 1999  A  Galan and A  D  Baker     Multi Agent Communication in JAFMAS      Workshop on Specifying and Implementing Conversation Policies of the Third Annual  Conference on Autonomous Agents  Seattle  WA  May 1  1999  67 70     Graham and Decker 1999  J  R  Graham and K  S  Decker     Towards a Distributed   Environment Centered Agent Framework     Intelligent Agents VI  LNAI Volume 1757   Eds   N  R  Jennings and Y  Lesperance  Springer Verlag  Berlin  Germany  2000  290 304     Greenberg and Roseman 1999  S  Greenberg  and M  Roseman     Chapter 6  Groupware  Toolkits for Synchronous Work     Computer Supported Co operative Work  Ed  M   Beaudouin Lafon  John Wiley  amp  Sons  West Sussex  England  1999  135 168     59     Hughes et al  1996  J  Hughes  J  O   Brien  M  Rouncefield and T  Rodden     They   re Supposed  to Be Fixing it  Requirements and System Redesign     CSCW Requirements and Evaluation   Ed  P  Thomas  Springer Verlag  London  1996  21 38     Huhns and Singh 1998  M  N  Huhns and M  P  Singh     Chapter 1  Agents and Multiagent  syst
42. In practical terms for the  current implementation  this could mean the replacement of the Code Generator portion of the  software with an analogous generator for a different framework    The design and implementation of a multi agent system with the validation of the coherency of  the conversations  all using a graphical interface has significant value for a designer  Even more  value could be added to the design cycle by real time debugging of the agent system  For  example  after designing and checking the system and generating and implementing the source  code  the user could then run the system and watch the activity in the agent conversations in the    same or similar interfaces in which they were designed     5 4 Summary    JiVE is presented in this thesis as a tool for the design and implementation of multi agent  systems  JiVE has several aspects that make it an exceedingly useful multi agent system design  tool  JiVE consists of a set of intuitive graphical interfaces  allowing a designer to handily  implement a multi agent system  The interfaces  including the agent design window and the  conversation design window  provide a glimpse of the multi agent system at varying levels of  detail  The built in collaboration features of JIVE provide the added flexibility of designing the  multi agent system in a group  This group of designers need not be located in the same room or  even in the same building so long as they have a connection to the Internet  The group design
43. JIVE  JAFMAS integrated Visual Environment    A thesis submitted to the    Division of Research and Advanced Studies    Of the University of Cincinnati    In the partial fulfillment of the requirements for the degree of    MASTER OF SCIENCE    in the Department of Electrical and Computer Engineering and Computer Science  of the College of Engineering    2000  by    Alan K  Galan  B S E E   University of Cincinnati    Committee Chair  Dr  Albert D  Baker    Abstract    JiVE  JAFMAS integrated Visual Environment  is a software tool for the design and  implementation of multi agent systems  JiVE allows a designer to draw a multi agent system  graphically  specify the necessary properties  check the design for correctness  and deploy their  application  This can all be done while working collaboratively with designers located  elsewhere  JiVE draws on research in agents  multi agent systems and system design  JiVE  offers a set of intuitive  easy to use interfaces that enable a designer to completely specify the  agents and agent interactions in a multi agent system  Also presented in this thesis is an  algorithm to check the coherency of the multi agent system  This algorithm  integrated into  JiVE  gives one touch access to design verification  The compilation of the multi agent system  and the generation of source code  in JAFMAS format  follows design verification   Furthermore  the ability for distributed collaborative work enhances JiVE   s features  JiVE pulls  from the wo
44. To remove an agent   s conversation from the Conversation Design Window  select    from the toolbar or    Remove Conversation    from the    Edit    menu  and click on the conversation  to be deleted   Note  Removing a conversation will also remove all states and conversation rules  in that conversation   The conversations can be moved around the Conversation Design  Window   s Editing Canvas by just clicking and dragging on any empty area of the conversation    rectangle     A 4 3 2 Adding and Editing States    After adding a conversation  states can be added to the design  To add a state  select    State  from the toolbar or select    Add State    from the    Edit    menu and click inside one of the  conversations  This will open a dialog box where the name of the state can be specified  the  name of the state must be unique for that particular conversation   Boxes indicating whether or  not the state should be an    Initial    state or a    Final    state can also be checked  Clicking on     Okay    submits the request to the JiVE Server  which responds with a message indicating  success or failure in the Status Bar  Upon success  a circle will appear in the conversation  with    the name of the state     To remove a state  select Se from the toolbar or select    Remove State    from the    Edit     menu and then click on the state to remove  The status bar will show the success or failure of  the operation and the state will disappear from the Editing Canvas   Note  Any c
45. at represent the services that this agent can provide to  the system    e Agent Type   The type of the agent    e Required Resources   0 or more attributes that this agent needs from other agents in the    system    36        m Ai  Irw 1 f  Bacana 1  Subject    Figure 3 8   Object Relationship    Subject   Zero or more multicast channels to which this agent subscribes publishes   User   The user object representing the user in the system who has edit control of this agent     Conversations   The conversations of this agent  Represented by    ConversationRepresentation objects     The properties of a conversation are represented in the ConversationRepresentation object and    are     Conversation Name   The name of the conversation     States   The states in this conversation  The information about which states are initial states    and which are final are also encapsulated in this object     Users   The user object representing the user in the system who has edit control of this    conversation     Conversation Rules   A list of the conversation rules that are contained within this    conversation  The ConversationRuleRepresentation represents each these     37    The properties of a conversation rule are represented in the ConversationRuleRepresentation   object and are as follows    e Conversation Rule Name   The name of this conversation rule    e suchThat   A list of the methods to invoke in the suchThat   method of the conversation rule   Each of these methods should be 
46. ation rule   These methods can be found 1n the classes for each conversation rule  In addition  supplemental  code can be added to the agents and conversations to provide additional behavior to the multi   agent system    Finally  once any necessary modifications and additions have been made to the design the  system can be deployed  The details on compiling and running the agents are included in the    JiVE Users Manual in Appendix A     4 9 Summary    This chapter has presented an example design session using JiVE  Each aspect of designing a  multi system was explored and described  Appendix A  the JIVE User Manual  provides more    details on the specific commands and their use     50    5  Discussion and Future Work    This thesis presented a graphical multi agent design tool  This chapter will discuss the    presented work  and suggest future improvements and enhancements     5 1 Summary    This thesis presented the design and implementation of a design tool for the development of  multi agent systems  JiVE provides an easy to use interface for drawing the multi agent system   including visibility of the agent conversations and conversation rules  The coherency and  coordination of the set of agent conversations can be verified  using JiVE   s PetriNet translator  and an external Petri net analyzer    JiVE collaboration support further enhances the design process by allowing users in different  locations to work on the same project  Furthermore  JIVE is platform independ
47. ave contributed much to my life in many ways    To my friends and family  I extend my thanks to each of you  your various contributions to my    life have meant a lot     Table of Contents    Table of Contents  List of Figures  List of Tables    1  Introduction    1 1 Background  1 1 1 Agents  1 1 2 Multi agent Systems  1 1 3 Multi agent System Design Tools  1 1 4  JAFMAS    12 Objective  1 3 Overview  2  Literature Review    2 1 Agents and Multi agent Systems  2 1 1 Specification of Conversations and Conversation rules    2 1 2 Agent Communication Languages  2 2 JAFMAS    2 3 Multi agent System Design Tools  2 3 1 AgentBuilder    2 3 2 ADE   2 3 3 ZEUS   2 3 4 DECAF   2 3 5 MASSYVE Kit  2 3 6 JADE   2 3 7 KAoS   2 3 8 Bond    2 3 9 Comparison of Existing Design Tools with JIVE    2 4 Collaboration  2 4 1 Requirements    2 4 2 Architecture    iv    0 OO   o OHO OHO CO NN N    11  11  12    2 4 3  2 4 4    2 5    Concurrency    Example Groupware Systems    Summary    System Design    3 1  Seed  3 1 2  3 1 3  3 1 4    3 2  32l  3 22  3 2 3  3 2 4    3 3  3 3 1  3 3 2  3 3 3  3 3 4  3 3 3    3 4    System Requirements  Collaborative Support  Graphical Interface  Design Validation    Source Code Generation    System Design  Access Control  Graphical Representations  Petri Net Analysis    Code Generation    System Implementation  Architecture  JIVE Server  JiVE Client  JiVE Communication    Agent Entity Representations    Summary    Example    4 1    4 2    4 3    4 4    4 5    4 
48. bles t  A Petri net is said to be live if all its transitions are live   This implies that the Petri net does not contain any deadlocked states  1 e   a reachable marking  in which none of the transitions are enabled    This Petri net is then analyzed using an external Petri net verification tool  Brink 1996   The  Petri net is analyzed for the following properties  safeness  liveness  and no deadlock conditions   If the Petri net has all of these properties the conversations for that system are considered  coherent and logically consistent  If the Petri net does not have one or more of the properties   JiVE will return a message indicating to the user where the problem in the conversation might  be  Galan  Baker 1999    When a user indicates that they would like to run the analysis  the server  JiVE_Server  creates  an instance of the PetriNetTranslator  which receives as a parameter the current state of the  design  see Appendix B  In reality  this is just the Repository object  which always contains the  current state of the multi agent system design  The PetriNetTranslator then creates the Petri    net  independent of the external analysis tool  using the algorithm described above  A class that    2     is dependent on the external analysis tool  called PetriToolRepresentation  which implements  the PetriNetRepresentation interface  facilitates this  PetriToolRepresentation encapsulates the  representation of the external analysis tool by providing generic methods  as dic
49. cally  transition whenever its start state 1s  reached    Specify the agent or publication  channel  to which a sent message  goes  and specify the Message Type  for that message  If this property is    Conversation Rule Editing Window   Editing Rule  crnl in LogExecNet Ea    Conversation Rule Name lent    Customer         Her Propose T        SuchtThat      Recenve Message Fron   Message Type    Push to edit suchThat    Send Message To     Message Type     Waning Applet Window 0000       Figure A 9   Conversation Rule Editing Window    left out then the conversation rule will terminate in the ending state without sending any    messages   For assistance in determining the    relationship between agents and    subscription publication channels  the  button labeled    Subjects    can be pushed     This will open a window showing which    agents subscribe publish to which    channels and to which channels each    agent subscribes publishes  shown in    Figure A 10  This window will  additionally denote any    subscription publication channels that    have not been used yet        faq Subscription Publication Information X     Agent Agenti Subscribes Publishes To   Subjecti  subject   Subjects   Agent Agent  SubscribesiPublishes To   Subject   Agent Agents SubscribesiPublishes To   Subject   Agent Agents Subscribes Publishes To   Subject    Subject Subject  is Subscribed Published to by   Agent  Agent   Agents       Okay       Figure A 10     Subscription Publication    Informat
50. ccess control    e Ifno other user has access control of an entity then any user who attempts an editing  operation automatically receives access control to that entity    e Jfa user has control of an entity then other users are prohibited from making changes  In  this case  the users can use JiVE to request control from the user who has it  That user can    relinquish control or ignore the request     19    When a user logs out of the system and or the client loses the connection with the server  that    user relinquishes Edit Control of all entities     The source code that handles access control for the entire project 1s contained in the Repository    class  which manages all project data   See Appendix B  As mentioned above  there are several    levels of access control  and the model used for each is analogous  For illustrative purposes the    methods for agent edit control are presented here     checkEditControlOfAgent AgentRepresentation agent  User user    This method is called  from any place in the code where a change might be made to an agent  If no one has edit  control of the agent  they are automatically granted the control  If the user that is attempting  to make the change has edit control  then the change is allowed to go forward  Finally  if the  user attempting to make the change does not have edit control  then the change is cancelled   requestEditControlOfAgent String agentName  User userWhoWantsControl    This method  is called in response to a user aski
51. chapter has also covered  in  some cases  specific details regarding the implementation of JIVE  Chapter 4 will provide an  example using JiVE to design a multi agent system     38    4  Example    This chapter shows an example of the use of the JiVE design tool  We will walk through the  example implementation covering the important aspects of using JiVE  This includes creating a  project  designing agents  designing the agent conversations  analyzing the conversations   generating the source code  making modifications to the source code  and deploying the multi   agent system  Shown here is an example multi agent based implementation of a supply chain   The JiVE User   s Manual  Appendix A  presents a detailed description of each specific function  in JiVE     4 1 Supply Chain    The supply chain used in this example is a modified version of the one featured in Chauhan   s  thesis  Chauhan 1997  which is based on the one presented by Barbuceanu and Fox   Barbuceanu and Fox 1995   The supply chain consists of a Customer agent  which is the agent  at the end of the supply chain  placing the order  The Customer agent places the order with a     logistics    agent  who must coordinate with one or more    Plant    agents to provide the required    product     4 2 Project Initialization    fea Login Window    The first step to creating the JiVE project is to           login to the server and create the project  The User Name  Alan   project will be called SupplyChain and we will 
52. de agents as well as agent conversations  Inheritance would allow  the user to design a generalized parent agent  or conversation  with properties applicable to an  entire set of descendant agents  or conversations   The descendant agents  or conversations   would add additional specific functionality while maintaining the parent   s functionality  For  example  in a supply chain system  one might have several different types of    Plant    agents  The  specification of each of those    Plant    agents would be faster if a generalized    Plant    agent could  be specified  and then various additional agents that inherit the    Plant    agent   s properties are  specified  A    Milling    agent  a    Drilling    agent  and a    Painting    agent could be added with little  additional effort    Another potential place for enhancement is in the specification of the    suchThat    property  In  the current implementation the user specifies a set of method names that will be joined by a  Boolean    And    operation in the generated source code  Allowing the user to specify an extended  Boolean function using method names and the various Boolean operations  would improve the  usefulness of this property    The need to edit the JiVE generated code outside of the JiVE environment could be seen as a  weakness of this tool  To overcome this  the incorporation of the editing into JIVE  much like  commercial IDEs would provide a fuller user experience  The agent code could then be fully 
53. defined by the user and should return a Boolean value   After each of these methods returns true  the conversation rule will proceed to the next state    e Receive Message   A MessageRepresentation object for the Message this rule will receive   e Transmit Message   A MessageRepresentation object for the Message this rule will transmit    e Transmit Subscription   The subscription or agent name to which the rule should send a  message    e Receive Subscription   The subscription or agent name from which the rule should receive a  message    e Start state   The starting state of this conversation rule    e End State   The ending state of this conversation rule    e Users   The user object representing the user in the system who has edit control of this  conversation rule    MessageRepresentation object has the following fields    e Type   The type of the message  In JiVE  this is what uniquely identifies the message   e Intent   The intent of the message     The MessageRepresentation object does not need a user object for controlling editing access     3 4 Summary    This chapter discussed the design and implementation of the JAFMAS integrated Visual  Environment  JiVE   This multi agent system design tool uses an intuitive graphical user  interface and supports a collaborative  web based design environment  Furthermore  JiVE  provides automated design validation to check the consistency and coherency of the  conversations  as well as source code generation regeneration  This 
54. dent user interfaces     1 3 Overview    Chapter 2 introduces multi agent systems  multi agent based design tools  and collaborative  programming environments and shows the relationship between JiVE and this previous work   Chapter 3 then elaborates on the design and architecture of JiVE  Chapter 4 presents an  example design  employing the JiVE software  and exercising its major features  Chapter 5  provides a statement of future work and improvements for the software  along with conclusions  drawn from this work  Included as appendices are  the JiVE Users Manual  Appendix A   the  source code for JiVE  Appendix B  and source code generated from the example design     Appendix C      2  Literature Review    This chapter first presents a discussion of intelligent agents and multi agent systems  It then  provides a survey of tools for the design and implementation of multi agent systems  The    chapter concludes with a discussion of the relevant issues related to collaboration     2 1 Agents and Multi agent Systems    The definition of an agent is a popular debate in the agent community  There are however  various terms that seem to consistently come up when defining an agent  These can include  intelligence  autonomy  reactivity  and perception  Huhns and Singh give a definition for an  agent that reflects this ongoing debate        Agents are active  persistent  software  components that perceive  reason  act  and communicate     Some researchers add further properties  such
55. e and    15    concurrency control  Finally  we provided a comparison of JiVE and existing collaborative    applications  The next chapter presents the design and implementation of JiVE     16    3  System Design    This chapter discusses JiVE   s design and implementation  Highlighted are the important  aspects for such a design tool  followed by a discussion addressing these aspects  We then look  at the implementation details of the JiVE software  starting with a higher level view of the    architecture  and continuing to some of the lower level details     3 1 System Requirements    The desired multi agent system design tool has the following elements    e Collaborative support for multiple users  in a web based environment    e A graphical interface for the design and visualization of the multi agent system   e Automated design validation     e Source Code generation and regeneration    3 1 1 Collaborative Support    Having multiple users work on the same project at the same time in different locations is a very  appealing notion  In order to realize the goal of having multiple users  there must be a  mechanism to prevent two users from changing the same thing at the same time  which could  lead to data inconsistencies  This editing control should prevent any collisions or  inconsistencies  while still allowing the users to collaborate effectively  and be unobtrusive    We not only want to collaborate on a design  we would like to be able to do so in a distributed  manne
56. ect   allTeamF armed   EE        Help    al    Y    Initial    kal    Initial    F  F    Final    Final    GOND    R        Editing Conversations for Logistics  Conversations for agent Logistics recieved    Figure 4 6   Logistic Agent s Conversation Design    44    can move from one state to the next  Therefore  the conversation rules substantially specify the   behavior of the system  JAFMAS   s representation of the order of operation of a conversation   rule is as follows    e The message received which enables this conversation rule  and where it is received from   Whether it is another agent or a subscription channel     e doBefore  a method that is executed before the conversation rule is executed    e A set of methods that must be true in order to proceed  called    suchThat       e doAfter  a method that is executed after the conversation rule is executed    e The message that is sent out because of this conversation rule being executed and where it is  sent    JAFMAS   s doBefore and doAfter methods cannot be specified via the JIVE GUI  The designer   manually fills in these methods in the generated source code  c f  Section 4 8   The design   decision to exclude the specification of these two methods in the GUI has two aspects  First    allowing the specification of the code in these methods through the visual environment would   preclude the designer from making changes and additions to the code outside of JIVE  due to   JiVE   s architecture  Second  writing code 
57. ected communications that this agent has with other agents in the system  We  see two arrows going out  to    Agent3    and    Agent4     and two coming in to the agent  from     Agent     and    Agent4      With this information for each agent appearing on the agent editing  screen  we can see the interactions between the agents  but are not overwhelmed by details about  the substance of those communications  To view and edit an agent   s properties  c f  Section 4 3   a dialog box can be opened  Similarly  to find out about or edit an agent   s conversations  a  conversation editor window can be opened    Each conversation for each agent in the multi agent system is represented by a finite state  machine  enclosed in a box  and labeled with the conversation   s name  Each state in the finite  state machine represents    i Output  conversation     one possible state of the jec  gt  Message1 p    Subje    conversation and each weubjeca P  transition in the finite  state machine represents  a means for changing conrule2  states in a conversation   called a conversation    rule  A dot in a state       denotes the starting state  for the conversation  A Figure 3 2   JiVE Agent Conversation Representation   state drawn with a   doubled line indicates a final state for the conversation    Figure 3 2  for example  shows an agent   s conversation named    Conversationl     This  conversation has four different states  Of those four states     Statel    is an initial state     State4
58. ed communication  conversation execution  and system  coordination  JiVE integrates with JAFMAS by allowing the designer to step through the  methodology using a set of graphical user interfaces  with the result being a set of generated  class files that are compiled into a multi agent system    JAFMAS has a unique construct  carried forward into JiVE that warrants additional description   Each agent in a JAFMAS based multi agent system can have a list of    Required Resources      These    Required Resources    establish the needs of the agents in the system  and allow for the  discovery of agents that provide that resource  When the multi agent system is started the agents  use multi cast messages to find the other agents in the system that provide their    Required    Resources        2 3 Multi agent System Design Tools    There are various design tools available for the design of multi agent systems  The development  of these design tools range from commercially available products to research prototypes  We  focus first on tools that provide graphical interfaces for the development of the multi agent  systems  and then we mention several tools that do not provide a graphical design environment     but are of particular relevance to this work     2 3 1 AgentBuilder    AgentBuilder is a commercial product produced by Reticular Systems  Inc  it provides an  integrated toolkit for the construction of intelligent agents  AgentBuilder provides a fully  featured set of graphical
59. ely     Jacomino  Geszychter and Rabelo 2000      2 3 6 JADE    JADE  Java Agent DEvelopment Framework  is a software framework for developing FIPA   compliant multi agent systems  JADE provides a set of interfaces for the design of agents   implemented in Java  JADE uses the FIPA ACL  utilizing a combination of socket  RMI and    CORBA  This framework also provides a set of pre defined behaviors for the use of the    designer  including    SimpleBehaviour        CyclicalBehaviour     and    NonDeterministicBehaviour        Bellifemine  Poggi  and Rimmassa 1999      2 3 7 KAoS    KAoS is an agent architecture that provides a form of agent oriented programming  A set of  structures  knowledge  desires  intentions  and capabilities represent the agents in KAoS  State    transition diagrams specify the conversation policies  Bradshaw et al  1997      2 3 0 Bond    Bond is a Java based  object oriented middleware for collaborative network agents  It presents a  set of objects to enable agent communication  including Message Passing  Object Replication   and Directory Services  The bond agents communicate using KQML  B  l  ni 1998   A    multi     plane state machine    represents the behavior of the bond agents  B  l  ni and Marinescu 1999      2 3 9 Comparison of Existing Design Tools with JiVE    These design tools use various approaches to facilite the design of multi agent systems  Among  these  are some aspects that are notably similar to JIVE and other areas where JIVE impr
60. ems  Themes  Approaches  and Challenges     Readings in Agents  Eds  M  N  Huhns and  M  P  Singh  Morgan Kaufman Publishers  1998  1 23     Inamdar 1997  P  C  Inamdar     Towards Developing Web Browser Based Collaborative Work  Environments  The JPECS Experience     Masters Thesis  ECECS Department  University of  Cincinnati  March 20  1997      Jacomino  Geszychter  and Rabelo 2000  Jacomino  A   Geszychter  M  B   and Rabelo  R  J       MASSYVE Kit for the development of multi agent systems     Federal University of Santa  Catarina  April 2000     Labrou and Finin 1998  Y  Labrou and T  Finin     Semantics for an agent communication  language     Intelligent Agents IV  LNAI Volume 1365   Eds  M  P  Singh  A  S  Rao  and M   J  Woolridge  Springer Verlag  Berlin  Germany  1998  209 215     Mehra and Nissen 1998  A  Mehra and M  E  Nissen     Case Study  Intelligent Software Supply  Chain Agents Using ADE     Proceedings of the AAAI Workshop on Software Tools for  Developing Agents  1998  53 62     Mills 1998  A  Mills  Collaborative Engineering and the Internet  Society of Manufacturing  Engineers  Dearborn  Michigan  1998     Moldt and Wienberg 1997  D  Moldt and F  Wienberg     Multi Agent Systems Based on  Coloured Petri Nets     Proceedings of the 18  International Conference on the Application  and Theory of Petri Nets  Eds  P  Azema and G  Balbo  Toulouse  France  June 23 27  1997   82 101     Niemeyer and Peck 1997  P  Niemeyer and J  Peck  Exploring Java  Second Ed
61. ent by using the  Java    programming language    Finally  the generation of the source code in JAFMAS format provides the designer with a    starting point for a full featured multi agent system     5 2 Discussion    The design of the supply chain example  presented in Chapter 4  brought forth some interesting  results with regard to the design of a multi agent system that will be checked for coherency  The  Petri net analysis provides very strict coherency checking  The downside is that it 1s not very  forgiving in terms of isolating design flaws  The best approach to designing a system in JiVE   assuming the analysis tool is used  is to build the design incrementally  Starting with a smaller  design that is known to be coherent and then adding incrementally will expedite the process   Creating an entire project and then trying to use the analysis tool can cause the analysis to never  terminate  if there are numerous errors    The use of the supply chain example as stated in the JAFMAS thesis  Chauhan 1997  highlights  another area where accommodations must be made for the analysis tool  The analysis of the    agent conversations with programmed constructs  e g  suchThat methods  is often not possible    51    in JIVE  JiVE   s analysis can only capture information about conversation interdependencies  based on the explicit communication  i e  messages   The incorporation of additional analysis  tools and formal methods may provide this added analytic flexibility  c f  Sect
62. er in real time or  asynchronously  This implies a persistence of data in the environment  As part of the  environment they provide various collaboration tools  including  user and conference  management and visibility  graphical editors  textual editors  and chat boards  Roseman and  Greenberg 1996   JiVE uses a similar client server architecture  including user verification and  a data repository  though it does not incorporate any awareness features or collaboration tools  beyond agent editing  TeamRooms also  adds an Administration client  which would be an    interesting expansion of the JIVE functionality  c f  Section 5 2    2 4 4 5 Artefact    14    Artefact is a web based tool for building collaborative applications that is itself a distributed  collaborative tool  It uses a client server architecture  which uses HTTP as its communication  protocol  The are a number of base    objects    that a user can use to design their application as  well as the ability to develop customized application objects  Brandenburg et al  1998   Artefact  addresses some important collaboration issues which are applicable to JiVE  such as speed and  performance of web based collaboration  including Java  but relies on a more centralized  approach and a lightweight Java applet with HTTP enhancements  In addition  Artefact allows    the user to interact synchronously or asynchronously with the application     2 4 4 6 Summary of JiVE   s Relationship to Existing Groupware Systems    JiVE   
63. erties and messages have been  added  the agents themselves can be added to    the design  To add an agent  select Agen    from the toolbar or    Add Agent    from the     Edit    menu  and click in the Editing Canvas   This will bring up the    Agent Properties     window  as shown in Figure A 5  In this  window the particular properties that this    agent is going to have are specified  First the    Agent Properties Window  Editing Agent  x     Agent Name  Kustomer  Agent Type    Hew      Customer od    Attributes  New    Required Resources  Hew Customer  Logistics  Assembly     oy  Gear    cane  Waning Applet Window 000000          Figure A 5   Agent Properties Window    name of the agent is specified  Then  the type of this agent is specified by making a selection on    the drop down box  One or more attributes that this agent can provide can then be selected     Zero or more subjects can be selected to which    this agent will listen  Finally  zero or more    resources that are required by this agent can be selected  in the required resource list  Press       Okay    to submit the request to the JIVE Server  A message with the results of the operation    will appear in the status bar  and if the operation was successful then a graphical representation    of an agent will appear in the Editing    Canvas  The agent will look similar to       those shown in Figure A 6    To edit the properties of an agent         already added to the design  click    Agent from the toolbar 
64. f the Third Annual  Conference on Autonomous Agents  Seattle  WA  May 1 5  1999  406 407      Barbuceanu and Fox 1995  M  Barbuceanu and M  S  Fox     COOL  A Language for Describing  Coordination in Multi Agent Systems     Proceedings of the First International Conference  on Multi Agent Systems  July 12 14  1995  San Francisco  CA     Bellifemine  Poggi  and Rimmassa 1999  Bellifemine  F   Poggi  A   and Rimmassa  G      JADE      A FIPA compliant agent framework     CSELT internal technical report  Also published in  part in the Proceedings of PAAM    99  April 1999  pp  97 108     B  l  ni 1998  B  l  ni  L     Bond Objects     a white paper     Technical report CSD TR  98 002   Purdue University  Department of Computer Science  February 1998     B  l  ni and Marinescu 1999  B  l  ni  L and Marinescu D  C     A Multi Plane State Machine  Agent Model     Technical Report CSD TR  99 027  Purdue University  Department of  Computer Science  September 1999     Bradshaw et al  1997  J  M  Bradshaw  S  Dutfield  P  Benoit and J  D  Woolley     KAoS   Toward An Industrial Strength Open Agent Architecture     Software Agents  Ed  J  M   Bradshaw  MIT Press  Cambridge  MA  1997  375 418     Brandenburg et al  1998  J  Brandenburg  B  Byerly  T  Dobridge  J  Lin  D  Rajan  and T   Roscoe     Artefact  A Framework for Low Overhead Web Base Collaborative Systems      Proceedings of ACM 1998 Conference on Computer Supported Cooperative Work   November 14 18  1998  Seattle  WA  189 196 
65. figuration of the systems web server is such that JiVE directories cannot be accessed   the TinyHttpd web server can be installed to serve up the JiVE client files  The TinyHttpd class  is included with JiVE  Niemeyer and Peck  1997   Please note that this web server has no built  in protection mechanisms  Use at your own risk  Directions to start this web server are in    Section A 2 1     A 2 Server    A 2 1 Running the JiVE Server    No matter which JiVE configuration is used  Procedures for starting the server are the same   Note  a virtual machine for Java 1 1 x or higher must be installed in order to run the  JiIVE_Server     In Windows  type the following at a command prompt from the installation directory     A3    start java JiVE JiVE_Server  On a Unix machine  type the following from the installation directory  java JiVE JiVE_Server  amp   If it is necessary to run the included web server  type the following as well  for windows   Start java TinyHttpd  lt port_number gt   Or for Unix   java TinyHttpd  lt port_number gt   amp     Where  lt port_number gt  is the port on which the web server will run  e g 9999      A 2 2 Adding New Users    To add a new user to the list of possible users in the system  open the Users txt file  located in  the JIVE subdirectory  in a text editor and add the person   s user name and password separated    by white space on a new line before the line with EOF     A 3 Client    A 3 1 Running the Client Applet    To run the client load the 
66. for just one method  in the visual environment  would   not give the designer the needed flexibility to implement cohesive code  Some code is   automatically included in these methods  relating to the communications  as specified in JIVE    This code should remain and user defined code can be added to the appropriate part of the   method    This section shows the design of a conversation rule  specifically in the Logistics agent  in the    LogExecNet conversation     45    We will create the conversation rule Conversation Rule Editing Window   Editing Rule  lenb in LogExecHet Fa    named    len6    which connects the  Conversation Rule Name len       FormingLargeTeam    state to the    Recenve Message From  Logistics          Fail    state  shown in Figure 4 6   We see in Figure 4 7 that the name Message Type    Newy   Reject       is specified  The enabling message    Push to edit suchThat    suchthat    can come from either a subscription eu  channel or a specific agent  Figure SEUSS ie Uit Customer x     4 8 shows the drop down menu  ese  ma  Ree 7   which lists the possible choices for    the sender and or recipient of a   okay   Clear   Cancel   Subjects R   particular message  First are listed  Waring  Applet Window O OO       the possible subscription channels   followed by the agents in the Figure 4 7   LogExecNet Conversation Rule Design  system  In this case  we chose for the enabling message to come from The    Logistics    agent   with a message type of    Rejectl
67. iVE  additional functionality can be added  to the source code if desired  In some cases  there is some code that needs to be added in order    to compile and deploy the multi agent system     A16    To add additional functionality to the JiVE generated source code it is important to note that any  editing that is done between the opening double brackets and closing double brackets will be  deleted upon regeneration of the source code     For example          System defined fields  Do not edit  Any additions in here will be deleted  EL ys    Any additions out here will remain    The only required additions are the suchThat methods  if they exist  If    suchThat    methods are  specified in the multi agent system design  in any of the conversation rules  then the  corresponding method definition will have to be added to the generated source code  In most  cases  additional functionality will be added beyond that    The doBefore   and doAfter   methods  which are included in the automatically generated source  code  can be filled in if desired by the user  This would be the location to do any operation or  call any methods that should be done before or after the operation of the conversation rule     These methods can be found in the classes for each conversation rule     A 5 2 Compiling the JAFMAS Source Code    To compile the JAFMAS Source Code place all of the JAFMAS files along with all of the JiVE    generated files into the same directory  Execute the following   javac   
68. ic with a significant amount of research  behind it  This research generally falls under the title Computer Supported Cooperative Work   CSCW   The implementation of CSCW concepts is usually termed groupware  Groupware  applications improve the ability of a group to produce results by allowing them to collaborate  and more importantly to be an active participant in a distributed design environment  Mills  recognizes a future for groupware applications  specifically in Collaborative Engineering  due to  the high return on investment and improving Internet standards  Mills 1998     This section discusses the requirements for CSCW tools or groupware  There is also a  discussion of issues involving the architectures needed  A section on the concurrency of data in  these tools follows that  We then provide several examples of specific groupware applications    and conclude with specific comparisons to JiVE     2 4 1 Requirements    Some methods by which requirements for groupware applications are established are outlined in     Ehrlich 1999  and summarized in this subsection     2 4 1 1 Work Practices    Work practices refer to the way in which a user of an application utilizes that tool in real life  situations  The development of a collaborative work environment  or any application for that  matter  should of course consider this  A realization is needed that designing an application  should keep the needs of the user in mind  Furthermore   Hughes et al  1996  suggests that the 
69. icating the success or failure of  adding the conversation rule  Upon success  a directed line appears in the Conversation Editing    Window between the appropriate states  When the user desires more information on a    conversation rule  the rule can be expanded to view all of its properties  by selecting  lt     Rule  from the toolbar or selecting    Edit Conversation Rule    from the    Edit    menu  and then by  clicking on the conversation of interest  Other conversation rules can be added to the design in a  similar manner  When the conversation   s design is complete  the conversation design window    can be dismissed by selecting    Close Window    on the    Close    menu     A14    A 4 5 Analyzing Conversations and Generating Code    Once the entire design is completed  the system can be analyzed for coherency  and the  JAFMAS source code can be generated  The analysis of the conversations is as easy as selecting     Analyze Conversations    on the    Tools    menu  During analysis  no changes to the design are  permitted  In addition  the analysis can take some time depending on the intricacies of the  design and the processing power of the machine in use  When the results are returned an alert  will be provided concerning any problems in the design  These alerts will help track down any  errors in the design  When the errors are fixed and the analysis is run again it returns a message  stating that are conversations are ready to go  which means that the source code
70. in designing a collaborative environment is to control the changes that   various users can make  JiVE attempts to control this with as little intrusion as possible  In   many cases  the system handles access control automatically  In other cases  the user has to   manually request control from another user  who can relinquish that control at their leisure    JiVE has built in mechanisms for this request relinquish scheme    One way to accommodate multiple users working on the same project collaboratively would be   to limit editing access of the whole project to one user at any given time  This approach does   not provide the flexibility desired for JIVE  Instead  we use a more fine grained access control   model  This means that access control is applicable at several different levels  namely    e Agent Edit Control   e Conversation Edit Control   e Conversation Rule Edit Control   That means that any one user can have a lock on any one of the entities listed  while other users   can have the editing control for other entities  For example     Userl    could have control of      Agentl     while       User2    could have control of    Conversation      which may be a conversation of      Agentl     Of course  when any user in the system makes a change to any part of the design  this   change is visible to every other user in the system    The automated access control follows the following rules    e As auser adds any controlled entity to the system  they automatically get a
71. index html file  in the JiVE installation directory  in a Java 2  compatible appletviewer or web browser  As of this writing the major web browsers were just  beginning to support the Java 2 platform  so we recommend the use of the Java 2 appletviewer     If the server is using a standard web server  the user would type    appletviewer http    lt server_url gt       lt InstallationDirectory gt  index html  If the server is using the TinyHttpd web server  type    appletviewer http    lt computer_name gt   lt port_number gt  index html    If the server is going to run just on the local file system  change to the directory where the files    are located  1 e  the JiVE installation directory  and type     appletviewer index html    A 4 Using JIVE    This section describes the use of JIVE for the design of a multi agent system  It steps through  the use of JiVE from the initialization of a project through the adding and editing of agents     A4    conversations  and conversation rules and finishing a project using the built in design  analysis    and code generation tools  The section finishes by describing JiVE   s collaborative aspects     A 4 1 Starting Off    The first step to working on a multi agent system design in JIVE is starting the client and  opening a project  Upon first opening the JiVE_CTient applet a login window appears  as shown  in Figure A 2  From this login window a user can create a new project or load an existing  project  The login window has two modes  New
72. ion 5 3 3   At this  point  systems designed in JiVE  assuming the analysis tool 1s used  must refrain from defining  the conversations in terms of programmed constructs  In addition to the inability to analyze  programmed constructs in the suchThat methods  users must be cautious in their use of the  doBefore and doAfter methods  so as not to introduce programmatic control of the  conversations    Finally  the growth of the Petri net 1s an issue that may be prohibitive for some larger designs   The Supply chain example appeared to be on the edge of what could be analyzed in JiVE  This  could be because of the use of a shareware Petri net analysis tool  Petri Tool   Brink 1996    where optimizations in speed are still possible  The designer should be aware that the size of the  Petri net associated with a particular multi agent system design can grow large very quickly  and  thus drag analysis to a halt  This is especially true for certain constructs such as messages that  are sent to multiple agents simultaneously  Given more computing power and improved Petri  net analysis tools  this issue does not seem to invalidate the general usefulness of Petri net tools    in evaluating the coherency of multi agent systems     5 3 Future Work and Enhancements    5 3 1 Improved Collaboration features    Several features would add value to the collaboration features of JIVE  A white board and chat  feature  in which the various users logged on to the design environment could communicate
73. ion Window  A13    The additional property that is set from this Edit methods for    suchThat    x   interface is the set of    suchThat    methods  This is   the set of methods  which must be true for the Poo  conversation rule to transition   Note  Multiple    methods are evaluated using a Boolean    And          cannotRanke antractors    operation   To specify the    suchThat    methods   press the button labeled    suchThat     and a    window will open like the one shown in Figure       A 11  For each method  type the name in the text  field at the top and press    Add     The name of the      Okay     Cancel    window  Each method name must be a valid Java    wating  Applet wWindow      method is moved to the list on the bottom of the       method name  To remove a method name  select p  gure A 11   Such That Design   it in the list on the bottom and press    Remove       The method name is removed from the box  When finished specifying the methods for this  conversation rule   s    suchThat    property press    Okay       The doBefore and the doAfter methods are not specified via the JiVE GUI  It is instead left to  the designer to fill in those two methods in the generated source code as desired  c f  Section  A 5 1     Upon full specification of the conversation rule  the request can be submitted to the server by  pressing    Okay    on the Conversation Rule Design Window  The window will disappear and a  message from the JiVE Server will appear in the status bar ind
74. ition  O    Reilly   amp  Associates  Inc  Sebastopol  CA  1997     Nissen and Mehra 1999  M  E  Nissen and A  Mehra     Some Intelligent Software Supply Chain  Agents     Proceedings of the Third Annual Conference on Autonomous Agents  Seattle  WA   May 1 5  1999  374 375     60      Nwana et al  1999  H  Nwana  D  Ndumu  L  Lee and J  Collis     ZEUS  A Toolkit for Building  Distributed Multi Agent Systems     Applied Artificial Intelligence Journal  Vol  13  1   1999   129 186     Parunak 1996  H  V  D  Parunak     Visualizing Agent Conversations  Using Enhanced Dooley  Graphs for Agent Design and Analysis     Proceedings of the Second International Conference  on Multi Agent Systems  ICMAS    96   Kyoto  Japan  December 10 13  1996     Patterson  Day and Kucan 1996  J  F  Patterson  M  Day  and J  Kucan     Notification servers  for synchronous groupware     Proceedings of the ACM CSCW    96 Conference on Computer  Supported Cooperative Work  Boston  MA  November 16 20  1996  122 129     Peterson 1981  J  L  Peterson  Petri Net Theory and the Modeling of Systems  Prentice Hall   Englewood Cliffs  New Jersey  1981     Prakash 1999  A  Prakash     Chapter 5  Group Editors     Computer Supported Co operative  Work  Ed  M  Beaudouin Lafon  John Wiley  amp  Sons  West Sussex  England  1999  103 133     Ressel  Nitssche Ruhland and Gunzenhauser 1996  M  Ressel  D  Nitsche Ruhland and R   Gunzenhauser     An Integrating  Transformation Oriented Approach to Concurrency Control  a
75. kditor Window   This dialog box is opened when the user tries to add or edit a message type in the  system  Itis opened from the JiVE_Client window    RemovePropertyWindow   This dialog box display a drop down box allowing the user to remove an item from  the select property  This is opened from the JiVE_Client window   StatePropertyEditor   This dialog opens when the user adds a state to a conversation  allowing the user to    specify the name of the new state  It 1s opened from the ConversationEditor     Table 3 2   List of Dialog Boxes and Their Functions       32    change appropriately and responds to the client s   If the editing change 1s successful  the server  will send a message out to all of the clients notifying them of the change  including the original     editor     If the editing change is not successful  then the server will notify the user who  attempted the change of why the change was not successful  The ClientCommunicator handles  these incoming messages  and passes them to the proper GUI screen for display to the user    Part of the creation of a new project requires the user to specify the agent communication  language that their multi agent design will use  The default or    Standard    language selection in  JiVE utilizes a subset of the JAFMAS Message class  This means that the designer must specify  their own set of messages for their specific application  JIVE requires the user to specify the  type of each message and optionally the    intent    of
76. le     5 3 6 Improved ACL Support    The current support in JiVE for the ACLs is limited to allowing the designer to specify a set of  standard performatives for the system communication  Support for ACLs could be enhanced  allowing for adding standard ACL protocols and additional coherency checking    In certain ACL specifications there are standard protocols defined  for example FIPA ACL   FIPA 1997   These protocols provide functionality such as  query  contract net  and English  auction  The ability to add these and other pre defined protocols to a multi agent design in JIVE  would greatly decrease the design time and improve the functionality    The coherency checking  outlined in this thesis  cf  section 3 2 3  could be supplemented by  checking the correctness of the use of the ACLs  For example  if the user has specified for an  agent to receive a message with the performative of    Ask    it could be verified that the agent  responds with    Tell     These defined semantics of the ACL provide a guide for how the agents    communicate and would be useful as an additional coherency check     5 3   Improvements in Agent Design    55    JiVE has been closely coupled with JAFMAS  which provides a basis and a framework for  implementing multi agent systems  Although this has affected the JiVE implementation in  content and structure  it would be possible to move to a more general approach where the user  would have the choice of various agent frameworks to design against  
77. le at http   www csh rit edu  rick thesis thesis  html     Chauhan 1997  D  Chauhan     JAFMAS  A Java Based Agent Framework for Multi Agent  Systems Development and Implementation     Masters Thesis  ECECS Department   University of Cincinnati  July 16  1997   Available at  http   www ececs uc edu  abaker JAFMAS index html     FIPA 1997  FIPA     Part 2  Agent Communication Language     FIPA 97 Specification   Foundation for Intelligent Physical Agents  Geneva  Switzerland  November 28  1997    Available at http   drogo cselt stet it fipa f7a12 zip     Galan 2000  A  Galan     JiVE  JAFMAS integrated Visual Environment    Masters Thesis   ECECS Department  University of Cincinnati  2000   Available at  http   www ececs uc edu  agalan Ji V E index html     Labrou and Finin 1998  Y  Labrou and T  Finin     Semantics for an agent communication  language     Intelligent Agents IV  LNAI Volume 1365   Eds  M  P  Singh  A  S  Rao  and M   J  Woolridge  Springer Verlag  Berlin  Germany  1998  209 215     Niemeyer and Peck 1997  P  Niemeyer and J  Peck  Exploring Java  Second Edition  O    Reilly   amp  Associates  Inc  Sebastopol  CA  1997     A18    
78. ls  including Agent  Builder ZEUS and DECAF  Others directly deploy the agent based system  including ADE   MASSYVE Kit  KAoS and Bond  The generation of source code allows the users to add  behavior to the agents after using the tool for the basic design  where a direct deployment  prohibits this  However  using direct agent deployment the design tool can better control the  final system  albeit at the expense of flexibility    JiVE is the only design tool available to support multi agent system design and development in  JAFMAS  All of the design tools are very tightly integrated with their own underlying multi   agent framework  JIVE however has the ability to incorporate other frameworks then JAFMAS  by replacing the Code Generation module  Additionally  JiVE is the only tool that supports    multi user development and a web based interface     Collaboration Graphical Design Implementation Java    Pricing     Support Design Validation Support  She Based  Environmen  t    A E    AgentBuilder en    A  ADE    ZEUS   oo   DECAF   o  MASSYVE      JADE   o  Kaos    Bond   o    Table 2 1   Comparison of JiVE with Exisiting Multi System Design Tools       Le      C  Code generation  D   Direct deployment  t F FIPA ACL  K   KQML  G   General speech act based messaging       F   Freeware  Free for most non commercial uses     10       ADE is a commercial development environment sold bundled with services     2 4 Collaboration    Collaboration of multiple users is an interesting top
79. n Design Window    conversations in which the   agent can engage     The second entities in the Conversation Design Window are the states  labeled circles within a  conversation rectangle  see Figure A 8   The states represent the possible states of execution  that a given conversation can be in at any one time  Each conversation will have multiple states   The final entities in the Conversation Design Panel are the conversation rules  A conversation    rule  represented as a directed line       Input Conversation   connects two states  The arrow points Eee Messages  Sy T e      from the beginning state to the ending  state of the conversation rule  The  design of conversation rules is    discussed in Section A 4 4     A 4 3 1 Adding and Editing    Conversations       To add a conversation select fromthe Figure A 8     Conversation Representation    Conversation Design Panel toolbar    A10    oConv  or    Add Conversation    from the    Edit    menu and then click and drag  drawing a  rectangle on the Editing Canvas  drag from the top left to the bottom right of the rectangle   A  window will appear allowing the name of the conversation to be typed  Press    Okay    to submit  the request to the JiVE Server  The JiVE Server will return a message  displayed in the Status  Bar  indicating the success or failure of the operation  If successful a labeled rectangle with a  side bar on each side will appear on the Conversation Design Window   s Editing Canvas     i l l t mnie rv   
80. nd Undo in GroupEditors     Proceedings of ACM 1996 Conference on Computer Supported  Cooperative Work  Boston  MA  November 16 20  1996  288 297     Reticular 1999a  Reticular Systems     AgentBuilder  An Integrated Toolkit for Constructing  Intelligent Software Agents     Reticular Systems  Inc   February 18  1999   Available at  http   www agentbuilder com Documentation white_paper_rl_3 pdf     Reticular 1999b  Reticular Systems     Using Intelligent Agents to Implement an Electronic  Auction for Buying and Selling Electric Power     Reticular Systems  Inc  August 30  1999    Available at http   www agentbuilder com Documentation EPRI epri pdf     Roseman and Greenberg 1996  M  Roseman and S  Greenberg     TeamRooms  Network Places  for Collaboration     Proceedings of ACM 1996 Conference on Computer Supported  Cooperative Work  Boston MA  November 16 20  1996  325 333     61       Ygge and Akkermans 1997  F  Ygge and H  Akkermans     Making a Case for Multi Agent  Systems     Multi Agent Rationality  8  European Workshop on Modeling Autonomous  Agents in a Multi Agent World  MAAMAW    97   Ronneby  Sweden  May 13 16  1997  Eds   M  Boman and W  Van de Velde  Springerman 1997     62    Appendix A  JIVE Users Manual    This appendix contains installation procedures and directions for using JiVE  There are  instructions for starting the client and server portions of the software  as well as instructions for    using the client   s Graphical User Interfaces     A 1 Installati
81. nerated by JIVE based on the design in our project  needs several additions before it can be deployed as a multi agent system  First  it is important  to note that even after making changes or modifications to certain areas of the source code it is  still possible to change the conversation designs and regenerate the source code  There are lines    in the source code that look like this     Pra  JiVE Generated Code is here     eae    These lines delimit the area of the source code  which is generated by JIVE  As long as the user    does not add or edit any text within those areas  their code will remain intact     49    The first thing that needs to be added to the source code before we can even compile it  are any  methods we specified in the    suchThat    property  The different methods can be located by  compiling the source code  which will generate an error message pointing to each    suchThat     method that has not been elaborated  These methods should return a Boolean value and can take  no parameters  There are no restrictions on what these methods can contain  They should  however indicate  by returning true or false  whether a conversation that checks its status can  complete its transition    The methods doBefore   and doAfter    which are included in the automatically generated source  code  can be filled in if desired by the user  This would be the location to do any operation or  call any methods that should be done before or after the operation of the convers
82. ng for edit control of an agent  If no other user has the edit  control than the control is granted to the requester  otherwise a message is sent to the user  who does have control  asking him to relinquish it    relinquishEditControlOfAgent String agentName  User userWhoHadControl    This method    is called in response to a user relinquishing edit control of the agent     3 2 2 Graphical Representations    In order to draw a multi agent system in a graphical manner  we need to intuitively represent the    agents and their conversations  In JiVE  a    a Agent   rectangle on the Agent editing screen represents agents       the agent  This rectangle lists the name of the    2  agent  and an    expand    icon  along with the    agen  number of intended  subscription publication l   e Subject gen  Subject  11H 1m 10uT  channels  When expanded one can see the  Subjects    relationship between the agent and the various    subjects with which it communicates  For       Figure 3 1   JiVE Agent Representation    example  in Figure 3 1 we see a depiction of an    20    agent  This agent   s name is    Agentl     The subjects that it subscribes to and or publishes to are  listed below it on the expanded listing  We can see that    Agentl    receives messages on the     Subjectl    subscription channel  sends messages on the    Subject2    publication channel and both  sends to and receives from the    Subject3    subscription publication channel  Also noted in this  graphic are the dir
83. ntaining the source and class files for the Petri net   analysis tool  PetriTool  is also a sub directory of the   installation directory  There is also a directory Figure A 1   Directory Structure    created that contains all of the individual project    A2    files  including the files used by JiVE  and the JAFMAS Source code generated for each project     A 1 3 Standard Configuration    The standard configuration of JiVE assumes access to a web server and the desire to utilize the  collaborative features  There are instances where it may not be possible to use this configuration  due to the specific web server  in these cases follow the directions in Section A 1 5    Install the JiVE directory structure into a directory that can be accessed via a web server  Once  the files are in place the JiVE_Server can be started  c f  Section A 2 1   and users will be able to  access the JiVE index html file  which is in the JiVE installation directory   This starts the    JiVE_Client in the web browser and allows for login to a project  c f  Sections A 2A 3      A 1 4 Free Standing Configuration    This configuration allows the use of JIVE if there is no access to a web server  This  configuration will not allow the use of the collaborative features  Install the JIVE class files in  any directory location and run the JiVE_Server and the JiVE_Client on the local machine  from    the JiVE installation directory  c f  Sections A 2 and A 3      A 1 5 TinyHttpd Configuration    If the con
84. ntrol   That means that any one user can have a lock on any one of the entities listed  while other users   can have the editing control for other entities  For example     Userl    could have control of      Agentl     while    User     could have control of    Conversation      which may be a conversation of      Agentl     Of course  when any user in the system makes a change to any part of the design  this   change is visible to every other user in the system    The automated access control follows the following rules    e As auser adds any controlled entity to the system  they are given access control  automatically    e Ifno other user has access control of an entity then any user who attempts an editing  operation automatically receives access control to that entity    e Jfa user has control of an entity then other users are prohibited from making changes  In  this case  the users can use JiVE to request control from the user who has it  JiVE prompts  the user with control with a dialog box  That user can relinquish control or ignore the  request    e When a user logs out of the system and or the client loses the connection with the server  that    user relinquishes Edit Control of all entities     A 5 Multi Agent System Deployment    This section outlines the method to create and deploy the multi agent system once JIVE has been    used to design  check  and generate code     A 5 1 Adding Additional Functionality    After automatically generating the source code with J
85. of these  lines  Some examples of this are  to not allow two conversation rules to overlap  or allowing the  user to route the conversation rule manually using more than one vertex  This improved routing  of the conversation rules would also open up improvement to the conversation rule selection  model  Currently a user must select the starting state and ending state of any conversation rule  that they would like to add  edit or delete  One click could be removed for editing and deleting     this would make JiVE easier to use     5 3 3 Improved Efficiency During Design    The efficiency of using this multi agent system design tool could be improved by adding the  following features  First  an ability to reuse conversations  or parts thereof  that have already  been designed  Ideally  this would be a copy and paste operation where the user could select a  conversation  indicate a cut  and reuse that conversation in another agent   s conversations  This  would be especially useful in designs where different agents have similar conversations  In    addition  the ability to create nested conversation structures would greatly improve the ability to    53    create a multi agent system in JIVE  JAFMAS has facilities to support a nested conversation  model but these are not supported in JiVE  therefore the designer must manually incorporate  nested conversations    Providing mechanisms for utilizing inheritance would also greatly improve the JiVE design  experience  This could inclu
86. on    The JiVE software can be installed in several different ways depending on the specific system  and intended use  This section first discusses the minimum system requirements  the JiVE file    structures  and then the three configuration options     A 1 1 Minimum System Requirements    The minimum systems requirements for the server and the client are slightly different  The  server is written such that it is compatible with the Java Development Kit Version  JDK  1 1 x   The server needs a JDK 1 1 x runtime engine  and optionally a web server and or Internet or  network connection  The client classes use the Java Swing package  which is part of Java 2  i e   JDK 1 2   The client is an applet and therefore needs to be able to run a Java 2 applet that is  either a Java 2 appletviewer or a Java 2 compatible web browser  as of this writing  the major  web browsers were just beginning to support Java 2     The processing power of the machines used to run both the client and the server can become an  issue for certain older machines  Although less processing power will not generally cause a  problem in using JIVE  there are situations where ample processing power is required   Specifically the analysis preformed at the server can be especially computationally intensive   Here the size and complexity of the design strongly effects speed    Sections A 1 3 through A 1 5 discuss the three installation options for JiVE  They refer to the    client files and the server files  listed
87. on Rules  and Messages  The class  names respectively are  AgentRepresentation  ConversationRepresentation   ConversationRuleRepresentation and MessageRepresentation    Each    Representation    has several common properties  First  and most important for JiVE  operation  each    Representation    implements the Java Serializable interface  This allows these  objects to be turned into a serial stream  which can then be sent over a communication channel   in this case the TCP IP Sockets  This makes sending any information about these agents as  simple as writing the object to the stream  Each of these    Representations    also encapsulates the  information about how they are written to a file  This is implemented as a toString   method in  each class    Additionally  each    Representation    object contains the information about which user  if any   has access control of it  This information 1s a User Object  For example  to check the edit  control of an AgentRepresentation object called    agent    we can just call a method to find out    who currently holds the access control   User userWithControl   agent getUserWithEditControl        Then we can compare the    userWithControl    object with other User objects  to determine who   has or will get edit control of that entity    The agent   s properties  represented in the AgentRepresentation object and summarized in Figure   3 8  are as follows    e Agent Name   The agent   s name   e Attributes   Zero or more attributes th
88. on on ACLs in JiVE  see Galan  Galan 2000     In addition to naming the project and selecting the desired language type  type the User Name    and Password into the login window and then press    Okay     The JiVE_Server will validate the  A5    login data and upon verification  the Multi Agent System Design Window will open  This is    where the properties and agents for the multi agent system will be specified     A 4 1 2 Existing Project   To open an existing project  select    Exist  Project    from the login window  enter the User Name  and Password  select the project to be opened from the pull down menu  and then press    Okay      The JiVE_Server will validate the login data and upon verification  the Multi Agent System  Design Window will open  This is where properties and agents for the multi agent system will    be specified and edited     A 4 2 Designing the Agents    The Multi Agent    f   JAFMAS integrated Yisual Environment  JYE   File Edit EditControl Tools Help    System Design Window     is where the agents and e     the agent   s properties a oe  Subject     are added  shown in aSubject     ribute   Figure A 3  Emad  midtribute     A 4 2 1 Adding And         ING ANC   nttessaue   agent   Removin g wAgent Agent Properties        Pro pe rties E Request Edit Control  Agent Relinquish Edit Control    Status Bar    Popup Menu    The first step is to add  the agent   s properties        a IN  al ele     Gale    These properties are the    pe pel added by System  
89. onversation  rules connected to that state will also be deleted   Additionally  states may be moved within  their conversations by clicking and dragging the state    A conversation must have an initial state and one or more final states  An initial state means    that when the conversation starts it is in that state and is indicated by placing a token  a black    All    dot  in the state  A final state means that upon reaching that state the conversation terminates   Doubling the line that comprises the state indicates a final state  The initial and final status of    each state can be toggled with the following procedure  For example  to make a state initial     select J Initial fom the toolbar or    Mark State As Initial    from the    Edit    menu and click on  the state which will be marked as an initial state  The server will respond with a message    indicating any changes made  This same procedure is applicable to    Mark State As Final         y  Final      Unmark State As Initial      J Initial   and    Unmark State As Final      y  Final  After the various conversations and states have been added to the Conversation Design    conversation rules can then be added to the conversation     A 4 4 Designing the Conversation Rules    The conversation rules in a conversation indicate to the system the operations that must be done   for an agent   s conversation to transition from one state to the next  In JAFMAS  the order of   execution of a conversation rule is as follows
90. or select    Agent     O IH 1e oourt    Agenti     e Subject     Edit Agent    from the    Edit    menu  and Subject2 1N 1M 61 0UT            Agenta           Agent4       Se Subjects    then select the agent to be edited  or  right click on the Agent and select       Figure A 6   Agent Representation    AS       Agent Properties    from the popup menu  The Agent Properties window will open and the  agent   s properties can be edited  Except for the agent   s name  which must stay the same      Continue to add agents to the design in this way     A 4 2 4 Agent Representation    In JIVE  a rectangle on the Agent editing screen represents the agent  This rectangle lists the  name of the agent  and an    expand    icon  along with the number of intended  subscription publication channels  When expanded one can see the relationship between the  agent and the various subscription publication channels with which it communicates  For  example  in Figure A 6 we see a depiction of an agent  This agent   s name is    Agentl     The  subscription publication channels that it subscribes to and or publishes to are listed below it on  the expanded listing  We can see that       Agentl    receives messages on the    Subject1    subscription  channel  sends messages on the    Subject2    publication channel and both sends to and receives  from the    Subject3    subscription publication channel  Also noted in this graphic are the directed  communications that this agent has with other agents
91. oves on  the current collection of work    JiVE  like many of these other design tools  has turned to Java to provide platform  independence  This choice affects the deployment of the design tools themselves as well as the  systems that these tools design  JiVE  is both written in Java and produces Java based multi   agent systems    Many of the design tools listed support the standard ACLs  either KQML  AgentBuilder  Zeus   and Bond  or FIPA ACL  JADE   JiVE  which supports the use of both ACLs  combines ACL  support with the ability to have user defined communication languages    JiVE uses a similar representation for the agent communications as many of the other tools   Various tools use state machines  Petri nets  or variations thereof to specify the agent  communication  The    multi plane state machine    used in Bond is an interesting expansion of    the traditional state machine representation     Checking the conversation models for consistency and coherency is not a feature that many  design tools have  although DECAF does have some design time error checking and ADE  provides some simulation and debugging capabilities  JiVE on the other hand has an algorithm  for converting the agent communication representations to a Petri net for analysis of consistency  and coherency of the systems communications    The generation of source code for the deployment of the multi agent systems is another  important aspect of JIVE  which is included in some of the current design too
92. r  This type of distributed collaboration will have an impact on the architecture used for    the software tool  In addition  we will need to provide facilities for communication connections     3 1 2 Graphical Interface    The first  and arguably the most important  aspect of designing a multi agent system design tool  is the graphical representations used to denote the different entities in the system  as well as the    layout and design of the graphical user interfaces     17    The graphical interface that the development environment employs should make the design of a  multi agent system intuitive and provide a premium of information to the designers without  making it too difficult to understand and or find the information  The information conveyed by  the graphical representations of the agents and their conversations should allow the user to see at  a glance the basic interactions and properties in the system  When desired by the user  there  should be a mechanism for getting more information about any one piece of the design    The layout of the graphical user interfaces should also be intuitive to the user  Buttons and  messages should be easy to understand and help access should also be easy  Additionally  the    user should be able to see the status of the design process at any given time     3 1 3 Design Validation    The conversations of a multi agent system dictate the behavior of the system  In order to ensure  that the multi agent system will exhibit the desi
93. r agent  Customer f E ioj x   Close Edit Edit Control Help       F       Propose b     Logistics    Output oe  Messages a    Initial  Initial  Final    Final    zetett    ym    z    Help       Editing Conversations for Customer  Conversations for agent Customer recieved       Figure 4 5   Customer Agent s Conversation Design    42    agent  Each agent can have one or more conversations  the design panel shows all  conversations  with each conversation denoted by a labeled rectangle  To each side of the  labeled rectangle are summaries of the input and output messages  Clicking the triangle on the    right side of each summary entry will provide a menu with links to each referenced    conversation  To add a conversation we select  Conv  from the toolbar or    Add Conversation     from the    Edit    menu on the menu bar  We click and drag on the Conversation Design Panel   which prompts us to specify the name of the conversation  in the case of Figure 4 5  the name of  the conversation 1s    CustomerConversation     With the conversation placed on the panel  we can  begin adding the elements of the conversation  including the conversation states and the    conversation rules  To add each state in the design select    Add State    from the menu bar or    S te from the toolbar and place the state in the conversation  We can specify the name of  the state  as well as whether it is an initial state  a final state  both  or neither  These properties    can be changed as we progress
94. rcs are constructed from each of the    transitions in the previous step to the place added 1n this step  This represents the    26    corresponding conversation reaching a final state  When the place added in this step  contains a token  that conversation has reached a final state   e One more transition is added for the entire conversation set  which corresponds to all of the  conversations reaching a final state and then resetting each conversation to their initial  states  An arc is added from each place added in the previous step to the transition added in  this step  One arc 1s added from the transition in this step to each place  which is marked as  an initial state  thus resetting the Petri net   e Finally  one token is added to each place that corresponds to an initial state   Having built the Petri net  from the original conversation model  we can analyze the multi agent  system for coherency  There are several properties of a Petri net that are required in order to  consider that conversation model coherent  Peterson 1981   The Petri net must be safe  We  consider a place safe if  for all possible markings  the number of tokens in that place never  exceeds one  Furthermore  we consider the Petri net safe if all of the places in it are safe  The  Petri net must also be live  A transition t  of a marked Petri net is said to be live under a  marking Mo if  for all markings M    e R Mo   there exists a sequence of transition firings which  results in a marking that ena
95. red system level behavior  one must ensure that  the interactions between agents are consistent with the goals of the system  This means that the  conversations that an agent can engage in must be logically consistent and coherent  Therefore   it is necessary to specify the conversations in such a way that we can prove for the entire system  the consistency and coherency  So  our multi agent system design tool shall include  conversation analysis techniques  The results from this analysis should help guide the user on  how to fix any logical errors in their design  This type of validation will help the designer in    creating a multi agent system that achieves its desired goals  Galan  Baker 1999      3 1 4 Source Code Generation    Once the multiple  distributed users have created a multi agent system  and have checked the  design for logical consistency  the next step is to assist them in the implementation  The design  tool should be able to take the specified agents  conversations  and properties and translate them  directly into usable source code  This source code may need manual supplementation  but the  designers should have a solid starting point for enhancing their design  Additionally there  should be support for regeneration of the source code  to accommodate design changes  even    after the designer has made manual modifications     18    3 2 System Design    This section outlines how JiVE meets these requirements     3 2 1 Access Control    An important aspect 
96. requests are serialized such that there will be no inconsistencies in the data  The  downfalls of this type of centralized system include the server being a computational bottleneck   and network latency    Replicated architectures have no centralized server and respond to changes in state locally and  send information to each other in order to update the other   s data  With a distributed system  the  cost of a replicated architecture is a more complicated system  There is also now a need for  distributed concurrency control  Some benefits of this approach are a decrease of the  computational bottleneck due to the server  and less chance for latency due to the diminished  amount of data transferred    The compromise  in many cases  is a hybrid architecture incorporating centralized and replicated  features in an attempt to gain the best of both worlds  Patterson  Day  and Kucan discuss an  example of this type of architecture  Patterson  Day and Kucan 1996   They talk of an  architecture that has a central server that acts as a repository for the shared system data and    handles any changes for the clients  The clients however control the data locally and manage    12    their own view of the data  JiVE uses this hybrid approach to its architecture  but leans towards    a centralized approach  c f  Section 3 3      2 4 3 Concurrency    An important aspect of designing a groupware application is the concurrency of the data in the  application  Prakash suggests two broad clas
97. rk in the Computer Supported Collaborative Work research area to provide an  application that allows designers whom are not co located to design a multi agent system  together  JiVE handles all of the issues of concurrency and design consistency  and provides an  easy to use collaborative environment  Furthermore  JiVE provides a unique set of features for a  multi agent system design tool  Commonly used techniques in multi agent system design and  collaborative computing  such as web based collaboration  agent communication languages  and  a fully featured Java based Graphical User Interface are combined in JIVE  This distinct  combination of features makes JiVE stand out among the existing multi agent system design  tools    This thesis presents the research related to the application of the JiVE software  along with  descriptions of its design and implementation  A supply chain example exercises the software     conclusions are drawn  and we suggest future improvements and enhancements     Acknowledgments    I give my thanks and appreciation to Dr  Albert Baker for his assistance and guidance in the  preparation of this thesis  I also owe my gratitude for his continuing support in my academic  and professional pursuits    My thanks go to my thesis committee  Dr  John Franco  Dr  Ali Minai and Dr  Marios  Polycarpou  who have made the completion of this thesis possible    I would also like to thank my parents for their undying love and support from beginning to end   They h
98. rther enhances this model  Chauhan 1997  to include a Petri net representations  taken from the individual conversations  aggregating them into one specification    Moldt and Wienberg present a representation of multi agent systems based on Colored Petri nets   Moldt and Wienberg 1997   The tokens in the CPN represent the dynamic components of the  complex system  They further make the distinction between the agent society and the agent   both of which use Petri nets as representations  Cost et al  have also used Colored Petri nets   Cost et al  1999   They claim that the use of these CPNs allow for improved support of  concurrency and complex interactions    In contrast  Parunak presents an enhanced form of the Dooley Graph  Parunak 1996   The  Enhanced Dooley Graphs are said to be useful in capturing agent interactions and expressing  them in an easy to understand manner  The Z specification language has also been proposed as  providing a framework for describing multi agent interaction  d   Inverno  Kinny and Luck    1998      2 1 2 Agent Communication Languages    The agent communication languages  ACL  used in multi agent systems are another important  aspect of the design of a multi agent system  An ACL 1s a precisely defined protocol for  inter agent communication in multi agent systems  including syntactic and semantic definitions   The two ACLs that seem to be in the forefront of acceptance as standards are KQML and FIPA   ACL    KQML is a message format as well as a
99. s collaboration features draw from existing work on groupware systems  JPECS and JSIM  provide much of the basis for JiVE   s collaborative architecture  messaging and user control   Concurrency control components of Joint EMACS are similar to JiVE  although more fully  developed  In terms of architecture  JIVE  TeamRooms and Artefact are similar in their  client server configuration  In addition  Artefact provides a thorough approach to web based  collaboration from which future versions of JiVE could draw  All of the tools mentioned in this    section have various collaboration tools that could supplement JiVE   s collaboration experience     2 5 Summary    This chapter discussed some of the current literature in the fields related to this thesis  The  chapter started with some background on agents and multi agent systems  Specifically  addressed were the communications between agents  including the basis for JiVE   s  representation of conversation and conversation rules and the use  by JiVE of ACLs  The  presentation of the existing work in the area of multi agent design tools highlighted the unique  approach JIVE takes on this issue  The distributed collaboration features of JIVE are one of the  things that make it stand out  The existing work in collaborative software provides the bases for  these features  This includes the requirements for a groupware application and some design    methodologies  We also showed how JiVE relates to existing work in terms of architectur
100. ses of concurrency control in a group editor   Prakash 1999     Pessimistic concurrency control refers to the method of acquiring network wide locks before  allowing the editing of a document or section of the document  which incidentally is the method  used by JIVE  This method can slow the rendering of the local data in cases where the lock has  to be acquired  Optimistic Concurrency Control allows any changes on the local copy of the  data to be effective immediately and then sends that information over the network  including a  time stamp  to be reconciled with all of the other users  When this information is reconciled  with the operations in each client  there may be a need to roll back or undo operations  This  method requires that operations be reversible  in order for the reconciliation at each client  In    addition  there is the opportunity for the users to interact with inconsistent data     2 4 4 Example Groupware Systems    2 4 4 1 JPECS    JPECS  Java Programming Environment with Collaborative Support  1s a web based  platform   independent collaborative work environment  It provides a platform for the distributed editing  and simulation of a visual programming language  in this case a finite state machine simulator    including a whiteboard and chat feature  It deals with issues such as concurrency  multi user  communication  and collaboration  Inamdar 1997   JPECS provides a basis for JiVE   s  collaborative features  JIVE utilizes a similar approach in terms
101. sh Agent Edit Control   Edit Control Menu    Tools Menu o Request Conversation Edit Control  o Check Conversations o Relinquish Conversation Edit Control  o Compile Code o Request Conversation Rule Edit Control  o Refresh Project o Relinquish Conversation Rule Edit  o Expand Collapse Subscription Info Control    Help Menu   Help Menu  o Getting Started    o Getting Started     o Help o Help  o About o About    Table 3 1   List of JIVE Menu Items    e Editing Canvas   The editing canvas is where the graphical representations of the agents or  conversations are located  This is where the user would interact to add  delete  or edit any  entities in the design    e Popup Menu   This is another way for the user to select applicable commands  This menu  will show the applicable commands according to where in the Editing Canvas the user has  clicked  In Figure 3 3  the user has right clicked on    Agent1    and is presented with several  possible commands  Delete Agent  Edit Agent Properties  Edit Conversations  Request  Control and Relinquish Control     25    3 2 3 Petri Net Analysis    As was discussed in Section 3 2 1  we specify the conversations and conversation rules of the    multi agent system using a finite state machine representation  This representation allows for    Petri net  Peterson 1981  description of the conversations  which then allows for the validation    of the design  Chauhan 1997   The conversion of the finite state machine into a Petri net is as    follows
102. tated by  PetriNetRepresentation  to create a Petri net and then converting that Petri net information into  the proper format  This construction allows for the replacement of the external analysis tool  A  new class implementing the PetriNetRepresentation interface could be written for a new  analysis tool  and the existing conversion code would not need to be altered    The design of a multi agent system in JiVE must also take into account conversations that may  never start  The analysis of this aspect of a multi agent system 1s unforgiving  If a conversation  in the system is intended to be allowed to never execute then that must be explicitly defined  To  define this condition  the initial state of the conversation should also be a final state  In the  absence of this  the analysis checker will indicate a deadlock condition  wherein the    conversation in question never starts and the remaining conversations in the system are finished     3 2 4 Code Generation    The code generation aspect of JiVE extends the ability of the user to design and test their  conversations before writing code by generating the code needed to implement agents and  conversations in JAFMAS  JiVE generates Java source code files that match the JAFMAS  format  It allows the user to add custom agent code  giving the agent it   s    behavior     Even after  the user adds custom code to the source code files  the JAFMAS code generator can still  regenerate the conversation code  Appendix C gives an e
103. ti agent systems  ZEUS specifies a design  approach utilizing a three layer model of an agent  the definition layer  the organization layer   and the co ordination layer  It provides a set of graphical interfaces to allow a designer to create  the multi agent system  An agent is comprised of libraries that include communication  using  KQML   social interaction  multi agent coordination  and planning and scheduling  This tool    generates source code for the agent based system in Java  Nwana et al  1999      2 3 4 DECAF    DECAF  Distributed  Environment Centered Agent Framework  is a software toolkit for  developing intelligent agents  It provides user interfaces for the specification of the agent  behavior  including logical and temporal constructs  It allows reuse of generic agent behaviors   Its Plan Editor removes the designer of a multi agent system from the low level API and allows  for the rapid development of agents  which are generated in Java  DECAF also provides some  design time error checking  and supports the use of agent communication languages  Graham    and Decker  1999      2 3 5 MASSYVE Kit    The MASSYVE  Multiagent Agile Manufacturing Scheduling Systems for Virtual Enterprise   kit is a software kit for the development of multi agent systems  It allows a user to configure   modify  and create a multi agent system  it provides user interfaces to guide a designer through  the process  It also provides mechanisms to launch the agents  both locally and remot
104. use Password  Pe O  the standard language  cf  Section 3 3 3   Project Name SupplyChain      Figure 4 1 shows the login window  Pressing Language Standard          Okay    will verify our User Name and Password  eed  Clear   Exist  Project    When a user specifies a new project name  the at a e       project files and directory structure are created on    the server  When a user specifies an existing Figure 4 1   Login Window    39    project upon login  the project files are loaded from the existing files and the client is initialized    with the state of the project     fe  JAFMAS integrated Visual Environment  Ji  E    Multi Agent System Design Window   Proj    BETES  File Edit Edit Control Tools Help       Ty  subje    ribute    F    ribute    41H 1m 1 0uUT    Mm       re       27  E   T    Agent Customer added ath  by by System    Agent Logistics added at 297 67 by System  Agent Plant added at 296 212 by System  Agent Customer s properties recieved       Figure 4 2   Designing Agents    The first window that appears upon successful login validation is the Multi Agent System    Design Window  Figure 4 2   This is where the agents are displayed and edited     4 3 Designing the Agents    The Multi Agent System Design Window is where we add the agents and the agent   s properties   We start by adding the properties from which the agents will select  These properties are the  agent    Type     agent    Attributes     and    Subjects     To add an agent    Type    we select   
105. vities the  agent can engage in or resources it can produce  For example  in a supply chain a    Plant    agent  may provide a    Paint    service or a    Shipping    service  or both    The    Subjects    that can be specified represent a subscription publication channel  on which    agents can send and receive multi cast messages to other agent s   The process to add and    remove    Attributes and    Subjects    are similar     A 4 2 2 Adding and Removing Messages    When one of the pre defined agent communication languages is in use  1 e  KQML or FIPA  ACL  the adding and removing of messages is disabled  Otherwise  messages are added to the  design in a similar manner as the other properties  however there is some additional information    Message from the    that can be specified for messages  To add a message to the design select  toolbar or    Add Message    from the    Edit    menu  A window appears allowing the specification  of the Message Type  which is the unique identifier for the message  This window also allows  the specification of the message intent  which provides additional information as to what the  message is meant for in the system but does not differentiate the message in JIVE  The    mie ss  je    messages are removed by selecting the button on the toolbar or    Remove Message       A7       from the    Edit    menu  The window that comes  up will allow for the selection of a message to    be removed     A 4 2 3 Adding and Editing Agents    Once prop
106. xample of the generated code    The CodeGenerator is implemented as a static class  which is invoked from the Repository  class  The CodeGenerator takes as parameters the entire database of objects in the system   including agents  conversations  conversation rules  messages  as well as lists of all of the  various properties  The CodeGenerator systematically goes through each of those objects and  places them in the correct section of code    Any code that might be changed by JIVE when the code is regenerated is placed in between    double brackets  like in the following code example          System defined fields  Do not edit    28    public Conversation convl   null   AR     Before the CodeGenerator regenerates the source code file  it stores the user modified portion of  the code  i e  the code not between the double brackets  and sets it aside to be placed back in the  source code in the same place  In this way  the user can manually modify the source code and  still be able to regenerate the core agent and conversation code from JiVE  assuming they don   t    edit inside the brackets      3 3 System Implementation    This section provides a more detailed discussion of JiVE   s implementation     3 3 1 Architecture    The JiVE application is written in Java  and uses a client server model  The entire JIVE Package  consists of a JIVE Server  implemented as a Java application and a JIVE Client  a Java Applet   The server application is designed to run on a machine that has
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
MANUAL DE INSTRUÇÕES    ZONING : MODE D`EMPLOI  KORG KONTROL Editor取扱説明書  Sony DCR-SX50E hand-held camcorder  eDEP User Guide eDEP - EUROCONTROL Experimental Centre  取扱説明書 - キッコーマン バイオケミファ  Working with RiT`s Dashboard  Techmorod Cuarzo Corindón 50% Techmorod Cuarzo Corindón 50%  TDG134 – GSM Abrepuertas - blog todoelectronica.com    Copyright © All rights reserved. 
   Failed to retrieve file