SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
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 Certification
          Study Guide
          Chatter on #phpc



Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
“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
Atom is both a format and a protocol.




Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
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
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
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
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
“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
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
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
“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
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
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
This is REST in a nutshell.




Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
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
Atom terminology
             Entry
             Feed
             Collection
             Category Document
             Service Document




Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
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
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
             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
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
             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
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
             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
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 existing resources
             Removal (deletion) of resources from
             public view




Distribution and Publication With Atom Web Services
Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Destaque

Servant Publications Catalog Cover Design
Servant Publications Catalog Cover DesignServant Publications Catalog Cover Design
Servant Publications Catalog Cover DesignBeth Balogh
 
Publication Design
Publication DesignPublication Design
Publication DesignAshley Bott
 
helloMuller 2015 Comics and Publication design portfolio
helloMuller 2015 Comics and Publication design portfoliohelloMuller 2015 Comics and Publication design portfolio
helloMuller 2015 Comics and Publication design portfoliohelloMuller Ltd.
 
Social Media Strategy Presentation October 20, 2014
Social Media Strategy Presentation October 20, 2014Social Media Strategy Presentation October 20, 2014
Social Media Strategy Presentation October 20, 2014Lakehead Public Schools
 
Designing Outside 8.5x11: Developing Effective Publications and Advertising f...
Designing Outside 8.5x11: Developing Effective Publications and Advertising f...Designing Outside 8.5x11: Developing Effective Publications and Advertising f...
Designing Outside 8.5x11: Developing Effective Publications and Advertising f...Paul Brown
 
The Secret Sauce For A Successful Health Club Marketing Strategy In 2014
The Secret Sauce For A Successful Health Club Marketing Strategy In 2014The Secret Sauce For A Successful Health Club Marketing Strategy In 2014
The Secret Sauce For A Successful Health Club Marketing Strategy In 2014Bryan K. O'Rourke
 
NY Women in Communications Digital Salon 102309
NY Women in Communications Digital Salon 102309NY Women in Communications Digital Salon 102309
NY Women in Communications Digital Salon 102309Sarah Hofstetter
 
Social Media Scheduling Workshop
Social Media Scheduling WorkshopSocial Media Scheduling Workshop
Social Media Scheduling WorkshopInner Ear
 
Features in Graphic and Publication Design
Features in Graphic and Publication DesignFeatures in Graphic and Publication Design
Features in Graphic and Publication DesignCasey Robertson
 
Content Strategy Summit 2014: Polishing Your Content Publishing Process
Content Strategy Summit 2014: Polishing Your Content Publishing ProcessContent Strategy Summit 2014: Polishing Your Content Publishing Process
Content Strategy Summit 2014: Polishing Your Content Publishing ProcessLisa Maria Martin
 
Bands & Brands: A Guide to Experiential Activations at Music Festivals
Bands & Brands: A Guide to Experiential Activations at Music FestivalsBands & Brands: A Guide to Experiential Activations at Music Festivals
Bands & Brands: A Guide to Experiential Activations at Music FestivalsPBJS
 
Design Basics for DIY Print and Digital Publications
Design Basics for DIY Print and Digital Publications Design Basics for DIY Print and Digital Publications
Design Basics for DIY Print and Digital Publications Paul Brown
 

Destaque (14)

Servant Publications Catalog Cover Design
Servant Publications Catalog Cover DesignServant Publications Catalog Cover Design
Servant Publications Catalog Cover Design
 
Publication Design
Publication DesignPublication Design
Publication Design
 
helloMuller 2015 Comics and Publication design portfolio
helloMuller 2015 Comics and Publication design portfoliohelloMuller 2015 Comics and Publication design portfolio
helloMuller 2015 Comics and Publication design portfolio
 
Social Media Strategy Presentation October 20, 2014
Social Media Strategy Presentation October 20, 2014Social Media Strategy Presentation October 20, 2014
Social Media Strategy Presentation October 20, 2014
 
