The MEMOPS Programming Framework Wayne Boucher, Cambridge

Slides:



Advertisements
Similar presentations
National Partnership for Advanced Computational Infrastructure San Diego Supercomputer Center Data Grids for Collection Federation Reagan W. Moore University.
Advertisements

Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
CCPN project modeling framework University of Cambridge European Bioinformatics Institute MSD group.
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
Jiannong IMC Lab - Department of Computing, Hong Kong Polytechnic Univ. Slide 1 Architecture Description of Distributed Systems using UML and XML.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Chapter 2 Data Models Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Data Management I DBMS Relational Systems. Overview u Introduction u DBMS –components –types u Relational Model –characteristics –implementation u Physical.
Introduction to Databases Transparencies
© Copyright Eliyahu Brutman Programming Techniques Course.
1 Design patterns Lecture 4. 2 Three Important skills Understanding OO methodology Mastering Java language constructs Recognizing common problems and.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Using UML Models for the Performance Analysis of Network Systems Nico de Wet and Pieter Kritzinger Department of Computer Science University of Cape Town.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
The CCPN Project Tim Stevens and Wayne Boucher October 2005.
Memops Data modelling and automatic code generation Edinburgh 9 September 2008.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
UML - Development Process 1 Software Development Process Using UML (2)
Information storage: Introduction of database 10/7/2004 Xiangming Mu.
Summary What is CCPN? What approach are we taking and why? What are (some of) the technical details? Software team –Cambridge (Rasmus Fogh, Tim Stevens)
NETMOD Architecture Phil Shafer IETF 72.
EARTH SCIENCE MARKUP LANGUAGE “Define Once Use Anywhere” INFORMATION TECHNOLOGY AND SYSTEMS CENTER UNIVERSITY OF ALABAMA IN HUNTSVILLE.
Metadata Tools and Methods Chris Nelson Metanet Conference 2 April 2001.
2 1 Chapter 2 Data Models Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Introduction to MDA (Model Driven Architecture) CYT.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
What is Information Modelling (and why do we need it in NEII…)? Dominic Lowe, Bureau of Meteorology, 29 October 2013.
Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis.
SaveUML System design. System overview Possible...
The European Bioinformatics Institute MAGE-OM and ArrayExpress a brief introduction to the database model Helen Parkinson European Bioinformatics Institute.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
1 © 1999 Microsoft Corp.. Microsoft Repository Phil Bernstein Microsoft Corp.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
GΦLGΦL Leiden, May 2008 Status report Data model for goniometry and collision maps CCPN-generated Java API (file-based backend)‏ Used by:  STAC: to persist.
Data Integration and Management A PDB Perspective.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Project Database Handler The Project Database Handler dbCCP4i is a brokering application that mediates interactions between the project database and an.
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
Data Harvesting: automatic extraction of information necessary for the deposition of structures from protein crystallography Martyn Winn CCP4, Daresbury.
Project Database Handler The Project Database Handler is a brokering application that mediates interactions between the project database and the external.
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
SimDB Implementation & Browser IVOA InterOp 2008 Meeting, Theory Session 1. Baltimore, 26/10/2008 Laurent Bourgès This work makes use of EURO-VO software,
Issues in Ontology-based Information integration By Zhan Cui, Dean Jones and Paul O’Brien.
Mapping your business Du domaine métier à l'informatique Mapping your business The Model Driven Approach Jeff Konnen FME User Conference September 22nd.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
Worldwide Protein Data Bank wwPDB Common D&A Project November 24, 2009 November 24, 2009 Steering Committee Project Update.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Object storage and object interoperability
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Model Driven Architecture MDA SE-548 Lale Doğan
Welcome: To the fifth learning sequence “ Data Models “ Recap : In the previous learning sequence, we discussed The Database concepts. Present learning:
Lecture 5 Data Model Design Jeffery S. Horsburgh Hydroinformatics Fall 2012 This work was funded by National Science Foundation Grant EPS
The CCPN Project Technical Introduction Expanded from presentation, Utrecht Feb
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
Workflow and Data Management for Nuclear Magnetic Resonance.
- The most common types of data models.
Chapter 1: Introduction
Project tracking system for the structure solution software pipeline
Evaluating Compuware OptimalJ as an MDA tool
Introduction to Computer Science for Majors II
Database Systems Instructor Name: Lecture-3.
Constructing MDA-based Application Using Rational XDE for .NET
Software Architecture & Design
Presentation transcript:

