SlideShare uma empresa Scribd logo
1 de 45
Practical RESTful Persistence
with EclipseLink JPA-RS
Shaun Smith
Oracle

#DV13 #JPARS

@shaunMsmith
•
•
•
•

JPA 2.0 (EE 6) and 2.1 (EE 7) reference implementation
JPA provider in GlassFish and Oracle WebLogic
Project founded on mature Oracle TopLink codebase
EPL and EDL licensed open source JPA and JAXB
implementation

#DV13 #JPARS

@shaunMsmith
Browser

Database

#DV13 #JPARS

@shaunMsmith
Browser

Java

Database

#DV13 #JPARS

@shaunMsmith
Browser

Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS

Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink JAXB / JSON Binding
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
Browser
HTML5

JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
{
id: 5,
…
}

Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
{
id: 5,
…
}

JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
Binding Persistence
EclipseLink MOXy
XML / JSON

Java
Java Persistence
EclipseLink JPA
Relational / NoSQL

Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
Binding Persistence
EclipseLink MOXy
XML / JSON

Java
Java Persistence
EclipseLink JPA
Relational / NoSQL

Database

#DV13 #JPARS

@shaunMsmith
EclipseLink MOXy
•
•
•

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

#DV13 #JPARS

@shaunMsmith
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"

<?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>

}

#DV13 #JPARS

@shaunMsmith
Challenges – Binding JPA Entities to
XML/JSON
<customer>
<phone-numbers>
<phone-number>
<id>1</id>
...
<type>mobile</type>
</phone-number>
</phone-numbers>
</customer>

•
•
•

JAXB

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

#DV13 #JPARS

JPA

@shaunMsmith
Bidirectional Relationship
@Entity
public class Customer{
...
@OneToMany(mappedBy="owner")
private List<Phone> phones;
}
@Entity
public class Phone{
...
@ManyToOne
private Customer owner;
}

#DV13 #JPARS

