Network Address Sharing in Multitenant Monolithic Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional approaches to running multitenant, monolithic applications require nonoverlapping IP address ranges, limiting the ability to meet customer specifications for network resources and restricting realistic testing and training exercises, as servers cannot operate with actual network addresses used by tenants during production.

Innovation Solution

The technique involves generating multiple network namespaces on a server, allowing tenants to access a monolithic application thread through sockets in these namespaces, with each namespace having its own independent set of network addresses that can overlap, enabling data exchange between the server and tenants using virtual local area network (VLAN) identifiers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If tenants are assigned nonoverlapping IP address ranges in a monolithic application, then network address conflicts are avoided, but the server cannot meet customer specifications for network resources and cannot perform realistic testing with actual network addresses

Engineering Contradiction:
Improvenetwork resource configuration flexibilityVSAvoidnetwork namespace management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the network namespace into multiple isolated instances, each assigned to a specific tenant. This segmentation allows each tenant to have their own independent network address space with full control over IP addresses, while the underlying monolithic application remains shared. The network namespace acts as a virtualization layer that separates tenant network environments without requiring separate application instances.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If a single runtime instance serves multiple tenants, then total cost of ownership is reduced, but each tenant cannot have customized network resource allocations

Engineering Contradiction:
Improveapplication instance consolidationVSAvoidnetwork resource customization
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent introduces network namespaces as an intermediary layer between the shared monolithic application and individual tenants. This intermediary enables customized network resource allocation for each tenant while maintaining application consolidation. The network namespace acts as a virtualization boundary that allows independent network configuration without duplicating the application runtime instance.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If production software runs over the network with actual tenant addresses, then realistic testing cannot be performed simultaneously, but network address availability is limited

Engineering Contradiction:
Improvetesting realismVSAvoidnetwork isolation architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the network environment into isolated namespaces that allow simultaneous production and testing operations. Each namespace can be configured independently, enabling realistic testing with actual network addresses in one namespace while production software runs in another namespace with different address allocations, eliminating conflicts between testing and production activities.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10148611B2Network address sharing in a multitenant, monolithic application environment
Publication Date: 2018.12.04 EMC IP HLDG CO LLC
  • US10148611B2 patent drawing
  • US10148611B2 patent drawing
  • US10148611B2 patent drawing

AI summary

Improved techniques of running multitenant applications involve opening sockets in multiple network namespaces through which respective tenants may access a monolithic application thread. A server running such an application may assign tenants network bandwidth through one or more network namespaces. Each network namespace has its own independent set of network addresses that may overlap or even be identical to another namespace's set of network addresses. The server may then identify a request to access application data with a particular tenant by network identifiers such as virtual local area network (VLAN) identifiers attached to the request. Thus, even though two established sockets may include identical source and destination addresses, data may be exchanged between the server and the intended tenants.