Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann

Slides:



Advertisements
Similar presentations
Chapter 17: WEB COMPONENTS
Advertisements

JAS in SDA. My Experience My assignment was to use JAS to read SDA data and make plots. –I used OSDA and OSDAphysics to read SDA data. OSDA and OSDAphysics.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Victor Serbo, CHEP071 JAIDA, JAS3, WIRED4 and the AIDA tag library - experience and new developments DONSZELMANN, Mark (SLAC)DONSZELMANN, Mark JOHNSON,
Introduction to Java Kiyeol Ryu Java Programming Language.
Servlets and a little bit of Web Services Russell Beale.
JAS – Distributed Data Analysis Grid Enabled Analysis Workshop Caltech - June 23-25, 2003.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
WWW and Internet The Internet Creation of the Web Languages for document description Active web pages.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Victor Serbo, SLAC30 September 2004, Interlaken, Switzerland JASSimApp plugin for JAS3: Interactive Geant4 GUI Serbo, Victor (SLAC) - presenter Donszelmann,
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Understanding and Managing WebSphere V5
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
INTRODUCTION TO WEB DATABASE PROGRAMMING
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Java Analysis Studio Tony Johnson Stanford Linear Accelerator Center CHEP 97 - April 1997.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
JAS3 – Current Status and Prospects by Victor Serbo, SLAC.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
FreeHEP Java Library Mark Dönszelmann, SLAC CHEP, La Jolla, March 2003.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003.
THttpServer class Sergey Linev (GSI). Some history Development was inspired by JSRootIO why not achieve similar functionality with online ROOT application?
JAS/Wired + Geant 4 Tony Johnson July Contents What is JAS? What is WIRED? –Future Directions JAS+AIDA+GAG+Wired + Geant 4= ? Making it easy to.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Writing Extension Modules (Plugins) for JAS 3 Mark Donszelmann Tony Johnson Victor Serbo Max Turri CHEP2004, 27 september-1 october 2004, Interlaken, Switzerland.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
Using JAS3 for LCD Analysis Tony Johnson 20 th May 2003.
CS 7: Introduction to Computer Programming Java and the Internet Sections ,2.1.
JAS3 - A general purpose data analysis framework for HENP and beyond Tony Johnson, Victor Serbo, Max Turri, Mark Dönszelmann, Joseph Perl SLAC.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
WIRED 4 An extensible generic Event Display Mark Donszelmann SLAC, Stanford, U.S.A. CHEP2004, 27 september – 1 october Interlaken, Switzerland.
AIDA Web Interface Tony Johnson, Victor Serbo, Max Turri AIDA Workshop, CERN, July 2003.
COP 3813 Intro to Internet Computing Prof. Roy Levow Lecture 1.
Update on IS performance issues Classes for storing and retrieving scan data from IS GUI updates –Scripting support –Histogramming Overview.
Java Analysis Studio - Status CHEP 98 - September 1998 Tony Johnson - SLAC Jonas Gifford + Kevin Garwood - University of Victoria.
CHEP 2013, Amsterdam Reading ROOT files in a browser ROOT I/O IN JAVASCRIPT B. Bellenot, CERN, PH-SFT B. Linev, GSI, CS-EE.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Visualization of Geant4 Data: Exploiting Component Architecture through AIDA, HepRep, JAS and WIRED Geant4 Workshop, CERN - 2 October 2002 Joseph Perl.
ROOT I/O in JavaScript Browsing ROOT Files on the Web For more information see: For any questions please use following address:
ASP. ASP is a powerful tool for making dynamic and interactive Web pages An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are.
Interactive Data Analysis on the “Grid” Tech-X/SLAC/PPDG:CS-11 Balamurali Ananthan David Alexander
FreeHEP, JAS and WIRED Mark Dönszelmann, CERN/IT Charles Loomis, UC, Santa Cruz ATLAS Software Week, 30 November 2000.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
JAS and JACO – Status Report Atlas Graphics Group August 2000 Tony Johnson.
Features of JAS Plots Plots update in real time. Data for plots can be local or remote (use Java RMI to connect to JAS Data Server). Rich variety of styles.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Predrag Buncic (CERN/PH-SFT) Software Packaging: Can Virtualization help?
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 15: Java Basics Fundamentals of Web Programming.
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
Discussion with Blueprint RTAG August 2002 Tony Johnson SLAC.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Applications Active Web Documents Active Web Documents.
Potential use of JAS/JAIDA etc. SAS J2EE Review
Computer Based Adaptive Testing
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
Java Analysis Studio - Status
Presentation transcript:

Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann Victor Serbo Max Turri Presented at Computing in High Energy Physics Interlaken, Switzerland, September 2004

Contents  Goals  Java IO library for Root –Implementation –Test Suite –Benchmarks –Networked Root IO (rootd/xrootd) –Demo tools –Root Plugin for AIDA  Examples of Use –AIDATLD Web Interface –JAS3 –WIRED4  Future plans  Links for more information

