|
The browser aims at providing "Babar-specific" views of Objectivity
databases. Detailed requirements have not yet been finalized. It is hoped that requests
for features will come from the user community - Your comments are welcome. Please send
all bug reports and feedback to the BaBar OO
Databases hypernews group.
Now Available: The BdbEBrowser applet
(05/10/01)
If you wish to browse the BaBar production federations (analboot,
analboot2, sp1analboot, etc.) you need not bother dealing the BdbTools
package. The
BdbEBrowser client is now available as a Java 1.3 web applet.
Testing has been successful on Windows, Solaris and Linux. I
recommend you use your native desktop's web browser (Netscape or IE)
for the best graphics performance.
You can get started by simply launching the
applet. If you do not have the Java 1.3 plug-in installed, you will be
automatically re-directed to the plug-in download site. This is a
one-time installation and should not take longer than a few minutes.
Please read the notes below.
Windows users
Launch
the applet and if necessary, follow the on-screen Java 1.3 plug-in
installation instructions.
Solaris users
If you already have Java 1.3 on your filesystem (this includes SLAC
AFS machines), there's no need for any further installation! Locate
the path to the Java 1.3 distribution and set the NPX_PLUGIN_PATH
environment variable. It probably makes sense if you add this to your
shell startup file.
For example, on a SLAC Solaris machine with AFS, do the following:
setenv NPX_PLUGIN_PATH /afs/slac/package/java/@sys/jdk1.3/jre/plugin/sparc
For other sites, you need to alter the base of the path (/afs/slac/package/java/@sys/jdk1.3)
accordingly.
Restart Netscape and launch
the applet.
Linux users
Currently only Sun's (not IBM's) Java 1.3 plug-in is supported. If
you already have the Sun Java 1.3 distribution installed (this
includes SLAC AFS machines), simply set the NPX_PLUGIN_PATH variable
accordingly.
For example, on a SLAC Linux machine with AFS, do the following:
setenv NPX_PLUGIN_PATH /afs/slac/package/java/@sys/jdk1.3-sun/jre/plugin/i386/ns4
For other sites, you need to alter the base of the path (/afs/slac/package/java/@sys/jdk1.3)
accordingly.
Restart Netscape and launch
the applet.
Applet Security
The applet code has been digitally signed with a code signing
certificate obtained from Verisign,
a well recognized computing security agency. Code signing prevents
unauthorized parties from tampering with code in addition to
verifying the code signer's identity. Granting permissions to
signed applet allows to the code to bypass the default applet security
restrictions related to network connections and local filesystem
access.

Browsing
Once the browser is running, a dialog window will display the list of all the currently active servers.
Select a server by highlighting a bootfile entry. You may then choose to browse a server
or shut it down (careful!)

The main GUI panel contains two tree widgets. They allow you to browse through database
files and event collections respectively. Place
the mouse pointer above a database icon for a brief moment: The database ID should be
displayed in the form of a "tooltip".

The system is comprised of distributed objects which use CORBA to communicate. Server
objects (BarB_server) are implemented in C++, using the Objectivity API to access
federations (strictly read-only for the moment). Each server is a single process and may
access only one federation during it's lifetime. The client is a 100% Java GUI,
completely independent of Objectivity and may even be launched within an applet.
NOTE: The high-level tree heirarchy information is obtained from the treenode
databases. Not all databases will be visible from within the browser!
The pop-up menus
Both the Database tree and Event Collection tree have pop-up menus which may be
accessed by clicking the right hand mouse button. You may hide the database/collection
icons if you're browsing a large federation. Also, you may choose to display the number of
events by default. Use this option with care since database access is required in order to
retrieve the number of events.

The Database tree presents either a logical or physical abstraction of the database
hierarchy. The logical view is a BaBar-oriented structure of domains and authorization
levels. The physical view shows the placement of databases according to file hosts and
filesystem paths.

Print to File
There is now a feature allowing you to save an ascii (text) representation of the
Database and Event Collection trees to a file. Invoke the command through the tree pop-up
menus. NOTE: When you specify a filename that already exists, it will be appended!! A
timestamp is also included in the output so the file will resemble a log.
The ability to browse event collections is a high priority in the list of requirements.
Double-clicking on a collection will now allow you to view the list of event IDs and any
subcollections. Double-clicking on an event entry will open up a new window displaying
event information. The list of event stages will be shown. If the Event contains a tag,
the tag data will be listed. Please use with caution especially if other users are writing
to a federation.

