Generation of equivalent microservices to replace existing object-oriented application
Technology for dividing a monolith computer program into a plurality of functions and creating a microservice for each function of the model's computer program. The micro-services are semantically and functionally equivalent, taken collectively, to the model's computer program from which they came. In some embodiments, the monolith computer program is written in an object oriented programming language suitable for execution by a virtual machine (VM). In some embodiments, the microservices are in representational state transfer (REST) form and respectively corresponding application programming interface (API).
1. A computer-implemented method comprising:
receiving a monolithic form computer program including object-oriented computer code that utilizes a plurality of objects;
determining a plurality of partitions in the object-oriented computer code; and
for each given partition of the plurality of partitions, automatically generating a microservice that is functionally and semantically equivalent to the first partition of the object-oriented computer code;
wherein the automatically generated microservices collectively form a computer program that is functionally equivalent to the monolithic form computer program; and
the automatically generated microservices collectively form the computer program that performs distributed object creation management that is semantically equivalent to a centralized JVM (Java virtual machine), therefore preserving runtime semantics of the JVM in a distributed manner;
the automatically generated microservices collectively form the computer program that performs distributed object access management that is semantically equivalent to a centralized JVM (Java virtual machine), therefore preserving runtime semantics of the JVM in a distributed manner; and
the automatically generated microservices collectively form the computer program that performs distributed garbage collection that is semantically equivalent to a centralized JVM (Java virtual machine), therefore preserving runtime semantics of the JVM in a distributed manner.