service-enabling legacy applications for the genie project sofia panagiotidi, jeremy cohen, john...
TRANSCRIPT
Service-enabling Legacy Applications for the GENIE Project
Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri
1
Motivation
Engineer GENIE to inform research on component coupling frameworks:
Analysis of a complicated piece of code such as GENIE Extraction of interface and model coupling semanticsModern component architectures indicate the need for highly engineered and autonomous componentsCreate methodology to advance the quality of functional code
Goals
A flexible coupling framework where components can be individually developed and coupled together
The coupling needs to be correct, intelligent and without undue programming effort
Come up with sophisticated ways to couple physical entities in order to optimally produce experimental results
A system of the size and complexity of GENIE requires a supporting semantic framework
2
Previous Work
Separation of the code into pieces - Layered representation of the application
Wrapping GENIE as ICENI binary component Delivery of Web-based System (portal) to allow a virtual
organisation of environmental scientists to create and manage simulations at a high-level over a Condor pool
Implementation of database management system to allow scientists to share, access and visualise data produced by simulation runs
Investigation of model-coupling and validation semantics
3
4
GENIE model framework
3D atmosphere
3D ocean
2D sea ice
AtmosphericCO2
2D land surface
Land biogeochemistry
Ocean biogeochemisty
Ocean sediments
3D ice sheets
Currently in GENIE
genie.F is a glorified metafile containing if-then-else statements
Fortran routines act as “wrappers” Life cycle phases scattered Module communication through shared memory Hard-coded semantics (e.g. grid interpolations, time
steps)
5
6
Extended Abstract Component (Grid) Model for GENIE
Model Specific Interfaces Abstract Interface - Plugin adapters Web Service Wrapper Layer Communication through SOAP/MPI Metadata for Composability
7
Componentising GENIE
Determining I/Os• SIDL (Scientific Interface Description
Language) - Common way of describing components
Linking Fortran to Java• Babel Interoperability Tool• Shared Libraries
8
Babel Interoperability Tool
9
Steps to Service Enable GENIE (1/4)
1. Wrap and test modules individually 2. Test module communication through an equivalent
to genie.F Java client & compare results 3. Create Abstract Component Interfaces
Steps to Service Enable GENIE (2/4)
4. Launch components as Web Services and modify Java client to now call Web Services instead
10
11
Steps to Service Enable GENIE (3/4)
5.Use workflow engine to orchestrate the Abstract Components
12
Steps to Service Enable GENIE (4/4)
6. Advance into a Grid environment so as to incorporate Co-ordination Specification, Dynamic Abstract Generator, Resource Allocation and Optimisation
13
An example as proof of concept
Achieved..
Web Service Client
Embm Atmosphere
Surflux
Goldstein Seaice Land
Goldstein Ocean
14
Land Bean
Embm Bean
GoldSeaice Bean
Goldstein Bean
Surflux Bean
15
Conclusions
Provided service-based computational Grid execution architecture for GENIE framework
Scaled engineering steps Proved that functional legacy code can
be distributed and run as Web Services