# US 2016/0261684 A1 · Migrating legacy applications to a multi-tenant computing environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2016/0261684 A1
- Document ID: US20160261684A1
- Status: Published application
- Kind: A1
- Application number: 14/635,501
- Filed: 2015-03-02
- Published: 2016-09-08
- Earliest claimed: 2015-03-02
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Rania Y. KHALAF; Vinod MUTHUSAMY; David E. Shepard; Aleksander SLOMINSKI
- Web page: https://patentgrep.com/patent/US20160261684A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/445: Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57)
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Various embodiments migrate a legacy application to a multi-tenant computing environment. In one embodiment, at least one virtualized computing container is instantiated on a host system in a multi-tenant computing environment. An instance of the legacy application is executed within the virtualized computing container. The legacy application having been initially configured to run on premise and serve one tenant at a time. The virtualized computing container securely isolates the executing instance of the legacy application from other executing instances of the legacy application. At least one request received from a first client is sent to the instance of the legacy application executing within the virtualized computing container. The virtualized computing container is quiesced based on at least one quiescing criterion having been satisfied by the instance of the legacy application.

## Claims

### Claim at position 1

1-9. (canceled)

### Claim 10

An information processing system for migrating a legacy application to a multi-tenant computing environment, the information processing system comprising:
memory;
a processor communicatively coupled to the memory; and
a resource manager communicatively coupled to the memory and the processor, the resource manager configured to perform a method comprising:
instantiating at least one virtualized computing container on a host system in a multi-tenant computing environment;
executing an instance of the legacy application within the virtualized computing container, the legacy application being initially configured to run on premise and serve one tenant at a time, and where the virtualized computing container securely isolates the executing instance of the legacy application from other executing instances of the legacy application;
sending, based on the executing, at least one request received from a first client to the instance of the legacy application; and
quiescing the virtualized computing container based on at least one quiescing criterion having been satisfied by the instance of the legacy application.

### Claim 11 (depends on 10)

The information processing system of claim 10, the method further comprising:
instantiating at least one additional virtualized computing container on the host system; and
executing an additional instance of the legacy application within the additional virtualized computing container, where the virtualized computing container serves the first client and the additional virtualized computing container serves a second client.

### Claim 12 (depends on 10)

The information processing system of claim 10, the method further comprising:
receiving, by a load balancer, the request from the client;
selecting, by the load balancer, at least one request dispatcher; and
sending the request to the at least one request dispatcher,
wherein instantiating the at least one virtualized computing container is based on:
extracting, by the request dispatcher, a tenant identifier from the request, the tenant identifier uniquely identifying the first client;
comparing, by the request dispatcher, the tenant identifier to a set of mapping information, where the set of mapping information maps each of a set of clients to at least one virtualized computing container;
determining, by the request dispatcher and based on the comparing, that a virtualized computing container fails to be mapped to the tenant identifier; and
dynamically performing the instantiating based on determining that a virtualized computing container fails to be mapped to the tenant identifier,
wherein the request is sent to the virtualized computing container by the request dispatcher after the virtualized computing container has been initialized and the instance of the legacy application has been executed.

### Claim 13 (depends on 10)

The information processing system of claim 10, wherein the at least one quiescing criterion comprises one of:
the instance of the legacy application performing an exit operation, the exit operation stopping executing of the instance of the legacy application; and
the instance of the legacy application comprising an idle state.

### Claim 14 (depends on 10)

The information processing system of claim 10, the method further comprising:
receiving the request from the client;
determining, based on an identifier within the request, that the request is state-full and related to other requests;
analyzing a set of mapping information, where the set of mapping information maps each of a set of clients to a set of virtualized computing containers and further maps each of the set of virtualized computing containers to a set of related requests;
determining, based on the analyzing, the virtualized computing container is mapped to the request; and
sending the request to the virtualized computing container based on determining that the virtualized computing container is mapped to the request.

### Claim 15

A computer program product for migrating a legacy application to a multi-tenant computing environment, the computer program product comprising:
a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
instantiating at least one virtualized computing container on a host system in a multi-tenant computing environment;
executing an instance of the legacy application within the virtualized computing container, the legacy application being initially configured to run on premise and serve one tenant at a time, and where the virtualized computing container securely isolates the executing instance of the legacy application from other executing instances of the legacy application;
sending, based on the executing, at least one request received from a first client to the instance of the legacy application; and
quiescing the virtualized computing container based on at least one quiescing criterion having been satisfied by the instance of the legacy application.

### Claim 16 (depends on 15)

The computer program product of claim 15, the method further comprising:
instantiating at least one additional virtualized computing container on the host system; and
executing an additional instance of the legacy application within the additional virtualized computing container, where the virtualized computing container serves the first client and the additional virtualized computing container serves a second client.

### Claim 17 (depends on 15)

The computer program product of claim 15, the method further comprising:
receiving, by a load balancer, the request from the client;
selecting, by the load balance, at least one request dispatcher; and
sending the request to the at least one request dispatcher.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein instantiating the at least one virtualized computing container is based on:
extracting, by the request dispatcher, a tenant identifier from the request, the tenant identifier uniquely identifying the first client;
comparing, by the request dispatcher, the tenant identifier to a set of mapping information, where the set of mapping information maps each of a set of clients to at least one virtualized computing container;
determining, by the request dispatcher and based on the comparing, that a virtualized computing container fails to be mapped to the tenant identifier; and
dynamically performing the instantiating based on determining that a virtualized computing container fails to be mapped to the tenant identifier,
wherein the request is sent to the virtualized computing container by the request dispatcher after the virtualized computing container has been initialized and the instance of the legacy application has been executed.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the at least one quiescing criterion comprises one of:
the instance of the legacy application performing an exit operation, the exit operation stopping executing of the instance of the legacy application; and
the instance of the legacy application comprising an idle state.

### Claim 20 (depends on 15)

The computer program product of claim 15, the method further comprising:
receiving the request from the client;
determining, based on an identifier within the request, that the request is state-full and related to other requests;
analyzing a set of mapping information, where the set of mapping information maps each of a set of clients to a set of virtualized computing containers and further maps each of the set of virtualized computing containers to a set of related requests;
determining, based on the analyzing, the virtualized computing container is mapped to the request; and
sending the request to the virtualized computing container based on determining that the virtualized computing container is mapped to the request.
