SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
http://robert.muntea.nu @rombert
Apache Sling as a RESTful API gateway for your NoSQL datastores
Apache Sling as a RESTful API gateway
for your NoSQL datastores
Robert Munteanu, Adobe Systems
EclipseCon Europe 2015
http://robert.muntea.nu @rombert
Who I am

$DAYJOB

Adobe Experience
Manager
 Apache Sling
 Apache Jackrabbit
 Apache Felix

FOSS

Apache Sling

MantisBT

Mylyn Connector for
MantisBT

Mylyn Connector for Review
Board
http://robert.muntea.nu @rombert
Agenda
●
Quick facts and figures
●
Meet Barry
●
Demo
●
Why is Sling such a good fit for an API gateway
●
Conclusions, Resources, Q&A
http://robert.muntea.nu @rombert
Apache Sling - History
2007
Incubation
2009
TLP
2015
Version 8
200x
Pre-Apache
http://robert.muntea.nu @rombert
High-level View of the Code
Source: OpenHub
http://robert.muntea.nu @rombert
Level of activity
Source: OpenHub
Source: status.apache.org
http://robert.muntea.nu @rombert
Conceptual foundations
REST-based
Content-driven
OSGi-powered
Scripting InsideApache
http://robert.muntea.nu @rombert
REST-based
/content/blog/
/content/blog/{0}.html
/
BlogViewController
BlogListController
HomeController
SlingMainServlet
/
/content
/content/blog
/content/blog/hello-world
http://robert.muntea.nu @rombert
REST-based
/
/content
/content/blog
/content/blog/hello-world
[sling/redirect]
[sling/redirect]
[blog/welcome]
[blog/page]
http://robert.muntea.nu @rombert
Barry – Senior Buzzword Deliverer
http://robert.muntea.nu @rombert
Demo time!
http://robert.muntea.nu @rombert
How is everything mapped?
/ ( root )
/content/blog/comments
/content/blog/posts
/content/blog/images
http://robert.muntea.nu @rombert
How does Sling manage this?
ResourceProvider
JCR NoSQL FS
Couchbase MongoDB
ResourceProviderFactory
Produces
http://robert.muntea.nu @rombert
SPI → API
ResourceProviderFactory
OSGi Service Registry
ResourceResolver
Registers Gets
http://robert.muntea.nu @rombert
ResourceResolver
Resource getResource(String path);
Iterable<Resource> getChildren(Resource parent);
Iterator<Resource> findResources(String query,
String language);
Resource create(Resource parent, String name,
Map<String, Object> properties) throws
PersistenceException;
void delete(Resource resource) throws
PersistenceException;
void commit() throws PersistenceException;
http://robert.muntea.nu @rombert
How do I get to handle a Resource?
1 GET /content/blog/posts/hello_world.json
2 ResourceResolver.resolve(...)
3 ServletResolver.resolveServlet(...)3
4 servlet.doGet(...)
http://robert.muntea.nu @rombert
What do clients see out of this?
Resource res = request.getResource();
// 1. reading ...
ValueMap properties = ↵
res.getValueMap();
String title = properties.get(“jcr:title”,↵
“Missing”);
Post post = res.adaptTo(Post.class);
title = post.getTitle();
http://robert.muntea.nu @rombert
Why do we need adaptTo?
Adaptable
Resource ValueMap
Map<String,Object> Post
http://robert.muntea.nu @rombert
What do clients see out of this?
Resource res = request.getResource();
// 2. writing ...
ValueMap properties = ↵
res.adaptTo(ValueMap.class);
String title = properties.put(“jcr:title”,↵
“Hello, world”);
Post post = res.adaptTo(Post.class);
post.setTitle(“Hello, world”);
res.getResourceResolver().commit();
http://robert.muntea.nu @rombert
Demo time!
http://robert.muntea.nu @rombert
Oh, but there's more
http://robert.muntea.nu @rombert
More features
●
Eventing, Thread Pooling, Job Management,
Caching
●
Scripting: Groovy, Scala, JSP, Sightly, Java, Ruby,
Thymeleaf
●
Flexible resource rendering with resource types
●
Very extensible due to being internally powered
by OSGi – most extension points available to clients
http://robert.muntea.nu @rombert
Beyond the NoSQL datastores
http://robert.muntea.nu @rombert
Buzzword checklist
✔
RESTful
✔
API gateway
✔
NoSQL
✔
OSGi
http://robert.muntea.nu @rombert
Resources
●
Apache Sling – http://sling.apache.org
●
Sling NoSQL providers -
http://sling.apache.org/documentation/bundles/no
sql-resource-providers.html
●
Apache Jackrabbit Oak -
http://jackrabbit.apache.org/oak/
http://robert.muntea.nu @rombert
Resources

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (17)

