Migrating Desktop The graphical framework for running grid applications Bartek Palak Poznan Supercomputing and Networking Center The First int.eu.grid Integration Meeting, Krakow October 2006
2 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 October Example of a grid application JDL JobType JobType = "MPICH"; NodeNumber NodeNumber = 4; Executable Executable = "bandVU1.csh"; StdOutput StdOutput = "bandVU1.out"; StdError StdError = "bandVU1.err"; InputSandbox InputSandbox = {"bandVU1.csh", "bandVU1.inp"}; OutputSandbox OutputSandbox = {"bandVU1.out", "bandVU1.err", "bandVU1.log", "bandVU1.dat"}; Requirements Requirements = Member("VO-gamess-GAMESS", other.GlueHostApplicationSoftwareRunTimeEnvironment)
The First int.eu.grid Integration Meeting, Krakow October Job submission using MD Authenticating to the grid
The First int.eu.grid Integration Meeting, Krakow October Job submission using MD Defining executable
The First int.eu.grid Integration Meeting, Krakow October Job submission using MD Defining job input & output
The First int.eu.grid Integration Meeting, Krakow October Job submission using MD Monitoring job execution
The First int.eu.grid Integration Meeting, Krakow October Job submission using MD Monitoring job execution
The First int.eu.grid Integration Meeting, Krakow October Job submission using MD Visualising output
The First int.eu.grid Integration Meeting, Krakow October 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 October 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 October 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 October 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 October 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 October 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 …Plugin – interface that contains plug-in API …PluginFactory …PluginFactory – serves an implementation of plug-in …PluginActivator …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 October 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 October Plug-in „step-by-step” Creating an OSGi bundle Preparing manifest Creating java archive (JAR) file Manifest-Version: 1.0 Bundle-Description: Implementation of file viewer plug-ins Bundle-Vendor: PSNC Bundle-Version: Bundle-Activator: pl.psnc.desktop.plugins.ViewerActivator Bundle-Name: pl.psnc.desktop.plugins Import-Package: org.osgi.framework; version=1.2, pl.psnc.desktop.plugins.tool, pl.psnc.desktop.plugins.fileviewer Bundle-SymbolicName: pl.psnc.desktop.plugins.fileviewer Bundle-ClassPath:., lib/asm/AsmVis_MD.jar, lib/pdb/jai_codec.jar,
The First int.eu.grid Integration Meeting, Krakow October Plug-in „step-by-step” Signing a bundle Publishing a plug-in Creating XML description Registration
The First int.eu.grid Integration Meeting, Krakow October Additional information Int.eu.grid PSNC Product homepage CVS Repository The OSGi Alliance The World Wide Web Consortium
The First int.eu.grid Integration Meeting, Krakow October Questions Thank you for your attention! Any questions?