A framework to develop enterprise applications that need transactions, persistence, and a rich domain model.