1. A framework for developing software applications, comprising: a document manager operable to manage activities relating to one or more XML-based data documents associated with an application, each data document modeling data associated with the application and representing relationships that may exist between the data document and one or more other data documents; a rules manager operable to manage rules that specify logic for the handling of notifications associated with XML-based action documents received at the application, the notifications requesting actions involving data documents; and an operations manager operable to manage execution of transactions involving data documents based on one or more operations defined for the application during its development; the framework providing a generic XML-based transaction engine, the application being one of a plurality of distributed applications each being an instance of the generic transaction engine.