SlideShare ist ein Scribd-Unternehmen logo
1 von 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]

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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?
 

Mehr von 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
 

Mehr von 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)
 

Kürzlich hochgeladen

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Kürzlich hochgeladen (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

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.

Hinweis der Redaktion

  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)