[kepler-dev] Installation ?

Kenneth Evans evans at aps.anl.gov
Tue Nov 6 13:39:03 PST 2007


Dan,

>> I think we discovered that Java's jni calls don't necessarily follow
Microsoft's search order.

Yeah, JNI loads probably only follow java.library.path.  Maybe setting that
is the right way to go.

In any event, supporting multiple platforms _is_ hard.  And Java does go a
long way to help.  It was impressive Kepler worked for me so easily on just
copying the files from Windows to Linux.

At ANL there is heavy use of all the four major platforms: Solaris, Linux,
Mac OSX, and Windows.  We would need to support all of these with Kepler.  I
personally have been primarily using Windows for Java development.  I think
it probably works better on Windows (and worst on Solaris ;-).  But sooner
or later the software must run on all four.
 
>> I used to work as a contractor for the Defense Department

Cool. Most of the research done here is not classified.  X-rays have been
very valuable in providing benefits to mankind, starting with medical uses
less than a year after they were "discovered".

        -Ken
________________________________________
From: Dan Higgins [mailto:higgins at nceas.ucsb.edu] 
Sent: Tuesday, November 06, 2007 11:27 AM
To: Kenneth Evans
Cc: 'Kepler Developers'
Subject: Re: [kepler-dev] Installation ?

Hi Kenneth,,
    You may be right that simply putting the DLLs in the Kepler directory
