Hi!

After I duck some more into designing the "lock" feature for the Webdav 
component Kore and me discussed possible implementation scenarios 
yesterday and want to present our foundings to you here, to make a basic 
desicion for a design concept. I try to keep the necessary background 
information as short as possible, to not waste your time. There are 
basically 2 possibilities to implement locking:

a) As a plugin for the (currently private) Plugin-API.
b) Integrated into the transport and backend layer (SimpleBackend).

To say it right in front: Both solutions are not nice. We determined the 
following problems with it:

- Plugin implementation
   - Object overhead (request / response objects for every communication
     with the backend).
   - Null resource handling requires to hook into every request /
     response type and needs complex data-storage handling.
   - No optimization possibilities in the backend (e.g. a possible
     database backend that supports sub-tree selection).
- Integrated implementation
   - Requires more complex request handling in the backend (n-path
     complexity raised by power of 4).
   - ezcWebdavSimpleBackend not "simple" anymore.
   - Optimizing iwn backends only possible without extending
     ezcWebdavSimpleBackend.

If you want to get an impression of how locking works in WebDAV, I tried 
to summarize important points of the RFC in Webdav/design/locking.txt.

Opinions please!

Regards,
Toby
-- 
Mit freundlichen Grüßen / Med vennlig hilsen / With kind regards

Tobias Schlitt (GPG: 0xC462BC14) eZ Components Developer

[EMAIL PROTECTED] | eZ Systems AS | ez.no
-- 
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components

Reply via email to