Patent ID: 7685609

Claim:
A method for facilitating distributed form processing, comprising: sending, by a computer-implemented server, a form to a computer-implemented client, wherein the form is consistent with a common object model which is supported by both the client and the server, and wherein the form is based on a template; wherein the form specifies client logic and server logic including one or more scripts, each executable by either of the server or the client, as well as calls between the client logic and the server logic for invoking or receiving results from the one or more scripts, wherein a programmer can generate the client logic and the server logic in a single form using the common object model, instead of having to generate the client logic and the server logic separately using different object models; wherein each script is marked in the form to be run on the client in response to a respective input event on the client or to be run on the server in response to the respective input event on the client, wherein a client-specific rendering of the form includes a return network location which points to an application on the server for events to return to; receiving, by the server, an indication from the client of an input event on the client and of associated data, wherein a script of the one or more scripts is marked to run on the server in response to the input event; in response to said receiving the indication: creating, by the server, a server-side instance of the form according to the common object model, the template, and the associated data; executing, by the server, the script based on the server-side instance of the form, wherein executing the script results in one or more changes to the server-side instance of the form; and sending, by the server, to the client an indication of the one or more changes to the form, thereby allowing the client to merge the one or more changes from the server-side instance of the form into a client-side instance of the form.