would be sufficient. However, I think we discovered that Java's jni calls
don't necessarily follow Microsoft's search order (and libraries called from
within the Java JNI code don't necessarily follow the Java convention!). In
any case, putting DLLs in WINDOWS/System32 seems to work well with XP (but
you correctly point out that we are going to have to reconsider in light of
Vista).
    In general, there is also the issue of supporting multiple platforms.
You may notice that in $KEPLER/lib/ we have *.dll, *.so, and *.dylib files
(libraries for Windows, Linux, and Mac OSX). Supporting multiple platforms
with platform specific code is 'painful' since each has different search
paths for library files! (This is where Java is really nice!). Does everyone
at ANL use Windows machines?

    BTW, I used to work as a contractor for the Defense Department studying
nuclear weapon effects. Part of that involved a lot of x-ray transport
calculations. So I am interested in seeing that someone is looking into
Kepler for x-ray studies!

Dan Higgins
NCEAS/UCSB

----

Kenneth Evans wrote: 
Dan,

There is a DLL search order (which Microsoft seems to change from time to
time).  It should include the directory from which the program was started,
the directory where the executable (that uses the DLLs) lives, the AppPaths
key in the registry, and the PATH.  (And nowadays there are assemblies, but
I won't touch on that.)

Is it not enough to have the DLLs be in the Kepler directory?  Using the
PATH, would, of course, work, but the user should probably have to set that.

I ask this because on Vista they aren't getting installed into
WINDOWS\system32 anyway.  It is also probably not good practice to install
things into the system areas.  It makes uninstall and cleanup harder, if
nothing else.

This is just a comment.  I have not looked into what Kepler is doing in this
regard, whereas I am sure you have.  I only noticed because the Ant build
fails on Vista.

        -Ken

-----Original Message-----
From: Dan Higgins [mailto:higgins at nceas.ucsb.edu] 
Sent: Monday, November 05, 2007 5:37 PM
To: Kenneth Evans
Cc: 'Kepler Developers'
Subject: Re: [kepler-dev] Installation ?

Kenneth,
    The files that get transferred to WINDOWS/system32 are some 
libraries used by a few Kepler actors that happen to use a JNI 
connection to C/C++ code. The simple zip file does not put these files 
in the correct location. The other limitation (that I can think of at 
the moment) is the modification to the path done by the installer to 
make sure R is on the path (and can be started up when needed by an 
RExpression actor). A full blown installer can do these additional 
tasks. Or, of course, you could include a one-time script with the zip 
to take care of such details.)

Dan

Kenneth Evans wrote:
  
Dan,

That was very helpful.
 
1. I tried the targets 'autobat' and 'autobat_sh'.  They made
auto_kepler.bat and auto_kepler.sh.

2. I copied my checkout, done on Windows, to a Linux machine.

3. I got it to run without too much trouble.  In auto_kepler.sh I had to
change:

    a. Make auto_kepler.sh executable.
    b. Change the line KEP=${0%kepler.sh} -> KEP=${0%auto_kepler.sh}
    c. Change the CLASSPATH . -> ./bin

It mostly worked -- even a web service.  I did have a few problems, which
I'll have to look into more before bothering people.

If you want double-clickable on Windows, you can make a shortcut with the
BAT file as the target.  I had already done this with a BAT file I
    
modified
  
from kepler.bat so I would not have to run from Eclipse.  (I probably
    
should
  
have started with auto_kepler.bat, as that would have the correct
    
CLASSPATH,
  
had it changed.)  I could not find a Kepler .ICO file so I used ptiny.ico
for the shortcut.
 
What about the files that get written to WINDOWS\system32 during the
    
build?
  
They won't have got transferred.

Thanks a lot for the guidance.

        -Ken


-----Original Message-----
From: Dan Higgins [mailto:higgins at nceas.ucsb.edu] 
Sent: Monday, November 05, 2007 12:38 PM
To: Kenneth Evans, Jr.
Cc: 'Kepler Developers'
Subject: Re: [kepler-dev] Installation ?

Hi Kenneth,

You are right about the beta3 installer - it is pretty old. It also has 
a number of bugs that have been fixed in the head of CVS. Hopefully I 
will be geting a new installer version out by the end of the year. The 
installer does take some effort to create, but it requires far less 
effort/knowledge of the user.

The next easiest way to get Kepler is the nightly zipped file. A script 
checks out the latest versions of Ptolemy and Kepler, compiles the code, 
and runs an ant target that writes a batch file (and a shell file) for 
launching Kepler. [See the ant targets 'autobat' and 'autobat_sh'] The 
entire thing is then put into a zip file. The launching script does not 
require the user to set any environment variables and all file 
references are relative. The basic limitation of the zip file is that it 
requires the user to have a working version of the Java JRE and one 
starts Kepler from the command line rather than as a simple double 
clickable application.

Now you could distribute a version of the nightly zipped Kepler and add 
on your actors saved as KAR file. These addons could then be loaded from 
the file menu. Or you could upload any specialized actors to the 
repository and let the users download them. Or you could simply zip your 
entire customized system.

Dan Higgins



Kenneth Evans, Jr. wrote:
  
    
Hi,

I now have a developer's version of Kepler installed in Eclipse and
      
pretty
  
much working (for me).  If I want to give this installation to a user,
      
how
  
would I go about doing it?

We can assume the user would just want to run an executable to make
workflows, not do things like Ant or create actors.  That seems to be the
primary intended use of Kepler.

The beta3 downloadable version is pretty old, so the question is perhaps
    
      
how
  
    
would I go about making a replacement of it with the current version and
with our stuff in it.  Perhaps there is an Ant target?

Part of the reason is that if we are going to use Kepler, I need to get
buy-in from the users.  This would mean letting them try it (without
    
      
having
  
    
the problems I have had ;-).

I probably should say the anticipated use is for x-ray experiments and
    
      
data
  
    
analysis at the Advanced Photon Source at Argonne National Laboratory.  I
    
      
am
  
    
in charge of scientific software development there, but not a user
      
myself.
  
This is also for me.  I would like to develop it in one place but run and
test it elsewhere, probably on another platform, and without Eclipse.

Any other advice on how to present and promote Kepler to a set of users
would also be appreciated.

Thanks,

        -Ken


_______________________________________________
Kepler-dev mailing list
Kepler-dev at ecoinformatics.org
http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev

  
    
      

  
    


  



-- 
*******************************************************************
Dan Higgins                                  higgins at nceas.ucsb.edu
http://www.nceas.ucsb.edu/    Ph: 805-893-5127
National Center for Ecological Analysis and Synthesis (NCEAS) Marine Science
Building - Room 3405
Santa Barbara, CA 93195
*******************************************************************



More information about the Kepler-dev mailing list