Machine learning enabled network and task management in SDN based Fog architecture - Sarma, Bikash; Kumar, R.; Tuithung, Themrichon (Computers & electrical engineering, 2023)
•Fog computing using software defined networks for real-time applications.•Communication link weight calculation using machine learning techniques followed by shortest path identification.•Job classification and prioritization along with resource clustering for perfect allocation.•Maintenance of a separate pool – reliable/less reliable resource.•Algorithms - Gradient Descent, Dijkstra's, Gaussian Naïve Bayes, K-Means++. Effective communication among Fog Computing resources is crucial concerning the network's diverse Quality of Service (QoS) parameters. However, while Fog nodes may be capable of handling local requests with sufficient computational resources, their availability can be pretty volatile, ultimately degrading overall performance. Therefore, regular link weight revision for such Fog resources is required to realize low latency in communication. Also, the prioritization of tasks and the clustering of resources significantly impact the system's overall performance. In light of this, we have proposed a novel machine learning-enabled Software Defined Networking (SDN)-based Fog Computing system with the ability to manage the network and prioritize jobs while allocating resources. In our proposed model, the SDN controller will continuously update the link weight. With the aid of Dijkstra's Algorithm, our proposed system can find the optimal path for connecting the most appropriate resources for a given task. The Gradient Descent Algorithm has been deployed in the SDN controller to get the optimal weight based on previous experiences and other parameters. Using the Gaussian Naïve Bayes Algorithm, tasks are classified according to priority to schedule them and properly minimize failure. Additionally, the proposed system clusters the resources using the K-Means++ algorithm for easy identification and quick allocation. We have simulated the proposed work using the Python programming tool, and to analyze its performance; various metrics were employed, including waiting time, turnaround time, failure rate, bandwidth utilization and forwarding count for a particular job. [Display omitted]