Implementace protokolu WebDAV pro Content Management System

WebDAV je specifikace, která rozšiřuje HTTP protokol a zavádí tak lepší možnosti pro vzdálený přístupu k obsahu webu (včetně zamykání) a zároveň k tomuto obsahu umožňuje přidávat libovolné strukturované informace (metadata). Pustili jsme se do vlastní implementace tohoto protokolu...

Co je WebDAV

WebDAV je specifikace, která rozšiřuje HTTP protokol a zavádí tak lepší možnosti pro vzdálený přístupu k obsahu webu (včetně zamykání) a zároveň k tomuto obsahu umožňuje přidávat libovolné strukturované informace (metadata). Protokol WebDAV se v poslední době stává čím dál tím populárnější a to díky své jednoduchosti a nemalou měrou k tomu přispívá i fakt, že je již nějakou dobu podporován operačními systémy společnosti Microsoft. Například ve Windows XP lze pomocí tohoto protokolu připojit vzálený WebDAV server podobně, jako připojujete síťový disk. Poté je možné přistupovat ke vzdáleným zdrojům jako k souborům a adresářům, upravovat jejich obsah, kopírovat je, mazat, atd.

Vlastní implementace protokolu WebDAV

Proč jsme se pustili do vlastní implementace a nevyužili již některé existující? Po pravdě řečeno, byli jsme na vážkách, ale rozhodující pro nás byla malá podpora metadat u těchto řešení. Většina z nich se pouze soustředí na zdroje (resources) a metadata (vlastnosti) řeší pouze na úrovni těchto zdrojů (název zdroje, velikost jeho obsahu, datum poslední modifikace, atd.) Naše implementace však bude primárně napojena na již existující Content Management System (CMS), který má podporu metadat nad obsahem již vyřešenou a bylo by hezké tyto informace pomocí WebDAV protokolu používat.

Rozdělení WebDAV do funkčních bloků

Před vlastní implementací jsme se rozhodli (a ukázalo se, že správně) rozdělit protokol do bloků a to podle funkcionality. Vznikly nám tak následující bloky:

Tímto rozdělením můžeme stávající implementaci WebDAV doplňovat o konkrétní části a navíc se každý takovýto blok lépe spravuje a testuje.

Dále je možné vytvořit i více alternativ jednotlivých bloků a tyto pak libovolně (podle požadavků) dávat dohromady (code reuse).

Google+