Nevertheless, as demonstrated by Jadex XML, the same principles can be appliedto message encoding as well.FIPA SLJava SerializationJadex XMLJadex BinaryHuman Readability = - + -Standard Conformance + = = -Well-formed Structure + = = -Editable = - + -Performance - + - +Compactness - = - +Fig. 3. Feature support by different methods <strong>of</strong> agent content encodingWhen considering the agent format features proposed in Section 2, it becomesclear that even though some features are well-supported, other features werenot the focus for those formats (cf. Fig. 3). For example, FIPA SL as a textbasedformat is quite readable and editable by humans, provides a definition<strong>of</strong> a well-formed structure and is a standard for agent messaging with widesupport for many agent platforms. Jadex XML on the other hand, while notbeing a widely-used standard, has a well-defined and openly accessible schemaand allows a human user to easily read and edit agent messages. Nevetheless,neither compactness nor performance seem to be the focus for either language.This is likely due to compactness and performance being in conflict with otherfeatures. For example, a compact format tends to be hard for humans to read.The Jade platform recognizes the need for compact messages with good performancein some applications. It supports these features by adding contentobjects to messages, instead <strong>of</strong> a string-based content, but discourages this approachfor lack <strong>of</strong> standard conformance. Jade uses the Java language serializationfeature[7] to encode such messages; however, while this approach is fairlycompact and certainly providing good performance, it has multiple drawbacks.First, for a number <strong>of</strong> reasons listed in the specification it only supports classesthat explicitely declare to implement a marker interface. While it is trivial toadd the interface to classes, the source code <strong>of</strong> classes used in legacy applicationsmay be unavailable. In addition, some useful built-in classes like BufferedImagedo not implement this marker interface and there is no way to easily retr<strong>of</strong>itthe serialization system to support this class. Furthermore, there appear to becompatibility issues, requiring a versioning convention using a marker field andcarefully monitoring <strong>of</strong> the Java Virtual Machines used by the system. Finally,as we will show, the compactness <strong>of</strong> the serialization format can be further improvedupon, especially without an additional compression cycle.In the next section we will introduce an agent message format for Jadexcalled Jadex Binary which focuses solely on the compactness and performancefeatures. This message format will be an alternative to the default Jadex XMLused by Jadex, which can be used by application that have a strong need for thosetwo features and do not require feature better supported by Jadex XML. We105
will then evaluate this new format based on the performance and compactnessfeatures based on a comparison with other agent message formats.4 Format DescriptionSince the primary goal <strong>of</strong> the Jadex Binary format is to emphasize the compactnessand performance properties <strong>of</strong> the format, it uses binary instead <strong>of</strong>string-based encoding. The primary concern is the serialization <strong>of</strong> the objectsrepresenting the message, such as, but not exclusively, ontology objects. In addition,some techniques are employed to prefer the compact encoding <strong>of</strong> commoncases <strong>of</strong> data over rare cases, providing some simple compression based on themeta-information available from the objects and typical use cases. The format isbased on a set <strong>of</strong> techniques to encode primitive types which are then used to encodemore complex data. The following subsections will start with the primitivetypes and then proceed to more complex types.4.1 Variable-sized IntegersA key concept used in Jadex Binary are variable-sized integers. The goal is toencode unsigned integer values in a variable-sized format that encodes smallvalues with less space than larger ones. The technique is based on the encodingtechnique <strong>of</strong> element IDs in the Extensible Binary Meta-Language (EBML)[8],which again is based on variable encoding scheme used for UTF-8[9].Bytes Format Value Range1 1####### 0 to 1272 01###### ######## 128 to 165113 001##### ######## ######## 16512 to 21136634 0001#### ######## ######## ######## 2113664 to 270549120Fig. 4. Examples <strong>of</strong> variable-sized integers and their value rangesA variable-sized integer is byte-aligned and consists <strong>of</strong> at least one byte (cf.Fig. 4). The number <strong>of</strong> zero bits starting from the highest-order bits before thefirst one-valued bit denotes the number <strong>of</strong> additional bytes called extensions thatbelong to this variable integer. The rest <strong>of</strong> the byte is then used to encode thehighest-order bits <strong>of</strong> the integer value, the extensions then provide the lowerorder bits <strong>of</strong> the value. This value is then shifted by a constant equal to theend <strong>of</strong> the previous value range plus one. This technique <strong>of</strong> storing integer valueuses less space to encode small values at the expense <strong>of</strong> additional space <strong>of</strong> highvalues.The next part will describe how the format encodes boolean values which canbe used in to extend variable integers to support negative values. Furthermore,variable integers are also heavily used as identifiers during string encoding.106
- Page 2 and 3:
Proceedings of the Tenth Internatio
- Page 4 and 5:
OrganisationOrganising CommitteeMeh
- Page 6:
Table of ContentseJason: an impleme
- Page 10 and 11:
in Sect. 3 the translation of the J
- Page 12 and 13:
init_count(0).max_count(2000).(a)(b
- Page 14 and 15:
For instance, a failure in the ERES
- Page 16 and 17:
{plan, fun start_count_trigger/1,fu
- Page 18 and 19:
single parameter, an Erlang record
- Page 20 and 21:
1. Belief annotations. Even though
- Page 22 and 23:
decisions taken during the design a
- Page 24 and 25:
Conceptual Integration of Agents wi
- Page 26 and 27:
Fig. 2. Active component structurep
- Page 28 and 29:
the service provider component. As
- Page 30 and 31:
Fig. 4. Web Service Invocationretri
- Page 32 and 33:
01: public interface IBankingServic
- Page 34 and 35:
tate them in the same way as in the
- Page 36 and 37:
01: public interface IChartService
- Page 38 and 39:
implementations being available for
- Page 41:
deliberative behavior in BDI archit
- Page 44 and 45:
layer modules (i.e. nodes) can be d
- Page 46 and 47:
different methods to choose the cur
- Page 48 and 49:
also a single scheduler module, imp
- Page 50 and 51:
andom choice (OR), conditional choi
- Page 52 and 53:
- Dealing with conflicts based on p
- Page 54 and 55:
5. Brooks, R. A. (1991) Intelligenc
- Page 56 and 57: An Agent-Based Cognitive Robot Arch
- Page 58 and 59: It has been argued that building ro
- Page 60 and 61: EnvironmentHardwareLocal SoftwareC+
- Page 62 and 63: a cognitive layer can connect as a
- Page 64 and 65: can reliably be differentiated and
- Page 66 and 67: 4 ExperimentTo evaluate the feasibi
- Page 68 and 69: learn or gain knowledge from experi
- Page 70 and 71: A Programming Framework for Multi-A
- Page 72 and 73: exchange and storage of tuples (key
- Page 74 and 75: Although some success [13] [14] hav
- Page 76 and 77: as well as important non-functional
- Page 78 and 79: component plans have been instantia
- Page 80 and 81: A in the example) can evaluate all
- Page 83 and 84: 1. robot-1 issues a Localization(ro
- Page 85 and 86: ACKNOWLEDGMENTThis work has been su
- Page 87 and 88: The code was analysed both objectiv
- Page 89 and 90: a conversation is following. Additi
- Page 91 and 92: the context of a communication-heav
- Page 93 and 94: Table 1. Core Agent ProtocolsAgent
- Page 95 and 96: statistically significant using an
- Page 97 and 98: to the conversation and has a perfo
- Page 99 and 100: principal reasons. Firstly, it is a
- Page 101 and 102: 2. Muldoon, C., O’Hare, G.M.P., C
- Page 103 and 104: In the following section we will at
- Page 105: DevelopmentProductionHuman Readabil
- Page 109 and 110: encoder, it is first checked if the
- Page 111 and 112: nents themselves. However, since th
- Page 113 and 114: optimized for this format feature s
- Page 115 and 116: Java serialization and Jadex Binary
- Page 117 and 118: 10. P. Hoffman and F. Yergeau, “U
- Page 119 and 120: Caching the results of previous que
- Page 121 and 122: querying an agent’s beliefs and g
- Page 123 and 124: or relative performance of each pla
- Page 125 and 126: were run for 1.5 minutes; 1.5 minut
- Page 127 and 128: Size N K n p c qry U c upd Update c
- Page 129 and 130: epresentation. The cache simply act
- Page 131 and 132: 6 ConclusionWe presented an abstrac
- Page 133 and 134: Typing Multi-Agent Programs in simp
- Page 135 and 136: 1 // agent ag02 iterations (" zero
- Page 137 and 138: 3.1 simpAL OverviewThe main inspira
- Page 139 and 140: 3.2 Typing Agents with Tasks and Ro
- Page 141 and 142: Defining Agent Scripts in simpAL (F
- Page 143 and 144: that sends a message to the receive
- Page 145 and 146: * error: wrong type for the param v
- Page 147 and 148: Given an organization model, it is
- Page 149 and 150: Learning to Improve Agent Behaviour
- Page 151 and 152: 2.1 Agent Programming LanguagesAgen
- Page 153 and 154: choosing actions is to find a good
- Page 155 and 156: 1 init module {2 knowledge{3 block(
- Page 157 and 158:
of a module. For example, to change
- Page 159 and 160:
if bel(on(X,Y), clear(X)), a-goal(c
- Page 161 and 162:
mance. Figure 2d shows the same A f
- Page 163 and 164:
the current percepts of the agent.
- Page 165:
Author IndexAbdel-Naby, S., 69Alelc