В очередном обзоре СПО рассмотрим новинки традиционного программного обеспечения, предназначенного для Веба: фреймворки Ruby on Rails и CorneliOS, веб-приложение Virtualmin. Но также познакомимся с примером и нетрадиционного использования веб-стандартов на примере библиотеки GTK+ 3, способной создавать интерфейсы программ с использованием HTML5.
Ruby on Rails 4.0
Весь этот обзор целиком получился посвящённым веб-технологиям, хотя специально такой задачи не ставилось. Просто сейчас любая деятельность на компьютере процентов на семьдесят прямо или косвенно связана с WWW. Ныне даже традиционные офисные и домашние программы становятся всё более "веб-ориентированными", не говоря уже о специализированном программном обеспечении для создания сайтов, веб-сервисов и их эксплуатации.
В прошлый раз, рассматривая новую версию языка PHP, мы говорили о наступившей эпохе веб-приложений, работающих на стороне веб-сервера и использующих браузер в качестве клиента. Характерной особенностью этого текущего периода развития Всемирной Паутины является появление множества специальных фреймворков, упрощающих процесс создания этих веб-приложений.
Но в данном случае под простотой не нужно иметь в виду лёгкую возможность даже домохозяйкам создавать с их помощью веб-сервисы. Здесь простота другого рода, позволяющая профессиональному программисту значительно увеличить скорость разработки. Что, например, хорошо демонстрирует популярный фреймворк Ruby on Rails (ROR), четвёртая версия которого официально опубликована на прошлой неделе.
Объектно-ориентированный язык программирования Ruby - не для новичков. Это совсем не PHP времён первоначального накопления веб-контента, а язык общего назначения, аналогичный Python. Обычный Ruby on Rails программист - это в большинстве случаев уже опытный разработчик, который хорошо понимает принципы веб-разработки.
Фреймворк Ruby on Rails, во-первых, упрощает проектирование структуры приложения, предлагая готовый стандартный прототип. Этот готовый каркас веб-сервиса включает стандартную структуру каталогов и рабочих файлов проекта. ROR обладает обширным набором консольных инструментов, позволяющих за считанные минуты развернуть и настроить этот каркас на хостинге, получив в браузере готовый работающий сервис с настроенным программным окружением.
Общий стандарт размещения файлов, стандарт написания кода и общие правила программирования в Ruby on Rails дают возможность любому новичку быстро сориентироваться в конкретном проекте и тут же подключится к разработке. Вхождение в проект новичков происходит очень быстро, а это важно для командной работы.
Во-вторых, Ruby on Rails снижает объём работ на низком уровне с HTML, CSS, JavaScript, а также предоставляет абстрагирование от конкретных реализаций СУБД. Программист при создании веб-сервиса может использовать один единственный язык от начала и до конца: всё, от шаблонов до бизнес-логики, пишется на Ruby. Проектирование работы приложения происходит с использованием схемы "Модель-представление-поведение" (MVC).
Дополнительно к э тому в Ruby on Rails "из коробки" входит немало согласованных между собой компонентов, которые не нужно отдельно прикручивать, как в случае, например, чистого PHP. Здесь к услугам программиста уже имеются: кеширование, локализация, валидация форм, штатная возможность гибко настраивать роутинг, вид адресов, названия основных разделов, возможность автоматизированного тестирования.
И, наконец, хорошим выбором Rails делает его открытость. Фреймворк открыт и доступен по лицензии MIT, что практически позволяет не только свободно использовать его исходный код, но и бесплатно эксплуатировать.
Четвёртая версия Ruby on Rails является эволюционной. Основная особенность ROR 4 состоит в том, что эта ветка фреймворка может работать только при наличии как минимум Ruby 1.9.3. А рекомендованной версией языка для ROR 4 является Ruby 2.0, которая вышла недавно в феврале этого года. И теперь с выходом четвертых "Рельс" практически не осталось препятствий, чтобы установить в системе по умолчанию именно этот самый Ruby 2.0.
$ rvm use 2.0.0 --default
CorneliOS 3.6
Говоря о разработках веб-приложений, несправедливо не упомянуть язык Perl, с которого и начиналось веб-программирование в Сети. До появления PHP это было самое популярное, хотя и не очень изящное средство для создания веб-страниц с динамическим контентом.
Несмотря на то, что Perl всё реже и реже рассматривается как достойный инструмент веб-разработчика, проекты на этом языке существуют - в том числе и фреймворки для создания интернет-приложений. В качестве примера можно привести оригинальный проект с открытым исходным кодом CorneliOS, который, появившись лет шесть назад, не прекращает развиваться, и в июне этого года он достиг версии 3.6.
Во-первых, CorneliOS является браузерной "облачной операционной системой". Это когда пользователю прямо в браузере предоставляется рабочая среда с кнопкой "Пуск", обоями, набором программ и "облачным" хранилищем файлов. Примером такой "Облачной ОС" можно назвать современный сервис iCloud для пользователей Apple.
Набор скриптов CorneliOS также может организовать в браузере подобие стандартного рабочего стола, где запускаются на выбор специальные веб-приложения, как в полноэкранном виде, так и в многооконном режиме.
Эти прикладные программы из набора CorneliOS являются perl-скриптами, работающими на стороне веб-сервера. В этой системе их около десятка - календарь, блокнот, почта, калькулятор, файловый менеджер и тому подобное.
Во-вторых, CorneliOS может применяться как система управления контентом (CMS), с помощью которой можно организовать свой сайт или веб-сервис с интегрированными веб-приложениями. И, надо сказать, в этом качестве CorneliOS успешно применяется, и на официальном сайте имеются примеры такого использования.
Само собой CorneliOS - это фреймворк, предоставляющий каркас для создания собственных приложений на Perl, в который включён также специальный простой язык CornelioSCRIPT, код на котором выглядит чуть менее жутко, чем стандартный код Perl. С помощью CornelioSCRIPT можно легко и быстро создавать простые приложения для этой "облачной" системы.
Virtualmin 4.01
От средств веб-разработки логично перейти к самим веб-приложениям. Примером чего является панель для управления веб-хостингом Virtualmin, обновившаяся недавно до четвёртой версии.
Панель управления хостингом является обязательной для каждого, кто приобрёл, например, выделенный сервер для сайтов. Она предназначается для удобного администрирования сервера при помощи браузерного интерфейса. Так, например, с её помощью можно создавать субдомены, устанавливать параметры баз данных и электронной почты, добавлять новые сайты и делать многое другое.
Популярным решением у хостеров является панель CPanel, которая, правда, стоит денег. Но можно без особых потерь в комфорте и функциональности обойтись панелью Virtualmin GPL, которая распространяется бесплатно, хотя и имеет платный вариант Virtualmin PRO.
Virtualmin - это, на самом деле, модуль над другим веб-приложением - Webmin, обеспечивающим всевозможный тотальный контроль над сервером. Но функционал Webmin выходит далеко за пределы нужд обычного покупателя хостинга, поэтому специально для этого приложения создано расширение Virtualmin, что в удобной форме реализует всё, что нужно простому смертному владельцу сайта - настройку виртуальных серверов, почтовых ящиков, DNS, баз данных и т.п.
Virtualmin работает на стороне веб-сервера, куда загружается и настраивается посредством специального скрипта. Поддерживаются следующие системы: CentOS, Ubuntu LTS, Red Hat Enterprise Linux, Debian.
"Broadway"
Средства веб-разработки, а также сами веб-приложения - это всё традиционные технологии. В заключение обзора рассмотрим нетрадиционное применение веб-стандартов.
Уже как два года библиотека графического интерфейса GTK+ 3, на основе которой созданы GNOME 3 и Ubuntu Unity, поддерживает специальную подсистему под названием "Broadway", которая позволяет реализовать интерфейс программ на основе GTK+ средствами HTML5. Другими словами, эта подсистема позволяет запускать такие программы, как GIMP, Gedit, силами веб-браузера. Запуск подобным образом может осуществляться как локально, так и удалённо по сети.
Но, например, в Ubuntu не включена поддержка "Broadway" по умолчанию. А я уверен, что многие хотели бы посмотреть на эту фишку в действии.
Хорошая новость состоит в том, что для Ubuntu 13.04, 12.10 и 12.04 имеется репозиторий PPA, где доступна версия библиотеки GTK+3, собранная с поддержкой "Broadway". Точнее, есть несколько репозиториев PPA, которые предоставляют такие модифицированные системные библиотеки. У меня получилось с таким:
$ sudo add-apt-repository ppa:malizor/gtk-next-broadway $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install broadwayd
При этом Unity перестала стабильно работать, поэтому заниматься этим экспериментом следует только на специальном ПК для тестов.
После обновления системных файлов следует перезагрузиться. И приложение в режиме HTML запускается в две консоли. Сначала в первом терминале вводится команда
$ broadwayd
А потом в другом терминале специальной строкой запускается сама программа, где вместо <программа> нужно подставить имя запускаемого приложения:
$ GDK_BACKEND=broadway UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0 <программа>
После чего осталось только открыть Firefox и вести следующий адрес: http://localhost:8080. Приложение будет нарисовано с использованием веб-стандартов.
Не все программы таким способом запустились, а в тех, что запустились, не все функции работали. Однако прогресс в области веб-технологий всё равно производит впечатление. На первый взгляд, такая возможность запуска программ в режиме HTML - не более чем интересный фокус. Однако уверен, этот фокус говорит о том, что привычный нам и традиционный Веб в скором времени, возможно, может очень сильно измениться.
Михаил АСТАПЧИК
Горячие темы