Бесплатная CMS  - Limbo CMS (система управления сайтом)
Главная

Навигация
Сайт
Каталог
Материалы сайта

RSS

Что такое CMS Limbo?

Limbo (Lite Mambo) это бесплатная CMS, компактная и быстрая система управления контентом небольшого динамичного сайта без использования MySQL. Limbo - основан на оригинальном движке, который может использовать в качестве БД как MySQL, так и текстовые файлы. Причем в режиме MySQL он работает гораздо быстрее самой Mambo !!! Размер дистрибутива - 325 Кб !!! Админка внешне похожа на Mambo 4.5.1, также есть визуальный (WYSIWYG) редактор TinyMCE. Загрузить малютку можно отсюда. Редактор TinyMCE - здесь [280Кб].

Анатомия систем управления контентом Версия для печати
28.08.2005 11452 Опубликовал: Serebro

Аббревиатура CMS означает Content Management System или система управления контентом (хотя само сокращение имеет и другие толкования, в зависимости от конкретной отрасли ИТ). С одной стороны, эти слова очень распространены, десятки и сотни компаний производят и продают такие системы, миллионы веб-сайтов построены на какой-то CMS. Но с другой - никто пока так и не смог дать четкого определения такой системы, даже сами разработчики вкладывают в это понятие разный смысл и в соответствии со своими представлениями разрабатывают решения. Так что же все-таки представляют собой CMS, именно в своей сути? Попробуем разобраться.

Если исходить из самого названия, то все просто - это система, предназначенная для облегчения создания, редактирования, публикации и управления доступом к контенту (информации в цифровой форме) на веб-сайте. Но даже само понятие контент тут неоднозначно. С него-то и начнем.

Итак, контент может быть: статическим текстовым (обычные материалы в HTML, например статьи, книги) плюс сопутствующая графика и динамическим (например, новости или посты в форуме либо гостевой книге - тоже контент, но создаваемый пользователями и изменяющийся во времени). Сюда же отнесем и графику, к примеру онлайновые коллекции картинок. Второй тип контента - мультимедийный, статический (к примеру, коллекция записей исполнителя в формате MP3, видеоролики или flash-мультфильмы) или динамический (интернет-радио, аудио- и видеофайлы в режиме потокового вещания). И третий тип контента - файловый, или бинарный. Это могут быть любые файлы, предназначенные для загрузки пользователями - дистрибутивы программ, электронные документы и книги (PDF, RTF, Word) и тому подобное.

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

Фактически на большинстве веб-сайтов используется некоторый набор, комбинация из разных видов контента, поэтому поддерживающая его CMS-система должна, по сути, включать в себя несколько "мини-CMS" для каждого вида размещаемой информации. И в принципе так оно сейчас и есть. Некоторые производители или разработчики сразу позиционируют свои продукты как системы, предназначенные главным образом для работы с конкретными данными. Для создания электронных библиотек одни системы, для новостных ресурсов - другие, для корпоративных веб-сайтов - третьи, электронные магазины используют свои специфические системы, а интернет-радиостанции вообще строятся на основе совершенно нетипичных решений (как программных, так зачастую и аппаратных).

А теперь вспомним еще одно слово, имеющее очень много разнотипных значений, которое у всех на устах, но мало кто в точности понимает, что оно значит, - "сервис". Сервисом вообще, применительно к системам управления контентом веб-сайтов, мы будем называть скрипт, модуль или другую физическую или логическую часть программного обеспечения веб-сайта, которая может принимать данные, каким-то образом их перерабатывать (кодировать, сохранять, считывать, изменять и т. д.) и возвращать вызвавшему объекту (хотя это необязательно).

Современная CMS должна быть полностью модульной. Этот тезис даже не обсуждается, ведь такие системы должны быть гибкими и позволять полностью себя конфигурировать под конкретные нужды каждого проекта. Каждый модуль, ну или почти каждый, можно считать сервисом. Но и модуль модулю рознь, как же их можно классифицировать? Попробуем.

  • Базовые системные сервисы (модули). Эти сервисы полностью внутренние и не имеют никакого интерфейса или имеют только административный интерфейс. Они обеспечивают работу других модулей и составляют ядро всей CMS. Например, модуль ADODB для абстрагирования от конкретной базы данных является полностью служебным модулем, который работает на самом низком уровне системы и имеет только программные интерфейсы с другими частями CMS.

  • Статические контентные сервисы. Это такие сервисы, которые обеспечивают работу со статическим контентом, например модуль, выводящий статьи. Такие сервисы, с одной стороны, взаимодействуют с другими модулями внутри CMS, с другой - имеют визуальный интерфейс, "лицо", которое обращено к пользователю.

  • Интерактивные сервисы. Например, гостевая книга, форум или другие подобные сервисы, которые предоставляют пользователям возможность взаимодействовать с системой. Фактически это как раз полноценные сервисы, так как предоставляют в явном виде некоторую услугу пользователю.

  • Административные сервисы - это специализированные сервисы, которые представляют администратору удобные возможности по управлению самой CMS, отдельными модулями (другими сервисами) и сервером в целом. Например, phpMyAdmin - это административный сервис, хотя сам по себе это также целый набор отдельных модулей со сложной логикой взаимодействия.

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

