PURL
Материал из Википедии — свободной энциклопедии
PURL (англ. Persistent Uniform Resource Locator) — постоянный единообразный локатор (определитель местонахождения) ресурса. На английский манер произносится как [пё́рл], русское произношение ещё не устоялось, вероятно это будет [пу-эр-э́л] или [пурла́]. Формат PURL основан на URL — стандартизированном способе записи адреса ресурса в сети Интернет. PURL — это постоянный локатор ресурса, который (в отличие от обычного URL) не может измениться.
Содержание |
[править] Основная идея
Идиома Всемирной паутины «наведи-и-щёлкни» сделала веб-сёрфинг простым и приятным занятием. Но довольно часто пользователь сталкивается с сообщением об ошибке 404: «Document Not Found». Эта ошибка возникает, когда запрошенный ресурс был перемещён, удалён, реструктурирован, переименован или же были произведены изменения в настройке веб-сервера или файловой системы сервера. Непредсказуемая мобильность ресурсов Интернета представляет огромную проблему, особенно для электронных библиотек, каталогов, словарей и энциклопедий. А виной всему — сами концепции URL и DNS, которым недостаёт гибкости где надо и вполне достаёт где не нужно.
Ресурсы во Всемирной паутине и Интернете перемещаются, домены DNS перерегистрируются, а ссылки в виде URL остаются, указывая на уже отсутствующие ресурсы. Общим решением этих проблем может стать разработка единообразных имён ресурсов URN (англ. Uniform Resource Names). Организация IETF (англ. Internet Engineering Task Force) уже некоторое время занимается URN, но результат пока не достигнут. Слишком много заинтересованных сторон участвуют в стандартизации URN, и всем им прийти к единому мнению будет непросто. А тем временем тысячи библиотек, каталогов, словарей и энциклопедий по всему миру нуждаются в немедленном решении этих проблем. И тут на сцену выходит проект PURL.
По своей функциональности PURL — это те же URL, но они указывают не на конкретное место расположения ресурса, а на запись в базе данных PURL, где, в свою очередь, записан уже конкретный URL-адрес ресурса. При обращении к PURL, сервер находит нужную запись в этой базе данных и перенаправляет (через стандартный «HTTP redirect») запрос уже на конкретное местоположение ресурса. Если адрес ресурса меняется, то нет нужды исправлять все бесчисленные ссылки на него — достаточно лишь изменить запись (конкретный адрес) в БД, а PURL останется совершенно неизменным. Таким образом достигается постоянство внешнего адреса ресурса. Это перекликается с концепцией полиморфизма в объектно-ориентированном программировании.
Пример. Допустим, зарегистрирован такой PURL:
http://purl.russian-books.com/WarAndPeace/
Этот PURL указывает (через ссылку в БД) на вот такой URL:
http://your.web.server/your/web/root/
Тогда, если последует запрос к PURL по такой ссылке:
http://purl.russian-books.com/WarAndPeace/chapter12.html
То сервер автоматически перенаправит запрос на:
http://your.web.server/your/web/root/chapter12.html
Как видно из примера, всё очень просто и эффективно. Этот механизм сродни перенаправлениям в Википедии.
[править] Структура PURL
В базовом виде PURL почти не отличается от обычных URL:
http://purl.oclc.org/OCLC/PURL/FAQ ---- ------------- ------------- / | \ протокол сервер с БД PURL имя
В PURL нельзя использовать символы '#' и '~'.
Схема обращения к ресурсу выглядит так:
+-------+ PURL +----------+ | | ------------>> | | | | | PURL | | К | URL | СЕРВЕР | | Л | <<------------ | | | И | +----------+ | Е | URL +----------+ | Н | ------------>> | | | Т | | СЕРВЕР | | | РЕСУРС | РЕСУРСА | | | <<------------ | | +-------+ +----------+
Конечно, это не идеал, и лишнее звено в этой цепи создаёт дополнительный трафик и нагружает сеть. Но скорость обработки PURL всё-равно очень высока — например, ещё в 1996 году однопроцессорный файловый сервер «Sun4», обслуживавший базу данных PURL из 500 000 записей, мог перенаправлять 50 запросов в секунду. А про современные мощные серверы и говорить нечего. Ведь до выхода спецификации URN может пройти ещё много времени, а эта схема предлагает несложное решение прямо сейчас. К сожалению, это прекрасное новшество ещё недостаточно популярно и не стандартизировано на высоком уровне. Но воспользоваться PURL может уже прямо сейчас любой человек, притом бесплатно.
Ещё одна хорошая новость заключается в том, что по формату PURL полностью совместим с готовящейся спецификацией URN. Так что ещё одного болезненного кардинального перехода не будет. Введение международного стандарта IRI тоже, судя по всему, не нанесёт урона PURL. Кроме того, всё серверное программное обеспечение проекта PURL является открытым, исходные коды общедоступны.
[править] История и перспективы
Проект PURL был разработан, запущен в январе 1996 года и ныне поддерживается организацией Сетевой компьютерный библиотечный центр (англ. Online Computer Library Center, Inc., OCLC). Это крупная некоммерческая организация, компьютеры которой соединяют более 21 тысячи библиотек в 63 странах мира. OCLC также занимается исследованиями и техническими разработками в области электронных библиотек.
Устойчивость серверов PURL близка к устойчивости серверов DNS, так что желающие немного потеряют, если захотят перейти с платного домена DNS на бесплатный субдомен в системе PURL. Дело в том, что если человек перестанет платить за домен DNS, то его домен будет удалён из баз DNS-серверов, и может даже быть перекуплен другим лицом. А вот постоянный локатор PURL никуда не денется и будет существовать пока не закроется сам проект PURL — а это, видимо, произойдёт очень нескоро (ведь OCLC — очень солидная и стабильная организация).
Схема PURL по описанным выше причинам наверняка не подойдёт для большинства крупных компаний. Но сотни библиотек, каталогов, словарей, справочников, энциклопедий и других ресурсов во всём мире уже начали пользоваться системой PURL. Система PURL отлично подходит для научных и исследовательских организаций, а также для некоммерческих фондов и общественных ассоциаций. Уже имеются среди пользователей и частные лица.