Developers guide - Migrating Desktop

Download Report

Transcript Developers guide - Migrating Desktop

Migrating Desktop
The graphical framework
for running grid applications
Bartek Palak
[email protected]
Poznan Supercomputing and Networking Center
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
Outline
 Submission of a grid application using MD
 Plug-ins: idea and architecture
 Short overview of the OSGi standard
 Plug-ins „step-by-step” – guidelines for developers
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
2
Example of a grid application
JDL
 JobType = "MPICH";
 NodeNumber = 4;
 Executable = "bandVU1.csh";
 StdOutput = "bandVU1.out";
 StdError = "bandVU1.err";
 InputSandbox = {"bandVU1.csh", "bandVU1.inp"};
 OutputSandbox = {"bandVU1.out", "bandVU1.err",
"bandVU1.log", "bandVU1.dat"};
 Requirements = Member("VO-gamess-GAMESS",
other.GlueHostApplicationSoftwareRunTimeEnvironment)
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
3
Job submission using MD
 Authenticating to the grid
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
4
Job submission using MD
 Defining executable
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
5
Job submission using MD
 Defining job input & output
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
6
Job submission using MD
 Monitoring job execution
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
7
Job submission using MD
 Monitoring job execution
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
8
Job submission using MD
 Visualising output
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
9
MD plug-ins
 Motivations
Easy extension of the framework
Standardization of integration with „third party”
modules
Making Migrating Desktop not so „heavy”
Integration points between Migrating Desktop and
applications
To give to integrated modules easy access to
resources
 Migrating Desktop plug-ins
Set of OSGi bundles with well-defined interface,
described by XML file and loaded „on demand” from a
network
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
10
OSGi
 OSGi
Open Services Gateway Initiative  OSGi™ Alliance
More than 35 companies from various areas (Sun,
IBM, Ericsson, Nokia, Philips, BMW, etc.)
Technology designed to provide a general-purpose,
secure, and managed Java framework supporting the
deployment of extensible and downloadable modules
known as bundles that usual provide services - a
collection of interfaces and their implementations.
Standard with several implementations (Equinox,
Knoplerfish, etc)
Used as engine for open source Eclipse IDE
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
11
OSGi
 OSGi bundles
A bundle is a JAR file that contains:
The resources necessary to provide some functionality.
A manifest file describing the contents of the JAR file and providing
information about the bundle.
Bundles can be remotely installed, started, stopped, updated or
uninstalled on the fly
Bundles can share Java packages among an exporter bundle and
an importer bundle in a well-defined way.
 OSGi services
OSGi service is a java object instance, registered into an OSGi
framework with a set of properties.
Any java object can be registered as a service,
Service implements a well-known interface
Bundles can register services, search for them, or receive
notifications when their registration state changes.
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
12
Plug-in architecture
 Plug-in
independent module providing well-defined API that can be easy
implemented and integrated with Migrating Desktop
 Container
graphical component in which plug-in (implementing java panel) is
nested.
 Toolkit
interface defining set of auxiliary methods that can be used by
plug-in for gaining access to local or remote resources, etc.
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
13
Plug-in „step-by-step”
 Do I need a plug-in?
 What kind of plug-in shall I choose?
Job input plug-in - defining job specific parameters
Job process plug-in - pre-processing job input
parameters
Job viewer plug-in - visualisation of job results
File viewer plug-in - viewing files of different formats
Tool plug-in - integration of any type of java applet or
application within Migrating Desktop framework
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
14
Plug-in „step-by-step”
 Do I need a java plug-in to specify job
input parameters?
Ready-to-use plug-in that create input panel based
on XML schema
 Implementing a plug-in
…Plugin
– interface that contains plug-in API
…PluginFactory
– serves an implementation of plug-in
…PluginActivator – bundle activator that starts a OSGi bundle
and register a plug-in as a service
…PluginToolkit
– toolkit providing set of auxiliary methods
…PluginContainer – set of methods which can be used for
interaction between plug-in and
container
…PluginConstants
– auxiliary class
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
15
Plug-in „step-by-step”
 Implementing a plug-in
Sequence of container calls of plug-in methods:
setToolContainer - sets container;
setToolkit
- passes reference to the toolkit
init
- plug-in initialization;
setProperties
- sets parameters (specific to plug-in type);
getPluginPanel - gets plug-in main panel for displaying;
start
- starts plug-in execution;
…
- plug-in specific methods;
stop
- plug-in stops its execution
(sequence of calls start – stop, can be called in a loop);
destroy
- “cleaning” actions;
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
16
Plug-in „step-by-step”
 Creating an OSGi bundle
Preparing manifest
Creating java archive (JAR) file
Manifest-Version:
Bundle-Description:
Bundle-Vendor:
Bundle-Version:
Bundle-Activator:
Bundle-Name:
Import-Package:
Bundle-SymbolicName:
Bundle-ClassPath:
1.0
Implementation of file viewer plug-ins
PSNC
1.0.0
pl.psnc.desktop.plugins.ViewerActivator
pl.psnc.desktop.plugins
org.osgi.framework; version=1.2,
pl.psnc.desktop.plugins.tool,
pl.psnc.desktop.plugins.fileviewer
pl.psnc.desktop.plugins.fileviewer
.,
lib/asm/AsmVis_MD.jar,
lib/pdb/jai_codec.jar,
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
17
Plug-in „step-by-step”
 Signing a bundle
 Publishing a plug-in
Creating XML description
Registration
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
18
Additional information
 Int.eu.grid
http://www.interactive-grid.eu/
 PSNC
http://www.man.poznan.pl/
 Product homepage
http://desktop.psnc.pl/
 CVS Repository
http://ras.man.poznan.pl/cgi-bin/viewcvs.cgi/
 The OSGi Alliance
http://www.osgi.org/
 The World Wide Web Consortium
http://www.w3c.org/
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
19
Questions
Thank you for your attention!
Any questions?
The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
20