Format PDF The tools used by esup-helpdesk developers: Eclipse, Omondo EclipseUML plugin, Apache OJB JDO Pascal Aubry & Alexandre Boisseau IFSIC – University.

Slides:



Advertisements
Similar presentations
TPTP Data Model 1 Database support for TPTP EMF based data models using Elver/Hibernate Guru Nagarajan July 14, 2006.
Advertisements

Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Building FHIR Servers on Existing Applications
And so to Code. Forward, Reverse, and Round-Trip Engineering Forward Engineering Reverse Engineering Round-Trip Engineering.
Rapid Persistence Layer Development with Hibernate Rapid Persistence Layer Development with Hibernate Tyler Mendenhall E-gineering,

Input Validation For Free Text Fields ADD Project Members: Hagar Offer & Ran Mor Academic Advisor: Dr Gera Weiss Technical Advisors: Raffi Lipkin & Nadav.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Practical project in software engineering Feed reader project (Feedr) by Michael, Søren, Jonas and Therese.
Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University
ODBC and JDBC O/R Mapping David Rabinowitz. June 2nd, 2004 Object Oriented Design Course 2 Objects And Databases Most of the applications today are written.
ODBC and JDBC O/R Mapping Amit Shabtay. June 2nd, 2004 Object Oriented Design Course 2 Objects And Databases Most of the applications today are written.
Java Data Object Che-Rung Lee. JDO Objectives Transparent persistence Range of implementations  embedded (J2ME)  two tier (J2SE)  enterprise (J2EE,
Session-02.
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
Eclipse is an open source IDE (Integrated Development Environment) for developing applications in Java, C/C++, HTML, Cobol, Perl, etc. The official Eclipse.
An Introduction to Hibernate Matt Secoske
Data Persistence and Object-Relational Mapping Slides by James Brucker, used with his permission 1.
Object Persistence and Object-Relational Mapping James Brucker.
Struts Petstore Struts University Series. Abstract Struts has always shipped with a simple example application. But for many teams, MailReader is a bit.
Rapid Persistence Layer Development with Hibernate Rapid Persistence Layer Development with Hibernate Tyler Mendenhall E-gineering,
Training - Day 3 OJB. What is OR Mapping? OR Mapping is the mapping of relational database tables to objects (Java Objects in our case) Many OR Mapping.
A Generic And Extensible Framework For Model Driven Reverse Engineering.
UPortal Developers MIT August 2004 Persistence Strategy for uPortal 3 Mike DeSimone the r-smart group
Agenda What is Hibernate Spring Integration Questions Overview
Transforming the e-Concordiensis Edward Maas Senior Capstone Design Project Advisor: Professor Cass.
PowerDesigner 与对象建模. 2 Why Using UML? Visually define and communicate the structure and behavior of an application Represent systems using Object-Oriented.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
IS-907 Java EE JPA: Simple Object-Relational Mapping.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
JBoss Seam Presented by Andy Nguyen Truc Pham. What is JBoss Seam? Created by Gavin King Created by Gavin King A lightweight framework for Java EE 5.0.
Seminar on. Overview Hibernate. What is it? Hibernate. How does it work? Hibernate Tools.
Dali JPA Tools. About Dali Dali JPA Tools is an Eclipse Web Tools Platform sub-Project Dali 1.0 is a part of WTP 2.0 Europa coordinated release Goal -
JBoss Developer Studio BIRT Plugin. BIRT - Business Intelligence and Reporting Tools. BIRT plugin for JBoss Developer Studio is an Eclipse-based open.
Object/Relational Mapping with Hibernate Practical ORM.
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 14 Using Relational Databases to Provide Object Persistence (Overview) Modern Database.
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.
Ganymede Simultaneous Release | © 2008 by Springsite B.V., The Netherlands made available under the EPL v1.0 Teneo Ganymede Simultaneous Release.
July 7-11, 2003  Portland, Oregon JDO (Java Data Objects) What It Is And Why It Matters Ron Hitchens JavaPolis.
MCS 270 Spring 2014 Object-Oriented Software Development.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
JPA / HIBERNATE CSCI 6370 Nilayan Bhattacharya Sanket Sable.
1 Copyright 2010 NexJ Systems Inc. Confidential and Proprietary - Not for Distribution. OHT Application Integration Platform.
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
Fall CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.
Topic : Hibernate 1 Kaster Nurmukan. An ORM tool The problem fixed by ORM Advantage Hibernate Hibernate Basic –Hibernate sessionFactory –Hibernate Session.
1 Nov 29, 2005 Object Relational Mapping Frameworks Wiene Höweler.
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
The Omondo EclipseUML plug-in David Gallardo. What is UML A graphical language Not a development method It was designed for RUP—the Rational Unified Process,
Kansas City Java User’s Group Jason W. Bedell July 12, 2006
Taking stock of database 'standards' activities Some topics for discussion Mike Newton JTC1 SC32N1640.
Topic : Hibernate 1 Kaster Nurmukan. An ORM tool Used in data layer of applications Implements JPA.
Introduction to ORM Hibernate Hibernate vs JDBC. May 12, 2011 INTRODUCTION TO ORM ORM is a programming technique for converting data between relational.
Using Datastore with JDO 1. Setting up DataNucleus Access Platform 2. JDO class enhancement 3. POJOs and JDO Annotations 4. PersistencyManager and its.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Fall CIS 764 Database Systems Engineering L11: Object Relational Mapping … (a) ORM, Object persistence (b) Pets sequence.
HIBERNATE/Java Overview of technology for Hibernate by محمد حسن کاظمی پوران Master : M.M.Nematollahi.
Robert Worden Open Mapping Software Ltd
FHIR and Relational Databases
A very brief introduction
Persistence – Iteration 4 Vancouver Bootcamp
Java Data Persistence Using Hibernate
Hibernate Bayu Priyambadha, S.Kom.
Jeff Webb Maria Baron Chris Hundersmarck
MySQL Migration Toolkit
Teneo Ganymede Simultaneous Release Graduation Review
Teneo Ganymede Mini Deck
Data Access Layer (Con’t) (Overview)
Presentation transcript:

Format PDF The tools used by esup-helpdesk developers: Eclipse, Omondo EclipseUML plugin, Apache OJB JDO Pascal Aubry & Alexandre Boisseau IFSIC – University of Rennes 1 – May

Format PDF Program.java (runtime logic) Program.java (runtime logic) runtime components Program.class javac user-maintained data generated data tools and programs Legend: A Java program

Format PDF Channel.java (runtime logic) Channel.java (runtime logic) runtime components Channel.class uPortal IChannel.java javac runtime data XML output implementation user-maintained data generated data tools and programs Legend: A uPortal channel

Format PDF Channel.java (runtime logic) Channel.java (runtime logic) runtime components Data.class Data.java (data access) Data.java (data access) Channel.class uPortal database IChannel.java javac database access config javac database accesses database management runtime data XML output implementation user-maintained data generated data tools and programs Legend: A uPortal channel accessing a database

Format PDF Channel.java (runtime logic) Channel.java (runtime logic) runtime components Data.class Data.java (data access) Data.java (data access) Channel.class uPortal database IChannel.java javac database access config javac database accesses database management runtime data XML output implementation user-maintained data generated data tools and programs Legend: Accessing the database through (OJB) JDO OJB JDO enhancer database object map JDO runtime

Format PDF runtime components Channel.java (runtime logic) Channel.java (runtime logic) Data.class JDO runtime UML model UML model Data.java (data access) Data.java (data access) Channel.class uPortal database OJB JDO enhancer database object map IChannel.java javac database access config Omondo eclipseUML javac database accesses database management code generation & reverse engineering runtime data XML output implementation user-maintained data generated data tools and programs Legend: Using Omondo EclipseUML plugin

Format PDF runtime components Channel.java (runtime logic) Channel.java (runtime logic) Data.class JDO runtime UML model UML model Data.java (data access) Data.java (data access) Channel.class uPortal database OJB JDO enhancer database object map IChannel.java javac database access config Omondo eclipseUML javac database accesses database management code generation & reverse engineering runtime data XML output implementation user-maintained data generated data tools and programs Legend: Using Omondo EclipseUML plugin

Format PDF runtime components Channel.java (runtime logic) Channel.java (runtime logic) Data.class JDO runtime UML model UML model Data.java (data access) Data.java (data access) Channel.class uPortal database OJB JDO enhancer database object map IChannel.java javac database access config Omondo eclipseUML javac database accesses database management code generation & reverse engineering runtime data XML output implementation user-maintained data generated data tools and programs missing feature Legend: database object mapping

Format PDF runtime components Channel.java (runtime logic) Channel.java (runtime logic) Data.class JDO runtime UML model UML model Data.java (data access) Data.java (data access) Channel.class uPortal database OJB JDO enhancer database object map IChannel.java javac database access config Omondo eclipseUML javac database accesses database management code generation & reverse engineering runtime data XML output implementation user-maintained data generated data tools and programs missing feature Legend: database object mapping

Format PDF runtime components Channel.java (runtime logic) Channel.java (runtime logic) Data.class JDO runtime UML model UML model Data.java (data access) Data.java (data access) Channel.class uPortal database OJB JDO enhancer database object map IChannel.java javac database access config Omondo eclipseUML javac database accesses database management code generation & reverse engineering database object mapping runtime data XML output implementation user-maintained data generated data tools and programs missing feature Legend:

Format PDF JDO principles Database abstraction –Uses JDBC –JDBC abstracts the database manager –JDO abstracts the data: no SQL code is written at all! Persistence management –Perform changes on objects –the changes are automatically reflected on the data (in the database)

Format PDF JDO specifications

Format PDF JDO implementations Commercial –Kodo JDO (SolarMetric/Versant) the most feature complete, easy to use implementation. –JDO Genie pretty feature complete, but bad reputation. –JCredo Open-source –OJB (Apache, open source) JDO support is added through a plugin. A native JDO implementation will come with JDO 2.0. –TJDO (dead), XORM (not followed) –Castor JDO Last release in march Middle product –JOnAS (ObjectWeb) JOnAS is a J2ee specification which include JDO implementation. –Hibernate JDO (Hibernate) seems to be a good product –JBoss announced an open-source JDO implementation in JBoss.

Format PDF A very short example

Format PDF The CUser class public class CUser { private String id; private String displayName; public CUser(String id, String displayName) { this.id = id; this.displayName = displayName; } public String getId() { return id; } public String getDisplayName() { return displayName; }

Format PDF The CDoc class public class CDoc { private long id; private java.sql.Timestamp date; private CUser sender; private String senderId; public CDoc(String description, CUser sender) { // id is automatically set by OJB-JDO. this.date = new java.sql.Timestamp( new Date().getTime()); this.sender = sender; this.senderId = sender.getId(); } public long getId() { return id; } public Timestamp getDate() { return date; } public CUser getSender() { return sender; } }

Format PDF CUser database mapping

Format PDF CUser database mapping Table user : - id (primary-key) - displayname Table user : - id (primary-key) - displayname

Format PDF CDoc database mapping

Format PDF CDoc database mapping Table doc : - id (primary-key) - date - sender-id Table doc : - id (primary-key) - date - sender-id Table user : - id (primary-key) - displayname Table user : - id (primary-key) - displayname field-descriptor name="date" column="date" jdbc-type=" TIMESTAMP "/>

Format PDF Programming with OJB // Get an Persistence Manager Factory (PMF) OjbStorePMF f = new OjbStoryPMF(); // Get a Persistence Manager PersistenceManager manager = f.getPersistenceManager(); // Start a transaction manager.currentTransaction().begin(); // // Do things... // // Commit or rollback the transaction manager.currentTransaction().commit();

Format PDF Example: display all users try { manager.currentTransaction().begin(); Query query = manager.newQuery(CUser.class); Collection allUsers = (Collection) query.execute(); Iterator iter = allUsers.iterator(); while (iter.hasNext()) { u = (CUser) iter.next(); System.out.println("id=" + u.getId() + ", displayName=" + u.getDisplayName()); i++; } manager.currentTransaction().commit(); } catch (Throwable t) { t.printStackTrace(); } finally { manager.close();} }

Format PDF Example: create a user CUser u = new CUser("mon-id", "NOM prenom"); Transaction tx = manager.currentTransaction(); tx.begin(); // Mark object as persistant manager.makePersistent(u); try{ // Commit the transaction, object mark persistent is stored. tx.commit(); } catch(OjbStoreFatalInternalException ex){ System.out.println("User already exists!"); } finally { manager.close(); }

Format PDF Example: delete a user Transaction tx = manager.currentTransaction(); tx.begin(); Query query = manager.newQuery(CUser.class, "displayName == \"Toto\""); Collection result = (Collection) query.execute(); if (result.size() == 0) { System.out.println("No user found!"); } else if (result.size() > 1) { System.out.println("Several users match!"); } else { CUser u = (CUser) result.iterator().next(); manager.deletePersistent(u); } tx.commit();