Method and system for providing remote access to a state of an application program

Information

  • Patent Grant
  • 10965745
  • Patent Number
    10,965,745
  • Date Filed
    Thursday, May 23, 2019
    5 years ago
  • Date Issued
    Tuesday, March 30, 2021
    3 years ago
Abstract
Methods for providing remote access to an application executing on a remote server. A client computer includes a client remote access program that is used to connect to a server remote access program. At the client computer, a client difference program having encoded data indicative of changes to the application since changes were last received from the server computer is generated and transmitted to the server remote access program. At the server computer, the client difference program is executed to update the application and a server difference program is generated having encoded changes to the application since the changes were last received from the client computer. The server difference program is transmitted to the client computer to update the application.
Description
FIELD OF THE INVENTION

The instant invention relates to computer networking and in particular to a method and system for providing remote access to a state of an application via a computer network.


BACKGROUND

Healthcare institutions, such as hospitals and diagnostic clinics, utilize information systems such as Hospital Information Systems (HIS), Radiology Information Systems (RIS), Clinical Information Systems (CIS), Picture Archive and Communication Systems (P ACS), Library Information Systems (LIS), Electronic Medical Records (EMR), to name a few. Information stored and processed in such systems includes, for example, patient medical histories, imaging data, test results, diagnosis information, management information, and scheduling information. The information is stored centrally or divided at a plurality of locations of a computer network—typically comprising a client-server architecture. Healthcare practitioners access the patient information or other information at various time instants and locations using sophisticated software application programs to gather, analyze, manipulate, and store data.


For example, using a PACS workstation a radiologist performs an image reading for a diagnosis based on content of diagnostic images and reports the results electronically in a patient application file. Because of the large volume of data and intensive computing requirements, the software used to perform this task typically requires dedicated workstation hardware and high bandwidth network access to the diagnostic images. As a consequence, there is limited or no access to the diagnostic information and analysis capability off-site from the P ACS workstation. This limits the ability of radiologists, technicians, and other specialists who are not on-site to be able to gain access to the necessary software and data to provide timely diagnosis, for example, in an urgent situation.


Presently, this problem is typically overcome by providing remote network access to the screen or console of the workstation hardware, or by downloading sensitive data such as, for example, diagnostic data, to a remote system. In the first case, remote access software does not have any special knowledge of the application programs that are executed and are not able to optimize the presentation of the display of the application program to the user based on the state of the application program—resulting in inefficient use of network bandwidth and poor performance for the remote user. In the second case, the transmission of patient related information to an uncontrolled remote site is a security risk for such sensitive information, and furthermore, in the case of diagnostic imaging data, requires transmission of large amounts of information which is beyond the capacity of many networks.


SUMMARY OF EMBODIMENTS OF THE INVENTION

In accordance with embodiments of the present invention there is provided a method for providing remote access to a state of an application. The method may include providing remote access to an application program being executed on a server computing device by establishing over a network, a remote connection at the server computing device with a client computing device to enable the remote access to the application program; communicating, over the remote connection, a difference program containing data representing a change in a state of the application made by either execution of the application program or the client computing device, the difference program capturing changes in the state of the application program since the state of the application was last received by the server computing device or the client computing device; and synchronizing, between the server computing device and the client computing device, the change in the state of the application using the difference program.


Other systems, methods, features and/or advantages will be or may become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features and/or advantages be included within this description and be protected by the accompanying claims.





BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments of the invention will now be described in conjunction with the following drawings, in which:



FIG. 1 is a simplified block diagram of a system for providing remote access to a state of an application according to a preferred embodiment of the invention;



FIGS. 2 to 4 are simplified flow diagrams of a method for providing remote access to a state of an application according to a preferred embodiment of the invention;



FIG. 5 is a simplified flow diagram of a preferred implementation of the method for providing remote access to a state of an application illustrated in FIG. 2; and



FIG. 6 is a simplified flow diagram of another implementation of the method for providing remote access to a state of an application illustrated in FIG. 2.





DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention belongs. Although any methods and materials similar or equivalent to those described herein can be used in the practice or testing of the present invention, the preferred methods and materials are now described.


While embodiments of the invention will be described for patient application files in a clinical environment only for the sake of simplicity, it will become evident to those skilled in the art that the embodiments of the invention are not limited thereto, but are applicable in numerous other fields where users remotely access a state of an application program via a computer network.


Referring to FIG. 1, a system 100 for providing remote access to the state of an application according to a preferred embodiment of the invention is shown. The system comprises a plurality of client computers 110A, 110B—for example, workstations, personal computers, laptop computers, and/or wireless handheld devices—connected via a communication network 108 to a server computer 102—for example, a central computer or a high performance workstation. For example, in a clinical environment numerous tasks executed on the system 100 are related to: viewing medical images of a patient and entering a diagnostic report into a respective patient application file; and for entering other information such as scheduling information of the patient's appointments with medical practitioners. The communication network 108 comprises, for example, a Local Area Network (LAN) connecting the client computers with one or more server computers within an organization such as, for example, a hospital. Alternatively, the communication network 108 comprises a Wide Area Network (WAN) or the Internet connecting client computers of various organizations such as, for example, hospitals, diagnostic clinics, and family physicians offices.


In the system 100 an application program for performing an application associated therewith is executed on processor 104 of the server computer 102, for example, by executing executable commands stored in memory 106. For example, applications enable: viewing and modifying of medical images, viewing and modifying of a patient file, entering a diagnostic report, and scheduling a patient's appointments. A state of an application is changed, for example, when a user changes information in a patient file or requests a different view of a medical image.


