Patent ID: 7281245

Claim:
A method of downloading software components from a remote source to a software application for providing updates or additions to application and document functionality, comprising the steps of: attaching a schema to a document defining permissible data content, data type and data structure for the document; structuring the document to associate the document with the schema; associating a solution with the document structure; assembling a plurality of software components comprising the solution at a location remote from the document; enabling the document to call the solution to obtain functionality provided by the plurality of software components upon initiating of editing the document within a schema element associated with a particular solution, whereby the step of enabling the document to call the solution to obtain functionality provided by the plurality of software components includes: attaching a solution property to the document for pointing the document to the solution, whereby the step of attaching a solution property to the document further comprises attaching a plurality of solution properties to the document to associate a plurality of subsets of the solution with particular portions of the document; and attaching a solution location to the document for enabling the document to locate the solution at the remote location; listing the solution and the plurality of software components in a manifest of software components; and storing the manifest in a remote library of software components on a remote server accessible by the document; attaching a schema to the manifest for defining permissible data content, data type and data structure of the manifest and for associating the solution with the document; determining whether the plurality of software components for providing the solution is present in a local library of software components; if the plurality of software components is not present in the local library of software components, calling the manifest at the remote library of software components for obtaining the solution; and downloading the plurality of software components to the application for provision of the functionality to the document.