@shaunMsmith
What about @XmlTransient?
@Entity
public class Customer{
...
@OneToMany(mappedBy=“owner")
private List<Phone> phones;
}
@Entity
public class Phone{
...
@ManyToOne
@XmlTransient
private Customer owner;
}

#DV13 #JPARS

@shaunMsmith
With @XmlTransient
Loses the relationship!

owner

Customer
phones

#DV13 #JPARS

Phone

<customer>
<phone-numbers>
<phone-number>
<id>1</id>
...
<type>mobile</type>
</phone-number>
</phone-numbers>
</customer>

Marshall
Marshall

X

Customer

Unmarshall
Unmarshall

Phone

phones

@shaunMsmith
EclipseLink XmlInverseReference
@Entity
public class Customer{
...
@OneToMany(mappedBy=“owner")
private List<Phone> phones;
}
@Entity
public class Phone{
...
@ManyToOne
@XmlInverseReference(mappedBy=“phones")
private Customer owner;
}

#DV13 #JPARS

@shaunMsmith
With @XmlInverseReference
EclipseLink restores relationships on unmarshall!

owner

Customer
phones

#DV13 #JPARS

Phone

<customer>
<phone-numbers>
<phone-number>
<id>1</id>
...
<type>mobile</type>
</phone-number>
</phone-numbers>
</customer>

Marshall
Marshall

owner

Customer

Unmarshall
Unmarshall

Phone

phones

@shaunMsmith
Demo
#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
JAX-RS
Binding Persistence
EclipseLink MOXy
XML / JSON

Java
Java Persistence
EclipseLink JPA
Relational / NoSQL

Database

#DV13 #JPARS

@shaunMsmith
JAX-RS with JPA Example
public class InvoiceService {...

public Invoice read(int id) {
return null;
}
...
#DV13 #JPARS

@shaunMsmith
JAX-RS with JPA Example
@Stateless
public class InvoiceService {...

public Invoice read(int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...

public Invoice read(int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

http://[machine]:[port]/[web-context]/invoice
http://[machine]:[port]/[web-context]/invoice
@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...

@Path("{id}”)
public Invoice read(@PathParam("id") int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

http://[machine]:[port]/[web-context]/invoice/4
http://[machine]:[port]/[web-context]/invoice/4
@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...
@GET
@Path("{id}”)
public Invoice read(int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

GET http://[machine]:[port]/[web-context]/invoice/4
GET http://[machine]:[port]/[web-context]/invoice/4
@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...
@Produces({"application/xml"})
@GET
@Path("{id}")
public Invoice read(@PathParam("id") int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

GET http://[machine]:[port]/[web-context]/invoice/4
GET http://[machine]:[port]/[web-context]/invoice/4
@shaunMsmith
JAX-RS with JPA

GET http://.../invoice/4
GET http://.../invoice/4
http://.../invoice/4 mapped to
http://.../invoice/4 mapped to
JAX-RS
JAX-RS
beanGET http://.../invoice/4 mapped to method
beanGET http://.../invoice/4 mapped to method

Invoice Bean
GET
GET
GET
GET
GET
GET
GET
GET

Bean uses JPA
Bean uses JPA

Contract Bean
GET
GET
GET
GET
GET
GET

Payment Bean
GET
GET
GET
GET
GET
GET

...

Accounting PU

JPA

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
JAX-RS
EclipseLink MOXy
EclipseLink MOXy
Java
Java
EclipseLink JPA
EclipseLink JPA
JPA-RS
JPA-RS
Database

#DV13 #JPARS

@shaunMsmith
EclipseLink JPA-RS
•

Automatically provides REST operations for entities in
persistence unit (GET, PUT, POST, DELETE)

•

Automatic generation of XML and JSON bindings
• Leverages EclipseLink’s JAXB/JPA fidelity features to avoid lossy
transformations

•

Automatic publication of REST API metadata

#DV13 #JPARS

@shaunMsmith
EclipseLink JPA-RS
•

Supports invocation of named queries via HTTP

•

Server side caching—EclipseLink clustered cache

•

Automatic injection of links for entity relationships
• Default Resource Model generation

#DV13 #JPARS

@shaunMsmith
{

"id": 2,
"city": ”Toronto",
…
}

...

Browser

"id": 1,
"lastName": "Smith",
…
"address": {
"_link": {
"href": "http:/…/Address/2",
"method": "GET",
"rel": "self"
}
}

{

1
1

2
2
...

Java

Database
#DV13 #JPARS

@shaunMsmith
Configuring JPA-RS
•

Add JPA-RS web fragment jar to WEB-INF/lib!

#DV13 #JPARS

@shaunMsmith
JPA-RS

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

Accounting

JPA-RS
JPA-RS maps URI
JPA-RS maps URI
http://.../persistence/Accounting/Invoice/4 to
http://.../persistence/Accounting/Invoice/4 to
Human Resources
Accounting PU and Invoice entity
Accounting PU and Invoice Benefits
entity
...

JPA

#DV13 #JPARS

@shaunMsmith
Demo
#DV13 #JPARS

@shaunMsmith
Demo Model

#DV13 #JPARS

@shaunMsmith
EclipseLink JPA-RS Roadmap
•

Resource Model

• Scope of resource
• Entity format
• partial entities/projections
• Configuration
• URL mapping/customization
• Manage Entity exposure
• Meta-data
• JSON Schema? Swagger? ...
#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Summary
•
•
•

Java EE stack has (most of) what you need to build Thin Server
Architecture applications
You have to be aware of various impedance mismatches
EclipseLink JPA-RS
• Integrates JAX-RS / JAXB / JPA
• Eliminates JAX-RS boilerplate for data access
• Simplifies Java EE Thin Server Architecture applications

☛ www.eclipse.org/eclipselink
#DV13 #JPARS

@shaunMsmith
The preceding is intended to outline our general product
direction. It is intended for information purposes only, and may
not be incorporated into any contract. It is not a commitment to
deliver any material, code, or functionality, and should not be
relied upon in making purchasing decisions. The development,
release, and timing of any features or functionality described for
Oracle’s products remains at the sole discretion of Oracle.

#DV13 #JPARS

@shaunMsmith

Mais conteúdo relacionado

Mais procurados

Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
Hamed Hatami
 
SD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons LearnedSD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons Learned
Ted Leung
 
15 expression-language
15 expression-language15 expression-language
15 expression-language
snopteck
 

Mais procurados (19)

JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
 
Move from J2EE to Java EE
Move from J2EE to Java EEMove from J2EE to Java EE
Move from J2EE to Java EE
 
SD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons LearnedSD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons Learned
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
JSON-B for CZJUG
JSON-B for CZJUGJSON-B for CZJUG
JSON-B for CZJUG
 
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
 
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
 
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet AdvancedJava Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet Advanced
 
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworksJSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
 
Java Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP BasicJava Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP Basic
 
Jdbc
JdbcJdbc
Jdbc
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
Sharding using MySQL and PHP
Sharding using MySQL and PHPSharding using MySQL and PHP
Sharding using MySQL and PHP
 
15 expression-language
15 expression-language15 expression-language
15 expression-language
 
JSP Standard Tag Library
JSP Standard Tag LibraryJSP Standard Tag Library
JSP Standard Tag Library
 
What's new in the Java API for JSON Binding
What's new in the Java API for JSON BindingWhat's new in the Java API for JSON Binding
What's new in the Java API for JSON Binding
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 

Semelhante a Practical RESTful Persistence

Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
ThoughtWorks
 
03 form-data
03 form-data03 form-data
03 form-data
snopteck
 
Socket applications
Socket applicationsSocket applications
Socket applications
João Moura
 

Semelhante a Practical RESTful Persistence (20)

Optaros Surf Code Camp Api
Optaros Surf Code Camp ApiOptaros Surf Code Camp Api
Optaros Surf Code Camp Api
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
 
Workshop 17: EmberJS parte II
Workshop 17: EmberJS parte IIWorkshop 17: EmberJS parte II
Workshop 17: EmberJS parte II
 
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.
 
The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013
 
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion Dollars
 
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
 
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked Data
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - Keynote
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2
 
03 form-data
03 form-data03 form-data
03 form-data
 
Secure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
Secure Streaming-as-a-Service with Kafka/Spark/Flink in HopsworksSecure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
Secure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
 
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
 
Coding Your Way to Java 13
Coding Your Way to Java 13Coding Your Way to Java 13
Coding Your Way to Java 13
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
 
Socket applications
Socket applicationsSocket applications
Socket applications
 

Mais de Shaun Smith

EclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingEclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini Naming
Shaun Smith
 
EclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroEclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini Intro
Shaun 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 EE
Shaun Smith
 
RESTful services with JAXB and JPA
RESTful services with JAXB and JPARESTful services with JAXB and JPA
RESTful services with JAXB and JPA
Shaun Smith
 

Mais de Shaun Smith (12)

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
 
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
 
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
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Practical RESTful Persistence