SlideShare une entreprise Scribd logo
1  sur  26
Java Data Objects (JDO) Overview and Future Michael Vorburger, Vertical*i Java User Group Switzerland Zurich, 31.03.05
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
About Speaker ,[object Object],[object Object],[object Object],[object Object],[object Object]
About Audience ,[object Object],[object Object]
Object Persistence Concepts ,[object Object],[object Object],[object Object],[object Object],[object Object]
O/R Mapping (ORM) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
History ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JDO Introduction ,[object Object],[object Object],[object Object],[object Object]
JDO API: PMF & PM ,[object Object],[object Object],[object Object],[object Object]
JDO Metadata & Enhancement ,[object Object],[object Object],[object Object]
JDO API: Transactions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JDO API: Query and JDOQL ,[object Object],[object Object],[object Object]
JDO Queries: More of v1.0 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JDO Queries: More in v2.0 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JDO 2.0 News ,[object Object],[object Object],[object Object],[object Object]
JDO Implementations  [DISCLAIMER] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JDO & EJB 2.1 ,[object Object],[object Object]
JDO & EJB 2.1 ,[object Object],[object Object],[object Object]
JDO & EJB: DTO (AKA VO) ,[object Object],[object Object]
JDO & EJB: detachCopy ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JDO in the Web Tier (directly) ,[object Object],[object Object]
JDO and/or JDBC? ,[object Object],[object Object],[object Object]
EJB 3.0 ,[object Object],[object Object]
EJB 3.0 ,[object Object],[object Object],[object Object]
Future of Java Persistence ,[object Object],[object Object],[object Object],[object Object]
Q & A ,[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepGuo Albert
 
Introduction to JPA (JPA version 2.0)
Introduction to JPA (JPA version 2.0)Introduction to JPA (JPA version 2.0)
Introduction to JPA (JPA version 2.0)ejlp12
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentationguest11106b
 
Extreme Interview Questions
Extreme Interview QuestionsExtreme Interview Questions
Extreme Interview QuestionsEhtisham Ali
 
Hibernate complete Training
Hibernate complete TrainingHibernate complete Training
Hibernate complete Trainingsourabh aggarwal
 
Core java interview questions
Core java interview questionsCore java interview questions
Core java interview questionsRohit Singh
 
Technical interview questions
Technical interview questionsTechnical interview questions
Technical interview questionsSoba Arjun
 
Java interview questions
Java interview questionsJava interview questions
Java interview questionsSoba Arjun
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
Introduction to the Java(TM) Advanced Imaging API
Introduction to the Java(TM) Advanced Imaging APIIntroduction to the Java(TM) Advanced Imaging API
Introduction to the Java(TM) Advanced Imaging APIwhite paper
 
October 2009 - News From JBoss World 09
October 2009 - News From JBoss World 09October 2009 - News From JBoss World 09
October 2009 - News From JBoss World 09JBug Italy
 
Java Interview Questions
Java Interview QuestionsJava Interview Questions
Java Interview QuestionsKuntal Bhowmick
 

Tendances (20)

Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
 
Introduction to JPA (JPA version 2.0)
Introduction to JPA (JPA version 2.0)Introduction to JPA (JPA version 2.0)
Introduction to JPA (JPA version 2.0)
 
17 wics99 harkey
17 wics99 harkey17 wics99 harkey
17 wics99 harkey
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Extreme Interview Questions
Extreme Interview QuestionsExtreme Interview Questions
Extreme Interview Questions
 
CORBA
CORBACORBA
CORBA
 
Hibernate3 q&a
Hibernate3 q&aHibernate3 q&a
Hibernate3 q&a
 
Hibernate complete Training
Hibernate complete TrainingHibernate complete Training
Hibernate complete Training
 
Core java interview questions
Core java interview questionsCore java interview questions
Core java interview questions
 
Best interview questions
Best interview questionsBest interview questions
Best interview questions
 
Java persistence api 2.1
Java persistence api 2.1Java persistence api 2.1
Java persistence api 2.1
 
JPA For Beginner's
JPA For Beginner'sJPA For Beginner's
JPA For Beginner's
 
Technical interview questions
Technical interview questionsTechnical interview questions
Technical interview questions
 
What is Java? Presentation On Introduction To Core Java By PSK Technologies
What is Java? Presentation On Introduction To Core Java By PSK TechnologiesWhat is Java? Presentation On Introduction To Core Java By PSK Technologies
What is Java? Presentation On Introduction To Core Java By PSK Technologies
 
Java interview questions
Java interview questionsJava interview questions
Java interview questions
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
Introduction to the Java(TM) Advanced Imaging API
Introduction to the Java(TM) Advanced Imaging APIIntroduction to the Java(TM) Advanced Imaging API
Introduction to the Java(TM) Advanced Imaging API
 
Javaee6 Overview
Javaee6 OverviewJavaee6 Overview
Javaee6 Overview
 
October 2009 - News From JBoss World 09
October 2009 - News From JBoss World 09October 2009 - News From JBoss World 09
October 2009 - News From JBoss World 09
 
Java Interview Questions
Java Interview QuestionsJava Interview Questions
Java Interview Questions
 

Similaire à JDO Presentation given at Java User Group Switzerland (JUGS) on 31.03.05

Java one 2010
Java one 2010Java one 2010
Java one 2010scdn
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Luca Garulli
 
J2EE - Practical Overview
J2EE - Practical OverviewJ2EE - Practical Overview
J2EE - Practical OverviewSvetlin Nakov
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkBill Lyons
 
Java EE7
Java EE7Java EE7
Java EE7Jay Lee
 
Java 7 and 8, what does it mean for you
Java 7 and 8, what does it mean for youJava 7 and 8, what does it mean for you
Java 7 and 8, what does it mean for youDmitry Buzdin
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RaceBaruch Sadogursky
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
 
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovJava 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovSvetlin Nakov
 
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUGArun Gupta
 
JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?gedoplan
 

Similaire à JDO Presentation given at Java User Group Switzerland (JUGS) on 31.03.05 (20)

Java one 2010
Java one 2010Java one 2010
Java one 2010
 
Tu1 1 5l
Tu1 1 5lTu1 1 5l
Tu1 1 5l
 
J2 Ee Overview
J2 Ee OverviewJ2 Ee Overview
J2 Ee Overview
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007
 
J2EE - Practical Overview
J2EE - Practical OverviewJ2EE - Practical Overview
J2EE - Practical Overview
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
 
Java se7 features
Java se7 featuresJava se7 features
Java se7 features
 
Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012
 
Hybrid Applications
Hybrid ApplicationsHybrid Applications
Hybrid Applications
 
Java EE 6 & Spring: A Lover's Quarrel
Java EE 6 & Spring: A Lover's QuarrelJava EE 6 & Spring: A Lover's Quarrel
Java EE 6 & Spring: A Lover's Quarrel
 
What's new in Java EE 6
What's new in Java EE 6What's new in Java EE 6
What's new in Java EE 6
 
Whats New In Java Ee 6
Whats New In Java Ee 6Whats New In Java Ee 6
Whats New In Java Ee 6
 
Java EE7
Java EE7Java EE7
Java EE7
 
Java 7 and 8, what does it mean for you
Java 7 and 8, what does it mean for youJava 7 and 8, what does it mean for you
Java 7 and 8, what does it mean for you
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011
 
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovJava 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
 
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
 
JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?
 

Plus de Michael Vorburger

Never too young for Open Source - Red Hat summit in Boston 2017.5
Never too young for Open Source - Red Hat summit in Boston 2017.5Never too young for Open Source - Red Hat summit in Boston 2017.5
Never too young for Open Source - Red Hat summit in Boston 2017.5Michael Vorburger
 
Meet the Eclipse SmartHome powered Mars Rover
Meet the Eclipse SmartHome powered Mars RoverMeet the Eclipse SmartHome powered Mars Rover
Meet the Eclipse SmartHome powered Mars RoverMichael Vorburger
 
The End of the world as we know it - AKA your last NullPointerException $1B b...
The End of the world as we know it - AKA your last NullPointerException $1B b...The End of the world as we know it - AKA your last NullPointerException $1B b...
The End of the world as we know it - AKA your last NullPointerException $1B b...Michael Vorburger
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0Michael Vorburger
 
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansMichael Vorburger
 
2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a Time
2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a Time2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a Time
2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a TimeMichael Vorburger
 
Mifos: Ending Poverty One Line of Code at a Time
Mifos: Ending Poverty One Line of Code at a TimeMifos: Ending Poverty One Line of Code at a Time
Mifos: Ending Poverty One Line of Code at a TimeMichael Vorburger
 
Ending poverty with software using globally distributed teams to tackle diff...
Ending poverty with software  using globally distributed teams to tackle diff...Ending poverty with software  using globally distributed teams to tackle diff...
Ending poverty with software using globally distributed teams to tackle diff...Michael Vorburger
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
 
Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)
Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)
Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)Michael Vorburger
 

