Top Banner
Grid Services and Microsoft .NET The MS.NETGrid Project Dr. Mike Jackson EPCC www.epcc.ed.ac.uk/~ogsanet [email protected] All Hands Meeting 2003 Nottingham September 2 nd -4 th 2003
23

Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet [email protected] All Hands Meeting.

Mar 28, 2015

Download

Documents

Sean McKenna
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Grid Services and Microsoft .NET

The MS.NETGrid Project

Dr. Mike JacksonEPCC

www.epcc.ed.ac.uk/[email protected]

All Hands Meeting 2003 Nottingham September 2nd-4th 2003

Page 2: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Overview

MS.NETGrid Project:GoalsPartnersRelated ProjectsActivities

MS.NETGrid-OGSI:High-level DesignProgramming Model

MS.NETGrid Demonstrators Training Courses

Page 3: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Project Goals

Goals:Engaging and training the e-Science community in OGSI and .NETFacilitate uptake of .NET for developing Grid services

Achieve via delivery of:Free-source OGSI implementation on .NETFree-source Grid service demonstratorsTraining materialsTraining courses

Page 4: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Project Partners

EPCC:Project managementDesign, development and implementationAuthoring training materialsDelivering training courses

Microsoft Research Limited (Cambridge):Technical consultancy and expertiseProvision of training materials

NeSC – UK National e-Science Centre:Production and negotiation of collaboration agreementHosting training coursesTechnical consultancy and expertise

Page 5: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Related Projects

Globus:Design and implementation of product-quality version of OGSI in Javahttp://www.globus.org

University of Virginia:Design and implementation of OGSI on .NEThttp://www.cs.virginia.edu/~humphrey/GCG/ogsi.net.html

GRASP Project / University of Salerno:Grid for Application Service Provision using commodity technologieshttp://eu-grasp.net

Page 6: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Project Activities

Microsoft .NET

OGSI

OGSA-DAI

e-Science Application

e-Science Application

OGSI andMicrosoft .NET

Course…

… … … …

OGSI andMicrosoft .NET

Course…

… … … …

OGSI andMicrosoft .NET

Course…

… … … …

OGSI andMicrosoft .NET

Course…

… … … …

Page 7: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Project Activities

Development of OGSI implementation – MS.NETGrid-OGSI:

Design and implementation of OGSI on .NETLeverage research from Globus and University of VirginiaContribute experiences to development of OGSI .NET community

Development of Grid service demonstrators:Practical demonstration of the utility of OGSI on .NET

Production of training materials:Courses and supporting materials on OGSI and .NET

Delivery of training courses:Four training courses held at the e-Science Institute in Edinburgh

Page 8: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

MS.NETGrid-OGSI

Implementation of OGSI on Microsoft .NETLeverages ASP.NET functionalityProvides support for:

Grid service hosting in ASP.NET Web Services containerGridService portType-related functionalityFactory portType-related functionalityService data managementManagement of persistent and transient services

Page 9: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

C#Implementation

ASP.NET

High-level Design

C#Implementation Client

ProxyProxy8. C# method return

1. C# method call

HTTP

2. SOAP request 7. SOAP response

OGSI Container

Grid ServiceGrid

Service

Grid ServiceGrid

Service

Grid ServiceGrid

Service

Web Service Proxy (.asmx)Web Service Proxy (.asmx)

4. Grid Service Object

Reference3. Grid Service

ID

5. Operation

Call

6. Operation

Return

Page 10: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Persistent and Transient Services

ASP.NET

OGSI Container

SampleInstanceObject

SampleInstanceObject

SampleInstanceObject

SampleInstanceObject

SampleFactoryObject

SampleFactoryObject

http://host/Ogsi.Container/services/persistent/SampleFactory.asmx

http://host/Ogsi.Container/services/transient/Sample.asmx?instanceId=sampleInstance1

ExampleInstanceObject

ExampleInstanceObject

ExampleFactoryObject

ExampleFactoryObject

ogsicontainer/services/persistent

SampleFactory.asmxSampleFactory.asmx ExampleFactory.asmxExampleFactory.asmx

ogsicontainer/services/transient

Sample.asmxSample.asmx Example.asmxExample.asmx

http://host/Ogsi.Container/services/transient/Sample.asmx?instanceId=sampleInstance2

Page 11: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Programming Model – Components

Service implementation class(es):GridServiceSkeleton-derived

Proxy class:Communications layer between outside-world and service implementation classesRepresents most-derived portTypeInherits from GridServiceInstanceAspProxy (which derives from ASP.NET class WebService)

