• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Developing “RESTful transactions” with Apache Sling
 

Developing “RESTful transactions” with Apache Sling

on

  • 1,265 views

Even though the topic sounds very boring, every CQ and Sling developer was at least once faced with the Question: "Is your solution supporting transactions?" ...

Even though the topic sounds very boring, every CQ and Sling developer was at least once faced with the Question: "Is your solution supporting transactions?"

Most engineers are familiar with the theory and usage of transaction working in a old fashion J2EE environment. When transitioning to a modern REST application framework like Sling, we are facing many challenges. In most casesthe solution is to use hibernate or similar tools and to leave the RESTful world.

In this Session we will talk about transactions in general, explain the different kind of transactions and especially how to deal with services layers in conjunctions with Apache Sling. Various approaches, to help J2EE developers to transition fully to a RESTful world, will be explained.

Statistics

Views

Total Views
1,265
Views on SlideShare
1,248
Embed Views
17

Actions

Likes
0
Downloads
23
Comments
0

2 Embeds 17

https://twitter.com 11
http://www.redditmedia.com 6

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Developing “RESTful transactions” with Apache Sling Developing “RESTful transactions” with Apache Sling Presentation Transcript

    • 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!