WURFL

Набор интерфейсов прикладного программирования

WURFL ( Wireless Universal R esource F i L e) — это набор фирменных интерфейсов прикладного программирования (API) и конфигурационный файл XML , содержащий информацию о возможностях и функциях устройств для различных мобильных устройств, ориентированных на обнаружение мобильных устройств. [1] [ 2] До версии 2.2 WURFL выпускался под лицензией «open source / public domain». [3] До версии 2.2 информация об устройствах предоставлялась разработчиками по всему миру, и WURFL часто обновлялся, отражая появление на рынке новых беспроводных устройств. В июне 2011 года основатель проекта WURFL Лука Пассани и Стив Камерман, автор Tera-WURFL, популярного PHP WURFL API, основали ScientiaMobile, Inc. для предоставления поддержки и услуг по обнаружению коммерческих мобильных устройств с использованием WURFL. [4] По состоянию на 30 августа 2011 года API ScientiaMobile WURFL лицензируются по модели двойной лицензии , используя лицензию AGPL для некоммерческого использования и фирменную коммерческую лицензию. Текущая версия самой базы данных WURFL больше не является открытой.

Подходы к решению

Было несколько подходов к решению этой проблемы, включая разработку очень примитивного контента и надежду на то, что он будет работать на различных устройствах, ограничение поддержки небольшим подмножеством устройств или полный обход решения на основе браузера и разработку клиентского приложения Java ME или BREW .

WURFL решает эту проблему, позволяя разрабатывать страницы контента с использованием абстракций элементов страницы (например, кнопок, ссылок и текстовых полей). Во время выполнения они преобразуются в соответствующие, определенные типы разметки для каждого устройства. Кроме того, разработчик может указать другие решения по контенту, которые будут приниматься во время выполнения на основе специфических возможностей и функций устройства (все они есть в WURFL).

Облако WURFL

В марте 2012 года ScientiaMobile объявила о запуске WURFL Cloud. [5] Хотя WURFL Cloud является платной услугой, для любителей и микрокомпаний доступно бесплатное предложение для использования на мобильных сайтах с ограниченным трафиком. [6] В настоящее время WURFL Cloud поддерживает Java, Microsoft .NET, PHP, Ruby, Python, Node.js и языки программирования Perl [7] [8]

WURFL и Apache, NGINX, Varnish Cache и HAProxy

В октябре 2012 года ScientiaMobile объявила о доступности C++ API, модуля Apache , модуля NGINX и модуля Varnish Cache . [9] Позже в ноябре 2016 года ScientiaMobile предоставила модуль для балансировщика нагрузки HAProxy . [10] В отличие от других API WURFL, C++ API и модули распространяются исключительно на коммерческой основе. Несколько популярных дистрибутивов Linux поддерживаются через пакеты RPM и DEB . [11]

WURFL.io

В 2014 году был запущен WURFL.io. WURFL.io представляет некоммерческие продукты и услуги от ScientiaMobile:

  • WURFL.js: служба обнаружения устройств JavaScript, которая делает обнаруженные на стороне сервера свойства (возможности WURFL) доступными для JavaScript на веб-страницах. [12]
  • ImageEngine: CDN изображений на основе WURFL для оптимизации доставки изображений в Интернете. [13]
  • Отчет MOVR (Mobile OverView Report) предоставляет последние данные по мобильной и веб-статистике.

WALL, Беспроводная библиотека абстракций

WALL (Wireless Abstraction Library от Luca Passani) — это библиотека тегов JSP , которая позволяет разработчику создавать мобильные страницы, похожие на обычный HTML, при этом доставляя WML , C-HTML и XHTML Mobile Profile на устройство, с которого исходит HTTP-запрос , в зависимости от фактических возможностей самого устройства. [14] Возможности устройства запрашиваются динамически с помощью API WURFL. Также доступен порт WALL для PHP (называемый WALL4PHP).

Поддерживаемые реализации