ASP.NET Web service deployment descriptor:

Location of classes, proxiesService lifetime typeApplication-specific informationWeb.config

Page 12: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Programming Model – Service Development

1. Develop service implementation classes

2. Develop service proxy• These could be generated from tooling –

when tooling exists!

3. Deploy service

Page 13: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Developing a Service Implementation

Inherit from GridServiceSkeleton:PersistentGridServiceSkeleton for persistent services

Add service methods (operation providers):

public class MyHelloServiceImpl : PersistentGridServiceSkeleton {

int i = 1; public string SayHello(string name) { return String.Format(“Hello, {0} {1}”, name, i); } …}

Page 14: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Developing a Service Proxy

An ASP.NET Web Service with a twist:

// HelloService.cspublic class HelloService : PersistentGridServiceInstanceAspProxy { [WebMethod] // Any other ASP.NET attributes public string SayHello(string name) { object [] args = { name }; return (string) CallMethod(“SayHello”, args); }} Constructor gives reference to service instance object via containerCallMethod invokes on service instance object

Write .asmx file:

<%@ WebService Class=“HelloService"%>

Page 15: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Deploying the Grid Service

ASP.NET Web service configuration file: Web.config:

gridContainer.config/gridServiceDeployment elementAdd gridServiceDeploymentDescriptor:

<gridServiceDeploymentDescriptorasmxFileName=“HelloService.asmx”className=“HelloServiceImpl”assembly=“HelloAssembly”persistence=“persistent” />

Copy assembly to bin/ directory of web-appCopy .asmx file to services/persistent directoryProxy generation and deployment could be automated:

Use reflection on service class

Page 16: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Operation Providers

IOperationProvider interface and OperationProviderBase class

public class HelloPortType : OperationProviderBase {

int i = 0;public string sayHello(string name) { return “Hello, “ + name + “ “ + (++i);}

}[OgsiPortType(typeof(HelloPortType), “someNamespaceUri”, “HelloPortType”]

public class HelloServiceImpl : GridServiceSkeleton {

}

Page 17: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

MS.NETGrid Demonstrators

Simple counter servicePrime factors serviceMock-up of a load monitoring service factoryOGSA-DAI Grid Data Service:

Stripped down from full OGSA-DAI functionalityExecute queries on a back-end SQL Server databaseService-database communication over ADO.NET

Page 18: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

OGSA-DAI Grid Data Service

Page 19: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Training Courses

“OGSI on Microsoft .NET”Designed for UK e-ScientistsFour courses each for 25 attendees:

September 9th-10th 2003November 4th-5th 2003January 2004February 2004

e-Science Institute in Edinburghhttp://www.nesc.ac.uk

Page 20: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Course Goals

Introduce / review:Grid ServicesMicrosoft .NET

Introduce OGSI on Microsoft .NETMS.NETGrid-OGSI

Use MS.NETGrid-OGSI:Develop a Grid ServiceDevelop a client

Introduce related OGSI on Microsoft.NET work

Page 21: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Course Outline – Day 109:30 – Welcome and Workshop Overview09:45 – Grid Services

Web Services and XMLGrids, OGSA and OGSI

10:30 – BREAK11:00 – Essential Microsoft .NET Concepts

.NET Framework OverviewC# Recap, Assemblies and Using MetadataASP.NET

12:45 – LUNCH13:45 – OGSI and .NET

Why OGSI on .NET?EPCC’s MS.NETGrid-OGSIVirginia’s OGSI.NET

15:30 – BREAK16:00 – Obtaining, installing and testing MS.NETGrid-OGSI

Practical17:00 – END OF DAY 1

Page 22: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Course Outline – Day 209:30 – Recap10:00 – Developing a Grid Service 1

Practical11:30 – BREAK12:00 – Developing a Grid Service 2

Practical13:00 – LUNCH14:00 – Developing a Grid Service 3

Practical15:00 – BREAK15:30 – Miscellaneous:

MS.NETGrid-OGSI DemonstratorsCourse FeedbackDiscussion

16:30 – END OF DAY 2 – CLOSE

Page 23: Grid Services and Microsoft.NET The MS.NETGrid Project Dr. Mike Jackson EPCC ogsanet ogsanet-queries@epcc.ed.ac.uk All Hands Meeting.

Near Future

Revision of OGSI on .NET containerFacilitating scalability and service persistence

Development of additional Grid service demonstrators:

Practical demonstration of the utility of OGSI on .NET

Revision of training materials:Courses and supporting materials on OGSI and .NET

Delivery of additional courses