SlideShare a Scribd company logo
1 of 32
Download to read offline
EclipseLink:

Beyond Relational and NoSQL to
Polyglot and HTML5
Shaun Smith
shaun.smith@oraclecom

1

Gunnar Wagenknecht
gunnar@wagenknecht.org

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
About Us
§  Shaun Smith
–  Eclipse committer on EclipseLink and related projects
–  Oracle TopLink Product Manager
–  OO developer since 1987, so I’m old enough to know Smalltalk ;)

§  Gunnar Wagenknecht
–  CTO @ AGETO
–  Committer and contributor @ Eclipse
–  Java since 1999; Eclipse since 2001

2

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Agenda—Database to Browser (and back again)
Browser
HTTP / REST
Binding Persistence
XML/JSON

Java
Database Persistence
Relational/NoSQL

Relational DB | NoSQL DB
3

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Agenda
Browser
HTTP / REST
Binding Persistence
XML/JSON

Java
Database Persistence
Relational/NoSQL

Relational DB | NoSQL DB
4

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
NoSQL Databases
§  EclipseLink is best known for relational persistence but…
§  NoSQL database are increasingly popular
§  No common definition (document, graph, columnar)
–  Differing feature sets
–  Some offer query language/API—some not

§  No standards
§  Every database offers a unique API
–  Cost in terms of learning
–  Zero portability across databases

5

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
EclipseLink NoSQL
§  Support JPA-style access to NoSQL databases
–  Leverage non-relational database support for JCA (and JDBC when

available)
§  Define annotations and XML to identify NoSQL stored entities (e.g.,

@NoSQL)
§  Support JPQL subset for each
–  Key principal: leverage what’s available

§  Initial support for MongoDB and Oracle NoSQL.
§  Support mixing relational and non-relational data in single composite

persistence unit (“polyglot persistence”)
6

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Applicability of JPA to NoSQL
§  Core JPA concepts apply to NoSQL:
–  Persistent Entities, Embeddables, ElementCollection, OneToOne,

OneToMany, ManyToOne, Version, etc.
§  Some concepts apply with some databases:
–  JPQL, NamedNativeQuery

§  Pure relational concepts don’t apply:
–  CollectionTable, Column, SecondaryTable,

SequenceGenerator, TableGenerator, etc.

7

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Querying NoSQL with JPA
§  Two kinds of queries
–  JQPL—portable query language defined by the spec
–  Native query—lets you leverage database specific features
–  Dynamic or static @NamedQuery

§  JPQL translated to underlying database query framework.

8

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Example MongoDB Mapped Entity

9

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
MongoDB Query Examples
§  JPQL
	
  	
  Select

o from Order o
where o.totalCost > 1000

Select o from Order o
join o.orderLines l where l.cost > :cost

§  Native Queries
	
  	
  query

= em.createNativeQuery(
"db.ORDER.findOne({"_id":"" +
oid + ""})", Order.class);

Order order =
(Order) query.getSingleResult();
10

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Demo EclipseLink NoSQL

11

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
“…we are gearing up for a shift to polyglot persistence - where any
decent sized enterprise will have a variety of different data storage
technologies for different kinds of data…we'll be first asking how
we want to manipulate the data and only then figuring out what
technology is the best bet for it..”
Martin Fowler
ThoughtWorks

12

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Composite Persistence Unit
Composite PU

Relational PU

13

NoSQL PU

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Demo Polyglot Persistence

14

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Agenda
Browser
HTTP / REST
Binding Persistence
XML/JSON

Java
Database Persistence
Relational/NoSQL

Relational DB | NoSQL DB
15

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Binding Persistence
XML and JSON Binding
§  EclipseLink implements
–  JAXB for Java/XML binding—covert Java to/from XML
–  Java/JSON binding—convert Java to/from JSON

§  Currently no Java/JSON binding standard
–  Java API for JSON Processing (JSR 535) is parsing, not binding

