The Scientific Software Initiative at the APS Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting October 13 - 14, 2007 ICALEPCS Meeting, Knoxville,

Slides:



Advertisements
Similar presentations
©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
Advertisements

TPF/Eclipse: A New TPF Application Test Tool for the Eclipse and WebSphere ® Environments Presenter: Thiru Thirupuvanam TPF Users Group May 2003 New Orleans,
Introduction Main technologies: core written in Java embedded Jython interpreter code managed using the Eclipse plugin framework client program uses Eclipse.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Leveraging the Eclipse Ecosystem for the Scientific Community Tony ANSTO Andy ESRF ICALEPCS 2005.
Programming Creating programs that run on your PC
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Chapter 3 Software Two major types of software
4.01B Authoring Languages and Web Authoring Software 4.01 Examine webpage development and design.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
ECLIPSE IDE N AME : A SHOK P ADMARAJU C OURSE : T OPICS ON S OFTWARE E NGINEERING I NSTRUCTOR : D R. S ERGIU D ASCALU.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Your Interactive Guide to the Digital World Discovering Computers 2012.
A First Program Using C#
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Introduction to Eclipse and Eclipse RCP Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne,
GMT: The Generic Mapping Tools Paul Wessel, Walter H.F. Smith and the GMT team.
GumTree Feature Overview Tony Lam Data Acquisition Team Bragg Institute eScience Workshop 2006.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
1 3. Computing System Fundamentals 3.1 Language Translators.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Selected Topics in Software Engineering - Distributed Software Development.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
DemocracyApps, Inc. Community Budget Explorer A Technical Overview.
9/2/ CS171 -Math & Computer Science Department at Emory University.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
AUIS Assignment 01 IT Part A Visual Studio IDE   Developing IDE from Microsoft.
15/06/2006 The Future of Visual DCT EPICS Collaboration 2006 Argonne National Laboratory
CSS – Control System Studio
Eclipse 24-Apr-17.
Evolution of VisualDCT Jaka Bobnar Matej Sekoranja Igor Verstovsek
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Project Database Handler The Project Database Handler is a brokering application that mediates interactions between the project database and the external.
07/10/2007 VDCT Status Update EPICS Collaboration, October 2007 Knoxville, Tennessee
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
 Programming - the process of creating computer programs.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
4.01B Authoring Languages and Web Authoring Software 4.01 Examine webpage development and design.
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
A Quick Look at the EPICS IDE Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne, IL.
Chapter – 8 Software Tools.
An EPICS IDE Using Eclipse Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 15, 2006 Argonne National Laboratory, Argonne, IL.
The Integrated Spectral Analysis Workbench (ISAW) DANSE Kickoff Meeting, Aug. 15, 2006, D. Mikkelson, T. Worlton, Julian Tao.
Learning Aim B.  In this section, you will consider the resources necessary for designing your website.  You will also think about any constraints that.
Top 5 IDE that Simplifies PHP Development Biztech IT Consultancy Pvt. Ltd. | |
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
1 Programming and problem solving in C, Maxima, and Excel.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
CS 310 Ch 4: Software Processes Software process: a set of activities that lead to a software system specification design and implementation validation.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Development Environment
Computer Software: Programming
Software for scientific calculations
An Introduction to Eclipse
By Rajanikanth B Eclipse IDE Overview By Rajanikanth B
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Review of Previous Lesson
Presentation transcript:

The Scientific Software Initiative at the APS Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting October , 2007 ICALEPCS Meeting, Knoxville, TN

Current X-Ray Scientific Software Situation Best described as “Uncoordinated” Wide variety of languages –FORTRAN, C, C++, Perl, Tcl/Tk, Python, Java, … Visualization relies on (different) commercial products –IDL, IGOR, Matlab, … Each beamline tends to do its own thing Modeling and Analysis is not well integrated with Data Acquisition Lack of real-time data reduction Little high-performance computing Little remote access No common data format A Scientific Software Section was formed to help remedy this situation

Scientific Software Section Specific goals: –Combine existing analysis and visualization codes with beamline data acquisition software and transform these codes into easy-to-use software –Provide a scientific workbench program that is easy to use and learn and from which users can access all the software that is necessary to manage the entire scientific work flow –Create new analysis and visualization applications that can be used on all beamlines and that are easily integrated into the standard workbench –Develop a software framework, perhaps more than one, that provides tested and debugged scientific routines, such as fitting and visualization, which can be used by developers to create applications –Provide high-performance computing –Provide documentation, distribution, maintenance, and support

