If possible and the SotwareModel allows it i would choose to have a very thin java-layer and the businesslogic defined in PL/SQL-Packages/Procedures.
-So NetTraffic will not kill your performance.
-PL/SQL is easier to handle as Java.
-Deploying PL/SQL-Objects is very easy and OS-independent.
-PL/SQL will be faster
-the easiest way to handle Oracle-data
But you can stay in your objectmodel thru your java-Objects which call in the background non-oo-plsql-procs.
I am not a java-programmer ( but C++ 10 years );
The reason for java you said is ok.
There is a great area implementing business-logic with java-enterprise-beans which are objects with common services and features.
the problem is performance!
These BEan-Communication is very slow! You need eve bigger Appservers then database-servers.
In Addition ther is RMI something like Remote-Calls for java-objects.
So please ask a java-expert.
So modelling is the ones side, but having a robust strong fast system is the other!
Now, how about the best of both worlds - Java inside of Oracle objects such as stored procedures, packages, etc...?
The Java would now be inside the database! Do we still have the same performance issues you mentioned?
If my questions are too vast for a forum thread, then maybe you can recommend a good link.
The purpose for application server is separate logic from database. If you use pl/sql for heavy business logic you will be losing performance depending on the system behavior because you'll have database overhead + logic overhead in the server. If you separate them you will increase performance to your system. Besides, java is the fastest language in the server side. It's not fast in the client.