fgafdg

Page 1

Leveraging Standards: Improving the WebDAV experience... NOW! Sidnei da Silva Enfold Systems, LLC

#1


Motivation ●

WebDAV has been a second-class citizen Bulk-loading of Content –

#2

PLIP 44

Tight Desktop Integration

The hooks are mostly there

It is nice to follow standards

... though sometimes it can be a pain!


State of Affairs ●

#3

Zope had WebDAV for quite some time It integrates with stuff like PropertySheets ... which no one uses anymore ;( Implements the protocol to a good extent Mostly passes the Litmus test


State of Affairs

#4

CMF has the Content Type Registry

Underused, mostly forgotten

Doesn't use PropertySheets!


Controlling Content Creation (3C)

#5

Content Type Registry –

Provides a hook for controlling what object gets created

Default predicates are quite poor

Most tools don't meet minimum standards


Controlling Content Creation (3C)

#6

Content Type Registry –

Somewhat extensible

Inspect contents instead

Maybe mime-type detection?


Importing and Exporting

#7

Most new products rely on Archetypes

Concepts from Zope 3

Standard base

Introspectible Schema

Future-proof


Importing and Exporting

#8

Concept of “Layers”

Marshalling

Default use: WebDAV

Other Uses?


Importing and Exporting ●

#9

Marshalling –

Controllable

... but not enough

Only one Marshaller per Schema

Marshall –

Controlled Marshaller

Marshaller Registry

Same pattern as Content Type Registry


Defining a standard: ATXML ●

#10

Default Marshallers –

Primary Field

RFC 822

Mostly backwards-compatible

Too weak for structured data –

References

Metadata


Defining a standard: ATXML

#11

Structured? XML!

Existing libraries –

minidom

PyXML

libxml2


Defining a standard: ATXML ●

#12

Features –

Future-proof

Validation

A XML Schema

RelaxNG

Our Choice: libxml2


Defining a standard: ATXML ●

References –

UID

Path

Metadata ●

Future –

#13

Recursive Definition

RelaxNG from Archetypes Schema


Information. Exposed.

#14

WebDAV and Namespaces

Zope: PropertySheets

DAV –

Virtual PropertySheet

Not quite extensible

Enters “structured monkey-patching”


Information. Exposed. ●

Property Set Registry –

Same pattern as Content Type Registry

Same as Marshaller Registry

Familiar Patterns have a Better Chance

Expose Dublin Core Metadata

Expose other info on new namespaces

Improvements to “davlib” –

#15

PEP 268


Where to next...

#16

Zope 3

Nautilus Plugin

Growing the base –

Archetypes Predicate

iCalendar Marshaller from Calendaring

Other Standards?


References ●

WebDAV http://webdav.org/

Greg Stein's davlib http://www.lyra.org/greg/python/davlib.py

RFC 2518 - HTTP Extensions for Distributed Authoring WEBDAV http://www.faqs.org/rfcs/rfc2518.html PEP268 - Extended HTTP functionality and WebDAV http://www.python.org/peps/pep-0268.html

PLIP44 - Bulk loading of external content into Archetypes-based objects http://plone.org/development/plips/plip44

Enfold Repository

SVN: http://svn.enfoldsystems.com/public ViewCVS: http://svn.enfoldsystems.com/browse/public #17


Thanks!

Enfold Systems

Mark Hammond

Zope Europe (ZEA)

ZopeMag

#18

(Peter Germain and Mark Pratt) http://www.zopemag.com/Issue009/Section_Articles/article_PloneWebDAV.html


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.