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