Designing Outside 8.5x11: Developing Effective Publications and Advertising f...
Designing Outside 8.5x11: Developing Effective Publications and Advertising f...Designing Outside 8.5x11: Developing Effective Publications and Advertising f...
Designing Outside 8.5x11: Developing Effective Publications and Advertising f...
 
The Secret Sauce For A Successful Health Club Marketing Strategy In 2014
The Secret Sauce For A Successful Health Club Marketing Strategy In 2014The Secret Sauce For A Successful Health Club Marketing Strategy In 2014
The Secret Sauce For A Successful Health Club Marketing Strategy In 2014
 
NY Women in Communications Digital Salon 102309
NY Women in Communications Digital Salon 102309NY Women in Communications Digital Salon 102309
NY Women in Communications Digital Salon 102309
 
Social Media Scheduling Workshop
Social Media Scheduling WorkshopSocial Media Scheduling Workshop
Social Media Scheduling Workshop
 
Features in Graphic and Publication Design
Features in Graphic and Publication DesignFeatures in Graphic and Publication Design
Features in Graphic and Publication Design
 
Publication Design Chapter 08
Publication Design Chapter 08Publication Design Chapter 08
Publication Design Chapter 08
 
Content Strategy Summit 2014: Polishing Your Content Publishing Process
Content Strategy Summit 2014: Polishing Your Content Publishing ProcessContent Strategy Summit 2014: Polishing Your Content Publishing Process
Content Strategy Summit 2014: Polishing Your Content Publishing Process
 
Bands & Brands: A Guide to Experiential Activations at Music Festivals
Bands & Brands: A Guide to Experiential Activations at Music FestivalsBands & Brands: A Guide to Experiential Activations at Music Festivals
Bands & Brands: A Guide to Experiential Activations at Music Festivals
 
Design Basics for DIY Print and Digital Publications
Design Basics for DIY Print and Digital Publications Design Basics for DIY Print and Digital Publications
Design Basics for DIY Print and Digital Publications
 
Graphic design 01
Graphic design 01Graphic design 01
Graphic design 01
 

Semelhante a Distribution and Publication With Atom Web Services

Grokking the REST Architectural Style
Grokking the REST Architectural StyleGrokking the REST Architectural Style
Grokking the REST Architectural StyleBen Ramsey
 
You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!Ben Ramsey
 
Introduction to AtomPub Web Services
Introduction to AtomPub Web ServicesIntroduction to AtomPub Web Services
Introduction to AtomPub Web ServicesBen Ramsey
 
Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Ben Ramsey
 
The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural StyleRobert Wilson
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web ArchitectureChamnap Chhorn
 
Introduction to Basic Concepts in Web
Introduction to Basic Concepts in WebIntroduction to Basic Concepts in Web
Introduction to Basic Concepts in WebJussi Pohjolainen
 
RSS and Atom in the Social Web
RSS and Atom in the Social WebRSS and Atom in the Social Web
RSS and Atom in the Social Webhchen1
 
web services8 (1).pdf for computer science
web services8 (1).pdf for computer scienceweb services8 (1).pdf for computer science
web services8 (1).pdf for computer scienceoptimusnotch44
 
Apache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya KulkarniApache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya Kulkarniwebhostingguy
 
A Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful ServicesA Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful Servicesruyalarcon
 
HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HyeonSeok Choi
 
21 Www Web Services
21 Www Web Services21 Www Web Services
21 Www Web Servicesroyans
 
Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)
Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)
Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)Beat Signer
 
Developing for Astoria: ADO.NET Data Services
Developing for Astoria: ADO.NET Data ServicesDeveloping for Astoria: ADO.NET Data Services
Developing for Astoria: ADO.NET Data ServicesHarish Ranganathan
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009Cathie101
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009Cathie101
 
