Pervasive and Mobile Computing 83 (2022) 101596 Contents lists available at ScienceDirect Pervasive and Mobile Computing journal homepage: www.elsevier.com/locate/pmc GANCSA: A novel approach for finding the best path for migration of mobile-agents Rafid Qahtan Allawi a , Ayad Tareq Imam b, , Aysh Alhroob a , Faiz Al-Shrouf a a Department of Software Engineering, Faculty of IT, Isra University, Amman 11622, Jordan b Department of Computer Science, Faculty of IT, Isra University, Amman 11622, Jordan article info Article history: Received 15 December 2021 Received in revised form 9 March 2022 Accepted 22 April 2022 Available online 5 May 2022 Keywords: Migration of mobile agent Genetic algorithm Node Compression-based Search Algorithm Master–Slave Design pattern Push all-data strategy abstract A mobile agent is a mobile object, whose movement requires a wise determination of the best path, as this path is applied to migrate a mobile agent from a source node to a destination node in an interconnected network of computers. Usually, the choice of the best path is made using optimization algorithms, which use the minimum time as a key measure for choosing the best path. This work proposes a new complex approach, which is called The Genetic Algorithm with Node Compression-based Search Algorithm (GANCSA). This approach utilizes a mathematical process and an optimization technique to achieve the finding of the best migration path in minimal time (sequential nodes in a time frame) for migrating a mobile agent in an interconnected network of computers. GANCSA encompasses the Genetic Algorithm (GA) as an optimization technique, and the Node Compression-based Search Algorithm (NCSA) to minimize the number of nodes. The testing of the proposed GANCSA shows that the combination of GA and NCSA reduces the time of selecting the best path from 336.448 ms to 286.29 ms after 10 iterations, believing that more time reduction can be achieved by increasing the iterations. © 2022 Elsevier B.V. All rights reserved. 1. Introduction A software agent is an object that performs autonomously delegated tasks of the user, and it has autonomy and executability properties. There are two types of software agents, namely, ordinary software agent, which is a stationary object [1], and mobile agent, which is an on-move object that is capable of moving autonomously from a host to a host within a network that includes its execution state, to continue its execution [2]. As a mobile agent is a structured and systematic approach that comes as a class object, which encompasses data and software. The structured and systematic approaches of Software Engineering, which are known as the software development process, are used to manage the development of mobile agents [3]. A mobile agent is designed by using design patterns; and implemented by using – usually – Java programming language. For mobile agents, a design pattern is an effective approach to enhancing the development process of applications and identifying the best reusable designs. It also improves the collaboration between components in software designs. Design patterns also raise the level of programming activities, thus helping to improve team productivity [4]. There are many advantages of using mobile Corresponding author. E-mail addresses: rafid_lav@yahoo.com (R.Q. Allawi), alzobaydi_ayad@iu.edu.jo (A.T. Imam), aysh@iu.edu.jo (A. Alhroob), fayez.shrouf@iu.edu.jo (F. Al-Shrouf). https://doi.org/10.1016/j.pmcj.2022.101596 1574-1192/© 2022 Elsevier B.V. All rights reserved.