Patents by Inventor Nikolay Dobrovolskiy

Nikolay Dobrovolskiy has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10496849
    Abstract: A system and method is provided for secure file access by local client devices. An exemplary method includes receiving an identifier of a data block and a first portion of the data block from a client device, encrypting, with a master encryption key, the first portion of the data block, transmitting, by the server, a generated encryption key and the encrypted first portion of the data block to the client device to be stored locally in memory of the client device, wherein the generated encryption key is based on the master encryption key and the identifier and causing the client device to encrypt a second portion of the data block using the generated encryption key, and causing the client device to store the encrypted second portion of the data block in the memory of the client device.
    Type: Grant
    Filed: November 27, 2018
    Date of Patent: December 3, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Maxim Lyadvinsky, Paul Gafa, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10452420
    Abstract: Systems and methods for processing virtual machine I/O requests by virtualization extension modules. An example method comprises: receiving, by a virtual machine monitor (VMM) running on a host computer system, a request initiated by a virtual machine managed by the VMM; processing the request by a VMM extension module identified by one or more parameters of the request; invoking, by the VMM extension module, an application programming interface (API) exported by the VMM to perform an action identified by the request; and resuming execution of the virtual machine.
    Type: Grant
    Filed: November 2, 2016
    Date of Patent: October 22, 2019
    Inventors: Alexey Koryakin, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10423774
    Abstract: Disclosed are systems and methods for establishing secure communication between virtual machines, and, more particularly, to a system and method for establishing secure communication channels between two or more homogenous virtual machines. An exemplary method includes generating, by a first virtual machine, an encryption key compatible with a symmetric encryption algorithm and storing the encryption key in a memory of the first virtual machine; generating a second virtual machine by performing a virtual machine forking operation on the first virtual machine, wherein a memory of the generated second virtual machine contains the encryption key; receiving, by one of the at least two virtual machines, a communication transmitted by another of the at least two virtual machines, wherein the communication comprises data encrypted using the encryption key; and decrypting the data, by the recipient virtual machine, using the encryption key.
    Type: Grant
    Filed: August 22, 2017
    Date of Patent: September 24, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Anton Zelenov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10404663
    Abstract: An example method for file sharing over secure connections comprises: establishing a secure client connection; receiving a client request identifying a file residing on the file sharing host; transmitting an identifier and a parameter of the secure client connection via a management connection to the file sharing host; receiving a host request to establish a secure host connection, the host request comprising the identifier of the secure client connection; establishing the secure host connection using the parameter of the secure client connection identified by the received identifier; forwarding, over the secure host connection, a first data packet received over the secure client connection, the first data packet comprising at least part of the client request; and forwarding, over the secure client connection, a second data packet received over the secure host connection, the second data packet comprising at least part of the file identified by the client request.
    Type: Grant
    Filed: February 29, 2016
    Date of Patent: September 3, 2019
    Assignee: Parallels International GmbH
    Inventors: Alexey Petrukhin, Grigory Nikolaenko, Nikolay Dobrovolskiy, Serguei Beloussov
  • Patent number: 10404805
    Abstract: The subject matter of this specification can be implemented in, among other things, a method that includes comparing, by a processing device in a remote access system, one or more days and times of day corresponding to initiation of a remote access session at a server device to determine that the days and times of day are within a threshold range from a day and time of day. The method further includes storing, in a data storage at the remote access system, first session information identifying the day and time of day for the remote access session at the server device. The method further includes, in response to an occurrence of the day and time of day, causing the server device to initiate the remote access session.
    Type: Grant
    Filed: May 22, 2017
    Date of Patent: September 3, 2019
    Assignee: Parallels International GmbH
    Inventors: Cláudio Rodrigues, Paul Gafa, Liubov M. Kulakova, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10394860
    Abstract: A document manager facilitates indexing of a plurality of documents stored in a document repository by obtaining a document of the plurality of documents stored in the document repository, where the document comprises a plurality of morphemes. The document manager encodes a morpheme of the plurality of morphemes using an encryption passphrase associated with the client device to generate an encoded morpheme, encodes a location array using the encryption passphrase to generate an encoded location array, where the location array comprises each location of the morpheme within the document, and encodes a unique identifier associated with a location of the document in the document repository using the encryption passphrase to generate an encoded document identifier. The document manager then sends the encoded morpheme, the encoded location array, and the encoded document identifier to a server device to be stored in a search index.
    Type: Grant
    Filed: November 23, 2016
    Date of Patent: August 27, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Anton Zelenov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10380195
    Abstract: Implementations of the disclosure describe grouping documents by content similarity. A method of the disclosure includes determining a first set of document identifiers (IDs) for documents identified responsive to a search query, for each document ID of the first set: obtaining shingles corresponding to the document ID, identifying a second set of document IDs corresponding to the obtained shingles, grouping the identified document IDs of the second set in a grouping data structure, and determining resulting document IDs from the grouping data structure, the resulting document IDs corresponding to a threshold number of the document IDs in the grouping data structure having a highest number of occurrences. The method further includes associating the documents corresponding to the resulting documents IDs with one another in search results generated responsive to the search query.
    Type: Grant
    Filed: January 13, 2017
    Date of Patent: August 13, 2019
    Assignee: Parallels International GmbH
    Inventors: Anton Zelenov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10379823
    Abstract: A processing device of a remote server identifies at least one control in an active application window and a plurality of control options associated with the at least one control. The active application window comprises a user interface in a first format generated by an application running on the remote server. The processing device generates a first metadata representation of the at least one control and of the plurality of control options and sends the first metadata representation to a mobile device communicatively coupled to the remote server. The mobile device generates a user interface in a second format based on the first metadata representation to present the control and the plurality of control options on the mobile device.
    Type: Grant
    Filed: September 5, 2017
    Date of Patent: August 13, 2019
    Assignee: Parallels International GmbH
    Inventors: Ruslan Sadovnikov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10372497
    Abstract: A system and method is provided for performing computations on a virtual machine without a special hardware computation unit, such as a discrete graphics processing unit (GPU). The described method uses a computation module to intercept requests from a user application executing in a virtual machine on a first physical computer. The intercepted requests may include requests to configure GPU computation grids, start and finish accelerated code execution, and transfer data to and from the special computation unit. The computation module offloads accelerated code to a second physical computer having a physical special hardware unit (e.g., discrete GPU).
    Type: Grant
    Filed: September 5, 2017
    Date of Patent: August 6, 2019
    Assignee: Parallels International GmbH
    Inventors: Anton Zelenov, Nikolay Dobrovolskiy, Serguei M. Beloussov, Alexey Koryakin
  • Patent number: 10359969
    Abstract: Systems and methods for creating virtual machine snapshots. An example method comprises: receiving a request to create a snapshot of a virtual machine running on a host computer system; protecting from modification a plurality of virtual memory pages of the virtual machine; responsive to detecting an attempt to modify a virtual memory page of the plurality of memory pages, copying the virtual memory page to a queue residing in a random access memory (RAM) of the host computer system; making the virtual memory page writable; retrieving the virtual memory page from the queue; writing the virtual memory page to a disk of the host computer system; and responsive to exhausting the queue, completing creation of the snapshot of the virtual machine.
    Type: Grant
    Filed: March 9, 2017
    Date of Patent: July 23, 2019
    Assignee: Parallels International GmbH
    Inventors: Iurii Ovchinnikov, Alexey Koryakin, Denis Lamtsov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10341338
    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 associated with an authentication of 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 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: August 2, 2018
    Date of Patent: July 2, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Daniel Farrugia, Paul Gafa, Nikolay Dobrovolskiy, Serguei Beloussov
  • Patent number: 10331471
    Abstract: Systems and methods for browser credential management for virtual clients. An example method comprises: receiving, by a virtualization server application, a credential manager API request intercepted by a hook module installed into a browser running within a virtual execution environment managed by the virtualization server; forwarding the intercepted API request to a virtualization client application associated with the virtualization server; receiving, from the virtualization client application, a client response to the intercepted API request; producing, using the client response, a virtualization server response to the intercepted API request; and forwarding the virtualization server response to the hook module.
    Type: Grant
    Filed: March 29, 2017
    Date of Patent: June 25, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Sergey Viktorov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10313474
    Abstract: A system and method for reducing load on a load balancer by offloading redundant queries to the client. The system and method includes receiving an optimized service listing and determining if a suitable server can be identified without submitting a query to the load balancer. An exemplary method includes receiving, from a load balancing node, a listing of client services hosted by servers remotely coupled to the load balancing node, locally storing this listing and identifying one or more the client services to be transmitted to the client device. The method further includes accessing the listing of client services to determine if one or more of the servers is hosting the identified client service, establishing a connection between the client device and the server, and transmitting the identified client service from the server to the client device.
    Type: Grant
    Filed: November 14, 2016
    Date of Patent: June 4, 2019
    Assignee: Parallels International GmbH
    Inventors: Daniel Farrugia, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Publication number: 20190163509
    Abstract: A communication channel may be implemented from a host operating system (OS) to a guest OS of a virtual machine. The method may include receiving an instruction to create a communication channel between a guest OS of a virtual machine and host OS of a host computer system. The method may further include transmitting, to a virtual Universal Serial Bus (USB) hub executed by the host OS, a first request to create a virtual USB device on the virtual USB hub. The method may also include providing the virtual USB device to the guest OS and identifying an operation to be performed by the guest OS on the virtual USB device. The method may include providing, from the guest OS to the virtual USB hub of the host OS, a second request that includes the operation to be performed by the guest OS.
    Type: Application
    Filed: November 27, 2017
    Publication date: May 30, 2019
    Inventors: Anton ZELENOV, Nikolay DOBROVOLSKIY, Serguei M. BELOUSSOV
  • Publication number: 20190158570
    Abstract: A system and method is provided for sharing electronic data on a personal computing device using a connected mobile electronic device. An exemplary system includes a client module installed on a mobile device that identifies a list of data sharing services installed on the mobile device, at least one data sharing service configured to share data to a remote device, and transmit the list indicating to a computing device. Moreover, an agent module installed on the computing device selects one or more electronic files to be shared by the mobile device and selects the one of the data sharing services for sharing the selected electronic files. The agent module can then transmit the selected electronic files to the mobile device for data sharing using the selected data sharing service.
    Type: Application
    Filed: November 20, 2017
    Publication date: May 23, 2019
    Inventors: Ivan Korobov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10282235
    Abstract: Systems and methods for implementing single-click ejection of a mountable device associated with a virtual machine. An example method comprises: receiving, by a guest agent running on a virtual machine managed by a virtual machine manager (VMM) of a host computer system, a device removal request from the VMM, the device removal request identifying a peripheral device to be unmounted by the virtual machine; causing, by the guest agent, a guest operating system (OS) of the virtual machine to unmount the peripheral device; receiving, by the guest agent, a notification of completion of a device unmounting operation performed by the virtual machine with respect to the peripheral device; and transmitting, by the guest agent to the VMM, an operation completion status identified by the notification.
    Type: Grant
    Filed: September 5, 2017
    Date of Patent: May 7, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Konstantin Ozerkov, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10270888
    Abstract: Disclosed are system and method for selecting a connection mode between a client device and a server device. An example method includes: receiving, by a processor of a gateway device deployed within a communication network, a request from a client device for accessing a desired server device; detecting locations of the client device and the desired server device; selecting a connection mode for the client device based on the locations of the client device and the desired server, the connection mode comprising at least one of a direct connection and an indirect connection via the gateway device between the client and the desired server devices; when the direct connection mode is selected, informing the client device to access the desired server device directly; and when the indirect connection mode is selected, establishing, by the gateway device, a proxy connection between the client and the desired server devices.
    Type: Grant
    Filed: December 5, 2016
    Date of Patent: April 23, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Daniel Farrugia, Nikolay Dobrovolskiy, Serguei M. Beloussov
  • Patent number: 10228864
    Abstract: Systems and methods for pre-fetching data based on memory usage patterns. An example method comprises: receiving a first memory access request identifying a first memory block; receiving a second memory access request identifying a second memory block; update a memory access tracking data structure by incrementing a sequence counter corresponding to a memory access sequence that references the first memory block and the second memory block; receive a third memory access request identifying a third memory block; identifying, based on the memory access tracking data structure, a sequence counter having a maximal value among sequence counters associated with memory access sequences that reference the third memory block; and pre-fetching a fourth memory block corresponding to the identified sequence counter.
    Type: Grant
    Filed: December 30, 2016
    Date of Patent: March 12, 2019
    Assignee: PARALLELS INTERNATIONAL GMBH
    Inventors: Anton Zelenov, Nikolay Dobrovolskiy, 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