US9026618B2 - System and method for expanding PC-based software capabilities - Google Patents
System and method for expanding PC-based software capabilities Download PDFInfo
- Publication number
- US9026618B2 US9026618B2 US12/941,831 US94183110A US9026618B2 US 9026618 B2 US9026618 B2 US 9026618B2 US 94183110 A US94183110 A US 94183110A US 9026618 B2 US9026618 B2 US 9026618B2
- Authority
- US
- United States
- Prior art keywords
- database
- functions
- wan
- wan server
- based software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G06F17/30581—
Definitions
- the present disclosure relates generally to software, and in particular, to a system and method for expanding the capabilities of personal computer (PC)-based software.
- PC personal computer
- PC-based software such as Quickbooks®
- Quickbooks® Many software specifically designed for operating on a personal computer (PC) (i.e., PC-based software), such as Quickbooks®, have provided many useful and essential functions for clients. Because of their usefulness, these PC-based software are ubiquitous in many business and personal settings. As such, many clients are so heavily dependent on such PC-based software that switching to a wide area network (WAN) software, such as a web- or internet-based software, becomes very difficult due to effort, time and cost to implement the transition.
- WAN wide area network
- PC-based software have served clients very well, they typically have many drawbacks. For instance, PC-based software typically come with a finite or limited set of functions defined by the software manufacturer. Although some software manufacturers do provide upgrades, add-on modules, and updates to augment their limited set of functions, clients are still tied to the available functions provided by the manufacturers. Some software manufacturers allow client-originated functions, such as macros, to operate with their software. However, usually these client-originated functions are limited and may not achieve the desired functionality for the client.
- PC-based software accessing the software or its database from a remote computer via a WAN, such as the Internet, may be difficult and typically not user-friendly.
- a remote computer may have to set up a virtual private network (VPN) in order to gain access to the PC-based database, while running a copy of the PC-based software on the remote computer.
- VPN virtual private network
- another copy of the software has to be purchased for the remote computer, which could be expensive, especially for the case where there are a lot of remote users needing to access the PC-based database.
- An aspect of the disclosure relates to a system and method for mirroring or synchronizing a PC-based software database with a WAN server database.
- the system comprises a middleware module adapted to detect a change to the PC-based software database caused by a user operating a PC-based client device, and transmit a message indicating the change to a WAN server by way of a WAN.
- the WAN server modifies or updates the WAN server database based on the indicated change. In this manner, the WAN server database and the PC-based database may be synchronized.
- the system comprises a WAN server adapted to receive a request to change a WAN server database by way of a WAN, modify or update the WAN server database based on the requested change, and transmit a message indicating the change to a middleware module by way of the WAN.
- the middleware module then updates a PC-based software database based on the change.
- the WAN server database and the PC-based database may be synchronized.
- a WAN server associated with the WAN server database may be configured to implement substantially the same functions as the software associated with the PC-based software database.
- a user operating a web client device may access the functions provided by the WAN server and operate on the WAN server database as if the user was running the software on a PC-based client device and operating on the PC-based software database.
- the WAN server may be further adapted to assign a collision-prevention code to a database object to prevent inconsistent modifications to the object by multiple users.
- Another aspect of the disclosure relates to configuring the WAN server not only with substantially the same functions as that of a PC-based software, but providing additional functionality in order to effectively expand the capabilities of the PC-based software. For example, functions related to improved security access, data object traceability, revisions, approvals, messages (e.g., alerts), and data analysis may be effectively added to a PC-based software that lacks those functions. It shall be understood that these are some examples of functions that may be added to the limited set of functions typically associated with a PC-based software. Of course, a multitude of other distinct functions may be added.
- a WAN server may be configured to integrate distinct databases, such as a pair of distinct PC-based software databases, a PC-based software database with a WAN-based database, or a pair of distinct WAN-based databases.
- a WAN server receives information related to a modification made to a first distinct database by way of a WAN, optionally translates the modification information into a format associated with a second distinct database, and transmits the re-formatted information to the second distinct database.
- the WAN server operates as a relay device in order to relay modification information back and forth between two distinct databases in order to synchronize the databases.
- a WAN server receives information related to a modification to a first distinct database by way of a WAN, receives information related to a modification to a second distinct database by way of the WAN, and updates or modifies a WAN server database based on the modifications to the first and second distinct databases.
- the WAN server may translate one or both of the modifications into a format associated with the WAN server database.
- the WAN server operates to integrate information from distinct databases into a single database.
- FIG. 1A illustrates a block diagram of an exemplary system for expanding the capabilities of a PC-based software in accordance with an aspect of the disclosure.
- FIG. 1B illustrates a block diagram of another exemplary system for expanding the capabilities of a PC-based software in accordance with another aspect of the disclosure.
- FIG. 2A illustrates a flow diagram of an exemplary method of synchronizing a PC-based software database with a WAN server database in accordance with another aspect of the disclosure.
- FIG. 2B illustrates a flow diagram of an exemplary method of synchronizing a WAN server database with a PC-based software database in accordance with another aspect of the disclosure.
- FIG. 2C illustrates a flow diagram of an exemplary method of preventing collision of actions with respect to a database object in accordance with another aspect of the disclosure.
- FIG. 3A illustrates a flow diagram of an exemplary method of processing a requested function in accordance with another aspect of the disclosure.
- FIG. 3B illustrates a flow diagram of another exemplary method of processing a requested function in accordance with another aspect of the disclosure.
- FIG. 4 illustrates a flow diagram of an exemplary security access method as an example of an expansion function in accordance with another aspect of the disclosure.
- FIG. 5 illustrates a flow diagram of an exemplary method of generating an events log with respect to a database object as an example of another expansion function in accordance with another aspect of the disclosure.
- FIG. 6 illustrates a flow diagram of an exemplary method of generating a revisions log with respect to a database object as an example of another expansion function in accordance with another aspect of the disclosure.
- FIG. 7 illustrates a flow diagram of an exemplary method of approving an attempted action with respect to a database object as an example of another expansion function in accordance with another aspect of the disclosure.
- FIG. 8 illustrates a flow diagram of an exemplary method of generating and providing messages with respect to a database as an example of another expansion function in accordance with another aspect of the disclosure.
- FIG. 9 illustrates a flow diagram of an exemplary method of generating an analysis report with respect to a database as an example of another expansion function in accordance with another aspect of the disclosure.
- FIG. 10A illustrates a block diagram of an exemplary system for integrating a pair of PC-based software databases in accordance with another aspect of the disclosure.
- FIG. 10B illustrates a flow diagram of an exemplary method for integrating a pair of PC-based software databases in accordance with another aspect of the disclosure.
- FIG. 10C illustrates a flow diagram of another exemplary method for integrating a pair of PC-based software databases in accordance with another aspect of the disclosure.
- FIG. 11A illustrates a block diagram of an exemplary system for integrating a PC-based software database with a WAN-based software database in accordance with another aspect of the disclosure.
- FIG. 11B illustrates a flow diagram of an exemplary method for integrating a PC-based software database with a WAN-based software database in accordance with another aspect of the disclosure.
- FIG. 11C illustrates a flow diagram of an exemplary method for integrating a WAN-based software database with a PC-based software database in accordance with another aspect of the disclosure.
- FIG. 11D illustrates a flow diagram of another exemplary method for integrating a PC-based software database with a WAN-based software database in accordance with another aspect of the disclosure.
- FIG. 12A illustrates a block diagram of an exemplary system for integrating a pair of WAN-based software databases in accordance with another aspect of the disclosure.
- FIG. 12B illustrates a flow diagram of an exemplary method for integrating a pair of WAN-based software databases in accordance with another aspect of the disclosure.
- FIG. 12C illustrates a flow diagram of another exemplary method for integrating a pair of WAN-based software databases in accordance with another aspect of the disclosure.
- FIG. 13 illustrates a block diagram of an exemplary device in accordance with another aspect of the disclosure.
- FIG. 1A illustrates a block diagram of an exemplary system 100 for expanding the capabilities of a PC-based software in accordance with an aspect of the disclosure.
- the system 100 facilitates the expansion of functions of a PC-based software, provides for web- or internet access of data associated with the PC-based database, and further provides for redundancy of the PC-based database.
- the system 100 comprises a wide area network (WAN) 102 , such as the Internet, a WAN server 104 coupled to the WAN 102 , and a WAN server database 106 coupled to the WAN server 104 .
- the system 100 further comprises a middleware module 110 coupled to the WAN 102 , a PC-based software (SW) client device 112 coupled to the middleware module 110 , and a PC-based SW database 114 coupled to the PC-based SW client device 112 .
- the system 100 may also include one or more web client devices, for example, such as web client device 120 , coupled to the WAN 102 for interacting with the WAN server 104 as well as accessing the WAN server database 106 using the WAN server 104 .
- the middleware module 110 and WAN server 104 operate to synchronize or mirror the PC-based SW database 114 with the WAN server database 106 .
- This may be accomplished by the middleware module 110 monitoring for changes in the PC-based SW database 114 , providing the detected changes to the WAN server 104 via the WAN 102 , and the WAN server 104 updating the WAN server database 106 based on the changes.
- this may also be accomplished by the WAN server 104 monitoring for changes in the WAN server database 106 , providing the detected changes to the middleware module 110 via the WAN 102 , and the middleware module 110 updating the PC-based SW database 114 based on the changes.
- the WAN server 104 may be configured to implement substantially the same functions provided by the PC-based software operating on the client device 112 .
- a user operating web client device 120 may access the functions provided by the WAN server 104 and the data stored in the WAN server database 106 via the WAN 102 , and achieve substantially the same results as a user accessing the PC-based SW client device 112 and the PC-based SW database.
- This is due to the mirroring or synchronization of the PC- and WAN-based databases 114 and 106 , as well as the WAN server 104 providing substantially the same functions as the PC-based SW client device 112 .
- the system 100 thus provides for the expansion of the PC-based SW system into a web-based SW system.
- the system 100 may be configured to operate much faster than the PC-based system by itself.
- the WAN server 104 may be an up-to-date performing server with processing capabilities much greater than the processing capabilities of the PC-based SW client device 112 .
- a user accessing the functionality of the WAN server 104 may observe much faster speeds than another user accessing the functionality of the PC-based SW client device 112 .
- An additional benefit of the WAN server 104 is that it protects the PC-based database 114 by facilitating more usage (e.g., by multiple users) of the PC-based software via the WAN server 104 instead of via the PC-based client device 112 . In this way, the PC-based client device 112 and database 114 may not be corrupted by traffic overload or other adverse impact due to over usage.
- the system 100 may be configured to provide additional functions beyond the set provided by the PC-based software.
- the WAN server 104 may include substantially the same functions as that of the PC-based SW client device 112 . As discussed above, this is to ensure that a user using the web client device 120 is able to perform the same operations as a user of the PC-based SW client device 112 .
- the WAN server 104 may include additional functions to enhance the capabilities of the PC-based software.
- a user of the web client device 120 may access these additional functions provided by the WAN server 104 via the WAN 102 .
- a user of the PC-based SW client device 112 may access these additional functions provided by the WAN server 104 via the middleware module 110 and WAN 102 .
- FIG. 1B illustrates a block diagram of another exemplary system 150 for expanding the capabilities of a PC-based software in accordance with another aspect of the disclosure.
- the system 150 is similar to that of system 100 , and includes many of the same elements as indicated by the same reference numbers.
- the PC-based SW client device 112 , the PC-based SW database 114 , and the middleware module 110 are coupled to a local area network (LAN) 152 which, in turn, is coupled to the WAN 102 .
- LAN local area network
- the operations of the system 150 are basically the same as that of system 100 , except that some of the communications propagate through the LAN 152 .
- FIG. 2A illustrates a flow diagram of an exemplary method 200 of synchronizing a PC-based software database with a WAN server database in accordance with another aspect of the disclosure.
- the middleware module 110 and the WAN server 104 operate together to ensure that the PC-based SW database 114 is synchronized with the WAN server database 106 .
- the middleware module 110 and the WAN server 104 responds to a change to the PC-based SW database 114 made by a user of the PC-based SW client device 112 .
- the synchronization method 200 described herein may be configured to operate very fast, such as by eliminating, minimizing or providing low-latency queuing of the updates to the WAN server database for synchronization purposes.
- the middleware module 110 monitors for a change in the PC-based SW database 114 (block 202 ).
- the middleware module 110 may monitor for changes in the PC-based SW database 114 in many distinct manners, such as in a periodic manner, other time-based manner, in response to a signal indicating a change to the database sent by the PC-based SW client device 112 or database 114 , or by other manners.
- the middleware module 110 determines whether a change has occurred to the PC-based SW database 114 . If no change has been detected, the middleware module 110 continues to monitor the PC-based SW database 114 in accordance with block 202 .
- the middleware module 110 detects a change in the PC-based SW database 114 in accordance with block 204 , the middleware module 110 captures the change to the PC-based SW database (block 206 ). The middleware module 110 then sends a message including the change to the PC-based SW database 114 to the WAN server 104 by way of the WAN 102 (block 208 ).
- the middleware module 110 may use any one or many messaging protocols for the message, such as Extensible Messaging and Presence Protocol (XMPP) such as Jabber open-source, Advance Message Queuing Protocol (AMQP), and others.
- XMPP Extensible Messaging and Presence Protocol
- AMQP Advance Message Queuing Protocol
- the WAN server 104 After the WAN server 104 receives the message, the WAN server updates the WAN server database 106 based on the change in order to synchronize the databases 106 and 114 . (block 210 ). It shall be understood that the steps of the method 200 , or of any other methods described herein, need not be performed in the order in which illustrated herein.
- FIG. 2B illustrates a flow diagram of an exemplary method 250 of synchronizing a WAN server database with a PC-based software database in accordance with another aspect of the disclosure.
- the method 250 is another example of a technique implemented by the WAN server 104 and middleware module 110 to synchronize the WAN server database 106 with the PC-based SW database 114 .
- the WAN server 104 and middleware module 110 respond to a change to the WAN server database 106 made by a user of the web client device 120 .
- the synchronization method 250 described herein may be configured to operate very fast, such as by eliminating, minimizing or providing low-latency queuing of the updates to the PC-based SW database for synchronization purposes.
- the WAN server 104 receives a change request from the web client device via the WAN 102 (block 252 ).
- the change request may have been generated and transmitted by, for example, a user of the web client device 120 interacting with one or more static or dynamic webpages generated by the WAN server 104 .
- the WAN server 104 updates the WAN server database 106 based on the requested change (block 254 ).
- the WAN server 104 then sends a message including the change to the middleware module 110 by way of the WAN 102 (block 256 ).
- the WAN server 104 may use any of a number of messaging protocols to configure the message, such as XMPP, AMQP or other, as discussed above.
- the WAN server 104 may be further configured to detect the presence or active state of the middleware module 110 so that, in case the middleware module 110 is not present or active, the update to the PC-based SW database may be queued until the middleware module is present or becomes active.
- the middleware module 110 updates the PC-based SW database 114 based on the change in order to synchronize the databases 106 and 114 . (block 258 ).
- the middleware module 110 may update the PC-based SW database 114 directly or by instructing the PC-based SW device 112 to do so.
- FIG. 2C illustrates a flow diagram of an exemplary method 270 of preventing collision of actions with respect to a database object in accordance with another aspect of the disclosure.
- the method 270 entails the WAN server assigning a collision-prevention code to a database object being accessed, and provide the object and the code to the accessing user. If the user attempts to modify the object, the modification and code are provided to the WAN server. The WAN server then compares the received code with the current collision-prevention code, and if they match, allows the change to take place. If the codes do not match, which may mean that another user accessed the same object and has already implemented a change to the object, the WAN server denies the requested change. In such a case, the first user would have to access the object again in order to receive the current collision prevention code from the WAN server, and attempt to modify the object using the new code.
- a user accesses an object in the database (block 272 ).
- the database is referred to herein generally, and could be either the PC-based SW database or the WAN server database.
- the WAN server 104 assigns a collision-prevention code to the accessed object and provides it to the user (block 274 ).
- the user then transmits a request to modify the object along with the collision-prevention code to the WAN server 104 (block 276 ).
- the WAN server 104 compares the received code with a current collision-prevention code associated with the object (block 278 ).
- the WAN server 104 determines that the received code is not the same as the current collision-prevention code, the WAN server denies the requested change to the object and notifies the user of such (block 282 ). This may be the case where another user has accessed and modified the object, and thus, the current code has changed since the time the first user accessed the object. If, on the other hand, the WAN server 104 determines in block 280 that the received code is the same as the current collision-prevention code, the WAN server updates the object based on the requested change (block 284 ). The WAN server 104 assigns a new collision-prevention code to the object (block 286 ). In this way, the WAN server 104 prevents inconsistent modifications to the same object by multiple users.
- FIG. 3A illustrates a flow diagram of an exemplary method 300 of processing a requested function in accordance with another aspect of the disclosure.
- the WAN server 104 may be configured to implement substantially the same functions as that of the PC-based SW client device 112 . And, also as discussed above, the WAN server 104 may be configured to implement additional functions beyond the capabilities of the PC-based SW client device 112 .
- a user of the PC-based SW client device 112 is requesting a function, which is processed in accordance as to whether the function may be executed by the PC-based SW client device 112 or may be implemented by the WAN server 104 .
- a user sends a request to the PC-based SW client device 112 to perform a selected function (block 302 ). This may be the case where the user is operating the PC-based software running on the PC-based SW client device 112 , and activates a soft button to request the execution of the selected function.
- the middleware module 110 monitors and subsequently detects the selected function (block 304 ). If the middleware module 110 detects that the selected function is able to be executed by the PC-based SW client device 112 per block 306 , the middleware module 110 allows the PC-based SW client 112 to perform the selected function (block 320 ).
- the middleware module 110 detects whether the PC-based SW database 114 has changed based on the execution of the selected function (block 322 ). If the execution of the selected function does not result in a change in the PC-based SW database 114 , the middleware module 110 does not perform a synchronization operation, and the PC-based SW client device 112 may display information based on the execution of the selected function (block 326 ). This may be the case where the selected function was merely to access and display data from the PC-based SW database 114 .
- the middleware module 110 and WAN server 104 perform an operation to synchronize the databases 114 and 106 as per method 200 previously discussed (block 324 ). The method 300 then proceeds to block 326 .
- the middleware module 110 determines that the requested function may only be implemented by the WAN server 104 , the middleware module sends the selected function request to the WAN server 104 by way of the WAN 102 (block 310 ). Similarly, as discussed above, the middleware module 110 may configure the request using any of a number of messaging protocols, such as XMPP, AMQP or other. After receiving the request, the WAN server 104 performs the selected function (block 312 ).
- the WAN server 104 determines whether the WAN server database 106 has changed due to the executed function (block 314 ). If the WAN server database 106 has not changed, the WAN server sends information to the PC-based SW client 112 by way of the WAN 102 and middleware module 110 based on the execution of the function (block 318 ). The WAN server 104 may send the information using one of many messaging protocols, as previously discussed. If, on the other hand, the WAN server 104 determines that the WAN server database 106 has changed because of the executed function, the WAN server 104 and middleware module 110 perform a synchronization operation as per method 250 previously discussed (block 316 ). The method 300 then proceeds to block 318 .
- FIG. 3B illustrates a flow diagram of another exemplary method 350 of processing a requested function in accordance with another aspect of the disclosure.
- the selected function was requested by a user of the PC-based SW client device 112 .
- the selected function is requested by a user of the web client device 120 .
- a user of the web client device 120 sends a request to the WAN server 104 by way of the WAN 102 to perform a selected function (block 352 ).
- the selected function request may have been generated and transmitted by, for example, the user of the web client device 120 interacting with one or more static or dynamic webpages generated by the WAN server 104 .
- the WAN server 104 After receiving the request, the WAN server 104 performs the selected function (block 354 ).
- the WAN server 104 determines whether the WAN server database 106 has changed because of the executed function (block 356 ).
- the WAN server 104 then sends information to the web client device 120 by way of the WAN 102 based on the execution of the selected function (block 360 ). If, on the other hand, it is determined that the WAN server database 106 has changed because of the executed function, the WAN server 104 and middleware module 110 perform a synchronization operation as per method 250 previously discussed (block 358 ). The method 300 then proceeds to block 360 .
- FIG. 4 illustrates a flow diagram of an exemplary security access method 400 as an example of an expansion function in accordance with another aspect of the disclosure.
- the WAN server 104 may be configured to perform substantially the same functions as the PC-based SW client device 112 operating the PC-based software.
- the WAN server 104 may be configured to provide functions beyond the capabilities of the PC-based software.
- some accounting PC-based software such as Quickbooks®, may not provide a security access to its database.
- the exemplary method 400 may serve as an additional function performed by the WAN server 104 that supplements the functions provided by a PC-based software.
- a user attempts to log into the system for accessing any one of the databases 114 and 106 (block 402 ). For instance, such user may attempt to access the system using the PC-based SW client device 112 , or may attempt to access the system using the web client device 120 .
- the WAN server 104 receives the user credentials (block 404 ). For example, if the user is operating the PC-based SW client device 112 , the user credentials may be captured by the middleware module 110 and provided to the WAN server 104 by way of the WAN 102 . If the user is operating the web client device 120 , the user credential may be provided to the WAN server 104 by way of the WAN 102 .
- the WAN server 104 determines whether the user is authorized to access the databases 114 and/or 106 based on the user credential (block 406 ). If the WAN server 104 determines that the user is not authorized to access the databases 114 and/or 106 , the WAN server 104 denies or prevents access to the databases 114 and/or 106 by the user (block 408 ). On the other hand, if the WAN server 104 determines that the user is authorized to access the databases 114 and/or 106 , the WAN server 104 allows the user to access the databases 114 and/or 106 (block 410 ). Again, this is an example of adding a security access function to a PC-based software that lacks one.
- FIG. 5 illustrates a flow diagram of an exemplary method 500 of generating an events log with respect to a database object as an example of another expansion function in accordance with another aspect of the disclosure.
- the method 500 is another example of supplementing a PC-based software with a function for generating a log based on actions performed with respect to a database object in any of the databases 106 and 114 .
- the action may include, for example, creating the object, accessing the object, editing the object, deleting the object, copying information from the object, and others.
- a user performs an action with respect to an object in any of the databases 106 and 114 (block 502 ). Such user may perform the action with respect to the object using the PC-based SW client device 112 or the web client device 120 .
- the WAN server 104 receives the information regarding the action (block 504 ). If the user is accessing the object in the PC-based SW database 114 , the middleware module 110 may provide the WAN server 104 the information by way of the WAN 104 . If the user is using either the PC-based SW client device 112 or WEB client 120 to perform the action with respect to the object in the WAN server database 106 , the WAN server 104 directly determines the action information. The WAN server 104 then creates or updates a log associated with the object based on the action information (block 506 ). The log may be accessible to a user, such as an authorized user, to keep track of actions with respect to the object for security or other reasons.
- FIG. 6 illustrates a flow diagram of an exemplary method 600 of generating a revisions log with respect to a database object as an example of another expansion function in accordance with another aspect of the disclosure.
- the method 600 is yet another example of supplementing a PC-based software with a function for generating a revisions log with respect to an existing object in any of the databases 106 and 114 .
- a user accesses an existing object in any of the databases 106 and 114 (block 602 ).
- the user may access the object using the PC-based client device 112 or the web client device 120 .
- the user then sends a request to save the object in the database (block 604 ).
- the WAN server 104 determines whether the object has changed (block 606 ). If the object has not change, the WAN server 104 may not perform any revision log operation with respect to the object.
- the WAN server 104 saves the object as it existed prior to the change as a revision (block 608 ), updates a revision log associated with the object (block 610 ), and saves the modified object in the database (block 612 ).
- FIG. 7 illustrates a flow diagram of an exemplary method 700 of approving an attempted action with respect to a database object as an example of another expansion function in accordance with another aspect of the disclosure.
- the method 700 is yet another example of supplementing a PC-based software with a function for providing an approval procedure for requested actions with respect to a database object.
- a first user sends an approval criteria to the WAN server 104 (block 702 ).
- the first user may send the approval criteria using the PC-based client device 112 or the web client device 120 .
- the approval criteria may identify a database object which is associated with an approval procedure, what one or more actions with respect to the database object require approval, and/or which users (e.g., the first user), may approve the one or more actions taken upon the database object.
- a second user attempts to perform an action with regard to the database object (block 704 ).
- the WAN server 104 determines whether to send an approval request based on an approval criteria (if any) for the database object (block 706 ).
- the WAN server 104 determines that approval is not required, the WAN server allows the action with regard to the object to proceed (block 714 ). If, on the other hand, the WAN server 104 determines that approval is required in block 708 , the WAN server sends an approval request based on the approval criteria (block 710 ). The WAN server 104 then determines the status of the approval request in block 712 . If the approval has been received, the WAN server 714 allows the action with regard to the object to proceed (block 714 ). If the approval request is denied or not received within a defined time period (timed out), the WAN server 104 does not allow the action with regard to the object to proceed (block 716 ).
- FIG. 8 illustrates a flow diagram of an exemplary method 800 of generating and providing messages with respect to a database as an example of another expansion function in accordance with another aspect of the disclosure.
- the method 800 is yet another example of supplementing a PC-based software with a function for providing messages with respect to changes to the database.
- a user provides a message criteria to the WAN server 104 using, for example, either the PC-based client device 112 or the web client device 120 (block 802 ).
- the message criteria may specify one or more conditions for sending a message, such as an alert, based on a change in the database, and which one or more users to send the message.
- the WAN server 104 then monitors the database to determine whether to send a message based on the message criteria (block 804 ). If the WAN server 104 determines that the message criteria has not been met in block 806 , it continues to monitor the database per block 804 . If, on the other hand, the WAN server 104 determines that the message criteria has been met in block 806 , the WAN server 104 sends the message in accordance with the message criteria (block 808 ).
- FIG. 9 illustrates a flow diagram of an exemplary method 900 of generating an analysis report with respect to a database as an example of another expansion function in accordance with another aspect of the disclosure.
- the method 900 is yet another example of supplementing a PC-based software with a function for providing an analysis report based on data in the database.
- a user provides an analysis criteria to the WAN server 104 using, for example, either the PC-based client device 112 or the web client device 120 (block 902 ).
- the analysis criteria may specify the data or object in the database upon which the analysis is to be performed, the particular one or more analyses to be performed on the data or objects, and to which user the analysis report is to be provided.
- the WAN server 104 then analyzes the data or object in the database based on the analysis criteria (block 904 ).
- the WAN server 104 then sends the result of the analysis or analysis report based on the analysis criteria (block 906 ).
- FIG. 10A illustrates a block diagram of an exemplary system 1000 for integrating a pair of PC-based software databases in accordance with another aspect of the disclosure.
- the mirroring or synchronization of a PC-based SW database and a WAN-based SW database allows for further expansion of the capabilities of the PC-based software.
- a multitude of distinct functions may be added to the PC-based software by implementing these functions in a WAN server.
- the WAN server may further assists in the integration or combining of distinct databases.
- the WAN server may be configured to integrate or combine distinct PC-based SW databases.
- the system 1000 comprises a WAN 1002 , a WAN server 1004 coupled to the WAN 1002 , and a WAN server database 1006 coupled to the WAN server 1004 .
- the system 1000 comprises a first middleware module 1010 coupled to the WAN 1002 , a first PC-based SW client device 1012 coupled to the first middleware module 1010 , and a first PC-based SW database 1014 coupled to the first PC-based SW client device 1012 .
- the system 1000 comprises a second middleware module 1020 coupled to the WAN 1002 , a second PC-based SW client device 1022 coupled to the second middleware module 1020 , and a second PC-based SW database 1024 coupled to the second PC-based SW client device 1022 .
- the WAN server 1004 may serve to integrate the first PC-based SW database 1014 with the second PC-based SW database 1024 by receiving changes to the first PC-based SW database 1014 , translating those changes to a format recognized by the second PC-based SW database 1024 (if the latter uses a different format), and sending the re-formatted change to the second PC-based SW database 1024 .
- This operation may also work in the opposite direction.
- the WAN server 1004 synchronizes or mirrors the first PC-based database 1014 with the second PC-based SW database 1024 .
- the WAN server 1004 may serve to integrate the first PC-based SW database 1014 with the second PC-based SW database 1024 by receiving changes to the first and second PC-based SW databases, and integrating the changes into the WAN server database 1006 .
- the WAN server 1004 synchronizes or mirrors the PC-based databases 1014 and 1024 with the WAN server database 1006 such that the database 1006 includes data from both PC-based databases 1014 and 1024 .
- FIG. 10B illustrates a flow diagram of an exemplary method 1040 for integrating a pair of PC-based software databases in accordance with another aspect of the disclosure.
- the method 1040 is an example of how the WAN server 1004 synchronizes or mirrors the first PC-based database 1014 with the second PC-based SW database 1024 .
- a user using the first PC-based SW device 1012 modifies the first PC-based SW database 1014 (block 1042 ).
- the first middleware module 1010 detects the modification to the first PC-based SW database 1014 (block 1044 ).
- the first middleware module 1010 then sends a message including the modification details to the WAN server 1004 by way of the WAN 1002 (block 1046 ).
- the first middleware module 1010 may send this message to the WAN server 1004 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the WAN server 1004 translates the change or modification to the format associated with the second PC-based SW database 1024 (block 1048 ).
- the WAN server 1004 then sends message including the re-formatted change or modification to the second middleware module 1020 by way of the WAN 1002 (block 1050 ).
- the WAN server 1004 may send this message to the second middleware module 1020 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the second middleware module 1020 then updates the second PC-based SW database 1024 based on the change (block 1052 ).
- This operation may be implemented in the opposite direction so that both the first and second PC-based databases 1014 and 1024 are synchronized. It shall be understood that the re-formatting of the modification may occur at the first or second middleware module, instead of at the WAN server 1004 .
- FIG. 10C illustrates a flow diagram of another exemplary method 1060 for integrating a pair of PC-based software databases in accordance with another aspect of the disclosure.
- the method 1060 is an example of how the WAN server 1004 synchronizes or mirrors both the first and second PC-based databases 1014 and 1024 to the WAN server database 1006 , such that the WAN server database 1006 comprises data from both the first and second PC-based SW databases.
- a first user using the first PC-based SW device 1012 modifies the first PC-based SW database 1014 (block 1070 ).
- the first middleware module 1010 detects the modification to the first PC-based SW database 1014 (block 1072 ).
- the first middleware module 1010 then sends a message including the modification details to the WAN server 1004 by way of the WAN 1002 (block 1074 ).
- the first middleware module 1010 may send this message to the WAN server 1004 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- a second user using the second PC-based SW device 1022 modifies the second PC-based SW database 1024 (block 1080 ).
- the second middleware module 1020 detects the modification to the second PC-based SW database 1024 (block 1082 ).
- the second middleware module 1020 then sends a message including the modification details to the WAN server 1004 by way of the WAN 1002 (block 1084 ).
- the second middleware module 1020 may send this message to the WAN server 1004 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the WAN server 1004 may translate the change or modification into a format associated with the WAN server database 1006 (block 1076 ). Similarly, after receiving the message from the second middleware module 1020 , the WAN server 1004 may translate the change or modification into a format associated with the WAN server database 1006 (block 1086 ). It shall be understood that the re-formatting of one or both of the modifications may occur respectively at the first or second middleware module, instead of at the WAN server 1004 . The WAN server 1004 then integrates the changes or modification into the WAN server database 1006 (block 1090 ). In this way, the WAN server database 1006 may be synchronized with the combined first and second PC-based SW databases 1014 and 1024 .
- FIG. 11A illustrates a block diagram of an exemplary system 1100 for integrating a PC-based software database with a WAN-based software database in accordance with another aspect of the disclosure.
- the WAN server may be configured to integrate or combine databases of distinct types, such as a PC-based SW database and a WAN server database.
- the system 1100 comprises a WAN 1102 , a first WAN server 1104 coupled to the WAN 1102 , and a first WAN server database 1106 coupled to the WAN server 1104 .
- the system 1100 also comprises a second WAN server 1122 coupled to the WAN 1102 , a second WAN server database 1124 coupled to the second WAN server 1122 , and a WEB client device 1130 coupled to the WAN 1102 .
- the system 1100 comprises a middleware module 1110 coupled to the WAN 1102 , a PC-based SW client device 1112 coupled to the middleware module 1110 , and a PC-based SW database 1114 coupled to the PC-based SW client device 1112 .
- the first WAN server 1104 may serve to integrate the PC-based SW database 1114 with the second WAN server database 1124 by receiving changes to the PC-based SW database 1114 , translating those changes to a format recognized by the second WAN server database 1124 (if the latter uses a different format), and sending the re-formatted change to the second WAN server database 1124 .
- the first WAN server 1104 may serve to integrate the WAN server database 1124 with the PC-based SW database 1114 by receiving changes to the WAN server database 1124 , translating those changes to a format recognized by the PC-based SW database 1114 (if the latter uses a different format), and sending the re-formatted change to the PC-based SW database 1114 .
- the first WAN server 1104 synchronizes both the PC-based database 1114 and the second WAN server database 1124 .
- the first WAN server 1104 may serve to integrate the PC-based SW database 1114 with the second WAN server database 1124 by receiving changes to the PC-based SW and second WAN server databases, and integrating the changes into the WAN server database 1106 .
- the first WAN server 1104 synchronizes or mirrors the databases 1114 and 1124 with the WAN server database 1106 such that the database 1106 includes data from both databases 1114 and 1124 .
- FIG. 11B illustrates a flow diagram of an exemplary method 1140 for integrating a PC-based software database with a WAN server database in accordance with another aspect of the disclosure.
- the method 1140 is an example of how the first WAN server 1104 synchronizes or mirrors the PC-based SW database 1114 with the second WAN server database 1124 .
- a user using the PC-based SW device 1112 modifies the PC-based SW database 1114 (block 1142 ).
- the middleware module 1110 detects the modification to the PC-based SW database 1114 (block 1144 ).
- the middleware module 1110 then sends a message including the modification details to the first WAN server 1104 by way of the WAN 1102 (block 1146 ).
- the middleware module 1110 may send this message to the first WAN server 1104 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the first WAN server 1104 translates the change or modification to the format associated with the second WAN server database 1124 (block 1148 ).
- the first WAN server 1104 then sends message including the re-formatted change or modification to the second WAN server 1122 by way of the WAN 1102 (block 1150 ). It shall be understood that the re-formatting of the modification may occur at the first middleware module or the second WAN server, instead of at the WAN server 1004 .
- the first WAN server 1104 may send this message to the second WAN server 1122 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the second WAN server 1122 then updates the second WAN server database 1124 based on the change (block 1152 ).
- the method 1140 synchronizes the PC-based SW database 1114 to the second WAN server database 1124 .
- FIG. 11C illustrates a flow diagram of an exemplary method 1160 for integrating a WAN server database with a PC-based SW database in accordance with another aspect of the disclosure.
- the method 1160 is an example of how the first WAN server 1104 synchronizes or mirrors the second WAN server database 1124 with the PC-based SW database 1114 .
- a user using the web client device 1130 modifies the second WAN server database 1124 via the second WAN server 1122 (block 1162 ). This may be accomplished by the user interacting with one or more webpages provided by the second WAN server 1122 via the WAN 1102 .
- the second WAN server 1122 then sends a message including the modification details to the first WAN server 1104 by way of the WAN 1102 (block 1164 ).
- the second WAN server 1122 may send this message to the first WAN server 1104 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the first WAN server 1104 translates the change or modification to the format associated with the PC-based SW database 1114 (block 1166 ). It shall be understood that the re-formatting of the modification may occur at the second WAN server or middleware module, instead of at the WAN server 1004 .
- the first WAN server 1104 then sends message including the re-formatted change or modification to the middleware module 1110 by way of the WAN 1102 (block 1168 ).
- the first WAN server 1104 may send this message to the middleware module 1110 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the middleware module 1110 updates the PC-based SW database 1114 based on the change (block 1170 ).
- the method 1160 synchronizes the second WAN server database 1124 to the PC-based SW database 1114 .
- FIG. 11D illustrates a flow diagram of another exemplary method 1180 for integrating distinct databases in accordance with another aspect of the disclosure.
- the method 1180 is an example of how the first WAN server 1104 synchronizes or mirrors the PC-based SW database 1114 and the second WAN server database 1124 to the WAN server database 1106 , such that the WAN server database 1106 comprises data from both databases 1114 and 1124 .
- a first user using the PC-based SW device 1112 modifies the PC-based SW database 1114 (block 1182 ).
- the middleware module 1110 detects the modification of the PC-based SW database 1114 (block 1184 ).
- the middleware module 1110 then sends a message including the modification details to the first WAN server 1104 by way of the WAN 1102 (block 1186 ).
- the middleware module 1110 may send this message to the WAN server 1104 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- a second user using the web client device 1130 modifies the second WAN server database 1124 using the second WAN server 1122 (block 1190 ). This may be accomplished by the second user accessing one or more webpages provided by the second WAN server 1122 via the WAN 1102 .
- the second WAN server 1122 then sends a message including the modification or change to the first WAN server 1104 by way of the WAN 1102 (block 1192 ).
- the second WAN server 1122 may send this message to the first WAN server 1124 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the first WAN server 1104 may translate the change or modification into a format associated with the first WAN server database 1106 (block 1192 ). Similarly, after receiving the message from the second WAN server 1122 , the first WAN server 1104 may translate the change or modification into a format associated with the first WAN server database 1106 (block 1194 ). In blocks 1188 and 1194 , it shall be understood that the re-formatting of the modification may occur at the middleware module or the second WAN server, instead of at the first WAN server 1104 . The first WAN server 1104 then integrates the changes or modification into the first WAN server database 1106 (block 1196 ). In this way, the first WAN server database 1106 is synchronized with the combined PC-based SW database 1114 and second WAN server database 1124 .
- FIG. 12A illustrates a block diagram of an exemplary system 1200 for integrating a pair of distinct WAN server databases in accordance with another aspect of the disclosure.
- the system 1200 comprises a WAN 1202 , a first WAN server 1210 coupled to the WAN 1202 , and a first WAN server database 1212 coupled to the first WAN server 1210 .
- the system 1200 also comprises a second WAN server 1204 coupled to the WAN 1202 , and a second WAN server database 1206 coupled to the second WAN server 1204 .
- the system 1200 comprises a third WAN server 1220 coupled to the WAN 1202 , and a third WAN server database 1222 coupled to the third WAN server 1220 .
- the system 1200 comprises first and second web client devices 1230 and 1232 , both coupled to the WAN 1202 .
- the second WAN server 1204 may serve to integrate the first WAN server database 1212 with the third WAN server database 1222 by receiving changes to the first WAN server database 1212 , translating those changes to a format recognized by the third WAN server database 1222 (if the latter uses a different format), and sending the re-formatted change to the third WAN server database 1222 .
- This operation may also work in the opposite direction.
- the second WAN server 1204 synchronizes or mirrors the first WAN server database 1212 with the third WAN server database 1222 .
- the second WAN server 1204 may serve to integrate the first WAN server database 1212 with the third WAN server database 1222 by receiving changes to the first and third WAN server databases, and integrating the changes into the second WAN server database 1206 .
- the second WAN server 1204 synchronizes or mirrors the first and third WAN server databases 1212 and 1222 with the second WAN server database 1206 such that the database 1206 includes data from both databases 1212 and 1222 .
- FIG. 12B illustrates a flow diagram of an exemplary method 1240 for integrating a pair of WAN server databases in accordance with another aspect of the disclosure.
- the method 1240 is an example of how the second WAN server 1204 synchronizes or mirrors the first WAN server database 1212 with the third WAN server database 1222 .
- a user using the first web client device 1230 modifies the first WAN server database 1212 using the first WAN server 1210 (block 1242 ). This may be accomplished by the user accessing one or more webpages provided by the first WAN server via the WAN 1202 .
- the first WAN server 1210 then sends a message including the modification details to the second WAN server 1204 by way of the WAN 1202 (block 1244 ).
- the first WAN server 1212 may send this message to the second WAN server 1204 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the second WAN server 1204 translates the change or modification to the format associated with the third WAN server database 1222 (block 1246 ). It shall be understood that the re-formatting of the modification may occur at the first or third WAN server, instead of at the second WAN server.
- the second WAN server 1204 then sends message including the re-formatted change or modification to the third WAN server 1220 by way of the WAN 1202 (block 1248 ).
- the second WAN server 1204 may send this message to the third WAN server database 1222 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the third WAN server 1220 updates the third WAN server database 1222 based on the change (block 1250 ). This operation may be implemented in the opposite direction so that both the first and third WAN server databases 1212 and 1222 are synchronized.
- FIG. 12C illustrates a flow diagram of another exemplary method 1260 for integrating a pair of WAN server databases in accordance with another aspect of the disclosure.
- the method 1260 is an example of how the second WAN server 1204 synchronizes or mirrors both the first and third WAN server databases 1212 and 1222 to the second WAN server database 1206 , such that the second WAN server database 1206 comprises data from both the first and third WAN server databases.
- a first user using the first web client device 1030 modifies the first WAN server database 1212 using the first WAN server 1210 (block 1270 ). This may be accomplished by the first user accessing one or more webpages provided by the first WAN server 1210 via the WAN 1202 .
- the first WAN server 1210 then sends a message including the modification details to the second WAN server 1204 by way of the WAN 1202 (block 1272 ).
- the first WAN server 1210 may send this message to the WAN server 1204 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- a second user using the second web client device 1232 modifies the third WAN server database 1222 using the third WAN server 1220 (block 1280 ). This may be accomplished by the second user accessing one or more webpages provided by the third WAN server 1220 via the WAN 1202 .
- the third WAN server 1220 then sends a message including the modification details to the second WAN server 1204 by way of the WAN 1202 (block 1284 ).
- the third WAN server 1220 may send this message to the second WAN server 1204 using any one of a number of messaging protocols, such as XMPP, AMQP or other.
- the second WAN server 1204 may translate the change or modification into a format associated with the second WAN server database 1206 (block 1274 ).
- the second WAN server 1204 may translate the change or modification into a format associated with the second WAN server database 1206 (block 1284 ).
- the re-formatting of the modification may occur at the first or third WAN server, instead of at the second WAN server.
- the second WAN server 1204 then integrates the changes or modification into the second WAN server database 1206 (block 1290 ). In this way, the second WAN server database 1206 is synchronized with the combined first and third WAN server databases 1212 and 1232 .
- FIG. 13 illustrates a block diagram of an exemplary device 1300 in accordance with another aspect of the disclosure. All of the devices described herein, such as the middleware module, servers, PC-based client device and web client device may be a processor-based system.
- the exemplary device 1300 is an example of a processor-based system.
- the device 1300 comprises a processor 1302 , a memory 1304 , a network interface 1306 , a user input device 1308 , and a user output device 1310 .
- the processor 1302 performs the intended functions of the device 1300 under the control of software residing in the memory 1304 .
- the memory 1304 which may be any type of computer readable medium such as hard disk, flash memory, EEPROM, CD-ROM, optical disc, and other memory technology, also stores data for processing by the processor 1302 .
- the device 1300 further comprises a network interface 1306 for transmitting and receiving information to and from another device via a network, such as a WAN or LAN as previously described.
- the device 1300 further comprises a user input device 1308 , such as a keyboard, mouse, microphone, etc., coupled to the processor 1302 for allowing a user to provide information and control to the processor 1302 . Additionally, the device 1300 comprises a user output device 1310 , such as a display, speaker, etc. coupled to the processor 1302 for providing information to a user.
- the processor-based device 1300 need not have all of the elements described herein.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (42)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/941,831 US9026618B2 (en) | 2010-11-08 | 2010-11-08 | System and method for expanding PC-based software capabilities |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/941,831 US9026618B2 (en) | 2010-11-08 | 2010-11-08 | System and method for expanding PC-based software capabilities |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120117125A1 US20120117125A1 (en) | 2012-05-10 |
US9026618B2 true US9026618B2 (en) | 2015-05-05 |
Family
ID=46020638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/941,831 Active 2031-12-09 US9026618B2 (en) | 2010-11-08 | 2010-11-08 | System and method for expanding PC-based software capabilities |
Country Status (1)
Country | Link |
---|---|
US (1) | US9026618B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9112870B1 (en) * | 2012-03-28 | 2015-08-18 | Emc Corporation | Processing device having session component with integrated support for message queuing protocol |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140665A1 (en) * | 2005-08-01 | 2008-06-12 | Ido Ariel | Sharing of Data Utilizing Push Functionality and Privacy Settings |
US20090196123A1 (en) * | 2008-02-05 | 2009-08-06 | Rajesh Gautam | Collaborative Appointment and Reminder System |
US20090248695A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Online and offline applications |
US20090249224A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Simultaneous collaborative review of a document |
US20100106744A1 (en) * | 2008-10-23 | 2010-04-29 | Microsoft Corporation | Conflict prevention for peer-to-peer replication |
US20100257451A1 (en) * | 2009-04-05 | 2010-10-07 | Hbr Labs Inc. | System and method for synchronizing collaborative web applications |
US20110173294A1 (en) * | 2008-09-05 | 2011-07-14 | Paul Alexander Jackson | Method and system of synchronizing accounting objects between a client and server |
US20110179162A1 (en) * | 2010-01-15 | 2011-07-21 | Mayo Mark G | Managing Workloads and Hardware Resources in a Cloud Resource |
US20110320575A1 (en) * | 2010-06-26 | 2011-12-29 | Cisco Technology, Inc. | Storing and synchronizing media device information |
US8204521B2 (en) * | 2007-07-27 | 2012-06-19 | Michael Thomas Hardy | System and method for acknowledging calendar appointments using a mobile device |
-
2010
- 2010-11-08 US US12/941,831 patent/US9026618B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140665A1 (en) * | 2005-08-01 | 2008-06-12 | Ido Ariel | Sharing of Data Utilizing Push Functionality and Privacy Settings |
US8204521B2 (en) * | 2007-07-27 | 2012-06-19 | Michael Thomas Hardy | System and method for acknowledging calendar appointments using a mobile device |
US20090196123A1 (en) * | 2008-02-05 | 2009-08-06 | Rajesh Gautam | Collaborative Appointment and Reminder System |
US20090248695A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Online and offline applications |
US20090249224A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Simultaneous collaborative review of a document |
US20110173294A1 (en) * | 2008-09-05 | 2011-07-14 | Paul Alexander Jackson | Method and system of synchronizing accounting objects between a client and server |
US20100106744A1 (en) * | 2008-10-23 | 2010-04-29 | Microsoft Corporation | Conflict prevention for peer-to-peer replication |
US20100257451A1 (en) * | 2009-04-05 | 2010-10-07 | Hbr Labs Inc. | System and method for synchronizing collaborative web applications |
US20110179162A1 (en) * | 2010-01-15 | 2011-07-21 | Mayo Mark G | Managing Workloads and Hardware Resources in a Cloud Resource |
US20110320575A1 (en) * | 2010-06-26 | 2011-12-29 | Cisco Technology, Inc. | Storing and synchronizing media device information |
Non-Patent Citations (3)
Title |
---|
Alice Brown, Official Gmail Blog: Google Calendar Sync now supports Outlook 2010, Aug. 17, 2010, pp. 1-2, http://gmailblog.blogspot.com/2010/08/google-calendar-sync-now-supports.html. * |
David Marmaros, Official Gmail Blog: Smart Rescheduler in Google Calendar Labs, Mar. 18, 2010, pp. 1-3, http://gmailblog.blogspot.com/2010/03/smart-rescheduler-in-google-calendar.html. * |
Google Apps: "Google Calendar", http://www.google.com/a/help/intl/en/users/calendar.html, as retrieved Jan. 10, 2008. * |
Also Published As
Publication number | Publication date |
---|---|
US20120117125A1 (en) | 2012-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5268945B2 (en) | How to manage the user interface display | |
US20200258133A1 (en) | Installable web applications | |
CN110971655B (en) | Offline client playback and synchronization | |
EP2847686B1 (en) | Enhanced document and event mirroring for accessing content | |
US10242023B2 (en) | Programming model for synchronizing browser caches across devices and web services | |
US8606889B2 (en) | Roaming application settings across multiple computing devices | |
US7945531B2 (en) | Interfaces for a productivity suite application and a hosted user interface | |
US9680964B2 (en) | Programming model for installing and distributing occasionally connected applications | |
EP3005080B1 (en) | Synchronizing device association data among computing devices | |
US20140032699A1 (en) | Remote user interface in a terminal server environment | |
WO2014152078A1 (en) | Application architecture supporting multiple services and caching | |
US11249771B2 (en) | Terminal input invocation | |
US9026618B2 (en) | System and method for expanding PC-based software capabilities | |
JP2009217395A (en) | Virtual server software update system, virtual server software update method, server and program for server | |
CN113779551B (en) | A rights management method and device | |
JP2010182176A (en) | Server device, client device, server based computing system, and program | |
CN114996737A (en) | Data processing method, device and storage medium | |
CN108509223B (en) | Data processing method, device and system and storage medium | |
US10852899B2 (en) | Non-transitory computer-readable storage medium, and terminal device | |
US11277473B1 (en) | Coordinating breaking changes in automatic data exchange | |
EP3005103B1 (en) | Distributed state model for system configuration synchronization | |
JP2024070989A (en) | Load reduction terminal, load reduction server, load reduction system apparatus, control method of load reduction terminal, control method of load reduction server, program, and storage medium | |
CN118414613A (en) | A framework for exposing context-driven services within a web browser | |
CN119884255A (en) | Database access method and device | |
CN118331433A (en) | Method and device for enabling virtual application to use local input method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: JUNGLEWAVE INTERACTIVE, LLC, ARIZONA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HUNG, JASON J.;REEL/FRAME:025322/0482 Effective date: 20101105 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FEPP | Fee payment procedure |
Free format text: SURCHARGE FOR LATE PAYMENT, SMALL ENTITY (ORIGINAL EVENT CODE: M2554); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20230505 |