Building Restful Applications Using Php
Building Restful Applications Using PhpBuilding Restful Applications Using Php
Building Restful Applications Using PhpSudheer Satyanarayana
 
Lecture no 2 resource sharing
Lecture no 2 resource sharingLecture no 2 resource sharing
Lecture no 2 resource sharingGokuldhev mony
 

Semelhante a Distribution and Publication With Atom Web Services (20)

Grokking the REST Architectural Style
Grokking the REST Architectural StyleGrokking the REST Architectural Style
Grokking the REST Architectural Style
 
You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!
 
Introduction to AtomPub Web Services
Introduction to AtomPub Web ServicesIntroduction to AtomPub Web Services
Introduction to AtomPub Web Services
 
Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)
 
Web Topics
Web TopicsWeb Topics
Web Topics
 
The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural Style
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web Architecture
 
Introduction to Basic Concepts in Web
Introduction to Basic Concepts in WebIntroduction to Basic Concepts in Web
Introduction to Basic Concepts in Web
 
RSS and Atom in the Social Web
RSS and Atom in the Social WebRSS and Atom in the Social Web
RSS and Atom in the Social Web
 
web services8 (1).pdf for computer science
web services8 (1).pdf for computer scienceweb services8 (1).pdf for computer science
web services8 (1).pdf for computer science
 
Apache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya KulkarniApache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya Kulkarni
 
A Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful ServicesA Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful Services
 
HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.
 
21 Www Web Services
21 Www Web Services21 Www Web Services
21 Www Web Services
 
Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)
Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)
Web Architectures - Lecture 02 - Web Information Systems (4011474FNR)
 
Developing for Astoria: ADO.NET Data Services
Developing for Astoria: ADO.NET Data ServicesDeveloping for Astoria: ADO.NET Data Services
Developing for Astoria: ADO.NET Data Services
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009
 
Building Restful Applications Using Php
Building Restful Applications Using PhpBuilding Restful Applications Using Php
Building Restful Applications Using Php
 
Lecture no 2 resource sharing
Lecture no 2 resource sharingLecture no 2 resource sharing
Lecture no 2 resource sharing
 

Mais de Ben Ramsey

Api Versioning
Api VersioningApi Versioning
Api VersioningBen Ramsey
 
Desktop Apps with PHP and Titanium (ZendCon 2010)
Desktop Apps with PHP and Titanium (ZendCon 2010)Desktop Apps with PHP and Titanium (ZendCon 2010)
Desktop Apps with PHP and Titanium (ZendCon 2010)Ben Ramsey
 
Caching with Memcached and APC
Caching with Memcached and APCCaching with Memcached and APC
Caching with Memcached and APCBen Ramsey
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumDesktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumBen Ramsey
 
Give Your Site a Boost with Memcache
Give Your Site a Boost with MemcacheGive Your Site a Boost with Memcache
Give Your Site a Boost with MemcacheBen Ramsey
 
Hidden Gems in HTTP
Hidden Gems in HTTPHidden Gems in HTTP
Hidden Gems in HTTPBen Ramsey
 
Making the Most of HTTP In Your Apps
Making the Most of HTTP In Your AppsMaking the Most of HTTP In Your Apps
Making the Most of HTTP In Your AppsBen Ramsey
 
Around the PHP Community
Around the PHP CommunityAround the PHP Community
Around the PHP CommunityBen Ramsey
 
Distribution and Publication With Atom Web Services
Distribution and Publication With Atom Web ServicesDistribution and Publication With Atom Web Services
Distribution and Publication With Atom Web ServicesBen Ramsey
 

Mais de Ben Ramsey (9)

Api Versioning
Api VersioningApi Versioning
Api Versioning
 
Desktop Apps with PHP and Titanium (ZendCon 2010)
Desktop Apps with PHP and Titanium (ZendCon 2010)Desktop Apps with PHP and Titanium (ZendCon 2010)
Desktop Apps with PHP and Titanium (ZendCon 2010)
 
