Сравнительный анализ платформ для разработки аналогов проектируемой системы
Поскольку разработка информационных систем с возможностью удаленного доступа представляет собой задачу разработки веб-сайтов, а это узкоспециализированная задача, как в части выполнения процесса разработки, так и в части результатов, то наличия на рынке каких-либо готовых решений в рамках рассматриваемой задачи нет.
Поэтому рассмотрим наиболее распространенные на сегодня инструменты для построения сайтов – системы управления содержимым (CMS), которые, по сути, являются прототипами разрабатываемого в данной работе решения.
Система управления содержимым (контентом) (англ. Content management system, CMS) — компьютерная программа или система, используемая для обеспечения и организации совместного процесса создания, редактирования и управления текстовыми и мультимедиа документами (содержимым или контентом). Обычно это содержимое рассматривается как неструктурированные данные предметной задачи в противоположность структурированным данным, обычно находящимися под управлением СУБД [10].
Drupal, Joomla и WordPress — бесплатные системы управления, на основе которых можно создавать функциональные и легко управляемые сайты без серьезных финансовых затрат. Попробуем провести анализ и сравнить эти системы между собой. Мы выбрали наиболее важные аспекты, которые скорее всего заинтересуют разработчиков, планирующих построить программный продукт на базе cms/cmf решений.
Для лучшего понимания предметной области, а также для установления порядка была создана та кая методика, как классификация. Классификация — это разделение общего множества на частные по выбранным критериям, то есть попросту деление на группы по общим признакам. Классификация требуется и в области систем управления, где она должна установить четкие разграничения между системами. Классификация по степени открытости: все продукты можно разделить на две группы. В первую группу следует отнести все открытые продукты, во вторую — остальные (к остальным относятся коммерческие/проприетарные и бесплатно распространяемые продукты).
|
Теперь выделим наиболее важные для разработчика и пользователя критерии и оценим их по 10ти бальной шкале для каждой из трех популярных систем.
Критерии:
1. Безопасность — защита от взлома, стабильность работы проекта.
2. Версии — наличие обновлений, их регулярность, стабильность и проверенность временем.
3. Наличие документации, в том числе русскоязычной.
4. Русское комьюнити/поддержка — наличие со общества, возможность вступления, квалификация и активность участников
5. Борьба со спамом — защита проекта от все возможного спама
6. Интеграция с другими проектами — java, flash, форум, чат и тд.
7. Визуальный редактор — минимальный порог вхождения для управления и поддержки данной системы.
8. Работа с изображениями — встроенные средства для обработки изображений и работы с ними.
9. Шаблоны оформления — наличие базы дизайнов и тем для проекта
10. Расширенная функциональность (плагины) — объем и качество существующих наработок ведущих специалистов, расширяющих или изменяющих функциональность проекта.
11. Виджеты/блоки — возможность проекта выделять отдельные составляющие в блоки и работа с ними.
|
12. Современные технологии: трекбаки, пинги, XML-RPC, RSS
13. Кодировки — возможность работы с разными кодировками и наиболее популярной сего дня UTF-8
14. Комментирование — работа с комментариями, уровни доступа и управляемость данного функционала.
15. Экспорт/импорт данных - управление по токами информации входящей и выходя щей из проекта.
Проведем анализ каждой из CMS по соответствующим пунктам
Drupal
Безопасность. Сейчас целый ряд крупных корпоративных сайтов компаний с мировыми именами работает на Drupal, поэтому у разработчиков к безопасности серьезное отношение.
Версии. Версии выходят регулярно. Выпущена 6-я версия. Предыдущая 5-я версия по срав нению с 4.7 выглядит хорошим эволюционным этапом. Новые версии подолгу тестируются. Ядро стабильное. Ошибки в востребованных модулях обычно исправляются оперативно.
Русская документация. Несмотря на то, что русское сообщество занимается переводом документации на Drupal, белых пятен еще много. Ситуация отчасти компенсируется самописными статьями и руководства ми. Документация на модули по большей части не переведена.
Русское комьюнити/поддержка. Русское сообщество развивается, причем достаточно бур но, поскольку в последнее время о Drupal много говорят в русском интернете. Есть люди разбирающиеся в архитектуре. Широкая поддержка на форуме. В целом сообщество открытое и дружелюбное.
Борьба со спамом. Широкий выбор всевозможных решений от механического до аналитического фильтра посетителей.
Интеграция с форумом. Базовый пакет Drupal содержит достаточно функциональный форум, который подойдет для организации небольших сообществ. Для организации больших сообществ он тоже, впрочем, подойдет— на форуме drupal.org сейчас более 320 000 сообщений.
|
Есть модераторы, группы пользователей с разными пра вами доступа, извещения по email, аватары, подписи, RSS. Преимущество встроенного форума— единая база пользователей, которую используют остальные части сайта. Есть возможность интеграции с PHPBB.
Визуальный редактор. В Drupal можно встроить TinyMCE или FCKEditor. И тот и другой гибко настраиваются. Оба являются мощными средствами. В TinyMCE, например, можно работать с таблицами, добавляя и удаляя строки и столбы и объединяя ячейки, может фильтровать скопированные из Word’а тексты от избыточных тегов.
Работа с изображениями. Поддерживается изменение размеров картинки при за грузке и генерация изображений preview.
Шаблоны оформления. Движок шаблонов — сильная сторона Drupal. Этот компонент добротно спроектирован, поэтому разобраться с интеграцией своих шаблонов сможет начинающий PHP-программист. Вообще Drupal предоставляет целый букет возможностей по управлению темами: можно настраивать цвета разных элементов прямо из админ-интерфейса.
Расширенная функциональность (плагины). Сейчас в официальном репозитории хранится под тысячу бесплатных модулей. Среди прочих есть решение для электронной коммерции, CRM-система, wiki-движок. Еще отмечу модули Views и CCK, которые дают полное право именоваться CMF, а не CMS. CCK (Content Construction Kit), к примеру, позволяет при по мощи графического интерфейса описывать объекты предметной области в базе данных и сразу же создавать формы для управления ими.
Виджеты/блоки. В Drupal это называется «блоки». Их можно располагать в разных областях страниц в зависимости от возможностей шаблона. В каждой области блоки можно сортировать для управления порядком вывода. Изначально областей пять— шапка, центральная, левая и правая колонки, подвал. Блоки можно показывать не на всех страницах.
Современные «фишки»: трекбаки, пинги, XML-RPC, RSS. Друпал популярен в мире, поэтому все инновационные решения быстро реализуются. В базовом пакете есть возможность ведения блога посредствам блогового клиента. Есть модуль, пингующий специальные каталоги Drupal-сайтов.
Кодировки. Drupal работает на UTF-8. Каких-то забытых строковых функций, не работающих с UTF-8 не замечено. Некоторые хостеры по старинке отдают страницы в cp1251, но это легко чинится. Проблемы с MySQL тоже обычно решаются одной строчкой кода.
Комментирование. Комментарии в блогах могут быть и «плоскими» («flat») и древовидными («treaded»). Всё это находится в базовом пакете. Извещения по email делаются внешним модулем.
Экспорт/импорт данных. Для Друпала написано много разных конвертеров, в основном связанных с форумными миграциями. Любые RSS по токи. Экспорта в RDF или CSV, XML и SQL.
Joomla
Безопасность. Безопасность самого проекта находится на вы соком уровне. Что же касается безопасности сторонних расширений, то тут все не так гладко. Действительно сильных расширений мало, но они есть.
Версии. С наличием новых версий у Joomla стабильная постоянность. Версию 1.0.13 можно смело считать очень-очень стабильной и безопасной. Новые версии выходят нерегулярно, но со временем максимально дорабатываются.
Русская документация. Русскоязычной документации много. Причем она не ограничивается переводом официальной помощи, а также снабжена большими библиотеками авторских статей.
Русское комьюнити/поддержка. Существует два различных сообщества, ведущих свои форумы и сайты поддержки. Наличие конкуренции подталкивает команды к качеству разработки.
Борьба со спамом. Борьба со спамом в интернете на данный момент ведется только в одном месте— комментарии к публикациям.
Интеграция с форумом. Вместе с Joomla не поставляется компонента форума, однако на данный момент самым оптимальным вари антом создания встроенного форума является FireBoard и его русская редакция от Adeptus'а. Что же касается интеграций— они существуют. Самой распространенной является связка Joomla-SMF, под которую есть не одна интеграция, даже коммерческая.
Визуальный редактор. Таковых под нее множество: в основном это портированные и самые распространенные редакторы. Однако самым удобным и хорошим из бесплатных является редактор JCE, разработанный специально для Joomla (а изначально еще для Mambo, тогда он назывался MosCE), способный составить очень хорошую альтернативу плат ному WysiwygPro.
Работа с изображениями. Существует три типа расширений - компонент, модули и мамботы. Причем каждый тип расширений позволяет решать свои типы задач, что позволяет добавлять фактически любой новый функционал не залезая в "ядро". (extensions.joomla.org).
Шаблоны оформления. Joomla ветки 1.0.х не поддерживает шаблоны. Конечно, в ней есть общий и большой шаблон, позволяющий на PHP создавать вполне замысловатые структуры общей структуры сайта и расположения модулей, но вот шаблонизации отдельных элементов нет, и все ограничивается примением CSS
Расширенная функциональность (плагины). Их существует несколько видов, есть специальная система установки, позволяющая при помощи xml-файла описывать все действия необходимые для совершения при создании записи о расширении (например, SQL-запросы, копируемые файлы или действия выполняемые сразу после установки, которые нельзя вы полнить автоматически).
Виджеты/блоки. Отсутствует.
Современные «фишки»: трекбаки, пинги, XML-RPC, RSS
Joomla это CMS, и говорить о внедрении таких вещей можно только на уровне сторонних компонентов.
Кодировки. Все проблемы с русской версий в кодировке CP1251 уже давно решены и на не слишком высоких версиях MySQL проблем почти не вызывают, нужно лишь по читать документацию. Система сама выбирает нужную конфигурацию подключения в зависимости от версии MySQL. С аяксом все сложно. Комментирование. Компонентов комментариев много. Стабильных решений не много, ожидается jComments от русского разработчика, которая все поставит на свои места.
Экспорт/импорт данных. Не предусмотрен. Исключительно sql запросами.
Wordpress
Безопасность. WordPress, по сравнению с другими бесплатными движками является довольно хорошо защищённой платформой. Но существуют уязвимости, которые могут повлиять на безопасность WordPress любой версии.
Версии. Хотя официально и заявлено, что версии WordPress будут выходить по графику, на самом деле этого не происходит. Если обнаруживается какая-либо серьезная «дыра», то разработчики опреративно выпускают обновление, поэтому график версий сбивается.
Русская документация. WordPress обладает очень большой документацией, но только на английском языке. Составлена она грамотно и практически не требует особого знания языка. Документация построена таким об разом, что позволяет довольно быстро найти нужный ответ.
Русское комьюнити/поддержка. У русского WordPress'а есть два официальных сайта. Поддержка пользователей осуществляется через форумы добровольцамими. Существует много блогов, где их авторы выкладывают и делятся самыми разными находками и решениями по WordPress
Борьба со спамом. Широкий выбор всевозможных средств борьбы. Установка большинства плагинов антиспама очень проста, зачатую достаточно только его активировать в админ-панели (например, популярная SpamKarma). В целом же плагинов для антиспама больше семидесяти.
Интеграция с форумом. Для WordPress'а разработан и рекомендуется форум BBPress (есть и руссификация), который полностью интегрируется в блог. Правда, возможности у этого форум более чем скромные. На официальном сайте WordPress'а используется именно этот форум. Также существуют плагины, которые позволяют частично интегрировать некоторые популярные форумы в блог. Для этого требуются хорошие знания программирования, и при этом, все равно стопроцентной интеграции не получится— все-таки это разные системы.
Визуальный редактор. Стандартно в WordPress'е используется немного урезанный TinyMCE и простой текстовый редактор (переключение между ними «на лету»). Нужно отметить, что в WordPress'е есть возможность сторонним плагинам добавлять кнопки в редактор. Таким образом можно например получить функции для добавления видео, аудио и т.д.
Работа с изображениями. В WordPress'е вполне удобно можно добавлять картинки в редактор. Автоматически будет сделана миниатюра. То есть расчет на то, что бы с этой задачей справился неопытный пользователь.
Шаблоны оформления. Для WordPress'а созданы тысячи шаблонов и многие из них выполнены на очень хорошем дизайнерском уровне. Устройство WordPress таково, что под него несложно переделать, скажем, html-шаблон. В шаблонах испольуются обычные PHP-функции, поэтому никаких сложностей с изучением т.н. языков шаблонов нет. По созданию шаблонов существует довольно много статей, даже есть он-лайн генератор. Готовые шаблоны достаточно загрузить в отдельный каталог и после этого в админ-панели выбрать понравившийся. Существует также возможность переключать шаблоны и посетителями.
Расширенная функциональность (плагины). WordPress можно расширить за счет плагинов— это различные php-скрипты, которые автоматически подключаются к основному «ядру». Таким образом можно не просто добавить нужную функциональность, но и изменить уже существующую. Плагинов для WordPress написано несколько тысяч (только на одном wp-plugins.net— 2568, но думаю, что целом цифру можно удвоить), поэтому можно найти плагин практически под любые нужды.
Виджеты/блоки. Полноценная поддержка виджетов появилась только в версии 2.2. До этого нужно было устанавливать отдельный плагин. Внутренняя реализация виджетов такова, что с их можно использовать для вывода какого-либо плагина или своей функции.
Современные «фишки»: трекбаки, пинги, XML-RPC, RSS. Трекбаки, пинги поддерживаются уже давно. Причем для их использования не нужно вообще никаких дополнительных действий: все работает на уровне «движка». Что касается XML-RPC, то WordPress поддерживает сразу несколько API, поэтому добавлять/редактировать записи в WordPress можно с многих программ блог-клиентов или он-лайн, например с помощью Google-Docs.
WordPress полностью поддерживает RSS и Atom. Можно подписаться на последние записи блога, определенной рубрики, комментарии или все комментарии. С помощью отдельного плагина можно сделать автоматическую переадресацию RSS-ленты блога на feedburner.com.
Кодировки. В самом WordPress'е есть возможность установить любую кодировку. Главное, что бы кодировка базы данных совпадала с кодировкой блога. Правда, начиная с версии 2.1 WordPress должен работать в UTF-8. Это напрямую связано с использованием AJAX. Поэтому для русскоязычных пользователей основная проблема состоит только в том, что на серверах часто стоит CP1251. Сейчас можно довольно уверенно сказать, что особых проблем с кодировками в WordPress'е нет.
Комментирование. Для любой записи можно разрешить или запретить комментирование. При помощи отдельных плагинов можно сделать древовидные комментарии, а также разбить отображение комментариев по страницам. Есть также плагин (работает на AJAX), который позволяет в течение некоторого времени редактировать посетителю свой комментарий.
Экспорт/импорт данных. WordPress позволяет экспортировать записи и комментарии блога в XML-файл. Можно экспортировать записи отдельного автора. Для им порта записей в WordPress можно воспользоваться 9 способами. Так же в RSS и свой XML-формат.