Method and system for providing a state model of an application program

Information

  • Patent Grant
  • 10158701
  • Patent Number
    10,158,701
  • Date Filed
    Friday, January 30, 2015
    9 years ago
  • Date Issued
    Tuesday, December 18, 2018
    5 years ago
Abstract
Methods and apparatuses for enabling remote access to an application program via a computer network provided. Logical elements of the application program may be determined, from which a state model of the application program may be developed. A remote access program updates the state model in accordance with user input data received from a user interface program, generates control data in accordance with the updated state model and provides the same to the application program. The state model may be updated in accordance with application data received from the application program, application representation data in accordance with the updated state model are generated and provided to the user interface program for display at, e.g., a remote client computing device. The application program may be a legacy mainframe application to which remote access is provided without the need to modify the source code of the mainframe application.
Description
BACKGROUND OF THE DISCLOSURE

Ubiquitous remote access to services, application programs and data has become commonplace as a result of the growth and availability of broadband and wireless network access. Remote access to application programs may be provided using a mobile device connected to a server computer via a computer network. Use of wireless handheld devices such as, for example, IPHONE, ANDROID, and IPAD has rapidly increased over the last couple of years to the extent that now many own at least one wireless handheld device. State of the art wireless mobile technology enables use of small wireless handheld devices to access the Internet and interact with various types of application programs.


Most computer applications used in, for example, large businesses, government organizations, and hospitals are still legacy mainframe computer applications run on a mainframe computer network. The original terminals have been replaced by Personal Computers (PCs) and terminal emulators enabling the PC user to interact with the mainframe computer application. However, to provide mobile devices with remote access to such programs, it is generally required that the source code of the mainframe computer application and/or the terminal emulator is modified in order to create an appropriate interface for the mobile device to interact with the legacy application. This can be expensive, time consuming and difficult to accomplish.


SUMMARY OF THE DISCLOSURE

According to an aspect of the present disclosure, there is provided a method for providing remote access to a legacy application program over a communication network. The method may include determining logical elements of the legacy application program; determining a state model in accordance with the logical elements of the legacy application program, the state model providing an association of logical elements of the legacy application program with corresponding states of the legacy application program; generating a remote access program in accordance with the state model, the remote access program executing on a server computing device; updating the state model in accordance with data received from a user interface program executing on a client computer and in accordance with application data received from the legacy application program; enabling communication between the legacy application program and a client computer; and providing application representation data generated in accordance with the application data to the user interface program to the client computer, the application representation data enabling the client computer to display a visualization of the legacy application program in accordance with information contained in the state model.


According to another aspect of the present disclosure, there is provided an apparatus for providing remote access to a legacy application over a communication network. The apparatus may include a network interface device that interfaces with the communication network, a memory that stores computer executable instructions, and a processor that executes the computer executable instructions. The instructions may cause the apparatus to determine logical elements of the legacy application program; determine a state model in accordance with the logical elements of the legacy application program, the state model providing an association of logical elements of the legacy application program with corresponding states of the legacy application program; generate a remote access program in accordance with the state model, the remote access program executing on a server computing device; update the state model in accordance with data received from a user interface program executing on a client computer and in accordance with application data received from the legacy application program; enable communication between the legacy application program and a client computer; and provide application representation data generated in accordance with the application data to the user interface program to the client computer, the application representation data enabling the client computer to display a visualization of the legacy application program in accordance with information contained in the state model.


According to another aspect of the present disclosure, there is provided a method for providing remote access to an application program. The method may include determining logical elements of the legacy program, the application program being executed on a first computer connected to the computer network; determining a state model of the legacy application program in accordance with the logical elements; and generating a remote access program at a server computer in accordance with the state model. The remote access program may perform updating the state model in accordance with input data received from a user interface program; generating control data in accordance with the updated state model and providing the control data to the legacy application program; updating the state model in accordance with application data received from the legacy application program; generating application representation data in accordance with the updated state model; and providing the application representation data to the user interface program to provide a visualization of the legacy application program in accordance with information contained in the state model.


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

