Published on

1 Comment
  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. A solution based on intelligent software agents to improve the data searching in the contact centers Claudiu Ionut Popirlan Faculty of Mathematics and Computer Science University of Craiova Craiova, Romania URL: E-mail: popirlan@inf.ucv.roAbstract—Many companies have been collecting customer- Java language. It simplifies the implementation of multi-agentrelated data for years, this was normally for administration systems through a middle-ware that complies with the FIPArather than customer management. In last year’s contact centers specifications [5] and through a set of graphical tools thatbecome more complex in their function and organization so that supports the debugging and deployment phases. Significantthe data searching become more formal to ensure consistency research and development into multi-agent systems has beenand efficiency. This paper suggests a multi-agent approach for conducted in recent years, and there are many architecturesdistributed data searching in context of contact centers to available today. The AgentLink project [6] maintains a list ofadvance and frame future discussion of this knowledge intensive projects with regard to any kind of agent-related topics and alsoenvironments. We prove the efficiency of data search using maintains a list of available agent toolkits. Nevertheless,intelligent software agents for contact centers with distributed several issues still need to be faced to make the multi-agentdata bases, considering an adequate case study and presentingexperimental results. technology widely accepted: x secure and efficient execution supports; Keywords-intelligent agents; mobile agent; software agent;multi-agent system; contact center; JADE; data searching x standardization; x appropriate programming languages and I. INTRODUCTION coordination models. The “software agent” term has found its way into a number The evolution of communication services over the pastof technologies and has been widely used, for example, in century has spawned a broad new industry known as electronicartificial intelligence, databases, operating systems and contact, which provides electronic communication mechanismscomputer networks literature. Although there is no single between people and businesses or organizations.definition of an agent ([1], [2], [3]), all definitions agree that anagent is essentially a special software component that has A contact center (also referred to as a customer interactionautonomy that provides an interoperable interface to an center or e-contact center) is a central point in an enterprisearbitrary system and/or behaves like a human agent, working from which all customer contacts are managed. Contact centersfor some clients in pursuit of its own agenda. Agent-Oriented are the contemporary successors of call centers. In addition toProgramming (AOP) is a relatively new software paradigm that phone services, they interface with customers via the internet,brings concepts from the theories of artificial intelligence into email, chat and fax. Call center is the common term for athe mainstream realm of distributed systems. telephone-based human-service operation. The call center industry is thus vast, and rapidly expanding in terms of both Agent-based systems [1] claim to be next generation workforce and economic scope. For example, it is estimatedsoftware capable of adapting dynamically to changing business that 70% of all customer-business interactions occur in callenvironment and of solving a wide range of knowledge centers and that $700 billion in goods and services were soldprocessing application. A multi-agent system is a loosely through call centers in 1997 [7]. The contact center typicallycoupled network of software agents that interact to solve includes one or more online call centers [8] but may includeproblems that are beyond the individual capacities or other types of customer contact as well, including e-mailknowledge of each problem solver. These multi-agent systems newsletters, postal mail catalogs, Web site inquiries and chats,can model complex systems and introduce the possibility of and the collection of information from customers during in-agents having common or conflicting goals. Although store purchasing. A contact center is generally part of ansophisticated software agents can be difficult to build from enterprises overall customer relationship management (CRM).scratch due to the skills and knowledge needed, the widely The modern contact center is a complex socio-technicalavailable agent construction toolkits may provide a quick and system. Some view contact centers as the business frontiers buteasy start to building software agents without much agent others as the sweat-shops of the 21st century. Either way,expertise. For example, JADE (Java Agent DEvelopment within our service-driven economy, telephone services are nowFramework) [4] is a software Framework fully implemented in unparalleled in scope, service quality and operational POSDRU/89/1.5/S/61968, Project ID61968 (2009)___________________________________ 978-1-4244-8625-0/11/$26.00 ©2011 IEEE
  2. 2. 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 ([13], [14]).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 ([9], [10], and [11]) 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 [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 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 [3]. 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
  3. 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 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 [7], [8], and [11]. 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 [15]. 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
  4. 4. 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 [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 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 [16], 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 [16] 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.
  5. 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: [6] [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˜koole/ccmath/book.pdfFigure 4. Using Mobile Agents in Searching Process