Title: Other Peoples Software
1Other Peoples Software
- Group E
- Interfaces to Scientific Data Archives
- Workshop
2Background Comments
- Small workshops are great for exchanging ideas
but not for gathering large samples of data on
specific packages - Therefore we had difficulty identifying strengths
and shortcomings of existing software in areas
such as data exchange - need follow-up study?
- see question E-7, for example
3What software technologies have resulted in
effective user interfaces?
- Html a real success
- object-oriented technologies
- scripting languages
- widgets
- a good example of reusable code
- All of above very broad-based
- used in entire computing industry
- millions use them
- All also very structured
4What software technologies have resulted in
effective user interfaces?
- The 2 models in The Cathedral and the Bazaar by
Eric Raymond have both been successful and are
represented in list above - bazaar Linux, X, Gnu
- cathedral PowerPoint
5What software technologies have NOT resulted in
effective user interfaces?
- We punted on this one
- see slide on background comments
6What software standards have been used in case
studies?
7What software standards have been used for viz?
- Xlib graphics in XtalView
- great portability across Unix machines, lowest
common denominator - obnoxious to maintain and develop but successful
(users like resulting interface) - obsolescent, now using OpenGL for graphics
- Xview for GUI
- porting to 64-bit system was difficult
8What software standards/packages have been used
for viz?
- TCL-tk used in SkyCat (LIGO will probably use as
its standard) - interpreted language, similar to LISP
- rapid prototyping
- freely available source for Unix systems
- compiled code available for Suns, SGIs, Windows,
and Macs - used in Quanta
- a widely used chemistry package prod. by MSI Inc
- can use the OpenGL API
9What software standards/packages have been used
for viz?
- LIGO (as did other projects) considered AVS but
licensing, difficulty of use led to its
abandonment - Postscript
- not viz as such but can be used to display
- can be used as an exchange format
10What software standards/packages have been used
for viz?
- XVT, a comml product (GUI builder)
- portable across Unix, Macs, Windows
- will Java replace it?
- Web-enabled XVT under development
11What platforms do users want supported for viz
nowadays?
- Windows NT
- Linux
- vendor Unix workstations still major segment
- as opposed to Linux
- Use of web browsers reduces support issues
- but client code may still be platform dependent
12What Data Exchange Formats Have Been Successful?
- ASCII
- PostScript/PDF
- XDR
- HDF, DIF, etc.
- Gif, jpeg, mpeg,
- sgml
13What software standards/packages have been used
for DB?
- Nucleic acid DB uses Sybase for relational part
(but designed so could easily port) - metadata complicated but schema written in such a
way that can transform - ESO has used Sybase since 1985
- as have several others, for some years
- SDSC has used Oracle, not too bad
14What software standards/packages have been used
for DB?
- Caltech seismo lab is going to try Oracle
- had home-grown till now
- A project started with Britton-Lee Database
Machine, then ported to Sybase, now going to
SQL-server (Microsoft, on NT) - Ecodata project at SDSC now using Oracle for
metadata interfaced to SRB for HPSS for base data
15Observations re use of DBMS
- Use DBMS for the metadata, not for the data
itself if records are very large - manage the data via pointers
- Use DBMS if have
- fixed data model
- size of records not too large
- have many records
- The point is that metadata easier to move to a
different DBMS than data itself
16Observations re use of DBMS
- Relational models provide transportability
- object DBs do not yet have model that provides
portability - European Southern Observatory designed interface
between web and the DBMS to reduce dependence on
DBMS
17What software standards are emerging/disappearing
for viz, DB, etc.
18JAVA or not?
- When will it be portable everywhere?
- There was a report of difficulty in porting to
Macs, e.g. - Dependent on a vendors virtual machine
- can cause incompatibility with other packages
- Tower of Babel
- HP introducing its own version,
19JAVA or not?
- Performance
- Numerical behavior
- NCSA (in HDF context) had difficulty in
transferring data structures - Strong typing in Java a plus for portability
20May (not should) mgt recommend or require that
clients install a particular software package?
- Yes, if
- free or inexpensive
- very easy to install
- runs on most platforms (OS and hardware)
- long-term maintenance/development is feasible and
planned - but 15 years is a long time, may not be able to
- counter-example emacs
21May (not should) mgt recommend or require that
clients install a particular software package?
- Advantages
- avoids having to re-implement many things
- Xlibs, Java beans, e.g.
- higher quality in some cases
- parsing tools Perl, cgi scripts
- numerical algorithms and their implementation
- BLAS 1, 2, 3
- Examples
- MATLAB as required base
- project-developed toolkit as add-on
22May (not should) mgt recommend or require that
clients install a particular software package?
- In graphics/GUI area, no clear examples
- tend to be tied to underlying system (Motif,
e.g.) - But Java will solve everything
- just a joke
23How protect against changes or disappearance of
software packages, future price gouging, etc.?
- Pragmatic Cant, assume will have to transition
periodically to other technologies - High-minded design overall system so that
swapping subsytems is feasible - broker paradigm should help
24When adopting a standard, what is difference
between choosing commercial and free software?
- No marked difference
- support can be as good for free software
- in some cases can buy support for free software
- longevity likewise
- even popular free software can lose support
(Xview) - commercial packages of course sometimes die
- Caveat emptor
25Compare protocols for storing and communicating
data
- In terms of
- portability
- efficiency
- transparency
- openness
- security
- Sidestep issue by using brokers that enable
separation of storage and transport issues from
the application - but then need to choose appropriate broker taking
5 issues above into account
26Protocols for storing and communicating data
- There are successful examples, most within a
discipline - STAR (self-describing text archive)
- for crystallography, subset called CIF
- in PDS
- ODL (object description language)
- In astronomy
- FITS (flexible image transport)
- HDF
- netCDF
27What is the transition path from a small to a
large library?
- See the Mythical Man Month
- Plan to re-write the small system to effect the
transition
28Gradual learning path for using advanced software
technologies
- Design system so that effort to learn is
proportional to - complexity of task or
- level of performance needed
- Analogy using computers with complex
architectures can ignore architecture if
performance not an issue - Eventually will be able to hide complexity
29How use products of DL Initiative for scientific
archives?
- Need to know more about the products of the DLI
- excuse our ignorance
30What role is there for CORBA?
- No opinion
- But the broker function is clearly a key one
- for separating applications from specific
implementations - for separating data archives from data base
systems, e.g.
31When should software be acquired and when should
it be made?
- Build your own
- take care to use the right tools/toolkits
- re-use if at all possible
- using open source software will enable you to
control your own destiny - C, C, Java, Perl, tcl-tk will be around
32When should software be acquired and when should
it be made?
- Acquire packages
- pick software that will probably be around for a
long time - use it in a way that provides escape hatch
- be prepared to have to switch (get new product)
- develop a migration plan from the beginning
33Summary
- As usual with software-related topics, there is
no clear answer to most questions - It would be useful to get a larger sample of
experience data than our small group contained - There are clear success stories in the use (and
re-use) of free software and de facto standards
as well as with commercial packages and formal
standards
34Summary
- The use of brokers, of client-server models, of
web browser interfaces will facilitate the use of
other peoples software - Some of the most useful other peoples software
is in the form of tools (compilers, scripting
languages) and toolkits (libraries) - as opposed to complete packages