SYSTEM AND METHOD FOR SYNCHRONIZING COLLABORATIVE FORM FILLING
First Claim
Patent Images
1. A process for collaboratively filling a form by two or more users each having their own respective web browser and input device comprising:
- a) providing to each user access to at least one server system that includesi) at least one message bus server component;
ii) at least one application server component; and
iii) at least one plug-in server component;
b) delivering a first container from the at least one application server component to a network browser of a first user;
c) delivering a second container from the at least one server component to the network browser of one or more second users, wherein the first container and the second container are the same as or different from each other;
d) receiving one or more requests from the first user for a first plug-in via the plug-in server component;
e) delivering to the first container the first plug-in from the plug-in server component;
f) notifying the second user of the one or more requests by delivering a notification through the message bus server component;
g) delivering to the second user via the plug-in server component a plug-in compatible with the plug-in of the first user, so that the first and second user are each substantially simultaneously able to access compatible plug-ins and operate the plug-in in a coordinated substantially synchronized manner for modifying and/or observing a common file associated with the plug-ins; and
h) selecting a form to collaboratively fill by a form selector, wherein the form selector is one of the first or second users;
i) sending the selected form to the application server component, or sending a request for the form to the application server component whereupon the application server component retrieves the selected form, wherein the selected form is a collaborative form or a form that is not a collaborative form;
j) converting any selected form that is not already a collaborative form into a collaborative form;
k) delivering the collaborative form to the plug-in of the form selector, wherein the collaborative form has one or more editable fields;
l) delivering the collaborative form to the plug-in of the other user;
m) following one or more modifications of the collaborative form made by the first user, communicating to one or more of the other users, the one or more modifications, wherein the communicating is substantially contemporaneously with the modification, wherein the communicating takes place byi) serializing the modification to string using in the container of the first user and sending the string using HTTP;
ii) posting the serialized string to the message bus server;
iii) cloning the serialized string for sending to the second users;
iv) de-serializing the string to the modification in the container of the second user; and
v) consuming the modification by the plug-in of the second user;
wherein the collaborative form is the common file;
so that the modification is delivered to the second user without interference by a firewall.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for synchronizing collaborative web applications, such as collaborative form filling, including using a message bus server and HTTP protocol.
242 Citations
20 Claims
-
1. A process for collaboratively filling a form by two or more users each having their own respective web browser and input device comprising:
-
a) providing to each user access to at least one server system that includes i) at least one message bus server component; ii) at least one application server component; and iii) at least one plug-in server component; b) delivering a first container from the at least one application server component to a network browser of a first user; c) delivering a second container from the at least one server component to the network browser of one or more second users, wherein the first container and the second container are the same as or different from each other; d) receiving one or more requests from the first user for a first plug-in via the plug-in server component; e) delivering to the first container the first plug-in from the plug-in server component; f) notifying the second user of the one or more requests by delivering a notification through the message bus server component; g) delivering to the second user via the plug-in server component a plug-in compatible with the plug-in of the first user, so that the first and second user are each substantially simultaneously able to access compatible plug-ins and operate the plug-in in a coordinated substantially synchronized manner for modifying and/or observing a common file associated with the plug-ins; and h) selecting a form to collaboratively fill by a form selector, wherein the form selector is one of the first or second users; i) sending the selected form to the application server component, or sending a request for the form to the application server component whereupon the application server component retrieves the selected form, wherein the selected form is a collaborative form or a form that is not a collaborative form; j) converting any selected form that is not already a collaborative form into a collaborative form; k) delivering the collaborative form to the plug-in of the form selector, wherein the collaborative form has one or more editable fields; l) delivering the collaborative form to the plug-in of the other user; m) following one or more modifications of the collaborative form made by the first user, communicating to one or more of the other users, the one or more modifications, wherein the communicating is substantially contemporaneously with the modification, wherein the communicating takes place by i) serializing the modification to string using in the container of the first user and sending the string using HTTP; ii) posting the serialized string to the message bus server; iii) cloning the serialized string for sending to the second users; iv) de-serializing the string to the modification in the container of the second user; and v) consuming the modification by the plug-in of the second user; wherein the collaborative form is the common file; so that the modification is delivered to the second user without interference by a firewall. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
ii) posting the serialized string to the message bus server; iii) cloning the serialized string for sending to the other users; iv) de-serializing the string to the modification in the container of the other users; and v) consuming the modification by the plug-in of the other users;
-
-
7. The process of claim 1, wherein the collaborative form includes one or more selection boxes. the collaborative from includes one or more fields or boxes capable of storing a digital signature;
- and the process includes a step of digitally signing the collaborative form by the first user, the second user, or both;
wherein the selected form is a contract or other agreement, an application, a document to be published or presented, a questionnaire or survey, a statement that requires verification, or any combination thereof.
- and the process includes a step of digitally signing the collaborative form by the first user, the second user, or both;
-
8. The process of claim 1, wherein the process includes one or any combination of the following steps:
-
a) storing the modifications, including any digital signatures to the collaborative form; b) converting the collaborative form and the modifications into a pdf file;
orc) storing to the application server component the modifications, including any digital signatures to the collaborative form.
-
-
9. The process of claim 1, wherein the process does not employ a continuous link between the second user and the message bus server component;
- and
wherein the users are each independently a computer, a mobile phone, a personal digital assistant, or an electronic tablet, and wherein the process includes one or more steps of adding, modifying, or deleting an editable field during a collaboration session.
- and
-
10. The process of claim 1, wherein the process includes the steps of:
-
upon receiving a second modification of the common file via an input device of the second user, delivering from the second container to the message bus server component, a notification including a characterization of the second modification of the common file; delivering the notification of the second modification or a variation thereof from the message bus server component to the first container; and updating the common file of the first container so that the common file in the plug-in of the first user and the common file in the plug-in of the second user are synchronized.
-
-
11. The process of claim 1, wherein the process includes the step(s) of:
-
(i) storing a file including one or more modification of the common file, or information about the one or more modification of the common file; (ii) printing a document including one or more modifications of the common file;
or(iii) both (i) and (ii).
-
-
12. The process of claim 1, wherein the method includes synchronizing the common file of more than two users using the message bus server component, wherein the message bus server component implements a supplier/consumer notification service.
-
13. The process of claim 1, wherein the process does not employ HTTP tunneling between the message bus server component and the second user;
- and the first container is an ActionScript application.
-
14. The process of claim 1, wherein
the first modification of the common file includes one or more characters; -
the second modification of the common file includes one or more characters; and the input device of the first user includes a keyboard, a mouse, a microphone, a touchpad, or a joystick; and wherein the process includes the steps of; (a) sending a plurality of messages from a user to the message bus server component, wherein adjacent messages are spaced by a predetermined time interval; (b) sending a plurality of messages from the message bus server component to a user, wherein adjacent messages are spaced by a predetermined time interval; (c) or both (a) and (b).
-
-
15. The process of claim 1, wherein:
-
(i) the message bus server component does not stream the messages; (ii) the process does not employ a continuous link between the second user and the message bus server component; (iii) the process does not employ a constant transmission control protocol (TCP) connection between the message bus server component and the second user; (iv) the process does not employ a constant TCP connection between the message bus server component and the second user;
or(v) any combination of (i), (ii), (iii), and (iv).
-
-
16. The process of claim 1, wherein the first container includes a network layer and an application programming interface (API) for plug-ins, and the plug-in includes a notification supplier element and a consume element, wherein the process includes:
-
passing an object from the notification supplier element of the plug-in to the API of the first container, passing the object to the network layer of the first container; and passing the object to the message bus server component.
-
-
17. The process of claim 1, wherein
the message bus server component includes a message bus dispatcher and a message bus mailbox module; -
a second user is established by receiving a web address for the application server component by the second user, and the second user connecting to the application server component in the web browser of the second user; and wherein the process includes the steps of; uploading a document to the application server component; converting the document to a flash format; and sending the flash format of the document to the first and second users; and wherein the plug-in is sent to a network layer of the first user using an HTTP protocol; and the modification to the common file is a complex object.
-
-
18. The process of claim 1, wherein
the process is free of a step of saving an executable file in the non-volatile memory of the second user; - and
the step of sending the background of the form and the one or more editable fields to the first user container and the second user container employs periodic HTTP requests and is free of a continuous TCP connection.
- and
-
19. A file or document prepared by the process of claim 1, wherein the file or document is electronically stored, printed, graphically displayed, or any combination thereof.
-
20. A system for synchronizing collaborative web applications by a first user and a second users using a collaborative infrastructure including:
-
a) a data communication network; b) a message bus server component coupled to the data communication network; c) an application server component coupled to the data communication network; d) a plug-in server component coupled to the data communication network; e) a first user having a network browser and coupled to the data communication network; f) a second user having a network browser and coupled to the data communication network; and g) a common file, wherein the common file is a collaborative form; wherein the application server component is configured for i) delivering a first container to the network browser of a first user, and ii) delivering a second container to a second user; wherein the plug-in server component is configured for i) delivering a plug-in to the container of the first user upon receiving a request for the plug-in from the first user; and ii) delivering a plug-in to the container of the second user upon receiving a request for the plug-in from the second user; wherein the first container is configured for converting modifications to a common file of the plug-in to a serialized string using HTTP for notifying the second user of the modification to the common file; and wherein the message bus server component is configured for delivering the notifications to the second user;
so that the second user can synchronize the common file with the first user.
-
Specification