The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.



FIG. 1 is a simplified block diagram illustrating a system for providing remote access to an application program from a client computer via a computer network according to an implementation of the disclosure;



FIG. 2a is a simplified block diagram illustrating communication of the client computer with an application program using the system shown in FIG. 1;



FIG. 2b is a simplified block diagram illustrating operation of the remote access program or application according to an implementation of the disclosure; and



FIG. 3 is a simplified flow diagram illustrating generation of the remote access program or application according to an implementation of the disclosure.





DESCRIPTION OF THE IMPLEMENTATIONS

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 disclosure belongs. As will become evident to those of ordinary skill in the art, methods and materials similar or equivalent to those described herein can be used in the practice or testing of the present disclosure. As will be appreciated from the present disclosure, implementations will be described for enabling remote access to a mainframe application computer program via a computer network absent source code modification of the mainframe computer application and/or the terminal emulator.


Referring to FIG. 1, there is illustrated a system 100 for providing remote access to an application program via a computer network according to an implementation of the disclosure. The system comprises a client computer 112A or 112B, e.g., a wireless handheld device such as, for example, an IPHONE 112A or a BLACKBERRY 112B connected via a computer network 110 such as, for example, the Internet, to server computer 102B. The client computer may be a mobile device (e.g., a smartphone, a tablet device, a notebook/laptop computer), a desktop computer (e.g., a personal computer executing MICROSOFT WINDOWS, MAC OS, Linux) or workstation.


The server computer 102B may be connected, for example, via the computer network 110 to a Local Area Network (LAN) 109. For example, the LAN 109 may be an internal computer network of an institution such as a hospital, a bank, a large business, or a government department. Typically, such institutions still use a mainframe computer 102A and a database 108 connected to the LAN 109, as these legacy systems provide numerous services to the institution. Numerous application programs are performed, for example, by executing on processor 104A executable commands of the respective application program stored in memory 106A of the mainframe computer 102A. The original terminals connected to the mainframe computer 102A via the LAN 109 and used to interact with the mainframe computer 102A have been replaced with Personal Computers (PCs). Remote access to the application program executed on the mainframe computer 102A is then provided using terminal emulator programs, typically executed on the PCs.


According to some implementations, remote access to the application program using, for example, a handheld wireless device 112A, 112B is provided by executing a remote access program or application on processor 104B of the server computer 102B which is in communication with a respective terminal emulator program executed using, for example, the processor 104B of the server computer 102B. Communication between the client computer 112A or 112B and the server computer 102B may be provided as communication between the remote access program or application and a user interface program or client remote access application via, for example, a wireless computer network, as illustrated in FIG. 2a. The user interface program or client remote access application may be designed for providing user interaction via a hand-held wireless device for displaying data in a human comprehensible fashion and for determining user input data in accordance with received user instructions for interacting with the application program using, for example, a graphical display with touch-screen 114A or a graphical display 114B and a keyboard 116B of the handheld wireless device 112A, 112B, respectively.


The user interface program or client remote access application may be performed by executing executable commands on processor 118A, 118B of the client computer 112A, 112B with the commands being stored in memory 120A, 120B of the client computer 112A, 112B, respectively. For example, the user interface program or client remote access application is performed by executing executable commands on processor 118A, 118B of the client computer 112A, 112B with the commands being stored in memory 120A, 120B of the client computer 112A, 112B, respectively. Alternatively, the user interface program or client remote access application is executed on the server computer 102B which is then accessed via an URL by a generic client application such as, for example, a web browser executed on the client computer 112A, 112B. The user interface is implemented using, for example, Hyper Text Markup Language HTML 5.


