Java Analysis Studio - PowerPoint PPT Presentation

About This Presentation
Title:

Java Analysis Studio

Description:

Eventually someone wrote HotJava Browser, which could run Java Applets. Adopted by Netscape, Microsoft, Sun etc. as Web Programming Language. More than just a Web Tool ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 19
Provided by: TonyJo4
Category:

less

Transcript and Presenter's Notes

Title: Java Analysis Studio


1
Java Analysis Studio
  • Tony Johnson
  • tony_johnson_at_slac.stanford.edu
  • Stanford Linear Accelerator Center
  • CHEP 97 - April 1997

2
Contents
  • Java Analysis Studio - Goals
  • Intro to Java
  • Why Java for Distributed Physics Analysis?
  • Implementation
  • Why Java - Reprise
  • Demo
  • Current Status Plans Call for Input

3
Java Analysis Studio - Goals
  • Project based
  • Data, histograms, fits, programs all stored in
    project.
  • Can close project and return to exact same place
    tomorrow
  • Experiment/Data format independent
  • Distributed data analysis
  • Integrated with other applications
  • Analysis code written in Java
  • Java excellent language for RAD physics
    analysis
  • Build on SLD experience with IDA
  • Provide a rich set of OO analysis tools
  • Histograms, plots, fits etc.
  • Portable
  • compiled on desktop
  • executed on dataserver
  • Supports Remote debugging
  • Efficient (JIT)
  • Widespread industry support

4
What is Java?
  • History
  • Originally designed (1991) as a small language
    for consumer electronics (cable boxes, toasters
    etc.)
  • Eventually someone wrote HotJava Browser, which
    could run Java Applets
  • Adopted by Netscape, Microsoft, Sun etc. as Web
    Programming Language.
  • More than just a Web Tool
  • Java is a fully functional, platform independent,
    programming language
  • Powerful set of machine independent libraries,
    including windowing library.

5
Totally Buzzword Compliant
  • Simple
  • well, simpler than C
  • Object Orientated
  • more so than C
  • Distributed
  • Built in support for Internet protocols, URLs,
    HTTP, Remote Method Invocation, DB access etc.
  • Robust
  • Impossible to create memory leaks, go beyond
    the end of an array, corrupt stack or code
  • Secure
  • Bytecode verifier, padded cell
  • Architecture Neural, Portable
  • Runs on PC, MAC, Unix, VMS
  • Interpreted
  • Compiler converts code into machine independent
    bytecodes
  • High Performance
  • With JIT compiler still 2-3 times slower than
    native C, but...
  • Multithreaded
  • Language has direct support for multithreading
    (cf. subprocesses)
  • Dynamic
  • Libraries can change without recompiling programs
    that use them

6
Wheres the Meat?
  • JDK 1.1 adds
  • Object reflection
  • Object serialization
  • Remote Method Invocation
  • CORBA support
  • JDBC interface
  • Standardized native interface
  • 2d3d API on the way
  • Extensive built in library (including Math)
  • Can read in unknown data and analyze it
  • Can really store objects in databases (not just
    object data)
  • Client Server applications straightforward

7
Why Learn Java?
  • Stepping stone to C
  • Cleaner syntax
  • not backward compatible with C
  • More concerned with programmer efficiency than
    run-time efficiency
  • Far less gotchas
  • Especially memory management
  • Full object orientated language
  • Syntax very similar to C
  • Good language for writing medium sized portable
    applications, including GUI applications
  • Good candidate to replace KUIP/Comis/IDA/etc as
    physics analysis language
  • Web Applets
  • Hopefully useful ones
  • Database access
  • Data presentation

8
Java for Physics Analysis
9
Java for Physics Analysis - 2
10
Implementation- Model
TCP/IP Network
Data Analysis Engine
GUI
Padded Cell
Experiment Extensions (Event Display)
  • Data
  • Zebra
  • Jazelle
  • Paw
  • Root
  • Objectivity

Experiment Interface
C Code
11
Implementation - Details
  • Original plan was to write C/MFC/COM
    application for Windows
  • Later converted to 100 pure Java
  • Works everywhere
  • Fast (enough)
  • Rapid deployment of commercial tools
  • IDEs
  • Extensions
  • Components
  • Use commercial components where ever possible
  • Dont want to write our own plotting package
  • Olectra Chart
  • C activeX control
  • Jchart
  • Java Bean
  • Wrap in interface layer to make it possible to
    change later.

12
C/Java Comparison
13
Implementation - Local Objects
Histogram
Plot
Analysis Studio Histogram
Analysis Studio Plot
Data request
Data Update Notifications
14
Implementation - Remote Objects
Histogram
Plot
Remote Adaptors Deal with data batching, Caching,
network exceptions
Analysis Studio Histogram
Analysis Studio Plot
15
Lessons Learned - 1
  • Microsoft programmers drink too much Jolt Cola
  • Win32/MFC/COM/ActiveX system was not designed to
    be easy to learn
  • WHILE (ltusers having problems learning systemgt)
  • ltwrite more documentationgt
  • Microsoft is changing/extending things faster
    than the speed of learning
  • Once things fall into place it is possible to
    exploit Microsoft environment to rapidly build
    applications

16
Lessons Learned - 2
  • Commercial software components can be very cost
    effective
  • Commodity software has large market, therefore
    cheap
  • Commercial plot package with more options than
    HBOOK cost 249, with no run time license.
  • Can wrap commercial components with HEP component
    layer

17
Demo!!!
18
Current Status Plans
  • Web site
  • http//www-sldnt.slac.stanford.edu/JAS
  • Version 0.1 available for download end of April
  • clientserver
  • masochists only!
  • Join discussion group
  • We want your input
  • Ideas, Opinions and/or Code!
Write a Comment
User Comments (0)
About PowerShow.com