Patent ID: 8904368

Claim:
A method of instantiating a composite application for one of a plurality of different target platforms, said method comprising: in an application assembly environment, creating a plurality of templates each describing, in a platform-independent manner, a respective one of a plurality of composite applications, wherein each of the plurality of templates is stored as a markup language file that includes: a composite application component assembly descriptor listing a respective set of multiple application components selected from among a common collection of a plurality of application components and defining desired interactions between the multiple application components in the set of application components to achieve a desired program logic of that template; meta-data defining specific configuration settings for each application component of the template; and access control information; storing the plurality of templates in a template catalog and providing access to the plurality of templates in the template catalog to a user community; in response to user interaction of multiple users in the user community invoking a template instantiation service, creating multiple different user-specific versions of a composite application from a particular template among the plurality of templates in the template catalog without requiring any of the multiple users to hold administrative authority for the particular template; packaging a particular version of the composite application among the multiple different user-specific versions of the composite application by building a composite application package including the particular template, the respective set of application components of the particular template, and a plurality of platform-specific handlers each executable to install the respective set of application components on a respective one of said plurality of different target platforms; at a runtime environment executing on a particular target platform among a plurality of different target platforms: evaluating said composite application component assembly descriptor of the particular version of the composite application to identify platform-specific implementations of said set of application components of the particular version of the composite application, the evaluating including mapping features of the particular version of the composite application described by the composite application component assembly descriptor to elements of the particular target platform; and instantiating said particular version of the composite application in the runtime environment using the particular platform-specific handler included in said template for platform-specific deployment of the particular version of the composite application on the particular target platform.