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
• Worldwide service, distributed resource
• User transparent access
• Existing technology
• Information,
Semantic web
University
Data Store
Grid
Home user
Supercomputer
Joe Lewis-Bowen 2002
3
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
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
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
• On-line satellite data advanced science
• Institutions collaborate
• Heterogeneous files
• Diverse analysis
• Growing
• Require ground based
Joe Lewis-Bowen 2002
7
Joe Lewis-Bowen 2002
8
Joe Lewis-Bowen 2002
9 servant scientists servant query agent trading and location service wrapper
• 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
• Components and connectors in … constrained relations
• Trace requirements & evaluate properties
• Styles (patterns) for repeatable success
Joe Lewis-Bowen 2002
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
(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
scientist • Pipeline & Layers scientist query analyse parse dispatch servant query engine location broker wrapper meta-data data
Joe Lewis-Bowen 2002
15
• 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
• 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
• 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
• 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