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 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 Browser FreeHEP Servlet JSP Response View Templates
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 FieldDescription NameName of the program or package VersionMost recent version number TitleShort (one line) description AuthorsList of authors MaintainersRecord maintainer(s) AbstractLonger description of the package. KeywordsKeywords (used for searching) SectionsSection(s) under which this entry will be listed. LicenseCommercial, GPL, etc. RequirementsCompilers, OS, etc required to use package. Cross-ReferencesCross-references to other entries in the database. Home PageLink to home page for package DocumentationLink to documentation page for package DownloadLink to download page for package Creation DateDate when the record was created Last Modified DateDate when the record was last updated or checked for accuracy. Active FlagFlags 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
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 to all maintainers of original programs –Should be ready for new entries by mid-March First interest area ready now –
Conclusion Remember this address: – –Check back in April