§  EclipseLink interprets JAXB XML bindings for JSON
–  Content-type selectable by setting property on Marshaller/Unmarshaller

16

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
XML and JSON from JAXB Mappings

{
"phone-numbers" : [ {
"id" : 2,
"num" : "512-555-9999",
"type" : "mobile"
} ],
"address" : {
"city" : "New York",
"id" : 1,
"street" : "Central Park
East"
},
"firstName" : "Woody",
"id" : 1,
"lastName" : “Allen"
}

17

<?xml version="1.0"
encoding="UTF-8"?>
<customer>
<phone-numbers>
<phone-number>
<id>2</id>
<num>512-555-1234</num>
<type>home</type>
</phone-number>
</phone-numbers>
<address>
<city>New York</city>
<id>1</id>
<street>Central Park East</street>
</address>
<firstName>Bill</firstName>
<id>1</id>
<lastName>Allen</lastName>
</customer>

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Challenges – Binding JPA Entities to XML/JSON
<?xml version="1.0" ?>
<employee>
<first>Mark</first>
<last>Twain</last>
<id>1</id>
</employee>

JAXB

JPA

•  Bidirectional/Cyclical Relationships
•  Composite Keys/Embedded Key Classes
•  Byte Code Weaving

18

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Bidirectional Relationship
@Entity
public class Project{
...
@OneToMany(mappedBy=“project")
private List<Employee> members;
}
@Entity
public class Employee{
...
@ManyToOne
private Project project;
}

19

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Bidirectional Relationships in JAXB
§  JAXB specification does not support bidirectional relationships. One

side must be marked @XmlTransient.
§  But that loses the relationship!

members

Employee
project

20

Project

<?xml version="1.0" ?>
<employee>
<first>Mark</first>
<last>Twain</last>
<id>1</id>
</employee>

Marshall

Unmarshall

X

Employee

Project

project

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
EclipseLink XmlInverseReference

21

@Entity
public class Project{
...
@OneToMany(mappedBy=“project")
private List<Employee> members;
}
@Entity
public class Employee{
...
@ManyToOne
@XmlInverseReference(mappedBy=“members")
private Project project;
}

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
EclipseLink XmlInverseReference
§  EclipseLink restores relationships on unmarshall!

members

members

Employee

Project

project

Marshall

22

<?xml version="1.0" ?>
<employee>
<first>Mark</first>
<last>Twain</last>
<id>1</id>
</employee>

Employee

Project

project

Unmarshall

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Demo
JAXB/JPA Fidelity
JSON Binding

23

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Agenda
Browser
HTTP / REST
Binding Persistence
XML/JSON

Java
Database Persistence
Relational/NoSQL

Relational DB | NoSQL DB
24

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
JPA-RS
Browser
HTTP
Binding Persistence
XML/JSON

JAX-RS / JPA-RS
Java
Database Persistence
Relational/NoSQL

Relational DB | NoSQL DB
25

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
JPA-RS

GET http://.../persistence/Accounting/Invoice/...
JAX-RS http://.../persistence/Accounting/Invoice/...
JAX-RS
mapped to JPA-RS service
JPA-RS
JPA-RS maps URI http://.../persistence/Accounting/

Accounting PU

Invoice/...
to Accounting PU and Invoice entityPU
Contracting PU
Human Resources
...

JPA

26

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
JPA-RS Features
§  Access relational data through REST with JSON or XML
§  Provides REST operations for entities in persistence unit (GET, PUT,

POST, DELETE)
§  Automatic generation of XML and JSON bindings
§  Supports invocation of named queries via HTTP
§  Server Caching—EclipseLink clustered cache
§  Dynamic Persistence also supported

–  Entities defined via metadata—no Java classes required
–  Enables persistence services for HTML 5/JavaScript applications

27

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Resource Model & Links
{
"firstName": "Frank",
"gender": "Male",
"id": 1,
"lastName": "Smith",
"responsibilities": [],
"salary": 1,
"version": 13,
"address": {
"_link": {
"href": "http://localhost:7001/employee.web-js/persistence/employee/entity/Address/18",
"method": "GET",
"rel": "self"
}
},
…
28

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Demo EclipseLink JPA-RS

29

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Releases & Roadmap
2010
EclipseLink 2.1
Helios
•  Query Extensions
•  TREAT AS
•  FUNC
•  Batch IN and
EXISTS
•  Attribute Group
•  Load
•  Fetch
•  Copy
•  Merge
•  eclispelinkoxm.xml
•  Dynamic MOXy

30

2011

2012

2013

EclipseLink 2.3
Indigo

EclipseLink 2.4
Juno

EclipseLink 2.5
Kepler

•  Tenant Isolation

•  JSON Binding
•  JPA-RS
•  Tenant Isolation
•  Tenant per
Table/Schema
•  ALTER Schema
•  NoSQL

•  JPA 2.1
•  JPA-RS++ …

•  SINGLE_TABLE

•  Extensible
•  External
Metadata
•  Multiple DBs
•  Data Partitioning

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
Summary
§  Java is evolving—and EclipseLink is evolving too!
–  JSON Binding
–  JAXB/JPA Fidelity
–  JPA-RS
–  NoSQL
–  Polyglot Persistence

31

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
32

Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License

More Related Content

What's hot

Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015Edward Burns
 
D-DAY 2015 Paas ORACLE
D-DAY 2015 Paas ORACLED-DAY 2015 Paas ORACLE
D-DAY 2015 Paas ORACLEDEVOPS D-DAY
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Kurt Liu
 
Solaris 11.2 What's New
Solaris 11.2 What's NewSolaris 11.2 What's New
Solaris 11.2 What's NewOrgad Kimchi
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015Edward Burns
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Edward Burns
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Edward Burns
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016Ed Burns
 
Introducing Java 8
Introducing Java 8Introducing Java 8
Introducing Java 8PT.JUG
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureOracle Developers
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellOracle Developers
 
Developing Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudDeveloping Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudMatt Wright
 
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...Capgemini
 
OpenStack and MySQL
OpenStack and MySQLOpenStack and MySQL
OpenStack and MySQLMatt Lord
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0David Delabassee
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Edward Burns
 
RethinkDB on Oracle Linux
RethinkDB on Oracle LinuxRethinkDB on Oracle Linux
RethinkDB on Oracle LinuxJohan Louwers
 

What's hot (20)

MySQL
MySQLMySQL
MySQL
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
 
D-DAY 2015 Paas ORACLE
D-DAY 2015 Paas ORACLED-DAY 2015 Paas ORACLE
D-DAY 2015 Paas ORACLE
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1
 
Solaris 11.2 What's New
Solaris 11.2 What's NewSolaris 11.2 What's New
Solaris 11.2 What's New
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
 
Introducing Java 8
Introducing Java 8Introducing Java 8
Introducing Java 8
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud Infrastructure
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
 
Developing Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudDeveloping Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the Cloud
 
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
 
OpenStack and MySQL
OpenStack and MySQLOpenStack and MySQL
OpenStack and MySQL
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
 
RethinkDB on Oracle Linux
RethinkDB on Oracle LinuxRethinkDB on Oracle Linux
RethinkDB on Oracle Linux
 

Viewers also liked

Is "data" singular or plural?
Is "data" singular or plural?Is "data" singular or plural?
Is "data" singular or plural?michaeljm007
 
Grammar Girl Web Discussion - February 9, 2012
Grammar Girl Web Discussion - February 9, 2012Grammar Girl Web Discussion - February 9, 2012
Grammar Girl Web Discussion - February 9, 2012Scott Abel
 
XML Schema Difference Analysis
XML Schema Difference AnalysisXML Schema Difference Analysis
XML Schema Difference Analysisartcolman
 
The power of information - easy read version
The power of information - easy read versionThe power of information - easy read version
The power of information - easy read versionDepartment of Health
 
How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...
How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...
How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...OlinData
 
Understanding Java byte code and the class file format
Understanding Java byte code and the class file formatUnderstanding Java byte code and the class file format
Understanding Java byte code and the class file formatRafael Winterhalter
 
Book summary - What got you here Won't get you there
Book summary - What got you here Won't get you thereBook summary - What got you here Won't get you there
Book summary - What got you here Won't get you thereNordiana Noordin
 
What Got You Here Won't Get You There: Leading the Next Generation in the Wor...
What Got You Here Won't Get You There: Leading the Next Generation in the Wor...What Got You Here Won't Get You There: Leading the Next Generation in the Wor...
What Got You Here Won't Get You There: Leading the Next Generation in the Wor...Bill Sheridan, CAE
 
Book Summary - What got you here wont get you there!
Book Summary - What got you here wont get you there!Book Summary - What got you here wont get you there!
Book Summary - What got you here wont get you there!Dr. Shivananda Koteshwar
 
An introductory guide to the United Nations Convention on the Rights of Perso...
An introductory guide to the United Nations Convention on the Rights of Perso...An introductory guide to the United Nations Convention on the Rights of Perso...
An introductory guide to the United Nations Convention on the Rights of Perso...NUDORRwanda
 
What got you here; won't get you there
What got you here; won't get you thereWhat got you here; won't get you there
What got you here; won't get you thereVinod Mehra
 
PRINCE2 Foundation Training Manual by Frank Turley
PRINCE2 Foundation Training Manual by Frank TurleyPRINCE2 Foundation Training Manual by Frank Turley
PRINCE2 Foundation Training Manual by Frank TurleyFrank Turley
 
National Care Standards - Easy Read Version
National Care Standards - Easy Read VersionNational Care Standards - Easy Read Version
National Care Standards - Easy Read VersionChristian Storstein
 
Making Great Presentations
Making Great PresentationsMaking Great Presentations
Making Great PresentationsIan Lurie
 
What Got You Here Wont Get You There
What Got You Here Wont Get You There What Got You Here Wont Get You There
What Got You Here Wont Get You There GMR Group
 
4 great public speaking tips effective presentation skills training
4 great public speaking tips effective presentation skills training4 great public speaking tips effective presentation skills training
4 great public speaking tips effective presentation skills trainingAkash Karia
 
Scientific Method Variables (Teach)
Scientific Method Variables (Teach)Scientific Method Variables (Teach)
Scientific Method Variables (Teach)Moira Whitehouse
 
English book 4 teacher 2015 - 2016
English book 4 teacher 2015 - 2016English book 4 teacher 2015 - 2016
English book 4 teacher 2015 - 2016Gabriel Guerrón
 

Viewers also liked (20)

Is "data" singular or plural?
Is "data" singular or plural?Is "data" singular or plural?
Is "data" singular or plural?
 
Grammar Girl Web Discussion - February 9, 2012
Grammar Girl Web Discussion - February 9, 2012Grammar Girl Web Discussion - February 9, 2012
Grammar Girl Web Discussion - February 9, 2012
 
XML Schema Difference Analysis
XML Schema Difference AnalysisXML Schema Difference Analysis
XML Schema Difference Analysis
 
The power of information - easy read version
The power of information - easy read versionThe power of information - easy read version
The power of information - easy read version
 
How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...
How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...
How to Change Permissions and Install a Module in Drupal - Musings of a Drupa...
 
Understanding Java byte code and the class file format
Understanding Java byte code and the class file formatUnderstanding Java byte code and the class file format
Understanding Java byte code and the class file format
 
Book summary - What got you here Won't get you there
Book summary - What got you here Won't get you thereBook summary - What got you here Won't get you there
Book summary - What got you here Won't get you there
 
What Got You Here Won't Get You There: Leading the Next Generation in the Wor...
What Got You Here Won't Get You There: Leading the Next Generation in the Wor...What Got You Here Won't Get You There: Leading the Next Generation in the Wor...
What Got You Here Won't Get You There: Leading the Next Generation in the Wor...
 
Book Summary - What got you here wont get you there!
Book Summary - What got you here wont get you there!Book Summary - What got you here wont get you there!
Book Summary - What got you here wont get you there!
 
An introductory guide to the United Nations Convention on the Rights of Perso...
An introductory guide to the United Nations Convention on the Rights of Perso...An introductory guide to the United Nations Convention on the Rights of Perso...
An introductory guide to the United Nations Convention on the Rights of Perso...
 
Responsive Typography II
Responsive Typography IIResponsive Typography II
Responsive Typography II
 
What got you here; won't get you there
What got you here; won't get you thereWhat got you here; won't get you there
What got you here; won't get you there
 
PRINCE2 Foundation Training Manual by Frank Turley
PRINCE2 Foundation Training Manual by Frank TurleyPRINCE2 Foundation Training Manual by Frank Turley
PRINCE2 Foundation Training Manual by Frank Turley
 
National Care Standards - Easy Read Version
National Care Standards - Easy Read VersionNational Care Standards - Easy Read Version
National Care Standards - Easy Read Version
 
Making Great Presentations
Making Great PresentationsMaking Great Presentations
Making Great Presentations
 
What Got You Here Wont Get You There
What Got You Here Wont Get You There What Got You Here Wont Get You There
What Got You Here Wont Get You There
 
4 great public speaking tips effective presentation skills training
4 great public speaking tips effective presentation skills training4 great public speaking tips effective presentation skills training
4 great public speaking tips effective presentation skills training
 
Formal & informal organisational
Formal & informal organisationalFormal & informal organisational
Formal & informal organisational
 
Scientific Method Variables (Teach)
Scientific Method Variables (Teach)Scientific Method Variables (Teach)
Scientific Method Variables (Teach)
 
English book 4 teacher 2015 - 2016
English book 4 teacher 2015 - 2016English book 4 teacher 2015 - 2016
English book 4 teacher 2015 - 2016
 

Similar to EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5

EclipseLink: From NoSQL to HTML5 by Shaun Smith
EclipseLink: From NoSQL to HTML5 by Shaun SmithEclipseLink: From NoSQL to HTML5 by Shaun Smith
EclipseLink: From NoSQL to HTML5 by Shaun SmithCodemotion
 
112815 java ee8_davidd
112815 java ee8_davidd112815 java ee8_davidd
112815 java ee8_daviddTakashi Ito
 
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEd presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEdward Burns
 
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Bruno Borges
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013Andrew Morgan
 
Best Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXBBest Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXBMartin Grebac
 
Con8862 no sql, json and time series data
Con8862   no sql, json and time series dataCon8862   no sql, json and time series data
Con8862 no sql, json and time series dataAnuj Sahni
 
NoSQL Endgame LWJUG 2021
NoSQL Endgame LWJUG 2021NoSQL Endgame LWJUG 2021
NoSQL Endgame LWJUG 2021Thodoris Bais
 
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...Dr. Wilfred Lin (Ph.D.)
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesChristopher Jones
 
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFishJava API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFishArun Gupta
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxToon Koppelaars
 
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun GuptaGetting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun GuptaCodemotion
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta jaxconf
 
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaGetting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaArun Gupta
 
O Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no JavaO Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no JavaBruno Borges
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8David Delabassee
 

Similar to EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5 (20)

EclipseLink: From NoSQL to HTML5 by Shaun Smith
EclipseLink: From NoSQL to HTML5 by Shaun SmithEclipseLink: From NoSQL to HTML5 by Shaun Smith
EclipseLink: From NoSQL to HTML5 by Shaun Smith
 
112815 java ee8_davidd
112815 java ee8_davidd112815 java ee8_davidd
112815 java ee8_davidd
 
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEd presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
 
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
 
Best Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXBBest Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXB
 
Con8862 no sql, json and time series data
Con8862   no sql, json and time series dataCon8862   no sql, json and time series data
Con8862 no sql, json and time series data
 
NoSQL Endgame LWJUG 2021
NoSQL Endgame LWJUG 2021NoSQL Endgame LWJUG 2021
NoSQL Endgame LWJUG 2021
 
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
 
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFishJava API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFish
 
API
APIAPI
API
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
 
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun GuptaGetting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
 
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaGetting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in Java
 
Java EE for the Cloud
Java EE for the CloudJava EE for the Cloud
Java EE for the Cloud
 
Vaibhav_Jain
Vaibhav_JainVaibhav_Jain
Vaibhav_Jain
 
O Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no JavaO Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no Java
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
 

More from Shaun Smith

Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOpsShaun Smith
 
Democratizing Serverless
Democratizing ServerlessDemocratizing Serverless
Democratizing ServerlessShaun Smith
 
Practical RESTful Persistence
Practical RESTful PersistencePractical RESTful Persistence
Practical RESTful PersistenceShaun Smith
 
The Evolution of Java Persistence
The Evolution of Java PersistenceThe Evolution of Java Persistence
The Evolution of Java PersistenceShaun Smith
 
EclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingEclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingShaun Smith
 
EclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroEclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroShaun Smith
 
EclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAEclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAShaun Smith
 
RESTful Data Access Services with Java EE
RESTful Data Access Services with Java EERESTful Data Access Services with Java EE
RESTful Data Access Services with Java EEShaun Smith
 
RESTful services with JAXB and JPA
RESTful services with JAXB and JPARESTful services with JAXB and JPA
RESTful services with JAXB and JPAShaun Smith
 
OSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkOSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkShaun Smith
 

More from Shaun Smith (11)

Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
Democratizing Serverless
Democratizing ServerlessDemocratizing Serverless
Democratizing Serverless
 
Practical RESTful Persistence
Practical RESTful PersistencePractical RESTful Persistence
Practical RESTful Persistence
 
The Evolution of Java Persistence
The Evolution of Java PersistenceThe Evolution of Java Persistence
The Evolution of Java Persistence
 
EclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingEclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini Naming
 
EclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroEclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini Intro
 
EclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAEclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPA
 
RESTful Data Access Services with Java EE
RESTful Data Access Services with Java EERESTful Data Access Services with Java EE
RESTful Data Access Services with Java EE
 
RESTful services with JAXB and JPA
RESTful services with JAXB and JPARESTful services with JAXB and JPA
RESTful services with JAXB and JPA
 
OSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkOSGi Persistence With EclipseLink
OSGi Persistence With EclipseLink
 

Recently uploaded

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
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
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
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
"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
 
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
 

Recently uploaded (20)

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
 
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.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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!
 
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
 
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)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
"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...
 
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
 

EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5

