Hi,
I'd like to submit the first version of a proposal for a component to 
support the Atom Publishing Protocol. It's a very basic version, I'm 
sure I've missed lots out, so any comments are welcome.

-- 
Cheers,
Michael

eZ component: AtomPub, Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Author:   Michael Maclean
:Revision: $Revision$
:Date:     Date: 2008-02-20

Introduction
============

Description
-----------

The purpose of this component is to implement a server for the Atom 
Publishing
Protocol (standardised in `RFC 5023`_). Atom is "an application-level 
protocol
for publishing and editing Web Resources using HTTP and XML." [#]_. It is
mainly used with CMS and blog applications as an API to publish content from
client tools. Several popular blogging tools such as Google's Blogger and
Wordpress support it. It has also been used in similar situations to 
UDDI for
Web service registration and discovery [#]_.

.. _`RFC 5023`: http://tools.ietf.org/html/rfc5023
.. [#] http://www.atomenabled.org/developers/protocol/
.. [#] http://intertwingly.net/blog/2008/01/16/Atom-as-Registry-Repository

Requirements
============

The requirements for this component are somewhat aligned with the WebDAV
component, and they can be used for similar purposes. It is possible 
that some
of the infrastructure for that component could be recycled for this one.

The first version of the component should, like WebDAV, support a filesystem
backend and have a plugin system suitable for writing drivers to handle many
other backends - database, FTP, etc.

Component integration
=====================

Feed
----

AtomPub uses the Atom syndication format as a representation format for
collections. As such, a dependency on the Feed component to provide this 
output
is likely to be unavoidable.

Authentication
--------------

At first, the component should support use of HTTP Basic as the 
authentication
protocol. To provide the authentication database, ie-ins to backends 
provided
by the Authentication_ component should be possible.

.. _Authentication: http://ezcomponents.org/docs/tutorials/Authentication

Other considerations
====================

Routing/dispatching
-------------------

Implementation of the AtomPub protocol may require certain 
considerations to be
made when implementing routing - for example, to allow the service 
document URL
to be available in the correct location. It may be best to provide advice to
implementors on how to set this up, rather than build in any particular 
support
for routing into the component.

Metadata
--------

Like WebDAV, Atom allows for metadata such as author data, titles, "slugs"
(which are to be used when generating URLs for the content), and publishing
timestamps. The storage backend will need to provide some way of storing 
this,
such as XML files, a database, or similar.

..
    Local Variables:
    mode: rst
    fill-column: 79
    End:
    vim: et syn=rst tw=79
-- 
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components

Reply via email to