For example, using the system 100 a radiologist is enabled to perform an image reading for a diagnosis by remotely accessing an imaging application executed on a dedicated P ACS workstation and to enter a report into a patient file by remotely accessing a patient file application.


Typically, an application such as, for example, the patient file application is processed at different client computers 110A, 110B connected via the communication network 108 to the server computer 102. For example, at client computer 110B a medical practitioner enters his diagnosis of a medical image into the patient application file while at client computer 110A a health care worker enters scheduling information for an appointment into the patient application file. The processing of the same patient file application at two different client computers 110A, 110B results in different states of the patient file application.


The system 100 provides remote access as well as synchronizes the states of an application by executing a method for providing remote access to the state of an application according to embodiments of the invention, as will be described herein below. The method for providing remote access to the state of an application is performed, for example, by executing a remote access program on processors 112A, 112B. For example, the remote access program is performed by executing executable commands stored in memory 114A, 114B. The remote access program is in communication with a remote server access program executed on the processor 104 of the server computer 102, which is in communication with the application program. Alternatively, the remote access program is in direct communication with the application program. When performing the method for providing remote access to the state of an application, the processor of the server computer 102 communicates with respective processors 112A, 112B of the client computers 110A, 110B using standard communication protocols such as, for example, Hyper Text Transfer Protocol (HTTP)—of the communication network 108, which are well known to those skilled in the art.


In the method for providing remote access to the state of an application, “view data” of the state of the application are generated and transmitted in a fashion according to hardware capabilities of the client computer—for example, processing capacity, memory size, type of graphical display, and type of user interface. For example, “view data” generated and transmitted for a personal computer are different from “view data” generated and transmitted for a wireless handheld device. For example, during a remote access a user modifies data of a patient file. First, “view data” indicative of the data of the patient file are generated at the server computer and transmitted to the client computer where the “view data” are displayed. The user using a user interface of the client computer then provides data indicative of a change of data of the patient file as “view data” which are then encoded and transmitted to the server computer. The server computer then changes the state of the application in dependence upon the data indicative of a change provided by the user and the application then stores data in dependence thereupon in the patient file stored in a database. Using “view data” enables presentation of the state of an application without transmitting sensitive and/or voluminous diagnostic data and avoids replicating of the application's data processing on the client computer.


Referring to FIG. 2, a method for providing remote access to the state of an application according to a preferred embodiment of the invention is shown. At the server computer 102 an application program for performing an application associated therewith is executed—10—on processor 104. At client computer 110A connected to the server computer 102, via the communication network 108 a remote access program is executed—12—on processor 112A for providing remote access to a state of the performed application. At the client computer 110A a client difference program is generated—14. The client difference program has encoded data indicative of a change of a state of the application last received from the server computer 102. The data indicative of a change of a state of the application are, for example, received from a user interface 118A, 118B of the client computer 110A, 110B, respectively.


The difference programs comprise executable commands for execution by a processor. The encoded data are indicative of: a path to the change in the state of the application; a type of the change; and a value of the change. The type of change is, for example, a “modification”, a “deletion”, or an “insertion”, with the value for deletion changes being empty. An example of a difference program is:


Path=“Patient/Name/First”


Type=“Modification”


Value=“Jane”


Path=“Patient/Hobby”


Type=“Insertion”


Value=“Knitting”


Path=“Patient/Career”


Type=“Deletion”


Value=“ ”


The client difference program is then transmitted—16—to the server computer 102 via the communication network 108. At the server computer 102 the client difference program is executed—18—for determining an updated state of the application followed by generating a server difference program. The server difference program has encoded a difference between the updated state of the application and the state of the application last sent to the client computer, 110A. This difference also captures changes, for example, received from another client computer—for example, client computer 110B—or generated due to execution of the application program in dependence upon the executed client difference program for determining the updated state of the application. The server difference program is then transmitted—20—to the client computer 110A via the communication network 108. At the client computer 110A the server difference program is executed—22—for updating the state of the application last received from the server computer 102. Display data indicative of the updated state of the application last received from the server computer 102 are generated—24—and displayed in a human comprehensible fashion on display 116A. Optionally, step 24 is omitted, for example, in situations where the updated state of the application does not affect the data displayed on the display 116A.


Preferably, a remote server access program is executed on the processor 104 of the server computer 102 for executing the client difference program; communicating with the application program for determining the updated state of the application; and generating the server difference program. Provision of the remote server access program enables remote access to off-the-shelf application programs, increases substantially flexibility for the provision of the remote access absent modifications of the application program, and substantially facilitates implementation of the remote access as a retrofit. Alternatively, the application program is enabled to perform the operations of the remote server access program.


Further preferably, the method for providing’ remote access to the state of an application enables limited access to a predetermined portion of the state of the application. For example, the limited access is enabled for:


meeting hardware capabilities for example, processing capacity, memory size, type of graphical display, and type of user interface—of the client computer—for example, the hardware capabilities of a personal computer are substantially different to the hardware capabilities of a wireless handheld device;


being compatible with different operating systems of different client computers; and,


implementing user access restrictions to information for providing different users with different access to the state of an application—for example, an administrative user for scheduling a patient's appointments is prevented from accessing diagnostic information of the patient.


Further preferably, the method for providing remote access to the state of an application enables remote access for a plurality of client computers 110A, 1106, which are, for example, simultaneously, connected to the server computer 102 via the communication network 108 for accessing the state of a same application.


