Upload
senol-tas
View
2.354
Download
5
Tags:
Embed Size (px)
Citation preview
APACHE SLING & FRIENDS TECH MEETUP BERLIN, 23-25 SEPTEMBER 2013
“RESTful transactions” with Apache Sling Şenol Taş
About
adaptTo() 2013 2
§ My Name is Şenol Taş § Senior Computer Scientist § Adobe in Basel, Switzerland
@thelabertasch
adaptTo() 2013 3
Why such a boring Topic?
Because websites are…
adaptTo() 2013 4
§ No longer simple advertisement platforms
§ Not only “online Business cards” § Not a “nice to have” medium § Not a “Playground” § …..
Because websites are…
adaptTo() 2013 5
§ Serious business § Make $$$ § Complex § MUST have § “Real” Applications
adaptTo() 2013 6
Your Website IS THE Application
Let’s….
adaptTo() 2013 7
§ Find out “what is a transaction?” § Quick reminder about REST § How do this two concepts work
together?
adaptTo() 2013 8
What are Transactions?
What are Transactions?
adaptTo() 2013 9
adaptTo() 2012 10
“An input message to a computer system that must be dealt with as a single unit of work”
What are Transactions?
adaptTo() 2013 11
§ begin transaction § debit checking account § credit savings account § update history log § commit transaction
What are Transactions?
adaptTo() 2013 12
§ Late 70s: Jim Gray defined the semantic of reliable transactions
§ Early 80s: Andreas Reuter and Theo Härder defined the acronym “ACID” in their paper “Principles of Transaction-Oriented Database Recovery”
ACID
adaptTo() 2013 13
§ Atomicity § Consistency § Isolation § Durability
How do tools like hybernate help?
adaptTo() 2013 14
adaptTo() 2013 15
What is REST?
What is REST?
adaptTo() 2013 16
§ Representational State Transfer § Stateless § Client-server § Cachable § Scalable § …..
What is REST?
adaptTo() 2013 17
§ So? How does this work together with transactions?
adaptTo() 2013 18
REST and transaction is a oxymoron
REST and transactions
adaptTo() 2013 19
§ Atomicity § Consistency § Isolation § Durability
What are the challenges?
adaptTo() 2013 20
§ HTTP REQUEST – RESPONSE PATTERN
§ STATELESS § …..?
Change your mindset…
adaptTo() 2013 21
§ Not everything has to be done in one request
§ If you are using POST.jsp or similar in Sling, most likely something is wrong
§ Events and Observations are your friends
§ Use the full power of the Sling Default Post and GET Servlet
Remember the cheat sheet from Lars?
adaptTo() 2013 22
Example
adaptTo() 2013 23
§ Resource: /home/senol/profile
§ Begin transaction § change interests § Commit transaction
Begin Transaction
adaptTo() 2013 24
§ Copy the node /home/senol/profile to /home/senol/transactions/profile/*
Change interests
adaptTo() 2013 25
§ Update with regular post request
Commit transaction
adaptTo() 2012 26
§ With observation or events
§ Directly
Things of interest
adaptTo() 2012 27
§ Communicating with services layer § Distributed transactions § Nested transactions § Locking…
§ Using Adobe CQ? § Have a look at the Workflow Launcher!
adaptTo() 2013 28
Thank you and have a RESTful Day!