Path: newssvr20.news.prodigy.com!newsmst01.news.prodigy.com!prodigy.com!in.100proofnews.com!in.100proofnews.com!news-out.visi.com!hermes.visi.com!newsfeed2.dallas1.level3.net!news.level3.com!postnews1.google.com!not-for-mail
From: ramon@conexus.net (Ramon F Herrera)
Newsgroups: comp.lang.java.programmer,comp.databases.oracle.server
Subject: Java client-server: what options are there?
Date: 1 Jan 2004 18:40:27 -0800
Organization: http://groups.google.com
Lines: 53
Message-ID: <c9bc36ff.0401011840.1c012fde@posting.google.com>
NNTP-Posting-Host: 24.147.122.179
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: posting.google.com 1073011228 31544 127.0.0.1 (2 Jan 2004 02:40:28 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Fri, 2 Jan 2004 02:40:28 +0000 (UTC)
Xref: newssvr20.news.prodigy.com comp.lang.java.programmer:571784 comp.databases.oracle.server:251127

This is an issue that I have been pondering and investigating
for years, and I wish there was a book, chapter or URL that
covered it.

I have to develop client-server systems in which the following
is pretty much decided:

   - The database is Oracle 9iR2
   - The server OSs are Solaris and Linux
   - The clients (a few dozen) are Windows (XP?)
   - The client side runs on Java

Those are the givens, the rest is up for grabs...

The main undecided part is: exactly how to realize the client-server
connection?  That's what I would like to hear and read about.
What options do I have?

To get the ball rolling, I will share my experiences so far.

First, I tried the JDBC approach, with a standalone application.
There was a stored procedure in the server, and it was called
from the client.  The cons were: the size of the JDBC being much
larger than my app, and there was also the issue of performance.
I feel that I should move more of the functionality and heavy duty
processing to the server side, where I can have plenty of horsepower.

My second attempt was a Java applet which got its data
through CGI-BIN from an OCI C program running on the server.
The performance was pretty good and I'd like to stick with
the OCI part but not with CGI-BIN.

I just began the third approach: using SSH.  The server part
is a given since it comes ready in Linux, and I got the Java
client part from sshtools.com.

I have read about servlets, Tomcat, etc. but it looks like once
I get into that stuff (the area seems to be called "Enterprise"),
the tools become extremely expensive (for instance I will have
to upgrade my $700 Developer JBuilder to a $3500 Enterprise JBuilder).

The issue of performance still worries me (I am a speed freak):
I wish I could just use the Unix R-commands (rsh, etc.) so all
the encrypting-decrypting doesn't get in the way of client
performance (my app is Intranet in a trusted environment) but
I guess I can live with the more modern, secure, etc., SSH.

Thanks very much for sharing your expert insight on this,
(and if you are a writer deciding on a topic, I'll  bet that
this one will sell a lot of books! - anyone from O'Reilly
out there?)

-Ramon F Herrera
