170 likes | 329 Views
Nik Kolev CSC-9020 – Grid Computing Villanova University. Perl | Grid. Outline. Organizations & Standards Perl|Grid -- WSRF::Lite WSRF::Lite Workshop (not today). Organizations (OGF) â€. O pen G rid F orum
E N D
Nik Kolev CSC-9020 – Grid Computing Villanova University Perl | Grid
Outline • Organizations & Standards • Perl|Grid -- WSRF::Lite • WSRF::Lite Workshop (not today)
Organizations (OGF) • Open Grid Forum • Mission: The Open Grid Forum accelerates grid adoption to enable business value and scientific discovery by providing an open forum for grid innovation and developing open standards for grid software interoperability. • Formed in 2006 when the Global Grid Forum (GGF) and the Enterprise Grid Aliance (EGA) merged • http://www.ogf.org
Standards (OGSA) • Open Grid Services Architecture • A distributed interaction and computing architecture based around services, assuring interoperability on heterogeneous systems so that different types of resources can communicate and share information • A refinement of the Web Services architecture specifically designed to support Grid requirements • http://forge.gridforum.org/sf/projects/ogsa-wg
Organizations (OASIS) • OASIS (Organization for the Advancement of Structured Information Standards) • Mission: • Formed in 2006 when the Global Grid Forum (GGF) and the Enterprise Grid Aliance (EGA) merged • http://www.oasis-open.org
Standards (OGSI) • Open Grid Services Infrastructure • Published as a recommendation by the GGF in 2003) • Added statefullness to Web Services to support Grid computations • Globus Toolkit v3 is a reference implementation • Good first step, now obsolete • needed “componentizaion” • evolution parallel to that of Web Services • too grid specific for WS adoption
Standards (WSRF) • WS-ResourceFramework • Allows stateless Web (Grid) services to interact with stateful resources (regardless of the resources' nature) • Key concept: The WS-Resource – an entity which maintains state between calls to it abd can be accesses through a Web Service • Currently a highly unstable set of OASIS specifications • Intro|Motivation: http://www.ibm.com/developerworks/grid/library/gr-wsrf.html
WSRF::Lite • Perl implementation of the WSRF spec(s): • WS-Addressing • WS-ResourceProperties • WS-ResourceLifetimes • WS-BaseFaults • WS-ServiceGroups • WS-Security • Source and info: http://www.rcs.manchester.ac.uk/research/wsrflite
WSRF::Lite • Prerequisites • *NIX (.NET also supported in the latest version) • Perl (5.6 and later) • SOAP::Lite • IO::Socket::SSL • XML::DOM • … • WSRF::Lite • Recommended installation • Install the CPAN perl module • `perl -MCPAN -e 'install <MODULE>` • Old-fashioned installation • Download and explode the source tarball from CPAN • `perl Makefile.PL` • `make` • `make test install • http://www.cpan.org
WSRF::Lite • WSRF::Lite state management • In-memory • Process managing a single resource • Process managing multiple resources • On-disk • Flat file • Database
WSRF::Lite • WSRF::Lite Mechanics • WS-Resource • WS-Resource Factory Web Service • Start the Container (perl script that basically is an http daemon) • Create /tmp/wsrf and /tmp/wsrf/data directories • Define WSRF_MODULES as the path to the WS-Resource perl modules directory • Access the Resource • Example scripts are provided with the WSRF::Lite distribution
WSRF::Lite – Resource Factory <code snippet> my $newService = WSRF::Resource->new( module=> 'Counter', path => '/WSRF/Counter', namespace => 'http://foo/bar' ); my $resourceID = $newService->ID(); $newService->handle(@params); my $wsa = WSRF::GSutil::createWSAddress( module=> 'Counter', path => '/WSRF/Counter/', ID => $resourceID ); return WSRF::Header::header( $envelope ), SOAP::Data->value($wsa)->type('xml'); </code snippet>
WSRF::Lite – Resource Module <code snippet> $WSRF::WSRP::ResourceProperties{count} = 0; sub add { my $envelope = pop @_; my ($class, $val) = @_; $WSRF::WSRP::ResourceProperties{count} = $WSRF::WSRP::ResourceProperties{count} + $val; return WSRF::Header::header($envelope), $WSRF::WSRP::ResourceProperties{count}; } </code snippet>
WSRF::Lite • Building WS-Resources with WSRF::Lite: http://www.ibm.com/developerworks/edu/gr-dw-gr-wsrflite-i.html • Add security to your WSRF::Lite services: http://www.ibm.com/developerworks/edu/gr-dw-gr-buildsecure.html • Using AJAX with WSRF::Lite: http://www.ibm.com/developerworks/edu/gr-dw-gr-ajaxwsrflite.html