The MEMOPS Programming Framework Wayne Boucher, Cambridge

Introduction CCPN: Collaborative Computing Project for NMR (Nuclear Magnetic Resonance) MEMOPS: MEtaMOdelling Programming System

NMR Software Problem –Heterogeneous collection of developers –Lots of stand-alone programs –Lots of proprietary data formats –Lots of conversion scripts Solution –Standards (production to deposition) –Libraries (open, modular, …)

Data Format vs. Model Data format (how data is stored) –STAR –XML –SQL –Tab-separated ascii –Python pickle file Data model (what data means) –RCSB (PDB) mmCIF –XML DTD or schemas –SQL schema

NMR Community Consensus Data model rather than data format –Format independent –Language independent –Science (descriptive) API to manipulate data model in memory –Creation and manipulation of objects –One for each language –Bookkeeping I/O modules to load/store data from/to disk –One for each (storage format, language) –Bookkeeping

Application View User Application 1 Data Store Application 2 Application 3 In Memory Representation GUI API I/O (Python, Java, C++, C) (XML, SQL)

Model Driven Architecture UML: Unified Modelling Language –Abstract representation of semantics –Pictorial Mapping from UML: to anything –Multi-language –Multi-format –Architecture neutral (e.g. distributed or not) Power: good and bad CCPN uses Object Domain as its UML tool –Python as scripting language

Framework Overview Information is stored in the UML data model from which –XML schema, –SQL schema, –Python and Java application program interfaces (APIs) and –Documentation are generated automatically PHYSICAL world UML data model Auto-generated Java API Python API Doc SQL schema CCPN framework XML schema

UML Example

MEMOPS UML MEMOPS only uses part of UML (logical model) Roughly equivalent to MOF subset of UML Influenced by XML –Parent classes (but not all links are parent-child) Influenced by SQL –Keys Modular (packages) Main focus is NMR but entire architecture is independent of NMR

Methodology Summary MetaModel: classes for defining semantics –E.g. MetaClass, MetaAttribute, MetaRole Model: instantiation of MetaModel classes –E.g. (Meta)Experiment API: classes which define semantics –E.g. Experiment Developer: instantiation of API classes

UML to API Stage 1: UML to MEMOPS Model –Currently script dependent on UML program –Eventually move to XMI Stage 2: MEMOPS Model to MEMOPS API –Script independent of UML program Most CCPN people work independently of UML

MEMOPS MetaModel Method of describing model semantics Implemented as Python classes –Could do same in Java, … –Independent of end language –Independent of actual model Hand coded Currently around 12 classes, 3000 lines –MetaPackage, MetaClass, MetaAttribute, …

MEMOPS Model Instantiation of MetaModel –Creation of MetaClass objects, … Might disappear with introduction of XMI Auto generated from UML Currently over 300 classes (2300 metaobjects) NMR main focus so far –Being worked on: protein production –In future: X-ray, … –Shared packages: Molecule, Coordinates, etc.

MEMOPS API Classes for developers –Mainly getters and setters –More than just code stubs –Constraints (e.g. cardinality) enforced –Links the hard part Mostly (> 99%) auto generated from UML –Some helper functions and constraints hand coded Currently around lines in Python and lines in Java

Developer Benefits Specified data model and API No I/O code Concentrate on science, not bookkeeping Extendible –Application data can be assigned to any object –UML model can be extended (packages) Notifiers –Register interest when specified attribute changes (class, not object, level) Undo/Redo (in future)

Current State API releases –  release of Python API in May 2003 –  release of Java API in December 2003 –C/C++ API next (probably 2005) Storage formats –XML with Python and Java –SQL with Java in April 2004, Python later Applications –Conversion scripts for legacy NMR data –Graphical NMR assignment program

Acknowledgements Department of Biochemistry, University of Cambridge –Rasmus Fogh –Tim Stevens European Bioinformatics Institute (EBI) –John Ionides –Anne Pajon –Wim Vranken Funding: BBSRC and EU (NMRQUAL and TEMBLOR) Website: