Nova Patents
US7707583B2

Robust sharing of runtime systems

Summary by NHIP

Runtime System Sharing Apparatus

The system receives requests for user sessions and selects specific runtime systems and work processes to handle them. It isolates sessions by generating shared closures that map user contexts to virtual machine address spaces within a shared memory area.

Claim Score by NHIP

Read claim 3, the broadest

Abstract

Methods and apparatus, including computer systems and program products, for sharing objects in runtime systems and for providing isolation between user sessions in a scalable manner. A user context corresponding to a user session is stored in a shared memory area. Upon receiving a request corresponding to the user session, a process is selected from a set of operating system processes, and a runtime system is selected from a set of runtime systems. The runtime system is bound to the process, and the user context is associated with the runtime system to process the request. In some implementations, sharing user contexts enables virtual machines to be used in a shared but isolated manner: Each user context can be exclusively associated with an available virtual machine from a fixed set of virtual machines, and each virtual machine can be exclusively executed in an available process from a fixed set of processes.

US7707583B2, drawing sheet 1
Sheet 1 of 17

Term

Projected expiry 28 November 2028.

  1. Priority and filed
  2. Granted
  3. Today
  4. Projected expiry

8 claims: 3 independent, 5 dependent

  1. 1
    A computer program product, stored on a machine-readable storage medium, the computer program product being operable to cause a computer system to:receive on a computer a request to process a user session of a plurality of user sessions relating to a software application running at an application server of the computer system;select a runtime system of a plurality of runtime systems and a work process of a plurality of work processes capable of being associated with the user session;isolate the user session from other user sessions of the plurality of user sessions at a shared memory area by generating a shared closure having the user session and a corresponding user context, wherein generating the shared closure includes allocating a portion of the shared memory area to the user session;bind the selected runtime system and the work process to the shared closure by associating the runtime system and the work process to the user session by mapping the user context of the user session to an address space of the runtime system;process, via the runtime system and the work process, the user session in the shared closure, wherein each of the plurality of runtime systems comprises a virtual machine;and unbind the selected runtime system and a worker node from the user session upon completion of the processing of the user session, wherein unbinding includes disassociating the address space of the runtime system from the user context of the user session.
  2. 3
    Broadest claimClaim Score 37, average(NHIP)A computer-implemented method comprising:receiving on a computer a request to process a user session of a plurality of user sessions relating to a software application running at an application server of a computer system;selecting a runtime system of a plurality of runtime systems and a work process of a plurality of work processes capable of being associated with the user session;isolating the user session from other user sessions of the plurality of user sessions at a shared memory area by generating a shared closure having the user session and a corresponding user context, wherein generating the shared closure includes allocating a portion of the shared memory area to the user session;binding the selected runtime system and the work process to the shared closure by associating the selected runtime system and the work process to the user session by mapping user context of the user session to an address space of the runtime system;and processing, via the runtime system and the work process, the user session in the shared closure;wherein each of the plurality of runtime systems comprises a virtual machine;and unbinding the selected runtime system and a worker node from the user session upon completion of the processing of the user session wherein unbinding includes disassociating the address space of the runtime system from the user context of the user session.
  3. 7
    A system comprising:a server computer having a processor and a storage medium coupled with the processor, a server computer system including an application server to receive a request to process a user session of a plurality of user sessions relating to a software application running at the application server to select on the processor a runtime system of a plurality of runtime systems and a work process of a plurality of work processes capable of being associated with the user session;isolate the user session from other user sessions of the plurality of user sessions at a shared memory area by generating a shared closure having the user session and a corresponding user context, wherein generating the shared closure includes allocating a portion of the shared memory area to the user session;bind the selected runtime system and the work process to the shared closure by associating the runtime system and the work process to the user session by mapping the user context of the user session to an address space of the runtime system;process, via the runtime system and the work process, the user session in the shared closure, wherein each of the plurality of runtime systems comprises a virtual machine;and unbind the selected runtime system and a worker node from the user session upon completion of the processing of the user session wherein unbinding includes disassociating the address space of the runtime system from the user context of the user session.