Role Transfer Problems and Algorithms
Haibin Zhu, Senior Member, IEEE, and MengChu Zhou, Fellow, IEEE
play to deal with an emergency situation? Which roles should a
person play? What role-person mapping is effective in dealing
Abstract Role transfer is a usual activity in an organization,
especially in a crisis situation. Role assignment and transfer with an emergency situation? What group structures can avoid
regulations are important to accomplish it. This paper discusses crisis? There are no clear, exact answers for these questions
the general role transfer problem; proposes a role specification
hitherto. This paper intends to demonstrate that specially
mechanism; builds a set of terminologies for role transfer based
arranged role-person mapping can help a group survive better
on a revised E-CARGO (Environment-Class, Agent, Role, Group,
in an emergency situation. Our role-based collaboration model
and Object) model; and presents algorithms to validate role
E-CARGO (Environment-Class, Agent, Role, Group, and
transfer while maintaining group viability. The contributions
include formulating the problem of role transfer in a generalized Object) [17, 18] can be successfully adopted in processing such
form; developing a set of algorithms; and presenting a solution situations.
when group members are insufficient.
There are actually two aspects in the research of role transfer.
One is that when there are sufficient people and the other is not.
Index Terms Role, Role Transfer, Information Systems,
We need to investigate different methods to deal with them.
Organization, Emergency Management
Our solution for the latter is to introduce time intervals to solve
it. We call the latter temporal role transfer.
I. INTRODUCTION
The rest of this paper is arranged as follows: In Section II, we
R OLE transfer is a basic requirement for organizations [1]
discuss some relevant research. In Section III, we demonstrate
and emergency management systems [15]. It is used to
the revised E-CARGO model that aims at supporting role
evaluate and check the flexibility of a group when its
transfer. Section IV describes fundamental terminologies for
membership and/or roles change. Role transfer is a complex
role transfer; Section V discusses the role transfer problem and
event that may involve many relevant roles. When an
relevant theorems; Sections VI, VII, and VIII describe the
organization encounters a crisis situation, not every one can
algorithms and their implementation for role transfer. Section
transfer his/her roles. When one person transfers to a new role,
IX extends the role transfer problem to a temporal role transfer
his/her original role needs to be assumed by another if the role
problem and gives its solution algorithm. Section X concludes
is still required in the system. This change might initiate a series
the paper.
of role transfers. For example, in a battle field, if a high rank
officer is disabled, a similar or lower rank officer is needed to
II. RELATED RESEARCH
play his/her role. The role played by the similar or lower rank
Although role transfer is an important problem in
officer may need to be played by another, etc. A
management, organizational behavior and performance, and
highly-available computer system should meet the similar
system development, there is no comprehensive research on
requirement for computers, sub-systems, components to
role transfer theory, algorithms and practice. Some research
transfer their functions (or roles) to recover from a faulty state.
mentioning the similar problem uses different terms, for
We generally need duplicate them to tolerate faults.
example, resource assignment [5] and job assignment [10].
One specific role should be played by more than one person
Some related research is those in agent systems [14] and
(computer, sub-system, or system component). One person
wireless communications [2] using the term role assignment.
should be able to play more than one role [15, 17-20].
Others mainly investigate people s or organization s behaviors
However, how many roles should a person play or potentially
[7, 12] when role transfer happens and they use the term role
transition. The research by sociologists and psychologists
Manuscript received January 21, 2007, revised September 5, 2007, accepted mainly concerns the behavior of people and organizational
April 27, 2008. This work was supported in part by National Sciences and
performance when role transition occurs [1, 3, 4, 13].
Engineering Research Council of Canada (NSERC, No. 262075), IBM Eclipse
Research on the delegation of rights (tasks, authorization,
Innovation Grant, and Changjiang Scholars Program, PRC Ministry of
permissions, responsibilities, or even roles) [9, 11, 16] deals
Education.
H. Zhu is with the Department of Computer Science and Mathematics,
with the problem of transferring rights (permissions,
Nipissing University, 100 College Drive, North Bay, Ontario, P1B 8L7,
responsibilities or roles) to neighbor agents or subordinate
Canada(phone: 705-***-**** ext. 4434; fax: 705-***-****; e-mail: haibinz@
users. It mainly provides policies, rules or protocols to
nipissingu.ca).
M. C. Zhou is with the Department of Electrical and Computer Engineering, guarantee that the transfer (sometimes copy) process is
New Jersey Institute of Technology, Newark, NJ 07102, USA and School of
possible, complete, trustable and secure. The results are mainly
Electro-Mechanical Engineering, Xidian University, Xi an, 710071, China
(e-mail: abp65w@r.postjobfree.com).
> SCH - SMCA07-01-0025.R1 where n is the
used for computer security.
identification of the group; e is an environment for the group to
The current research shows that there are indeed strong
needs to investigate the role transfer problem. The research work; and J is a set of tuples of an agent, role, and complex
results presented in this paper are expected to apply in many object, i.e., J {
=
q, (o ) ( e.B )
different fields, such as, information systems, management, }.
production, and manufacturing industry.
In a crisis, the E-CARGO model can be used to demonstrate
the states of a group of people using an emergency system. The
III. REVISED E-CARGO MODEL FOR EMERGENCY SYSTEMS
agents and related roles in the system clearly tell the people
Without a clear specification of components, there would be their responsibilities and rights. If one person is called out of
no real successful system. By establishing a formal model to the group, another in it must take the position of that person.
define and specify a role, we can obtains a clear view of The computer system can quickly show the new roles to the
systems. A well-defined internal structure is a guarantee for a people in the group if an efficient role transfer mechanism is in
successful system. It supports the robustness, efficiency and place.
correctness of the entire system. By E-CARGO [17, 18], we
mean Environments, Classes, Agents, Roles, Groups and IV. BASIC DEFINITIONS
Objects. A role-based system is described as a 9-tuple. ::= In some situation, especially a crisis, the agent-role, where, C is a set of classes; O is a set relationships need to be changed. Only some agents, roles or
of objects; A is a set of agents who are representatives of human groups are critical. We need to discern the differences in order
users; M is a set of messages; R is a set of roles; E is a set of to deal with a crisis effectively. To understand the problem of a
environments; G is a set of groups; s0 is the initial state; and H is crisis situation, we need to define some common terms. In the
a set of users. following discussion, we use agents or people interchangeably
To deal with the role transfer problem in organizations and and are mainly concerned about Ac and Ap of a role r, and rc and
systems, we emphasize the relationships among roles and Rp of an agent a.
agents in a group. Therefore, we restate the details of an agent, Definition 1: Role r is current to agent a if a is currently
role, environment and group. The definitions of these playing r, i.e., r =a.rc; and a is called as a current agent of r, i.e., a
components are given as follows, where, if x is a set, x is its r.Ac. Role r is potential to a if a is qualified to play but not
cardinality: a.b means b of a or a s b: currently playing it, i.e., r a.Rp; and a is called as a potential
A role is defined as r ::= where n is the agent of r, i.e., a r.Ap. The current role and all potential roles
identification of the role; I ::= denotes a set of of an agent is called as its role repository, i.e., {rc} Rp. Role r
messages, where Min expresses the incoming messages to the is critical if it has only enough agents currently playing it, i.e.,
g, ( g.e.B) ( r.Ac = q.l).
relevant agents, and Mout expresses a set of outgoing messages
or message templates to roles, i.e., Min, Mout M; Ac is a set of Definition 2: Group g is workable if for each role r there are
agents who are currently playing this role; Ap is a set of agents
enough agents to play it, i.e., r R ( q, ( g.e.B)) ( r.Ac q.l)). If a role loses its current agent(s), g
including classes, environments, roles, and groups that can be
re-distributes the agents to play roles. Such re-distribution is
accessed by the agents playing this role.
called as a role transfer. A role transfer is successful if g is
An agent is defined as a ::=, where n is the
workable after it.
identification of the agent; ca is a special class that describes the
Definition 3: An agent is critical if there is no successful
common properties of users; s is the profile of the person whom
role transfer to make group g workable once it leaves g. When
the agent is representing; rc means a role that the agent is
an agent leaves g, g loses this agent and this agent is a lost agent
currently playing. If it is empty, then this agent is free; Rp means
of g. Group g is critical if every agent in it is a critical one. A
a set of roles that the agent has potential to play (rc a.Rp); and
level-n emergency occurs if g has lost n ( 1) agents. g is
Ng means a set of groups that the agent belongs to.
level-n strong if it is workable via successful role transfer after
An environment e ::= where n is the identification of
a level-n emergency occurs.
the environment; and B = {} is a set of 3-tuples of role,
Definition 4: A graph of group g is defined as a tuple, G =
number range and an object set. The number range q tells how, where, V is the node set and E is the arc set, and V =
many users may play role r in this environment and q is a tuple R A, and E = { a A } { a A r
of number, where l means the lower bound of the a.Rp}. There is a partition in g if its graph is not connected [8].
number of agents to play this role and u the upper bound. The Note that, a.Rp is a set of all the potential roles of an agent a.
object set expresses the objects accessed by the agents who The agent can directly serve the requests relevant to its current
play the relevant role. The objects in are mutually exclusive, role. For an agent, a potential role can become current and vice
i.e., one complex object in this set can only be accessed by one versa. An agent can have only one current role. That is to say,
agent (user). For each tuple, q.l q.u. In an emergency an agent can hold many potential roles at the same time but only
system, we are more interested in l.
> SCH - SMCA07-01-0025.R1 SCH - SMCA07-01-0025.R1 0 return TRUE;
0 0 0 1 0 1 0 0
4) A[i]=1;//The first agent is added to the agent array; 0 0 0 0 1 0 1 0
5) R[j]=1;// The first role is added to the role array;
0 1 0 0 0 1 0 1
6) Set a tag T :=1 to show that at least one new agent is
Fig. 7. A potential roles matrix
added to the agent array and one new role to the agent
Output: Success - an M N current role matrix C1 in which
array;
there is no column with all zeros. Failure - an M N current role
7) Collect all the roles touched by agent i;
matrix C1 in which there is still a column with all zeros.
8) While (T==1) // A new role is added
Process (C0, C1, Q, M, N):
{ T := 0;
{//Note: := means assignment from right to left and
Collect all the agents touched by the roles in array R
= //means that the left is equal to the right.
and set T=1 if a new agent is added;
If (M=0 or N = 0) then return failure;
If (T==1) // A new agent is added.
If (in matrix Z=Q+C0 there is one column with all zeros,
{T := 0;
i.e., Z[j, i]=0 (j =0, 1,, N-1)) then return failure;
Collect all the roles touched by the agents in array A
C1:=C0;
and set T=1 if a new role is added;
For (all columns of C1)
}
{ If (column j has all zeros in C1)
}
{ From Q, find row number i Q[i, j] =1;
9) If (all agents are added into the array A and all the roles
In C1, check if this agent (i) has no current role, i.e., it
to R) return FALSE else TRUE.
is a free agent;
The algorithm is of complexity O(MN2). It seems more If (Yes)
complex than a typical DFS (Depth First Search) algorithm [6] { C1[i, j]:= 1, Q[i, j]:=0;
as DFS has complexity O((M+N)2) when an adjacency matrix C0 := C1 and Q := Q;
is used. However, if M is a constant, it is similar to the typical Delete row i and column j from C0 and Q ;
DFS algorithm, i.e., O(N2); if N is a constant, it is better than M := M -1, N := N-1;
DFS, i.e., O(M). Call Process(C0, C1, Q, M, N);
Q:= Q and C1 := C1 with keeping the original row i
VII. ROLE TRANSFER ALGORITHM WITH MATRICES and column j;
A role transfer can be expressed by converting matrix C0 into Return;
C1 mathematically. For example, if C0 is shown as in Fig. 6 (a) }
and C1 Fig. 6 (b), a successful transfer exists, i.e., agent A2 is Else
{ Find the column index k such that C1 [i, k]=1;
now playing R2 and the group is workable. An example of
current role matrix C0 and C1 (M = 8, N = 8) is shown in Fig. 1. If (Yes)
{ C1[i, j]:= 1, Q[i, j]:=0, Q[i, k]:=1, C1 [i, k] := 0;
Fig. 6(a) (C0) expresses the situation of Fig. 2(a) when A8 is lost
C0 :=C1and Q := Q; delete row i and column j
and Fig. 6(b) (C1) expresses a solution of Fig. 6(a). From C0 and
from C and Q ;
0
C1, there is a role transfer, i.e., A2 acquires a new current role
M :=M -1, N:= N-1;
R2.
Call Process(C0, C1, Q, M, N);
To make a group workable, a successful transfer is needed and
Q:= Q and C1 := C1 but keeping original row i
can be conducted with the help of matrix Q. Q expresses the
and column j;
potential roles of each agent. For example, Fig. 7 shows such a
Return;
matrix for Fig. 1(b) after A8 leaves.
}
1 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 Else
1 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 Return failure;
0 0 0 0 0 0 0 1 0 0 0 0
}
0 0 1 0 0 0 0
0 0 0 0 0 0 0 1
0
0 0 0 0 }
0 0 1 0 0 0 0 0 1 0 0 0
0 0 0 0
0 0 0 1 0 0 0 0 0 1 0 0 }
0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
Report success;
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
}
(a) (b)
> SCH - SMCA07-01-0025.R1 mapping for current agents U and a set of role
transferRoles is used to transfer roles in the group (Step 2).
mapping for qualified agents V, and a role w
The key point of the implementation is that we need a graph
without a current agent, i.e., a A ( U).
retrieval algorithm and a back traceable search algorithm.
Output: Success - a group G with a set of roles R, a set of
O(M+N) +
The complexity of the algorithm is C(M, N) =
agents A, a set of mapping for current agents U, a
set of role mapping for qualified agents V, r O(M) C(M-1, N-1). Treating N and M as a constant, we have
R, a ( U). Failure - a group G with a set of roles R, a C(M) = O(M!) and C(N) = O(N2), respectively. Compared with
set of agents A, a set of mapping for current
the algorithm using matrices, this one is more affected by the
agents U and a set of role mapping for qualified
agent number. The difference comes from the recursive
agents V and a role without current agent w, i.e., a A U). latter searches in the agent space.
Process:
Step 1: Preparing for role transfer: IX. TEMPORAL ROLE TRANSFER
1) Build R a set of all the roles in group G.
Section V and VII discuss the methods how to check if a
2) Build A a set of all the agents in group G.
group has a successful role transfer when there are enough
3) Set w the role currently without a playing agent.
agents to play roles. That is to say, we assume that there are
4) If RA report failure, i.e., there is no successful
sufficient agents or people to avoid a crisis situation, i.e., A
role transfer.
R . In fact, in an emergency situation, scarcity is often more
5) Else proceed to Step 2.
than sufficiency, i.e., AR . In this situation, the intuitive
Step 2: RoleTransfer(A, R, w):
solution is letting a person play more than one roles in different
1) If A = and R then report failure and exit.
time segments.
2) If R = then report success and stop.
3) For all a A do To express temporal role transfers, we actually have three
{ If w a.Rp (i.e., V) then parameters, i.e., roles, agents, and intervals. The problem
becomes: could we check if a group is workable in a period
{
If a.rc is empty then set a.rc with w. when we allow time sharing agents? That is to say, if every role
has enough agents to play at one in p (p = n ), the group is
Report success and exit.
} considered workable. For example, in a crisis, an office still
} works if each position has at least two hours with a person
4) For all a A do working on it in a 24-hour day, where, p = 24 hours, and = 2
If w a.Rp (i.e., V) then
{ hours and n = 12.
Save a.rc to q;
{ We can understand this problem with an example shown in
// Note that, q is a temporary space to store the Fig. 8. In Fig. 8(a), the group is not workable and has no
//current role. successful transfer after A7 is lost, because there is no other
Set a.rc with w; agent that can play role R7, i.e., A7 is a critical agent. If A6 is lost,
Set A with A.remove(a); the group can be scheduled workable in a period p at scale 2.
Set R with R.remove(w); That is to say, for any period p, we can separate it into 2
Set w with q; intervals and make the group temporally workable shown in
Call RoleTransfer(A, R, w); Fig. 8(b) and Fig. 8(c). In this period, A5 transfer back and forth
> SCH - SMCA07-01-0025.R1, where Cr replaces the original rc to express a agent Ai plays role Rj at interval k.
list of current roles, i.e., a list of tuples in a form of ; and Properties of role playing matrices for a workable group are:
0 i =0 C k [i, j ] n, j = 0, 1,, l-1, k = 0, 1,, n-1. (1)
m 1
r ::=, where At replaces the original Ac to
express a list of tuples of .
Definition 5: Suppose that a period is divided into n
m 1
C k [i, j ] = 1, i = 0, 1,, n-1, k = 0, 1,, l-1. (2)
intervals, i.e., = { 0, 1,, n-1}. When an agent a plays role r at an j =0
interval i (i =0, 1,, n-1), is called an agent-interval for r
0 k =0 C k [i, j ] n, i = 0, 1,, m-1, j = 0, 1,, l-1. (3)
n 1
and is called a role-interval for a. A group g is temporally
workable in at scale n if for each role r there are enough
agent-intervals to play it, i.e., r R ( q, ( g.e.B) ( i ( r. At)) ( At q.l)).
role at one interval; and (3) tells if there is role transfer for a
Before developing an algorithm for temporal role transfer, it
specific agent and role.
is needed to understand the inherent properties of the