A method and apparatus for providing a network based operating system for mobile
clients is disclosed. Services may be developed that can be used to support different
client devices with different capabilities. The services provide output with multiple
variations based on different devices, and an intermediary selects the variation
best suited for the requesting device. An online software development system is
provided to allow services to create, edit, test, and deploy applications at an
intermediary using only a browser at the client end. Services may also be provided
that can be accessed and referred to by other services, thereby facilitating the
combining of different services. Services may also store and access data at an
intermediary using variables and a mapping of the stored data to the variables.
Data stored at the intermediary may be used to allow an end user to return to a
previously accessed service.