IP Library Granted Patent US 10,579,370
Granted Patent B2
US 10,579,370 · App. 16/054,285 · Granted Mar 3, 2020

Method to disintegrate a monolith service to microservices

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 10,579,370
App. No.
16/054,285
Granted
Mar 3, 2020
Kind
B2
Abstract

A method for forming at least one microservice is provided. The method includes the steps of getting a monolith application to disintegrate, scanning codes of the monolith application, finding one or more nanoservice candidates in the codes, and recommending at least one microservice to a user. Herein, the at least one microservice is a group of one or more selected nanoservice candidates sharing a common characteristic. According to an input of the user, at least one microservice selected among the at least one recommended microservice is generated.

Claims (55)

1. A method for forming at least one microservice, the method comprising steps of:

selecting a monolith application to disintegrate;

scanning codes of the monolith application;

identifying one or more methods from results of the scanning codes;

finding one or more nanoservice candidates in the codes from the identified one or more methods, the one or more nanoservice candidates comprising the one or more methods that each reference an external service, the external service calling one of a web service, database interface, network protocol, or a combination thereof;

recommending at least one microservice to a user, wherein the at least one microservice is a group of one or more selected ones of the nanoservice candidates sharing a common characteristic; and

generating the at least one microservice selected among the at least one recommended microservice according to an input of the user,

wherein the steps are performed by at least one processing device comprising a processor and a memory.

2. The method of claim 1 , wherein the finding one or more nanoservices further comprises:

determining whether each of the one or more methods references an internal method;

storing a method, when the method does not call an internal method, into a reference array;

determining whether each of the methods in the reference array calls an external service; and

storing a method, when the method calls an external service, into a nanoservice array.

3. The method of claim 1 , wherein the recommending at least one microservice further comprises:

finding keywords in names of the nanoservice candidates;

for each of the found keywords, determining whether a keyword exists in a keyword array;

inserting, if the keyword does not exist in the keyword array, the keyword into the keyword array or increasing, if the keyword exists in the keyword array, a number of occurrences for the keyword in the keyword array;

selecting at least one keyword as the selected keyword, wherein the number of occurrences for the selected keyword is greater than a predetermined number; and

recommending the at least one microservice by grouping one or more selected nanoservices having the selected keyword.

4. The method of claim 1 further comprising:

removing codes in the monolith application corresponding to the at least one generated microservice.

5. The method of claim 1 further comprising:

proving a user interface with which a user selects at least one microservice among the at least one recommended microservice.

6. The method of claim 1 further comprising:

adding one or more generic microservice features to the at least one generated microservice.

7. The method of claim 6 , wherein the one or more generic microservice comprises at least one of:

automatic deployment of the generated microservice,

interfacing a database;

performing a service health check;

enabling exception handling;

logging activities of the generated microservice;

providing performance data of the generated microservice; and

providing automatic document generation.

8. The method of claim 7 , the getting a monolith application further comprising:

getting a name of the monolith application and a location of the monolith application codes.

9. An apparatus for forming at least one microservice, the apparatus comprising:

a processor and a memory, wherein the processor is configured to:

select a monolith application to disintegrate;

scan codes of the monolith application;

identify one or more methods from results of the scanning codes;

find one or more nanoservice candidates in the codes from the identified one or more methods, the one or more nanoservice candidates comprising the one or more methods that each reference an external service, the external service calling one of a web service, database interface, network protocol, or a combination thereof;

recommend at least one microservice to a user, wherein the at least one microservice is a group of one or more selected ones of the nanoservice candidates sharing a common characteristic; and

generate the at least one microservice selected among the at least one recommended microservice according to an input of the user.

10. The apparatus of claim 9 further comprising:

a user interface with which a user selects at least one microservice among the at least one recommended microservice.

11. The apparatus of claim 9 further comprising:

a user interface with which a user selects at least one generic microservice feature to be added to the at least one generated microservice.

12. The apparatus of claim 9 , wherein the finding one or more nanoservices further comprises:

upon determining one or more of the methods in the reference array calls an external service, storing the one or more methods into a nanoservice array.

13. The apparatus of claim 12 , wherein recommending at least one microservice further comprises:

finding keywords in names of the nanoservice candidates;

for each of the found keywords, determining whether a keyword exists in a keyword array;

inserting, if the keyword does not exist in the keyword array, the keyword into the keyword array or increasing, if the keyword exists in the keyword array, a number of occurrences for the keyword in the keyword array;

selecting at least one keyword as the selected keyword, wherein the number of occurrences for the selected keyword is greater than a predetermined number, and

recommending the at least one microservice by grouping one or more selected nanoservices having the selected keyword.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2018
From: GUPTA, SHUBHAM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046559/0299 →