2. efficiency. Indeed, in a large best-practice call center, hundreds B. Mobile Agents using JADE
of agents can cater to thousands of phone callers per hour; In the last few years, several systems and programming
agent utilization levels can average between 90% to 95%; no environments have appeared to support the development of
customer encounters a busy signal and, in fact, about half of the distributed applications based on mobile agents ([13], [14]).
customers are answered immediately; the waiting time of those
delayed is measured in seconds, and very few abandon while
waiting.
The design of the modern contact center, and the
management of its performance, surely must be based on sound
scientific principles. This is manifested by a growing body of
academic multi-disciplinary research, devoted to call centers,
and ranging from Mathematics and Statistics, to Operations
Research, Industrial Engineering, Information Technology and
Human Resource Management.
In this paper is presented a multi-agent approach using our
preview results ([9], [10], and [11]) for distributed data
searching, in context of contact centers. We introduce
intelligent software agent model for the searching process of
contact center data bases infrastructures. Accordingly, the
paper presents the design and the architecture of the multi-
agent system for Java-based mobile agents. An adequate
example in the context of a contact center with search Figure 1. Mobile Agent Basic Architecture.
application in distributed data bases show the effectiveness of
the Java-based mobile agents approach. Mobile agents consist of three components: code, data, and
execution state:
II. INTELLIGENT SOFTWARE AGENTS IN JADE x The code contains the logic of the agent, and all
agents of the same type use the same code. The code
A. JADE –Medium Description must be separated from the code of the agency so that
Multi-agent systems can be realized by using any kind of it can be transferred alone to another agency, and the
programming language. In particular, object-oriented code must be identifiable and readable for an agency
languages are considered a suitable means because the concept (e.g., in the form of a file from the local file system or
of agent is similar with the concept of object. In fact, agents a byte stream from the network). Usually, as in other
share many properties with objects such as: inheritance, programs, an agent’s code consists of more than one
message passing, encapsulation, etc. Agent-oriented file (e.g., in the Java programming language they
programming languages are a new class of programming could be many class files).
languages that focus on taking into account the main
x The second component of an agent is data. This term
characteristics of multi-agent systems. Minimally, an agent-
corresponds to the values of the agent’s instance
oriented programming language must include some structure
variables if we assume an agent to be an instance of a
corresponding to an agent, but many also provide mechanisms
class in object-oriented languages. The data is
for supporting additional attributes of agency such as beliefs,
sometimes also called the object state. It is important
goals, plans, roles and norms. A list with several agent-oriented
to note that not all data items an agent can access are
languages can be found in [12].
part of its object state. Some variables reference
Software platforms and frameworks are the other key objects that are shared with other agents or the agency
means enabling the development of multi-agent systems. Most software itself, for example, file handlers, threads, the
provide a means to deploy multi-agent systems on different graphical user interface, or other resources and
types of hardware and operating systems, usually providing a devices that cannot be moved to other servers. Thus,
middleware to support their execution and essential operations we have to restrict the agent’s immediate data to those
such as communication and coordination. Some of these data items the agent owns and that are movable.
platforms and frameworks have the common goal of providing
x The third component is the execution state. The
FIPA-compliant functionalities to support interoperation
difference between object and execution state
between different multi-agent systems.
information is that the elements of the object state are
JADE is a software platform that provides basic directly controlled by the agent itself, whereas
middleware-layer functionalities which are independent of the execution state information is usually controlled by
specific application and which simplify the realization of the processor and the operating system. What this
distributed applications [3]. A significant merit of JADE is that means depends very much on the decision of the
it implements this abstraction over a well-known object- mobile agent toolkit designer and the underlying
oriented language, Java, providing a simple and friendly API. execution environment (processor, operating system,
virtual machine). In some toolkits, an agent’s
3. execution state is comprised of the current value of
the instruction pointer and the stack of the underlying
processor. In others it is not possible to determine the
execution state of an agent at all.
To conclude, the basic mobile agent structure is shown in
Figure 1.
C. Contact Center – Typical Process
A contact center would typically be provided with special
software that would allow contact information to be routed to
appropriate people, contacts to be tracked, and data to be
gathered. The contact center architecture is presented in many
studies, for example [7], [8], and [11]. A typical process in a
contact center can be resumed as follow: The customer dials
the call-center number and is greeted with a number of options
that include the following:
x a recorded message followed by the placement in
a telephone queue managed by an Automated Call
Distribution System (ACD);
x an Integrated Voice Response (IVR) that offers the
caller different options where caller interacts with
the IVR using a touch-tone telephone or voice
control;
x the call is immediately directed by an ACD to an
agent who manages the query. If the agent cannot
personally resolve the query they direct the call to
someone who can answer the query.
In this typical process we will be able to search the data
from a distributed data base system. In this respect, the java-
based agents visit, one after another, all or a part of the data
base servers to whom they ask for certain information.
III. USING MOBILE AGENTS IN SEARCHING PROCESS
In JADE agent systems are built using a variety of
techniques. For our architecture example, we use a simple
requirements, analysis, design, and development flow, as
shown in Figure 1.
A searcher agent is a kind of information agent that has one
particular role, which is to find one or more items in a data
base. It can be formally implemented as a goal-based or utility-
based agent. For our architecture, we use the Roles Model
method of analysis, which is a model within the Gaia Agent
Design Methodology [15]. It describes what a particular agent
does, why it does it, and what responsibilities and permissions
it has:
x To search the data (attribute value for a certain Figure 2. Object-oriented class diagram for searching process
object) in contact center with distributed data
bases; It refers to Agent and “OneShotBehaviour”, which are parts
x Read and search data from any open data base of the JADE library. The main class within the program is the
source; “SearcherAgent”, which is of type Agent in the JADE library.
An agent usually has a behavior. In this case, the
x Responsibilities: liveness, safety, “OneShotBehaviour” (which is also part of the JADE library)
SimpleAttributeSearcher = (BuildQuery, was chosen and extended to make “SearchingBehaviour”. The
ExecuteQuery, InformUserOfValue ). “SearchingBehaviour” will do the major part of the searching
work. An agent lives in a particular environment, and therefore
4. JADE provides one. JADE also provides a graphical user The sub-goals described in Figure 1 will be translated into
interface (GUI) to initialize, control, and terminate agents, as simple public methods in Java, whereas the overall goal is
shown in Figure 3. translated into a JADE Behaviour. We use an object-oriented
class diagram to transcribe the goal flow diagram into a form
that is ready for development in an object-oriented language
such as Java, as shown in Figure 2.
The input from the user (customer query) is in simple plain
text, and our multi-agent systems, described in [11] usually talk
in local database. The “BuildQuery” activity takes the data and
generates a simple query based upon the local data found in the
previous activity. “ExecuteQuery” then executes the query and
determines if the result is useful. If it is, the
“InformUserOfAnswer” shows the result to the user. If not, the
simple agent starts again with different data base (in distributed
context, other location).
In order to prove the efficiency of solution proposed we
will take into account the same scenario that was presented in
[10] with same values. The “SearcherAgent” creates only one
clone (“CloneSearcherAgent”) for each of the Data Base
Servers (3 clone). The searching process of each clone is
Figure 3. JADE Graphical User Interface
presented in Table 1. The final result which aggregates the
clone agent’s results was obtained in 0.8 seconds. When trying
IV. CASE STUDY AND SIMULATION RESULTS to understand the values of execution times we have to keep in
mind that the mobile agent’s code is executed quasi-parallel.
In order to illustrate the proposed agent-based solution for
searching data in contact center with distributed data bases, we
will explain the setting and describe a case study. TABLE I. EXPERIMENTAL RESULTS
The application exploits mobile agents to reach remote Distributed Data Warehouse
Table
distributed data bases, in contact center context, and locally Head DataBase Server1 DataBase Server2 DataBase Server3
(Czech Republic) (Bulgaria) (Greece)
access data of interest, analyzing them and extracting the
Durationa 0.6 0.7 0.4
required information without any need to transfer the data over
the network. For instance, a searcher agent sent to a remote a. in seconds
data base can analyze the local data and come back with the
attributes that contain a specific keyword. To speed up the V. CONCLUSION AND FUTURE WORK
research, the application can be shaped after a tree of The growth of contact centers, e-commerce, and more
concurrent searcher agents. If a searcher agent on a local data complex value chains has raised additional issues of enterprise
base finds links to other possibly interesting data on different data management and exploitation, while demonstrating
location (distributed context), it clones itself and has the clones beyond doubt that available data are insufficient to support new
follow these links, to recursively continue the search work on customer management processes.
different data bases, as shown in Figure 4.
In this paper a multi-agent approach for distributed data
The main indicator for efficiency, in contact center, is the searching in context of contact centers was presented. We
productivity [16], measured over a certain period (for example, provide a description of java-based agents, developed in JADE
a week). It is usually given, as in (1), as the percentage of time environment, and we presented a simple illustration to show
that an agent is working of his or her total scheduled working how the proposed system might work.
time.
As a further, we will try to implement agents in order to
adopt a control-oriented point of view, for example to request
Productivity TWT / (TWT TA) D E F
services while they require data/files. With the adoption of a
blackboard or a tuple space on each data base server, data can
where TWT is total working time and TA is time available. be accessed without requiring the presence of peculiar services
and in a more natural data-oriented style.
The percentage of calls that is answered in less than a
certain fixed waiting time is sometimes called the telephone We intend to develop a prototype of this multi-agent
service factor (TSF). Another commonly used waiting time system, which can demonstrate that more practical and relevant
metric is the average speed of answer (ASA). The Erlang C problems can be addressed successfully.
formula [16] gives the TSF, and can be used to compute the
average waiting time for a given number of human agents
(operators), service times and traffic intensity.
5. ACKNOWLEDGMENT
This work was supported by the strategic grant
POSDRU/89/1.5/S/61968, Project ID61968 (2009), co-
financed by the European Social Fund within the Sectorial
Operational Program Human Resources Development 2007–
2013.
REFERENCES
[1] S. Russell, and P. Norvig, Artificial Intelligence: A Modern Approach,
Prentice Hall, 1995.
[2] M. R. Genesereth, and S. P. Ketchpel, “Software Agents,”
Communications of the ACM, 37(7), pp. 48–53, 1994.
[3] M. J. Wooldridge, and N. R. Jennings, “Intelligent Agents: Theory and
Practice,” Knowledge Engineering Review, 10(2), pp. 115–152, 1995.
[4] F. L. Bellifemine, G. Caire, and D. Greenwood, Developing Multi-
Agent Systems with JADE, Wiley, 2007.
[5] FIPA, Foundation for Intelligent Physical Agents, website:
http://www.fipa.org
[6] www.agentlink.org
[7] A. Mandelbaum, A. Sakov, and S. Zeltyn, “Empirical analysis of a call
center,” Technical report, Faculty of Industrial Engineering and
Management, Technion—Israel Institute of Technology, Haifa, Israel,
2001.
[8] N. Gans, G. Koole, and A. Mandelbaum, “Telephone call centers:
Tutorial, review, and research prospects,” Manufacturing and service
operations management 5, 2003, pp. 79-141.
[9] G. Stoian, and C. I. Popirlan, “A proposal for an enhanced mobile agent
architecture (EMA),” Annals of the University of Craiova, Mathematics
and Computer Science Series 37, no. 1, 2010, pp. 71–79.
[10] N. Tandareanu, and C. I. Popirlan, “A Mobile Agents Approach for
Knowledge Bases Processing,” Proceedings of the Twelfth IASTED
International Conference on Intelligent Systems and Control (ISC 2009),
Cambridge, Massachusetts, USA, November 2–4, 2009, pp. 27-32.
[11] C. I. Popirlan, “Knowledge Processing in Contact Centers using a Multi-
Agent Architecture,” WSEAS TRANSACTIONS ON COMPUTERS,
ISSN: 1109-2750, Issue 11, Volume 9 (Online), pp. 1318-1327.
[12] R. H. Bordini, L. Braubach, M. Dastani, A. E. F. Seghrouchni, J. J.
Gomez-Sanz, J. Leite, G. O’Hare, A. Pokahr, and A. Ricci, “A Survey of
Programming Languages and Platforms for Multi-agent Systems,”
Informatica, 30(1), pp. 33–44, 2006.
[13] N. M. Karnik, A. R. Tripathi, “Design Issues in Mobile-Agent
Programming Systems”, IEEE Concurrency, Vol. 6, No. 3, pp. 52-61,
July-September 1998.
[14] P. Thati, P. H. Chang, and G. Agha, “Crawlets: Agents for high
performance web search engine,” Lecture Notes in Computer Science
2240, 2001, pp. 119-134.
[15] M. Wooldridge, N. R. Jennings, and D. Kinny, “The Gaia Methodology
for Agent-Oriented Analysis and Design”, Journal of Autonomous
Agents and Multi-Agent Systems, vol. 3, 2000, pp. 285-312.
[16] G. Koole, Call center mathematics, online book
http://www.math.vu.nl/˜koole/ccmath/book.pdf
Figure 4. Using Mobile Agents in Searching Process