FreeHEP 2000 - Chep 2000 Home Page
Download
Report
Transcript FreeHEP 2000 - Chep 2000 Home Page
FreeHEP 2000
CHEP – February 2000
Tony Johnson – SLAC
Saul Youssef - SCRI
Contents
What is FreeHEP (2000)
Goals
Implementation
Status
What is FreeHEP?
FreeHEP is a database of HEP software
– Conceived in 1991 at SSC “HEPLib” workshop
• Desire to break “free” from CERNLib
– Implemented in 1992 using:
• Newly invented WWW
• SPIRES database at SLAC
• Anonymous FTP server at FSU
– One of the first databases interfaced to the web
• The first to allow incremental searching
FreeHEP circa 1993
FreeHEP grew fast
– Contained almost 200 programs
• About 1/3 programs are MC generators.
– System of “Editors” for each subject area
• Good for getting things started
– Editors actively solicited entries in their subject area
FreeHEP circa 1998
First WWW database becomes
– Most obsolete WWW database
• Moved from VM to Unix but maintained original
architecture (CGI+Rexx+SPIRES)
– Entries have not remained up-to-date
• System of Editors proved to be too inertial
Why FreeHEP 2000?
New era of small reusable “open-source” software
projects makes motivation for FreeHEP stronger
than ever.
– Need to be able to find out what others have done
New strategy to make database “self-service”
– Distributed management of database entries
– Anyone in HEP community can create and maintain
entries
Update the database to use latest web technologies
Interest areas for collaboration/discussion
Goals
New entries can be created using web form
Each entry has one or more maintainers
– Maintainer can update information via web form
– Each entry must be updated or checked each
year
• Automatic e-mail notification
• Automatic checking of URL links
• Stale entries marked as “inactive”
Import/Export to other databases
– Allow mass import from other databases
• e.g. Fermitools – imported entries marked read-only
– Allow mirroring of entire database
Implementation
Implemented as a “Web Application”
– Use Model-View-Controller architecture
– Pure Java, portable to many different
platforms/architectures
– “Object” database for data storage
– XML for import/export
Model-View-Controller
Architecture
Database
FreeHEP
Servlet
Browser
View
Templates
Response
JSP
JSP
JSP
Database Architecture
Wanted to use SQL database (Access)
– Planned to use JDBC 2 to access/update db
• With Updateable RowSets
– Allows db rows to be updated/added/deleted without
needing to generate explicit SQL.
• Reference implementations
– Don’t exist in JDK 1.2
– Broken in JDK 1.3
• Tried several commercial implementation
– All had bugs which made them hard to use
Simple Object Database
Eventually abandoned JDBC
– Simple homegrown “object” database
• Uses Java serialization + soft pointers
• Optimized for Web Use
– Many readers – multi threaded
– Single write lock
• Isolated transaction + commit/rollback
Database Layout
Program Database
Field
Description
Name
Name of the program or package
Version
Most recent version number
Title
Short (one line) description
Authors
List of authors
Maintainers
Record maintainer(s)
Abstract
Longer description of the package.
Keywords
Keywords (used for searching)
Sections
Section(s) under which this entry will be listed.
License
Commercial, GPL, etc.
Requirements
Compilers, OS, etc required to use package.
Cross-References
Cross-references to other entries in the database.
Home Page
Link to home page for package
Documentation
Link to documentation page for package
Download
Link to download page for package
Creation Date
Date when the record was created
Last Modified Date
Date when the record was last updated or checked for accuracy.
Active Flag
Flags if this entry is active (see text)
XML Import/Export
Simple format for input/output
– Can be set up for automatic (nightly)
import/export
– Imported records marked as read-only
Ideally would use common format with
other commercial/shareware databases
XML Example
< p ro g ram n am e= "F reeH E P ">
< title> F reeH E P 2 0 0 0 < /title>
< ab stract> A d atab ase fo r H E P so ftw are, alg o rith m s, g en erato rs etc.< /ab stract>
< au th o r first= "T o n y " last= "Jo h n so n " e-m ail= "to n y j@ freeh ep .o rg "/>
< au th o r first= "S au l" last= "Y o u ssef" e-m ail= "y o u ssef@ scri.fsu .ed u "/>
< m ain tain er first= "T o n y " last= "Jo h n so n " e-m ail= "to n y j@ freeh ep .o rg "/>
< h o m ep ag e h ref= "h ttp ://w w w .freeh ep .o rg "/>
< sectio n n am e= "d atab ases"/>
< sectio n n am e= "g en eral_ lib raries"/>
< seealso n am e= "F erm ito o ls"/>
< k ey w o rd n am e= "L ib rary "/>
< /p ro g ram >
Java Interest Area
First interest area is set up
– Web page with links to HEP Java Projects
– Mailing list
– CVS repository
• Anyone can get write access
• Sandbox where anyone can put code and get
feedback
• Hopefully will help to combine projects to form
basic HEP-wide Java utility libraries
Status
Loaded new database with contents of old
FreeHEP database
– Testing editing features now
• Debugging authorization scheme
– Will send e-mail to all maintainers of original
programs
– Should be ready for new entries by mid-March
First interest area ready now
– http://java.freehep.org
Conclusion
Remember this address:
– www.freehep.org
– Check back in April