Agile RESTful Web Development

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    4 Favorites

    Agile RESTful Web Development - Presentation Transcript

    1. Agile RESTful Web Development Michael Marth Technology Evangelist Michael Dürig Senior Developer michael.marth@day.com michael.duerig@day.com
    2. Jugs - Agenda REST in 15 minutes Meet Apache Sling demo & code
    3. What is REST? A API B Technology C SOAP’s arch enemy D Architectural Style
    4. REST: An Architectural Style One of many Architectural Styles Architectural principles of the web, defined a posteriori Defined through architectural g constraints Roy T. Fieldin Chief Scien at Da tist Soft y ware
    5. Styles and implementation examples REST style peer to peer style the we b imp re le i s t h e le m v a n t o n l y ent Napster Tat io W R ES he n eb T of
    6. REST ingredients ly the Resources rough aints constr s thesis from Roy’ Representations of resources Uniform interface Hypertext and links Stateless communication
    7. Resources give all relevant things an ID don’t http://example.com/cars/models/320 have prett to be y Representations http://example.com/cars/models/320.html http://example.com/cars/models/320.json http:/ /example.com/cars/models/320.xml http://example.com/cars/models/320.jsp
    8. in a llows s to diarie hes, terme d (cac Uniform interface rstan es) unde roxi p retrieve information, possibly GET cached PUT Update or create with known ID POST Create or append sub-resource DELETE Logically remove
    9. in a llows s to diarie hes, terme d (cac Uniform interface rstan es) unde roxi p check out the URL retrieve/www.youtube.com/watch? http:/ information, possibly GET v=oHg5SJYRHA0 cached PUT Update or create with known ID with method “WATCH” POST Create or append sub-resource DELETE Logically remove
    10. Hypertext Link the “things” / the resources How? <link rel="some-concept" ref="/some-uri"> h a rdc o de d i n c l ie n t NOT h a rdc o de d i n c l ie n t Why?
    11. A special browser for each web site? e.g. a Wikipedia browser that hardcodes http:/ /en.wikipedia.org/wiki/{concept} wikipedia amazon jugs.ch blogs nzz admin.ch search.ch infoq facebook gma browser browser browser browser browser browser browser browser browser brows
    12. A REST API must not define fixed resource names or hierarchies (an obvious coupling of client and server). Servers must have the freedom to control their own namespace.
    13. If you need this it’s (probably) not REST
    14. Stateless communication state is kept on the client, no ser ver-side application state s c a la bil it y requests are self-contained r ie s i n te r me di a client server GET /customer/1234/orders <link rel=”...” ref=” /orders/123456789”></link> update soft ware reboot POST /orders/123456789
    15. RPC-style modelling vs. REST-style modelling /orders GET - list all orders m a ny ope rat io n s PUT - unused POST - add new order DELETE - unused fe w i ns t ance s at io n s /orders/{id} ope r GET - get order details fe w PUT - update order ance s OrderManagementService POST - add item ins t DELETE - cancel order m a ny + getOrders() + submitOrder() /orders/{id}/submit + getOrderDetails() GET - unused + getOrdersForCustomers() <<interface>> PUT - unused + updateOrder() Resource POST - submit order + addOrderItem() GET DELETE - unused + cancelOrder() PUT POST /customers DELETE GET - list all customers CustomerManagementService PUT - unused POST - add new customer + getCustomers() DELETE - unused + addCustomer() + getCustomerDetails() /customers/{id} + updateCustomer() GET - get customer details + deleteCustomer() PUT - update customer POST - unused DELETE - delete customer /customers/{id}/orders GET - get all orders for customer PUT - unused POST - add order DELETE - cancel all customer orders
    16. Why again? proven scalability proven to evolve proven cross-platform The Web Relevant for me?
    17. REST for the Enterprise?
    18. The Internet vs. The Enterprise One is a gigantic, uncontrollable anarchy of heterogeneous systems with varying quality that evolve independently and constantly get connected in new and unexpected ways. The other is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP). Stefan Tilkov - Pragmatic Introduction to REST
    19. Jugs - Agenda REST in 15 minutes Meet Apache Sling demo & code
    20. What’s Sling? “Apache Sling is a RESTful web framework that uses a Java Content Repository to store and manage content.”just g radu ate d in Apache incubator
    21. What’s JCR? “The API should be a standard, implementation independent, way to access content bi-directionally on a granular level within a content repository.” ?
    22. Best of both worlds. data base f il es ys te m hier- archi integ rity re es structu read streams tx write access query locking control multi- value ning obser- versio un-structured “full-text” sort vation order content repo sit or y
    23. “Data First!” “s ch e m a le s s” ak a JCR s “stru upports cturef irst” a (but t ha well. s t’s m issing the p oint)
    24. Known compliant Repositories * using third party connector * * Exo Microsoft Apache Jackrabbit Oracle XML DB ECMS Platform Sharepoint OpenText Livelink * Day CRX IBM FileNet P8 Xythos Repository Alfresco ECM Vignette V7 * * any ors ow mvend ? H S ed Interwoven +hund DBMou ne R do y r s Repository IBM CM EMC Documentum regiede of TCKs st
    25. Some known JCR Applications Fast BEA Portal Sun Oracle Portal Enterprise Search JBoss Portal Interface 21 OpenPortal Day Communique Spring Framework magnolia WCMS DAM Apache Sling Day Communique Alfresco ECMS Mindquarry Collab Collaboration Apache Tapestry QSLabs Apache Compliance Day Communiqué Cocoon WCMS IBM FileNet Artifactory medic-2-medic WebSiteManager Apache James Maven Proxy mapofmedicine Exo ECMS Platform TYPO3 GX WebManager v5.0 WCM InfoQ Hippo Liferay Nuxeo ECM Online Community CMS Enterprise Portal Jahia Sakai Percussion Framework E-learning Rhythmix QuickWCM Sourcemix WCMS Lutece Sourcemix
    26. Some known JCR Applications Fast BEA Portal Sun Oracle Portal Enterprise Search JBoss Portal Interface 21 OpenPortal Day Communique Spring Framework magnolia WCMS DAM Apache Sling Day Communique Alfresco ECMS Mindquarry Collab Collaboration Apache Tapestry QSLabs Apache Compliance Day Communiqué Cocoon WCMS IBM FileNet Artifactory medic-2-medic WebSiteManager Apache James Maven Proxy mapofmedicine Exo ECMS Platform TYPO3 GX WebManager v5.0 WCM InfoQ Hippo Liferay Nuxeo ECM Online Community CMS Enterprise Portal Jahia Sakai Percussion Framework E-learning Rhythmix QuickWCM Sourcemix WCMS Lutece Sourcemix
    27. JCR - Weatherforecast 2009 -5° 2010 -8° 2011 -12°
    28. JCR 2.0 http://www.day.com/jsr283
    29. A node is a resource GET /cars/audi/s4.txt User-agent Repository
    30. A node is a resource POST /cars/audi/s48 write User-agent Your content Repository is your web server
    31. Web apps and Sling scripting /cars/audi/s4.details.html User-agent Repository
    32. Web apps and Sling scripting /cars/audi/s4.details.html User-agent Repository d 1 file neede Convention ove configuration r
    33. Web apps and Sling scripting /cars/audi/s4.details.html User-agent Repository .esp .erb .scala
    34. Web apps and Sling scripting URLsdo matter! /cars/audi/s4.details.html vs. /product.jsp?id=/audi/s4 Passing in “this” Addressing the (the resource) “ cript” s
    35. Bonus
    36. Sling is OSGi-based e (not just “ nabled”) Apache Felix OSGi container extensible my my my bundles bundles scripts Sling Sling Sling JCR
    37. Sling is OSGi-based e (not just “ nabled”) Apache Felix OSGi container extensible my my my bundles bundles scripts modular Sling Sling Sling JCR hot deploy
    38. S EE
    39. DEMO

    + mmarthmmarth, 1 month ago

    custom

    749 views, 4 favs, 2 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 749
      • 733 on SlideShare
      • 16 from embeds
    • Comments 0
    • Favorites 4
    • Downloads 0
    Most viewed embeds
    • 15 views on http://michaelmarth.blogspot.com
    • 1 views on http://www.blogger.com

    more

    All embeds
    • 15 views on http://michaelmarth.blogspot.com
    • 1 views on http://www.blogger.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories