Developing PiMS 1.0 Bill Lin.

Slides:



Advertisements
Similar presentations
Introduction to NHibernate By Andrew Smith. The Basics Object Relation Mapper Maps POCOs to database tables Based on Java Hibernate. V stable Generates.
Advertisements

TPTP Data Model 1 Database support for TPTP EMF based data models using Elver/Hibernate Guru Nagarajan July 14, 2006.
CCPN project modeling framework University of Cambridge European Bioinformatics Institute MSD group.
myAttendance Software Overview myAttendance software is developed to simplify the Time Attendance process of the organisation. myAttendance software webbed.
Database Architectures and the Web
Spring, Hibernate and Web Services 13 th September 2014.
PiMS overview: version 0.3 & beyond Robert Esnouf, PiMS Project Sponsor, Oxford.
X CVIEW V2.0 E X tensible Commercial Vehicle Information Exchange Window A Microsoft SQL Server 2000 & VB.Net Application Brought to you by the Washington.
1 ITEC810 An Application Suite for a Student Database Project Supervisor: Abhaya Nayak Student Id: Andrew Johnson.
The MEMOPS Programming Framework Wayne Boucher, Cambridge
Hibernate 1. Introduction ORM goal: Take advantage of the things SQL databases do well, without leaving the Java language of objects and classes. ORM.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University
Session-01. Hibernate Framework ? Why we use Hibernate ?
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Using Third-Party Frameworks in Building Blocks™ David Ashman Principal Architect, Product Development.
Data Persistence and Object-Relational Mapping Slides by James Brucker, used with his permission 1.
Object Persistence and Object-Relational Mapping James Brucker.
CSE446 S OFTWARE Q UALITY M ANAGEMENT Spring 2014 Yazılım ve Uyguluma Geliştirme Yöneticisi Orhan Başar Evren.
©2012 Microsoft Corporation. All rights reserved..
PIMS: The Problems of Project Management Robert Esnouf, Scientific Sponsor for PIMS OPPF/STRUBI, University of Oxford strubi.ox.ac.uk.
Chris Hyzer University of Pennsylvania
NetArchive Suite Workshop 2011 Technical Track - Code refactoring with the Spring Framework.
Peter Hinrichsen TechInsite Pty Ltd Rolling your own Object Persistence Framework (OPF) Please consider the following questions:
Codeigniter is an open source web application. It occupies a very small amount of space in the memory and is most useful for developers who aim to develop.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Hibernate 3.0. What is Hibernate Hibernate is a free, open source Java package that makes it easy to work with relational databases. Hibernate makes it.
Topic : Hibernate 2: Object Persistence and ORM Kaster Nurmukan.
1 © 1999 Microsoft Corp.. Microsoft Repository Phil Bernstein Microsoft Corp.
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.
Implementation Diagrams
آرمان حسين‌زاده آذر  Access to data varies depending on the source of the data.  Access to persistent storage, such as to a database, varies greatly.
Sakai WebApp Structure
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,
UPortal 3 RC2 PreviewJA-SIG Conference, Summer 2007 uPortal RC2 Preview Moving on Up Reviewing current work and future plans Standardizing the framework.
1 Nov 29, 2005 Object Relational Mapping Frameworks Wiene Höweler.
March R McFadyen1 Object Relational Mapping example TopLink Part of Oracle environment Provides an Object/Relational Mapping Layer References:
Alter – Information Systems 4th ed. © 2002 Prentice Hall 1 Human and Ethical Issues.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Introduction – ORM, Helloworld Application
Fundamentals of MyBATIS
Singleton Academy, Pune. Course syllabus Singleton Academy Pune – Course Syllabus1.
D. Duellmann, IT-DB POOL Status1 POOL Persistency Framework - Status after a first year of development Dirk Düllmann, IT-DB.
CS520 Web Programming Object-Relational Mapping with Hibernate and JPA (I) Chengyu Sun California State University, Los Angeles.
Introduction of Wget. Wget Wget is a package for retrieving files using HTTP and FTP, the most widely-used Internet protocols. Wget is non-interactive,
HIBERNATE/Java Overview of technology for Hibernate by محمد حسن کاظمی پوران Master : M.M.Nematollahi.
Best 3 Software Development Languages. Hibernate Training Hibernate is a high-performance object-relational mapping tool and query service. Hibernate.
5th Edition, Irv Englander
New Technology: Why, What ,How
Chengyu Sun California State University, Los Angeles
The Operations Portal and the Grid Operations Interoperability
OVirt Data Warehouse 02/11/11 Yaniv Dary BI Software Engineer, Red Hat.
Yii Framework – The Major Pros and Cons
THE ARCHITECTURE AND FUNCTIONALITIES OF SELECTED MODULES.
Introduction to NewSQL
Entity Framework By: Casey Griffin.
Migrating Oracle Forms Using Oracle Application Express
Phil Bernstein Microsoft Corp.
Sakai WebApp Structure
Lecture 1: Multi-tier Architecture Overview
Declarative Creation of Enterprise Applications
Tiers vs. Layers.
Testing a persistence layer
Your code is not just…your code
Chapter 13 The Data Warehouse
Developing and testing enterprise Java applications
CS4961 Software Design Laboratory Understand Aquila Backend
Web APIs In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application.
OBJECT STORAGE AND INTEROPERABILITY
Your code is not just…your code
Presentation transcript:

