Json-based Service Oriented Architecture for the web

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

    1 Favorite

    Json-based Service Oriented Architecture for the web - Presentation Transcript

    1. JSON SOA-based Client/Server Application Development
      • Kris Zyp
    2.  
    3. Overview
      • SOA on the web
      • Service Method Description for defining services
      • Dojo based approach to SOA
    4. SOA-Based Client/Server Model
      • Distribution of Processing
      • User response latency
      • Programming model
      • Vector of attack
      • State management on server vs client
      • Offline capabilities
      • Interoperability
    5. Service Oriented Architecture on the Web Web Service Provider CS Web Client Methods Web Client Methods Desktop Client Methods
    6. Service Mapping Description
      • JSON-based service definition structure
      • Defines
        • Transport
        • Parameters
        • Expected Response
        • Description
      • Clients can use an SMD to build methods to auto-connect to endpoints
    7. Service Types
      • REST
        • JSONP
        • Plain GET
        • Full read/write (PUT, POST, DELETE)‏
      • RPC
        • JSON-RPC
      • Different URL forms
        • /path/id
        • ?name=value
    8. Dojo Includes SMDs for major web services
      • SMDs for third party services
        • Wikipedia
        • Yahoo
        • Wikipedia
      • Web services can advertise their services
    9. Dojo Support for SOA
    10. Services
    11. Example of Service Auto-Generation
      • var services = new dojox.rpc.Service(" /mySMD ");
      • or
      • var services = new dojox.rpc.Service({
        • transport:”REST”,
        • services:{
          • newsService:{...}
        • }
      • });
      • services.newsService({query:"dojo"}.
        • addCallback(function(returnValue) {
          • alert("A news item: " + returnValue[0]);
      • });
    12. Dojo Data
    13. ServiceStore
      • Adapts web services to dojo.data API
      • Plug services directly into widgets
      • Supports lazy loading
      http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_yahoo_search.html http://www.sitepen.com/blog/2008/06/25/web-service-data-store/
    14. Read/Write (Real) REST Services
      • Full REST Services can plugin for full read/write ORM-style functionality:
        • GET - query and get by id
        • PUT - update an object
        • POST - create an object
        • DELETE - delete an object
    15. JSON Schema schema: {"description":"A person", "type":"object", "properties": {"name": {"type":"string"}, "age" : {"type":"integer", "maximum":125}} } instance: {“name”:”Kris”, "age":31}
    16. JSON Referencing
      • Hyperlinking appplied to JSON
        • Cyclic
        • Multiple references
        • Cross-message references
        • Cross-site references
    17. JsonRestStore
      • Full Read/Write API
        • Create,
        • Read/Query,
        • Update
        • Delete
      • Standards Based (HTTP compliant)‏
    18. JsonRestStore
      • Lazy loading
      • JSON Referencing
      • JSON Schema
      • Transactional
      • Offline Support
      Accompanied by Demo
    19. Push/Comet
      • Open Protocols for Comet
        • Bayeux
        • XMPP
        • REST Channels
    20. Bayeux
      • Service Negotiation
      • Publish/Subscribe Protocol
    21. REST Channels
      • REST Based Push Protocol
      • Based on HTTP standard semantics
    22. HTTP Channels (REST Channels over HTTP)‏ HTTP/1.1 200 OK X-Event: PUT Content-Location: /foo/bar New content of /foo/bar
    23. REST Channels in JSON Accompanied by Demo { “ event”: “put” “ source”: “/foo/bar” “ content”: “New content of /foo/bar” }
    24. Offline + REST
      • REST + Thin Server = Easy Offline
      • Dojo’s support for Offline SOA Applications
    25. Security in SOA
      • Security clearly distinct from UI code
      • Assume users are directly accessing services
      • Improved isolation of security
    26. The browser is the platform of mashups
      • Neutral ground, browser acts as a deputy/mediator
      • JSON is the foundation for more complex data/code integration
      • Cross-site mashup techniques emerging
      http://www.sitepen.com/blog/2008/09/25/security-in-ajax/
    27. Dojo Secure
      • Full framework for secure mashups
        • Secure cross-site loading registry
        • Adsafe style code validation
        • Safe set of library functions
        • Safe access to the DOM
      http://www.sitepen.com/blog/2008/08/01/secure-mashups-with-dojoxsecure/
    28. Characteristics of good client/server application
      • Clean Web API
      • Interchangeability
      • Presentation on the client
      • Business logic on the server
      http://www.sitepen.com/blog/2008/07/18/clientserver-model-on-the-web/
    29. Dojo’s SOA
      • Service auto configuration
      • Integration into Dojo Data model
      • Full REST interaction support
      • Comet and Offline capabilities
      • All based on standards or emerging conventions, easy to switch to something else
    30. The Open Web is more than just licensing
    31. My other presentation
      • Applied JSON: REST, Ajax Databases
    32.  

    + kriszypkriszyp, 2 years ago

    custom

    1470 views, 1 favs, 3 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1470
      • 1409 on SlideShare
      • 61 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 65
    Most viewed embeds
    • 59 views on http://www.sitepen.com
    • 1 views on https://www.sitepen.com
    • 1 views on http://192.168.10.100

    more

    All embeds
    • 59 views on http://www.sitepen.com
    • 1 views on https://www.sitepen.com
    • 1 views on http://192.168.10.100

    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