Współpraca z klientami

Wszystkei programy klienckie WebDAV należą do jednej z trzech kategorii— aplikacje samodzielne, rozszerzenia menadżerów plików lub implementacje systemów plików. Kategorie te zasadniczo definiują typy funkcjonalności WebDAV dostępnej dla użytkowników. Tabela C.1, „Popolarne aplikacje klienckie WebDAV” — lista ta zawiera aplikacje, które przypisano do tych trzech kategorii jak również ich krótki opis. Więcej szczegółów na temat tego, co oferują znajdziesz w dalszych sekcjach.

Tabela C.1. Popolarne aplikacje klienckie WebDAV

Nazwa Rodzaj Windows Mac Linux Opis
Adobe Photoshop Aplikacja samodzielna X     Pogram do obróbki grafiki, pozwala na bezpośredni odczyt i zapis do adresów WebDAV
cadaver Aplikacja samodzielna   X X Klient linii poleceń obsługujący transfer plików, operacje blokowania i modyfikacji struktury katalogów
DAV Explorer Aplikacja samodzielna X X X Narzędzie napisane w Javie z graficznym interfejsem użytkownika służące do eksploracji zasobów WebDAV
Adobe Dreamweaver Aplikacja samodzielna X     Aplikacja do tworzenia stron WWW, która posiada możliwość odczytu i zapisu do adresów WebDAV
Microsoft Office Aplikacja samodzielna X     Pakiet biurowy, którego niektóre komponeny są w stanie bezpośrednio czytać i zapisywać do WebDAV
Microsoft Web Folders Rozszerzenie menadżera plików X     Graficzny menadżer plików potrafiący wykonywać operacje na strukturze udziałów WebDAV
GNOME Nautilus Rozszerzenie menadżera plików     X Graficzny menadżer plików potrafiący wykonywać operacje na strukturze oudziałów WebDAV
KDE Konqueror Rozszerzenie menadżera plików     X Graficzny menadżer plików potrafiący wykonywać operacje na strukturze oudziałów WebDAV
Mac OS X WebDAV jako system plików   X   System operacyjny, który posiada wbudowaną funkcję montowania udziałów WebDAV
Novell NetDrive WebDAV jako system plików X     Aplikacja mapująca dyski, która pozawala na przypisywanie Windowsowych liter dysków do zamontowanych udziałów
SRT WebDrive WebDAV jako system plików X     Oprogramowanie do transferu plików, które, m.in. potrafi przypisać Windowsową literę dysku do zamontowanego udziału WebDAV
davfs2 WebDAV jako system plików     X Linuksowy sterownik systemu plików, który pozwala na montowanie udziałów WebDAV

Aplikacje samodzielne WebDAV

Aplikacją WebDAV nazwywamy program, który potrafi komunikować się z serwerem za pomocą protokołu WebDAV. Omówimy tu większość popularnych tego typu programów.

Microsoft Office, Dreamweaver, Photoshop

Istnieje kilka bardzo dobrze znanych aplikacji na Windowsa z wbudowaną funkcjonalnością WebDAV, takich jak Microsoft's Office, [61] Adobe Photoshop czy Dreamweaver. Wszystkie są w stanie bezpośrednio otwierać i zapisywać do adresów URL oraz mają w zwyczaju korzystanie z mechanizmów blokowania podczas edycji.

Zauważ, że o ile wiele z tych programów istnieje w wersji na Mac OS X, to nie wspierają bezpośredniego dostępu do WebDAV na tej platformie. De facto, standardowe okienko dialogowe Plik→Otwórz w systemie Mac OS X nie zezwala na wprowadzanie ścieżek czy adresów URL. Prawopodobne zatem jest, że obsługa WebDAV została z tych aplikacji usunięta celowo, jako że OS X posiada bardzo dobry system plików z niskopoziomowym wsparciem dla WebDAV.

cadaver, DAV Explorer

