Patents Assigned to Parallels International GmbH
  • Patent number: 10185597
    Abstract: System for providing a high availability (HA) of services, includes a plurality of nodes forming a cluster. Some nodes have services running on them such that the cluster has only a single instance of that service; node locks active while accessing the active nodes; a router providing access to services hosted on the nodes. Services utilize the resources subject to the node locks. An HA master daemon running on one of the nodes. HA daemons on each node track availability of services hosted on the nodes and generate requests to HA master daemon to restore failed services and redirect the router to live services. The HA daemons activate node locks. Master daemon re-launches services on another node and updates the router. A target node executes a lock revoke to acquire the node lock from the source node when the services of the source node are live-migrated from the source node.
    Type: Grant
    Filed: May 30, 2017
    Date of Patent: January 22, 2019
    Assignee: Parallels International GmbH
    Inventors: Pavel Emelyanov, Stanislav S. Protassov, Serguei M. Beloussov
  • Patent number: 10181054
    Abstract: A system and method is provided for secure file and document management and editing by local client devices. An exemplary method includes receiving by a server, an identifier of a data block and a portion of the data block from a client device, encrypting the first portion of the data block, and generating an encryption key based on the identifier of the data block. The method further includes transmitting, by the server, the encrypted first portion of the data block to the client device to be stored locally in memory of the client device, and causing a second portion of the data block to be encrypted by the client device using the encryption key. A as result, the encrypted second portion of the data block can be stored in the memory of the client device in connection with the encrypted first portion of the data block.
    Type: Grant
    Filed: January 13, 2017
    Date of Patent: January 15, 2019
    Assignee: Parallels International GmbH
    Inventors: Maxim Lyadvinsky, Paul Gafa, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10180855
    Abstract: A system and method is provided for controlling an operating state of a virtual processor. An exemplary method includes determining a blocked state of a guest operating system, and, upon detecting the blocked state, determining a number of interrupt events during a first time period. If the number of interrupts is less than a first threshold or even zero during a first time period, the method includes protecting memory pages from execution by the virtual processor. Moreover, the method includes detecting, during a second time period, when the processor attempts to execute protected memory pages and unprotecting these protected memory page. Then, during a third time period, the method includes monitoring execution by the processor of the unprotected memory pages and maintaining the processor in an idle state based on the number of executed unprotected memory pages during the third time period.
    Type: Grant
    Filed: June 13, 2017
    Date of Patent: January 15, 2019
    Assignee: Parallels International GmbH
    Inventors: Alexey Koryakin, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10152290
    Abstract: Disclosed are systems and methods for managing a print job in a virtual environment. The described technique includes associating a physical printer with a chosen virtual printer which may be used by the user in the remote application to execute. A remote application server can receive from a remote application a request to choose a virtual printer in a remote session established between the client device and a remote application server. A tag associated with the print job that indicates one or more parameters of the virtual printer is determined, as well as a location of the client device. The technique includes selecting a physical printer from a plurality of available printers in the remote session based on the determined location and the determined tag of the virtual printer. An association with the virtual printer is generated and saved, and may be used for a subsequent print job.
    Type: Grant
    Filed: September 11, 2017
    Date of Patent: December 11, 2018
    Assignee: Parallels International GmbH
    Inventors: Alexander Khalyapin, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10050957
    Abstract: A processing device of a server executing an application establishes a network connection to a client device having a smart card, detects a program call directed to a smart card application programming interface (API) to authenticate a user of the client device for accessing the application, and determines, based on the program call, whether the smart card is a remote smart card for the server. Responsive to determining that the smart card is the remote smart card, the processing device redirects the program call to the client device via a separate communication channel of the network connection and authenticates, by the server, the user of the client device in view of data returned by the program call, as if the remote smart card were local to the server.
    Type: Grant
    Filed: April 8, 2016
    Date of Patent: August 14, 2018
    Assignee: Parallels International GmbH
    Inventors: Daniel Farrugia, Paul Gafa, Nikolay Dobrovolskiy, Serguei Beloussov
  • Patent number: 10037334
    Abstract: A system for memory management for Virtual Machines (VMs), including a host computer system running a host operating system (OS); at least two Virtual Machines (VMs) running on the host computer system, wherein each of the VMs has a Guest OS supporting a guest file system with execution-in-place that allows code execution without an intermediate buffer cache; a hypervisor configured to control the VMs; and a thin provisioning block device configured to store shared pages and formed of at least one delta file. The hypervisor is configured to receive a page fault, and to read the shared pages from the thin provisioning block device. The Guest OS executes the file that is stored on the thin provisioning block device.
    Type: Grant
    Filed: December 26, 2016
    Date of Patent: July 31, 2018
    Assignee: Parallels International GmbH
    Inventors: Denis Lunev, Alexey Kobets
  • Patent number: 10019282
    Abstract: Systems and methods for implementing a virtual machine (VM) exit processing accelerator. An example method comprises: reading, from a first memory location, a first virtual machine (VM) exit handler address referencing a hypervisor; storing, in a second memory location, the first VM exit handler address; storing, in the first memory location, a second VM exit handler address referencing a VM exit processing accelerator; receiving, by the VM exit processing accelerator, a VM exit associated with a virtual machine; responsive to determining that an identifier of a reason of the VM exit satisfies the first condition, processing the VM exit by the VM exit processing accelerator; and resuming execution of the virtual machine.
    Type: Grant
    Filed: July 21, 2016
    Date of Patent: July 10, 2018
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Andrey N. Naenko, Alexey B. Koryakin, Nikolay N. Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 9983761
    Abstract: A method and computer program product for intercepting and blocking the mouse move and resize events on mobile devices transmitting remote application. The remote access client installed on the mobile device send the coordinates of user's touches to remote computer. The remote access agent, running on a remote host, blocks the consequences of user finger (or stylus) actions performed on a captured window of the remote application. The method defines the areas and elements of a captured remote application window that are not affected by the move/resize commands emulated by a mobile device user. This functionality is implemented by a control-agent component running on a remote host for receiving and processing the commands from a mobile device and for transmitting video stream and some metadata about remote applications to the mobile device.
    Type: Grant
    Filed: November 22, 2016
    Date of Patent: May 29, 2018
    Assignee: Parallels International GMBH
    Inventors: Kirill Bagrinovskiy, Stanislav S. Protassov, Serguei M. Beloussov, Nikolay N. Dobrovolskiy
  • Patent number: 9804872
    Abstract: A method, system and computer program product for emulation of a virtual application bookmark on a host desktop. When a user launches a VM (running Windows™), shortcuts to user applications are created on the desktop. In Parallels™ Desktop™, the VM shortcuts and MAC bookmarks can both be seen and be functional. A special file is created in MAC OS X with Windows™ icon. The file is associated with the VM from which the file was created, and resource link corresponding to the original shortcut. The bookmark thus contains a reference to an application icon in the VM, which the user can launch from the host OS by clicking on it.
    Type: Grant
    Filed: December 3, 2014
    Date of Patent: October 31, 2017
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Denis Ozerov, Andrey A. Omelyanchuk, Nikolay N. Dobrovolskiy, Stanislav S. Protassov, Serguei M. Beloussov
  • Patent number: 9760400
    Abstract: Method for joining containers. On a plurality of nodes connected into a cluster, where each node hosts at least one container, executing real processes in the containers, where each real process is executed on a single container and other containers execute fake process corresponding to the real process; the fake process includes interfaces identical to interfaces of a corresponding real process; determining the real process on a source container to be migrated; for the target container, replacing the fake process with the real process and replacing the real process with the fake process on the source container; re-launching a process on the same hardware node with settings from another node. Interfaces of real processes are connected to interfaces of fake processes to establish data flow of fake process identical to the data flow outputted by interfaces of a real process. Interfaces of the fake process receive data from conjugated interfaces.
    Type: Grant
    Filed: March 31, 2017
    Date of Patent: September 12, 2017
    Assignee: Parallels International GmbH
    Inventor: Pavel Emelyanov
  • Patent number: 9740380
    Abstract: A processing device receives, from a remote access client executing on a mobile device, user input provided in a portion of an application window being displayed on the mobile device. The application window on the mobile device corresponds to an application executing on a remote host. The user input requests an operation to be performed on the application window and specifies a location of the portion of the application window in which the user input was provided. The processing device determines whether the portion of the application window is a restricted portion with respect to the requested operation to be performed on the application window, and prevents the remote access client on the mobile device from performing the requested operation responsive to a determination that the portion of the application window is the restricted portion.
    Type: Grant
    Filed: April 5, 2016
    Date of Patent: August 22, 2017
    Assignee: Parallels International GmbH
    Inventors: Kirill Bagrinovskiy, Stanislav S. Protassov, Serguei M. Beloussov, Nikolay N. Dobrovolskiy
  • Patent number: 9716688
    Abstract: A method, system and computer program product for a VPN for containers and VMs implemented on different network node. A number of network hardware nodes have containers and VMs running on them. The containers and VMs are aggregated into VPNs assembled across the hardware nodes. Each hardware node has a network edge programmable switch configured to route packets to containers and VMs only inside a particular VPN. The switch detects a number of the VPN inside the packet header, replaces this number by a standard broadcast header number and multi-casts the packet to the containers and the VMs inside the VPN.
    Type: Grant
    Filed: January 6, 2017
    Date of Patent: July 25, 2017
    Assignee: Parallels International GmbH
    Inventors: Pavel Emelyanov, James Bottomley
  • Patent number: 9678880
    Abstract: A method and a system for cache management in system interfacing to a cloud storage. The cache has two layers: the filter layer for tracing read access to the data blocks and the cache layer for keeping the actual data blocks. The layer two consists of two modules—a main cache and a boot cache. The boot cache is filled during the short period of time after the first file open operation. The boot cache also has a limit on the amount of data that can be put into the cache for the particular file. The filter layer detects continuous read access pattern and avoids caching data, if the data is read continuously beyond some limit.
    Type: Grant
    Filed: November 9, 2015
    Date of Patent: June 13, 2017
    Assignee: Parallels International GmbH
    Inventors: Kirill Korotaev, Oleg Volkov, Alexey Kuznetzov, Stanislav S. Protassov, Serguei M. Beloussov
  • Patent number: 9563499
    Abstract: A user administers web hosting on user's server from his computer remotely. When a run time error is generated, an error message is sent to a server connected to a knowledge database. If the error matches the known error form the knowledge database, the user is provided an article with a solution to the run-time error. Statistics of occurrence of the errors are saved in the knowledge database. The frequently occurring errors are provided to developers for creating hosting application updates. Additionally, security policies of the user's server can be updated based on the data from the knowledge database.
    Type: Grant
    Filed: January 30, 2015
    Date of Patent: February 7, 2017
    Assignee: Parallels International GmbH
    Inventors: Sergey N. Oleynikov, Alexey V. Yuzhakov, Stanislav S. Protassov, Serguei M. Beloussov, Sergey M. Egorov, Mikhail M. Lavrentiev
  • Patent number: 9548964
    Abstract: A method, system and computer program product for a VPN for containers and VMs implemented on different network node. A number of network hardware nodes have containers and VMs running on them. The containers and VMs are aggregated into VPNs assembled across the hardware nodes. Each hardware node has a network edge programmable switch configured to route packets to containers and VMs only inside a particular VPN. The switch detects a number of the VPN inside the packet header, replaces this number by a standard broadcast header number and multi-casts the packet to the containers and the VMs inside the VPN.
    Type: Grant
    Filed: October 25, 2016
    Date of Patent: January 17, 2017
    Assignee: Parallels International GmbH
    Inventors: Pavel Emelyanov, James Bottomley
  • Patent number: 9535567
    Abstract: A method and computer program product for intercepting and blocking the mouse move and resize events on mobile devices transmitting remote application. The remote access client installed on the mobile device send the coordinates of user's touches to remote computer. The remote access agent, running on a remote host, blocks the consequences of user finger (or stylus) actions performed on a captured window of the remote application. The method defines the areas and elements of a captured remote application window that are not affected by the move/resize commands emulated by a mobile device user. This functionality is implemented by a control-agent component running on a remote host for receiving and processing the commands from a mobile device and for transmitting video stream and some metadata about remote applications to the mobile device.
    Type: Grant
    Filed: December 21, 2015
    Date of Patent: January 3, 2017
    Assignee: Parallels International GmbH
    Inventors: Kirill Bagrinovskiy, Stanislav S. Protassov, Serguei M. Beloussov, Nikolay N. Dobrovolskiy