В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения ) |
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).
В марте 2012 года ScientiaMobile объявила о запуске WURFL Cloud. [5] Хотя WURFL Cloud является платной услугой, для любителей и микрокомпаний доступно бесплатное предложение для использования на мобильных сайтах с ограниченным трафиком. [6] В настоящее время WURFL Cloud поддерживает Java, Microsoft .NET, PHP, Ruby, Python, Node.js и языки программирования Perl [7] [8]
В октябре 2012 года ScientiaMobile объявила о доступности C++ API, модуля Apache , модуля NGINX и модуля Varnish Cache . [9] Позже в ноябре 2016 года ScientiaMobile предоставила модуль для балансировщика нагрузки HAProxy . [10] В отличие от других API WURFL, C++ API и модули распространяются исключительно на коммерческой основе. Несколько популярных дистрибутивов Linux поддерживаются через пакеты RPM и DEB . [11]
В 2014 году был запущен WURFL.io. WURFL.io представляет некоммерческие продукты и услуги от ScientiaMobile:
WALL (Wireless Abstraction Library от Luca Passani) — это библиотека тегов JSP , которая позволяет разработчику создавать мобильные страницы, похожие на обычный HTML, при этом доставляя WML , C-HTML и XHTML Mobile Profile на устройство, с которого исходит HTTP-запрос , в зависимости от фактических возможностей самого устройства. [14] Возможности устройства запрашиваются динамически с помощью API WURFL. Также доступен порт WALL для PHP (называемый WALL4PHP).
В настоящее время WURFL поддерживается следующими способами.
API Tera-WURFL на основе PHP/MySQL поставляется с удаленным веб-сервисом, который позволяет запрашивать WURFL с любого языка, поддерживающего веб-сервисы XML [15] , и включает в себя готовые клиенты для следующих языков:
Обновление 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]
— проект с открытым исходным кодом, целью которого является сбор информации о конфигурациях, возможностях и функциях беспроводных устройств. [...] Файл имеет формат XML [...]
WURFL — файл универсальных ресурсов беспроводной связи — проект с открытым исходным кодом; «файл конфигурации, содержащий всю информацию о каждом беспроводном устройстве на земле»
спрашивали о доступности WURFL Cloud на протяжении многих лет. Появление ScientiaMobile сделало это возможным.
всегда уделяла особое внимание сообществу разработчиков. Тот факт, что мы поддерживаем бесплатную опцию для определенных классов пользователей, является доказательством этого. В то же время, наш опыт в корпоративном мире позволил нам предоставить решение, которое "подойдет" и крупным компаниям.
Очевидными вариантами использования являются обогащение HTTP-запроса или переменных среды новыми заголовками и значениями. Это позволяет организациям "внедрять" значение WURFL, не нарушая (или даже не переразвертывая) существующие сайты и системы.
отличие от API Java, .NET, PHP и DB, API и модули C++ не выпускаются под двойной лицензией, а исключительно под коммерческой лицензией. Заинтересованные стороны могут узнать о лицензировании обычным способом.
Wireless Abstraction Library (называемая WALL) — это библиотека тегов Java, которая предоставляет вам универсальную разметку для беспроводных устройств.