A.R
A.M
A.P
B.R
B.P
B.M
Community A Community B
Figure 5: Policy preservation
A.R
A.M
A.P B.R
B.P
B.M
Community A Community B
C.R
C.P
C.M
Community C
Figure 6: Policy of community extended by further federa-
tion
Assume the policy of federation;
P
CF
= {(C.R, B.R), (C.R, A.M)},
P
F C
= {(A.R, C.R), (B.R, C.R)}.
The following policy p
E
of community E, which is
the federation of C and D, is a policy which pre-
servies the policies of C and D. p
E
also preserves
the policies of A and B.
p
E
= p
D
∪ p
C
∪ {(C.R, A.M ),
(C.R, B.M), (C.R, B.P ), (A.M, C.M),
(A.M, C.P ), (B.R, C.M ), (B.R, C.P )}
Figure 6 shows the policy of community E.
3 COMMUNITY MODEL
In the federation, the agents of each community are
required to be compliant with the policy of the com-
munity when they interact with agents of other com-
munities. Therefore, the implementation of a policy
based federation basically consists of restricting the
communications across the communities and adding
communications for cooperation of communities.
To support the implemention of the federation,
we introduce a community model which represents
the communications in federation hierachically. This
model is written in a modelling language whose syn-
tax is shown in Appendix A. The modelling lan-
guage introduces the notion of meta-hierarchy and
field; (1) meta-level description can be attached to
specify the dynamism of agent’s behaviour, and (2)
message passing is restricted to the range of agents
which share the same field.
3.1 Meta-level Architecture
In the modelling language, an agent is specified in
several levels. The lowest level is 0 level, which we
call the base level. Though the modelling language
does not fix the number of meta-levels, let n denotes
the highest level declared in the community model.
In the syntax of Appendix A, the number of “m”s at
<DESCRIPTION ID> show the meta-level. The be-
haviour of agent, such as change of state and transmis-
sion of a message, is specified in each level.
A message transmitted in level i (0 ≤ i < n) is ma-
nipulated in level i + 1; i.e. we can control the trans-
mission of the message by explicitly specifying the
process of dequeueing, passing to the receiver agent,
and enqueing to the message queue in i + 1 level.
The invocation of method in i level is performed by
execute method of i + 1 level. Below we describe
the meaning of message invocation, where N denotes
set of natural numbers representing meta-level, M sg
denotes set of message patterns, and F ld denotes set
of fields.
Firstly, we define a function
acceptable : M sg × Agn × N → bool
which shows the existence of a method.
• if a method which fits in message m is specified in
i level of agent a : acceptable(m, a, i) = true
• otherwise : acceptable(m, a, i) = false
Since any message transmitted in i level can be ma-
nipulated in i + 1 level, the message invocation by
message m in i ≤ n level is decided by the following
function
executable : M sg × Agn × N → bool.
• i = n : executable(m, a, i) = acceptable(m, a, i)
• i < n : if the invocation of execute for m
is specified or nothing is specified (default as-
sumed) in i + 1 level, executable(m, a, i) =
acceptable(m, a, i)
if the message m is rewritten to m
′
and
execute is invoked for m
′
in i + 1 level,
executable(m, a, i) = acceptable(m
′
, a, i)
otherwise : executable(m, a, i) = f alse
3.2 Message Transfer
A community model possibly contain several fields.
The message passing of agents are limited by the
fields; i.e. no message is passed from an agent to other
agents unless they stay in the same field. However, a
message can be transferred across the fields if it is for-
warded by agents placed in more than two fields.
Consider that an agent a
1
in field f
1
sends an i-
level message m to a
2
in field f
2
. Due to the message
A MODEL FOR POLICY BASED SERVICE COMMUNITY
363