IP Library › Granted Patent US 12,423,163
Granted Patent B2
US 12,423,163 · App. 17/871,547 · Granted Sep 23, 2025

Context driven network slicing based migration of applications and their dependencies

Inventors: Parminder Singh Sethi (Ludhiana, IN); Lakshmi Nalam (Bengaluru, IN); Shelesh Chopra (Bangalore, IN)
Assignee: Dell Products L.P.
G06F9/5088G06F9/4881
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,423,163
App. No.
17/871,547
Filed
Jul 22, 2022
Granted
Sep 23, 2025
Kind
B2
Art Unit
2199
USPC
718/103
Abstract

Embodiments described herein relate to methods, systems, and non-transitory computer readable mediums storing instructions for creating and executing migration workflows to replicate or migrate data (collectively referred to herein as ‘migration’) from one device or set of devices to another device or set of devices (e.g., from one computing environment to another). The method of migration involves using a slicing customizer to assign the applications, or parts of the applications, to network slice queues based on predetermined rules. The slices in the queues are then migrated by a network slicing controller.

Claims (66)

1. A method for performing a migration, the method comprising:

receiving a request to migrate a plurality of applications from a source device to a target device at a migrator, the migrator connected to the source device and the target device;

identifying relationships between the plurality of applications, wherein identifying relationships comprises:

retrieving an application identification (ID) for each application of the plurality of applications in the request;

retrieving port numbers used for each application of the plurality of applications;

identifying all applications by application ID using each port based on the port numbers;

determining groups of related applications of the plurality of applications based on applications using each port, wherein an application is related to another application by analyzing metadata associated with each port, and wherein determining groups of related applications comprises:

for each port:

determining, by an application relationship module, related applications in the groups of related applications having a dependency relationship or having a correlated relationship, wherein applications have a correlated relationship when a common data path or registration ID of the metadata associated with the respective port exists between the applications, and have a dependency relationship when one application is a parent or child based on traffic between the applications associated with the respective port;

producing a matrix specifying each relationship between the applications using the relationships, wherein the matrix includes a subset of the correlated relationships and a subset of the dependency relationships, wherein producing the matrix places a higher priority on correlated relationships compared dependency relationships;

subsequent to producing the matrix, assigning a priority to each of the applications, wherein assigning a priority to each application comprises:

identifying properties of the applications; and

for each application, based on the properties, assigning the priority to the application, by a slicing customizer, by using predetermined rules to calculate the priority to the application based on tolerance for downtime, size of the application, and type of data in the application;

placing, by the slicing customizer, the applications in appropriate network slice queues based on the assigned priorities of each of the applications and the matrix, wherein each of the network slice queues has a slice priority; and

performing, by a network slicing controller, the migration of the applications from the source device to the target device using the network slice queues, wherein each of the network slice queues are migrated in order of the slice priority.

2. The method of claim 1 , wherein the network slice queues include at least a high priority network slice and a normal priority network slice.

3. The method of claim 1 , wherein the predetermined rules are implemented by an administrator of the slicing customizer.

4. The method of claim 1 , wherein assigning the priority of an application comprises determining a priority class of the application.

5. The method of claim 4 , wherein the priority class is one of at least three classes that are based on at least a tolerance of the application to downtime.

6. The method of claim 4 , wherein the priority class is one of at least three classes that are based on at least a size of data needed for the application.

7. The method of claim 4 , wherein the priority class is one of at least two classes that are based on the application's relationship to other applications.

8. The method of claim 1 , wherein the application and its data are divided into portions which are each assigned to a slice queue.

9. The method of claim 1 , wherein an entire application and its data are assigned to a single slice queue.

10. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for performing a migration, the method comprising:

receiving a request to migrate a plurality of applications from a source device to a target device at a migrator, the migrator connected to the source device and the target device;

identifying relationships between the plurality of applications, wherein identifying relationships comprises:

retrieving an application identification (ID) for each application of the plurality of applications in the request;

retrieving port numbers used for each application of the plurality of applications;

identifying all applications by application ID using each port based on the port numbers;

determining groups of related applications of the plurality of applications based on applications using each port, wherein an application is related to another application by analyzing metadata associated with each port, and wherein determining groups of related applications comprises:

for each port:

determining, by an application relationship module, related applications in the groups of related applications having a dependency relationship or having a correlated relationship, wherein applications have a correlated relationship when a common data path or registration ID of the metadata associated with the respective port exists between the applications, and have a dependency relationship when one application is a parent or child based on traffic between the applications associated with the respective port;

producing a matrix specifying each relationship between the applications using the relationships, wherein the matrix includes a subset of the correlated relationships and a subset of the dependency relationships, wherein producing the matrix places a higher priority on correlated relationships compared dependency relationships;

