IP Library Granted Patent US 10,666,527
Granted Patent B2
US 10,666,527 · App. 15/963,432 · Granted May 26, 2020

Generating specifications for microservices implementations of an application

Inventors: Ian Gerard Roche (Glanmire, IE); Sean Creedon (Ballincollig, IE)
Assignee: EMC IP Holding Company LLC
H04L41/5054G06F9/546G06F17/2705G06K9/6218G06N20/00H04L41/5058H04L67/16H04L67/2819H04L67/32
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,666,527
App. No.
15/963,432
Granted
May 26, 2020
Kind
B2
Abstract

Techniques are provided for generating specifications for a microservice implementation of an existing application. An exemplary method comprises: analyzing request data and corresponding response data for an application implemented as a monolithic application and/or a Service Oriented Architecture application to generate data features; parsing an audit log and/or a transaction log of the application to identify interactions with a data store; clustering the data store interactions using an unsupervised learning technique to identify patterns of usage of the data store; selecting one or more service types to generate using a trained supervised machine learning model for the requests, the corresponding response data and the data store interactions; and generating an application programming interface specification, a data model specification and/or a message specification for the selected service types for a microservice implementation of the application. A run-time environment, a data definition language and/or message queues are optionally generated for the one or more selected service types.

Claims (37)

1. A method, comprising:

analyzing, using at least one processing device, request data and corresponding response data for at least one application to generate one or more data features;

parsing, using the at least one processing device, one or more of an audit log and a transaction log of the at least one application to identify one or more interactions with a data store;

clustering, using the at least one processing device, the one or more data store interactions using an unsupervised learning technique to identify one or more patterns of usage of the data store;

selecting, using the at least one processing device, one or more service types to generate, using one or more trained supervised machine learning models for the requests, the corresponding response data and the data store interactions; and

generating, using the at least one processing device, at least one of an application programming interface specification, a data model specification and a message specification for the one or more selected service types for a microservice implementation of the at least one application.

2. The method of claim 1 , wherein the at least one application is implemented as one or more of a monolithic application and a Service Oriented Architecture application.

3. The method of claim 1 , wherein the step of analyzing employs an interceptor for each running application to intercept the requests and the corresponding response data.

4. The method of claim 1 , wherein the step of parsing employs a distinct parser for each log source type.

5. The method of claim 1 , wherein the step of clustering groups the data store interactions based on one or more of an identifier of a calling application, a process identifier, a network address, a timestamp and one or more join operations.

6. The method of claim 1 , wherein the message specification defines a message destination and update notifications among a plurality of services.

7. The method of claim 1 , further comprising the step of generating one or more of a run-time environment, a data definition language and one or more message queues based on, respectively, the application programming interface specification, the data model and the message specification for the one or more selected service types.

8. The method of claim 1 , wherein the one or more trained supervised machine learning models are trained using a plurality of the data features derived from the requests, the corresponding response data and the data store interactions.

9. A system, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

analyzing, using the at least one processing device, request data and corresponding response data for at least one application to generate one or more data features;

parsing, using the at least one processing device, one or more of an audit log and a transaction log of the at least one application to identify one or more interactions with a data store;

clustering, using the at least one processing device, the one or more data store interactions using an unsupervised learning technique to identify one or more patterns of usage of the data store;

selecting, using the at least one processing device, one or more service types to generate, using one or more trained supervised machine learning models for the requests, the corresponding response data and the data store interactions; and

generating, using the at least one processing device, at least one of an application programming interface specification, a data model specification and a message specification for the one or more selected service types for a microservice implementation of the at least one application.

10. The system of claim 9 , wherein the step of analyzing employs an interceptor for each running application to intercept the requests and the corresponding response data.

11. The system of claim 9 , wherein the step of parsing employs a distinct parser for each log source type.

12. The system of claim 9 , wherein the step of clustering groups the data store interactions based on one or more of an identifier of a calling application, a process identifier, a network address, a timestamp and one or more join operations.

13. The system of claim 9 , wherein the message specification defines a message destination and update notifications among a plurality of services.

14. The system of claim 9 , further comprising the step of generating one or more of a run-time environment, a data definition language and one or more message queues based on, respectively, the application programming interface specification, the data model and the message specification for the one or more selected service types.

15. The system of claim 9 , wherein the one or more trained supervised machine learning models are trained using a plurality of the data features derived from the requests, the corresponding response data and the data store interactions.

16. A computer program product, comprising a tangible machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps:

analyzing, using at least one processing device, request data and corresponding response data for at least one application to generate one or more data features;

parsing, using the at least one processing device, one or more of an audit log and a transaction log of the at least one application to identify one or more interactions with a data store;

clustering, using the at least one processing device, the one or more data store interactions using an unsupervised learning technique to identify one or more patterns of usage of the data store;

selecting, using the at least one processing device, one or more service types to generate, using one or more trained supervised machine learning models for the requests, the corresponding response data and the data store interactions; and

generating, using the at least one processing device, at least one of an application programming interface specification, a data model specification and a message specification for the one or more selected service types for a microservice implementation of the at least one application.

17. The computer program product of claim 16 , wherein the step of analyzing employs an interceptor for each running application to intercept the requests and the corresponding response data and the step of parsing employs a distinct parser for each log source type.

18. The computer program product of claim 16 , wherein the step of clustering groups the data store interactions based on one or more of an identifier of a calling application, a process identifier, a network address, a timestamp and one or more join operations.

19. The computer program product of claim 16 , further comprising the step of generating one or more of a run-time environment, a data definition language and one or more message queues based on, respectively, the application programming interface specification, the data model and the message specification for the one or more selected service types.

20. The computer program product of claim 16 , wherein the one or more trained supervised machine learning models are trained using a plurality of the data features derived from the requests, the corresponding response data and the data store interactions.

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 (046366/0014) 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 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 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/0093 →
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 Jun 1, 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 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 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 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2018
From: ROCHE, IAN GERARD; CREEDON, SEAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045651/0193 →
Continuity (1)
Related Publication 20190334789A1 · Oct 31, 2019