The remote access program or application may determine control data in accordance with the user input data received from the user interface program or client remote access application and provides the same to the terminal emulator program. The terminal emulator program is in communication with the application program executed on the mainframe computer 102A. Data generated by the application program are then provided via the terminal emulator program as application data to the remote access program or application, which generates application representation data in dependence thereupon and provides the same to the user interface program or client remote access application for display. For example, the remote access program or application and the terminal emulator program are executed using the processor 104B of the server computer 102B connected to the LAN 109 via computer network 110, as illustrated in FIGS. 1 and 2a. Alternatively, the remote access program or application and the terminal emulator program are executed using the processor 104a of the mainframe computer 102A or a processor of a computer in communication with the mainframe computer 102A via the LAN 109. Further alternatively, the remote access program or application is executed using the processor 118A, 118B of the client computer 112A, 112B, respectively.


The operation of the remote access program or application may be performed in accordance with a state model of the application program, as illustrated in FIG. 2b. When executed, the remote access program or application updates the state model in accordance with user input data received from a user interface program or client remote access application, generates control data in accordance with the updated state model, and provides the same to the application program via the terminal emulator program. Upon receipt of application data from the terminal emulator program, the remote access program or application updates the state model in accordance with the application data received from the application program, generates application representation data in accordance with the updated state model, and provides the same to the user interface program or client remote access application. The state model comprises an association of logical elements of the application program with corresponding states of the application program, where the logical elements may be in a hierarchical order. The state model may be determined such that each of the logical elements is associated with a corresponding state of the application program. Further, the state model is determined such that the logical elements are associated with user interactions. For example, the logical elements of the application program are determined such that the logical elements comprise transition elements with each transition element relating a change of the state model to one of control data and application representation data associated therewith.


Table 1, below, illustrates an example section of a state model of an application program for purchasing a ticket. The state model may be represented in an Extensible Markup Language (XML) document. Other representations of the state model are contemplated, such as, but not limited to, a binary file, a data structure, etc. Different states of the application program associated with different screens related to different stages of the ticket purchasing process, such as, for example, main menu, ticket customer entry, etc., are defined, as well as transitions between the different states and the related triggers. For example, for each state one or more “fields” are defined for receiving user input data and displaying the same, as illustrated in Table 1 for the main menu.









TABLE 1







<ApplicationState>


<Screens>


  <Screen id=″0″ name=″main menu″>


   <Fields>


    <Field name=″name″ description=″Customer name″ default=″″>


     <Type fieldType=″Text″ maxChars=″128″ />


    <Validation />


    </Field>


   </Fields>


  </Screen>


  <Screen id=″1″ name=″ticket customer entry″ />


  <Screen id=″2″ name=″ticket customer choice″ />


  <Screen id=″3″ name=″ticket customer payment″ />


  <Screen id=″4″ name=″ticket customer payment accepted″ />


  <Screen id=″5″ name=″ticket customer payment declined″ />


</Screens>


 <NavModel>


  <Transition sourceId=″0″ destId=″1″ trigger=″Key_1″ />


  <Transition sourceId=″1″ destId=″0″ trigger=″Key_ESC″ />


  <Transition sourceId=″3″ destId=″5″ trigger=″server″ />


  <Transition sourceId=″5″ destId=″3″ trigger=″Key_ESC″ />


</NavModel>


 <ScreenData>


  <CurrentScreen id=″0″ />


  <Screen id=″0″>


  <Value field=″name″>John Miller</Value>


  </Screen>


 </ScreenData>


 </ApplicationState>









Referring to FIG. 3, there is illustrated a flow diagram 10 of an example method for generating a remote access program or application according to an implementation of the disclosure. At 12, an indication is received of application program to which remote access is to be provided by a development program. For example, a file browser of a “Choose Application” tool of the development program may be provided to a user. The development program may be software development kit, such as that included with PUREWEB, available from Calgary Scientific, Inc., Calgary, Alberta, Canada. At 14, the logical elements of the application program are then determined for example, by launching the application program. Alternatively, the logical elements are provided from a database. At 16, a state model of the application program is the determined in accordance with the logical element, for example, by creating a hierarchical representation of the user interface elements, assigning each a unique ID, and labeling each element.


