efficiency. Indeed, in a large best-practice call center, hundreds B. Mobile Agents using JADEof agents can cater to thousands of phone callers per hour; In the last few years, several systems and programmingagent utilization levels can average between 90% to 95%; no environments have appeared to support the development ofcustomer encounters a busy signal and, in fact, about half of the distributed applications based on mobile agents (, ).customers are answered immediately; the waiting time of thosedelayed is measured in seconds, and very few abandon whilewaiting. The design of the modern contact center, and themanagement of its performance, surely must be based on soundscientific principles. This is manifested by a growing body ofacademic multi-disciplinary research, devoted to call centers,and ranging from Mathematics and Statistics, to OperationsResearch, Industrial Engineering, Information Technology andHuman Resource Management. In this paper is presented a multi-agent approach using ourpreview results (, , and ) for distributed datasearching, in context of contact centers. We introduceintelligent software agent model for the searching process ofcontact center data bases infrastructures. Accordingly, thepaper presents the design and the architecture of the multi-agent system for Java-based mobile agents. An adequateexample in the context of a contact center with search Figure 1. Mobile Agent Basic Architecture.application in distributed data bases show the effectiveness ofthe 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 codeA. 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 theprogramming language. In particular, object-oriented code must be identifiable and readable for an agencylanguages are considered a suitable means because the concept (e.g., in the form of a file from the local file system orof agent is similar with the concept of object. In fact, agents a byte stream from the network). Usually, as in othershare many properties with objects such as: inheritance, programs, an agent’s code consists of more than onemessage passing, encapsulation, etc. Agent-oriented file (e.g., in the Java programming language theyprogramming 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 termcharacteristics of multi-agent systems. Minimally, an agent- corresponds to the values of the agent’s instanceoriented programming language must include some structure variables if we assume an agent to be an instance of acorresponding to an agent, but many also provide mechanisms class in object-oriented languages. The data isfor supporting additional attributes of agency such as beliefs, sometimes also called the object state. It is importantgoals, plans, roles and norms. A list with several agent-oriented to note that not all data items an agent can access arelanguages can be found in . 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 agencymeans enabling the development of multi-agent systems. Most software itself, for example, file handlers, threads, theprovide a means to deploy multi-agent systems on different graphical user interface, or other resources andtypes 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 thosesuch 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. TheFIPA-compliant functionalities to support interoperation difference between object and execution statebetween 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, whereasmiddleware-layer functionalities which are independent of the execution state information is usually controlled byspecific application and which simplify the realization of the processor and the operating system. What thisdistributed applications . A significant merit of JADE is that means depends very much on the decision of theit implements this abstraction over a well-known object- mobile agent toolkit designer and the underlyingoriented language, Java, providing a simple and friendly API. execution environment (processor, operating system, virtual machine). In some toolkits, an agent’s
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 inFigure 1.C. Contact Center – Typical Process A contact center would typically be provided with specialsoftware that would allow contact information to be routed toappropriate people, contacts to be tracked, and data to begathered. The contact center architecture is presented in manystudies, for example , , and . A typical process in acontact center can be resumed as follow: The customer dialsthe call-center number and is greeted with a number of optionsthat 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 datafrom a distributed data base system. In this respect, the java-based agents visit, one after another, all or a part of the database servers to whom they ask for certain information. III. USING MOBILE AGENTS IN SEARCHING PROCESS In JADE agent systems are built using a variety oftechniques. For our architecture example, we use a simplerequirements, analysis, design, and development flow, asshown in Figure 1. A searcher agent is a kind of information agent that has oneparticular role, which is to find one or more items in a database. It can be formally implemented as a goal-based or utility-based agent. For our architecture, we use the Roles Modelmethod of analysis, which is a model within the Gaia AgentDesign Methodology . It describes what a particular agentdoes, why it does it, and what responsibilities and permissionsit 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
JADE provides one. JADE also provides a graphical user The sub-goals described in Figure 1 will be translated intointerface (GUI) to initialize, control, and terminate agents, as simple public methods in Java, whereas the overall goal isshown 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  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  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 forsearching data in contact center with distributed data bases, wewill explain the setting and describe a case study. TABLE I. EXPERIMENTAL RESULTS The application exploits mobile agents to reach remote Distributed Data Warehouse Tabledistributed 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.4required information without any need to transfer the data overthe network. For instance, a searcher agent sent to a remote a. in secondsdata base can analyze the local data and come back with theattributes that contain a specific keyword. To speed up the V. CONCLUSION AND FUTURE WORKresearch, the application can be shaped after a tree of The growth of contact centers, e-commerce, and moreconcurrent searcher agents. If a searcher agent on a local data complex value chains has raised additional issues of enterprisebase finds links to other possibly interesting data on different data management and exploitation, while demonstratinglocation (distributed context), it clones itself and has the clones beyond doubt that available data are insufficient to support newfollow 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. Weproductivity , measured over a certain period (for example, provide a description of java-based agents, developed in JADEa week). It is usually given, as in (1), as the percentage of time environment, and we presented a simple illustration to showthat 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 canwhere 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 acertain fixed waiting time is sometimes called the telephone We intend to develop a prototype of this multi-agentservice factor (TSF). Another commonly used waiting time system, which can demonstrate that more practical and relevantmetric is the average speed of answer (ASA). The Erlang C problems can be addressed successfully.formula  gives the TSF, and can be used to compute theaverage waiting time for a given number of human agents(operators), service times and traffic intensity.
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  S. Russell, and P. Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, 1995.  M. R. Genesereth, and S. P. Ketchpel, “Software Agents,” Communications of the ACM, 37(7), pp. 48–53, 1994.  M. J. Wooldridge, and N. R. Jennings, “Intelligent Agents: Theory and Practice,” Knowledge Engineering Review, 10(2), pp. 115–152, 1995.  F. L. Bellifemine, G. Caire, and D. Greenwood, Developing Multi- Agent Systems with JADE, Wiley, 2007.  FIPA, Foundation for Intelligent Physical Agents, website: http://www.fipa.org  www.agentlink.org  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.  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.  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.  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.  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.  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.  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.  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.  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.  G. Koole, Call center mathematics, online book http://www.math.vu.nl/˜koole/ccmath/book.pdfFigure 4. Using Mobile Agents in Searching Process