Patent ID: 8825599

Claim:
A computer-based system for processing data objects, the system comprising: a processor and a memory that stores instructions, the instructions executed by the processor to create a data object by preparing a data structure for the data object in a database; process the data object at different processing stages, assigning a different workflow state with the data object at each processing stage; create a unique locating reference for the data object; take and store a snapshot of at least a part of the data object, prior to each workflow transition of the data object from a first workflow state to a second workflow state immediately following the first workflow state, the taking and storing a snapshot including assigning the first workflow state with the snapshot and assigning the second workflow state with the data object; create a replica of the data object when two predetermined parallel workflow states immediately follow the first workflow state to form a forked workflow structure, the creating a replica including: creating a new data object including a copy of the data object and a unique locating reference for the replica, assigning a first one of the two parallel workflow states with the replica, assigning a second one of the two parallel workflow states with the data object, and creating the unique locating reference for the replica, the unique locating reference for the replica based on the unique locating reference of the data object; receive from an application process the unique locating reference for the data object; and provide to the application process controlled access to the data object, to the snapshot and to the replica based on the unique locating reference for the data object, wherein receiving the unique locating reference for the data object and providing controlled access to the data object and to the snapshot include providing to a user of the application process access to the data object, to one or more replicas created of the data object, and to one or more snapshots taken of the data object and the replicas, in response to receiving the unique locating reference for the data object and based on a user profile associated with the user and on object states and workflow states assigned to the data object, the snapshots, and the replicas, and the processor is further configured to restrict actions performed on the data object, the replicas, and the snapshots, based on the user profile, the object states, and the workflow states.