160 likes | 345 Views
Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznari ć and Eleftheria Katsiri. Service-enabling Legacy Applications for the GENIE Project. Motivation. Engineer GENIE to inform research on component coupling frameworks: Analysis of a complicated piece of code such as GENIE
E N D
Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri Service-enabling Legacy Applications for the GENIE Project
Motivation Engineer GENIE to inform research on component coupling frameworks: • Analysis of a complicated piece of code such as GENIE • Extraction of interface andmodel coupling semantics • Modern component architectures indicate the need for highly engineered and autonomous components • Create methodology to advance the quality of functional code 1
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
GENIE model framework 3D atmosphere Atmospheric CO2 3D ice sheets 2D sea ice 2D land surface 3D ocean Land biogeochemistry Ocean biogeochemisty Ocean sediments 4
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
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 6
Componentising GENIE • Determining I/Os • SIDL (Scientific Interface Description Language) - Common way of describing components • Linking Fortran to Java • Babel Interoperability Tool • Shared Libraries 7
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 9
Steps to Service Enable GENIE (2/4) • 4. Launch components as Web Services and modify Java client to now call Web Services instead 10
Steps to Service Enable GENIE (3/4) • 5.Use workflow engine to orchestrate the Abstract Components 11
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 12
Achieved.. Web Service Client Embm Bean Embm Atmosphere Surflux Bean Surflux GoldSeaice Bean Land Bean Goldstein Seaice Land Goldstein Bean Goldstein Ocean 14
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 15