  • 1. EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5 Shaun Smith shaun.smith@oraclecom 1 Gunnar Wagenknecht gunnar@wagenknecht.org Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 2. About Us §  Shaun Smith –  Eclipse committer on EclipseLink and related projects –  Oracle TopLink Product Manager –  OO developer since 1987, so I’m old enough to know Smalltalk ;) §  Gunnar Wagenknecht –  CTO @ AGETO –  Committer and contributor @ Eclipse –  Java since 1999; Eclipse since 2001 2 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 3. Agenda—Database to Browser (and back again) Browser HTTP / REST Binding Persistence XML/JSON Java Database Persistence Relational/NoSQL Relational DB | NoSQL DB 3 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 4. Agenda Browser HTTP / REST Binding Persistence XML/JSON Java Database Persistence Relational/NoSQL Relational DB | NoSQL DB 4 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 5. NoSQL Databases §  EclipseLink is best known for relational persistence but… §  NoSQL database are increasingly popular §  No common definition (document, graph, columnar) –  Differing feature sets –  Some offer query language/API—some not §  No standards §  Every database offers a unique API –  Cost in terms of learning –  Zero portability across databases 5 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 6. EclipseLink NoSQL §  Support JPA-style access to NoSQL databases –  Leverage non-relational database support for JCA (and JDBC when available) §  Define annotations and XML to identify NoSQL stored entities (e.g., @NoSQL) §  Support JPQL subset for each –  Key principal: leverage what’s available §  Initial support for MongoDB and Oracle NoSQL. §  Support mixing relational and non-relational data in single composite persistence unit (“polyglot persistence”) 6 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 7. Applicability of JPA to NoSQL §  Core JPA concepts apply to NoSQL: –  Persistent Entities, Embeddables, ElementCollection, OneToOne, OneToMany, ManyToOne, Version, etc. §  Some concepts apply with some databases: –  JPQL, NamedNativeQuery §  Pure relational concepts don’t apply: –  CollectionTable, Column, SecondaryTable, SequenceGenerator, TableGenerator, etc. 7 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 8. Querying NoSQL with JPA §  Two kinds of queries –  JQPL—portable query language defined by the spec –  Native query—lets you leverage database specific features –  Dynamic or static @NamedQuery §  JPQL translated to underlying database query framework. 8 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 9. Example MongoDB Mapped Entity 9 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 10. MongoDB Query Examples §  JPQL    Select o from Order o where o.totalCost > 1000 Select o from Order o join o.orderLines l where l.cost > :cost §  Native Queries    query = em.createNativeQuery( "db.ORDER.findOne({"_id":"" + oid + ""})", Order.class); Order order = (Order) query.getSingleResult(); 10 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 11. Demo EclipseLink NoSQL 11 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 12. “…we are gearing up for a shift to polyglot persistence - where any decent sized enterprise will have a variety of different data storage technologies for different kinds of data…we'll be first asking how we want to manipulate the data and only then figuring out what technology is the best bet for it..” Martin Fowler ThoughtWorks 12 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 13. Composite Persistence Unit Composite PU Relational PU 13 NoSQL PU Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 14. Demo Polyglot Persistence 14 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 15. Agenda Browser HTTP / REST Binding Persistence XML/JSON Java Database Persistence Relational/NoSQL Relational DB | NoSQL DB 15 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 16. Binding Persistence XML and JSON Binding §  EclipseLink implements –  JAXB for Java/XML binding—covert Java to/from XML –  Java/JSON binding—convert Java to/from JSON §  Currently no Java/JSON binding standard –  Java API for JSON Processing (JSR 535) is parsing, not binding §  EclipseLink interprets JAXB XML bindings for JSON –  Content-type selectable by setting property on Marshaller/Unmarshaller 16 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 17. XML and JSON from JAXB Mappings { "phone-numbers" : [ { "id" : 2, "num" : "512-555-9999", "type" : "mobile" } ], "address" : { "city" : "New York", "id" : 1, "street" : "Central Park East" }, "firstName" : "Woody", "id" : 1, "lastName" : “Allen" } 17 <?xml version="1.0" encoding="UTF-8"?> <customer> <phone-numbers> <phone-number> <id>2</id> <num>512-555-1234</num> <type>home</type> </phone-number> </phone-numbers> <address> <city>New York</city> <id>1</id> <street>Central Park East</street> </address> <firstName>Bill</firstName> <id>1</id> <lastName>Allen</lastName> </customer> Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 18. Challenges – Binding JPA Entities to XML/JSON <?xml version="1.0" ?> <employee> <first>Mark</first> <last>Twain</last> <id>1</id> </employee> JAXB JPA •  Bidirectional/Cyclical Relationships •  Composite Keys/Embedded Key Classes •  Byte Code Weaving 18 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 19. Bidirectional Relationship @Entity public class Project{ ... @OneToMany(mappedBy=“project") private List<Employee> members; } @Entity public class Employee{ ... @ManyToOne private Project project; } 19 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 20. Bidirectional Relationships in JAXB §  JAXB specification does not support bidirectional relationships. One side must be marked @XmlTransient. §  But that loses the relationship! members Employee project 20 Project <?xml version="1.0" ?> <employee> <first>Mark</first> <last>Twain</last> <id>1</id> </employee> Marshall Unmarshall X Employee Project project Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 21. EclipseLink XmlInverseReference 21 @Entity public class Project{ ... @OneToMany(mappedBy=“project") private List<Employee> members; } @Entity public class Employee{ ... @ManyToOne @XmlInverseReference(mappedBy=“members") private Project project; } Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 22. EclipseLink XmlInverseReference §  EclipseLink restores relationships on unmarshall! members members Employee Project project Marshall 22 <?xml version="1.0" ?> <employee> <first>Mark</first> <last>Twain</last> <id>1</id> </employee> Employee Project project Unmarshall Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 23. Demo JAXB/JPA Fidelity JSON Binding 23 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 24. Agenda Browser HTTP / REST Binding Persistence XML/JSON Java Database Persistence Relational/NoSQL Relational DB | NoSQL DB 24 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 25. JPA-RS Browser HTTP Binding Persistence XML/JSON JAX-RS / JPA-RS Java Database Persistence Relational/NoSQL Relational DB | NoSQL DB 25 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 26. JPA-RS GET http://.../persistence/Accounting/Invoice/... JAX-RS http://.../persistence/Accounting/Invoice/... JAX-RS mapped to JPA-RS service JPA-RS JPA-RS maps URI http://.../persistence/Accounting/ Accounting PU Invoice/... to Accounting PU and Invoice entityPU Contracting PU Human Resources ... JPA 26 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 27. JPA-RS Features §  Access relational data through REST with JSON or XML §  Provides REST operations for entities in persistence unit (GET, PUT, POST, DELETE) §  Automatic generation of XML and JSON bindings §  Supports invocation of named queries via HTTP §  Server Caching—EclipseLink clustered cache §  Dynamic Persistence also supported –  Entities defined via metadata—no Java classes required –  Enables persistence services for HTML 5/JavaScript applications 27 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 28. Resource Model & Links { "firstName": "Frank", "gender": "Male", "id": 1, "lastName": "Smith", "responsibilities": [], "salary": 1, "version": 13, "address": { "_link": { "href": "http://localhost:7001/employee.web-js/persistence/employee/entity/Address/18", "method": "GET", "rel": "self" } }, … 28 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 29. Demo EclipseLink JPA-RS 29 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 30. Releases & Roadmap 2010 EclipseLink 2.1 Helios •  Query Extensions •  TREAT AS •  FUNC •  Batch IN and EXISTS •  Attribute Group •  Load •  Fetch •  Copy •  Merge •  eclispelinkoxm.xml •  Dynamic MOXy 30 2011 2012 2013 EclipseLink 2.3 Indigo EclipseLink 2.4 Juno EclipseLink 2.5 Kepler •  Tenant Isolation •  JSON Binding •  JPA-RS •  Tenant Isolation •  Tenant per Table/Schema •  ALTER Schema •  NoSQL •  JPA 2.1 •  JPA-RS++ … •  SINGLE_TABLE •  Extensible •  External Metadata •  Multiple DBs •  Data Partitioning Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 31. Summary §  Java is evolving—and EclipseLink is evolving too! –  JSON Binding –  JAXB/JPA Fidelity –  JPA-RS –  NoSQL –  Polyglot Persistence 31 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
  • 32. 32 Beyond Relational and NoSQL to Polyglot and HTML5 | © 2013 Oracle and AGETO; Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License