Siena is a persistence abstraction layer made in Java with various implementations: * siena-jdbc: persists objects into a relational database using JDBC (status: deeply tested) * siena-gae: persists objects into the Google App Engine's datastore using its low-level API (status: beta) * siena-sdb: persists objects using Amazon's SimpleDB (very experimental) * siena-remote: persists objects remotely using a remote web application that uses siena. (planning) Siena is also: * Intrusive. You make a class persistent by extending a certain class. Relationships are defined also in an intrusive way. * Simple. Simplicity is the most important thing. * Limited. Due to the simplicity there are several unsupported things such as JOINs. * Extensible. There are two interfaces you can implement on your own way.