Caching with Memcached and APC
Caching with Memcached and APCCaching with Memcached and APC
Caching with Memcached and APC
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumDesktop Apps with PHP and Titanium
Desktop Apps with PHP and Titanium
 
Give Your Site a Boost with Memcache
Give Your Site a Boost with MemcacheGive Your Site a Boost with Memcache
Give Your Site a Boost with Memcache
 
Hidden Gems in HTTP
Hidden Gems in HTTPHidden Gems in HTTP
Hidden Gems in HTTP
 
Making the Most of HTTP In Your Apps
Making the Most of HTTP In Your AppsMaking the Most of HTTP In Your Apps
Making the Most of HTTP In Your Apps
 
Around the PHP Community
Around the PHP CommunityAround the PHP Community
Around the PHP Community
 
Distribution and Publication With Atom Web Services
Distribution and Publication With Atom Web ServicesDistribution and Publication With Atom Web Services
Distribution and Publication With Atom Web Services
 

Último

Effective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold JewelryEffective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold JewelryWhittensFineJewelry1
 
Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Americas Got Grants
 
WSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfWSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfJamesConcepcion7
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdfShaun Heinrichs
 
Guide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFGuide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFChandresh Chudasama
 
Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Peter Ward
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03DallasHaselhorst
 
The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...
The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...
The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...Operational Excellence Consulting
 
Onemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring CapabilitiesOnemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring CapabilitiesOne Monitar
 
Healthcare Feb. & Mar. Healthcare Newsletter
Healthcare Feb. & Mar. Healthcare NewsletterHealthcare Feb. & Mar. Healthcare Newsletter
Healthcare Feb. & Mar. Healthcare NewsletterJamesConcepcion7
 
Send Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.comSendBig4
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMVoces Mineras
 
TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024Adnet Communications
 
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...Associazione Digital Days
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environmentelijahj01012
 
Introducing the Analogic framework for business planning applications
Introducing the Analogic framework for business planning applicationsIntroducing the Analogic framework for business planning applications
Introducing the Analogic framework for business planning applicationsKnowledgeSeed
 
20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdf
20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdf20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdf
20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdfChris Skinner
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdfShaun Heinrichs
 

Último (20)

WAM Corporate Presentation April 12 2024.pdf
WAM Corporate Presentation April 12 2024.pdfWAM Corporate Presentation April 12 2024.pdf
WAM Corporate Presentation April 12 2024.pdf
 
Effective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold JewelryEffective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold Jewelry
 
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptxThe Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
 
Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...
 
WSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfWSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdf
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf
 
Guide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFGuide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDF
 
Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03
 
The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...
The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...
The McKinsey 7S Framework: A Holistic Approach to Harmonizing All Parts of th...
 
Onemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring CapabilitiesOnemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
 
Healthcare Feb. & Mar. Healthcare Newsletter
Healthcare Feb. & Mar. Healthcare NewsletterHealthcare Feb. & Mar. Healthcare Newsletter
Healthcare Feb. & Mar. Healthcare Newsletter
 
Send Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.com
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQM
 
TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024
 
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environment
 
Introducing the Analogic framework for business planning applications
Introducing the Analogic framework for business planning applicationsIntroducing the Analogic framework for business planning applications
Introducing the Analogic framework for business planning applications
 
20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdf
20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdf20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdf
20220816-EthicsGrade_Scorecard-JP_Morgan_Chase-Q2-63_57.pdf
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf
 

Distribution and Publication With Atom Web Services

  • 1. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  • 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. “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. Atom is both a format and a protocol. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  • 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. 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. 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. 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. “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. 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. 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. “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. 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. 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. This is REST in a nutshell. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  • 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. 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. 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. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  • 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. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  • 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. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  • 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. Distribution and Publication With Atom Web Services Ben Ramsey ■ DC PHP Conference ■ 3 June 2008
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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