Grid Architecture

advertisement

Grid Architecture

Joe Lewis-Bowen UCL-CS/MSSL

1

• What is Grid? How can SE help?

• SE being applied, grid for solar physics

• Formal software architecture (FSM)

Joe Lewis-Bowen 2002

2

What is Grid?

• Worldwide service, distributed resource

• User transparent access

• Existing technology

• Information,

Semantic web

University

Data Store

Grid

Home user

Supercomputer

Joe Lewis-Bowen 2002

3

Software Engineering for Grid

Best practice throughout lifecycle

• Capturing Q.o.S. requirements

• Design modelling & testing

• Component use & implementation

• Prototype transfer (scalability)

• Architecture (overlap 2,3)

Joe Lewis-Bowen 2002

4

Middleware Services

App specific

Model

File IO

Generic

GUI

CORBA stdio

Sys specific

Xlib

View Application

Stats

Tool kits

App libraries

Middleware

RAM Sys libraries and devices

• Components provide

Services

• Distributed systems

• Transparency

– E.G. Location, Migration,

Scalability hierarchy

• SciDAC insert grid libraries & services

Joe Lewis-Bowen 2002

5

Application

Transport

Internet

Link

Internet

Globus uses layers

Application

Collective

Resource

Connectivity

Fabric

Globus

• Repeat Internet

(OSI) success

• “Hourglass” protocol

• Layers have responsibility

• Components cross layers

(diag. after “The Anatomy of the Grid”

I Foster, C Kesselman, S Teuke, 2001)

Joe Lewis-Bowen 2002

6

Solar archives

• On-line satellite data advanced science

• Institutions collaborate

• Heterogeneous files

• Diverse analysis

• Growing

• Require ground based

Joe Lewis-Bowen 2002

7

Use case analysis - existing

Joe Lewis-Bowen 2002

8

Use case analysis - required

Joe Lewis-Bowen 2002

9 servant scientists servant query agent trading and location service wrapper

Domain

• User collaboration

• Map to diverse archives plug in repository data archive meta-data repository meta-data data archive meta-data description

Joe Lewis-Bowen 2002

10

Formal Architecture

• Components and connectors in … constrained relations

• Trace requirements & evaluate properties

• Styles (patterns) for repeatable success

Joe Lewis-Bowen 2002

Steps to Grid architecture

1. Encode informal diagrams – evaluate

2. Reform domain in different styles

3. Real scenario proves deployment

11

(SOHO EIT Fe XII 195 Å, diff over 30min, L Harra)

Joe Lewis-Bowen 2002

12

Dark Filament

15/10/98

,

CME

14 hours later

(SOHO EUV Fe XII 195 Å,

Lasco C3 3.5-30 SR diff,

J Gurman NASA SDAC)

Flare, Moreton wave

(H-alpha (doppler) movie

S. Eto Kwasan Obs Kyoto Uni)

Joe Lewis-Bowen 2002

13 servant scientists servant

Domain & Steps

(again)

1.Encode, evaluate

2.Compare styles query agent trading and location service wrapper plug in repository data archive meta-data repository meta-data data archive meta-data description

Joe Lewis-Bowen 2002

14

Solar Grid styles

scientist • Pipeline & Layers scientist query analyse parse dispatch servant query engine location broker wrapper meta-data data

Joe Lewis-Bowen 2002

15

ACME interchange

• Topology types abstracted servant

GUI search servant peer template peer get store

Key: submit request write origin data filter consumer

Joe Lewis-Bowen 2002

16

Basic FSM

• Multiple data elements

• Metadata for availability

• Server provides location transparency

• Syntax: named.events

make

Process

Client

Server

Metadata

Data

Dataset

Joe Lewis-Bowen 2002

/* client, server, 2 datastores for query with location transparency. */

/* use Data[ 0, 1 ] for miss or hit, flip-flop availability

* (if just checking, data availability not affected).

* use Metadata lookup service like catalogue check for availability.

* make 2 data stores (Dataset) partial concurrent system helps naming

* shared events below (dataset name cosmetic, bare index works). */ range BOOL = 0..1

const NDATA = 2 range DSET = 1..NDATA

Data = Data [1],

Data [ hit:BOOL ] =

( get -> Data [ 0 ]

| miss -> Data [ 1 ]

| check[ hit ] -> Data [ hit ] ).

Lookup = ( choose -> check[ hit:BOOL ]

-> if ( hit ) then

( get -> Lookup ) else

( miss -> Lookup ) ).

|| Dataset = ( dataset[ DSET ]: Data || dataset[ DSET ]: Lookup ).

17 Joe Lewis-Bowen 2002

/* client simple query-response (result, if got, indexed to dataset). */

Client = ( query -> { nomatch, dataset[ d:DSET ].get } -> Client ).

/* server data access layer takes query, has logic to decide to get data

* uses sub-process Search to cycle stores (using offset index) */

Server = ( query -> Search [ 0 ] ),

Search [ d:0..NDATA ] =

( when ( d == NDATA ) nomatch -> Server

| when ( d < NDATA ) dataset[ d + 1 ].choose

-> ( dataset[ d + 1 ].get -> Server

| dataset[ d + 1 ].miss -> Search [ d + 1 ] ) ).

|| Grid = ( Client || Server || Dataset ).

18

• LTSA tool compiles, composes, analyses, shows state-models and walk-through:

Joe Lewis-Bowen 2002

19 Joe Lewis-Bowen 2002

20 Joe Lewis-Bowen 2002

21

FSM – Lessons learnt

• Encoding unintelligible to stakeholders

– though component diagrams can be derived

• Key features hidden (e.g. shared state)

– UML etc. use different views

• Concurrency modelling leads features, questions for architecture unanswered

– “What is the best component configuration?”

• Patterns for grid components are apparent

Joe Lewis-Bowen 2002

Summary & Direction

• Grid tools and applications need SE

• Formal architecture being investigated

(more ADLs, styles, application to be done)

22

• Grid architecture procedure & toolkit

• Property model & reflective architecture

• More case studies benefit everyone http://www.cs.ucl.ac.uk/staff/j.lewis-bowen/

Joe Lewis-Bowen 2002

Download