Your SlideShare is downloading. ×
0
Distribution and Publication
With Atom Web Services


Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
Software Architect
          at Schematic
          Atlanta PHP Leader
          Co-author of Zend
          PHP 5 Certifi...
“The name Atom applies to a pair of related
      standards. The Atom Syndication Format is an
      XML language used for...
Atom is both a format and a protocol.




Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conferen...
The Atom format
             An XML-based web content and
             metadata syndication format
             Defined by...
The Atom Publishing Protocol
             An application-level protocol for
             publishing and editing web resour...
A common format
             Widespread adoption means increased
             interoperability between disparate
         ...
Understanding Atom
             Atom is a RESTful protocol
             Atom’s focus is on resources in the
             s...
“REST strictly refers to a collection of network
      architecture principles which outline how
      resources are defin...
What is REST?
             Representational State Transfer
             Not an architecture or a standard for
            ...
Resource-Oriented Architecture
             Resources
             Their names (addresses)
             Their representati...
“A resource can be anything that has identity.
      Familiar examples include an electronic
      document, an image, a s...
ROA basics
            Each resource knows how to do three
            simple things:
            1. Represent itself to t...
ROA properties
             Resources are addressable
             Resources have no state
             Resources are conn...
This is REST in a nutshell.




Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 Jun...
Atom is resource-oriented
             Think of an Atom web service as a
             catalog of resources that you want t...
Atom terminology
             Entry
             Feed
             Collection
             Category Document
             ...
Entry
             Represents an individual piece of content
             (post, article, page, image, video, etc.)
      ...
Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
Feed
             Represents a collection of Atom entries
             Feeds can be related to other feeds or
            ...
Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
Category
             Categories provide metadata to describe
             an Atom entry. Atom itself doesn’t define
     ...
Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
Service
             A service discovery document that
             describes the locations and capabilities
             ...
Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
Atom provides
             Retrieval of resources
             Creation of new resources
             Modification to exis...
Creating resources
             Client “discovers” the resource through
             which the Atom service accepts POST
 ...
Modifying resources
             Client requests a representation of the
             resource:
             GET /archives...
Removing resources
             Client sends a DELETE request to the
             sevice:
             DELETE /archives/12...
Authentication
             Atom does not provide or recommend an
             auth mechanism
             Early favorite ...
Encryption
             Atom does not provide for encryption
             Use SSL for all sensitive communication
        ...