Да, сразу вопрос - почему какие-то "сервисы", а не модули, раз мы уже выяснили, что это в большинстве случаев одинаковые вещи. Потому что "модуль" - это термин из технической области, он ничего не говорит о предназначении конкретной части системы, а ведь веб-сайт (и CMS, по сути) не просто технические системы, а в первую очередь системы, предназначенные для оказания некоторых услуг пользователю - предоставление информации, обработка запросов и т. д. Поэтому мы придерживаемся термина "сервис", который достаточно популярен сейчас в мире ИТ-технологий. Думаю, вы встречали аббревиатуру SOA - сервис-ориентированная архитектура. CMS как раз и является системой, архитектура которой ориентирована на одну задачу - предоставление некоторых информационных сервисов пользователю. Когда речь идет о технической стороне, больше о конкретном коде и скриптах - тогда уместен термин "модуль", когда же говорим об общей структуре и архитектуре, о взаимодействии пользователей и веб-сайта - тогда систему лучше описывать в терминах сервисов.

А вот сейчас мы подходим к сути всего этого обзора. Все началось с того, что знакомые из одной веб-студии пытались выбрать, что же лучше - купить готовую CMS (довольно дорогую) или разрабатывать свою. Я же наставал на варианте использования одной или нескольких существующих систем Open Source или, если речь все же идет о собственной системе, на создании ее как набора готовых модулей (сервисов), используя уже существующие свободные скрипты для реализации каждого модуля. То есть не писать заново все свои модули, а собирать "из кирпичиков" готовую CMS, используя лучшие скрипты из существующих, в крайних случаях дописывая свои. А основные силы сконцентрировать именно на обеспечении взаимодействия между этими модулями, на доводке и подгонке их к потребностям конкретного веб-сайта.

Такой подход очевиден и логичен - есть множество модулей, которые уже десятки раз реализованы и проверены на тысячах веб-сайтов, над которыми трудятся уже годами коллективы разработчиков и тестеров со всего света. И в то же время такие модули достаточно сложные, а их написание и тестирование с нуля займет непомерно много времени и сил даже у команды высококлассных программистов. Например, почти любому веб-сайту необходим форум для общения пользователей. И что, писать свой форум с нуля? Вряд ли это лучшее решение - ведь в Сети есть множество отлично зарекомендовавших себя движков форумов, на любом языке, для любой платформы, под любой лицензией. PhpBB, vBB, UPB, PunBB, WowBB, Invision Power Board (IPB), Celeste Bulletin Board 2004, MyPHP Forum и еще десятки других. Точно такая же картина будет и с любым или почти любым другим модулем - редко когда у сообщества Open Source нет достойного продукта. Но если его нет, то можно попробовать воспользоваться и платными аналогами, многие зарубежные компании продают очень неплохие скрипты, которые часто реализуют такие вещи для Веба, что иногда задумываешься - "а как ЭТО и ТАК можно реализовать?", например модули для реализации файловых менеджеров, электронных магазинов и каталогов. Единственный достойный ответ Open Source - osCommerce - часто очень тяжеловесный и включает много ненужных функций, но в полной конфигурации, со всеми модулями реализует почти идеальный интернет-магазин.

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

Да, рассматривая модули CMS, необходимо заметить, что есть ряд модулей, которые выходят за рамки одной системы и, скорее, относятся к платформе веб-сервера, но тем не менее очень нужны и должны быть включены в CMS. Это, к примеру, модули для ускорения выполнения скриптов (PHP-акселераторы), кеширования страниц, почтовая система.

Плюсом такого подхода является то, что отдельные компоненты определяются исходя из потребностей конкретного проекта (веб-сайта) и выбираются из перечня скриптов, которые уже успели зарекомендовать себя на десятках других сайтов. Таким образом можно добавить в систему функциональность, которая просто не предусмотрена ни одной из существующих CMS, ни свободных, ни коммерческих. Да и по стоимости такое решение, скорее всего, будет выгоднее, так как большинство компонентов распространяются под лицензией GNU GPL.

Конечно, есть и минусы - например, сложность интеграции некоторых частей, часто разобраться в коде некоторых модулей очень нелегко, учитывая разную идеологию построения. Но большинство трудностей чисто технические и преодолеваются правильным проектированием и подбором модулей.

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

Задача интересная, хотя и очень сложная, так как только список необходимых модулей для такой идеальной системы занял больше 50 пунктов, а это значит, что для каждого модуля необходимо рассмотреть и сравнить три-пять лучших решений. Ну а сначала мы сделали краткий обзор наиболее популярных CMS-систем, чтобы выяснить, не создал ли кто-то уже идеальную CMS, а заодно - могут ли Open Source составить реальную конкуренцию коммерческим (и очень дорогим) системам.



[классификация CMS и рассуждения об архитектуре]
материал подготовил: Александр Лозовюк
23.03.2005

English
Switch to English...
BabelFish.AltaVista.com auto-translate
Скачать Limbo
Ваше мнение?
Что вам мешает использовать Limbo в своих проекта
Безопасность
Недостаток компонентов/модулей
Слабая техподдержка
Плохой форум
Плохие отзывы о Limbo
Недостаток документации


Результаты