As illustrated in FIG. 3, upon receipt a second client difference program received from a second client computer 110B is executed—26—at the server computer 102 for determining a second updated state of the application followed by generating a second server difference program. The second server difference program has encoded a difference between the second updated state of the application and the state of the application last sent to the second client computer. The second server difference program is then transmitted—28—to the second client computer 110B via the communication network 108. At the second client computer 110B the second server difference program is executed—30—for updating the state of the application last received from the server computer 102. Display data indicative of the updated state of the application last received from the server computer 102 are generated—32—and displayed in a human comprehensible fashion on display 116B. Optionally, step 32 is omitted, for example, in situations where the updated state of the application does not affect the data displayed on the display 116B.


At the server computer 102 a third server difference program is generated 34. The third server difference program has encoded a difference between the second updated state of the application and the state of the application last sent to the client computer 110A. The third server difference program is then transmitted—36—to the client computer 110A via the communication network 108. At the client computer 110A the third server difference program is executed—38—for updating the state of the application last received from the server computer 102. Display data indicative of the updated state of the application last received from the server computer 102 are generated—40—and displayed in a human comprehensible fashion on display 116A. Optionally, step 40 is omitted, for example, in situations where the updated state of the application does not affect the data displayed on the display 116A. Preferably, the steps 34 to 40 are executed simultaneously to the execution of steps 26 to 32. Alternatively, the steps 34 to 40 are omitted and the changes received from the second client computer 110B are provided to the client computer 110A after receipt of a client difference program from the client computer 110A.


Upon initiation of the remote access for the client computer a state of the application is provided as illustrated in FIG. 4. Upon receipt of a request from the client computer 110A for the state of the application a server application state program is generated—42—at the server computer 102. The server application state program has encoded data indicative of the state of the application. The server application state program is then transmitted—44—to the client computer 110A via the communication network 108. At the client computer 110A the server application state program is executed—46—for determining the server state of the application. Display data indicative of the server state of the application are generated—48—and displayed in a human comprehensible fashion on display 116A. Optionally, the steps 42 to 48 are also performed during provision of the remote access to ensure a provision of a same state of the application at the server computer 102 and the client computer 110A. For example, the steps 42 to 48 are performed in predetermined time intervals or after data loss during transmission. Further optionally, step 48 is omitted, for example, in situations where the updated state of the application does not affect the data displayed on the display 116A.


Referring to FIG. 5, a preferred implementation of the method for providing remote access to the state of an application is illustrated—with reference to the method shown in FIG. 2. In the memory 106 of the server computer 102 data indicative of a state of the application such as, for example, a patient file application, are stored—10A—in two states thereof: server data indicative of the server state of the application—the state of the application at the server (and possibly changed by the server); and, server client data indicative of the state of the application last sent to the client computer 110A. In the memory 114A of the client computer 110A data indicative of a state of the application are stored—12A—in two states thereof: client server data indicative of the state of the application last received from the server computer 102; and, client data indicative of the state of the application after client interaction. In step 14 a difference between the state of the application after client interaction and the state of the application last received from the server computer is encoded—14A—with the difference being the difference between the client data and the client server data. In step 18: second server client data are determined—18A—by executing the client difference program on the server client data; updated server data are determined—18B—by executing the client difference program on the server data; a server difference program is generated—18C—that encodes a difference between the updated server data and the second server client data; third server client data are determined—18D—by executing the server difference program on the second server client data; and, the server client data are replaced—18E—with the third server client data. Optionally, a locking process is provided for locking the server data in order to prevent the same from being modified by other processes prior step 18B, which is released, for example, after step 18C. In step 22: second client server data are determined—22A—by executing the server difference program on the client server data; second client data are determined—22B—by executing the server difference program on the client data; the client server data are replaced—22C—with the second client server data; and, the client data are replaced—22D—with the second client data. Optionally, a locking process is provided for locking the client server data and the client data during execution of the steps 22A to 22D.


Referring to FIG. 6, an alternative implementation of the method for providing remote access to the state of an application is illustrated—with reference to the method shown in FIG. 2. In the memory 106 of the server computer 102 data indicative of a state of the application are stored—10A—in two states thereof: server data indicative of the server state of the application—the state of the application at the server computer (and possibly changed by the server computer); and, server client data indicative of the state of the application last sent to the client computer 110B as a server state application program. In step 18: updated server data are determined—18F—by executing the client difference program on the server data; and, a server difference program is generated 18G—that encodes a difference between the updated server data and the server client data. In step 22 display data indicative of the updated state of the application last received from the server computer are directly generated—22E—by executing the received server difference program and displayed—23—in a human comprehensible fashion on display 116B. This implementation obviates storage of data related to the state of the application in memory of the client computer 110B which is beneficial for client computers having limited storage capacity such as hand held devices. Preferably, a server application state program that has encoded data indicative of the server state of the application is generated and transmitted, as disclosed herein above, to the client computer, for example, in predetermined time intervals.


As is evident to those skilled in the art, the embodiments of the system 100 and method for providing remote access to the state of an application according to the invention have been described with respect to a client-server network architecture comprising two client computers for the sake of simplicity but are not limited thereto and are applicable for other network architectures as well as various numbers of client computers.


The embodiments of the method for providing remote access to the state of an application are performed, for example, by executing executable commands stored in storage mediums—for example, the memory 106 using processor 104 of the server computer 102 and the memory 114A using the processor 112A of the client computer 110A. The executable commands for being stored in the memory of the client computers are, for example, transmitted from the server computer 102 via the communication network 108.


The present invention has been described herein with regard to preferred embodiments. However, it will be obvious to persons skilled in the art that a number of variations and modifications can be made without departing from the scope of the invention as described herein.

