Runtime Object Sharing for Session Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Scalability and robustness in server systems are challenged by the need for strong isolation between user sessions, which is difficult to achieve with traditional multi-threaded virtual machines due to resource constraints and OS scheduling overhead.

Innovation Solution

Implementing techniques to share data and provide isolation between user sessions by grouping shareable objects into 'object groups' and copying them into a shared memory area, allowing for efficient reuse across multiple runtime systems while maintaining isolation through careful access management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If one operating system process is allocated for each user session, then isolation between user sessions is improved, but OS scheduling overhead and resource consumption increase

Engineering Contradiction:
Improveisolation between user sessionsVSAvoidOS scheduling overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the system into multiple virtual machines, each handling a subset of user sessions. This allows isolation to be maintained at the VM level rather than requiring separate OS processes for each session, reducing scheduling overhead while preserving robustness through VM-level isolation boundaries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple user sessions are merged into shared virtual machines rather than being separated into individual OS processes. The patent enables multiple sessions to share the same VM instance, eliminating the need for proportional increase in OS processes and reducing overall system complexity.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If one operating system process is allocated for each user session, then isolation between user sessions is improved, but resource consumption increases

Engineering Contradiction:
Improveisolation between user sessionsVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple user sessions into shared virtual machine instances, allowing resource consolidation. Instead of dedicating separate OS processes and their associated resources to each session, multiple sessions share the same VM resources, reducing overall resource consumption while maintaining isolation through the VM architecture.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Virtual machines are designed to serve multiple user sessions simultaneously, making them universal containers that can handle diverse session workloads. This multi-functionality allows a single VM to replace what would traditionally require multiple dedicated processes, optimizing resource utilization.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Quantity of substance

If a large number of user sessions are running within a single virtual machine, then resource efficiency is improved, but isolation between user sessions deteriorates

Engineering Contradiction:
Improveresource efficiencyVSAvoidisolation between user sessions
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments user sessions into groups that are assigned to different virtual machines. Rather than placing all sessions in a single VM, the system divides sessions across multiple VM instances, maintaining isolation boundaries while preserving resource efficiency through shared VM infrastructure.

Inventive Principle:
Principle #1Segmentation

4Productivity

If objects are shared between runtime systems, then resource and time consumption is reduced, but complexity of managing shareability increases

Engineering Contradiction:
Improveresource and time consumptionVSAvoidcomplexity of managing shareability
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary analysis to determine object shareability before sharing occurs. By pre-evaluating which objects can be safely shared between runtime systems and preparing them in advance, the system reduces the complexity of managing shareability during runtime while enabling resource and time savings through object reuse.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism to manage object sharing between runtime systems. This intermediary layer handles the complexity of determining shareability, coordinating access, and ensuring safety, thereby simplifying the overall process of sharing objects across runtime boundaries.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7415704B2Sharing objects in runtime systems
Publication Date: 2008.08.19 SAP SE
  • US7415704B2 patent drawing
  • US7415704B2 patent drawing
  • US7415704B2 patent drawing

AI summary

Methods and apparatus, including computer systems and program products, for sharing data objects in runtime systems. An identification of a first data object in a first runtime system is received. The first data object references zero or more referenced data objects. A shared closure of data objects, which consists of the first data object and a transitive closure of the referenced data objects, is identified, and a determination is made as to whether the shared closure of data objects is usable in a second runtime system. In some implementations, determining whether a shared closure is usable in a second runtime system includes determining whether each data object in the shared closure is serializable without execution of custom code, or determining whether the runtime class of each object instance in the shared closure is shareable. Using shared closures to share objects between runtime systems can provide isolation between user sessions.