subsequent to producing the matrix, assigning a priority to each of the applications, wherein assigning a priority to each application comprises:

identifying properties of the applications; and

for each application, based on the properties, assigning the priority to the application, by a slicing customizer, by using predetermined rules to calculate the priority to the application based on tolerance for downtime, size of the application, and type of data in the application;

placing, by the slicing customizer, the applications in appropriate network slice queues based on the assigned priorities of each of the applications and the matrix, wherein each of the network slice queues has a slice priority; and

performing, by a network slicing controller, the migration of the applications from the source device to the target device using the network slice queues, wherein each of the network slice queues are migrated in order of the slice priority.

11. The non-transitory computer readable medium of claim 10 , wherein the network slice queues include at least a high priority network slice and a normal priority network slice.

12. The non-transitory computer readable medium of claim 10 , wherein the predetermined rules are implemented by an administrator of the slicing customizer.

13. The non-transitory computer readable medium of claim 10 , wherein assigning the priority of an application comprises determining a priority class of the application.

14. The non-transitory computer readable medium of claim 13 , wherein the priority class is one of at least three classes that are based on at least a tolerance of the application to downtime.

15. The non-transitory computer readable medium of claim 13 , wherein the priority class is one of at least three classes that are based on at least a size of data needed for the application.

16. The non-transitory computer readable medium of claim 13 , wherein the priority class is one of at least two classes that are based on the application's relationship to other applications.

17. A system comprising:

at least two devices; and

a migrator which comprises:

at least one processor;

a storage device; and

at least one memory that includes instructions, which when executed by the processor, perform a method for performing a migration of a plurality of applications between a first device and at least a second device of the at least two devices, the method comprising:

receiving a request to migrate a plurality of applications from a source device to a target device at a migrator, the migrator connected to the source device and the target device;

identifying relationships between the plurality of applications, wherein identifying relationships comprises:

retrieving an application identification (ID) for each application of the plurality of applications in the request;

retrieving port numbers used for each application of the plurality of applications;

identifying all applications by application ID using each port based on the port numbers;

determining groups of related applications of the plurality of applications based on applications using each port, wherein an application is related to another application by analyzing metadata associated with each port, and wherein determining groups of related applications comprises:

for each port:

determining, by an application relationship module, related applications in the groups of related applications having a dependency relationship or having a correlated relationship, wherein applications have a correlated relationship when a common data path or registration ID of the metadata associated with the respective port exists between the applications, and have a dependency relationship when one application is a parent or child based on traffic between the applications associated with the respective port;

producing a matrix specifying each relationship between the applications using the relationships, wherein the matrix includes a subset of the correlated relationships and a subset of the dependency relationships, wherein producing the matrix places a higher priority on correlated relationships compared dependency relationships; subsequent to producing the matrix, assigning a priority to each of the applications, wherein assigning a priority to each application comprises:

identifying properties of the applications; and

for each application, based on the properties, assigning the priority to the application, by a slicing customizer, by using predetermined rules to calculate the priority to the application based on tolerance for downtime, size of the application, and type of data in the application;

placing, by the slicing customizer, the applications in appropriate network slice queues based on the assigned priorities of each of the applications and the matrix, wherein each of the network slice queues has a slice priority; and

performing, by a network slicing controller, the migration of the applications from the source device to the target device using the network slice queues, wherein each of the network slice queues are migrated in order of the slice priority.

18. The system of claim 17 , wherein the network slice queues include at least a high priority network slice and a normal priority network slice.

19. The system of claim 17 , wherein the predetermined rules are implemented by an administrator of the slicing customizer.

