G06F9/45504

Usage checks for code running within a secure sub-environment of a virtual machine

A system may include an application server and one or more tenants served by the application server. The application server may host a virtual machine with multiple isolated sub-environments. Each tenant of the application server may request to run a program in a tenant-specific sub-environment of the virtual machine. The sub-environments may be configured so the execution of one tenant's code does not affect execution of another tenant's code or the hosting virtual machine, for example, by considering the resources used to execute the code. The application server may implement techniques to securely execute “untrusted” code, programmed using one or more different programming languages, in the sub-environments by enforcing resource restrictions and restricting the sub-environments from accessing the host's local file system. In this way, one tenant's code does not negatively impact execution of another tenant's code by using too many resources of the virtual machine.

Data processing for allocating memory to application containers

A system and related method for managing memory in data processing comprises allocating each of a plurality of application containers a respective portion of a memory communicatively coupled to a plurality of processing units. The method further comprises allocating each of the plurality of application containers a respective group of the plurality of processing units and allocating, to each of the plurality of application containers, nursery and tenured heap spaced in the memory. The method then comprises performing, responsive to a request from an application container, garbage collection from the nursery and tenured heap spaces allocated to the application container.

Remotely invoking dynamic classes on a computing device
09811353 · 2017-11-07 · ·

A computing device that is configured for remotely invoking dynamic classes is described. The computing device includes a processor, memory in electronic communication with the processor and instructions stored in the memory. The computing device deploys one or more assemblies, which are used by an unreferenced derived class. A byte array that includes the unreferenced derived class is received from a remote node. The unreferenced derived class includes an implementation of a common base class. The computing device further receives a class name and one or more assembly names from the remote node. The computing device decodes the byte array to reconstitute the unreferenced derived class and calls the implementation of the common base class. One or more operations may be performed with the unreferenced derived class.

METHOD AND SYSTEM FOR AUTOMATICALLY PROVIDING GRAPHICAL USER INTERFACES FOR COMPUTATIONAL ALGORITHMS DESCRIBED IN PRINTED PUBLICATIONS

A system and method for providing graphical user interfaces based on computational algorithms described in printed publications. The method includes analyzing the printed publication to determine algorithm-indicating information of the computational algorithm; identifying at least one input required by the computational algorithm and at least one output to be output by the computational algorithm; generating, based on the at least one input and the at least one output, at least one GUI element; and generating executable code, wherein the executable code includes instructions for causing a display of the GUI including the at least one GUI element.

High-performance virtual machine networking
09804904 · 2017-10-31 · ·

A virtual machine (VM) runs on system hardware, which includes a physical network interface device that enables transfer of packets between the VM and a destination over a network. A virtual machine monitor (VMM) exports a hardware interface to the VM and runs on a kernel, which forms a system software layer between the VMM and the system hardware. Pending packets (both transmit and receive) issued by the VM are stored in a memory region that is shared by, that is, addressable by, the VM, the VMM, and the kernel. Rather than always transferring each packet as it is issued, packets are clustered in the shared memory region until a trigger event occurs, whereupon the cluster of packets is passed as a group to the physical network interface device. Optional mechanisms are included to prevent packets from waiting too long in the shared memory space before being transferred to the network. An interrupt offloading mechanism is also disclosed for use in multiprocessor systems such that it is in most cases unnecessary to interrupt the VM in order to request a VMM action, and the need for VMM-to-kernel context transitions is reduced.

Display Method for Operating Systems, Display Device for Operating Systems, and Multi-System Terminal
20170308414 · 2017-10-26 ·

The present disclosure provides a display method for operating systems, a display device for operating systems, and a multi-system terminal. The display method includes: running multiple operating systems simultaneously; and displaying each of the multiple operating systems in a preset display mode. The multi-system operating system that are run simultaneously is displayed on one or more display screens, and restarting a terminal is avoided when switching the operating systems, thus a user operates the multiple operating system simultaneously or separately, which facilitates user's operation and improves user's experience.

DYNAMIC ISOLATION CONTEXTS IN VIRTUAL MACHINES WITH DYNAMIC-LINKING
20170308310 · 2017-10-26 ·

A method for isolating access to shared software resources is disclosed. As part of deployment of an application, an aspect of an execution context for isolating access to a shared variable may be specified. During execution of the application, a current value of the aspect of the execution context may be determined. An access to the shared variable may be detected during execution of the application, and access to the shared variable may be redirected to an isolated copy of the shared variable dependent upon the current value of the aspect of the execution context and the shared variable.

METHOD AND SYSTEM FOR DEPLOYING VIRTUALIZED APPLICATIONS

Methods and systems for deploying virtualized applications are disclosed. In an embodiment, a method involves, at a client device, downloading a launcher from a virtualized application portal to the client device, running the launcher at the client device, wherein running the launcher comprises checking for a first dependency and downloading a file of the first dependency if the first dependency is not installed on the client device, after checking for the first dependency, downloading an apploader from the virtualized application portal, and running the apploader at the client device. Running the apploader involves determining a configuration of the client device and downloading virtualized application components dependent on the configuration, determining specific needs of the virtualized application and downloading components dependent on the specific needs, and starting the virtualized application on the client device.

Systems and Methods for Platform-Independent Application Publishing to a Front-End Interface
20220060558 · 2022-02-24 ·

Provided are computer-implemented methods and systems for publishing an application to a web container. An example method for publishing an application to a web container may include establishing a channel of communication with a user device associated with an end user. The method may further include embedding a web container into a web portal associated with a plurality of applications. The method may include executing an application in a user session associated with the end user. The method may further include capturing images of a virtual screen associated with the application executed on the application server. After the capture, the method may continue with sending the images to the web container of the web portal running in a web browser of the user device. The web container may publish the images to the web browser to display the application as part of the web portal in the web browser.

Modified JVM with multi-tenant application domains and class differentiation
09798558 · 2017-10-24 · ·

A method and system for operating a modified Java Virtual Machine (JVM) which is able to simultaneously host multiple Java application programs is disclosed. In a first modification the JVM is modified to permit multiple class definitions of some of the Java Application Programming Interface (API) classes, so called non-sensitive classes, to be loaded multiple times but restrict other Java API classes, so called sensitive classes, to be loaded only once, preferably onto a bootstrap class loader. In a second modification the Java API classes are also modified. Preferably in a further modification, some or all of the sensitive API classes are modified not to use synchronization.