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