Abstract:
A network connection platform receives a transaction from a remote device. In response to the transaction, the network connection platform generates a transaction request that causes at least one or more applications to run on a computing device. The network connection platform retrieves data from at least one application and transmits the data to the remote device.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to network communications. More particularly, the present invention relates to a platform for establishing a network connection between two or more devices.  
           [0003]    2. Description of the Prior Art  
           [0004]    Mobile computing devices are now widely available. They allow a user to carry various types of information outside of the normal work environment. Schedules, email, data files and even limited applications are now provided by these devices thus allowing a user to access and modify data remotely. Updating the modified information is usually accomplished by bringing the remote device to a desktop computer in the work environment and exchanging information over a local link such as a USB connection. However, when a user is away from the desktop computer, this local link is impossible to establish. In addition, when operating away from the desktop computer, it is usually not possible to retrieve information that has not previously been stored on the device. Another disadvantage of a remote device is that all applications available on the desktop computer are usually not available on the remote device. Also, the computing power of the remote device is limited due to size and portability requirements.  
         SUMMARY OF THE INVENTION  
         [0005]    It is an object of the present invention to provide a network connection between a computing device and a remote device.  
           [0006]    It is another object of the present invention to allow the computing device and the remote device to exchange data over the network connection.  
           [0007]    It is yet another object of the invention for the remote device to execute one or more applications on the computing device over the network connection.  
           [0008]    It is a further object of the present invention for the computing device to store data in a storage area so that the remote device may access the data when the computing device is unavailable.  
           [0009]    It is a still further object of the present invention to format the data being exchanged for display on a remote device that is wireless.  
           [0010]    It is yet a further object of the present invention to provide a user with a set of pre-configured screens that may be customized and displayed on one or more remote devices to facilitate exchange of data and/or running of one or more applications.  
           [0011]    It is yet another object of the present invention to provide the network connection between the computing device and the remote device over the Internet.  
           [0012]    These and other objects and advantages of the present invention are achieved by a network connection platform that receives a transaction from a remote device. In response to the transaction, the network connection platform causes at least one of a plurality of applications to run on a computing device. The network connection platform retrieves data from the at least one application and transmits the data to the remote device. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]    [0013]FIG. 1 shows a diagram of a network connection platform in accordance with a preferred embodiment of the present invention;  
         [0014]    [0014]FIG. 2 shows a customization window provided by a connection client for creating custom screens;  
         [0015]    [0015]FIG. 3 shows a file menu of the customization window;  
         [0016]    [0016]FIG. 4 shows a view menu of the customization window;  
         [0017]    [0017]FIG. 5 shows a table editing window and a file menu for editing tables;  
         [0018]    [0018]FIG. 6 shows a table and a table menu for editing tables;  
         [0019]    [0019]FIG. 7 shows a session variables window for utilizing session variables in screens; and  
         [0020]    [0020]FIG. 8 shows a block diagram of the connection server of FIG. 1. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0021]    Referring to the figures, and, in particular, FIG. 1, there is provided a network connection platform of the present invention generally represented by reference numeral  100 .  
         [0022]    Network connection platform  100  includes a connection client  105 , that typically resides on a computing device  110 . Computing device  110  may be a desktop personal computer, a minicomputer or any other computing device suitable for use with the present invention. One or more computing devices  110  are typically located in a computing device environment  145 . Examples of a computing device environment  145  include an office, a company, or any other environment where one or more computing devices may be located. Computing device environment may also include a corporate local area network (LAN)  155 , a proxy server  130 , and/or a central server  135 .  
         [0023]    Network connection platform  100  also includes a connection server  120  interposed between connection client  105  and one or more remote devices  125 .  
         [0024]    Connection client  105  is an application that enables a user of the computing device  110  to manage, edit and/or enhance the applications and data that may be accessed by one or more remote devices  125  through network connection platform  100 . Connection client  105  allows the user of computing device  110  to create custom screens that will be displayed by the one or more remote devices  125 . The screens are preferably presented together as a wireless homepage.  
         [0025]    Upon installation, connection client  105  asks the user to provide default directory information, an identification number for use by the one or more remote devices  125  for logging in, and other initial information for setting up the custom screens.  
         [0026]    Once the initial information has been provided, a customization window  200  is presented to the user as shown in FIG. 2. Customization window  200  preferably has a “file” button  205 , a “view” button  210 , a “help” button  215 , and an “upload” button  220 . Customization window  200  also includes a display  225  and device buttons  230  that allow a user to see how the custom screens will appear and operate on the one or more remote devices  125 . A “text” button  235  allows a text screen to be created, a “menu” button  240  allows a menu screen to be created, and a “form” button  245  allows a form screen to be created. A form screen is used to ask a user one or more questions and to save the responses.  
         [0027]    Customization window  200  preferably has a screen menu  250  that is a menu of pre-configured screens that may be displayed on the one or more remote devices  125 . In addition, a left button definition area  255  and a right button definition area  260  allow a user to specify labels for specific buttons on the one or more remote devices  125  and to specify screens that will be displayed if those buttons are activated. A main window  265  provides an area for inputting information to customize the pre-configured screens.  
         [0028]    Each screen initially appears in a “simple” mode, that is a mode that is easy to use. Clicking on the “advanced” button  270  enables the use of more advanced features that are more complicated than “simple” mode. When in “advanced” mode, the nomenclature of button  270  changes to read “simple.” Clicking on button  270  again causes the screen to return to “simple” mode and button  270  to read “advanced.” 
         [0029]    “File” button  205  is preferably activated by moving a cursor over the “file” button. Upon activation, a file menu  305  appears as shown in FIG. 3.  
         [0030]    File menu  305  preferably has a “new screen” button  310  an “open” button  315 , a “save” button  320 , a “save as” button  325 , and an “exit” button  330 . “New screen” button  310  opens a new screen. “Open” button  315  opens an existing screen. An existing screen may also be opened by double-clicking on its name in screen menu  250  of FIG. 2. “Save” button  320  saves the currently open screen to the current location for that screen. “Save as” button  325  saves the currently open screen as a different filename or location as specified by the user. “Exit” button is used to exit connection client  105  as shown in FIG. 1.  
         [0031]    Referring to FIGS. 2 and 4, “view” button  210  is preferably activated by moving a cursor over the “view” button. Upon activation, a view menu  405  appears as shown in FIG. 4. View menu  405  preferably has a “tables editor” button  410  and a “session variables” button  415 .  
         [0032]    Activating “tables editor” button  410  brings up a table editor screen  500  as shown in FIG. 5. Table editor screen  500  has a “file” button  505 , a “table” button  550 , a “help” button  555 , and a “close” button  560 .  
         [0033]    Activating “file” button  505  in table editing screen  500  displays a menu  510 . A “new table” button  515  opens a new table. An “open button”  520  opens an existing table. An existing table may also be opened up by double-clicking on its name in the tables list  525 . A “save” button  530  saves the currently open table  565  to the current location for the open table. A “save as” button  535  saves the currently open table  565  as a different filename or location as specified by the user. An “import” button  540  allows a user to import a table from an external file. A “close” button  545  closes the table editor screen  500 .  
         [0034]    Activating “table” button  550  in table editing screen  500  displays a table editing menu  610  as shown in FIG. 6. An “add column” button  615  appends a column to the right of a selected column of currently open table  565 . A “delete column” button  620  deletes a selected column from table  565 . An “add row” button  625  adds a row to currently open table  565 . A “delete row” button  630  deletes a selected row from table  565 . An “edit” button allows a selected field  645  within table  565  to be edited. This may also be accomplished by double-clicking a field.  
         [0035]    Table editor screen  500  may also provide other table editing tools that allow a user to change a column name, a column type (e.g., text, number, date, etc.), or display width. In addition, table editor screen  500  may provide the ability to move columns by “drag and drop” operations.  
         [0036]    Returning to FIG. 5, activating “help” button  555  preferably displays a help file to provide the user with further information regarding editing tables. Activating “close” button  560  closes table editing screen  500 .  
         [0037]    Turning to FIG. 4, activating “session variables” button  415  displays a session variables window  710  as shown in FIG. 7. Session variables window  710  shows the various inputs and selections made by the user while running the current session of the customization window  200  shown in FIG. 2. These inputs and selections, referred to as session variables, may be referenced and used in queries, input forms, text screens, etc.  
         [0038]    Turning again to FIG. 2, when creation and customization of screens is complete, activating the “upload” button uploads the screens to connection server  120 .  
         [0039]    Returning to FIG. 1, one component of connection client  105  is a client transaction server  115 . Client transaction server  115  typically resides in a startup folder of computing device  110 , or is otherwise configured to run automatically when the computing device is started. Upon startup, client transaction server  115  establishes a communication path to a connection server  120 . It is important to note that for security purposes, only connection client  105  can open a communication path to connection server  120 . Client transaction server  115  executes transaction requests from connection server  120 .  
         [0040]    A transaction request may be a request for data or a request to run an application. A transaction request may also be a request to run an application available to computing device  110  with additional data included in the transaction request. For example, connection server  120  may send a request to view the contents of a folder on computing device  110 . In response, client transaction server  115  executes a directory command and returns the results to the connection server  120 . As another example, connection server  120  may send a request to run a billing application that is normally run from computing device  110 , and that request may include data to be calculated by the billing application. In response to this request, client transaction server  115  causes the application to run with the included data and returns the results to connection server  120 .  
         [0041]    The data and/or applications that may be accessed by connection client  105  can include any type of data and/or application available through computing device  110 . The data may also be accessed through various formats including one or more text files, databases, applications, COM objects, CORBA services, JAVA services, voice, videos, and streaming videos.  
         [0042]    Client transaction server  115  also periodically checks connection server  120  for upgrades, and implements those upgrades on computing device  110 . This allows for automatic updating of connection client  105 , as well as the capability of implementing new services automatically. Client transaction server  115  also supports one or more connections through proxy server  130 , as found, for example, in a corporate networked environment. Connection client  105  and client transaction server  115  may reside on central server  135  rather than on computing device  110 . This may be advantageous in an organization that desires to create a standard set of data and applications for use over network connection platform  100 .  
         [0043]    A connection path between client transaction server  115  and connection server  120  is preferably implemented through the Internet  150 .  
         [0044]    [0044]FIG. 8 shows the components of connection server  120 . Connection server  120  acts as a gateway between one or more remote devices  125  and one or more computing devices  110 .  
         [0045]    Connection server  120  may be located within computing hardware dedicated to the operation of the connection server. In a preferred embodiment, connection server  120  is located in computing hardware that performs multiple functions, for example, an Internet service provider&#39;s facility  140  (as shown in FIG. 1).  
         [0046]    Connection server  120  has a transaction server  805  that is capable of monitoring and managing communication paths from one or more connection clients  105 . Transaction server  805  passes transactions requests and data back and forth between connection server  120  and one or more computing devices  110 .  
         [0047]    Connection server  120  has a remote device gateway  850  that manages communication paths between the one or more remote devices  125  and the connection server. Remote device gateway  850  may include a wireless applications protocol (WAP) gateway  855  for communicating with the one or more remote devices  125  that are wireless. If connection server  120  runs from Internet service provider&#39;s facility  140 , remote device gateway  850  may also provide web services  860  from the Internet service provider&#39;s facility  140  shown in FIG. 1.  
         [0048]    Connection server  120  preferably has a web server  810  that acts as an interface between transaction server  805  and remote device gateway  850 . Web server  810  formats data received from transaction server  805  for display on one or more of the remote devices  125 . Web server  810  also includes a translator  815  for formatting data to be displayed on the one or more remote devices  125  that are wireless.  
         [0049]    For security purposes, a firewall  865  isolates web server  810  from transaction server  805  and remote device gateway  850 .  
         [0050]    An object server  820  manages the operation of connection server  120 . Object server  820  analyzes communications from one or more remote device  125  and performs various operations in response. Upon a remote device  125  logging in, object server  820  presents remote device  125  with screens previously designed using connection client  105 . As a user of remote device  125  navigates the screens and inputs data, the remote device generates various transactions including requests to retrieve data, run certain applications, and/or to run one or more applications with a particular set of data. In response to transactions generated by remote device  125  using the previously designed screens, object server  820  sends transaction requests to one or more computing devices  110 . Examples of transaction requests include exchanging email, address book information, and schedule information between one or more computing devices  110  and one or more of the remote devices  125 . Other transaction requests may include converting voice messages from one or more of the remote devices  125  to text, email, or sound files, and sending those files for processing to one or more computing devices  110 .  
         [0051]    When a computing device  110  responds to a transaction request, object server  820  in combination with web server  810  and remote device gateway  850  formats the response for delivery to one or more remote devices  125 .  
         [0052]    Object server  820  also supports transactions from remote devices  125  that include requests for information from locations on the Internet  150  such as web and FTP (file transfer protocol) sites. In addition, object server  820  manages connections to Internet relay chat servers, allowing remote devices to participate in “chat” exchanges.  
         [0053]    Object server  820  also manages individual accounts associated with computing devices  110  and the one or more remote devices  125 . Typical individual account information may include one or more passwords, addresses, telephone numbers, and billing and pricing information. Object server  820  also allows connection server  120  to deployed over different computers in a distributed fashion, and provides for general management of computer resources such as advanced thread pooling, built-in page caching, persistent queries, and database connection pooling. Object server  820  also includes computer resource load balancing and failure recovery mechanisms, as well as reporting and analysis tools.  
         [0054]    Connection server  120  also includes a database server  830 , for example an SQL server, to manage application data  840  and user data  845  that are stored in database  835 . Application data  840  includes information such as screens previously designed using connection client  105 , or other data related to applications delivered through connection server  120  to remote devices  125 . User data  845  may include data from computing devices  110 , stored on the connection server  120  in database  835 , so that it may be available even when computing device  110  is not available.  
         [0055]    The network connection platform  120  is described in the context of a hardware and software combination of clients, servers, and various support resources. However, it should be understood that that network connection platform  120  may be implemented solely in software or solely in hardware, or may be implemented in any combination of hardware and software suitable for providing the functions of the present invention.  
         [0056]    It is also contemplated that the present invention may include a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method of exchanging information between a remote device and a computing device.  
         [0057]    Thus, while the present invention has been particularly shown and described with respect to preferred embodiments thereof, it will be understood by those skilled in the art that changes in form and details may be made therein without departing from the scope and spirit of the present invention.