Abbiamo un'applicazione lato server (in JAVA, comunica tramite servizi Web) che accede a un database. Se desideriamo vendere solo l'applicazione a un cliente, in modo che possa utilizzare la propria scelta di database (RDBMS per ora), come posso progettare l'applicazione per funzionare con qualsiasi database sviluppato secondo alcune specifiche? Per ora ho considerato l'JPA ma non sono ancora sicuro di tutte le sue funzionalità. Immagina se Facebook vendesse la propria logica di base, indipendentemente dal database, in modo che l'acquirente possa implementare qualsiasi database e collegarlo alla logica di Facebook.