Infosys Technologies Limited, Bangalore, India. (Anjaneyulu_Pasala, Niranjani_S, Ravi_Gorthi, Krupa_Bg)@infosys.com. Abstract. Inter team communication ...
Context-Aware Mobile Assistant Agents in Software Project Management Anjaneyulu Pasala, Arun Sethuraman, Niranjani S, Ravi Prakash Gorthi, Krupa Benhur Gadde Knowledge Engineering Research Center, Software Engineering and Technology Labs, Infosys Technologies Limited, Bangalore, India. (Anjaneyulu_Pasala, Niranjani_S, Ravi_Gorthi, Krupa_Bg)@infosys.com Abstract Inter team communication within a software project team is currently cumbersome considering the globally distributed development nature of software projects. We have designed a novel approach based on mobile multi-agent technology that would assist the members of a project teams in effectively communicating within themselves in scheduling meetings and relay of other information among globally distributed teams. Modeled using the GAIA methodology, the system also allows for offline scheduling of meetings and automatic synchronization as and when connection is established. The prototypical system has also been designed using the JADE LEAP platform. The novelty of this approach gives us a better insight into the utility of agent technology as applied to personalized software project management systems.
1. Introduction Globally distributed software project management has been in the limelight over the last decade, especially with the increasing number of software service projects being executed across distributed teams to take the advantage of specialized knowledge locally available. Usually, these teams work in direct coordination with clients and in turn distribute the total work among the teams. In such scenarios, the problem of project management is one of large implications, considering multiple (or single large) projects being handled by project managers at the same time. Project teams have been looking for newer technologies to assist them in various phases of software project management such as performing planning, development, testing, deployment, maintenance and reengineering effectively so that they can save costs. The creation of intelligent multi-agents would assist the teams in effectively communicating within and
among each other, and also controlling the relay of project artifacts amongst the project teams. In this regard, the field of software project management was found to be highly applicable, for the following reasons: • Software Project Management (SPM) [3] is an emerging area of management with a projection to grow [1]; every 5% improvement in productivity or quality can potentially save millions of dollars to an organization; • SPM is well structured concept, with well defined quality benchmarks at each stage of the project, thus lending itself to the application of multi-agent systems to enhance the degree of automation in software project, quality and delivery management. On analysis, we have found that the concepts and techniques of intelligent, cooperative, dialog based multi-agent technology can address some of the above issues of effective SPM. Multi-agent technology has the potential to offer the following advantages: • Multi-agents effectively cooperate among themselves in solving problems; they can also exhibit mobility within the system so that interoperability is easily achieved. • Predictable and programmable behavior of agents results in credible performance of the agents-based systems. • Multi-agents perform their assigned tasks consistently and efficiently. Also, owing to greater degrees of geographic distribution within software development teams, the use of wireless technologies as a means to enable ease of communication, any time and any where [8] has steadily increased. It was also found that the portability of agent technology onto light-weight devices for the deployment of personal assistant agents is an interesting area of application, both in the field of artificial intelligence and in the field of pervasive and mobile computing. In this regard, we have chosen to
combine these two technologies to conceptualize a tool that would aid an entire project team in communication of project details and hence considerably reducing the amount of manual effort that goes into performing mundane tasks. Sethuraman et al [9] have also performed a case study of the application of assistant multi-agent systems on a real life project using the MAS technology on networked systems and have shown approximately 15% of effort saved on manual negotiation tasks in typical development and maintenance tasks. We propose an enhancement to this technology, viz introducing MAS for software project management onto PDAs or other light weight devices that are capable of communicating with each other. Though the benefits of this application have not been measured, we are confident that mobile MAS for this purpose would only further decrease the effort spent in manual activities. The rest of the paper is organized as follows. In section 2, we present related research work in multiagent systems and their applications to mobility. In section 3, we discuss the system level framework that has been developed, with the negotiation based meeting scheduler as a possible application. The design and implementation of the prototype has been presented in section 4. The paper concludes with directions for future research in section 5.
towards mobile agent architecture, by means of creating service agents, broker agents and personal assistant agents. The service agents are responsible for maintaining the data access, interpretation and delivery to other service agents. The broker agents are responsible to provide locating and contracting services whereas the personal assistant agents act on behalf of their users and aid the user through learning from his preferences, and also coordinating the activities with other agents. Other applications of mobile agents include coordination of activities among workers in a field, enabling cooperation and minimizing user intervention and increasing accessibility. In mPower project, Lee et al [11] describe a real life deployment of agents in an application by British Telecom among network and maintenance engineers, where they have utilized this agent based approach to achieve workforce cooperation. Our research is hence aimed at proving the usability of this approach when applied to a globally distributed software project management scenario to address disconnected operations, hence enabling team members to work even when they are offline.
3.
Context aware mobile agents in SPM TEAM 1
2. Related research work In the previous works [2, 9] on applying multi-agent technology to aid the quality review process in a software project development scenario, Sethuraman et al [2] have described dedicated assistant agents that are deployed onto the computers of members in the project hierarchy. These agents, called the “Quality Manager Agent”, “Reviewer Agent” and “Software Engineer Agent”, respectively, are capable of monitoring the environment, periodically prompting the actors in the project with review requests, consents to review and controlling the relay of review artifacts and their corresponding reviewer comments across the project teams. Agent technology deployed onto mobile devices has been recently by several authors [10, 11, 12], although their scope has been limited to applications in the tourism industry [10] and mobile services [12]. Spanoudakis et al [12] have proposed, detail an agent based approach for providing information services for tourism planning, travel, search among others. They detail generic agent architecture for provision of support to mobility impaired people by means of mobile agents that assist them on the move. Their paper generically describes a standardized approach
TEAM 2
Server Agent deployed on mobile device
Direct Communication for relay of information Indirect Communication established via the server agent
Figure 1: General architecture of communication relay between agents deployed in a globally distributed software project An interesting point of failure of dedicated assistant agents deployed to assist in the Quality Review Process is the failure of communications owing to circumstances such as disconnections in the wireless networks. For example, like an actor not being at his
desk, failure of communications owing to network malfunctions; in which case, a backlog of ACL (Agent Communication Language) messages would lead to lapses in the calendar system, and hence rupture of the review process. Wireless communications, on the other hand, have proven more effective in terms of dedicated relay of instant messages, hence reducing the chances of communication gaps [8]. Hence we propose an intelligent multi-agent system to automate and handle communications for scheduling of project status meetings based on agent negotiations. A major advantage of utilizing a mobile-agent based approach to SPM is its capability to handle disconnected operations and automatically synchronizing with the calendar as and when connection is re-established. As shown in Figure 1, dedicated agents are deployed onto light weight devices such as PDAs or mobile phones that can communicate with each other and also with a central server agent. The central server agent plays a coordinator’s role among all the assistant agents that have connected with it. It registers each device as and when a communication is established and relaying necessary information to the device’s agent, depending on the position of the device’s owner in the project hierarchy. The central server agent then communicates the arrival of a project plan to the Project Manager’s (PM) agent. The PM agent works upon a certain degree of autonomy in deciphering the number of meetings that are required for the particular project, and scheduling the same accordingly. This meeting scheduling is achieved by means of calendar bookings, which work on a proposal-negotiate and confirm protocol. The PM agent suggests a certain time for a meeting based on the requirements, in required intervals. It then beams out a meeting request to the agent residing on another actor’s device. This agent accesses the calendar of the required agent, and proactively sends out an acceptance. The acceptance of a mutually convenient time for the meeting is achieved by means of a simple algorithm. The PM’s agent then works out a new timing or based on the importance of attendance of the actor. It goes ahead with the meeting request and sends him a notification of the same. Failure handling in case of network problems has also been included in our design of an intelligent system for enabling communications in the project development scenario. When the network fails, or the connectivity is lost, the agent would queue its tasks in the offline mode, and correspondingly synchronize with the server and other devices as and when connectivity is reestablished. For instance, consider a simple scenario with a server agent that has connected with two assistant agents. Upon registration with the server agent, a first assistant agent wants to schedule a meeting with the
second before the end of this week. But it so happens that the second assistant agent is currently offline and hence, the scheduling cannot be achieved right away. The first assistant agent hence queues up the meeting scheduler request until the second agent re-registers with the server agent and automatically fixes the appointment. If the second agent is in a different time zone or has over shot the period within which the first agent wanted to meet with him, then the first assistant agent accordingly calculates a new time for the meeting and repeats the scheduling process with the second agent. This process has been modeled and programmed, a brief description of which is presented in the following sections.
3.1 Modeling MAS using GAIA The development of an agent-based system requires the application of necessary software engineering techniques that are designed especially for the realization of MAS; an object-oriented analysis and design of the same would not effectively bring out the full potential of an agent based system, which goes way beyond plain object orientation in giving the objects a relative autonomy. This is because an object oriented design would only allow us to design objects and their goals and also specify the task flow and use cases for the task flow. Agent orientation on the other hand aids the user to create intelligent objects with their own behavior, which cannot be modeled using traditional object oriented design methodologies [6]. Hence we choose to model our agent-based systems upon established norms in the field of MAS to enable us to analyze and implement our requirements. The GAIA Methodology [5, 7] deals with the modeling of both internal and external operational aspects of the system components and also the system as a whole. It defines the structure of an MAS based system in terms of a ‘Roles Model’, wherein it identifies key role players within the MAS and the interaction protocols between them. Each “Role” is composed of four attributes: 1. Responsibilities: these are expressed in terms of (a) Liveness properties - which are tasks that the agent role must fulfill given certain environmental conditions. (b) Safety properties - which ensure an acceptable state of affairs maintained during the execution cycle. 2. Permissions - which information resources the agent is allowed to access. 3. Activities - tasks that the agent performs without interacting with other agents 4. Protocols - patterns of interaction between different agents in a MAS)
Each protocol is thence composed of 1) purpose, 2) initiator, 3) responder, 4) inputs, 5) outputs and 6) processing. Our analysis of the meeting scheduling process led to the identification of the following roles within the generalized project scheduling scenario: 1) Server Agent: The central server agent that monitors the environment and sends out registration requests as and when other agents are detected within the range of the server. Post registration, this agent coordinates the meeting queues that have been pending from the different agents in the system. It resolves conflicts and calculates a mutually convenient time for the meeting and books the meeting. 2) Assistant Agent(s): These are the personal assistant agents that are deployed onto the devices of individuals in the project hierarchy. These agents are capable of registering with the Server agent, calculating a convenient meeting time that is based on the person’s availability, accounting for difference in time zones and offline time and beaming out the same back to the Server agent. All the interaction protocols that are to be modeled have been marked with underlines. Also, a ‘ω’ would indicate an infinitely repeated activity, a ‘||’ showing an OR, a ‘.’ representing an AND and a ‘|’ for concurrency.
h) Wait for the confirmation of the mutually convenient timing from the assistant agent. i) On arrival of a confirmation, book the necessary resources and close the scheduling.
1) Role Schema: Server Agent Description: The role involves the following: a) Proactively monitoring the system for the availability of other agents within its range for communication. b) Once an assistant agent comes into the range, send a registration request to the assistant agent, showing also the services that are available to the agent, according to his role in the project hierarchy. c) Wait for a registration confirmation from the assistant agent. d) Upon registration, save the details of this agent in an XML, such as the Agent Identifier, IP Address, Bluetooth port, agent role, etc. e) Beam out any pending meeting schedules if they exist, to the registered assistant agent. f) If no pending meeting schedules exist, go into idle mode and wait for a schedule to be uploaded onto the server. g) If a schedule has been uploaded onto the server, then send out a meeting request to the corresponding registered agents, with a range of dates and times for the meeting.
2) Role Schema: Assistant Agent Description: The role involves the following: a) As and when a registration request is received from the server agent, confirms the same based on transit period within the range or based on availability. If there is a time zone mismatch, then calculate a convenient timing accordingly. b) Upon receipt of a meeting request, calculate an appropriate timing for the meeting and notify the Server Agent of the same. c) Upon loss of signal or the device being out of range of communication, queue up the pending requests that are to be sent to the server agent and convey the same as and when connection is established. If upon re-connectivity, the queued timings are out of date, then the assistant agent recalculates the timings accordingly.
Protocols and Activities: SendMeetingRequest, SendRegistrationRequest, SendMeetingConfirmation, SendRegistrationConfirmation, SendServices, Register, MonitorForAgents, WaitForRegistrationConfirmation, WaitForMeetingConfirmation, SelectNewTiming, PingForSignal, WaitForAvailability, QueueRequests Permissions: reads ProjectSchedule, reads Directory Responsibilities: Liveness: Register: (MonitorForAgents . ω SendRegistrationRequest) . (WaitForRegistrationConfirmation . Register . SendRegistrationConfirmation . SendServices) Meeting Scheduling: (SendMeetingRequest . WaitForMeetingConfirmation . (SendMeetingConfirmation | (SelectNewTiming . SendMeetingRequest) Backlog Handling: (PingForSignal . WaitForAvailability) . ((Register | Meeting Scheduling) | (QueueRequests . WaitForAvailability)) Safety: Nil
Protocols and Activities: SendMeetingConfirmation, SelectNewTiming, SendRegisterConfirmation, WaitForRegistrationRequest, WaitForMeetingRequest, PingForSignal, WaitForAvailability, QueueRequests Responsibilities: Liveness:
Register: (WaitForRegistrationRequest . SendRegisterConfirmation) ω Meeting Scheduling: WaitForMeetingRequest . (SendMeetingConfirmation | (SelectNewTiming . SendMeetingConfirmation )) Backlog Handling: (PingForSignal . WaitForAvailability) . ((Register | Meeting Scheduling) | (QueueRequests . WaitForAvailability)) Safety: Nil.
3.2 GAIA Agent Model The GAIA agent model as mentioned before diagrammatically represents the different agent types in the MAS and their instances with dependency links marked with arrows. The agent model of the quality review management process is shown in Figure 2; agent instances effectively act as the interface between two roles.
Figure 2: GAIA agent model GAIA Interactions Model The GAIA Interactions model specifies the links between the roles identified in the analysis phase and is composed of a set of protocol definitions, one for each type of inter-role interaction. The interactions model for the scheduler is given below: 1) Protocol: SendMeetingRequest: Initiator: Server Agent Receiver: Assistant Agent Responding Action: SendMeetingConfirmation or SelectNewTiming Purpose/Parameters: To beam out a request to fix a meeting at a decided timing. 2) Protocol: SendRegisterRequest Initiator: Server Agent
Receiver: Assistant Agent Responding Action: SendRegisterConfirmation Purpose/Parameters: To register an incoming agent with the server as and when it comes within range of communication. The other interactions are modeled similarly, detailing the communication parameters and the purpose of the communications. The GAIA Services Model The GAIA Services model is used to identify the services or functions associated with each agent role and to list their main properties. The various services invoked by the scheduler are described below: 1) Obtain Project Plan Inputs: Project Plan with specific deadlines and number of meetings required. Outputs: Meeting Schedule Pre-Condition: The Server Agent is brought up from the idle mode to start a scheduler process. Post-Condition: Initiates meeting as and when an assistant agent is in the communication range. 2) Send Registration Request Inputs: Ping from incoming assistant agent Outputs: Send registration request Precondition: Assistant agent and Server agent are up and running and ping when in range. Post-Condition: Registration is initiated The other processes invoked by the scheduler process, such as the sending meeting request, calculation of a new meeting time, sending confirmation, are also modeled similarly, as given above. The GAIA acquaintances model, which plainly details the agents that are involved in the transaction, we find is too trivial in a simple scenario like the scheduler process. Hence we do not present the same.
4. Development using JADE A prototype has been developed based on the above model for meeting scheduling within project teams using the JADE framework for agent development [4, 5]. The screenshots below exhibit the agents that have been deployed onto a single asset and the negotiation process between them towards scheduling a meeting. Figure 3 shows a screenshot of two agents that have been deployed onto a system, and also how the central server agent has registered the two assistant agents with it.
extending this technology to other aspects of SPM, including monitoring and control and relay of data artifacts via file transfer protocols. In the paper, we have described the modeling of these agents using the GAIA methodology for agent development, and also exhibited how a mobile agent based technology could be used to handle disconnected team operations.
6. References
Figure 3: Meeting scheduler agents – 1
Figure 4: Meeting scheduler agents - 2 Figure 4 shows a typical scheduling screen, where the agents display a scheduler window that would aid the team members to specify their preferences for timings and also when they would like to meet with the other members. The agents then keep track of the user’s preferences and correspondingly schedule the meetings. The prototype is currently being ported to light weight devices by means of the JADE LEAP platform.
5. Conclusion A solution to address some of the communication problems that are experienced by the project managers during execution of globally distributed software projects has been proposed. The solution based on mobile-multi-agent systems using the GAIA methodology and JADE platforms have been implemented and an initial prototype has been built. We have chosen the scheduling problem to merely exhibit the possible applications of this technology to the field of SPM. We are currently working on
[1] Bruce M. Caldwell, et al., Continued Growth Forecast for IT Outsourcing segments, Gartner Research Report # G00124277, October, 2004, http://www.gartner.com. [2] Sethuraman, A., Yalla, K. K., Sarin, A., and Gorthi, R. P. 2008. Agents assisted software project management. In Proceedings of the 1st Bangalore Annual Compute Conference (Bangalore, India, January 18 - 20, 2008). Compute '08. ACM, New York, NY, 1-8 [3] B.Hughes and M.Cotterell. Software Project Management, Fourth Edition, TataMcGraw Hill, UK, 2005 [4] Fabio Bellifemine, et al, JADE Programmer’s Guide, June 2007 [5] P.Moraitis, N.Spanoudakis. The GAIA2JADE Process for Multi-Agent Systems Development, Applied Artificial Intelligence, 20:251-273, Taylor&Francis, 2006 [6] G.Weiss. Multi Agent Systems; A Modern Approach to Distributed Artificial Intelligence; The MIT Press, 2001 [7] F. Zambonelli, N. R. Jennings, and M. Wooldridge. Developing Multiagent Systems: The Gaia Methodology, ACM Transactions on Software Engineering Methodology, 12(3):317-370, July 2003. [8] B.Emmerson, D.Greetham, Computer Telephony and Wireless Technologies: Future Directions in Communications, Computer Technology Research Corporation; 1st ed edition (July 1997) [9] Sethuraman, A, Gorthi, R.P, Pappu N., Case Study in the Application of MAS Technology to Software Project Management [10] I. Mathieson, L. Padgham, B.Q. Vo, Agent Based Travel and Tourism Planning, AAMAS’05, July 25---29, 2005, Utrecht, Netherlands. ACM 1-59593-0940/05/0007 [11] Habin Lee, Patrik Mihailescu, John Shepherdson, "Realizing Teamwork in the Field: An Agent-Based Approach," IEEE Pervasive Computing, vol. 6, no. 2, pp. 85-92, Apr-Jun, 2007 [12] Pavlos Moraitis, Nikolaos Spanoudakis, "Argumentation-Based Agent Interaction in an Ambient-Intelligence Context," IEEE Intelligent Systems, vol. 22, no. 6, pp. 84-93, Nov/Dec, 2007