В настоящее время WURFL поддерживается следующими способами.

  • Ява (через WALL)
  • PHP (через Tera-WURFL (на основе базы данных), новый WURFL PHP API и WALL4PHP)
  • .NET Framework (через Visual Basic / C# / любой API языка .NET и Somms.NWURFL(C#))
  • Перл
  • Рубин
  • Python (через Python Tools)
  • XSLT
  • С++
  • Apache Мобильный Фильтр

API Tera-WURFL на основе PHP/MySQL поставляется с удаленным веб-сервисом, который позволяет запрашивать WURFL с любого языка, поддерживающего веб-сервисы XML [15] , и включает в себя готовые клиенты для следующих языков:

  • PHP
  • Перл
  • Питон
  • JavaScript
  • ActionScript 3 (Flash/Flex/AIR/ECMAScript)

Обновление лицензии

Обновление WURFL от 29 августа 2011 г. включало новый набор условий лицензирования. Эти условия устанавливают ряд лицензий, в соответствии с которыми может использоваться WURFL. Бесплатная версия лицензии не допускает производных работ и предотвращает прямой доступ к файлу wurfl.xml. В результате пункта «без производных» пользователям больше не разрешается добавлять новые возможности устройств в файл WURFL ни напрямую, ни посредством отправки «патчей». Для использования сторонних API с репозиторием WURFL требуется коммерческая лицензия.

3 января 2012 года ScientiaMobile подала уведомление о снятии DMCA против базы данных устройств с открытым исходным кодом OpenDDR, содержащей данные из предыдущей версии WURFL. Согласно OpenDDR, эти данные были доступны по GPL. [16]

22 марта 2012 года Мэтью Вейер О'Финни объявил, что Zend Framework прекратит поддержку WURFL, начиная с версии 1.12. [17] Это произошло из-за изменения лицензии, которое сделало ее несовместимой с лицензированием Zend Framework [ 18], поскольку новое лицензирование теперь требует, чтобы вы «открыли исходный код вашего веб-сайта, независимо от того, можете ли вы изменять API WURFL или нет». [19]

Смотрите также

Ссылки

  1. ^ Hatem (11 февраля 2007 г.). "WURFL, Wireless Universal Resource File". phpmagazine.net . Получено 29 декабря 2011 г. WURFL — проект с открытым исходным кодом, целью которого является сбор информации о конфигурациях, возможностях и функциях беспроводных устройств. [...] Файл имеет формат XML [...]
  2. ^ Вонг, Ричард (4 марта 2010 г.). «В мобильных устройствах фрагментация — это навсегда. Смиритесь с этим». TechCrunch . Получено 29 декабря 2011 г. . WURFL — файл универсальных ресурсов беспроводной связи — проект с открытым исходным кодом; «файл конфигурации, содержащий всю информацию о каждом беспроводном устройстве на земле»
  3. ^ "Новый снимок WURFL доступен, НО С ВАЖНЫМИ ИЗМЕНЕНИЯМИ". 30 августа 2011 г. Архивировано из оригинала 15 июля 2012 г. Получено 7 сентября 2013 г.
  4. Кришна Гуда, генеральный директор ScientiaMobile, Inc. «WURFL Team Launches ScientiaMobile», 6 июня 2011 г., дата обращения 27 июня 2011 г.
  5. ^ Пассани, Лука (13 марта 2012 г.). "Слышите! Слышите! WURFL Cloud наконец-то здесь!". ScientiaMobile . Получено 25 марта 2012 г. Многие спрашивали о доступности WURFL Cloud на протяжении многих лет. Появление ScientiaMobile сделало это возможным.
  6. ^ ScientiaMobile, Inc. (19 марта 2012 г.). "ScientiaMobile запускает обнаружение мобильных устройств WURFL в облаке". PRWeb . Получено 25 марта 2012 г. ScientiaMobile всегда уделяла особое внимание сообществу разработчиков. Тот факт, что мы поддерживаем бесплатную опцию для определенных классов пользователей, является доказательством этого. В то же время, наш опыт в корпоративном мире позволил нам предоставить решение, которое "подойдет" и крупным компаниям.
  7. ^ ScientiaMobile, Inc. (17 октября 2012 г.). "ScientiaMobile запускает Perl Client для WURFL Cloud". PRWeb. Архивировано из оригинала 5 апреля 2014 г.
  8. ^ "WURFL Cloud Getting Started". ScientiaMobile, Inc.
  9. ^ Пассани, Лука (2 октября 2012 г.). "HTTP и мобильные устройства: отсутствующий заголовок". ScientiaMobile . Получено 20 октября 2012 г. . Очевидными вариантами использования являются обогащение HTTP-запроса или переменных среды новыми заголовками и значениями. Это позволяет организациям "внедрять" значение WURFL, не нарушая (или даже не переразвертывая) существующие сайты и системы.
  10. ^ "Включить модуль обнаружения устройств Scientamobile WURFL". 4 ноября 2016 г. Получено 29 ноября 2021 г.
  11. ^ ScientiaMobile, Inc (2 октября 2012 г.). "ScientiaMobile FAQ: C++ NGINX Varnish Apache". ScientiaMobile . Получено 20 октября 2012 г. В отличие от API Java, .NET, PHP и DB, API и модули C++ не выпускаются под двойной лицензией, а исключительно под коммерческой лицензией. Заинтересованные стороны могут узнать о лицензировании обычным способом.
  12. ^ «Обнаружение на стороне сервера с помощью JavaScript». smashingmagazine.com. Июль 2014 г.
  13. ^ "ImageEngine, быстрая сеть доставки изображений". ImageEngine.io . ScientiaMobile.
  14. ^ "WURFL и WALL". palowireless.com . Получено 29 декабря 2011 г. Wireless Abstraction Library (называемая WALL) — это библиотека тегов Java, которая предоставляет вам универсальную разметку для беспроводных устройств.
  15. ^ Удалённый веб-сервис. Tera-WURFL. Получено 23.05.2014.
  16. ^ Иден, Теренс (2012-01-06). "WURFL и авторское право на базу данных". Блог Теренса Идена . Получено 2023-08-14 .
  17. ^ ...в связи с изменением условий лицензирования проекта WURFL (бесплатная версия теперь называется AGPL) мы удаляем адаптер WURFL из Zend_Http_UserAgent...
  18. ^ Zend Framework. Framework.zend.com. Получено 23.05.2014.
  19. ^ Лицензия AGPL требует, чтобы вы открыли полный исходный код вашего веб-сайта, независимо от того, можете ли вы изменять API WURFL или нет.
  • ScientiaMobile
  • WURFL.io
  • ImageEngine.io
  • WURFL на SourceForge (сайт 1)
  • Файл беспроводных универсальных ресурсов на SourceForge (сайт 2)
  • WURFL на GitHub
Взято с "https://en.wikipedia.org/w/index.php?title=WURFL&oldid=1268123800"