Title: Java Application Overview
1Java Application Overview
- J. Patrick
- December 10, 2003
2Applications
- Provide primary user interface to the system
- Machine independent / Machine dependent
applications - Extensive libraries behind them
- If some functionality has usage across machines,
we attempt to make the same or similar
applications for each - Parameter page/Fast time plots
- Data logger viewer
- Low level hardware configuration, diagnostics
(ramp cards, timer cards etc.) - Multiwire displays
- .
- At some point things become machine specific
- Probably sometimes unnecessarily
3What Currently Exists
- Application Index
- Catalog applications, provide convenient startup
- Application Framework
- Basis of applications
- Basic functionality, common look and feel
- Code Management
- Code development environment
- Basic libraries
- Data acquisition, database, plotting, etc.
- Some general (D page type) applications
- A small number of machine applications
4Application Index
- Application Index
- Catalog of applications
- Web page (http//www-bd.fnal.gov/appix)
- Standalone program (like Windows Explorer)
- Click to start programs
- Can start both normal and browser based
applications - Application Startup
- Uses Java WebStart
- Only Java need be installed on your PC
- All required code is automatically copied to your
PC and cached - Program starts and runs on your PC
5Application Home Page
http//www-bd.fnal.gov/appix
6Application Index
7Application Framework
- Provides common infrastructure for applications
- Basic window with common basic menu items
- Basic menus and toolbars easily extensible
- Capture, mail, etc. utilities like VAX program
tools - Message capture, application monitoring
- Post images directly to e-log!
8Graphical User InterfaceJControlsFrame
9Current Library Infrastructure
- Access to entire control system
(readings/settings/snap/ftp) - DaqJob API
- DaqJob (what, from, to, when, who, control)
- Still based on same power supply device
paradigm - Required for compatibility with old system
- The infrastructure allows manipulating structured
sets of devices - By writing custom items
- Still dont apply structure to Acnet array data
- Theoretically possible, but would require
front-end/Java cooperation - Part of Library support encapsulated in what
(item) subclasses - Access via same API to
- Data logger data
- SDA data
- Save/Restore data
- Models
10Current Library Infrastructure
- Core Java libraries provide
- Graphical user interface
- Networking, threads, I/O
- Database access via Java standard (JDBC)
- Plotting
- Both internally written(fast) package, and
JFreeChart (prettier/more options) - New package under development
- Currently no general 3-D plot support
- Synoptic display infrastructure/dragdrop builder
(Lexdraw successor) - Finite State Machine infrastructure including
graphical builder - NOT a straight port of CLIB/User Libraries
- There are certainly missing pieces in the above
11Synoptic Display
12Missing Infrastructure
- Functionality of most machine specific VAX User
Libraries - Though functional equivalents exist in some cases
- Numerical methods/linear algebra use not
extensive so far - Usage in autotune, some other places
- Some fitting, FFT code in gov tree
- Third party packages exist that should satisfy
requirements - No Numerical Recipe Java port exists
- Full support for GPIB/specific scope models
- Lowest level infrastructure exists, needs to be
built up - We will do this as people ask for it.
- We will provide any infrastructure needed
- Ask us please before you write (or download) such
packages
13CLIB Functionality Status
14CLIB Functionality Status cont.
15CLIB Functionality Status, cont.
16User Library Status
17User Library Status cont.
18General Applications
- A modest number exist
- Notify!
- SDA tools
- D44
- D80
- Parameter Page
19Parameter Page
20Device Database (D80)
21Data Logger Plotter (D44)
22Pbar Vacuum
23Code Overview
- Single rooted tree the gov tree
- gov/fnal/controls/applicationsgov/fnal/controls/t
oolsgov/fnal/controls/daq - Following standard Java package naming
conventions - 3000 classes, 500K non-comment lines of code
- 70 third party jar files
- Currently released as a whole package
- Done ltonce/daygt as requested
- Not much of a problem so far, but we realize this
wont scale to many developers and many
applications - Z page equivalent now available
- Personal test versions can be made generally
accessible
24Code Management/Development
- Code kept in CVS repository
- nova.fnal.gov
- Accessible over network for development on local
PCs - Write permissions applied to subdirectories
- Code and history is viewable on the web via
cvsweb - GUI (we use jCVS) and command line interfaces
- Global gov tree builds use ant
- Developers cvs tag new versions to go into build
as Ready4Alpha - Test builds each evening to catch problems early
- Not an optimal method for individual developers
- For individual development, people set up
individual IDE and/or command line configuration - Not as convenient as MECCA in various ways
- Various newer non-IDE environments available,
havent yet decided whether to support any
25CVS Web
26Integrated Developer Environments
- Integrated editor, compiler, code browser,
debugger - CVS integration
- Newer ones compile your code as you type it in!
- Potentially more efficient development
- But requires investment to master
- Several choices of free and/or inexpensive
products - Controls developers use JBuilder/Netbeans/SlickEdi
t/Eclipse/command line
27Integrated Developer Environments
28Machine Applications
- Accelerator applications can map well onto object
oriented code - The opportunity exists to much better organize
applications, though it would require significant
cooperation among different departments. - For example, it might be possible to have more
common programs for transfer line tune-up etc. - Store machine configuration in database
- Same algorithm to the extent possible
- Autotune attempts to do this
29Autotune
- Automatically tune transport lines for MiniBooNE
- Will also use for
- 120 GeV FT
- Electron Cooling
- Same code base for all 3 versions
- Read positions from BPMs
- Adjust magnets appropriately
30(No Transcript)
31(No Transcript)
32COSY Application(ANKA Karlsruhe)
33COSY application
34SNS Application Uses COSY base code
35(No Transcript)
36Summary
- Basic infrastructure exists
- Application Framework
- Application Index
- Code management
- Basic library functionality
- Some general applications exist
- A small number of machine applications exist
- There is a long way to go
- There is an opportunity to better organize
applications - Will be hard to complete if this isnt done.