# Фун:ция WebDAV в Amaya

## О функции WebDAV

WebDAV (WWW Distributed Authoring and Versioning) это набор расширений для протокол HTTP, позволяющий пользователям выполнять совместное редактирование и управление веб ресурсами на удалённых серверах. Его целью является расширение протокола HTTP, уступая место открытой архитектуре на уровне протокола, разработка новых распределенных инструментальных средств авторства в сети, особенно подчеркивается совместное авторство (редактирование) веб страниц (смотрите RFC 2518). WebDAV определяет операции по свойствам, коллекциям, пространствам имён, защиту от перезаписи (механизм блокировки), и для этих операций определяет новые методы, заголовки, запрос и тела объектов ответа. Однако, особенности версий, презентация в первоначальном предложении, были перемещены в рабочую группу Delta-V, предназначенную для расширения WebDAV и HTTP/1.1 для этих возможностей (смотрите E. J. Whitehead's paper "The future of Distributed Software Development on the Internet").

Механизм блокировки определённый в WebDAV, был создан для предотвращения перезаписи ресурсов (т.е. для предотвращения проблемы потери обновления), используя для этого операции блокировки и разблокировки. Блокировка управляет доступом к записи ресурса путём ограничения операций записи HTTP, таких как PUT, POST и DELETE. Это значит, что только кто-то, кто знает о блокировке может выполнять эти операции. Протокол WebDAV также определяет две возможности блокировки: эксклюзивную и общедоступную блокировку. Эксклюзивная блокировка гарантирует что только один человек обладает возможностью блокировки, и больше никто не сможет заблокировать ресурс (это не касается чтения ресурса). Общедоступная блокировка позволяет группе пользователей создавать свои блокировки ресурса, но при этом они должны доверять друг другу, чтобы предотвратить проблемы совместного доступа. Кроме этого, каждая блокировка имеет блокировку по времени и при этом пользователь должен помнить, что блокировки могут исчезать на сервере из-за сбоев в работе самого сервера.

Более подробную информацию о WebDAV вы можете найти в RFC 2518, а также на веб сайте WebDAV.org.

## Поддержка WebDAV в Amaya

Amaya имеет ограниченную поддержку WebDAV в качестве дополнительной возможности. Эта поддержка включает в себя следующие операции: блокировка/разблокировка WebDAV совместимого ресурса, просмотр WebDAV свойств ресурса и блокировку возможности открытия. Кроме того, эта поддержка может включать в себя некоторые функции оповещения, автоматически сообщающие пользователю о заблокированных ресурсах.

### Как это использовать?

Поддержка WebDAV, представленная в Amaya, предназначена для помощи небольшим группам пользователей в совместном редактировании их веб страниц. Чтобы показать как всё это работает, в качестве примера: представьте что у вас есть сервер WebDAV (предварительно, вы должны иметь веб сервер который поддерживает работу с WebDAV) называемый `davserver.mycompany.com`, и при этом и вы и ваши коллеги хотите выполнять совместное редактирование документов, находящихся в WebDAV директориях `/shared/` (WebDAV папки называемые коллекциями).

Итак, представьте, что вы нуждаетесь в изменении документа `http://davserver.mycompany.com/shared/Doc1.html`. Чтобы выполнить это, вы должны загрузить документ в Amaya, находящийся в режиме редактирования, затем вы можете заблокировать этот документ (пункт Заблокировать ресурс в меню Совместная работа _ смотрите Рисунок 1). Как только вы заблокировали документ, если один из ваших коллег попробует сохранить некоторое изменение в этом документе, он/она будут предупреждены о блокировке, и изменения не будут автоматически потеряны. Таким образом, во время блокировки документа, вы можете безопасно изменять его, а когда вы закончите вашу работу, вы можете разблокировать документ, позволив вашим коллегам самим блокировать документ и выполнить нужные им изменения.

Поэтому, если вы хотите знать, блокировал ли ваш коллега веб страницу, для этого вы можете использовать пункт Просмотр свойств ресурса из меню Совместная работа, для просмотра всех свойств этого ресурса, или же, вы можете сконфигурировать Amaya на автоматическое информирование вас о блокировании ресурса. Чтобы выполнить это, откройте диалоговое окно Совместная работа->Настройки, включите опцию Общее оповещение и в поле ввода User's WedDAV Resource list укажите папку с документами предоставленными в общее пользование (`http://davserver.mycompany.com/shared/`, как это показано на Рисунке 2). Как только вы это сделаете, при загрузке страницы, заблокированной вашим коллегой и находящейся в папке `http://davserver.mycompany.com/shared/`, вы получите от Amaya соответствующее предупреждение.

### Опции WebDAV в реестре Amaya

Эти опции являются опциями подменю Совместная работа > Настройки. Величины, принятые по умолчанию, промаркированы как:

`DAV_DEPTH= [ infinity | 0 ]`
  Глубина блокировки. Если глубина блокировки указана как бесконечная, это подразумевает блокировку всех компонентов папки. В противном случае, блокировка будет применяться просто к папке, не позволяя пользователю, не обладающему правами блокировки, создавать или удалять компоненты папки.
`DAV_TIMEOUT= [ Infinite | Second-XXXX ]`
  Желаемая продолжительность блокировки (время на которое ресурс будет заблокирован). Величина "Infinite-бесконечность" означает отсутствие ограничения на продолжительность блокировки, величина "Second-XXXX" задаёт продолжительность блокировки в XXXX секунд.
`DAV_LOCK_SCOPE= [ exclusive | shared ]`
  Вид блокировки.
`DAV_USER_URL= [ URL ]`
  URL, идентифицирующий пользователя. Пример: mailto:myself@myhost.com или http://myhost.com/myhomepage.html
`DAV_AWARENESS= [ yes |``no``]`
  Указывает, хочет ли пользователь получать информацию общего оповещения о заблокированных ресурсах.
`DAV_AWARENESS_ONEXIT=[ yes |````no``]`
  Указывает, хочет ли пользователь получать информацию о его/её собственных блокировках, когда он/она покидает ресурс.
`DAV_URLS= [ URL URL URL ... ]`
  Список URLs ресурсов, используемых пользователем в качестве WebDAV ресурсов.

## Как компилировать Amaya с поддержкой функции WebDAV?

WebDAV поддерживается в Amaya в качестве дополнительной возможности. Для компиляции и последующего использования вам необходимо нижеследующее:

- Libwww с поддержкой WebDAV
- Опция выбора конфигурации Amaya
- Сервер WebDAV для использования этой функции ... Jigsaw и Apache как примеры веб серверов поддерживающих WebDAV.

Как только вы выполните cvs проверку из Libwww с WebDAV и получите исходный код Amaya, вы должны использовать нижеследующие инструкции начальной загрузки (для Linux/Unix окружения - для windows окружения, смотрите домашние страницы Amaya и Libwww):

#### Директория libwww:

- libtoolize -c -f
- perl config/winConfigure.pl
- aclocal; autoheader; automake; autoconf

#### Директория Amaya:

- autoconf
- mkdir LINUX-ELF (или GTK, или obj)
- cd LINUX-ELF
- ../configure --with-dav ... (и все другие опции которые вам необходимы)
- make

Создано Manuele Kirsch Pinheiro, Июнь, 13, 2002.