Galileo is a kind of object-rational persistence layer that maps objects to persistence mechanisms (e.g. relational databases) in such a manner that simple changes in the relational schema do not affect object-oriented code. The advantage of such approach is that application programmers do not need to know a thing about the schema of the relational database; in fact, they don't even need to know that their objects are stored in a relational database. This approach allows programmers to develop large-scale, mission critical applications.
Current implementation has the following features:
- Encapsulation of the persistence mechanism: After calling the persistence methods of (needed) persistent objects, Galieo automatically performs an action with the database.
- Multiple object actions: After defining action criteria, multiple objects can be retrieved and deleted at once. Moreover, Galileo provides two different encapsulation layers: the first one is for the developers of persistent objects and their investigator objects and the second one is for application assemblers.
- Associations support: When saving or updating any object, Galileo enables the same action with associated objects. Galileo supports all aggregation types (i.e.one2one, one2many, many2many). Current implementation automatically resolves referential integrity problems as well.
- Transactions support: Several actions can be combined into one transaction, which is committed or rolled back as a single action (transaction boundaries can be demarcated explicitly). Otherwise Galileo implicitly starts transaction while invoking a persistent method and automatically commits it if no exception occurs.
- Optimistic locking support: Resolves dirty checking problems during concurrent user access.
- Connections pool: Galieo provides customizable pool of connections that can be also accessible via JNDI.
- Cache: Galileo provides a simple caching mechanism that resolves referential integrity and in-memory transaction problems.
- JSP testing suite: Easy test of mapping scheme.
Languages, technologies, tools: Java, XML, UML, SQL, JDBC, JNDI, JSP, Together 5.5,
JBuilder 5, Tomcat 4.0, Oracle 8.1