Claims
  • 1. A method of synchronizing a view of an application between a server computer and a client computer, comprising: executing a server remote access program on the server computer;executing a client remote access program on the client computer;determining, by the server remote access program, changes to the application made by execution of the application;determining, by the client remote access program, changes to the application made by user inputs received at the client computer;communicating view data representing the changes to the application over a communication connection between the server remote access program and the client remote access program; andupdating, in accordance with the view data, a display of the application in a user interface presented at the client computer.
  • 2. The method of claim 1, further comprising establishing the communication connection over a computer network to which the server computer and the client computer are communicatively connected.
  • 3. The method of claim 1, further comprising encoding the view data in a predetermined format indicative of changes made since a last communication of data representing the changes was received at the server remote access program or the client remote access program.
  • 4. The method of claim 1, wherein encoded changes are indicative of at least one of a path to the change in the state of the application program, a type of the change, and a value of the change.
  • 5. The method of claim 1, further comprising: executing a second client remote access program on a second client computer;determining changes to the application made by either execution of the application, by user inputs received at the client computer or by user inputs received at the second client computer;communicating view data representing the changes over respective communication connections between the server remote access program and each of the client remote access program and the second client remote access program; andupdating, in accordance with the data, the display of the application in a user interface presented at the client computer and the second client computer.
  • 6. The method of claim 5, further comprising encoding the view data in a predetermined format indicative of changes made since a last communication of data representing the changes was received at the server remote access program, the client remote access program or the second client remote access program.
  • 7. The method of claim 1, further comprising generating the view data in accordance with hardware capabilities of the client computing device.
  • 8. The method of claim 1, further comprising generating the view data in accordance with access restrictions associated with a user of the client computer.
  • 9. The method of claim 1, further comprising generating the view data to prevent the transmission of sensitive information to the client computer.
  • 10. A method of synchronizing a view of an application between a server computer and a client computer, comprising: executing a server remote access program on the server computer;executing a plural client remote access programs wherein each client remote access program is on a respective one of plural client computers;determining, by the server remote access program, changes to the application made by execution of the application;determining, by at least one of the plural client remote access programs, changes to the application made by user inputs received by at least one of the plural the client computers;communicating view data representing the changes over a respective one of plural communication connections between the server remote access program and each of the plural client remote access programs; andupdating, in accordance with the view data, a display of the application in a user interface presented by at least one of the plural client computers.
  • 11. The method of claim 10, further comprising establishing the plural communications connection over a computer network to which the server computer and each of the plural client computers are communicatively connected.
  • 12. The method of claim 10, further comprising encoding the changes as view data having a predetermined format indicative of changes made since a last communication of data representing the changes was received at the server remote access program or at least one of the plural client remote access programs.
  • 13. The method of claim 12, wherein encoded changes are indicative of at least one of a path to the change in the state of the application program, a type of the change, and a value of the change.
  • 14. The method of claim 10, further comprising generating the view data in accordance with hardware capabilities of the client computing device.
  • 15. The method of claim 10, further comprising generating the view data in accordance with access restrictions associated with a user of the client computer.
  • 16. The method of claim 10, further comprising generating the view data to prevent the transmission of sensitive information to the client computer.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 15/868,173 filed Jan. 11, 2018, entitled “METHOD AND SYSTEM FOR PROVIDING REMOTE ACCESS TO A STATE OF AN APPLICATION PROGRAM,” which is a continuation of U.S. patent application Ser. No. 15/166,515 filed May 27, 2016, entitled “METHOD AND SYSTEM FOR PROVIDING REMOTE ACCESS TO A STATE OF AN APPLICATION PROGRAM,” now U.S. Pat. No. 9,871,860, which is a continuation of U.S. patent application Ser. No. 14/450,491 filed Aug. 4, 2014, entitled “METHOD AND SYSTEM FOR PROVIDING REMOTE ACCESS TO A STATE OF AN APPLICATION PROGRAM,” now U.S. Pat. No. 9,367,365, which is a continuation of U.S. patent application Ser. No. 12/592,473, filed Nov. 25, 2009, entitled “METHOD AND SYSTEM FOR PROVIDING REMOTE ACCESS TO A STATE OF AN APPLICATION PROGRAM,” now U.S. Pat. No. 8,799,354, and claims the benefit of priority to U.S. Provisional Patent Application No. 61/193,423 filed Nov. 26, 2008. The disclosure of each of the aforementioned patent applications is incorporated herein by reference in its entirety.