Developing PiMS 1.0 Bill Lin

Bill Lin - Developing PiMS 1.0 850 of 5000 commits in PiMS during last 12 months: Applying Hibernate as the persistence layer & improve DataModel API(60%) Database Upgrader (15%) Others: testing, defect fixing, web functions (25%)

PiMS architecture

PiMS old DM architecture - Before V0.5 CCPN generated Datamodel API (117k lines of code) PIMS DM API (4k lines of code) CCPN generated Persistence Api (2k lines of code) Database CCPN generated SQL schema CCPN generation Machine CCPN DataModel

Main Problems Were: Generated code was “out of control” Generated code was difficult to understand Generated API was not easy to use Performance Problem Single transaction only

PiMS new DM architecture - After V0.5 Generated** Datamodel API (25k lines of code) PIMS DM API ** (2k lines of code) Hibernate Persistence Package Database* CCPN* generated SQL schema (CCPN) generation Machine CCPN* DataModel Hibernate Mapping files * Same as before **Most interface same as before

Improvement Generated code is under control The “target” code is provided before generated Generation machine is control by Anne with CCPN’s help Code can be changed without generation machine

Improvements Generated code is much easier to understand Generated code reduced from 117k to 25k lines

Improvements Generated API is easier to use PiMS DM API code reduced from 4k to 2k lines with more functions Simplified the way to use API A simple example: MetaClass metaClass = version.getModel(). getMetaClass(ccp.api.Target.Status.class.getName()); Collection statuses = version.getAll(metaClass); Collection<Status> statuses=version.getAll(Status.class);

Improvements Performance is improved a lot Duration of loading 9,000 targets reduced from “>24 hours” to “<20 mins” Cache is in used now. Multi-transaction is supported now

PiMS future DM architecture Datamodel Api PIMS API Hibernate Persistence Package Database SQL schema DataModel Hibernate Mapping files Annotation in POJO Generation Machine ?

PiMS future DM architecture Will be: Less dependence Not rely on CCPN’s generation Machine ObjectDomain Ltd is apparently no longer trading More flexible Annotation within source code will control mappings, UML and SQL

Database Upgrader Changes to Data Model risk damaging existing data Upgrader is essential to protect user data during upgrades PIMS is already in production use by MPSI, SSPF, YSBL Upgrader has been created for each version of PiMS: version 0.4, 0.5, 0.51 and 1.0

Others Testing: Fixing: Web Functions: Found 111 defects in PiMS Around 100 defects Web Functions: MRU Leeds Primer Order Forms