180 likes | 362 Views
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
E N D
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 View Templates JSP FreeHEP Servlet Browser Response 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
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) Program Database
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
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