cadaver jest elementarnym programem unksowym obsługiwanym z linii poleceń i służy do przeglądania i modyfikacji zasobów WebDAV. Podobnie do klienta Subversion, korzysta z biblioteki neon HTTP—nic w tym dziwnego, skoro zarówno neon jak i cadaver zostały napisane przez tego samego autora. Opearty został o licencję GPL i jest dostępny pod adresem http://www.webdav.org/cadaver/.

Posługiwanie się cadaver'em przypomina korzystanie z konsolowego klienta FTP, co sprawia że jest doskonałym narzedziem do prostego debugowania WebDAVa. Można nim przesyłać lub pobierać ekspresowo pliki, badać właściwości oraz kopiować, przenosić lub blokować pliki:

$ cadaver http://host/repos
dav:/repos/> ls
Listing collection `/repos/': succeeded.
Coll: > foobar                                 0  May 10 16:19
      > playwright.el                       2864  May  4 16:18
      > proofbypoem.txt                     1461  May  5 15:09
      > westcoast.jpg                      66737  May  5 15:09

dav:/repos/> put README
Uploading README to `/repos/README':
Progress: [=============================>] 100.0% of 357 bytes succeeded.

dav:/repos/> get proofbypoem.txt
Downloading `/repos/proofbypoem.txt' to proofbypoem.txt:
Progress: [=============================>] 100.0% of 1461 bytes succeeded.

DAV Explorer jest kolejną, napisaną w Javie, samodzielną aplikacją kliencką. Oparty został o darmową, Apache'opodobną licencję i jest dostępny pod adresem http://www.ics.uci.edu/~webdav/. Nie dość, że potrafi to samo co cadaver, to dodatkowo jest przenośną, dużo bardziej przyjazną użytkownikowi (graficzny interfejs) aplikacją. Jest też jednym z pierwszych klientów, który wspiera nowy protokół kontroli dostępu (ACL) do WebDAV (RFC 3744).

Oczywiście wsparcie to jest w tym przypadku bezużyteczne, jako że mod_dav_svn nie obsługuje tego protokołu. Fakt, że zarówno cadaver jak i DAV Explorer obsługują niektóre z poleceń DeltaV, także nie należy do szczególnie przydatnych, ponieważ żaden z tych programów nie zezwala na wysyłanie żądań MKACTIVITY. Ostatecznie wszystko to nie ma znaczenia, gdyż zakładamy, że aplikacje klienckie będą pracować na repozytorium z aktywnym autowersjonowaniem.

Rozszerzenia menadżera plików

Część z popularnych graficznych menadźerów plików wspiera rozszerzenia dodające obsługę udziałów WebDAVa tak jakby to były zwykłe katalogi na lokalnym kompuerze zezwalając na wykonywanie podstawowych operacji na nich. Przykładowo, Eksplorator w Windowsie jest w stanie przeglądać WebDAVowe udziały jako „miejsca sieciowe.” Użytkownicy mogą przeciągać pliki z i na pulpit, mogą zmieniać nazwy, kopiować lub usuwać pliki tak jak to robią z normalnymi plikami. Jako że jest to jedynie opcja w Eksplorerze, udziały DAVa pozostają niewidoczne dla zwykłych aplikacji. Cała interakcja musi się odbywać przez Eksploratora.

Foldery sieciowe Microsoftu

Microsoft był współtwórcą specyfikacji WebDAV i jako pierwszy dostaraczał klienta tego protokołu w Windows 98 pod nazwą Folderów Sieciowych. W aplikację tą wyposażono także Windows NT 4.0 i Windows 2000.

Oryginalny klient Folderów sieciowych był rozszerzeniem Eksploratora, graficznego programu służacego do przeglądania plików. Działał całkiem sprawnie; w Windowsie 98 czasami funkcjonalność ta musiała być ręcznie doinstalowana (jeżeli brakowało ikony „Foldery sieciowe” wewnątrz okna „Mój komputer”). W Windowsie 2000 wystarczyło dodać nowe „Miejsce sieciowe”, wprowadzić adres URL i zasób WebDAV otwierał się w nowym oknie.

Począwszy od Windowsa XP, Microsoft zaczął rozpowrzechniać nową implementację Folderów sieciowych, znaną pod nazwą „WebDAV Mini-Redirector”. Nowe oprogramowanie jest klientem działającym na poziomie systemu plików, co pozwala na montowanie udziałów jako litery dyskowe. Niestety, rozwiązanie to okazało się mieć mnóstwo błędów. Klient zwykle próbował konwertować zwykłe URLe (http://host/repos) na notację UNC (\\host\repos); często też próbował się logować przy użyciu autentykacji windowsowej w odpowiedzi na podstawowe wyzwania HTTP, przeszyłając login w formieHOST\login. Problemy z niekompatybilnością zdarzały się często, czego dowodem są liczne skargi sfrustrowanych użytkowników rozsiane po WWW. Nawet Greg Stein, autor Apache'owego modułu WebDAV, bez ogródek oznajmił, że Foldery sieciowe z XP po prostu nie są w stanie współpracować z serwerem Apache.

Wygląda na to, że wstępna implementacja Folderów sieciowych w Windows Vista bedzie praktycznie identyczna jak ta znana z XP, a więc można oczekiwać podobnych problemów. Przy odrobinie szczęścia, Microsoft naprawi powstałe błędy w Service Pack'u dla Visty.

Pomimo to, istnieją pewne prowizoryczne rozwiązania (zarówno dla XP jak i Visty), które umożliwiają funkcjonowanie Folderów sieciowych z Apache'm. Większości użytkowników udało się połączyć przy użyciu tych technik, więc je tu opiszemy.

W Windows XP masz dwie możliwości. Pierwsza, to przeszukać stronę Microsoft'u w poszukiwaniu aktualizacji KB90730 („Software Update for Web Folders.”). W ten sposób prawdobodobnie pozbędziesz sie problemów; jeśli nie, oznacza to, że stara implementacja Folderów sieciowych wciąż gdzieś istnieje w systemie. Możesz ją odkopać wchodząc do Miejsc sieciowych i dodając nowe miejsce. W momencie, gdy zostaniesz poproszony o adres URL repozytorium, wprowadź go wraz z numerem portu. Przykładowo, powinieneś wpisać adres http://host/repos w formie http://host:80/repos. Na wszeklie żadania autentykacji odpowiadaj loginem i hasłem z Subversion.

W Viście, ta sama aktualizacja KB90730 powinna rozwiązać powyższe nieprawidłowości, lecz mogą pojawić się nowe trudności. Niektórzy użytkownicy zgłaszali, że Vista uważa wszelkie połaczenia http:// za niebiezpieczne, przez co blokuje wszelkie próby autentykacji od Apache'a jeśli nie odbywają się po SSL (https://). Jeżeli nie masz możliwości wykonania takiego połączenia, możesz zmodyfikować rejestr systemu w celu wyłączenia tego zabezpieczenia. Po prostu zmień wartość klucza HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel z 1 na 2. Ostatnie ostrzeżenie: podając adres Folderu sieciowego, wskaż katalog główny (/), a nie podkatalog (np. /trunk). Wygląda na to, że Vista ma ochotę pracować jedynie z katalogiem głównym repozytorium. //seems to work only against repository roots.

Ogólnie rzecz biorąc, o ile te prowizorki mogą się się nawet sprawdzić, o tyle mniej nerów stracisz korzystając z zewnętrznego klienta WebDAV, np. z WebDrive czy NetDrive.

Nautilus, Konqueror

Nautilus jest oficjalnym menadżerem plików dla środowiska GNOME (http://www.gnome.org), Konqueror natomiast jest jego odpowiednikiem w środowisku KDE (http://www.kde.org). Obie aplikacje mają wbudowanego klienta WebDAV na poziomie eksploratora i bez problemu współpracują z repozytorium w trybie autowersjonowania.

W Nautilusie, wybierz Plik→Otwórz lokalizację, po czym wprowadź adres URL w otwartym okeinku dialogowym. Po tej operacji repozytorium powinno być widoczne jak każdy inny system plików.

Korzystając z Konqueror'a będziesz musiał użyć schematu webdav:// podczas wpisywania adresu. Jeśli wpiszesz standardowy adres z http:// na początku, Konqueror zachowa się jak zwykła przeglądarka WWW. Prawdopodobnie ujrzysz wtedy ogólny listing HTML wygenerowany przez moduł mod_dav_svn. Co innego gdy wprowadzisz webdav://host/repos zamiast http://host/repos; Konqueror wtedy przełączy się w tryb klienta WebDAV, po czym wyświetli repozytorium jak system plików.

WebDAV jako system plików

WebDAV zaimplementowany jako system plików jest bez wątpienia najlepszym rodzajem klienta. Tergo typu aplikacje zaprojektowano jako niskopoziomowe moduły, zwykle zintegrowane z jądrem systemu. Oznacza to, że udział DAVa jest montowany jak każdy inny sieciowy system plików, podobnie jak udziały NFS montowane w systemach uniksowych czy jak podpinanie litery dysku w Windowsie pod udział SMB. W wyniku otrzymujemy całkowicie transparentny dla wszystkich aplikacji dostęp do WebDAVa. Programy w tej sytuacji nawet nie są „świadome” tego, że gdzieś w tle wykonują się żądania HTTP.

WebDrive, NetDrive

WebDrive i NetDrive są bardzo dobrymi aplikacjami komercyjnymi, które pozwalają na zamontowanie udziału WebDAV jako litera dysku w Windowsie. W efekcie możesz pracować na udostępnionych pseudo-dyskach z taką samą łatwością i dokładnie w taki sam sposób jak na dyskach fizycznych. Licencję WebDrive możesz zakupić u South River Technologies (http://www.southrivertech.com). NetDrive Novella jest dostępny bez opłat, ale wymaga posiadania licencji NetWare.

Mac OS X

System operacyjny Mac OS X posiada zintegrowanego klienta //operating system has an integrated WebDAV na poziomie systemu plików. Za pomocą Finder'a wybierz //filesystem-level WebDAV client. From the Finder, select the Idź→Połącz z serwerem, // menu wprowadź adres URL; po chwili udział pojawi się na pulpicie, //item. Enter a WebDAV URL, and it appears as a disk on the podobnie jak każdy inny zamontowany wolumin. Alternatywnie, //desktop, just like any other mounted volume. You can also mozesz zamontować udział WebDAV z poziomu terminala Darwina //share from the Darwin terminal by using the podając webdav jako typ systemu plików //filesystem type with the poleceniu mount:

$ mount -t webdav http://svn.example.com/repos/project /some/mountpoint
$

Zauważ, że jeśli mod_dav_svn na Twoim serwerze jest starszy od wersji 1.2, OS X zablokuje możliwość zapisu w zamontowanym woluminie wyświetlajac pliki w trybie tylko-do-odczytu. Dzieje się tak dlatego, ponieważ OS X wymusza wspracie dla możliwości blokowania udzałów, która pojawiła się dopiero w Subwersion 1.2.

Zdarza się też, że klient WebDAV w OS X'ie bywa nadwrażliwy na przekeirowania HTTP. Jeżeli nie możesz zamontować udziału w jakimkolwiek trybie, prawdopodobnie będziesz musiał włączyć dyrektywę BrowserMatch w pliku konfiguracyjnym Apache'a (httpd.conf):

BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully

Linux davfs2

Linux davfs2 jestm modułem typu system plików dla jądra linuksowego, którego rozwój odbywa się pod adresem http://dav.sourceforge.net/. Po zainstalowaniu davfs2, będziesz mógł montować udziały WebDAV za pomocą standardowego polecenia mount:

$ mount.davfs http://host/repos /mnt/dav


[61] Obsługi WebDAV został, z niewiadomego powodu, pozbawiony Access, ale reszta aplikacji w pakiecie go wspiera.