WO2004046887A2 - A system and method for reducing bandwidth requirements for remote applications by utilizing client processing power - Google Patents
A system and method for reducing bandwidth requirements for remote applications by utilizing client processing power Download PDFInfo
- Publication number
- WO2004046887A2 WO2004046887A2 PCT/US2003/037021 US0337021W WO2004046887A2 WO 2004046887 A2 WO2004046887 A2 WO 2004046887A2 US 0337021 W US0337021 W US 0337021W WO 2004046887 A2 WO2004046887 A2 WO 2004046887A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- code
- functions
- dps
- remote application
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000012545 processing Methods 0.000 title claims abstract description 24
- 230000006870 function Effects 0.000 claims abstract description 127
- 238000010276 construction Methods 0.000 claims abstract description 11
- 238000010200 validation analysis Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 29
- 230000003068 static effect Effects 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 11
- 230000003287 optical effect Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 230000008867 communication pathway Effects 0.000 claims 4
- 230000008569 process Effects 0.000 description 54
- 230000005540 biological transmission Effects 0.000 description 36
- 230000008901 benefit Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000009434 installation Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 238000013502 data validation Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 241000953555 Theama Species 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Definitions
- Embodiments of the invention relate generally to the field of remote applications, and more specifically to a system and method to reduce the transmitted data for such applications.
- the Internet has become a backbone of communication with a vast repository of information available in various formats.
- Many companies are developing various applications for use on the Internet to facilitate real-time decision-making processes (e.g., transactional applications).
- these remote applications encompass any bi-directional or unidirectional access of remote data.
- Bottlenecks may be caused by a low bandwidth/user connection, the infrastructure of the Internet Service Provider (ISP), the gateway to the Internet backbone, or the content provider's Web server and/or application server. Eliminating these problems may be prohibitively expensive or impractical. For example, not only is increasing bandwidth expensive, but it may not be practically possible in some areas that lack the infrastructure to do so. [0004]
- the increasing bandwidth requirements are due to the increasing complexity of the data transmitted and to how the Internet exchanges information.
- the Internet may typically use hypertext mark-up language (HTML) and its related formats such as extensible mark-up language (XML), and dynamic HTML (DHTML).
- HTML hypertext mark-up language
- XML extensible mark-up language
- DHTML Dynamic HTML
- the Internet also may use Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), and other associated Transmission Control Protocol/Internet Protocol (TCP/IP) based communications protocols.
- HTTP Hyper Text Transfer Protocol
- FTP File Transfer Protocol
- TCP/IP Transmission
- HTML defines the syntax and placement of special, embedded, directions that instruct a web browser on how to display the contents of a document which is made up of one or more HTML text files or associated media files, or other embedded files of any number of formats including text, images, and other support media.
- HTML instructs a web browser client application on how to make a document interactive through special hypertext links or through embedded programs like Java applets, which connect a document with other documents, as well as with other Internet resources.
- embedded programs can and often do contain their own interactive logic in the form of executable code and the associated resources.
- a server digital processing system typically runs a web server and/or application server program to make documents, typically hypertext documents in the HTML language, available.
- Web servers and/or application servers typically have a standard interface for running external programs, such as Common Gateway Interface (CGI), Java servlets, Java server pages (JSPs) and Active server pages (ASPs) or other server-side solutions.
- CGI Common Gateway Interface
- Java servlets Java server pages
- ASPs Active server pages
- Such programs handle incoming information requests and return the appropriate document or generate a document dynamically.
- a gateway might receive queries, determine a response, and translate the response into a page of HTML so that the server DPS can send the result to a client digital processing system (client DPS).
- client DPS typically runs a web browser (a program to allow retrieval and display of information from the server DPS).
- Server-side technologies such as JSP and ASP employ scripting engines or Java that process commands written in a scripting language or Java.
- the web server and/or application server and the web browser communicate using HTTP.
- HTTP the web browser establishes a connection to a web server and/or application server and sends an HTTP request message to the server DPS.
- the web server and/or application server checks for authorization, performs any requested action and returns an HTTP response message containing an HTML document resulting from the requested action, or an error message.
- the web server and/or application server then retrieves the document and returns it in an HTTP response message to the Web browser.
- the client DPS may petition the server DPS for access to an application document, for example a transactional application form.
- the client DPS's petition causes the entire form to be constructed on the server DPS.
- the form is then packaged and transmitted to the client DPS.
- the client DPS receives the HTML code and parses and renders the form at the client DPS.
- FIG. 1 illustrates a process in which a client DPS requests and receives a remote application form from a server DPS in accordance with the prior art.
- Process 100 begins at operation 105 in which the client DPS requests access to a remote application form.
- the request may be made, from the client DPS to the server DPS, in a variety of ways including via Internet, Intranet, Extranet, local area networks (LANs), wide area networks (WANs), as well as others, and combinations thereof.
- LANs local area networks
- WANs wide area networks
- the data transmission path between the client DPS and sever DPS is referred to as the "cloud".
- the transmission of the petition through the cloud is limited by available bandwidth.
- the server DPS receives the petition.
- the petition is received by the web server/application server of the server DPS.
- the server DPS determines whether the petition is for a standard interface file (for purposes of this illustration a JSP file). If the petition is a JSP file, at operation 116, the server performs a JSP processing operation. The JSP file is retrieved and passed to the servlet engine. If the JSP has not been previously instantiated, the servlet engine parses the JSP file and generates servlet source code. The servlet engine then compiles the source code and instantiates the servlet. At operation 117 the servlet then outputs standard HTML code.
- the server DPS obtains the HTML code from the virtual directory at operation 118.
- the HTML code (from the JSP servlet or from the virtual directory) is transmitted from the server DPS, through the cloud, to the client DPS. This HTML code is fairly heavy and may cause lengthy delay in the transmission especially for low bandwidth/user environments.
- the client DPS receives the HTML code.
- HTML code is received at the client DPS browser and may be buffered prior to being parsed and rendered. This buffering adds to the delay in presenting the remote application form.
- terminal servers emulate a screen at the client DPS. This opens a client session on the server DPS where the application is actually running on the server DPS and only screen emulations are transmitted to the client DPS. That is, none of the presentation code or logic of a typical web- page transmission is included.
- the client DPS has an application emulator and is transmitting only interaction with the form (i.e., typed input and/or mouse movement).
- terminal servers With terminal servers, various algorithms are used to reduce the required data transmission. Terminal servers allow for reduced processing power on the client DPS, but processing requirements are dramatically increased on the server DPS. Such schemes do not provide significant relief for very low bandwidth/user media such as typical (analog) telephone lines and have numerous other drawbacks.
- One such drawback is that the initial setup may require data transmission on the order of several megabytes (MB) which is installed at the client DPS as a plug-in, an object, or directly to the client DPS hard disk (i.e., not to the browser cache). This installation is, therefore, across a secure barrier. Such installation requires explicit user permission, alters the configuration of the client DPS, and produces a possibility of conflict and the perception of vulnerability to corruption.
- terminal servers are system specific.
- terminal servers are not system independent. Moreover, where a user lacks administrative rights to be able to install the initial components or the terminal server cannot pass through firewalls or proxies, the terminal server may be rendered unusable.
- JVM Java Virtual Machine
- the idea behind the JVM is to install an environment on the client DPS that is operating system and browser independent. This has the potential of being able to reduce data transmission, because it may reduce the need to continually transmit document-structuring code.
- JVM also has the drawbacks of the terminal server in that an initial installation is required. For JVM this may be as large as 11 MB because JVM requires objects and extra classes. JVM not only installs its overall environment, but each application requires its own specific environment (i.e., requests additional classes from the server). Because more data has to be accessed, the applications are sluggish. Moreover, JVM requires substantially more client DPS processing power. JVM may work well for small, specifically focused applications but, in general, JVM still requires so much code that it does not significantly reduce the amount of required data transmission for transactional application forms.
- Another example of the excessive amount of data transmitted via the cloud for remote application forms is the submission and data validation process.
- Many remote applications require that user input data be validated by the server DPS.
- the user must submit the completed form and the server DPS must receive the completed form prior to attempting to validate specific inputs. If there was an error in completing the form, the entire page creation process must be employed to recreate the page adding values to fields and error messages where appropriate. If no error is detected in the user input data, the server DPS creates a page containing the validated information. This page is then transmitted to the client DPS via the cloud, for user verification. If the user submits the form with verification, the corresponding database process and other tasks may proceed.
- the page creation process must be employed as described above. This process not only requires a substantial amount of data transmission via the cloud, but also results in significant wait-time as pages are transmitted and/or recreated due to erroneous input.
- Such data transmissions may include the transmission of data files or a collection of data files, including the transmission of text, audio, media, embedded programs, executable code, or other data that is published at a host server DPS.
- Such a system should reduce data transmission during accessing and presentation of remote application forms, as well as for submission and data validation.
- such a system should not require installation on the client DPS (i.e., would employ zero-install technology) and should not modify the secure side of the client DPS.
- Such a system should also pass through proxies and firewalls.
- such a system should provide a user-friendly interaction (e.g., graphical user interface and "chatty mode") for remote applications.
- Embodiments of the present invention provide methods and systems for reducing transmitted code for remote application forms.
- First code to link one or more functions to a remote application is received at a client digital processing system (DPS).
- Each function contains instruction code to generate object construction code and a set of object parameters.
- the object construction code is used to create a corresponding object.
- the one or more functions are linked to the remote application form.
- Second code is received to call one or more of the functions.
- One or more of the functions is called to construct one or more objects at the client DPS.
- the constructed one or more objects is presented as part of the remote application form based upon the object parameters.
- Figure 1 illustrates a process in which a client DPS requests and receives a remote application form from a server DPS in accordance with the prior art
- FIG. 2 illustrates a network of digital processing systems (DPS) in which reduced data transmission enabled applications may be transmitted, received, and processed in accordance with one embodiment of the invention
- FIG. 3 is an architectural overview diagram for a system in accordance with one embodiment of the invention
- Figure 4 is a process flow diagram illustrating a process in which a client DPS accesses and presents a reduced data transmission enabled remote application in accordance with an embodiment of the invention
- Figure 5 is a process flow diagram illustrating a process in which user input data is validated against a server DPS database in accordance with one embodiment of the invention.
- Figure 6 is a process flow diagram illustrating a process in which a remote application form is refreshed in accordance with one embodiment of the invention
- Figure 7 is a process flow diagram illustrating a process in which user data input type validation and field completion validation are accomplished on the client DPS in accordance with one embodiment of the invention
- Figure 8 illustrates an embodiment of a digital processing system that may be used for the server DPS or client DPSs, in accordance with an embodiment of the invention.
- An embodiment of the present invention significantly reduces the amount of required code transmitted between the server DPS and the client DPS for a remote transactional application form while maintaining complete and additional functionality.
- the term form refers generally to any combination of objects created for use on a remote application. For one embodiment, this is accomplished with reduced data transmission to the client.
- the server DPS transmits a core library, consisting of a number of functions, to the client DPS.
- the core library is stored on the browser cache of the client DPS.
- the core library includes a set of functions referred to as a generic mini-assembler (GMA).
- the GMA is used to construct generic (e.g., commonly used) objects on the client DPS. That is, code within the initial transmission calls the functions of the GMA to produce the HTML code to construct the generic objects. This production of the HTML code and the construction of the objects takes place on the client instead of the server DPS.
- the objects are portions of the transactional application form and may be various fields of information to be exchanged including text, text area, check boxes, etc.
- the program logic of the standard interface program requests additional objects required by the particular application, and requests the functions necessary to construct these objects from the server DPS.
- the function required to construct such objects are referred to as specific mini-assemblers (SMAs).
- an embodiment means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention.
- the appearance of the phrases “in one embodiment” or “in an embodiment” in various places throughout the specification are not necessarily all referring to the same embodiment.
- the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
- FIG. 2 illustrates a network of digital processing systems (DPS) in which reduced data transmission enabled (RDTE) applications may be transmitted, received, and processed in accordance with one embodiment of the invention.
- the network of DPSs 200 includes a plurality of client DPSs, shown as client DPSs 205a - 205d, coupled to one or more server DPSs, shown as server DPS 220.
- the server DPS 220 and client DPSs 205a -205d are configured to communicate a plurality of various data files.
- server DPS 220 has stored upon it a reduced data transmission application 221 for access by a client DPS in accordance with an embodiment of the invention.
- the data files may pertain to transactional application forms or may be any combination of a number of different types of files including, for example, video, audio, graphics, text, multi-media or the like.
- the data files may be audio/video files, such as programs with moving images and sound.
- Data may be communicated between the server DPS and the client DPSs through any type of communications network through which a plurality of different devices may communicate such as, for example, but not limited to, the Internet, a wide area network (WAN) not shown, or a local area network (LAN), an intranet, or the like.
- WAN wide area network
- LAN local area network
- intranet or the like.
- client DPSs 205a and 205d are coupled to the server 220 through LAN 211
- client DPSs 205b and 205c are coupled to the server 220 through Internet 210 which is a network of networks having a method of communicating data as described above and well known to those skilled in the art.
- the communication links coupling the server DPS to client DPSs need not be a direct link, but may be indirect links including, but not limited to, broadcasted wireless signals, network communications or the like.
- FIG. 3 is an architectural overview diagram for a system in accordance with one embodiment of the invention.
- the exemplary system 300 shown in Figure 3, is shown as a Java-centric environment (e.g., Java 2 Platform Enterprise Edition (J2EE)). This is for illustrative purposes only and the invention should not be construed as limited to such.
- System 300 includes exemplary embodiments of a server tier
- Server tier 301 includes an application development environment, for example, J2EE web container 310.
- Web container 310 includes HTML code 311 and RDTE remote application HTML code 311a; servlets 312 and RDTE servlets 312a; JSPs 313 and RDTE JSPs 313a; and CGIs 314 and RDTE CGIs 314a.
- Web container 310 also includes RDTE remote application core library 315 and other functions 316, discussed below.
- Server tier 301 also includes an application program 320 for running various components 321 , setup through the component architecture (e.g., Enterprise Java Beans) that stores platform logic.
- component architecture e.g., Enterprise Java Beans
- the application program 320 may include an inter-computer messaging API 322 that allows the creation, management, and communication of various data files, as well as a database access API 323 (e.g., Java DataBase Connectivity) to provide the application with database access.
- a database access API 323 e.g., Java DataBase Connectivity
- Server tier 301 also includes a web/application server 330 that provides the RDTE remote application pages to the client tier 302 and handles the application operations between the server tier 301 and the backend 302.
- Backend 302 which provides database management functions, among others, includes various database environments 340a -340d for responding to user queries.
- Client tier 303 includes a client DPS web browser 350 that includes HTML parsing and rendering software 351 , scripting functions 352, and browser cache 353.
- core library 360 Stored on the browser cache 353 is core library 360, which is a library of functions used to create the most common objects of an application page. This library is transmitted from the server DPS to the client DPS upon initial access of a remote application in accordance with one embodiment of the invention.
- the core library 360 includes a GMA 361 , validation functions 362, pacemaker functions 363, deltalyzer functions 364, user interface functions 365, and other functions and objects 366 (e.g., date functions, array functions, etc.).
- the core library is approximately 15 kilobytes and is capable of constructing many of the most commonly used HTML objects.
- Appendix A attached hereto, includes exemplary functions for constructing an input text object or an input password object in accordance with one embodiment of the invention. For one embodiment, such functions are contained in the GMA.
- Other functions, that are not part of the core library, may be initially transmitted by the server DPS to the client DPS and stored on the browser cache.
- SMAs 370a-370c are stored on the browser cache 360.
- Browser cache 360 also includes an alpha mini-assembler (AMA) 375, which is a form-specific function that may include calls to the GMA or SMAs. Because SMAs and AMAs are not part of the core library, they are only transmitted if the programming language includes a call to them.
- AMA alpha mini-assembler
- the generic mini-assemblers which are part of the core library, are code libraries that provide small functions, which in conjunction with parameters, allow the client DPS to assemble the HTML code for commonly used objects (e.g., text, text area, check boxes, etc.).
- the GMA parameters generate the necessary HTML code for most of the necessary objects for the particular page. This reduces the amount of transmitted data because the server no longer has to transmit all of the HTML code for each object.
- the GMA also adds validation attributes (e.g., data types, required fields, etc.) that are used for a validation process discussed further below. This process takes place within the same environment that runs on the client, thus eliminating the need for installing a new environment on the client.
- the GMA may contain instructions for communicating directly with the document object module (DOM) to create objects on the client without generating the HTML code.
- the server calls a function, which is defined in the GMA, to create a particular object.
- the GMA is designed to contain only the functions needed to create the most commonly used objects, and therefore, the GMA may not contain parameters to generate the HTML code to produce some objects that are required for a particular form. This may be because the object is simply not used frequently enough to be included in the GMA. That is, in order to transmit as little data as possible, the GMA must only encompass the most elemental objects.
- a call to a specific miniassembler (SMA) may be included in the RDTE remote application code by the programmer and transmitted from the server DPS to the client DPS upon access of the form by the user.
- the SMAs are specific to a generic object, but one that is not used frequently enough to be included in the GMA.
- the parameters for generating a calendar may be designated an SMA (i.e., not included in the GMA) because a calendar is not always needed.
- the SMA for creating a calendar is approximately four kilobytes.
- the client DPS will request an SMA only if the programmer has included a call to the particular SMA in the programming logic (e.g., in the JSP), that is, if the programmer has determined that the SMA is required for the particular form.
- the client DPS determines what objects are required when the form is created and then petitions the server for the required SMAs. This helps to keep the size of the core library to a minimum and reduces the amount of transmitted data.
- Alpha mini-assemblers have the static portion of a specific form.
- the function in an AMA may include a calling to a function in the GMA (generic object) or a calling to a function in an SMA (specific object).
- the function of an AMA may include a calling to a text element or to a calendar, if this was required for a specific form.
- the system of the invention is capable of working on many different environments (e.g., JSP, ASP, etc.). Therefore, there would have to be an environment-specific document such as a JSP or an ASP document on the server DPS that contains programming logic to use a specific AMA for a particular form.
- the AMAs may be created manually or through use of an integrated programming environment (i.e., integrated development environment (IDE)). Deltalyzer functions, discussed below, allow for the insertion of values into the static objects of the AMA.
- IDE integrated development environment
- An additional mechanism may be employed to further reduce required data transmission known as deltalyzing the form.
- An AMA for a form containing all of the static portions of the form, is created. Once such an AMA for a particular form has been called and is resident on the client DPS, the static portions of the form may be accessed from the client DPS browser cache so that there is no need for the server DPS to retransmit this data. Upon subsequent use of the particular form, the server DPS transmits only the dynamic data that interacts with the particular AMA.
- This combination of the AMA containing the static portion of a form and the dynamic information that interacts with the AMA is called a deltalyzer.
- the deltalyzers may likewise be created manually or through use of an IDE.
- the concept of the deltalyzers is to reduce data transmission by sending only the dynamic portion of an interactive form where the static portion has already been transmitted and is available on the client DPS.
- the dynamic structure may include, for example, specific names, telephone numbers, dates, and other instance-specific information, while the static structure includes the objects and fields where this information is placed within the form.
- the server may transmit an AMA for that form that is cached on the client DPS.
- the server transmits the dynamic information that interacts with the particular AMA.
- the client DPS obtains the static portion from the browser cache and petitions the server DPS for only the dynamic portion of the particular form. Therefore, there would have to be an environment-specific document on the server DPS that contains the logic to build a specific AMA for a particular form.
- FIG. 4 is a process flow diagram illustrating a process in which a client DPS accesses and presents an RDTE remote application in accordance with an embodiment of the invention.
- an initial operation of receiving the core library at the client DPS may be included.
- Process 400 shown in Figure 4, begins at operation 405 in which a client DPS requests an RDTE remote application form from the server DPS.
- the client may request a particular transactional application form.
- the server DPS transmits the RDTE code for the requested form via the cloud to the client DPS. Because this code will call upon the functions of the core library and applicable SMAs and AMAs, the amount of code transmitted is significantly smaller than typical prior art schemes. The code is transmitted via the cloud through the available bandwidth, but due to its reduced size, it is transmitted faster and with less restriction. As the initially transmitted code is received, it is buffered at the client DPS web browser.
- the client DPS web browser begins parsing and rendering the code from the buffer.
- the initial code contains a request to link the core library to the form.
- the browser would request it from the server DPS.
- the core library is included as part of the buffer at the point where the call to the core library was made. If the form contains SMAs, the initial code contains a request to link the particular SMAs to the form, and the process described above, in reference to linking the core library, is repeated. Likewise, if the form is deltalyzed, the initial code contains a request to link the applicable AMA to the form and the linking process is repeated.
- the browser continues parsing and rendering the code and determines if the instruction being parsed contains a call to a mini-assembler function. If so, the function is called and depending on the parameters it has received, the function creates the corresponding object construction code (e.g., HTML code) on the client DPS. (Instructions which do not call a mini-assembler function are processed by the browser in typical fashion at operation 421.)
- object construction code e.g., HTML code
- the code created by the mini-assembler is registered as part of the form. That is, HTML code corresponding to the called functions is now included as part of the requested remote application form.
- HTML code corresponding to the called functions is now included as part of the requested remote application form.
- operation 430 if there is more code in the buffer, it is parsed and rendered as described above until all of the transmitted code has been received and processed.
- DPS and the user can access and use the requested form within the browser environment of the client DPS.
- the data transmission requirements are substantially reduced.
- the reduction may be as high as 80-90% compared with prior art schemes.
- the amount of transmitted data may be reduced even further for some applications by providing a mechanism through which the client DPS may communicate with the server DPS during the transaction (e.g., while completing a transactional application form). Basically, this ability allows a user to transfer an application from batch mode to "chatty" mode. For one embodiment, this functionality is effected through the use of "pacemakers" (PMs).
- PMs pacemakers
- HTML frames allow programmers to present documents in multiple views (e.g., independent windows or subwindows).
- the inline frame element (Iframe) allows a programmer to insert an HTML document within another.
- the system of the invention uses PMs to implement hidden Iframes that provide alternative communication paths that allow a remote application to operate in "chatty" mode rather than batch mode.
- the PM petitions the GMA to create a new Iframe which can then be used to petition the server DPS and receive a response, after which the new Iframe may be erased from the DOM.
- These interactions may be time-triggered (triggered at a specific time or duration), user-triggered, or specific action- triggered.
- a petition queue is created so that petitions that have not been responded to by the server DPS will not be discarded upon receipt of a subsequent petition. This allows the client DPS to interact with stored data through the server DPS more efficiently.
- the mini-assemblers may insert one or more PMs within the code of an RDTE remote application form.
- the PMs are embedded in various ways depending on the form and the purpose for the data exchange.
- PMs may be embedded variously to effect a real-time database validation process, a reduced data transmission refresh process, and emulate a normal client DPS saving process, among others.
- the use of PMs allows seamless intervention with the server DPS providing improved user-interaction. That is, because PMs allow only the data to be refreshed, the disconcerting effect of prior art data validation schemes caused by the form closing and reopening, is eliminated.
- PMs may be used to validate that user input data is contained within a backend database.
- the PM Upon user input of data to a particular field of, for example, a transactional form, the PM causes the entered data to be sent to the server with a request to the application server to query the database and make sure the data entered is correct. Only the data contained in the specified field is transmitted from the client DPS to the server DPS (i.e., not the entire page as in typical prior art schemes). The data is sent to the server upon entry (i.e., during the transaction).
- FIG. 5 is a process flow diagram illustrating a process in which user input data is validated via the server DPS through a backend database in accordance with one embodiment of the invention.
- Process 500 begins with operation 505 in which a user at a client DPS enters user- input data requiring database validation to a data input field of an RDTE remote application form that has already been accessed by the user and presented on a client DPS.
- this data could be customer identification data (CID) associated with a particular customer name.
- CID customer identification data
- the database validation confirms, for the user, that the CID entered corresponds to the desired customer.
- the onChange trigger is activated.
- the onChange trigger is inserted into the code by the mini-assembler that created the field.
- the onChange trigger activates a corresponding database validation PM that transmits the user input data (e.g., CID) through the cloud to the server DPS.
- the server DPS receives the petition.
- the petition is received by the web server/application server of the server DPS. If the petition is for a standard interface file, for example, a JSP file, the server DPS retrieves the JSP file from the virtual directory. The JSP file is retrieved and passed to the servlet engine.
- the servlet engine parses the JSP file and generates servlet source code. The servlet engine then compiles the source code and instantiates the servlet.
- the database e.g., a customer name database
- the data input by the user e.g., CID
- the server DPS transmits a small amount of code to the client DPS in reply, via a PM, indicating this.
- the code may indicate that the CID input by the user does not correspond to a customer name.
- the code may activate a pop-up window displaying the non- corresponding information.
- the focus is reset to the data input field and the data is selected.
- the server DPS transmits a small amount of code to the client DPS in reply, via a PM, containing the valid data (e.g., customer name).
- the client DPS web browser receives the reply and provides the queried database data to the user for validation.
- the code may activate a pop-up window displaying the corresponding information.
- the customer name corresponding to the entered CID is entered into a corresponding consult field so that the user can validate that it is the desired customer.
- the system of the invention provides the ability for implementing a remote application form refresh process that reduces the amount of transmitted data.
- a PM is used to transmit a timestamp and session identification to the server DPS that indicates the last time the form was refreshed.
- the server DPS then transmits only the code necessary to call on the mini-assembler to construct the objects subsequent to the transmitted timestamp. If there are no new objects (i.e., subsequent to the time stamp), the server transmits a message to this effect. In this way, the client DPS does not repetition the entire form upon a refresh, thus substantially reducing the amount of data transmission versus prior art refresh processes.
- FIG. 6 is a process flow diagram illustrating a process in which an RDTE remote application form is refreshed in accordance with one embodiment of the invention.
- Process 600 begins with operation 605 in which a user initiates a refresh process for an RDTE remote application form that has already been accessed by the user and presented on a client DPS.
- the user may be accessing an electronic mail form and may be initiating a refresh process to determine if there is new e-mail.
- the refresh process initiation uses a pacemaker to transmit the refresh request to the server DPS.
- the refresh request includes a session identification and a time stamp indicating the time of a last refresh process (i.e., since the last time the data was validated as current).
- the database is queried using the user identification and time stamp to determine if there is refresh data for the particular user as of the transmitted time stamp.
- the server DPS transmits code to provide a message to the client DPS to this effect.
- the code transmitted by the server DPS activates a pop-up window on the client DPS informing the user that there is no new e- mail.
- the server DPS transmits only a small amount of code, which includes the refresh data (e.g., new e-mail messages).
- the code activates a mini-assembler causing the refresh data to be added to the existing form (e.g., new e-mail messages are added to the in-box).
- PMs provide another avenue for reducing the processing performed by the server DPS.
- the various mini-assemblers may effect data transmission reduction processes, via object attributes (e.g., data type or required field attributes), by incorporating triggers into the objects. Such triggers may be used to effect client-side user input data type and required field completion validation and to provide a reduced data transmission refresh process as described below.
- the system of the invention provides the ability for implementing a reduced data transmission validation process by including attributes to the objects as opposed to including the entire validation script as in prior art schemes.
- the validation process allows a user to verify that user-input data is valid and required fields are complete prior to transmission of the form to the server DPS.
- the validation process validates user data input during form completion and validates required field completion on form submittal. Implementing such a validation process avoids the excessive data transmission of prior art schemes, which can amount to 2-3 times the amount of data transmissions for remote applications without data validation.
- FIG. 7 is a process flow diagram illustrating a process in which user data input type validation and field completion validation are accomplished on the client DPS in accordance with one embodiment of the invention.
- Process 700 shown in Figure 7, begins with operation 705 in which a user at a client DPS enters user-input data to a data input field of an RDTE remote application form that has already been accessed by the user and presented on a client DPS.
- onChange trigger is activated.
- the onChange trigger is inserted into the code by the mini-assembler that created the field.
- the onChange trigger activates a data type validation function contained in the RDTE core library.
- the validation functions compare the type of the user-input data entered into the data input field with a valid data type as defined by an RDTE data-type attribute.
- the data-type attribute is inserted into the code by the mini-assembler that created the field.
- the code provides an indicator that the user-input data type is incorrect. The focus is then returned to the data input field and the data selected.
- the invalid data indicator is implemented as a pop-up window on the client DPS.
- the user submits the form.
- the submittal activates an onSubmit trigger that activates a required field completion validation process contained in the RDTE core library.
- the onSubmit trigger is inserted into the code by the mini-assembler that created the RDTE remote application form.
- the required field validation process begins with the first data input field of the RDTE remote application form and determines if the field requires data input. For one embodiment, this determination is made by reference to a required field attribute inserted into the HTML object when the object was created by the mini-assembler.
- the required field validation process determines if the field has been filled in.
- the required field completion validation process is contained in the core library. If the required field has not been filled in, the submit process is cancelled and the code provides an indicator that a required field has not been filled in. For one embodiment, an incomplete required field indicator is implemented as a pop-up window on the client DPS.
- the focus is then set to the required field that was not filled in. This process of determining required fields and whether or not they have been filled in is repeated until all required fields are completed. [0092] At operation 732, if the required data input field is complete, a determination is made if there are other fields to validate. [0093] At operation 735, the RDTE remote application form is submitted from the client DPS to the server DPS via the cloud. Because the data has been validated for user-input data type and required field completion, the submittal process will not have to be repeated as is typical in prior art systems.
- Embodiments of the invention may be applied to reduce the amount of required data transmitted between the server DPS and the client DPS for a remote application while maintaining complete functionality.
- the server DPS transmits a core library of functions, a set of which, known as GMAs, are then used to construct generic objects on the client DPS instead of the server DPS.
- the functions contain information on the physical characteristics of the objects as well as metadata regarding the data type of object to be constructed.
- the core library and various other mini-assemblers are stored on the cache browser of the client DPS. Because there is no installation, the method of such an embodiment avoids breaching client DPS security and is not system specific.
- the core library also includes user interface functions. These functions allow remote application forms to be presented in a much more user-friendly format than typical prior art schemes. For example, prior art schemes may require up to 40 lines of code to open a presentation object (e.g., a window). This restricts a programmer's ability to provide a user friendly look and feel for remote applications.
- the system and method of the invention provides greater flexibility in this area.
- the user interface functions contain a small amount of code that is used to call various HTML presentation objects. This allows a programmer to include a user- friendly "look and feel" without adding significantly to the amount of transmitted data.
- FIG. 8 illustrates an embodiment of a digital processing system that may be used for the server DPS 220, or client DPSs 205a -205d, in accordance with an embodiment of the invention.
- processing system 801 may be a computer or a set top box that includes a processor 803 coupled to a bus 807.
- memory 805, storage 811 , display controller 809, communications interface 813, and input/output controller 815 are also coupled to bus 807.
- Processing system 801 interfaces to external systems through communications interface 813.
- Communications interface 813 may include an analog modem, Integrated Services Digital Network (ISDN) modem, cable modem, Digital Subscriber Line (DSL) modem, a T-1 line interface, a T-3 line interface, an optical carrier interface (e.g. OC-3), token ring interface, satellite transmission interface, a wireless interface or other interfaces for coupling a device to other devices.
- Communications interface 813 may also include a radio transceiver or wireless telephone signals, or the like.
- communication signal 825 is received/transmitted between communications interface 813 and the cloud 830.
- a communication signal 825 may be used to interface processing system 801 with another computer system, a network hub, router or the like.
- communication signal 825 is considered to be machine readable media, which may be transmitted through wires, cables, optical fibers or through the atmosphere, or the like.
- processor 803 may be a conventional microprocessor, such as, for example, but not limited to, an Intel x86 or Pentium family microprocessor, a Motorola family microprocessor, or the like.
- Memory 805 may be a machine-readable medium such as dynamic random access memory (DRAM) and may include static random access memory (SRAM).
- Display controller 809 controls in a conventional manner a display 819, which in one embodiment of the invention may be a cathode ray tube (CRT), a liquid crystal display (LCD), an active matrix display, a television monitor or the like.
- CTR cathode ray tube
- LCD liquid crystal display
- active matrix display a television monitor or the like.
- Storage 811 may include machine-readable media such as, for example, but not limited to, a magnetic hard disk, a floppy disk, an optical disk, a smart card or another form of storage for data.
- storage 811 may include removable media, read-only media, readable/writable media or the like.
- machine readable medium shall be taken to include any medium that is capable of storing data, information or encoding a sequence of instructions for execution by processor 803 to cause processor 803 to perform the methodologies of the present invention.
- machine readable medium shall be taken to include, but is not limited to solid-state memories, optical and magnetic disks, carrier wave signals, and the like.
- the invention includes various operations.
- the operations of the invention may be performed by hardware components or may be embodied in machine-executable instructions as described above. Alternatively, the steps may be performed by a combination of hardware and software.
- the invention may be provided as a computer program product that may include a machine- readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the invention as described above.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2003295680A AU2003295680A1 (en) | 2002-11-18 | 2003-11-17 | A system and method for reducing bandwidth requirements for remote applications by utilizing client processing power |
EP03786880A EP1576483A4 (en) | 2002-11-18 | 2003-11-17 | A system and method for reducing bandwidth requirements for remote applications by utilizing client processing power |
CA002505310A CA2505310A1 (en) | 2002-11-18 | 2003-11-17 | A system and method for reducing bandwidth requirements for remote applications by utilizing client processing power |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/299,260 US8108488B2 (en) | 2002-11-18 | 2002-11-18 | System and method for reducing bandwidth requirements for remote applications by utilizing client processing power |
US10/299,260 | 2002-11-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2004046887A2 true WO2004046887A2 (en) | 2004-06-03 |
WO2004046887A3 WO2004046887A3 (en) | 2005-04-28 |
Family
ID=32324374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2003/037021 WO2004046887A2 (en) | 2002-11-18 | 2003-11-17 | A system and method for reducing bandwidth requirements for remote applications by utilizing client processing power |
Country Status (7)
Country | Link |
---|---|
US (2) | US8108488B2 (en) |
EP (1) | EP1576483A4 (en) |
CN (1) | CN1729461A (en) |
AU (1) | AU2003295680A1 (en) |
CA (1) | CA2505310A1 (en) |
MX (1) | MXPA03002742A (en) |
WO (1) | WO2004046887A2 (en) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8401336B2 (en) | 2001-05-04 | 2013-03-19 | Legend3D, Inc. | System and method for rapid image sequence depth enhancement with augmented computer-generated elements |
US9286941B2 (en) | 2001-05-04 | 2016-03-15 | Legend3D, Inc. | Image sequence enhancement and motion picture project management system |
US8897596B1 (en) | 2001-05-04 | 2014-11-25 | Legend3D, Inc. | System and method for rapid image sequence depth enhancement with translucent elements |
US11037151B1 (en) | 2003-08-19 | 2021-06-15 | Stamps.Com Inc. | System and method for dynamically partitioning a postage evidencing system |
US7571391B2 (en) * | 2003-10-17 | 2009-08-04 | Sap Ag | Selective rendering of user interface of computer program |
US20060143059A1 (en) * | 2004-04-26 | 2006-06-29 | Barry Sandrew | System and method for minimizing transfer of motion picture data manipulated with outsourced labor |
US20040181444A1 (en) * | 2004-04-26 | 2004-09-16 | Sandrew Barry B. | System and method for manipulating motion picture data using labor outsourcing |
US20050240916A1 (en) * | 2004-04-26 | 2005-10-27 | Sandrew Barry B | System and method for distributed project outsourcing |
US8103880B2 (en) * | 2005-06-03 | 2012-01-24 | Adobe Systems Incorporated | Method for communication between computing devices using coded values |
US7975020B1 (en) * | 2005-07-15 | 2011-07-05 | Amazon Technologies, Inc. | Dynamic updating of rendered web pages with supplemental content |
US7975019B1 (en) | 2005-07-15 | 2011-07-05 | Amazon Technologies, Inc. | Dynamic supplementation of rendered web pages with content supplied by a separate source |
US7937715B2 (en) * | 2005-08-25 | 2011-05-03 | International Business Machines Corporation | Mechanism for generating dynamic content without a web server |
US7698321B2 (en) * | 2005-09-30 | 2010-04-13 | At&T Intellectual Property I, L.P. | Methods, systems, and products for updating web content |
CN1955990B (en) * | 2005-10-28 | 2010-09-01 | 深圳市东进通讯技术股份有限公司 | Flow executing method and system of integral telecommunication platform |
US7739589B2 (en) * | 2005-11-02 | 2010-06-15 | International Business Machines Corporation | Extending markup of a browser using a plug-in framework |
US20080033997A1 (en) * | 2006-08-04 | 2008-02-07 | Sap Portals (Israel) Ltd. | Transformation tool for migration of web-based content to portal |
US9794310B2 (en) * | 2007-01-11 | 2017-10-17 | Samsung Electronics Co., Ltd. | Meta data information providing server, client apparatus, method of providing meta data information, and method of providing content |
US20080228773A1 (en) * | 2007-03-14 | 2008-09-18 | Hand Held Products, Inc. | Apparatus and method for data input device |
US20080228927A1 (en) * | 2007-03-15 | 2008-09-18 | Microsoft Corporation | Server directed browsing |
US8064584B2 (en) * | 2007-04-19 | 2011-11-22 | Art Technology Group, Inc. | Method and apparatus for cross channel data processing |
US7941755B2 (en) * | 2007-04-19 | 2011-05-10 | Art Technology Group, Inc. | Method and apparatus for web page co-browsing |
US8775603B2 (en) | 2007-05-04 | 2014-07-08 | Sitespect, Inc. | Method and system for testing variations of website content |
US8290929B2 (en) * | 2007-10-26 | 2012-10-16 | Yahoo! Inc. | Media enhancement mechanism using embed code |
US8635541B2 (en) * | 2007-12-06 | 2014-01-21 | International Business Machines Corporation | Indicating pending asynchronous updates in a graphical user interface (GUI) |
US8887039B2 (en) * | 2008-01-02 | 2014-11-11 | Microsoft Corporation | Web page based program versioning |
US8438295B2 (en) * | 2008-10-14 | 2013-05-07 | Microsoft Corporation | Declarative programming model for modeling and execution of triggers for resource oriented system |
US8490052B2 (en) * | 2008-10-14 | 2013-07-16 | Microsoft Corporation | Declarative programming model for authoring and execution control and data flow for resource oriented system |
US8533666B2 (en) * | 2008-10-17 | 2013-09-10 | Microsoft Corporation | Interactive design environments to visually model, debug and execute resource oriented programs |
US8412802B2 (en) * | 2009-02-11 | 2013-04-02 | American Express Travel Related Services Company, Inc. | System and method to optimize data communication in a computational network |
US8571201B2 (en) * | 2009-06-23 | 2013-10-29 | Oracle Otc Subsidiary Llc | Cross channel identification in electronic commerce environments |
IL199616A0 (en) * | 2009-06-28 | 2010-05-17 | Chaim Shen Orr | Pattern-free encryption |
US10089797B1 (en) | 2010-02-25 | 2018-10-02 | Stamps.Com Inc. | Systems and methods for providing localized functionality in browser based postage transactions |
US9842308B1 (en) | 2010-02-25 | 2017-12-12 | Stamps.Com Inc. | Systems and methods for rules based shipping |
US8706803B1 (en) | 2010-09-24 | 2014-04-22 | Imdb.Com, Inc. | Client-side generation of preliminary version of network page |
US20120284528A1 (en) * | 2010-10-07 | 2012-11-08 | Stephen Orovitz | Multi-purpose multi-dimensional, variable and multi-key e-mail and data encryption method |
US8495630B2 (en) | 2010-11-03 | 2013-07-23 | International Business Machines Corporation | Transferring objects between virtual machines |
US8730232B2 (en) | 2011-02-01 | 2014-05-20 | Legend3D, Inc. | Director-style based 2D to 3D movie conversion system and method |
US9241147B2 (en) | 2013-05-01 | 2016-01-19 | Legend3D, Inc. | External depth map transformation method for conversion of two-dimensional images to stereoscopic images |
US9282321B2 (en) | 2011-02-17 | 2016-03-08 | Legend3D, Inc. | 3D model multi-reviewer system |
US9288476B2 (en) | 2011-02-17 | 2016-03-15 | Legend3D, Inc. | System and method for real-time depth modification of stereo images of a virtual reality environment |
US9407904B2 (en) | 2013-05-01 | 2016-08-02 | Legend3D, Inc. | Method for creating 3D virtual reality from 2D images |
US9007365B2 (en) | 2012-11-27 | 2015-04-14 | Legend3D, Inc. | Line depth augmentation system and method for conversion of 2D images to 3D images |
US9547937B2 (en) | 2012-11-30 | 2017-01-17 | Legend3D, Inc. | Three-dimensional annotation system and method |
US9007404B2 (en) | 2013-03-15 | 2015-04-14 | Legend3D, Inc. | Tilt-based look around effect image enhancement method |
US9438878B2 (en) | 2013-05-01 | 2016-09-06 | Legend3D, Inc. | Method of converting 2D video to 3D video using 3D object models |
US9575873B2 (en) | 2013-09-13 | 2017-02-21 | Sap Se | Software testing system and method |
WO2015042551A2 (en) * | 2013-09-21 | 2015-03-26 | Oracle International Corporation | Method and system for selection of user interface rendering artifacts in enterprise web applications using a manifest mechanism |
RU2014122128A (en) * | 2014-05-29 | 2015-12-10 | Общество С Ограниченной Ответственностью "Яндекс" | METHOD FOR DISPLAYING THE WEB RESOURCE TO THE USER USING THE BROWSER AND THE ELECTRONIC DEVICE USED IN IT |
US10922474B2 (en) * | 2015-03-24 | 2021-02-16 | Intel Corporation | Unstructured UI |
US10089325B1 (en) * | 2015-06-30 | 2018-10-02 | Open Text Corporation | Method and system for using micro objects |
US9609307B1 (en) | 2015-09-17 | 2017-03-28 | Legend3D, Inc. | Method of converting 2D video to 3D video using machine learning |
US10813572B2 (en) | 2015-12-11 | 2020-10-27 | Electronic Caregiver, Inc. | Intelligent system for multi-function electronic caregiving to facilitate advanced health diagnosis, health monitoring, fall and injury prediction, health maintenance and support, and emergency response |
US20190220727A1 (en) * | 2018-01-17 | 2019-07-18 | SameDay Security, Inc. | Computing Devices with Improved Interactive Animated Conversational Interface Systems |
US11213224B2 (en) | 2018-03-19 | 2022-01-04 | Electronic Caregiver, Inc. | Consumer application for mobile assessment of functional capacity and falls risk |
US11923058B2 (en) | 2018-04-10 | 2024-03-05 | Electronic Caregiver, Inc. | Mobile system for the assessment of consumer medication compliance and provision of mobile caregiving |
US11488724B2 (en) | 2018-06-18 | 2022-11-01 | Electronic Caregiver, Inc. | Systems and methods for a virtual, intelligent and customizable personal medical assistant |
BR112021014734A2 (en) | 2019-02-05 | 2021-09-28 | Electronic Caregiver, Inc. | RISK IDENTIFICATION IN 3D ENVIRONMENT USING REINFORCEMENT LEARNING |
US11113943B2 (en) | 2019-05-07 | 2021-09-07 | Electronic Caregiver, Inc. | Systems and methods for predictive environmental fall risk identification |
CN111078206B (en) * | 2019-11-25 | 2023-03-24 | 贝壳技术有限公司 | Form submitting method and system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272484B1 (en) * | 1998-05-27 | 2001-08-07 | Scansoft, Inc. | Electronic document manager |
US6295645B1 (en) * | 1997-12-22 | 2001-09-25 | Texas Instruments Incorporated | Method and apparatus for providing downloadable functionality to an embedded coprocessor |
US6477550B1 (en) * | 1999-03-16 | 2002-11-05 | Mcafee.Com Corporation | Method and system for processing events related to a first type of browser from a second type of browser |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012083A (en) * | 1996-09-24 | 2000-01-04 | Ricoh Company Ltd. | Method and apparatus for document processing using agents to process transactions created based on document content |
US6292115B1 (en) * | 1997-12-02 | 2001-09-18 | Hughes Electronics Corporation | Data compression for use with a communications channel |
US6782431B1 (en) | 1998-09-30 | 2004-08-24 | International Business Machines Corporation | System and method for dynamic selection of database application code execution on the internet with heterogenous clients |
US6507867B1 (en) | 1998-12-22 | 2003-01-14 | International Business Machines Corporation | Constructing, downloading, and accessing page bundles on a portable client having intermittent network connectivity |
US6792605B1 (en) | 1999-06-10 | 2004-09-14 | Bow Street Software, Inc. | Method and apparatus for providing web based services using an XML Runtime model to store state session data |
US6687745B1 (en) | 1999-09-14 | 2004-02-03 | Droplet, Inc | System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection |
CA2319996A1 (en) | 1999-09-22 | 2001-03-22 | Goodhome.Com | Method and system for generating web pages with information displayed in a carousel |
US6691176B1 (en) * | 1999-11-04 | 2004-02-10 | Microsoft Corporation | Method for managing client services across browser pages |
US6892067B1 (en) * | 1999-12-30 | 2005-05-10 | Nokia Corporation | Script based interfaces for mobile phones |
US6546554B1 (en) | 2000-01-21 | 2003-04-08 | Sun Microsystems, Inc. | Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer |
US6807559B1 (en) | 2000-04-06 | 2004-10-19 | Attachmate Corporation | System and method for applet management |
US20010037405A1 (en) * | 2000-04-07 | 2001-11-01 | Sideek Sinnathambi Mohamed | Wireless web generation from conventional web sites by pattern identification and dynamic content extraction |
US6622168B1 (en) * | 2000-04-10 | 2003-09-16 | Chutney Technologies, Inc. | Dynamic page generation acceleration using component-level caching |
US7379963B1 (en) | 2000-07-14 | 2008-05-27 | Knownow-Delaware | Delivery of any type of information to anyone anytime anywhere |
US7925703B2 (en) * | 2000-12-26 | 2011-04-12 | Numedeon, Inc. | Graphical interactive interface for immersive online communities |
US20020092012A1 (en) * | 2001-01-09 | 2002-07-11 | Shah Alexandre K. | Smart-caching system and method |
US20020143800A1 (en) * | 2001-01-24 | 2002-10-03 | Henrik Lindberg | Model view controller |
WO2002065286A2 (en) | 2001-02-12 | 2002-08-22 | Lto Limited | Client software enabling a client to run a network based application |
US7171443B2 (en) * | 2001-04-04 | 2007-01-30 | Prodigy Communications, Lp | Method, system, and software for transmission of information |
US20020156815A1 (en) * | 2001-04-19 | 2002-10-24 | International Business Machines Corporation | Method and apparatus for the separation of web layout, logic, and data when used in server-side scripting languages |
US7376653B2 (en) * | 2001-05-22 | 2008-05-20 | Reuters America, Inc. | Creating dynamic web pages at a client browser |
US6948151B2 (en) * | 2001-06-29 | 2005-09-20 | International Business Machines Corporation | System and method for dynamic packaging of component objects |
US7870025B2 (en) | 2001-09-20 | 2011-01-11 | Intuit Inc. | Vendor comparison, advertising and switching |
US7107543B2 (en) | 2002-01-25 | 2006-09-12 | Tibco Software Inc. | Single applet to communicate with multiple HTML elements contained inside of multiple categories on a page |
US6683547B2 (en) * | 2002-04-22 | 2004-01-27 | Hughes Electronics Corporation | Method and system for data compession with dictionary pre-load of a set of expected character strings |
US9171049B2 (en) | 2002-06-13 | 2015-10-27 | Salesforce.Com, Inc. | Offline simulation of online session between client and server |
US20040010563A1 (en) * | 2002-06-26 | 2004-01-15 | John Forte | Method for enterprise device naming for storage devices |
WO2004053681A1 (en) * | 2002-12-09 | 2004-06-24 | Michael Zsolt Moricz | Intermediary server for facilitating retrieval of mid-point, state-associated web pages |
US20040119740A1 (en) | 2002-12-24 | 2004-06-24 | Google, Inc., A Corporation Of The State Of California | Methods and apparatus for displaying and replying to electronic messages |
US7269792B2 (en) | 2003-04-24 | 2007-09-11 | International Business Machines Corporation | System and method for generating high-function browser widgets with full addressability |
-
2002
- 2002-11-18 US US10/299,260 patent/US8108488B2/en active Active
-
2003
- 2003-03-28 MX MXPA03002742A patent/MXPA03002742A/en unknown
- 2003-11-17 WO PCT/US2003/037021 patent/WO2004046887A2/en not_active Application Discontinuation
- 2003-11-17 AU AU2003295680A patent/AU2003295680A1/en not_active Abandoned
- 2003-11-17 CN CN200380107291.4A patent/CN1729461A/en active Pending
- 2003-11-17 EP EP03786880A patent/EP1576483A4/en not_active Withdrawn
- 2003-11-17 CA CA002505310A patent/CA2505310A1/en not_active Abandoned
-
2004
- 2004-06-02 US US10/859,766 patent/US20040258089A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295645B1 (en) * | 1997-12-22 | 2001-09-25 | Texas Instruments Incorporated | Method and apparatus for providing downloadable functionality to an embedded coprocessor |
US6272484B1 (en) * | 1998-05-27 | 2001-08-07 | Scansoft, Inc. | Electronic document manager |
US6477550B1 (en) * | 1999-03-16 | 2002-11-05 | Mcafee.Com Corporation | Method and system for processing events related to a first type of browser from a second type of browser |
Also Published As
Publication number | Publication date |
---|---|
US20040258089A1 (en) | 2004-12-23 |
MXPA03002742A (en) | 2004-10-27 |
CN1729461A (en) | 2006-02-01 |
AU2003295680A8 (en) | 2004-06-15 |
US20040109470A1 (en) | 2004-06-10 |
AU2003295680A1 (en) | 2004-06-15 |
WO2004046887A3 (en) | 2005-04-28 |
US8108488B2 (en) | 2012-01-31 |
EP1576483A2 (en) | 2005-09-21 |
EP1576483A4 (en) | 2008-05-07 |
CA2505310A1 (en) | 2004-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108488B2 (en) | System and method for reducing bandwidth requirements for remote applications by utilizing client processing power | |
US6385642B1 (en) | Internet web server cache storage and session management system | |
US7665094B2 (en) | Systems and methods for mobile communication | |
US7818435B1 (en) | Reverse proxy mechanism for retrieving electronic content associated with a local network | |
US6766298B1 (en) | Application server configured for dynamically generating web pages for voice enabled web applications | |
US6701374B2 (en) | Method and apparatus for dynamic proxy insertion in network traffic flow | |
US6691176B1 (en) | Method for managing client services across browser pages | |
US6338096B1 (en) | System uses kernals of micro web server for supporting HTML web browser in providing HTML data format and HTTP protocol from variety of data sources | |
US5875296A (en) | Distributed file system web server user authentication with cookies | |
US7281047B2 (en) | System and method for automatic provision of an application | |
US7114160B2 (en) | Web content customization via adaptation Web services | |
US6327045B1 (en) | Computer network | |
US6490564B1 (en) | Arrangement for defining and processing voice enabled web applications using extensible markup language documents | |
US20080077851A1 (en) | Method and apparatus for inserting jsr 168 portlet content into a j2ee java server page | |
US6944827B2 (en) | System and method of data transmission for computer networks utilizing HTTP | |
JPH10187575A (en) | Client-object api/gateway for enabling oltp through internet | |
US7275086B1 (en) | System and method for embedding a context-sensitive web portal in a computer application | |
US20100229081A1 (en) | Method for Providing a Navigation Element in an Application | |
US20030005048A1 (en) | System and method for integrated web-based software code environment | |
CA2437273C (en) | Network conduit for providing access to data services | |
US9026701B2 (en) | Implementing device support in a web-based enterprise application | |
US20020062340A1 (en) | System for modifying a web page | |
US8117264B1 (en) | Email system | |
US20060106915A1 (en) | Apparatus for providing service in response to user request and method therefor | |
Lang | R as a Web Client–the RCurl package |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2505310 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 0916/CHENP/2005 Country of ref document: IN Ref document number: 916/CHENP/2005 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2003786880 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 20038A72914 Country of ref document: CN |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWP | Wipo information: published in national office |
Ref document number: 2003786880 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: JP |