Extending Atom
             Atom is XML; as such, it may be
             extended using other vocabularies
             (n...
Parsing Atom
             DOM, XMLReader, XMLWriter,
             SimpleXML
             Zend_Feed, PEAR::XML_Feed_Parser,...
Out-of-box Atom clients
             Fude -
             http://www.witha.jp/eXeries/software/
             Atomic (Firefo...
For more information...
             http://tools.ietf.org/html/rfc4287
             http://tools.ietf.org/html/rfc5023
  ...
Upcoming SlideShare
Loading in...5
×

Distribution and Publication With Atom Web Services

4,686

Published on

As we move toward \"Web 3.0,\" the Web is slowly transforming into a platform upon which massively distributed applications run. Rich clients turn personal computers into thin clients, not storing or processing any data locally but, rather, connecting to a web service where the data resides. These services may target intranets, extranets, or the global Web community, but to work they need a common language. One such language is the Atom Publishing Protocol.

Since its inception as a draft recommendation in 2003, the Atom Syndication Format (RFC 4287) has been used as an alternative to Really Simple Syndication (RSS) feeds on blogs throughout the blogosphere. Most have understood Atom as just another feed format, but the publication of the Atom Publishing Protocol (RFC 5023) opens the door for far more uses of the Atom format as both a means for distribution of data, as well as publication.

Ben Ramsey will introduce the Atom Syndication Format and Atom Publishing Protocol, explaining in depth how these can form the foundation of any web service for publication and distribution of data in any environment, from the enterprise right down to the small business level. Ramsey will also discuss RESTful design principles as they relate to the Atom Publishing Protocol.

Published in: Business, Technology
1 Comment
9 Likes
Statistics
Notes
  • You're absolutely right. The closing tag should read </app:collection> instead of the </collection> that is shown. I'll correct this soon and update the slides.

    Thanks for catching that!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
4,686
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
114
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

Transcript of "Distribution and Publication With Atom Web Services"

  1. 1. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  2. 2. Software Architect at Schematic Atlanta PHP Leader Co-author of Zend PHP 5 Certification Study Guide Chatter on #phpc Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  3. 3. “The name Atom applies to a pair of related standards. The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol (short AtomPub or APP) is a simple HTTP-based protocol for creating and updating web resources.” — Wikipedia Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  4. 4. Atom is both a format and a protocol. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  5. 5. The Atom format An XML-based web content and metadata syndication format Defined by RFC 4287 Developed as an open alternative to the “frozen” RSS 2.0 format XML namespace: http://www.w3.org/2005/Atom Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  6. 6. The Atom Publishing Protocol An application-level protocol for publishing and editing web resources using HTTP and XML Defined by RFC 5023 Also called “AtomPub” or “APP” XML namespace: http://www.w3.org/2007/app Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  7. 7. A common format Widespread adoption means increased interoperability between disparate systems Applications now have a common language and publishing protocol, leveraging HTTP as a vehicle Supported by a diverse and wide- reaching community through libraries for consuming and creating Atom services Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  8. 8. Understanding Atom Atom is a RESTful protocol Atom’s focus is on resources in the system To understand Atom, you must first understand REST and the Resource- Oriented Architecture Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  9. 9. “REST strictly refers to a collection of network architecture principles which outline how resources are defined and addressed.” — Wikipedia Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  10. 10. What is REST? Representational State Transfer Not an architecture or a standard for developing web services Not a particular format or pattern It is a set of design criteria Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  11. 11. Resource-Oriented Architecture Resources Their names (addresses) Their representations The links between them Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  12. 12. “A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., ‘today’s weather report for Los Angeles’), and a collection of other resources. Not all resources are network ‘retrievable’; e.g., human beings, corporations, and bound books in a library can also be considered resources.” — RFC 2396 Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  13. 13. ROA basics Each resource knows how to do three simple things: 1. Represent itself to the client 2. Transition from one state to the next 3. Destroy itself Additionally, the ROA provides a means to create a resource Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  14. 14. ROA properties Resources are addressable Resources have no state Resources are connected Resources share the same interface Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  15. 15. This is REST in a nutshell. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  16. 16. Atom is resource-oriented Think of an Atom web service as a catalog of resources that you want to expose Each resource has a unique identifier The resources are well-connected Atom sits on top of HTTP Requests have no state Share the same interface Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  17. 17. Atom terminology Entry Feed Collection Category Document Service Document Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  18. 18. Entry Represents an individual piece of content (post, article, page, image, video, etc.) Entries can be related to other entries or feeds. This resource represents a specific resource (i.e. http://example.org/posts/ 1234). Content type: application/atom+xml;type=entry Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  19. 19. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  20. 20. Feed Represents a collection of Atom entries Feeds can be related to other feeds or entries This resource represents a specific collection of resources (i.e. http:// example.org/posts) Atom Collections are Feeds Content type: application/atom+xml;type=feed Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  21. 21. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  22. 22. Category Categories provide metadata to describe an Atom entry. Atom itself doesn’t define usage of categories. Category Documents describe the categories that are allowed in Collections. Content type: application/atomcat+xml Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  23. 23. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  24. 24. Service A service discovery document that describes the locations and capabilities of Collections Usually the entry point of the Atom web service Content type: application/atomsvc+xml Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  25. 25. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  26. 26. Atom provides Retrieval of resources Creation of new resources Modification to existing resources Removal (deletion) of resources from public view Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  27. 27. Creating resources Client “discovers” the resource through which the Atom service accepts POST requests to create resources (defined by app:collection) Client sends resource in POST request: POST /archives HTTP/1.1 Client receives a 201 Created response in the event of a success Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  28. 28. Modifying resources Client requests a representation of the resource: GET /archives/1234 HTTP/1.1 Client modifies the resource and tells the service to update it: PUT /archives/1234 HTTP/1.1 Service responds with a 200 OK status to indicate success Client uses “edit” relation for this logic Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  29. 29. Removing resources Client sends a DELETE request to the sevice: DELETE /archives/1234 HTTP/1.1 Service responds with a 204 No Content status code to indicate success Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  30. 30. Authentication Atom does not provide or recommend an auth mechanism Early favorite of the Atom community was WSSE Consider the use of OAuth Send authentication info through HTTP headers on each request requiring authenticated access Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  31. 31. Encryption Atom does not provide for encryption Use SSL for all sensitive communication Atom Entry and Feed Documents can contain XML Digital Signatures Can be encrypted using XML Encryption Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  32. 32. Extending Atom Atom is XML; as such, it may be extended using other vocabularies (namespaces) Use other namespaces to convey other information e.g. OpenSearch e.g. Dublin Core Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  33. 33. Parsing Atom DOM, XMLReader, XMLWriter, SimpleXML Zend_Feed, PEAR::XML_Feed_Parser, phpatomlib Apache Abdera Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  34. 34. Out-of-box Atom clients Fude - http://www.witha.jp/eXeries/software/ Atomic (Firefox plugin) - https://addons.mozilla.org/en-US/firefox/addon/3188 APP Test Client - http://bitworking.org/projects/apptestclient/ Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  35. 35. For more information... http://tools.ietf.org/html/rfc4287 http://tools.ietf.org/html/rfc5023 http://atomenabled.org/ My blog: http://benramsey.com/ Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×