20. The system of claim 17 , wherein assigning the priority of an application comprises determining a priority class of the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2022
From: SETHI, PARMINDER SINGH; NALAM, LAKSHMI; CHOPRA, SHELESH
To: DELL PRODUCTS L.P.
Reel/Frame 060604/0789 →
Continuity (1)
Related Publication 20240028420A1 · Jan 25, 2024
References Cited (130)
US 6105035A · Monge · 2000 [cited by applicant]
US 6195760B1 · Chung et al. · 2001 [cited by applicant]
US 6393480B1 · Qin · 2002 [cited by applicant]
US 6563836B1 · Capps · 2003 [cited by examiner]
US 7251745B2 · Koch et al. · 2007 [cited by applicant]
US 7401248B2 · Nakahara et al. · 2008 [cited by applicant]
US 7525749B2 · Maejima et al. · 2009 [cited by applicant]
US 7590981B2 · Gupta et al. · 2009 [cited by applicant]
US 7966391B2 · Anderson et al. · 2011 [cited by applicant]
US 8078448B1 · Wohlberg et al. · 2011 [cited by applicant]
US 8364799B2 · Sakai · 2013 [cited by applicant]
US 8918673B1 · Rangaiah et al. · 2014 [cited by applicant]
US 9015832B1 · Lachwani et al. · 2015 [cited by applicant]
US 9026260B1 · Thornley et al. · 2015 [cited by applicant]
US 9397930B2 · Drobinsky et al. · 2016 [cited by applicant]
US 9417918B2 · Chin · 2016 [cited by applicant]
US 9514164B1 · Matic · 2016 [cited by applicant]
US 9515873B2 · Anumala · 2016 [cited by examiner]
US 9900215B2 · Yang et al. · 2018 [cited by applicant]
US 10303465B1 · Potter · 2019 [cited by applicant]
US 10572294B1 · Chawda et al. · 2020 [cited by applicant]
US 10785123B2 · Gonguet · 2020 [cited by applicant]
US 11392402B1 · Carroll · 2022 [cited by applicant]
US 11424989B2 · Jeuk et al. · 2022 [cited by applicant]
US 11588893B1 · Sharma · 2023 [cited by applicant]
US 11595269B1 · Ghosh et al. · 2023 [cited by applicant]
US 11846918B1 · Mazur · 2023 [cited by applicant]
US 20020095474A1 · Boys · 2002 [cited by applicant]
US 20020138226A1 · Doane · 2002 [cited by applicant]
US 20030233230A1 · Ammicht · 2003 [cited by applicant]
US 20030236819A1 · Greubel · 2003 [cited by examiner]
US 20050216800A1 · Bicknell et al. · 2005 [cited by applicant]
US 20050257090A1 · Santos · 2005 [cited by applicant]
US 20060031842A1 · Neiman · 2006 [cited by examiner]
US 20060129771A1 · Dasgupta et al. · 2006 [cited by applicant]
US 20070079170A1 · Zimmer et al. · 2007 [cited by applicant]
US 20070198524A1 · Branda et al. · 2007 [cited by applicant]
US 20070198968A1 · Shenfield · 2007 [cited by applicant]
US 20080222218A1 · Richards et al. · 2008 [cited by applicant]
US 20090157882A1 · Kashyap · 2009 [cited by applicant]
US 20090265449A1 · Krishnappa · 2009 [cited by examiner]
US 20090307522A1 · Olson et al. · 2009 [cited by applicant]
US 20110087672A1 · Hui · 2011 [cited by applicant]
US 20110113224A1 · Isshiki et al. · 2011 [cited by applicant]
US 20110251998A1 · Moore · 2011 [cited by applicant]
US 20110307903A1 · Vaddagiri · 2011 [cited by applicant]
US 20120054581A1 · Grube · 2012 [cited by examiner]
US 20120072571A1 · Orzell et al. · 2012 [cited by applicant]
US 20120089711A1 · Zager · 2012 [cited by applicant]
US 20120151061A1 · Bartfai-Walcott · 2012 [cited by applicant]
US 20120254849A1 · Wang · 2012 [cited by applicant]
US 20130103977A1 · Zimmermann · 2013 [cited by applicant]
US 20130346714A1 · Solihin · 2013 [cited by applicant]
US 20140172782A1 · Schuenzel · 2014 [cited by applicant]
US 20140376385A1 · Boss et al. · 2014 [cited by applicant]
US 20150169329A1 · Barrat · 2015 [cited by applicant]
US 20150222702A1 · Salle · 2015 [cited by applicant]
US 20150261518A1 · Viswanathan · 2015 [cited by applicant]
US 20150278219A1 · Phipps · 2015 [cited by applicant]
US 20150347573A1 · Hosokawa · 2015 [cited by applicant]
US 20160162280A1 · Murayama et al. · 2016 [cited by applicant]
US 20160239395A1 · Madsen et al. · 2016 [cited by applicant]
US 20160266875A1 · Takahashi · 2016 [cited by applicant]
US 20160359678A1 · Madani · 2016 [cited by examiner]
US 20160378525A1 · Bjorkengren · 2016 [cited by applicant]
US 20160378648A1 · Ekambaram · 2016 [cited by applicant]
US 20170046202A1 · Bao · 2017 [cited by examiner]
US 20170337088A1 · Wang · 2017 [cited by applicant]
US 20170359414A1 · Sengupta et al. · 2017 [cited by applicant]
US 20180046489A1 · Onoue · 2018 [cited by applicant]
US 20180074855A1 · Kambatla · 2018 [cited by examiner]
US 20180113728A1 · Musani et al. · 2018 [cited by applicant]
US 20180124182A1 · Orman · 2018 [cited by applicant]
US 20180157723A1 · Chougule · 2018 [cited by applicant]
US 20180196655A1 · Kapoor et al. · 2018 [cited by applicant]
US 20180262979A1 · Wang et al. · 2018 [cited by applicant]
US 20180322276A1 · Brown · 2018 [cited by applicant]
US 20190087224A1 · Vrind · 2019 [cited by examiner]
US 20190104019A1 · Makovsky · 2019 [cited by applicant]
US 20190199687A1 · Lan · 2019 [cited by applicant]
US 20190310872A1 · Griffin · 2019 [cited by applicant]
US 20190311041A1 · Shah · 2019 [cited by applicant]
US 20190379595A1 · Ur et al. · 2019 [cited by applicant]
US 20200028904A1 · Delbecq et al. · 2020 [cited by applicant]
US 20200099773A1 · Myers · 2020 [cited by applicant]
US 20200100323A1 · Zhou · 2020 [cited by examiner]
US 20200110655A1 · Harwood et al. · 2020 [cited by applicant]
US 20200133772A1 · Dalmatov et al. · 2020 [cited by applicant]
US 20200156243A1 · Ghare et al. · 2020 [cited by applicant]
US 20200169921A1 · Zhu · 2020 [cited by examiner]
US 20200264930A1 · Mandagere et al. · 2020 [cited by applicant]
US 20200344658A1 · Huang · 2020 [cited by applicant]
US 20200349238A1 · Tyagi · 2020 [cited by applicant]
US 20200366604A1 · Banerjee et al. · 2020 [cited by applicant]
US 20210064401A1 · Vichare · 2021 [cited by applicant]
US 20210153044A1 · Ramanathan et al. · 2021 [cited by applicant]
US 20210165768A1 · D'halluin et al. · 2021 [cited by applicant]
US 20210200814A1 · Tal · 2021 [cited by applicant]
US 20210373947A1 · Kweon · 2021 [cited by applicant]
US 20220070648A1 · Krishan · 2022 [cited by applicant]
US 20220075613A1 · Ramachandran · 2022 [cited by applicant]
US 20220091980A1 · Kayiran · 2022 [cited by examiner]
US 20220138081A1 · Varma et al. · 2022 [cited by applicant]
US 20220158926A1 · Wennerström et al. · 2022 [cited by applicant]
US 20220164186A1 · Pamidala · 2022 [cited by applicant]
US 20220167363A1 · Sun · 2022 [cited by examiner]
US 20220171856A1 · Bhatt · 2022 [cited by applicant]
US 20220179683A1 · Verma et al. · 2022 [cited by applicant]
US 20220206842A1 · Sahita et al. · 2022 [cited by applicant]
US 20220229573A1 · Ramasamy · 2022 [cited by applicant]
US 20220240105A1 · Shaw · 2022 [cited by applicant]
US 20220272142A1 · Li et al. · 2022 [cited by applicant]
US 20220283784A1 · Degen et al. · 2022 [cited by applicant]
US 20220334870A1 · Chen · 2022 [cited by applicant]
US 20220337493A1 · Sant et al. · 2022 [cited by applicant]
US 20220337501A1 · Sant et al. · 2022 [cited by applicant]
US 20220342697A1 · Macfarlane · 2022 [cited by applicant]
US 20220368602A1 · Adhav et al. · 2022 [cited by applicant]
US 20220413845A1 · Mathew · 2022 [cited by applicant]
US 20230033886A1 · Goswami et al. · 2023 [cited by applicant]
US 20230037124A1 · Mengwasser et al. · 2023 [cited by applicant]
US 20230080047A1 · Bashir · 2023 [cited by applicant]
US 20230098941A1 · Rizzi et al. · 2023 [cited by applicant]
US 20240037011A1 · Zheng · 2024 [cited by applicant]
CN 106649091A · 2017 [cited by applicant]
WO 2021122516A1 · 2021 [cited by applicant]
WO 2022104396A1 · 2022 [cited by applicant]
Steven D. Young, “In-Time Safety Assurance Systems for Emerging Autonomous Flight Operations”, pp. 1-10, https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber-8569689 (Year: 2018) (10 pages). [cited by applicant]
Wu, Suzhen et al., Proactive Data Migration for Improved Storage Availability in Large-Scale Dat Centers, Sep. 2015, IEEE (15 pages). [cited by applicant]
Mona Elsaadawy et al., Enabling efficient application monitoring in cloud data centers using SDN, 1902.11292, 14 pages, Year: 2019. [cited by applicant]