In the case of collections that contain descriptions of tag attributes, you can make
simple tag queries. The Event browser (shown above) now displays an "Event
Filter" button. If the button is active, the collection contains tag descriptions.
Double-clicking on an Event entry will display it's tag attributes. These attributes may
be used as a means of selection. Use the "Event Filter" button to open the
Filter dialog window. Select an attribute and a value. Apply your selection and now the
Event browser will only display events which match the selection - simple.

Scanning collections
As an aid to data distribution, you can scan an event collection to obtain the list of
associated databases. Place the mouse pointer on a collection in the event collection tree
and click on the right hand button. Select the "database scan" command. When the
scan is complete (be patient), the list of corresponding databases will be shown in place
of the database tree (left side of the window). The pull-down menu above the tree pane
allows you to switch between the database tree and scanned collections. If you now view
the database tree and display it's pop-up menu you'll notice a change:

In addition to the regular commands you'll notice that the scanned collections are also
present. Select one or more collections and when you browse the database tree, any
databases which belong to the list of scans will be highlighted.
Recent changes
BdbTools V00-01-10
The database scan interface has now been linked to the database tree. Removed some
toolbar buttons and added pull down menus for bootfile selection and the database tree.
Fixed an annoying bug related to tag iteration which generated ooVArray bounds errors.
BdbEvent no longer inherits behaviour from BdbGenericHdr.
BdbTools V00-01-08
Several changes have been made to underlying BaBar packages. In order to use this
version, you should be working with BaBar 8.3.0. Multi-threaded servers are now an option.
If you think you need to make use of this feature, contact
me. Client window management has been improved along with event collection navigation.
BdbTools V00-01-06
The browser has moved to the "new" EventID mechanism. No more major ID and
minor ID. The timestamp is shown in the collection window along with the run number. Also,
objects contained within the event header trees are now visible.
BdbTools V00-01-05
Collections may now be "scanned" to obtain the list of associated databases.
This should be a useful aid to data distribution. Note that scanning can take a VERY long
time if the collection is part of the analysis federation.
BdbTools V00-01-04
A nasty bug which prevented access to event collections was fixed. This was related to
the change of BdbEvent class. Table widgets have been introduced, improving the layout of
tag information.
BdbTools V00-01-02
Event tag information is now accessible. Simple tag selection may now be used.
BdbTools V00-01-01
Work has begun on browsing collections. A new interface lets users browse the list of
events in a scalable manner. Changes are being made to the BdbEventStore package regularly
so frequent updates to the browser are to be expected.
BdbTools V00-01-00
The GUI has undergone a facelift, the buttons now have icons and a new widget allows
quick access to servers. A "Print to File" feature has also been added.
BdbTools V00-00-08
Servers can now be run outside of the slac domain. The location of the NamingService
resource has been moved to AFS. What does this mean? Well, I ran a server at in2p3
(against a federation at in2p3) and I was able to browse it at SLAC. Performance was very
satisfactory.
BdbTools V00-00-07
Pop-up menus have been added to both the Database Tree and the Event Collection Tree
(with the mouse pointer positioned in either tree, click and hold the right button).
Currently, you may toggle Tree Node icons on or off. This makes better use of screen space
and is ideal when dealing with large numbers of Event Collections/Databases. Also, the
Event Collection Pop-up menu allows users to automatically display the number of events
for all Event Collections within a sublevel. Use with caution!! This feature may generate
a large number of read locks.
The number of Event Collections within an Event Collection is now displayed (Double
click on a collection icon). Expect this interface to be improved with time.
A signal handler has been added to the BarB_server to catch <crtl>-c and
"kill" signals. The handler then unbinds the server's name from the Naming
Service.
BdbTools V00-00-05
The CORBA NameService is essentially a Yellow Pages for CORBA objects. The browser
system uses the NameService to register the references of the C++ servers. There are two
ways to aquire the reference to the NameService: Either through a subnet broadcast or by
passing the address to the CORBA program as an argument. Currently, I have opted for the
latter since I cannot control who starts up a NameService on any given subnet.
|