Spent two hours at the Northern Virginia Java User's Group listening to a talk on Enterprise Java Beans (EJBs). While I can see the value, I worry that the EJB servers are essentially trying to replicate the basics of a database in middleware. For example, there is a EJB Query language that is very much like SQL Lite. And the Deployment XML file holds the relationships between Entity objects (also known as database tables). While EJB 2.0 allows for complex object-to-relational mappings, the technology is very new. How much of Oracle or SQL Server needs to be replicated inside the middleware server? Why should it be necessary to pay for developing the same functionality in the middleware and in the database? On another note, I've decided that the Nested Tree Model (NTM) package that I'm developing for Oracle needs to be more independant. I currently have the module tightly coupled with a Data Repository package for table creation, auditing, and action validation. Tomorrow, I'll decouple.