Cognitive Agent for Automated Software Installation – CAASI Umar Manzoor and Samia Nefti Department of Computer Science, School of Computing, Science and Engineering, The University of Salford, Salford, Greater Manchester, United Kingdom
[email protected],
[email protected]
Abstract. With the evolution in the computer networks, many companies are trying to come up with efficient products which can make life easier for network administrators. Silent automated installation is one category among such products. In this paper, we have proposed Cognitive Agent for Automated Software Installation (CAASI) which provides silent, automated and intelligent installation of software(s) over the network. CAASI will intelligently install any kind of software on request of the network administrator. CAASI uses an efficient algorithm to transfer the software installation setup on the network nodes. The system is fully autonomous and does not require any kind of user interaction or intervention and performs the task(s) over the network with the help of mobile agents. Keywords: Automated Software Installer, Network Installation, Silent Installation, Cognitive Agents, Multi-Agent System.
1 Introduction Computer technology plays an important role and become a necessity in current modern world. Computer networks have become core part of every organization in today’s modern world. Hospital, software houses, offices, colleges, universities etc computer networks exists every where and have become the backbone of every organization. Computer networks have become very complex (network consisting of networks of networks) and managing, maintaining such networks has become a challenging task for network administrators [19]. Network administrator along with its team is responsible for maintaining and managing the network and they have to keep each and every node of the network up and running. The job includes monitoring of network nodes (i.e. monitoring of malicious applications on network), software deployment (i.e. installation /un-installation of software’s) on network nodes and management of network (adding / removing resources on the network). Software deployment on network sometimes becomes very tedious and time consuming task as the process needs human interaction. Traditionally, network administrator or their subordinates have to physically move to each computer in the network one by one and run the installation setup manually which initiate installation wizard. The installation wizard helps the user in the installation of the software and usually M.D. Lytras et al. (Eds.): WSKS 2009, LNAI 5736, pp. 543–552, 2009. © Springer-Verlag Berlin Heidelberg 2009
544
U. Manzoor and S. Nefti
consists of series of steps which requires user interaction [3]. However, some software setups provides silent installation feature (i.e. software can be deployed without user interaction) but all softwares do not provide this feature because it is dependent on the installer used for software deployment [2]. With the evolution in the computer networks, many companies are trying to come up with efficient products which can make life easier for network administrators. Silent automated installation is one category among such products. Remote installers [4, 5] are softwares which helps network administrator to install software remotely on the network nodes silently without user interaction. Remote installer has the following problem. 1) Remote client should be installed on network node which requires manual maintenance 2) It requires training 3) Installation on network node is homogenous 4) Not all software’s support –s switch for silent installation. Umar et al [3] generalize the process of silent unattended installation / uninstallation and proposed Silent Unattended Installation Package Manager (SUIPM) which generates Silent Unattended Installation / Un-Installation Packages. SUIPM 1) supports heterogeneous setting on different nodes 2) does not require any client software on network nodes 3) support all kind of software’s but SUIPM still requires 1) training, 2) generates its own silent unattended installation / un-installation setups and 3) has no intelligence. The size of the setups generated by SUIPM is almost double as compared to original setup size. The need of the time is to develop a framework which supports silent unattended (autonomous) installation but should be intelligent (i.e. no training required) and use the original installation setup for silent installation. In this paper, we have proposed Cognitive Agent for Automated Software Installation (CAASI) which provides silent, automated and intelligent installation of software(s) over the network. CAASI framework is based on Agent paradigm and motivated by An agent based system for activity monitoring on network (ABSAMN) [1] architecture where Agents monitor network resources on the behalf of network administrator. Agent is a software program which acts autonomously on some environment on the behalf of its user [6, 7]. If an agent has the capability of moving from one node to another network node autonomously and has intelligence, the agent is known as Intelligent Mobile Agent [8, 9]. In CAASI framework, Intelligent Mobile Agents are responsible for silent autonomous software installation / un-installation over the network. Because of flexibility, self recovering, fault tolerant and decentralized features of Agent paradigm, they have been used in many areas such as searching, network monitoring, file transfer, e-commerce, mine detection, financial sector, network installation and file synchronization [14, 1, 12, 8, 7, 10, 3, and 15]. CAASI does not require any specific kind of setup like MSI nor require any training for installation. CAASI will intelligently install any kind of software on request of the network administrator. CAASI not only provides installation services, it also enables network administrators to verify the installation of software over the network. CAASI uses an efficient algorithm to transfer the software installation setup on the network nodes. CAASI provides one click installation on demand of network administrator at anytime and there is no need for the network administrator or it’s subordinate to use the traditional method of network installation.
Cognitive Agent for Automated Software Installation – CAASI
545
2 How Installation Works on Microsoft Windows Following are the basics that are required to understand how installation of software works on Microsoft Windows [17]. The following discussion is with reference to Microsoft Windows (any version released after year 2000).
Every application has one or more windows with one as parent window and each window has unique identifier known as handle. Buttons (Next or Back) or controls (Text box, combo box etc) within the window are referred as child windows. Each application has a message queue and message loop. Occurred events (clicks, keystrokes, etc) are stored in message queue and message loop is responsible to retrieve the events from the message queue and dispatch (deliver) them to the appropriate window which has a procedure to process these messages. All the messages / events (keyboard input, mouse movement, signals etc) are stored in the System message queue and the System is responsible to forward these to the appropriate application message queue.
Let suppose user is running an application on some computer and a window appears on the screen which has “Next” button. If the user clicks the “Next” button following sequence of events will occur
A click event will be stored in System message queue. System message queue forwards this event to Application message queue. Application picks this event using message loop and Translate the event then Dispatch the event and calls the specific window procedure. Window procedure performs the actual event i.e. in this case the code behind the next button will be executed.
3 System Architecture Cognitive Agent for Automated Software Installation (CAASI) provides a complete solution for silent autonomous software installation over large networks. CAASI is a multi agent based application for silent autonomous software installation over the network. The system is fully autonomous and does not require any kind of user interaction or intervention. Network administrator is responsible for assigning the task(s) to CAASI and once assigned, it performs the task over the network autonomously with the help of mobile agents. The system consists of the following five agents
Server Agent Sub Server Agent File Transfer Agent Cognitive Installer Agent Verifier Agent
546
U. Manzoor and S. Nefti
3.1 Server Agent (SA ) Server Agent (SA) is the main agent as it manages and initializes the whole system. In initialization SA performs the following tasks
Load network configuration which contains hierarchy of the network, name and IP address of sub servers, range of the sub network IP Addresses etc from a pre-configured XML file. For the first time network administrator has to provide the network configuration, once the system is up and running, it will update and maintain the configuration autonomously. SA will create and initialize n Sub Server Agents (SSA) where n depends on the number of sub servers in the network. Each SSA is assigned one sub server and after intialization these agent move to the assigned sub server.
Fig. 1. Cognitive Agent for Automated Software Installation Architecture
Cognitive Agent for Automated Software Installation – CAASI
547
In initialization SA transfers part of knowledge base, configuration of the sub network to SSA and it is responsible to execute any task(s) related to its sub network and report it back to SA. After initialization, SA waits for the task(s) from network administrator.
Network administrator can assign the task to SA through the online web based interface provided to administrators. The task generated by web based interface will be in the form of an XML file and contains all the necessary administrative information required to perform task. XML file will have the IP addresses of all the nodes on which operation has to be performed along with the product specific details. After receiving the task from the administrator, SA forwards the task to appropriate Sub Server Agents for execution of the task. SA is also responsible for monitoring the progress, keeping logs and learning from tasks completed successfully or unsuccessfully. The learning process includes how to handle the errors generated during installation or verification, prediction of the events for the installer or generating the profiles of the newly installed software. The errors in installation can be low hard disk space, requirement of the dependent software and etc. SA is also responsible to manage the Knowledge Base which contains rules and profiles of the installed software. Initially Knowledge Base will have only rules, however, as new tasks are assigned by network administrator, CAASI will learn from the assigned tasks and Knowledge Base will be updated (i.e. new rules and profiles will be added or existing rules will be updated) which makes the execution of new tasks easy and efficient. 3.2 Sub Server Agent (SSA ) Sub Server Agent (SSA) is the created and initialized by Server Agent (SA) and after initialization SSA move to the destination (sub server) assigned and performs the following steps.
SSA loads the network configuration which contains names and IP addresses of the machines in the sub-network. Loads the Knowledge Base SSA is responsible for the creation and initialization of File Transfer Agent, Cognitive Installer Agent, and Verifier Agent. Depending upon the request SSA dynamically create and initialize any (or all) of these agent. If the task assigned is installation of some software on sub-network, SSA will create a pair of FTA, one of which will move to File Server where the setup resides. Before transferring the software setup, FTA will divide the setup into n chunks where n depends on the size of the setup. After chunk creation, FTA start transferring chunks of software package from the File server to SSA machine. Once the setup transfer is complete, the setup is transferred to the network nodes using the File Transfer Module which uses exponential data transfer algorithm discussed later. Once FTA completes the transfer of chunks on some network node, it will merge the chunks into original setup and notify SSA about the completion of setup transfer. On receiving file transfer completion message, it will create Cognitive Installer Agent (CIA) and initialize it with destination(s), setup path on the destination machine, software profile if available (i.e. if the software
548
U. Manzoor and S. Nefti
was installed before on the network, the complete information about previous installation {event, action, behavior} will be passed to CIA), software information (i.e. serial key, activation code etc) and the Knowledge Base. On receiving installation completion message from Cognitive Installer Agent, SSA will create Verifier Agent and initialize it with destination(s), path of the installed software, size of the software, file and registry XML files (Optional). File XML contains directories / file information and registry XML contains all the registry entries of the software. File and registry XML files will only be transferred if Verifier Agent requests these files.
SSA monitors the whole activity of File transfer, Installation, and verification and also keeps log of the activity running on its sub-network. SSA sends periodic logs which includes task status, activity details etc to SA. 3.3 File Transfer Agent (FTA ) File Transfer Agent (FTA) is responsible to transfer the software setup from source to destination(s) and uses exponential file transfer similar to one proposed by Koffron [11]. Exponential File Transfer is a method for optimized distribution of files from a file server to large number of client machines. Koffron has proposed a binary tree like logical structure of the network where each level receives the files from the higher level and transfers it to a lower level and file server will be root of the tree. Comparsion of File Transfer Techniques
No of Chunks Vs Time 560
1000
540
800
520
Tim e (Se co n d s)
T im e ( S e c o n d s )
1200
500
600
480
400
460
200
440
0 0
2
4 6 No of Destinations WithOut Chunks WithChunks
8
10
Fig. 5. a) Comparison of file transferring technique with and without chunks
420 1
3
5 No of Chunks
7
9
Fig. 5. b) No of Chunks Vs Time
Instead of sending the complete setup file from one network node to another we divided the file into chunks and transfer these chunks from one node to another. Using our modification, as soon as one node receives the chunk, it will forward the chunk to the lower level. This change increases the level of parallelism in the file transfer and after the modification a visible improvement observed in file transfer time. Fig 5 (a) shows the comparison of file transfer time with and without chunk with reference to file size 8MB and 3 chunks (i.e. setup is divided 3 chunks). Fig 5 (b) shows the comparison of number of file chunks Vs time, the number of chunks plays an important
Cognitive Agent for Automated Software Installation – CAASI
549
role in decreasing the transfer time but up to a specific value after that the transfer time increases as shown in Fig 5 b). 3.4 Cognitive Installer Agent (CIA ) After initialization Cognitive Installer Agent (CIA) moves to the first node in destination list and loads the Software Profile, Knowledge Base and Software information passed by SSA. Before starting the installation process, CIA will run a Software Constraints Check to verify constraints like space available in a targeted drive, prerequisite requirement etc. Based on the result of Software Constraint Check, CIA will autonomously generate an appropriate action to find a solution by querying the Knowledge Base. The task of the CIA is to install the software autonomously and silently on the destination. To automate the installation process CIA has to generate automatically the same events for the Software Setup which are generated when the user manually installs the application. Once the event is generated automatically, CIA has to trap the Software Setup window to send it the corresponding event. CIA will capture Software Setup window text and controls, store the information in vectors, filter the text vector using the keywords, pass the filtered text vector along with controls vector to Knowledge Base to generate the corresponding event. Once the event is generated, SendMessage API is used to send the event to the Installer Window. CIA will generate two kinds of profile during the software installation. 1) Node based profile will be created on the node (where installation took place) which includes software installation directory, date and time of installation, size of the installed software etc, this information will help Verifier Agent to detect weather installed software is working properly or not. 2) A product based profile will be created which includes event sequence, actions generated against events etc. CIA will send this software profile to SSA and SA to update the Knowledge Base. 3.4.1 Test Case CAASI has been evaluated on large number of software setups and results were very promising. The test case of AML Free Registry Cleaner [18] and the Cognitive Installer Agent working is given below. Enumerated Text: Welcome to the AML Free Registry Cleaner Setup Wizard This will install AML Free Registry Cleaner 3.2 on your computer. It is recommended that you close all other applications before continuing. Click Next to continue, or Cancel to exit Setup. Enumerated Control: Next, Cancel Filtered Text: Install Close Click Next Continue Cancel Exit Setup Action Inferred Using KB: Click Next
550
U. Manzoor and S. Nefti
Enumerated Text: License Agreement Please read the following important information before continuing. Please read the following License Agreement. You must accept the terms of this agreement before continuing with the installation. Enumerated Control: I accept the agreement, I do not accept the agreement, Back, Next, Cancel Filtered Text: License Agreement Read Accept Installation Action Inferred Using KB: Select I Accept Control Then Click Next Enumerated Text: Select Destination Location Where AML Free Registry Cleaner should be installed? Setup will install AML Free Registry Cleaner into the following folder. To continue, click Next. If you would like to select a different folder, click Browse. C:\Program Files \ AML Products \ Registry Cleaner At least 7.0 MB of free disk space is required. Enumerated Control: Back, Next, Cancel Filtered Text: Select Destination Location Setup Install Folder Continue Next Select Click Browse 7.0MB Disk Space Required Action Inferred Using KB: Change Drive (if space checks fail) then Click Next Enumerated Text: Ready to Install Setup is now ready to begin installing AML Free Registry Cleaner on your computer. Click Install to continue with the installation, or click Back if you want to review or change any settings. Enumerated Control: Back, Install, Cancel Filtered Text: Ready Install Setup Begin Click Continue Installation Back Review Change Setting Action Inferred Using KB: Click Install
Cognitive Agent for Automated Software Installation – CAASI
551
Enumerated Text: Completing the AML Free Registry Cleaner Setup Wizard Setup has finished installing AML Free Registry Cleaner on your computer. The application may be launched by selecting the installed icons. Click Finish to exit Setup. Enumerated Control: Finish Filtered Text: Setup Click Finish Exit Action Inferred Using KB: Click Finish 3.5 Verifier Agent (VA ) After initialization Verifier Agent (VA) moves to the first node in destination list and loads the product information stored on the node during installation. VA is responsible to verify and check the product installed on the network node. VA will verify the size of the application, number of directories, number of files, and registry entries etc and create a verification log of the product. After verifying the product information, VA will run the application in the background. After delay of α, VA will close the application and checks the exit code of the application. Depending on the exit code Success / Failure will be updated in the verification log (i.e. if application return 0x0 it means success else failure). VA will notify SSA about the product verification result and application running status. After completing the task on the current node, VA will move to the next node in the destination list and repeat the same steps.
4 Conclusion Software deployment on network sometimes becomes very tedious and time consuming task as the process needs human interaction. In this paper, we have proposed Cognitive Agent for Automated Software Installation (CAASI) for silent automated installation over the network. Proposed Framework support silent and automated installation over the network for any type and kind of software and is independent of the installer type used for deployment. CAASI does not require any specific kind of setup like MSI nor require any training for installation. CAASI will intelligently install any kind of software over the network with the help of mobile agents. The work can be extended in many directions. Repairing software feature and support for installing software patches over the network can be added in the existing framework.
552
U. Manzoor and S. Nefti
References 1. Manzoor, U., Nefti, S.: An agent based system for activity monitoring on network – ABSAMN. Expert Systems with Applications 36(8), 10987–10994 (2009) 2. Manzoor, U., Nefti, S.: Silent Unattended Installation / Un-Installation of Software’s on Network Using NDMAS – Network Deployment Using Multi-Agent System. In: Proceeding of The Fourth European Conference on Intelligent Management Systems in Operations (IMSIO), Manchester, UK, July 7-8 (2009) (accepted for publication) 3. Manzoor, U., Nefti, S.: Silent Unattended Installation Package Manager – SUIPM. In: Proceeding of IEEE International Conference on Computational Intelligence for Modelling, Control and Automation (CIMCA), Vienna, Austria, December 10-12 (2008) ISBN: 978-174-0882-98-9 4. EMCO Remote Installer (2009), http://www.emco.is/products/ remote-installer/features.php 5. Compulsion Software Remote Installer (2008), http://www.compulsionsoftware.com/ 6. Ilarri, S., Mena, E., Illarramendi, A.: Using cooperative mobile agents to monitor distributed and dynamic environments. Information Sciences 178, 2105–2127 (2008) 7. Manzoor, U., Nefti, S., Hasan, H., Mehmood, M., Aslam, B., Shaukat, O.: A Multi-Agent Model for Mine Detection – MAMMD. In: Lytras, M.D., Carroll, J.M., Damiani, E., Tennyson, R.D. (eds.) WSKS 2008. LNCS (LNAI), vol. 5288, pp. 139–148. Springer, Heidelberg (2008) 8. Summiya, I.K., Manzoor, U., Shahid, A.A.: A Fault Tolerance Infrastructure for Mobile Agents. In: Proceeding of IEEE Intelligent Agents, Web Technologies and Internet Commerce (IAWTIC 2006), Sydney, Australia, November 29 – December 01 (2006) 9. Milojicic, D., Douglis, F., Wheeler, R.: Mobility: Processes, Computers, and Agents. ACM Press, New York (1999) 10. Manzoor, U., Ijaz, K., Shahid, A.A.: Distributed Dependable Enterprise Business System – DDEBS. In: Proceeding of Springer Communications in Computer and Information Science, Greece, Athens, September 24-28, vol. 19, pp. 537–542 (2008) ISBN 978-3-540-87782-0 11. Koffron Micah, A.: System and method for optimized distributed file transfer. In: Microsoft Corporation, WA, US (December 2006), http://www.freepatentsonline.com/y2006/0282405.html 12. Rajah, K., Ranka, S., Xia, Y.: Scheduling bulk file transfers with start and end times. Computer Networks 52, 1105–1122 (2008) 13. Manzoor, U., Nefti, S.: Agent Based Activity Monitoring System – ABAMS. In: Proceeding of IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2008), Dayton, USA, November 3-5, pp. 200–203 (2008) ISSN: 1082-3409 ISBN: 978-0-7695-3440-4 14. Niazi, M., Manzoor, U., Ijaz, K.: Applying Color Code Coordinated LRTA* (C3LRTA*) Algorithm on Multiple Targets. In: Proceeding of 9th IEEE International Multitopic Conference (INMIC), pp. 27–32 (2005) 15. Niazi, M., Manzoor, U., Summiya, I.K., Saleem, H.: Eliminating duplication and ensuring file integrity in Multisync: A multiagent system for ubiquitous file synchronization. In: Proceeding of 9th IEEE International Multitopic Conference (INMIC), pp. 767–772 (2005) 16. Java Agent Development Framework (JADE), http://jade.tilab.com/ 17. Microsoft Windows (2009), http://www.microsoft.com/WINDOWS/ 18. AML Free Registry Cleaner (2009), http://www.amltools.com/ free-registry-cleaner-tutorial.html 19. Matthieu, L., Walter, W.: Complex computer and communication networks. Computer Networks 52(15), 2817–2818 (2008)