At 18, the development program then generates the remote access program or application in accordance with the state model, for example, in the form of executable XML commands. At 20, the user interface program or client remote access application is generated to interact with the remote access program or application. The user interface program or client remote access application is generated using standard application tools such as, for example, Microsoft Silverlight. The development program is performed for example, by executing executable commands stored in a storage medium on a processor using, for example, the processor 104B of the server computer 102B. Alternatively, the development is performed using a computer in communication with the server computer 102B via the computer network 110.


In accordance with some implementations, the development program, the remote access program or application and the user interface program or client remote access application are implemented using standard programming tools such as, for example, Extensible Markup Language (XML), Microsoft Foundation Class (MFC) applications, Remote Desktop Protocol (RDP), Adobe Flash and Microsoft Silverlight. In accordance with some implementations, communication is enabled using standard communication technologies such as, for example, Hyper Text Transfer Protocol (HTTP), virtual private networks (VPN), and secure socket layers (SSL) which are well known to those skilled in the art. Optionally, the terminal emulator program may be omitted if communication with the application program is enabled using, for example, RDP or MFC applications.


The present disclosure has been described herein with regard to preferred implementations. 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 disclosure as described herein.

Claims
  • 1. A server-based method for providing remote access to a legacy application program over a communication network, comprising: determining logical elements of the legacy application program in accordance with corresponding states of the legacy application program;determining a state model in accordance with the logical elements of the legacy application program, the state model associating the logical elements of the legacy application program with the corresponding states of the legacy application program;generating a remote access program in accordance with the state model, the remote access program executing on a server computing device;updating the state model in accordance with data received from a user interface program executing on a client computer and in accordance with application data received from the legacy application program;enabling communication between the legacy application program and the client computer; andproviding application representation data generated in accordance with the application data to the user interface program to the client computer, the application representation data enabling the client computer to display the legacy application program in accordance with information contained in the state model.
  • 2. The method of claim 1, further comprising determining the logical elements by launching the legacy application program.
  • 3. The method of claim 1, further comprising determining the logical elements by accessing a database and retrieving the logical elements.
  • 4. The method of claim 1, further comprising representing the logical elements in a hierarchical representation of user interface elements.
  • 5. The method of claim 1, further comprising representing the logical elements in an Extensible Markup Language (XML) document.
  • 6. The method of claim 1, wherein the logical elements are associated with user interactions.
  • 7. The method of claim 6, wherein the logical elements comprise transition elements, and wherein each transition element relates a change of the state model to one of control data and application representation data associated therewith.
  • 8. The method of claim 1, further comprising providing access to the user interface program accessible at a Uniform Resource Locator (URL).
  • 9. The method of claim 1, further comprising: receiving an input at the user interface program;updating the state model at the remote access program in accordance with the input and generating control data; andproviding control data to the legacy application.
  • 10. An apparatus for providing remote access to a legacy application program over a communication network, comprising: a network interface device that interfaces with the communication network;a memory that stores computer executable instructions; anda processor that executes the computer executable instructions to: determine logical elements of the legacy application program in accordance with corresponding states of the legacy application program;determine a state model in accordance with the logical elements of the legacy application program, the state model associating the logical elements of the legacy application program with the corresponding states of the legacy application program;generate a remote access program in accordance with the state model, the remote access program executing on a server computing device;update the state model in accordance with data received from a user interface program executing on a client computer and in accordance with application data received from the legacy application program;enable communication between the legacy application program and the client computer; andprovide application representation data generated in accordance with the application data to the user interface program to the client computer, the application representation data enabling the client computer to display the legacy application program in accordance with information contained in the state model.
  • 11. The apparatus of claim 10, wherein the logical elements are determined by launching the legacy application program.
  • 12. The apparatus of claim 10, wherein the logical elements are determined by accessing a database and retrieving the logical elements.
  • 13. The apparatus of claim 10, wherein the logical elements are represented in a hierarchical representation of user interface elements.
  • 14. The apparatus of claim 10, further comprising representing the logical elements in an Extensible Markup Language (XML) document.
  • 15. The apparatus of claim 10, wherein the logical elements are associated with user interactions.
  • 16. The apparatus of claim 15, wherein the logical elements comprise transition elements, and wherein each transition element relates a change of the state model to one of control data and application representation data associated therewith.
  • 17. The apparatus of claim 10, further comprising providing access to the user interface program accessible at a Uniform Resource Locator (URL).
  • 18. The apparatus of claim 10, wherein the state model is updated in accordance with an input received at the user interface program, wherein the state model is updated at the remote access program in accordance with the input to generate control data, and wherein the control data is provided to the legacy application.
  • 19. A method for providing remote access to a legacy application program via a computer network comprising: determining logical elements of the legacy program in accordance with corresponding states of the legacy application program, the legacy application program being executed on a first computer connected to the computer network;determining a state model that associates the logical elements of the legacy application program with the corresponding states of the legacy application program; andgenerating a remote access program at a server computer in accordance with the state model, the remote access program: updating the state model in accordance with input data received from a user interface program;generating control data in accordance with the updated state model and providing the control data to the legacy application program;updating the state model in accordance with application data received from the legacy application program;generating application representation data in accordance with the updated state model; andproviding the application representation data to the user interface program to display the legacy application program in accordance with information contained in the state model.
  • 20. The method of claim 19, wherein the logical elements are associated with user interactions.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 13/425,496, filed Mar. 21, 2012, and entitled “Method and System for Providing a State Model of an Application Program,” and claims priority to U.S. Provisional Application No. 61/487,598, filed May 18, 2011, and entitled “Method and System for Providing a State Model of an Application Program,” which are each incorporated herein by reference in its entirety.

