service-enabling legacy applications for the genie project sofia panagiotidi, jeremy cohen, john...

16
Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

Upload: marjorie-thomas

Post on 29-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

Service-enabling Legacy Applications for the GENIE Project

Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

Page 2: 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

Page 3: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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

Page 4: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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

Page 5: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

4

GENIE model framework

3D atmosphere

3D ocean

2D sea ice

AtmosphericCO2

2D land surface

Land biogeochemistry

Ocean biogeochemisty

Ocean sediments

3D ice sheets

Page 6: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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

Page 7: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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

Page 8: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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

Page 9: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

8

Babel Interoperability Tool

Page 10: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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

Page 11: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

Steps to Service Enable GENIE (2/4)

4. Launch components as Web Services and modify Java client to now call Web Services instead

10

Page 12: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

11

Steps to Service Enable GENIE (3/4)

5.Use workflow engine to orchestrate the Abstract Components

Page 13: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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

Page 14: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

13

An example as proof of concept

Page 15: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

Achieved..

Web Service Client

Embm Atmosphere

Surflux

Goldstein Seaice Land

Goldstein Ocean

14

Land Bean

Embm Bean

GoldSeaice Bean

Goldstein Bean

Surflux Bean

Page 16: Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri

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