Patent ID: 7660789

Claim:
A method of generating abstractions of entities for a service, comprising: identifying a plurality of entities for the service, the entities encapsulating data and providing a programming model for the data, wherein the entities are stored in a data store that is local to the service, wherein the plurality of entities for the service comprises at least one service-private entity and a plurality of service-public entities, wherein the at least one service-private entity does not publish to other services as part of a public data contract, the at least one service-private entity only being visible and consumable within the service, wherein each of the plurality of service-public entities publishes to the other services as part of the public data contract, wherein each of the plurality of service-public entities comprises a plurality of properties, the properties representing information that is used by the service in execution of its designed functions, wherein the plurality of properties include service-public properties and service-private properties, the service-public properties being published as part of the public data contract; utilizing an entity agent generation tool to access the public data contract from the service; identifying the plurality of service-public entities from the plurality of entities for the service based at least in part on the public data contract; identifying, for each of the plurality of service-public entities, the service-public properties within the service public entity, the identification of the service-public properties being based at least in part on metadata within the public data contract; creating a plurality of entity agents that are abstractions corresponding to the identified service-public entities, the abstractions being invokable to access data encapsulated by the service-public properties within the identified service-public entities, wherein the entity agents are generated classes in a language of the service, and wherein the service and the client interact through a set of coarse-grained messages; adding features to the abstractions to enhance usability of the abstractions, wherein the features include verifying a correctness of entered data prior to sending the entered data to the service, providing feedback to a user of data invalidity, auto-populating data as a user enters data, and providing information about entity ownership; deploying the plurality of entity agents to a client; receiving, from the client, a message indicating a change to one of the identified service-public entities, the message conforming to a contract schema of the service, the message being generated utilizing one of the plurality of entity agents; transforming the message into an internal entity definition of the service; and modifying an internal property of the service in response to the received message.