A database abstraction layer, model framework and database framework.