Help on architecture!!!

What is the best way to have an application/applet use JDBC? If a 3 tier approach is used- what are the options for the middle tier-client communication and which of them is the best (in terms of performance/scalability etc.)? From very little I know, the options are SOAP and RMI. Are there any more. Thanks in advance, Jaidev