Patent ID: 8516037

Claim:
A method for dynamically deploying an application in a client-server environment, comprising: creating a web application to run entirely on a web browser, said application comprising at least one application component and at least one abstract constraint, wherein application logic is independent of its placement on a server or a client and the at least one abstract constraint is expressed external to the application logic, wherein the at least one abstract constraint comprises a requirement of at least one of reliability, privacy, security, or trusted code for the at least one application component; evaluating a runtime context of the application in the client-server environment; and partitioning the placement and execution of the at least one application component dynamically at runtime so that implementation of the at least one abstract constraint is provided, wherein placement and execution of the at least one application component varies in different client-server environments, wherein the at least one application component comprises at least one computational component, at least one data component, or a combination of computational and data components, wherein the at least one computational component manipulates a state of the application and comprises validating forms, accessing a database, managing queries, calling services, conducting transactions, graphic transformations, image processing, calculations, spell checker, syntax highlighting, or interaction with user interface components, and wherein the at least one data component comprises a searchable collection of data or objects and comprises submitted orders; a database; a collection of image files, music files, or documents; or a file that needs to be stored persistently.