/usr/share/dx/java/htmlpages/Status.htm is in dxsamples 4.2.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 | <html>
<head>
<title>Java Explorer Status</title>
</head>
<body bgcolor="#dddddd">
<IMG SRC=bonuspakhead.gif ALT=""><BR>
<hr>
<p>
<h2>IBM Visualization Data Explorer (DX)</h2>
<a href="http://www.almaden.ibm.com/dx/" TARGET="_parent">
Data Explorer</a> is a
general-purpose software package for data visualization and
analysis. It employs a data-flow driven client-server
execution model and provides a visual program editor (VPE)
that allows the user to create a
visualization using a point and click interface.
Images can be rendered using a variety of graphics
accelerators, 8, 12, and 24 plane software windows or World Wide
Web browsers.
<p>
<hr>
<table border = 2
bordercolordark="black"
bordercolorlight="white"
>
<thead>
<tr>
<th><a href="ScatterData.html" TARGET="_parent">1990 Census Data</a>
<th><a href="HomeOwn.html" TARGET="_parent">Home Ownership Trends</a>
<th><a href="Topo.html" TARGET="_parent">Mapping Colorado</a>
</tr>
<tbody>
<tr bgcolor="black">
<td>
<applet
code="imageWindow.class" width = 186 height = 160
archive=dx.jar
MAYSCRIPT=true
>
<param name=INITIAL_IMAGE value="ScatterData4.0.0.gif">
<param name=OPEN_IN_ORBIT_MODE value="true">
</applet>
</td>
<td>
<applet
code="imageWindow.class" width = 186 height = 159
archive=dx.jar
MAYSCRIPT=true
>
<param name=INITIAL_IMAGE value="HomeOwn4.0.0.gif">
<param name=OPEN_IN_ORBIT_MODE value="true">
</applet>
</td>
<td>
<applet
code="imageWindow.class" width = 186 height = 159
archive=dx.jar
MAYSCRIPT=true
>
<param name=INITIAL_IMAGE value="Topo3.0.0.gif">
<param name=OPEN_IN_ORBIT_MODE value="true">
</applet>
</td>
</tr>
<tr bgcolor="black">
<td>
<applet
code="imageWindow.class" width = 186 height = 159
archive=dx.jar
MAYSCRIPT=true
>
<param name=INITIAL_IMAGE value="perp1.0.0.gif">
<param name=OPEN_IN_ORBIT_MODE value="true">
</applet>
</td>
<td>
<applet
code="imageWindow.class" width = 186 height = 159
archive=dx.jar
MAYSCRIPT=true
>
<param name=INITIAL_IMAGE value="Streamline3.0.0.gif">
<param name=OPEN_IN_ORBIT_MODE value="true">
</applet>
</td>
<td>
<applet
code="imageWindow.class" width = 186 height = 159
archive=dx.jar
MAYSCRIPT=true
>
<param name=INITIAL_IMAGE value="MRI_22.0.0.gif">
<param name=OPEN_IN_ORBIT_MODE value="true">
</applet>
</td>
</tr>
<tfoot>
<tr>
<th><a href="gordon.html" TARGET="_parent">Valuing a Perpetuity</a>
<th><a href="Streamline.html" TARGET="_parent">Wind Veloctiy</a>
<th><a href="MRI_2.html" TARGET="_parent">MRI of the Brain</a>
</table>
<p>
<hr>
<a name="interacting"></a>
<h2>Interacting with Images</h2>
Java Explorer provides interaction modes similar to those in Data Explorer:
Rotate, Pan, Zoom, and Pick.
A new interaction mode available in Java Explorer is called <i>Orbit</i>
mode.
Each of the preceeding images corresponds to a sample visualization
available thru a link in this page. Click and drag inside an
image to sample orbit mode.
<ul>
<li>Java Explorer's Pick mode reflects the design of Data Explorer. Select
an Image then choose Pick mode. Place a pick by clicking with the left
mouse button on something in the image. The original net must contain
a Pick tool with appropriate wiring.
<li>Rotate mode provides a gnomon for rotating in the x and y
planes using the left mouse button. Ctrl+mouse button rotates in the
z plane.
<li>Zoom mode provides a 2d area of interest in response the mouse button.
Ctrl+mouse button zooms out.
<li>Pan mode provides a single pan cursor which moves the screen
in response to a mouse button drag.
<li>The <i>Execution</i> control panel provides a 'Reset Camera' button
which works the same way Data Explorer's Reset menu bar option works.
</ul>
<p>
<hr>
<p>
<h2><a name="javifying">Creating web pages from Visual programs</h2>
<img src="Demo4.gif">
Starting with a visualization and assuming it's called <i>myprog</i>.net...
<ul>
<li>Extend DXMACROS:
<pre>
<b>
$ setenv DXMACROS "${DXMARCROS}:<i>installDir</i>/java/server/dxmacros"
</b>
or
<b>
$ setenv DXMACROS <i>installDir</i>/java/server/dxmacros
</b>
</pre>
<li>Start the new copy of dxui:
<b>
<pre>
$ dx -ui <i>installDir</i>/java/server/bin_<i>arch</i>/dxui \
-mdf <i>installDir</i>/java/server/mdf/ui.mdf &
</pre>
</b>
<li>Load <i>myprog.net</i>
<li>Choose 'Edit/Java/Add Tools' from the VPE menubar.
<li>Save the visual program.
<li>Choose 'Edit/Java/Save As Web Page'.
<li><a href="Status.htm#makefile">Edit <i>myprog</i>.make.</a>
<li>$ make -f <i>myprog</i>.make
<li>$ make -f <i>myprog</i>.make install
</ul>
<b>Tech Notes:</b>
<ul>
<li>The actual .net file which runs under control of Java Explorer is
the same .net file you use when you run with the Data Explorer user
interface. The 'Add Tools' step makes minor modifications to the visualization
which don't interfere with using the Image window as you normally do.
<li>Java Explorer will not work with visual programs containing Display tools.
You must manually change your nets so that you use Image tools rather
than Display tools for all your images.
<li>Java Explorer will provide camera interaction modes and possibly pick mode
for any image whose Image window in the .net file was assigned a name using
the 'Options/Change Image Name' menubar option. If you're converting
Display tools to Image tools, then you'll probably want to assign a name
to the the original Image tools and leave the Display tools unnamed.
<li>'Edit/Java/Remove Tools' reverses the affect of 'Edit/Java/Add Tools'.
You can add and remove java tools as often as you like without changing the
meaning of the visual program. After you add tools, you'll need to choose
'Edit/Java/Net to Applet' and build and install the resulting java code.
<li>After you've chosen the 'Add Tools' menubar option in the VPE, the
visual program will execute more slowly under control of the Data Explorer
user interface.
<li>The 'Save as Web Page' option will reset dxexec and start an execution
in order to produce the first batch of images for your web page. This batch
of images allows the web page to be complete at initial browser contact.
This differs conceptually from the way Data Explorer works. When you
run a visualization under control of Data Explorer you must execute once
before you can see any images. If you choose the 'Save as Web Page' option
when the Data Explorer user interface is not connected to dxexec, then
a complete web page will be written however the images will not be saved to
your disk. Of course that's perfectly reasonable if you've already saved
these images.
</ul>
<a name="generated_files"></a>
<h4>The generated files</h4>
Data Explorer will write the following files:
<ul>
<li><i>myprog</i>.html
<li><i>myprog</i>.make
<li><i>myprog</i>.java
<li>For each Image tool which executes <i>myprog%d</i>_0_0.[gif | wrl]
<small>Note that if dxexec is executing in a different directory than
the Data Explorer user interface, you might have to go searching for the
.gif or .wrl files.</small>
</ul>
<a name="makefile"></a>
<h4>The generated makefile</h4>
<i>myprog</i>.make contains values which you can insert using
you favorite editor. A new alternative is to set <a href="Status.htm#changes">
app-defaults</a>.
<blockquote>
<pre>
<b>
JARFILE=<i>installDir</i>/java/htmlpages
JDKFILE=/usr/jdk_base/lib/classes.zip
DXSERVER=<i>installDir</i>/java/server
</b>
</pre>
</blockquote>
DXSERVER_DIR can be set to any directory as long
as that directory is included in <i>installDir</i>/java/server/class/dxserver.paths.
<p>
<p>
<hr>
<p>
<h2> <a name="installing"></a>Installing Java Explorer </h2>
There is no formal installation process
for Java Explorer as there is with most software products
including Data Explorer. These instructions assume some
familiarity with UNIX and pc file systems, http servers,
and browsers.
<p>
<i>installDir</i> refers to the location in which you've
unpacked the compressed tar file.
If you haven't downloaded the distribution yet, click here
for a <a href="http://quad/javaxp_tarfiles/javadx.latest.tar.Z">compressed
tar file</a>
version, or here for a
<a href="http://quad/javaxp_tarfiles/javadx.latest.zip">zip file.</a>
<ol>
<a name="path"></a>
<li>For cshell users... Add <i>installDir</i>/java/server/bin to your path:
<b>
<pre>
$ set path = ($path <i>installDir</i>/java/server/bin)
</pre>
</b>
<li>For pc users... <a href="Status.htm#runthepc">Edit startserver.bat</a>.
<li>Have DX Installed <br>
You need to have a copy of
<A HREF="http://www.almaden.ibm.com/dx/" TARGET="_parent">Data Explorer</a>
installed somewhere on the system on which
you are going to run the http daemon and the
<a href=Status.htm#running>DXserver.</a>
Set DXROOT to where this version of dx is installed (e.g.
/usr/lpp/dx).
<li>Install
<a href="http://www.ics.raleigh.ibm.com/dominogowebserver/" TARGET="_parent">
httpd</a> (optional) <br>
<li>Install JDK. Possible sources are
<a href="http://www.javasoft.com/" TARGET="_parent">JavaSoft</a>
or <a href="http://www.ibm.com/Java" TARGET="_parent">IBM</a>.
<br>
<li>Install a recent version of
<a href="http://home.netscape.com/free.html" TARGET="_parent">Netscape.</a><br>
You'll need Navigator 4.04 to view all the web pages however versions as
early as 3.01 may allow you to view some of the web pages. If you use
Internet Explorer, you'll need 4.0 or later.
</ol>
<p>
<hr>
<h2> <a name="running"> </a>Running the Java Explorer server </h2>
You run one DXServer process on a machine and it serves all requests from
all browsers pointed at the machine.
<p>
The web pages generated using Java Explorer use applets which detect
the ip address of the machine from which they were loaded and attempt to
contact a DXServer using that ip address.
<p>
If you are browsing web pages using a URL beginning with file:/, then
the applets will be able to use only a DXServer running on the same
machine as your browser.
<p>
After you've extended your
<a href=Status.htm#path>path, </a>
can control the DXServer using the
startserver and stopserver scripts.
<p>
<hr>
<h2> <a name="cmds"> </a>Scripts for controlling DXServer </h2>
These are located in <i>installDir</i>/java/server/bin:
<ul>
<li> <pre><b> Format: startserver [ -webpage htmlfile | [ -outdir dir -outurl url ]] \
[ -help ] [ -debug ] [ -verbose ] [ -memory Mbytes ] \
[ -dxroot dir ] [ -user user ]
-webpage.......complete path of a Java Explorer web page
-outdir........directory into which new images should be written
-outurl........url of the -outdir argument relative to the document base
-help..........this message
-debug.........print message traffic
-verbose.......print cmd line args passed to DXServer
-version.......the software version number of this script
-foreground....run in the foreground in order to satisfy init
-memory........set the amount of memory dxexec uses.
-dxroot........use dir as DXROOT
-user..........run the script under a different user id
-sessions......max number of simultaneous Data Explorer sessions (default: 1)
-morehelp......examples
</b></pre>
<li><pre><b>stopserver [ host ]
host..........the host machine of the DXServer (default is localhost)
</b></pre>
</ul>
<p>
<hr>
<h2> <a name="runthepc"> </a>Running the Java Explorer server on a pc </h2>
A batch file is provided in
<i>installDir</i>/java/server/bin/startserver.bat
to start the pc version of DXServer.
Using an editor such as vi or NotePad on your pc, edit in real
values for <i>DXROOT</i>, <i>JDKPATH</i>, and <i>JXVSPATH</i> in this script.
If you edit this file and then find that it won't run, then reinstall from the
original zip file and re-edit the file using a different
editor. You may have saved unprintable characters in the file.
<hr>
<h2> <a name="configuration"> </a>Configuration Files </h2>
DXServer reads the following files from its current working
directory (which will be <i>installDir</i>/java/server/class):
<ul>
<li><b><i>dxserver.paths</i></b> contains directories which are searched
for visual program files. DXServer locates the .net file prior to instructing
Data Explorer to load the visual program.
<li><b><i>dxserver.hosts</i></b> contains host names. DXServer will
schedule Data Exlporer sessions on the hosts in <i>dxserver.hosts</i>
in round-robin fashion. Before using this mechanism you will want to
modify the following environment variables which are normally set by
the startserver script:
<ul>
<li>$ setenv DXDATA <i>installDir</i>/java/server/userdata
<li>$ setenv DXMACROS <b>$DXROOT</b>/samples/macros:<i>installDir</i>/java/server/dxmacros:<i>installDir</i>/java/server/usermacros
<li>$ setenv DXINCLUDES <b>$DXMACROS</b>
</ul>
The startserver script modifies these for use on localhost. However, settings
which work on localhost won't work on a remote machine.
You must also modify <i>dxserver.paths</i> so that it contains a
pathname beginning with a '/'.
</ul>
Lines beginning with // and empty lines are ignored. DXServer rereads these
files as they are updated, so it isn't necessary to restart.
<p>
<a name="changes"></a>
<hr>
<h2>Changes in this release</h2>
<ul>
<li>Due to an bug in previous versions,
you needed to start the Data Explorer user interface
and the Data Explorer executive separately. That bug has been fixed.
You should load nets saved with an earlier version and save them again.
<li>DXServer will use a single dxexec to service any number of connected
browsers. This should enhance the scalability of Java Explorer. The
startserver script understands a <i>-session</i> command line argument
which allows you to configure the number of dxexecs which DXServer will
start. You'll probably want to user multiple sessions only if you
have multiple machines pointed to by your dxserver.hosts.
<li>Direct interaction uses visual cues which
are similar to those in the Data Explorer user interface such as a rotation
gnomon.
<li>The <i>-memory</i> argument now defaults to no explicit limit on the
amount dxexec will allocate. This is the norm when using Data Explorer and
should provide reasonable behavior given the default number of sessions which
is 1.
<li>Now it should be easy to install web pages in directories
of your choosing rather than having to use <i>installDir</i>/java/htmlpages.
Several changes to the way dxui generates makefiles and html files
and to the startserver script support
this change. You may find it most convenient to have dxui generate a new
makefile and html file for your existing nets in order to take advantage of
these changes. Files generated with an earlier version of Java Explorer
will continue to work, so no action is really required on your part.
<p>
The issue to be aware and careful of is applets which share a codebase
will be allowed to interoperate. From now on dxui will generate applet
tags with a codebase="../". Then individual jar files are located
relative to that codebase. The obvious alternative is an applet tag
with a relative pathname in the code parameter which isn't legal.
<li>In addition to gif images and vrml worlds, dx objects can now be
transfered into a web page through Java Explorer. This feature uses
an ActiveX component in the web page and therefore works in Internet
Explorer and not in Netscape. The ActiveX component uses a copy of
Data Explorer installed on the machine which runs the browser in order
to render its image. This also requires adding tear.exe to your path.
<p>
This technique should be useful for web pages which benefit from frequent
camera manipulation.
<li>A setting in your $HOME/DX file - DX*htmlDir - should be changed so
that it does not include the htmlpages directory. For example:
<pre>
DX*htmlDir: /usr/http/java
</pre>
<li>Two new settings in $HOME/DX are now used. They are
<b>DX*userHtmlDir</b> and <b>DX*userJarFile</b>. The default settings are
<b>user</b> and <b>user.jar</b> respectively. Consequently, dxui will
generate makefiles which compile applets into user.jar and install user.jar
into <i>htmlDir/userHtmlDir</i>. By default, all web pages generated by
dxui will not be installed into <i>installDir</i>/java/htmlpages. Instead
they'll be installed into a directory beside htmlpages.
<li>The net files you save for use with DXServer, have always used
a special version of the Image macro. Now, the macro uses an internal
cache setting of <i>CACHE_LAST</i> which should save memory.
<li>This 2.0.0 release begins adding the ability to use a gui builder such as
<a href="http://www.software.ibm.com/ad/vajava/about.htm">VisualAge</a>
to combine Java Explorer's machine generated java code with customized
gui interfaces for your web pages. Future releases will include examples
of such applets. Combining the capabilites of Java Explorer with VisualAge
involves importing Java Explorer's jar file, making an applet which
subclasses dx.net.DXLinkApplication, and setting some of
Java Explorer's properties. The documentation you would need for this
is missing, so it's virtually impossible to do.
</ul>
<a href="earlier.htm">Changes in earlier</a> releases.
<hr>
<h2> <a name="interfaces"></a>Java Interfaces</h2>
<pre>
package dx.net;
public interface DXLinkHandler {
public void outputHandler(String key, String msg, Object data);
public boolean hasHandler(String key);
};
</pre>
<p>
outputHandler() will be called once each time a value is received
from Data Explorer for the corresponding DXLOutput tool. The name
of the tool will be in <i>key</i>.
<p>
hasHandler() will be called by Java Explorer to determine if the applet
intends to handle messages produced the the DXLOutput tool named in
<i>key</i>.
<hr>
<h2> <a name="references"></a>References</h2>
<blockquote>
Richard Brealy and Stewart Myers 1981. <i>Principles of
Corporate Finance</i>. McGraw-Hill Book Company
</blockquote>
<hr>
<h2> <a name="bugs"></a>Bugs/Issues</h2>
You should expect to have to find workarounds for things in the
'Issues' list and software fixes in Java Explorer for things in the
'Bugs' list.
<h3>Issues</h3>
<ul>
<li>Data driven selector interactors don't work in the following
circumstances:
<ol>
<li>The selector interactor style was set to 'Option Menu'
in the Data Explorer control panel, <b>AND</b>
<li>The browser is Netscape 4.05 or earlier.
</ol>
This is very unfortunate since 'Option Menu' style selector
interactors account for a large fraction of all data driven
interactors. Some factors which make the problem a little less
serious:
<ol>
<li>The latest version of the Data Explorer user interface
offers a new style - 'Scrolled List' - of selector interactor.
<li>The interactors do work using Internet Explorer 4.0 or later.
</ol>
The symptom you will see if you use a data driven selector in
a Netscape browser is that the menu gets larger and larger with
each execution of the visual program. The root cause of the problem
is that Netscape's version of Java supports only the Java 1.0 api
for handling the Java Choice gui object. It was only with Java 1.1
that the possibility of implementing such a beast was provided.
<li>All browsers used in testing this software exhibit
certain cranky behavior
when redrawing screen contents during a scrolling operations.
The symptom is incorrectly drawn images or applets. Sometimes
an applet is left completely blank. The workaround with Netscape
4.04, 4.05 and Internet Explorer 4.0 seems to be to select 'Reload'
or 'Refresh'.
</ul>
<h3>Bugs</h3>
<ul>
<li>There are inputs of some interactors whose data driven-ness is
not handled. This is simply a matter of the software being incomplete.
Those that are handled:
<ul>
<li>Reset
<li>Scalar, Integer, Vector
<ul> <li>min, max, delta, value, decimals </ul>
<li>Selector, SelectorList
<ul> <li>stringdata, valuelist, index </ul>
<li>Toggle
<ul> <li>setvalue, unsetvalue</ul>
</ul>
<li>Data Explorer generates incorrect java code if an interactor
in your visual program has multiple interactors in control panels.
<li>Pan mode does not work if the image tool is using a perspective camera.
<li>Scalar and Integer interactor nodes may have associated with them
only stepper interactors in control panels. Any other interactor
types will cause runtime errors.
<li>Data Explorer's ui provides no way for the visual program author
or the web page author to enter certain values:
<ul>
<li>Locations of class files in the generated makefile needed for compiling.
<li>Destination directory in the generated makefile needed for installing.
<li>Ordering of control panels within the generated applet.
<li>The contents of the 'Select an Image Tool' menu in the
'Execution' panel of the generated applet are
based only on which Images were named in the original .net file.
(See 'Edit/Change Image Name' on the menubar of a DX Image window.)
</ul>
<li>Differences in width and height requirements between the
java and OSF/Motif versions of interactors can lead to overlapping interactors.
As a workaround make the OSF/Motif interactors in the original visual
program about a 1/4 of an inch larger than they need to be.
<li>Although your visual program may contain many Image tools, execution
of the program in web page mode will update only those images which
actually change as a result of an execution. (That's a good thing.)
However if an image tool's defaultCamera input param in wired in then
a new image will be transmitted to the browser with each execution.
This is currently a problem even if resetCamera remains 0.
<li>The <a href="Status.htm#configuration">distributed execution</a> mechanism
works badly on AIX4.1. Because of an apparent limitation on the use
of popen to run remote programs via rsh, DXServer can not run multiple
simultaneous sessions. In other words if you point more than browsers
at pages served by a DXServer spawning remote dx sessions, the DXServer
will hang. You'll have to use <b>$ kill -9 <pid> </b> to clean up after
it. This mechanism does work on AIX4.2.
</ul>
<p>
<hr> <b> [ <a href="http://www.ibm.com/" TARGET=_parent>IBM home page</a> |
<a href="http://www.ibm.com/Orders/" TARGET=_parent>Order</a> |
<a href="http://www.ibm.com/Search/" TARGET=_parent>Search</a> |
<a href="http://www.ibm.com/Assist/" TARGET=_parent>Contact IBM</a> |
<a href="http://www.ibm.com/Finding/" TARGET=_parent>Help</a> |
<a href="http://www.ibm.com/copyright.html" TARGET=_parent>(C)</a> |
<a href="http://www.ibm.com/trademarks.html" TARGET=_parent>(TM)</a> ] </b>
</body>
</html>
|