Continuous Automated Deployment with Apache Ace - Jago de Vreede, Marcel Offe...
Continuous Automated Deployment with Apache Ace - Jago de Vreede, Marcel Offe...Continuous Automated Deployment with Apache Ace - Jago de Vreede, Marcel Offe...
Continuous Automated Deployment with Apache Ace - Jago de Vreede, Marcel Offe...
 
pencemaran udara
pencemaran udarapencemaran udara
pencemaran udara
 
R lecture oga
R lecture ogaR lecture oga
R lecture oga
 
DIANNE - A distributed deep learning framework on OSGi - Tim Verbelen
DIANNE - A distributed deep learning framework on OSGi - Tim VerbelenDIANNE - A distributed deep learning framework on OSGi - Tim Verbelen
DIANNE - A distributed deep learning framework on OSGi - Tim Verbelen
 
Khan academy 2016
Khan academy 2016Khan academy 2016
Khan academy 2016
 
マイクロサービスを利用する側のパフォーマンス向上策 (PyCon JP 2016)
マイクロサービスを利用する側のパフォーマンス向上策 (PyCon JP 2016)マイクロサービスを利用する側のパフォーマンス向上策 (PyCon JP 2016)
マイクロサービスを利用する側のパフォーマンス向上策 (PyCon JP 2016)
 
【Sgt2016】Agile人材の評価とキャリアプラン
【Sgt2016】Agile人材の評価とキャリアプラン 【Sgt2016】Agile人材の評価とキャリアプラン
【Sgt2016】Agile人材の評価とキャリアプラン
 
The Entrepreneur's Guide to Hospital Partnerships by @Rock_Health
The Entrepreneur's Guide to Hospital Partnerships by @Rock_HealthThe Entrepreneur's Guide to Hospital Partnerships by @Rock_Health
The Entrepreneur's Guide to Hospital Partnerships by @Rock_Health
 
社内勉強会を続けるには(2016.10.07 DevLove 関西)
社内勉強会を続けるには(2016.10.07 DevLove 関西)社内勉強会を続けるには(2016.10.07 DevLove 関西)
社内勉強会を続けるには(2016.10.07 DevLove 関西)
 
Smart Device RF & Antennas
Smart Device RF & AntennasSmart Device RF & Antennas
Smart Device RF & Antennas
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フロー
 
Android - Phone Calls
Android - Phone CallsAndroid - Phone Calls
Android - Phone Calls
 
PROJETO PEDAGÓGICO - FEIRA CIENTÍFICA: OLHARES PARA O CONHECIMENTO
PROJETO PEDAGÓGICO - FEIRA CIENTÍFICA: OLHARES PARA O CONHECIMENTOPROJETO PEDAGÓGICO - FEIRA CIENTÍFICA: OLHARES PARA O CONHECIMENTO
PROJETO PEDAGÓGICO - FEIRA CIENTÍFICA: OLHARES PARA O CONHECIMENTO
 
Ppt art poder_publico_junho2016_resumido
Ppt art poder_publico_junho2016_resumidoPpt art poder_publico_junho2016_resumido
Ppt art poder_publico_junho2016_resumido
 
Decreto 9225 de 28 de novembro de 2005
Decreto 9225 de 28 de novembro de 2005Decreto 9225 de 28 de novembro de 2005
Decreto 9225 de 28 de novembro de 2005
 
作ってみよう! ジャーニーマップ - PO祭り2016
作ってみよう! ジャーニーマップ - PO祭り2016作ってみよう! ジャーニーマップ - PO祭り2016
作ってみよう! ジャーニーマップ - PO祭り2016
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 

Mehr von mfrancis

Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 

Mehr von mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Apache Sling as an OSGi-powered REST middleware - Robert Munteau