4.9.1
Making Agents Within an MAS – Discussion
In a real world application of an MAS, a natural and logical development would be to decentralise the creation of each agent’s WAR file to somewhere other than the development environment of the agent owner. The most logical place to create WAR files is within the MAS and close to the machines which will host them.
is migrated to a machine within the MAS. From there it can be invoked with a command. As the creation of another agent will be in response to a request from an existing agent (or a human operator), it needs to be placed on a machine which hosts an SGA. In effect, that SGA then wraps the process. Outside of the (usually well resourced) development environment, the following considerations become important.
• Is there sufficient disk storage for the body of code required and the new WAR files which are created?
• What commands and file system permissions are needed?
• Will it be in response to a single command for a single agent, or be able to handle a list of details for multiple agents?
• What permissions and ssh key placements are needed for the SCP part of the deployment to be passwordless? This may be set up (manually), as the owner will, by necessity have full access to all the hosting machines it controls in the infrastructure.
4.9.2
General Purpose Message Sending Format for SGAs
The developments proposed in this thesis do not require complex message structures. Therefore, a simple, ‘general purpose’ message type is used.
In the 2008 work of Pierantoni [107], the Classad expression in each message was structured to match the requirements of the ability that processed it. This structure contained multiple numeric and string values. When developing a new agent ability (with different messaging requirements), it was also necessary to develop a number of supporting classes to parse and interpret the Classad content of the new message. These supporting classes were required to be available in both the sending and receiving SGAs. This presents a complexity and scalability issue.
The message type used mainly in this thesis has a simpler structure. It needs one type of parser, and this is capable of parsing all messages sent and received. It has two main parts, asemantic value and some content which can be considered to be its
‘payload’. The semantic value is the ‘action-name’ and this maps to the ‘action-name’ of the ability in the receiving agent. It can be said that the action-name effectively describes what is to bedone with the content. This semantic-content structure is in keeping with other agent language structures, the origins of which are discussed in 3.1.4, page 42.
From time to time, the content of a message needs to contain more than one item. This requirement is met by concatenating items which need to be sent as content. At the receiving end, this content is separated before use. Therefore, instead of the complexity being in the Classad structure, any complexity is transferred into the content of the message3. When the content of the message has to be separated or parsed, the logic to do this is placed within the ability which processes the message4.
The number of different abilities needed by SGAs may grow. However, it is envis- aged that whatever format the content needs to be in, it should be able to be inserted into the ‘content’ part of this message format as a single string. Because messages are sent to specific abilities in SGAs, the receiving ability can be programmed to separate and parse the assembled content.
Impact on Existing SGA Functionality
This new message structure does not alter or disable the functionality of the messages in the work of Pierantoni [107]. Instead, the message format developed here can be used in conjunction with those message types. It may also be possible to combine the semantic-content message format with serialisation to transport complex Classad messages in the simpler message structure, still providing the same functionality as seen in Pierantoni’s work.
For the original messages of SGAs, it may even be possible to encode the com-
3An example of this can be seen in the experiments of this thesis in section 6.5.5, page 152 where
a string and an integer are combined and sent from one agent to another.
4This approach is inspired by the way the myriad of different technology protocols all use the
TCP/IP network. For this to happen, each technology develops its own custom format, meeting the needs of that technology. However, for transport over the IP network, all data must go into IP packets.
plex Classad part of these using the Base64 technique used for binary abilities. On receiving such a message, the SGA could then decode the complex Classad message and process it. This would require a further alteration to the SGA architecture and is not explored in this thesis.
Chapter 5
Social Profiles in SGAs
5.1
Introduction
As touched upon at the beginning of chapter 1, the social and economic differences found between different types of resources and work will influence the types of collabo- rations and relationships which are formed between them. This will in turn, influence any subsequent work allocation decisions. As an initial step towards forming such relationships, agents need a mechanism to consider social and economic backgrounds and origins.
Recall that SGAs were developed to address the diversity and complexity found in allocation of Grid computing resources. This chapter explores a solution for addr- essing social and economic differences using a combination of textual descriptions known as social profiles and search engine technology. It explores using free and unstructured language to describe entities, briefly introduced in section 1.3.
The remainder of this chapter is laid out as follows. In section 5.2, the concept of ‘social and economic’ differences is explored and relevant examples are given. Section 5.3 discusses the meanings of words and a model of that meaning. This yields a vector space model, from which similarities between these meanings can be quantified. Section 5.4 introduces Lucene, a software implementation of a vector space model and gives some details of its workings. Social Profiles, a solution for describing and differentiating between social and economic differences is described in section
5.5. This section also gives details of an extensible prototype implementation. The remaining sections discuss search in other areas of work and resource allocation as well as some other approaches available for evaluating text.