1. A method of controlling access to and manipulation of a data object in a computer system, the method comprising: determining a current user role of a current user requesting interaction with the data object, the current user role being one of a set of defined user roles for accessing the data object; determining a current lifecycle state of the data object, the current lifecycle state being one of a set of states the data object can transition to; restricting, by a computer processor, interaction with the data object by the current user based on at least the current user role of the current user and the current lifecycle state of the data object, the interaction including creating data associated with the data object, reading data associated with the data object, updating data associated with the data object, deleting data associated with the data object, and transitioning the data object to a different lifecycle state; notifying a computer process when a data object user transitions the data object to a different lifecycle state; receiving a plurality of object rules for accessing and manipulating the data object based on the set of defined user roles and a set of finite lifecycle states; presenting a visual representation of a lifecycle state associated with one or more processes; and converting the visual representation into a computer readable markup language; wherein restricting interaction with the data object by the current user includes searching the object rules that apply to the current user role of the current user and the current lifecycle state of the data object; and wherein the set of user roles, the set of lifecycle states, and plurality of object rules are encoded and associated with the data object.