Patent ID: 7937458

Claim:
An on-demand software system, comprising: a remote processing system providing a plurality of software applications, operating systems and central data storage; and a local processing system running on an authorized user's local device, wherein the local system comprises: (a) a local profile manager that loads, updates and validates a user profile, the user profile being selected by the user when the user forms a contract with an operator of the remote system, the user profile comprising both user identifying information and local device identifying information including: (i) a set of devices from where the user can access the system; (ii) a list of the types of software applications that the user can view or manipulate; (iii) a list of the software services to be used by the user when viewing or manipulating the software application types; and (iv) a set of rules establishing from where and when the software applications can be accessed or manipulated; and wherein the user profile is session based, and wherein the software applications to be accessed or manipulated are associated with the session based user profile such that a user having multiple profiles accesses or manipulates only the software applications associated with the particular user profile that is running in the session; (b) a local service locator that finds services requested by the user; (c) a local data manager that finds and stores data; (d) a local service connector that establishes communication between the local system and the remote system; and (e) a local service manager that displays a user services menu and resource explorer to the user; and handles the interaction between the user and the system, the user service menu displaying the on-demand software applications accessible to the user, and wherein the user chooses the on-demand software applications from the user services menu, and wherein standard software applications are chopped into smaller functional units to be separately made available to the user; and wherein the remote system comprises: (a) a remote profile manager that receives user requests from the local profile manager; (b) a remote service locator that communicates with the local service locator to find the software applications requested by the user; (c) a remote data manager that communicates with the local data manager to store and retrieve requests from the local data manager; and (d) a remote service connector that communicates with the local service connector; and wherein the remote system sends instructions to the local system configuring the local system to operate the software applications after the session based user profile has been sent from the local system to the remote system, and wherein the local device is not continuously connected to the remote system during operation of the local device.