200 likes | 314 Vues
Migrating Desktop The g raphical f ramework f or running grid a pplications. Bartek Palak bartek@man.poznan.pl 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
E N D
Migrating DesktopThe graphical frameworkfor running gridapplications Bartek Palak bartek@man.poznan.pl 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
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
Job submission using MD • Authenticating to the grid The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
Job submission using MD • Defining executable The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
Job submission using MD • Defining job input & output The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
Job submission using MD • Monitoring job execution The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
Job submission using MD • Monitoring job execution The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
Job submission using MD • Visualising output The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006
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
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
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
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
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
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
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
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:1.0.0 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 12-14 October 2006
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
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
Questions Thank you for your attention! Any questions? The First int.eu.grid Integration Meeting, Krakow 12-14 October 2006