DataNucleus attempts to make the whole process of persisting data a transparent process. The idea revolves around the developer having a series of Java classes that need persisting. With DataNucleus, the developer defines the persistence of these classes using Metadata (defined in XML, annotations or by API), and byte-code "enhances" these classes. DataNucleus also provides RDBMS SchemaTool that allows for schema generation/validation before running your application, to make sure that all is correctly mapped. Finally you provide persistence code (to manage the persistence of your objects), and queries (to retrieve your persisted data). DataNucleus Access Platform implements all JDO specifications (1.0, 2.0, 2.1, 2.2, 3.0) and also all JPA specifications (1.0, 2.0, 2.1). The following diagram shows the process for DataNucleus AccessPlatform (several parts of the diagram are clickable giving more details).