Plus de Michael Vorburger (10)

Never too young for Open Source - Red Hat summit in Boston 2017.5
Never too young for Open Source - Red Hat summit in Boston 2017.5Never too young for Open Source - Red Hat summit in Boston 2017.5
Never too young for Open Source - Red Hat summit in Boston 2017.5
 
Meet the Eclipse SmartHome powered Mars Rover
Meet the Eclipse SmartHome powered Mars RoverMeet the Eclipse SmartHome powered Mars Rover
Meet the Eclipse SmartHome powered Mars Rover
 
The End of the world as we know it - AKA your last NullPointerException $1B b...
The End of the world as we know it - AKA your last NullPointerException $1B b...The End of the world as we know it - AKA your last NullPointerException $1B b...
The End of the world as we know it - AKA your last NullPointerException $1B b...
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
 
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
 
2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a Time
2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a Time2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a Time
2012 Mifos Update at Open World Forum: Ending Poverty One Line of Code at a Time
 
Mifos: Ending Poverty One Line of Code at a Time
Mifos: Ending Poverty One Line of Code at a TimeMifos: Ending Poverty One Line of Code at a Time
Mifos: Ending Poverty One Line of Code at a Time
 
Ending poverty with software using globally distributed teams to tackle diff...
Ending poverty with software  using globally distributed teams to tackle diff...Ending poverty with software  using globally distributed teams to tackle diff...
Ending poverty with software using globally distributed teams to tackle diff...
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)
Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)
Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)
 

