Download presentation
Presentation is loading. Please wait.
Published byLee Bruce Modified over 9 years ago
1
Java Analysis Studio Tony Johnson tony_johnson@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. Java Source code Java “Bytecodes” Compiler MacUnixPC Bytecode Interpreter JIT Compiler Machine Code
5
Totally Buzzword Compliant Simple –well, simpler than C++ Object Orientated –more so than C++ Distributed –Built in support for Internet protocols, URL’s, 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
Where’s the Meat? JDK 1.1 adds: –Object reflection –Object serialization –Remote Method Invocation –CORBA support –JDBC interface –Standardized native interface –2d+3d 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 GUI Data Analysis Engine Users Java Code Experiment Interface Java Compiler + Debugger Experiment Extensions (Event Display) TCP/IP Network Padded Cell C++ Code Data Zebra Jazelle Paw Root Objectivity
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 IDE’s Extensions Components Use commercial “components” where ever possible –Don’t 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 Analysis Studio Histogram Analysis Studio Plot Data request Data + Update Notifications
14
Implementation - Remote Objects Histogram Analysis Studio Histogram Analysis Studio Plot Remote Adaptors Deal with data batching, Caching, network exceptions
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 ( ) –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 –client+server –masochists only! –Join discussion group –We want your input Ideas, Opinions and/or Code!
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.