Why Java ? Java has become a major and important language The reason is that most commercial development uses J2EE –It is running the financial world –There is money to be made improving Java and its tools Applications have performance approaching applications written in C There is already extensive scientific development in Java Advantages –Huge API –Write once, run anywhere –Easy to code (compared to C or C++, anyway) –Good performance –Excellent development tools

Java Development Tools Spell checks as you go –Eliminates most typos and all syntax errors Provides content assist –It tells you what to type next and provides documentation, etc. Compiles as you write –No “write – compile – load – run – figure out what happened” cycle –Cycle is now “write – run” Massive refactoring –E.g. Change a variable name in all your files in all your projects Wizards and Tools to help at every stage –E.g. Generate getters and setters for all your properties The above are just a small sample –Some of these are available for other languages –But generally not at the level they are for Java

Java Analysis Studio (JAS3) Developed by and for the High-Energy physics community Plotting of 1d, 2d, 3d Histograms, XY plots, Scatter plots, etc. Open source Attractive plotting Fitting, other mathematical analysis – Primarily from CERN Highly modular structure –Uses plug-ins

JMol – Molecular Viewer Commonly used as an applet that can be integrated into web pages to display molecules in a variety of ways Also has a standalone application and a development tool kit that can be integrated into other Java applications Interactive, 3D Free, Open Source One of several Java Molecular Graphics packages Crystal structure of an H/ACA box RNP from Pyrococcus furiosus (PDB CODE: 2HVY)

VisAD Space Sciences and Engineering Center (SSEC), and others Extensive 2D and 3D visualization package Free, Open Source

VTK Software system for 3D computer graphics, image processing, and visualization Used by thousands of researchers and developers around the world Written in C++ Has Java wrappers –Also, Tcl/Tk, Python Free, Open Source

ISAW From: John Hammonds, IPNS The primary tool for analyzing neutron scattering data at the IPNS Has an extensive and sophisticated interface

Bioclipse

Wolfram Workbench (Mathematica)

Java in Matlab (or IDL or Mathematica or…) Matlab has extensive support for Java –A scientific software framework can also be used in these apps

Why Eclipse? Powerful, flexible, extensible Open-source Has a huge community with many projects Java development environment leads to high productivity Deployment via plug-ins appears to solve many problems We intend to use Eclipse, not as an IDE, but as a workbench (IE) –Something users will use –A way to organize their work Downsides –Most x-ray beamline staff and users are not using Eclipse now –95% will be unhappy [with anything we do]

Deployment is a Major Reason for Using Eclipse Both Java and Eclipse are multi-platform Updates are easily made through the Eclipse update mechanism You can wrap 3 rd party applications in your own plug-ins –For example: The Feature “XRAYS JCA” contains org.scatteringsw.xrays.jca which wraps JCA –Including DLLs and Shared Objects Guarantees they are versions that work with your applications on all platforms you support Makes it easy for the user to install and update both your stuff and the 3 rd party stuff

Eclipse for Users, not Developers We intend to use Eclipse as a workbench Something a user can come in and be up and running with in a short time –Probably with community help Each user can use and customize it in his or her own way They will probably use it for more than one thing –That is why the layout by Perspective is important –You just switch perspectives to change tasks I think this paradigm is better than using RCP applications (such as CSS) –Especially for our less-controlled environment –You provide the plug-ins –The user manages his Workbench as he or she pleases

XRAYS Stands for X-Ray Analysis Software –(or X-Ray Software) It is expected to grow into a large suite of analysis and visualization applications These will include: –Scientific workbench program –New analysis and visualization applications –Updating and coordination of existing analysis and visualization applications –A framework of software routines that developers can use to write applications It currently consists mostly of exploration and prototype applications –This is the groundwork for what we really want to do –Currently more than 3000 Java source files in 120 projects –38 Java projects intended for distribution (org.scatteringsw.xrays.xxx) –10 ready-to-deploy features (collections of plug-ins) in 4 categories

Image Editor as an Experiment Prototype

Prototype Implementation of ISAW Includes: –A Perspective –An Editor for ISAW DataSets.run,.isd –Some Views All work together –Views change when the edited file changes

A Perspective Can be a Single Application

Area Data Editor

X-Ray Experiment Images from: BLU-ICE and the Distributed Control System, NOBUGS III, January 2000

Deployable Plug-ins These Eclipse projects are available through the Eclipse update mechanism at 10 features in 4 categories consisting of ~25 plug-ins Work in Progress –Not thoroughly tested –Not fully documented Not really scientific software –But potentially useful

scatteringsw.org

Acknowledgements Pete Jemian – Group Leader of the APS BCDA group –Is invaluable in helping provide the direction for this effort.

Thank You This has been an APS Scientific Software Section Presentation

Thank You This has been an APS Scientific Software Section Presentation