Dernier

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

JDO Presentation given at Java User Group Switzerland (JUGS) on 31.03.05

  • 1. Java Data Objects (JDO) Overview and Future Michael Vorburger, Vertical*i Java User Group Switzerland Zurich, 31.03.05
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

Notes de l'éditeur

  1. Many applications deal with “data”. It is very natural for both OOP developers as well as for other stakeholders such as subject matter experts to think in terms of objects for that data, a Domain Model, the class “Customer” with a String name and the Collection of associated Order instances etc. But objects “die” when you “pull the plug” – they are in-memory constructs of our software. So the question that invariably comes up is: how do we “keep” those objects? More technically speaking, how and when should we store/save those objects somewhere, how do we find them again, how do we do this transactionally, how do we do all of this efficiently? Of course, we have all seen different approaches to this: Business objects with Save methods and dirty flags, persistence related code more or less intermixed with domain related code (AKA your in-house object persistence layer), or with no real domain model in the application code at all, and natively interfacing with the API of your datastore, only. Transparent, or orthogonal, Object Persistence is a concept in which an application and more importantly the domain model is independent of the underlying persistence infrastructure. Developers are able to work with objects marked once as persistent directly in their code, just like with any other application objects. Create your new Customer, call some persist() method – and you are done. Add a new Order object – it becomes “persistent by reachability”. While that may sound simplistic, conceptually object persistence really doesn’t have to be more complicated. Finding those persistent objects again doesn’t have to be complicated either – think OOP, think Java, navigate through the domain model data object graph: Get the Orders for a Customers by calling something like a getOrders() method on the Customer class, a real and simple plain old java object POJO, implemented simply as a return of some private orders collections. Of course, sometimes you don’t have a reference, e.g. somehow we have to find the Customer first – a chicken and egg problem. Instead of adding all instances [of a certain class] to a big allObjects Collection, which I mention because conceptually I think it’s interesting to think of it that way, all persistence frameworks offer some query language and API; some have a concept called root or named objects in addition. Then there are Transactions and Concurrency… certainly an entire topic on it’s own, but in the context of transparent object persistence, as long as the persistence layer has a way of being informed when we are about to start making changes that are to be considered a “unit” from a functional point of view, and when we are done making those changes (commit) or don’t actually want to make them (abort), then any real persistence layer ensure the ACID [Atomicity, Consistency, Isolation, Durability] transactional properties and handle concurrency issues with one of the known locking approaches etc. Many concerns can conceptually be considered “internal” to a truly transparent persistence layer. For example, while we have spoken about the domain model object graph, and how relationships can be traversed etc, I didn’t mean to imply that the entire graph be physically in memory… indeed all real and scalable persistence frameworks of course provide partial read or updates, loading-as-needed, caches, expirations, etc. But those are essentially “under the hood” and internal issues that you generally should have no interest in from the model and the using application’s point of view. One last note before moving on to the next slide: We haven’t spoken about relational databases so far – I prefer the term “datastore” concerning what we have spoken up here. A datastore can be, and certainly very often is, a relational database. An object database is another form of datastore, agreed historically not very popular, but still something to keep in mind. So is an LDAP directory. A modern content repository is also a datastore..
  2. JDO does not require e.g. member variables to be public or package local, or user-written implementation of certain interfaces or superclass extension. Nor does it prevent the same – public member variables can work – if entire code is byte code enhanced.
  3. Single-String JDOQL Form: Complete String form, not necessarily String + API calls; e.g. for sorting, and new features Projections: Result is no longer necessarily subset of candidate collection, but could just a few attributes (SQL select like) Aggregates: Allows min, max, avg, sum, count. Group By and Having. More String expressions More numeric, Map functions Paging query results Native SQL User-defined Result Class
  4. JDO 2.0 JSR first rejected, I'd say because of "political reasons"
  5. Data Transfer Objects, Value Objects
  6. Serializable for Remote DTO – JDO will never Serialize
  7. Implicit detachment also if the instance or an instance containing a reference to the instance is serialized; or the persistence manager managing the instance is closed and the new DetachOnClose property is true.
  8. Outside J2EE container, how to access & use not yet clear, apparently. I asked the question to the EJB Spec Lead at the Server Side Conference, and the response, if I understood it correctly, was something to the effect of ... or Hibernate, or TopLink - more or less ignoring the fact that a JCP approved javax.* API for persistence already existed. Last year, a window of opportunity - It hasn't happened - Point it: That discussion is probably history now.
  9. Also Persistence Metadata – separate. JDO2 and EJB3 detachment behavior is also in alignment: This means that semantic behavior of domain model is thesame in both EJB3 and JDO2
  10. Oracle apparently already has implementation? Now 2-3y is a LONG time out in this industry... ;-) Personally, I think JDO is going to stick around longer than some people think, but in the end will be replaced by “EJB” 3.x persistence… which will have nothing much to do with “EJB” as we know and think of it today. Interesting what this will mean for the “container” as we know it today… think BEA WebLogic, IBM WebSphere. I’d say they’ll possibly pick up JDO vendors – maybe not. JDO vendors tell everybody who is willing to listen loud and clear. Tough sale, but not unheard of (e.g. a Versant ODB implementation for "1000 times faster" WebSphere EJB 2.1 Entity Beans)