1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278
|
<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<TITLE>The Answer Guy 28: Tools for converting X output to java </TITLE>
</head>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ========================================================= -->
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P>
<!-- =============================================================== -->
<H1 align="center"><A NAME="answer">
<img src="../gx/dennis/qbubble.gif" alt="" border="0" align="middle">
<a href="./lg_answer28.html">The Answer Guy</a>
<img src="../gx/dennis/bbubble.gif" alt="" border="0" align="middle">
</A></H1> <BR>
<H4 align="center">By James T. Dennis,
<a href="mailto:answerguy@ssc.com">answerguy@ssc.com</a><BR>
Starshine Technical Services,
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A> </H4>
<p><hr><p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Tools for converting X output to java</H3>
<p><strong>From Sheldon E. Newhouse on Tue, 31 Mar 1998 on the [linuxprog]
<a href="http://linux-lists.home.ml.org">mailing list</a></strong></p>
<P><strong>Are there any tools available to convert
standard C code with X displays to java displays? Basically, we have a
long program which is written in C and does low level X output. We would
like to port it so that the number crunching part works on a back-end
server and users can view output on java clients. The part of the program
that does the display is fairly short, but intimately connected with the
X libraires. Any ideas or references would be appreciated.
<br><br>
TIA,
<br>-sen</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
align="left" border="0">I'm not sure about a "Java X Server" per
se. However there has been some work done on execution of remote X
applications through a web browser interface.
<br><br>
I have yet to use any of this stuff (I barely use X) --- so I can only
rely on hearsay and a bit of web searching.
<br><br>
The first technology to consider is the latest release of X Windows
itself. There was an initiative by the X Consortium (*)
called "Broadway" --- this eventually became the widely accepted
code name (possibly widely excepted as well -- but we won't get into that)
for the entire X11R6.3 release.
<br>
<ul><li>(Formerly at <A HREF="http://www.x.org">http://www.x.org</A>
this now appears to be part of The Open Group at
<A HREF="http://www.opengroup.org/">http://www.opengroup.org/</A>)
</ul>
<br>
Since I don't know most of the details it's probably best for me to
just refer you to some online articles that discuss it:
<br>
<dl>
<dt>Broadway/Xweb FAQ
<dd><A HREF="http://www.broadwayinfo.com/bwfaq.htm"
>http://www.broadwayinfo.com/bwfaq.htm</A>
<dt>Can X Survive on the Internet? By Brad Weinert
<dd><A HREF="http://www.sigs.com/publications/docs/xspot/9609/xspot9609.d.execbrief.html">http://www.sigs.com/publications/docs/xspot/9609/xspot9609.d.execbrief.html</A>
<dt>X Is Dead, Long Live X
<dd><A HREF="http://www.sigs.com/publications/docs/xspot/9603i/xspot9603.d.edit.html">http://www.sigs.com/publications/docs/xspot/9603/xspot9603.d.edit.html</A>
</dl>
<ul>
<li>Both of these articles at sigs.com seem to be
a bit out of date, now that ``Broadway'' has been
released. However they offer a pretty quick
preview of what X Web is supposed to be.
</ul>
<br>
Note that the constraint of this approach is that it seems to require
that you actually have an X Server on the clients. This is great if
you have just about any sort of Linux/Unix clients --- but may be
prohibitive if you intend for Windows (NT, '95, or 3.x) or MacOS
clients to access your applications.
<br><br>
You might be able to deploy the MI/X server (a freely available X Server
for Windows and MacOS) but I don't know if it supports the X11R6.x
"Broadway" features. You can find out more about MI/X at
<A HREF="http://tnt.microimages.com/freestuf/mix/"
>http://tnt.microimages.com/freestuf/mix/</A> and read MicroImages
Inc.'s FAQ at <A HREF="http://tnt.microimages.com/freestuf/mix/mix-faq.htm"
>http://tnt.microimages.com/freestuf/mix/mix-faq.htm</A>.
<br><br>
A quick perusal of that suggests that it won't support the Broadway
set of extensions (since the FAQ says that it doesn't support LBX --
the "low bandwidth X" which is apparently a key part of Broadway).
<br><br>
I don't know what commercial X Servers for Windows or the Mac will
help --- but I needn't spend any more space on that issue since I
you don't specify that as a requirement. Hummingbird's Exceed
(<A HREF="http://www.unipres.com/hbird/exceed/"
>http://www.unipres.com/hbird/exceed/</A>) is a likely candidate.
<br><br>
Another approach might be to provide your clients with VNC ---
which was listed in Linux Weekly News
(<A HREF="http://www.eklektix.com/lwn/">http://www.eklektix.com/lwn/</A>)
a few weeks ago. This has nothing to do with Java and almost nothing
to do with X Windows. However it does allow you to view X Windows
displays from Windows and Mac clients and vice versa --- using an
alternative to the X communications protocols.
<br><br>
The potential advantage is that it sounds much easier to install and
configure than a Windows or MacOS X server. Take a look at at the
"Olivetti and Oracle Research Laboratories"
(<A HREF="http://www.orl.co.uk/vnc/">http://www.orl.co.uk/vnc/</A>)
for more on that. Another advantage of this over MI/X would be that it
is open source available under the GPL --- MI/X is free to use but the
sources are not available.
<br><br>
The two approaches that are more directly suggested by your
question are:
<br><blockquote>
An Xlib to Java awt cross compiler (or class or library)
</blockquote><br>
... or:
<br><blockquote>
An X Server for the Java virtual machine (a class that implements
Xlib).
</blockquote><br>
I suspect that both of these are feasible --- though the performance
costs of the latter may not make it palatable and I'm sure that the
portability issues in each would be significant.
<br><br>
Despite my search engine efforts I was unable to find any information
on any work being done on either approach. However, I'm not an expert
in Java and I don't keep up on it much. So, maybe someone else here
will help us out.
<br><br>
I did look in several likely places at
<A HREF="http://www.developer.com/directories/"
>http://www.developer.com/directories/</A>
(formerly the Gamelan archives). The closest I found is a JXTerm ---
allegedly an 'xterm' in Java. This includes telnet and cut and paste
features. There are several Java terminal emulators including VT100,
VT220, ANSI-BBS, TN3270 and TN5250 applets.
<br><br>
Meanwhile I've been hearing snippets of SCO's
(<A HREF="http://www.sco.com/">http://www.sco.com/</A>)
"Tarantella" for the last year or so. This apparently does act as
an X Windows to Java gateway, providing a sort of "web desktop" or
"webtop" as their marketing copy refers to it. It appears that you'd
have to install a SCO OpenServer system to either run your application
or to act as a gateway between your applications server and your clients.
(I doubt sincerely that SCO will make Tarantella available for Linux
--- and it doesn't seem to be written <em>in</em> Java). I'm really curious
as to how this works.
<br><br>
(While I was writing this I installed a new copy of the Netscape
RPM from my Red Hat CD -- this is a new system that I just built
from parts, it's running S.u.S.E. -- started an X session, started
Navigator, pointed my browswer at
<A HREF="http://tarantella.sco.com/">http://tarantella.sco.com/</A> and
tried to access their demo. It gets to some point before showing
my anything like X or it's "webtop" with some complaint about a
Java Security violation in some class or another. Exiting and
retrying got me further along. Hint: don't try 'Tarantella'
during your first Navigator session. Eventually I was able to
get it running ...err... walking ...err... limping along.
It might be faster over a T1 or an ethernet -- I happen to be
using the 28.8 PPP connection at the moment).
<br><br>
If you're curious, go try the demo yourself. You can also find a
set of slides from a presentation by Andy Bovington (?) on:
<br><dl>
<dt>Controlling X/Motif apps from Java and Javascript.
<dd><A HREF="http://www.sco.com/forum97/tarantella/presentations/bov/"
>http://www.sco.com/forum97/tarantella/presentations/bov/</A>
</dl><br>
In typical "big company" fashion SCO doesn't tell you how much this
product costs. They expect you to fill out a survey and have their
sales critters call you.
<br><br>
I suspect that this circumlocution may result in more converts to
open source software than all of the other "freedom" arguments we can
muster.
<br><br>
Meanwhile, my wife, Heather, found a couple of promising links
(she's the <em>real</em> search engine wiz in the family).
<br><br>
Here's the most promising:
<br><dl>
<dt>Eugene O'Neil's XTC, the X Tool Collection
<dd><A HREF="http://www.cs.umb.edu/~eugene/XTC/"
>http://www.cs.umb.edu/~eugene/XTC/</A>
</dl><br>
... which appears to be at the early alpha stages but, in his own
words:
<br><blockquote>
... is an implementation of the X Window Protocol, written in pure
Java. It does not require any native C libraries, such as Xlib:
instead, it is intended as a complete replacement for Xlib, written
from the ground up to be flexible, object-oriented, and
multi-threaded.
</blockquote><br>
(Wow!)
<br><br>
There was also some work done by a Mr. Igor Boukanov at:
<br><dl>
<dt>Pure Java X client
<dd><A HREF="http://asfys3.fi.uib.no/~boukanov/java.doc/lib.x.html"
>http://asfys3.fi.uib.no/~boukanov/java.doc/lib.x.html</A>
</dl><br>
By far the best technical information I found on X Windows in my
search was:
<br>
<dl>
<dt>Kenton Lee's: Technical X Window System and Motif WWW Sites
<dd><A HREF="http://www.rahul.net/kenton/xsites.html"
>http://www.rahul.net/kenton/xsites.html</A>
</dl><br>
Kenton has the best set of links on the subject, and apparently has
written articles for 'X Advisor Magazine' and several others.
</blockquote>
<!--================================================================-->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/ssc.copying.html"
>Copyright ©</a> 1998, James T. Dennis <BR>
Published in <I>Linux Gazette</I> Issue 28 May 1998</H5>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./lg_toc28.html"><IMG SRC="../gx/indexnew.gif"
ALT="[ Table Of Contents ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
ALT="[ Front Page ]"></A>
<A HREF="./lg_answer28.html"><IMG SRC="../gx/dennis/answernew.gif"
ALT="[ Answer Guy Index ]"></A>
<!--startcut ======================================================= -->
</body>
</html>
<!--endcut ========================================================= -->
|