US Referenced Citations (222)
Number Name Date Kind
4975690 Torres Dec 1990 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
5870759 Bauer 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
6045048 Wilz et al. Apr 2000 A
6061689 Chang May 2000 A
6075531 DeStefano Jun 2000 A
6141698 Krishnan et al. Oct 2000 A
6145098 Nouri et al. Nov 2000 A
6253228 Ferris et al. Jun 2001 B1
6343313 Salesky et al. Jan 2002 B1
6453334 Vinson et al. Sep 2002 B1
6453356 Sheard et al. Sep 2002 B1
6570563 Honda May 2003 B1
6601233 Underwood Jul 2003 B1
6792607 Burd Sep 2004 B1
6918113 Patel et al. Jul 2005 B2
6938096 Greschler et al. Aug 2005 B1
6976077 Lehew et al. Dec 2005 B1
7065568 Bracewell Jun 2006 B2
7069227 Lintel, III et al. Jun 2006 B1
7073059 Worely, Jr. Jul 2006 B2
7149761 Cooke et al. Dec 2006 B2
7167893 Malone Jan 2007 B1
7174504 Tsao Feb 2007 B2
7181686 Bahrs Feb 2007 B1
7240162 de Vries Jul 2007 B2
7246063 James Jul 2007 B2
7320131 O'Toole, Jr. Jan 2008 B1
7343310 Stender Mar 2008 B1
7350151 Nakajima Mar 2008 B1
7418711 Lee et al. Aug 2008 B1
7451196 de Vries et al. Nov 2008 B1
7577751 Vinson et al. Aug 2009 B2
7620901 Carpenter et al. Nov 2009 B2
7647370 Liu et al. Jan 2010 B1
7650444 Dirstine Jan 2010 B2
7656799 Samuels et al. Feb 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
7831919 Viljoen Nov 2010 B1
7921078 McCuller Apr 2011 B2
7941488 Goodman et al. May 2011 B2
7966572 Matthews et al. Jun 2011 B2
8024523 de Vries et al. Sep 2011 B2
8261345 Hitomi et al. Sep 2012 B2
8356252 Raman Jan 2013 B2
8359591 de Vries et al. Jan 2013 B2
8509230 Vinson et al. Aug 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
8910112 Li et al. Feb 2014 B2
8667054 Tahan Mar 2014 B2
8832260 Raja et al. Sep 2014 B2
8924512 Stoyanov et al. Dec 2014 B2
9239812 Berlin Jan 2016 B1
9686205 Leitch et al. Jun 2017 B2
20010033299 Callaway et al. Oct 2001 A1
20010047393 Arner Nov 2001 A1
20020032751 Bharadwaj Mar 2002 A1
20020032783 Tuatini Mar 2002 A1
20020032804 Hunt Mar 2002 A1
20020092029 Smith Jul 2002 A1
20030014735 Achlioptas et al. Jan 2003 A1
20030023670 Walrath Jan 2003 A1
20030055893 Sato et al. Mar 2003 A1
20030065738 Yang Apr 2003 A1
20030120324 Osborn Jun 2003 A1
20030120762 Yepishin et al. Jun 2003 A1
20030149941 Tsao Aug 2003 A1
20030163514 Waldschmidt Aug 2003 A1
20030184584 Vachuska et al. Oct 2003 A1
20030208472 Pham Nov 2003 A1
20040015842 Nanivadekar Jan 2004 A1
20040029638 Hytcheson et al. Feb 2004 A1
20040039742 Barsness et al. Feb 2004 A1
20040068516 Lee et al. Apr 2004 A1
20040077347 Lauber 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
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
20050138631 Bellotti et al. Jun 2005 A1
20050188046 Hickman et al. Aug 2005 A1
20050188313 Matthews et al. Aug 2005 A1
20050190203 Gery Sep 2005 A1
20050198578 Agrawala et al. Sep 2005 A1
20050216421 Barry et al. Sep 2005 A1
20050240906 Kinderknecht et al. Oct 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
20060085835 Istvan et al. Apr 2006 A1
20060101397 Mercer et al. May 2006 A1
20060130069 Srinivasan et al. Jun 2006 A1
20060231175 Vondracek et al. Oct 2006 A1
20060236328 DeWitt 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
20070047535 Varma Mar 2007 A1
20070067754 Chen et al. Mar 2007 A1
20070079244 Brugiolo Apr 2007 A1
20070112880 Yang et al. May 2007 A1
20070120763 De Paepe et al. May 2007 A1
20070130292 Tzruya et al. Jun 2007 A1
20070136677 Agarwal 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
20070244990 Wells Oct 2007 A1
20070256073 Truong et al. Nov 2007 A1
20070282951 Selimis et al. Dec 2007 A1
20080016155 Khalatian Jan 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
20080313282 Warila et al. Dec 2008 A1
20090044171 Avadhanula Feb 2009 A1
20090080523 McDowell Mar 2009 A1
20090089742 Nagulu et al. Apr 2009 A1
20090119644 de Vries et al. May 2009 A1
20090209239 Montesdeoca Aug 2009 A1
20090217177 DeGrazia Aug 2009 A1
20090328032 Crow et al. Dec 2009 A1
20100061238 Godbole et al. Mar 2010 A1
20100077058 Messer Mar 2010 A1
20100131591 Thomas 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
20110138016 Jung et al. Jun 2011 A1
20110138283 Marston Jun 2011 A1
20110145863 Alsina 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
20110213830 Lopez et al. 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
20120030275 Boller et al. Feb 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
20120221792 de Vries et al. Aug 2012 A1
20120226742 Momchilov et al. Sep 2012 A1
20120245918 Overton et al. Sep 2012 A1
20120246225 Lemire Sep 2012 A1
20120324032 Chan Dec 2012 A1
20120324358 Jooste 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
20130046816 Thomas et al. Feb 2013 A1
20130054679 Jooste Feb 2013 A1
20130070740 Yovin Mar 2013 A1
20130086156 McFadzean et al. Apr 2013 A1
20130086652 Kavantzas et al. Apr 2013 A1
20130110895 Valentino May 2013 A1
20130113833 Larsson May 2013 A1
20130117474 Ajanovic et al. 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
20130179962 Arai et al. Jul 2013 A1
20130212483 Brakensiek et al. Aug 2013 A1
20130262566 Stephure et al. Oct 2013 A1
20130290408 Stephure et al. Oct 2013 A1
20130346482 Holmes Dec 2013 A1
20140136667 Gonsalves et al. May 2014 A1
20140240524 Julia et al. Aug 2014 A1
20140298420 Barton et al. Oct 2014 A1
20150067035 Sullad et al. Mar 2015 A1
20150067769 Barton et al. Mar 2015 A1
20150156133 Leitch et al. Jun 2015 A1
20150319252 Momchilov et al. Nov 2015 A1
20160054897 Holmes et al. Feb 2016 A1
20160226979 Lancaster et al. Aug 2016 A1
Foreign Referenced Citations (31)
Number Date Country
101539932 Sep 2009 CN
101883097 Nov 2010 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
2004-287758 Oct 2004 JP
2005031807 Feb 2005 JP
2005521946 Jul 2005 JP
2008-099055 Apr 2008 JP
2010-256972 Nov 2010 JP
2295752 Mar 2007 RU
2298287 Apr 2007 RU
2305860 Sep 2007 RU
1998058478 Dec 1998 WO
2001016724 Mar 2001 WO
2002009106 Jan 2002 WO
2003032569 Apr 2003 WO
2003083684 Oct 2003 WO
WO 2009064375 May 2009 WO
2010060206 Jun 2010 WO
2010088768 Aug 2010 WO
2010127327 Nov 2010 WO
2011087545 Jul 2011 WO
2013024342 Feb 2013 WO
2013024343 Feb 2013 WO
2013109984 Jul 2013 WO
2013128284 Sep 2013 WO
2013153439 Oct 2013 WO
Non-Patent Literature Citations (27)
Entry
International Preliminary Report on Patentability and Written Opinion, dated May 31, 2016, received in connection International Patent Application No. PCT/US2014/064243.
Search Report and Written Opinion, dated Nov. 16, 2015, received in connection with SG Application No. 2013087150.
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.
Fraser, N., “Differential Synchronization,” Google, Mountain View, CA, Jan. 2009, 8 pages.
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.
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_Serives, 9 pages.
Extended European Search Report, dated Jun. 2, 2014, received in connection with European Application No. 12760310.8.
Extended European Search Report, dated Mar. 3, 2015, received in connection with related European Application No. 09828497.9.
International Search Report, dated Feb. 19, 2010, in connection with International Application No. PCT/CA2009/001704.
International Preliminary Report on Patentability and Written Opinion, dated May 31, 2011, in connection with International Application No. PCT/CA2009/001704.
International Search Report, dated May 12, 2010, in connection with International Application No. PCT/CA2010/000154.
International Preliminary Report on Patentability and Written Opinion, dated Aug. 9, 2011, in connection with International Application No. PCT/CA2010/000154.
International Search Report and Written Opinion, dated Jul. 31, 2012, in connection with International Application No. PCT/IB2012/000562.
International Search Report, dated Dec. 20, 2012, in connection with International Application No. PCT/IB2012/001589.
International Preliminary Report on Patentability and Written Opinion, dated Feb. 18, 2014, in connection with International Application No. PCT/IB2012/001589.
International Search Report, dated Dec. 28, 2012, in connection with International Application No. PCT/IB2012/001590.
International Preliminary Report on Patentability and Written Opinion, dated Feb. 18, 2014, in connection with International Application No. PCT/IB2012/001590.
International Search Report and Written Opinion, dated Aug. 21, 2013, in connection with International Application No. PCT/IB2013/000676.
International Search Report and Written Opinion, dated Jul. 31, 2013, in connection with International Application No. PCT/IB2013/000720.
International Search Report and Written Opinion, dated Mar. 19, 2015, received in connection with International Application No. PCT/US2014/064243.
International Search Report and Written Opinion, dated Jun. 30, 2016, received in connection International Patent Application No. PCT/IB2016/000277.
“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.
Related Publications (1)
Number Date Country
20150163292 A1 Jun 2015 US
Provisional Applications (1)
Number Date Country
61487598 May 2011 US
Continuations (1)
Number Date Country
Parent 13425496 Mar 2012 US
Child 14609634 US