Java Root IO: Goals  Goals –Pure Java package for reading Root Files  Will be extended to writing later –High Performance  We want to do data analysis so we need very good performance –Should not need to know about objects ahead of time (no need for dll’s,.so files etc.)  But should provide full support for reading user- defined objects –Easy to use –Provide access to Root data, not C++ code

Implementation  Use “TStreamerInfo” objects inside Root files (since Root 3.0) to decode contents of file  Dynamically generate Java proxies for each Root object read  Each proxy has custom “streamer” –Build as Java bytecode using BCEL ( –Converted at runtime to machine code by HotSpot VM  Uses java.nio package (new since Java 1.4) –Standard Java package for high-performance binary IO

Implementation Details TStreamerInfo Java Interface Accessor method for each data member.java file Java Proxy Custom version based on how object is stored in file Implements Interface Generator

Example of Use

Test Suite  Most classes are dynamically generated from info in Root file, so are fairly robust against changes  Need bootstrap process, in particularly need enough custom Java classes to read the streamer info, and interpret it –Relatively few classes, but  This tends to change from one Root release to another  Typically have to make small changes in the bootstrap code for each new Root release  We have test suite that creates a set of test files from each new root release, and verifies that our library can read the files. –Currently test , , , , , ,  In addition we have a set of Root files collected from users, and the test suite verifies that we can (continue) to read these files with each release.

Java Root IO - Benchmark  1.4GHz AMD Athlon, Windows XP, 512MByte DDR, ATA100 disk..  S= Split level = 0,1,2  C= Compression = 0,1  Each test run 5 times in succession, lines show range in results –in later runs file is typically cached in memory == faster if task IO limited  Task: Loop over all events, loop over all tracks, sum px for all tracks event files created with “event” test program distributed with Root ( MByte). CSms/Event

Network Root IO (x)rootd  Recently added ability for Java library to talk directly to rootd or xrootd server –Defined “root:” protocol handler for URL class. –Defined Authenticator for authenticating to rootd –Extended RootFileReader to accept (any) URL argument to constructor  If URL corresponds to file: read the file directly  If URL corresponds to root: protocol use xrootd/rootd (random access)  If URL corresponds to http: and web server supports http 1.1 “ranges”, use extended http  Otherwise buffer URL contents into memory and read from there (suitable for small files only).

Authentification Issues  Authentification can be set programmatically, or via GUI Authenticator  Rootd supports many authentification schemes 1. Anonymous (c.f. anonymous ftp) 2. User/Password (clear text) 3. User/Password (RSA encrypted) 4. SCP 5. SSH like 6. GSI certificate 7. UID/GID Currently FreeHep library supports only 1 and 2Currently FreeHep library supports only 1 and 2 Work underway on 3 (but some compatibility problems between Root and Java RSA implementations)Work underway on 3 (but some compatibility problems between Root and Java RSA implementations) Java libraries exist for all other methods, so can be supported in future.Java libraries exist for all other methods, so can be supported in future.

Network Root IO: Example of Use

Demo Apps: Root Object Browser

Demo Apps: Root Histogram Browser

Root Plug-in for JAIDA  JAIDA = Java implementation of AIDA  AIDA = Abstract Interfaces for Data Analysis = Histograms + Tuples + Fitting + Plotting + IO data analysis package –(See Monday’s talk by Victor Serbo)  Root plugin for JAIDA makes it possible to read root files via the AIDA interfaces and treat the objects contained in the root file as AIDA objects –Useful if:  You like AIDA interfaces better than root interfaces  You want to use language not supported by Root  You want to analyze data in mixed formats  You want to work in J2EE, J2ME, Applet etc.

Root Plug-in for JAIDA: Example

Root Java IO: Examples of Use AIDATLD Web Interface JAS3WIRED4

AIDATLD + Root  AIDATLD = AIDA Tag Library for use in JSP pages –Trivial to put “live” histograms on web –Directly supports Root files

AIDATLD Example: GLAST System Tests Web Interface

JAS3 + Root  JAS3 = Modular, Extensible, Data Format Independent data analysis system.  Among many other formats JAS3 supports Root –Contents of Root files can be accessed directly, or via Root->AIDA interface  Full access to AIDA functionality for fitting, projections, plotting etc. –Can operate on Root data  using GUI  using scripting (Python, Pnuts)  using compiled Java code

JAS3 Access to Root Files

JAS3 + Root: Scripting

Root + WIRED4  Build yourself a super cool event display for your custom Root file in under 1 hour!

Future Plans  Continue to track new Root releases –Root network protocol  More work on authentification –Root file writing  Most of work already done by Petr Vokac/Julius Hrivnac  Easier than reading because only need to support one root protocol version  Support Root XML format –Will be much slower, but perhaps more robust  Use LCGDICT system to allow Java access to C++ methods as well as data? –Probably also slower, but more flexible

More Info  Freehep Java Library –  Root IO component of library –  AIDATLD –  JAIDA –  JAS3 –