US Referenced Citations (336)
Number Name Date Kind
4975690 Torres Dec 1990 A
5249121 Baum Sep 1993 A
5345550 Bloomfield Sep 1994 A
5491800 Goldsmith et al. Feb 1996 A
5555003 Montgomery et al. Sep 1996 A
5742778 Hao et al. Apr 1998 A
5844553 Hao et al. Dec 1998 A
5870559 Leshem et al. Feb 1999 A
5903725 Colyer May 1999 A
5909545 Frese, II et al. Jun 1999 A
5920311 Anthias Jul 1999 A
5978842 Noble et al. Nov 1999 A
5987376 Olson et al. Nov 1999 A
5996002 Katsurabayashi et al. Nov 1999 A
6045048 Wilz et al. Apr 2000 A
6061689 Chang et al. May 2000 A
6075531 DeStefano Jun 2000 A
6141698 Krishnan et al. Oct 2000 A
6145098 Nouri et al. Nov 2000 A
6151621 Colyer et al. Nov 2000 A
6253228 Ferris et al. Jun 2001 B1
6342906 Kumar et al. Jan 2002 B1
6343313 Salesky et al. Jan 2002 B1
6453334 Vinson et al. Sep 2002 B1
6453356 Sheard et al. Sep 2002 B1
6529230 Chong Mar 2003 B1
6570563 Honda May 2003 B1
6601233 Underwood Jul 2003 B1
6602185 Uchikubo Aug 2003 B1
6662210 Carleton et al. Dec 2003 B1
6698021 Amini et al. Feb 2004 B1
6742015 Bowman-Amuah May 2004 B1
6748418 Yoshida et al. Jun 2004 B1
6763371 Jandel Jul 2004 B1
6792607 Burd et al. Sep 2004 B1
6918113 Patel et al. Jul 2005 B2
6938096 Greschler et al. Aug 2005 B1
6938212 Nakamura Aug 2005 B2
6970459 Meier Nov 2005 B1
6976077 Lehew et al. Dec 2005 B1
6981062 Suryanarayana Dec 2005 B2
6996605 Low et al. Feb 2006 B2
7003550 Cleasby et al. Feb 2006 B1
7065568 Bracewell et al. Jun 2006 B2
7069227 Lintel, III et al. Jun 2006 B1
7073059 Worely et al. Jul 2006 B2
7133895 Lee et al. Nov 2006 B1
7149761 Cooke et al. Dec 2006 B2
7152092 Beams et al. Dec 2006 B2
7167893 Malone et al. Jan 2007 B1
7174504 Tsao Feb 2007 B2
7181686 Bahrs Feb 2007 B1
7191233 Miller Mar 2007 B2
7193985 Lewis et al. Mar 2007 B1
7197561 Lovy et al. Mar 2007 B1
7240162 de Vries Jul 2007 B2
7246063 James et al. Jul 2007 B2
7254634 Davis et al. Aug 2007 B1
7287054 Lee et al. Oct 2007 B2
7320131 O'Toole, Jr. Jan 2008 B1
7343310 Stender Mar 2008 B1
7346616 Ramanujam et al. Mar 2008 B2
7350151 Nakajima Mar 2008 B1
7356563 Leichtling et al. Apr 2008 B1
7363342 Wang et al. Apr 2008 B1
7418711 Lee et al. Aug 2008 B1
7451196 de Vries et al. Nov 2008 B1
7533146 Kumar May 2009 B1
7577751 Vinson et al. Aug 2009 B2
7620901 Carpenter et al. Nov 2009 B2
7624185 Miller et al. Nov 2009 B2
7647370 Liu et al. Jan 2010 B1
7650444 Dirstine et al. Jan 2010 B2
7656799 Samuels et al. Feb 2010 B2
7676506 Reinsch Mar 2010 B2
7703024 Kautzleben et al. Apr 2010 B2
7706399 Janczak Apr 2010 B2
7725331 Schurenberg et al. May 2010 B2
7783568 Fracchia et al. Aug 2010 B1
7802183 Essin Sep 2010 B1
7810089 Sundarrajan et al. Oct 2010 B2
7831919 Viljoen et al. Nov 2010 B1
7921078 McCuller Apr 2011 B2
7941488 Goodman et al. May 2011 B2
7950026 Urbach May 2011 B1
7966572 Matthews et al. Jun 2011 B2
7984115 Tien et al. Jul 2011 B2
8010901 Rogers Aug 2011 B1
8024523 de Vries et al. Sep 2011 B2
8065166 Maresh et al. Nov 2011 B2
8122341 Dayan et al. Feb 2012 B1
8195146 Prakash et al. Jun 2012 B2
8239773 Billman Aug 2012 B1
8261345 Hitomi et al. Sep 2012 B2
8356252 Raman et al. Jan 2013 B2
8359591 de Vries et al. Jan 2013 B2
8478307 Hayes Jul 2013 B1
8509230 Vinson et al. Aug 2013 B2
8527591 Pirnazar Sep 2013 B2
8527706 de Vries et al. Sep 2013 B2
8533103 Certain et al. Sep 2013 B1
8572178 Frazzini et al. Oct 2013 B1
8606952 Pasetto et al. Dec 2013 B2
8607158 Molander et al. Dec 2013 B2
8627081 Grimen et al. Jan 2014 B2
8650154 Nair Feb 2014 B2
8667054 Tahan Mar 2014 B2
8832260 Raja et al. Sep 2014 B2
8856259 Burckart et al. Oct 2014 B2
8909703 Gupta et al. Dec 2014 B2
8910112 Li et al. Dec 2014 B2
8924512 Stoyanov et al. Dec 2014 B2
8935328 Tumuluri Jan 2015 B2
9152970 Trahan Oct 2015 B1
9239812 Berlin Jan 2016 B1
9256856 Fairs et al. Feb 2016 B1
20010006382 Sevat Jul 2001 A1
20010033299 Callaway et al. Oct 2001 A1
20010037358 Clubb et al. Nov 2001 A1
20010047393 Arner et al. Nov 2001 A1
20020032751 Bharadwaj Mar 2002 A1
20020032783 Tuatini Mar 2002 A1
20020032804 Hunt Mar 2002 A1
20020051541 Glick et al. May 2002 A1
20020092029 Smith Jul 2002 A1
20020198941 Gavrilescu et al. Dec 2002 A1
20030014735 Achlioptas et al. Jan 2003 A1
20030023670 Walrath Jan 2003 A1
20030055893 Sato et al. Mar 2003 A1
20030065738 Yang et al. Apr 2003 A1
20030120324 Osborn et al. Jun 2003 A1
20030120762 Yepishin et al. Jun 2003 A1
20030149721 Alfonso-Nogueiro et al. Aug 2003 A1
20030149941 Tsao Aug 2003 A1
20030163514 Waldschmidt Aug 2003 A1
20030179230 Seidman Sep 2003 A1
20030184584 Vachuska et al. Oct 2003 A1
20030208472 Pham Nov 2003 A1
20040015842 Nanivadekar et al. Jan 2004 A1
20040029638 Hytcheson et al. Feb 2004 A1
20040039742 Barsness et al. Feb 2004 A1
20040045017 Dorner et al. Mar 2004 A1
20040068516 Lee et al. Apr 2004 A1
20040077347 Lauber et al. Apr 2004 A1
20040103195 Chalasani et al. May 2004 A1
20040103339 Chalasani et al. May 2004 A1
20040106916 Quaid et al. Jun 2004 A1
20040117804 Scahill et al. Jun 2004 A1
20040128354 Horikiri et al. Jul 2004 A1
20040153525 Borella Aug 2004 A1
20040162876 Kohavi Aug 2004 A1
20040183827 Putterman et al. Sep 2004 A1
20040236633 Knauerhase et al. Nov 2004 A1
20040243919 Muresan et al. Dec 2004 A1
20040249885 Petropoulakis et al. Dec 2004 A1
20050005024 Samuels et al. Jan 2005 A1
20050010871 Ruthfield et al. Jan 2005 A1
20050021687 Anastassopoulos et al. Jan 2005 A1
20050050229 Comeau et al. Mar 2005 A1
20050114711 Hesselink et al. May 2005 A1
20050114789 Chang et al. May 2005 A1
20050138631 Bellotti et al. Jun 2005 A1
20050154288 Wang Jul 2005 A1
20050188046 Hickman et al. Aug 2005 A1
20050188313 Matthews et al. Aug 2005 A1
20050190203 Gery et al. Sep 2005 A1
20050193062 Komine et al. Sep 2005 A1
20050198578 Agrawala et al. Sep 2005 A1
20050216421 Barry et al. Sep 2005 A1
20050240906 Kinderknecht et al. Oct 2005 A1
20050246422 Laning Nov 2005 A1
20060004874 Hutcheson et al. Jan 2006 A1
20060026006 Hindle Feb 2006 A1
20060031377 Ng et al. Feb 2006 A1
20060031481 Patrick et al. Feb 2006 A1
20060036770 Hosn et al. Feb 2006 A1
20060041686 Caspi et al. Feb 2006 A1
20060041891 Aaron Feb 2006 A1
20060053380 Spataro et al. Mar 2006 A1
20060066717 Miceli Mar 2006 A1
20060069797 Abdo et al. Mar 2006 A1
20060085245 Takatsuka et al. Apr 2006 A1
20060085835 Istvan et al. Apr 2006 A1
20060101397 Mercer et al. May 2006 A1
20060112188 Albanese et al. May 2006 A1
20060130069 Srinivasan et al. Jun 2006 A1
20060179119 Kurosawa et al. Aug 2006 A1
20060221081 Cohen et al. Oct 2006 A1
20060231175 Vondracek et al. Oct 2006 A1
20060236328 DeWitt Oct 2006 A1
20060242254 Okazaki et al. Oct 2006 A1
20060258462 Cheng et al. Nov 2006 A1
20060265689 Kuznetsov et al. Nov 2006 A1
20060271563 Angelo et al. Nov 2006 A1
20060288171 Tsien Dec 2006 A1
20060294418 Fuchs Dec 2006 A1
20070024645 Purcell et al. Feb 2007 A1
20070024706 Brannon et al. Feb 2007 A1
20070047535 Varma Mar 2007 A1
20070067754 Chen et al. Mar 2007 A1
20070079244 Brugiolo Apr 2007 A1
20070112880 Yang et al. May 2007 A1
20070130292 Tzruya et al. Jun 2007 A1
20070143398 Graham Jun 2007 A1
20070203944 Batra et al. Aug 2007 A1
20070203990 Townsley et al. Aug 2007 A1
20070203999 Townsley et al. Aug 2007 A1
20070208718 Javid et al. Sep 2007 A1
20070226636 Carpenter et al. Sep 2007 A1
20070233706 Farber et al. Oct 2007 A1
20070244930 Bartlette et al. Oct 2007 A1
20070244962 Laadan et al. Oct 2007 A1
20070244990 Wells Oct 2007 A1
20070256073 Truong et al. Nov 2007 A1
20070282951 Selimis et al. Dec 2007 A1
20080016155 Khalatian Jan 2008 A1
20080028323 Rosen et al. Jan 2008 A1
20080052377 Light Feb 2008 A1
20080134211 Cui Jun 2008 A1
20080146194 Yang et al. Jun 2008 A1
20080159175 Flack Jul 2008 A1
20080183190 Adcox et al. Jul 2008 A1
20080195362 Belcher et al. Aug 2008 A1
20080276183 Siegrist et al. Nov 2008 A1
20080301228 Flavin Dec 2008 A1
20080313282 Warila et al. Dec 2008 A1
20080320081 Shriver-Blake et al. Dec 2008 A1
20090070404 Mazzaferri Mar 2009 A1
20090080523 McDowell Mar 2009 A1
20090089742 Nagulu et al. Apr 2009 A1
20090094369 Woolbridge et al. Apr 2009 A1
20090106422 Kriewall Apr 2009 A1
20090119644 de Vries et al. May 2009 A1
20090164581 Bove et al. Jun 2009 A1
20090172100 Callanan et al. Jul 2009 A1
20090187817 Ivashin et al. Jul 2009 A1
20090209239 Montesdeoca Aug 2009 A1
20090217177 DeGrazia Aug 2009 A1
20090254589 Nair Oct 2009 A1
20090044171 Avadhanula Dec 2009 A1
20090328032 Crow et al. Dec 2009 A1
20100012911 Akinaga et al. Jan 2010 A1
20100017727 Offer et al. Jan 2010 A1
20100018827 Ueda Jan 2010 A1
20100061238 Godbole et al. Mar 2010 A1
20100077058 Messer Mar 2010 A1
20100082747 Yue et al. Apr 2010 A1
20100115023 Peled May 2010 A1
20100150031 Allen et al. Jun 2010 A1
20100174773 Penner et al. Jul 2010 A1
20100205147 Lee Aug 2010 A1
20100223566 Holmes et al. Sep 2010 A1
20100223661 Yang Sep 2010 A1
20100268762 Pahlavan et al. Oct 2010 A1
20100268813 Pahlavan et al. Oct 2010 A1
20100274858 Lindberg et al. Oct 2010 A1
20100281107 Fallows et al. Nov 2010 A1
20100306642 Lowet Dec 2010 A1
20110047190 Lee et al. Feb 2011 A1
20110058052 Bolton Mar 2011 A1
20110113350 Carlos et al. May 2011 A1
20110119716 Coleman, Sr. May 2011 A1
20110128378 Raji Jun 2011 A1
20110138016 Jung et al. Jun 2011 A1
20110138283 Marston Jun 2011 A1
20110145863 Alsina et al. Jun 2011 A1
20110154302 Balko et al. Jun 2011 A1
20110154464 Agarwal et al. Jun 2011 A1
20110157196 Nave et al. Jun 2011 A1
20110162062 Kumar et al. Jun 2011 A1
20110184993 Chawla et al. Jul 2011 A1
20110187652 Huibers Aug 2011 A1
20110191438 Huibers et al. Aug 2011 A1
20110191823 Huibers Aug 2011 A1
20110213830 Lopez et al. Sep 2011 A1
20110219419 Reisman Sep 2011 A1
20110222442 Cole et al. Sep 2011 A1
20110223882 Hellgren Sep 2011 A1
20110246891 Schubert et al. Oct 2011 A1
20110252152 Sherry et al. Oct 2011 A1
20110314093 Sheu et al. Dec 2011 A1
20120016904 Mahajan et al. Jan 2012 A1
20120023418 Frields et al. Jan 2012 A1
20120030275 Boller et al. Feb 2012 A1
20120072833 Song et al. Mar 2012 A1
20120072835 Gross et al. Mar 2012 A1
20120079080 Pishevar Mar 2012 A1
20120079111 Luukkala et al. Mar 2012 A1
20120084713 Desai et al. Apr 2012 A1
20120090004 Jeong Apr 2012 A1
20120133675 McDowell May 2012 A1
20120151373 Kominac et al. Jun 2012 A1
20120154633 Rodriguez Jun 2012 A1
20120159308 Tseng et al. Jun 2012 A1
20120159356 Steelberg Jun 2012 A1
20120169874 Thomas et al. Jul 2012 A1
20120210242 Burckart et al. Aug 2012 A1
20120210243 Uhma et al. Aug 2012 A1
20120221792 de Vries et al. Aug 2012 A1
20120226742 Momchilov et al. Sep 2012 A1
20120233555 Psistakis et al. Sep 2012 A1
20120245918 Overton et al. Sep 2012 A1
20120246225 Lemire et al. Sep 2012 A1
20120324032 Chan Dec 2012 A1
20120324358 Jooste Dec 2012 A1
20120331061 Lininger Dec 2012 A1
20130007227 Hitomi et al. Jan 2013 A1
20130013671 Relan et al. Jan 2013 A1
20130031618 Momchilov Jan 2013 A1
20130046815 Thomas et al. Feb 2013 A1
20130054679 Jooste Feb 2013 A1
20130070740 Yovin Mar 2013 A1
20130086155 Thomas et al. Apr 2013 A1
20130086156 McFadzean et al. Apr 2013 A1
20130086652 Kavantzas et al. Apr 2013 A1
20130110895 Valentino et al. May 2013 A1
20130113833 Larsson May 2013 A1
20130117474 Ajanovic et al. May 2013 A1
20130120368 Miller May 2013 A1
20130132485 Thomas et al. May 2013 A1
20130138791 Thomas et al. May 2013 A1
20130147845 Xie et al. Jun 2013 A1
20130159062 Stiehl Jun 2013 A1
20130159709 Ivory et al. Jun 2013 A1
20130179962 Arai et al. Jul 2013 A1
20130208966 Zhao et al. Aug 2013 A1
20130212483 Brakensiek et al. Aug 2013 A1
20130297676 Binyamin Nov 2013 A1
20140136667 Gonsalves et al. May 2014 A1
20140240524 Julia et al. Aug 2014 A1
20140241229 Bertorelle et al. Aug 2014 A1
20140258441 L'Heureux et al. Sep 2014 A1
20140298420 Barton et al. Oct 2014 A1
20150026338 Lehmann et al. Jan 2015 A1
20150067769 Barton et al. Mar 2015 A1
20150319252 Momchilov et al. Nov 2015 A1
Foreign Referenced Citations (41)
Number Date Country
2646414 Oct 2007 CA
2697936 Mar 2009 CA
1278623 Jan 2001 CN
1499841 May 2004 CN
101539932 Sep 2009 CN
102129632 Jul 2011 CN
102821413 Dec 2012 CN
0349463 Jan 1990 EP
1422901 May 2004 EP
2007084744 Mar 1995 JP
2002055870 Feb 2002 JP
2004206363 Jul 2004 JP
2004287758 Oct 2004 JP
2005031807 Feb 2005 JP
2005521946 Jul 2005 JP
2008099055 Apr 2008 JP
4405812 Jan 2010 JP
2010256972 Nov 2010 JP
2295752 Mar 2007 RU
2298287 Apr 2007 RU
2305860 Sep 2007 RU
1998025666 Jun 1998 WO
1998058478 Dec 1998 WO
2001016724 Mar 2001 WO
2001091482 Nov 2001 WO
2002009106 Jan 2002 WO
2003032569 Apr 2003 WO
2003083684 Oct 2003 WO
2008011063 Jan 2008 WO
2008087636 Jul 2008 WO
2011087545 Jul 2011 WO
2012093330 Jul 2012 WO
2012127308 Sep 2012 WO
2013024342 Feb 2013 WO
2013046016 Apr 2013 WO
2013072764 May 2013 WO
2013076554 May 2013 WO
2013109984 Jul 2013 WO
2013128284 Sep 2013 WO
2013153439 Oct 2013 WO
2014033554 Mar 2014 WO
Non-Patent Literature Citations (25)
Entry
ADASS XXI Conference Schedule, European Southern Observatory, http://www.eso.org/sci/meetings/2011/adass2011/program/schedule.html#day2, Nov. 7, 2011, 4 pages.
Brandom, R., “Google Photos and the unguessable URL,” The Verge, retrieved on Sep. 25, 2017 from https://www.theverg.com/2015/6/23/8830977/google-photos-security-public-url-privacy-protected, Jun. 23, 2015, 7 pages.
“Calgary Scientific Revolutionizes Application Sharing and Advanced Collaboration with PureWeb 3.0,” Press Release, Jun. 21, 2011, 3 pages.
Coffman, Daniel, et al., “A Client-Server Architecture for State-Dependent Dynamic Visualizations on the Web,” IBM T.J. Watson Research Center, 2010, 10 pages.
Federl, P., “Remote Visualization of Large Multi-dimensional Radio Astronomy Data Sets,” Institute for Space Imaging Science, University of Calgary, 2012, pp. 1-10.
Federl, P., “Remote Visualization of Large Multi-dimensional Radio Astronomy Data Sets,” Institute for Space Imaging Science, University of Calgary, 2012, pp. 11-22.
Fraser, N., “Differential Synchronization,” Google, Mountain View, CA, Jan. 2009, 8 pages.
GoInstant, Shared Browsing Technology, http://website.s3.goinstant.com.s3.amazonaws.com/wp-content/uploads/2012/04/GoInstant-Shared-Web-Technology.pdf, 2012, 4 pages.
“GTK 3, Broadway and an HTML5 websocket gui, for free,” retrieved on Sep. 26, 2017 at http://compsci.ca/v3/viewtopic.php?t=36823, Apr. 12, 2014, pp. 1-3.
Hong, C., et al., “Multimedia Presentation Authoring and Virtual Collaboration in Medicine,” International Journal of Kimics, vol. 8, No. 6, 2010, pp. 690-696.
Jourdain, Sebastien, et al., “ParaViewWeb: A Web Framework for 3D Visualization and Data Processing,” International Journal of Computer Information Systems and Industrial Management Applications, vol. 3, 2011, pp. 870-877.
Layers: Capture Every Item on Your Screen as a PSD Layered Image, Internet Website, retrieved on Jun. 30, 2016 at http://web.archive.org/web/20140218111143, 2014, 9 pages.
Li, S.F., et al., “Integrating Synchronous and Asynchronous Collaboration with Virtual Network Computing,” Internet Computing, IEEE 4.3, 2000, pp. 26-33.
Luo, Y., et al., “Real Time Multi-User Interaction with 3D Graphics via Communication Networks,” 1998 IEEE Conference on Information Visualization, 1998, 9 pages.
Microsoft Computer Dictionary, Microsoft Press, 5th Edition, Mar. 15, 2002, p. 624.
Mitchell, J. Ross, et al., A Smartphone Client-Server Teleradiology System for Primary Diagnosis of Acute Stroke, Journal of Medical Internet Research, vol. 13, Issue 2, 2011, 12 pages.
ParaViewWeb, KitwarePublic, retrieved on Jan. 27, 2014 from http://www.paraview.org/Wiki/ParaViewWeb, 1 page.
Remote Desktop Protocol (RDP), retrieved on May 4, 2014 from http://en.wikipedia.org/wiki/Remote_Desktop_Protocol, 7 pages.
Remote Desktop Services (RDS), Remote App, retrieved on May 4, 2014 from http://en.wikipedia.org/wiki/Remote_Desktop_Services, 9 pages.
Remote Desktop Services (RDS), Windows Desktop Sharing, retrieved on May 4, 2014 from http://en.wikipedia.org/wiki/Remote_Desktop_Services, 9 pages.
Samesurf web real-time co-browser application, http://i.samesurf.com/i/0586021, 2009, 2 pages.
Shim, H., et al., Providing Flexible Services for Managing Shared State in Collaborative Systems, Proceedings of the Fifth European Conference, 1997, pp. 237-252.
Yang, L., et al., “Multirate Control in Internet-Based Control Systems,” IEEE Transactions on Systems, Man, and Cybernetics: Part C: Applications and Reviews, vol. 37, No. 2, 2007, pp. 185-192.
European Search Report, dated Mar. 3, 2015, received in connection with European Patent Application No. 09828497.9.
Search Report and Written Opinion, dated Nov. 16, 2015, received in connection with SG Patent Application No. 2013087150.
Related Publications (1)
Number Date Country
20190342385 A1 Nov 2019 US
Provisional Applications (1)
Number Date Country
61193423 Nov 2008 US
Continuations (4)
Number Date Country
Parent 15868173 Jan 2018 US
Child 16420391 US
Parent 15166515 May 2016 US
Child 15868173 US
Parent 14450491 Aug 2014 US
Child 15166515 US
Parent 12592473 Nov 2009 US
Child 14450491 US