Использование ПО с открытым исходным кодом для создания Web-сайта для совместной работы: Часть 1.Введение и обзор

В данной серии статей рассматривается процесс создания и быстрого запуска относительно сложных Web-сайтов с использованием программного обеспечения с открытыми исходными кодами, включая технологии Drupal, MySQL, PHP, Apache и Eclipse.

Элистер Льюис-Боуэн, старший инженер-программист, IBM

Элистер Льюис-БоуэнЭлистер Льюис-Боуэн (Alister Lewis-Bowen) работает старшим инженером-программистом в IBM Internet Technology Group. Он занимается Интернет и web-технологиями как сотрудник IBM UK с 1993. Элистер был переведен в США для работы над Web-сайтами спортивных событий, спонсируемых IBM, а затем как старший Web-мастер ibm.com. В настоящее время он помогает создавать семантические Web-прототипы.



Стефен Эванчик, инженер-программист, IBM

Стефен ЭванчикСтефен Эванчик (Stephen Evanchik) работает инженером-программистом в IBM Internet Technology Group. Он принимает участие во многих проектах с открытыми исходными кодами, самым известным из которых является его IBM TrackPoint-драйвер в ядре Linux. Стефен в настоящее время работает с появляющимися семантическими Web-технологиями.



Луис Вайцман, старший инженер-программист, IBM

Луис ВайцманЛуис Вайцман (Louis Weitzman) работает старшим инженером-программистом в IBM Internet Technology Group. В течение 30 лет он работал на стыке дизайна и вычислений. Помогал разрабатывать XML, фрагментированную систему управления содержимым, используемую для ibm.com, а в настоящее время участвует в обеспечении процесса проектирования новых проектов.



25.12.2006

Введение

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

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

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

Существующий Web-сайт основан на репозитории документов, обеспечивающем способ обмена документами и уведомления членов сообщества о предстоящих событиях. Однако Web-сайт не способствует взаимодействию пользователей, особенно в контексте сайтов Web 2.0 с такими улучшенными возможностями как Web-журналы, дискуссионные группы, RSS-каналы и т.д. Целью группы разработчиков является стимулирование взаимодействия пользователей и обеспечение интегрированной среды публикаций для поддержки деятельности сообщества.

Проблемы

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

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

Процесс проектирования

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

Еще одним компонентом осмысления проекта является понимание информационной архитектуры. Например, благодаря пользователям мы узнали, что одними из самых важных требований является доступ к трем основным областям:

  • Информация о рабочих группах
  • Информация о прошедших и предстоящих конференциях
  • Доступ к информации обо всех членах сообщества

По обратной реакции пользователей стало также понятно, что необходима четкая, ясная и простая архитектура.

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

Наш процесс проектирования будет исследован более детально в следующей части данной серии статей.

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


Среда разработки

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

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

Для поддержки проекта и использования всех технологий в интегрированной среде разработки (IDE) мы выбрали Eclipse. Eclipse предоставляет большое количество расширений и очень тесно интегрируется с Concurrent Versions System (CVS). Eclipse-перспективы предоставляют несколько видов и редакторов, поддерживающих текущую деятельность. В нашем случае такой деятельностью являлось редактирование PHP-модулей и HTML-фрагментов. Eclipse также отслеживал локальные изменения в нашем коде. То есть, даже если вы не выполняете входящий контроль файлов в CVS, то все равно можете восстановить более ранние версии файла на вашей локальной машине. Эта функциональная возможность Eclipse гарантирует, что вы никогда не потеряете исходный код. Создав централизованную среду разработки и тестирования, мы могли оптимизировать работу с кодом и другими членами группы - время должно тратиться на написание и тестирование кода, а не на управление файлами и другим ресурсами на вашей системе.

Выбор системы управления содержимым повлиял на необходимость использования других инструментальных средств. В случае с Drupal это означало использование PHP, HTML и Cascading Style Sheets (CSS) для разработки страниц, а также MySQL для серверного хранилища.


Требования

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

  • Разделение содержимого и представления
  • Встроенное комментирование содержимого
  • Встроенное редактирование содержимого
  • Тематические дискуссионные группы
  • Управление правами доступа
  • Поиск содержимого
  • Аутентификация перед просмотром какого-либо содержимого
  • Управление сессиями, включая завершение, а также соглашение с условиями использования
  • Поддержка взаимодействия сообщества через дискуссии
  • Простой курс обучения по работе с системой управления содержимым
  • Простой интерфейс администрирования системы управления содержимым (для передачи клиенту)

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

Рисунок 1. Типичная страница с Web-сайта IBC
Рисунок 1. Типичная страница с Web-сайта IBC

Решения с открытым исходным кодом по управлению содержимым

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

В конечном итоге, мы выбрали Drupal. Однако полезно обосновать причины нашего выбора. В следующем разделе мы описали некоторые из систем-кандидатов, включая Drupal, Mambo, Typo3, Ruby on Rails, Movable Type, WordPress и TextPattern.

Сравнение решений по управлению содержимым

Drupal

"Drupal - это программное обеспечение, позволяющее индивидууму или сообществу пользователей легко публиковать, управлять и организовывать разнообразное содержимое на Web-сайте. Десятки тысяч людей и организаций использовали Drupal для настройки множества Web-сайтов различного типа, включая:
  • Web-порталы сообществ и дискуссионные сайты
  • Корпоративные Web-сайты/интранет-порталы
  • Персональные Web-сайты
  • Сайты по интересам
  • Приложения для электронной коммерции (e-commerce)
  • Каталоги ресурсов
Drupal содержит функциональные возможности, позволяющие создать системы управления содержимым, блоги, среды для совместной творческой деятельности, форумы, информационные письма, галереи изображений, системы загрузки файлов и многое другое. Drupal является программой с открытыми исходными кодами, которая использует лицензию GPL, управляется и разрабатывается сообществом тысяч пользователей и разработчиков. Drupal можно свободно загружать и использовать." Источник: CMS Matrix.

Drupal - это новичок по сравнению с другими системами управления содержимым (content management system - CMS). Однако нас поразила добротность написания, надежность, отличная расширяемость этой среды, а также, по-видимому, бурно развивающееся сообщество разработчиков, которые обеспечивают хорошую адаптацию и поддержку.

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

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

Управление сессиями встроено в функции ядра, чего не было в других CMS. Это помогло нам преодолеть в дальнейшем некоторые препятствия.

Drupal известен своей масштабируемостью (простотой расширения Web-сайта для небольшой группы пользователей до сайта корпоративного уровня). Среда обладает также возможностью "притормаживать" области сайта, которые могут вызвать потенциальные проблемы при большом трафике.

Кривая обучения "Пути Drupal" создания сайтов все еще заметна, но в значительно меньшей степени, чем в других CMS. Способность использования PHP для свободного перемещения между уровнем логики и уровнем представления (используя механизм PHP-шаблонов) была также очень заманчивой.

Мы слышали, что система управления доступом в Drupal могла бы быть более детализированной, но подумали, что сможем реализовать это, используя гибкую расширяемость Drupal. Недавно была выпущена версия Drupal 4.7 с многочисленными улучшениями по сравнению с версией 4.6.

Mambo

"Mambo Open Source является одной из самых совершенных систем управления содержимым с открытыми исходными кодами, доступных в настоящее время. Установка Mambo по умолчанию проста в настройке и обслуживании. Программа установки использует 4-шаговый интерфейс мастера установки, который позволяет установить всю систему без необходимости обладания обширными техническими знаниями. Будучи установленной, система содержит множество шаблонов, которые вы можете выбрать, и большое количество готовых к работе функций. Содержимое может быть добавлено, изменено, а для управления ним не требуются знания HTML, XML или DHTML - просто вводите ваше содержимое при помощи дружественного редактора и жмите кнопку Publish. Более продвинутые пользователи могут управлять системой в соответствии со своим уровнем знаний. Основные файлы написаны на PHP [система Mambo основана на Linux™, Apache, MySQL, P для PHP, Perl и Python (LAMP)] и могут быть легко изменены. Система устойчива, надежна и поддерживается большим сообществом пользователей и профессиональных разработчиков (в начале 2006 Mambo исполнилось 5 лет!)" Источник: CMS Matrix.

На то время Mambo являлась популярной системой и предлагала очень простую установку и притягательный, простой в использовании административный интерфейс. Обычно не принимаемая во внимание система хранения в CMS становится очень важной, если вам нужна хорошая работа системы у клиентов, нуждающихся в администрировании Web-сайта после сдачи вами проекта.

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

Кроме того, Mambo предлагает ограниченное управление сессиями, хотя и более развитое, чем в других CMS.

Метод разработки казался запутанным, а будущее такого решения не было для нас определено. Плюс ко всему, разработка Mambo пошла несколькими путями. Miro - это коммерческий продукт, а Joomla кажется новой CMS, берущей начало от Mambo. Но Mambo все еще существует, а ее текущее состояние, по-видимому, более стабильно.

Typo3

"TYPO3 - это система управления содержимым с открытыми исходными кодами уровня предприятия, выпущенная под лицензией GPL. Она работает по всему миру на более чем 122000 серверов. Приложение переведено на 43 языка и активно разрабатывалось сообществом 27000 пользователей из 60 стран. К некоторым из пользователей относятся BASF, DaimlerChrysler, EDS, Konika-Minolta, Volkswagen, UNESCO, а также множество университетов, правительственных агентств и некоммерческих организаций." Источник: CMS Matrix.

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

Генерируемая большинством из основных и дополнительных модулей разметка использовала структуру середины-конца 90-х со множеством табличных схем, незначительным использованием эффективно расположенных CSS ID и атрибутов классов, а иногда и явно некорректную структуру. Мы хотели использовать современные методики для сохранения наших итераций разработки гибкими, поэтому данная система не могла способствовать своевременной разработке. Шаблонная система тоже оказалась очень сложной по сравнению с другими решениями. Время, необходимое для освоения системы работы с темами для Web-содержимого, перевесило мощность шаблонной системы.

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

Если бы мы имели больше времени, то могли бы выбрать для работы Typo3. Но его надо было бы переписать, чтобы сделать свежим и конкурентоспособным в сравнении с другими CMS. Проблема использования стандартов, основанных на xHTML и CSS, решается в новой версии Typo3.

Ruby on Rails

"Ruby является чистым объектно-ориентированным языком программирования с чрезвычайно ясным синтаксисом, делающим программирование элегантным и интересным. Ruby успешно комбинирует концептуальную элегантность Smalltalk, простоту использования и изучения Python и прагматизм Perl. Ruby возник в Японии в начале 1990 и стал всемирно популярным в последние несколько лет после появления большего числа книг и документации на английском языке. Rails является Ruby-средой с открытыми исходными кодами для разработки использующих базы данных Web-приложений. Основные принципы Rail: меньше программирования и соглашение вместо конфигурации. Меньше программирования означает, что вы пишете меньшее число строк кода для реализации вашего приложения. Сохранение вашего кода небольшим означает более быструю разработку и меньшее число ошибок, что делает ваш код более легким для понимания, обслуживания и улучшения. Вы быстро увидите, насколько сократит Rails вашу работу над кодом.
Соглашение вместо конфигурации означает конец многословным конфигурационным XML-файлам - их в Rails нет вообще! Вместо конфигурационных файлов Rails-приложение использует несколько простых соглашений по программированию, позволяющих вычислить все через отражение и обнаружение. Код вашего приложения и работающая база данных уже содержат все, что Rails должен знать!" Источник: Rolling with Ruby on Rails.

Типичные системы управления содержимым позволяют аутентифицированным пользователям создавать формирующие содержимое страницы как часть Web-сайта. Ruby On Rails (ROR), однако, не обеспечивает эту функциональность в готовом виде. Он предоставляет интегрированную среду Web-приложения. Используя ROR, вы можете создать специализированную CMS с нуля.

На момент создания нашего проекта вокруг ROR было много слухов, источником которых являлась, главным образом, 37Signals и ее впечатляющий набор реальных интерактивных ROR-приложений, таких как Base Camp.

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

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

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

Механизмы Web-журналов

Мы рассматривали использование существующей системы публикации, которая преимущественно поддерживала создание Web-журналов. Мы раньше использовали такие системы для поддержки содержимого не журнальных Web-сайтов, переопределяя способ использования категорий и данных. Эти решения не следует ставить в один ряд с такими системами как Drupal, Mambo и Typo3. Например, управление сессиями, предоставляемое в Drupal и Typo3, обычно в них не поддерживается. Однако они действительно обеспечивают очень простой и быстрый способ создания элементарной CMS.

Отмечая, что все эти решения ориентированы на Web-журналы, остановимся на нескольких альтернативах:

Movable Type

"Movable Type является мощной и настраиваемой платформой для публикации, позволяющей пользователям создавать привлекательные, выразительные Web-журналы внутри персональной системы публикаций, которая является чрезвычайно настраиваемой и универсальной. Функционируя как серверное программное обеспечение, Movable Type была адаптирована отдельными пользователями и компаниями, которым понравилась полнота ее функциональных возможностей, открытая архитектура и хорошая библиотека сторонних подключаемых модулей, предназначенных для расширения функциональности системы. Благодаря современной базе из сотен подключаемых модулей, созданных преданными разработчиками со всего мира, можно создать полностью новый класс приложений на основе знакомой и проверенной системы Movable Type." Источник: CMS Matrix.

Являясь в настоящее время одной из наиболее популярных систем публикации web-журналов, данная Perl-реализация имеет большое сообщество сторонников и хорошую структуру поддержки. Но с недавних пор появилось препятствие - создание авторами, Six Apart, структуры оплаты для поддержки разработки этого продукта. Поскольку мы пытались создать решение с открытыми исходными кодами, данный факт в зародыше погубил идею использования Movable Type.

WordPress

"WordPress представляет собой современную, семантическую платформу персональной публикации, ориентированную на эстетику, Web-стандарты и простоту использования. Что-то необычное. WordPress одновременно и бесплатен и бесценен. Говоря проще, WordPress - это то, что вы используете, когда хотите работать с вашим программным обеспечением ведения Web-журналов, а не бороться с ним. Возможности WordPress по умолчанию могут быть сильно расширены (легко можно добавить новые функции) при помощи простой в использовании архитектуры подключаемых модулей." Источник: CMS Matrix.

На момент разработки нашего проекта WordPress развивался. Как и в Drupal, полезной является его система документирования в стиле wiki, поддерживающая это решение. Основной код ясен и прост в расширении, а пользовательский интерфейс легок в использовании.

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

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

TextPattern

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

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

На рисунке 2 показаны некоторые из требований к программному обеспечению для рассмотренных выше продуктов.

Рисунок 2. Требования к программному обеспечению для некоторых систем управления содержимым
Рисунок 2. Требования к программному обеспечению для некоторых систем управления содержимым

Решение использовать Drupal

Поскольку мы должны были сделать дизайн этого Web-сайта легким для нас и для любого, кто будет адаптировать его, ключевыми факторами была простота установки интегрированной среды и время, которое понадобилось бы для ее освоения. Хотя Ruby on Rails (ROR) заинтриговал нас, мы решили, что написание CMS с нуля займет много времени, поэтому ROR был исключен из нашего рассмотрения.

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

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

Простота настройки способа отображения содержимого была самым важным фактором - мы должны были сохранить гибкость во время итераций разработки и при любых дальнейших настройках. Так называемая "способность к использованию тем" ("themability") также была необходима для использования передового опыта в Web-дизайне: семантики xHTML, CSS и понятного дизайна.

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

Рисунок 3. Рейтинг кандидатов на основе требований
Рисунок 3. Рейтинг кандидатов на основе требований

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

Typo3 казался имеющим огромное сообщество и искомую зрелость. Однако трудность освоения Typo3 по сравнению с Drupal повергала в уныние.

Мы должны были потратить некоторое время на изучение способа работы Drupal, и среда показалась вполне осмысленной. Мы также почувствовали, что Drupal предоставлял правильную комбинацию среды и гибкости для выхода за пределы среды при необходимости завершить работу. Учитывая все это, мы решили использовать Drupal. Ландшафт CMS с открытыми исходными кодами постоянно меняется, и в дальнейшем мы будем повторно исследовать эти и любые новые продукты данной области.

Drupal в деталях

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

  • Дружественные URL, использующие функциональность Apache mod_rewrite.
  • Легкая расширяемость с использованием модульной интегрированной среды Drupal (сообщество пользователей разработало много полезных модулей, обеспечивающих такие функции как отображение таксономии, jabber-аутентификация, персональные сообщения, закладки и т.д.).
  • Персонализация среды для индивидуального содержимого и представления, основанного на предпочтениях пользователя.
  • Ролевая система полномочий, определяющая права доступа для просмотра и редактирования содержимого.
  • Содержимое полностью индексируется для поддержки операций поиска.
  • Drupal написан на верхнем уровне абстракции базы данных, поэтому среда может быть легко расширена на другие серверные базы данных.
  • Поддержка других форм содержимого, таких как голосования, тематические комментарии и дискуссии, синдикация содержимого.
  • Отделение содержимого от моделирования отображения в шаблонной системе, использующей HTML, CSS и PHP.
  • Административная поддержка ведения журналов, анализа и Web-администрирования.
  • Интерактивная справочная система.

Расширение Drupal

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

  • Создание экстранет-среды - сайта с ограниченным доступом, требующим аутентификации перед просмотром какой-либо информации.
  • Завершение сессии, основанное на взаимодействии пользователя с Web-сайтом.
  • Реализация политики условий использования сайта.
  • Расширение существующего интерфейса редактирования содержимого для предоставления "встроенного" (in-place) редактирования (например, показать авторизованному пользователю, что он может редактировать в содержимом Web-страницы, и позволить выбрать редактирование этого содержимого в этом месте и в это время).
  • Управление уведомлениями для публикации общей информации, которую должны увидеть все пользователи.
  • Управление задачами рабочих групп, текущим состоянием, элементами деятельности и т.д.
  • Управление созданием сессий конференций и повесток дня с использованием Ajax в интерфейсе администрирования.
  • Расширенный вид и интерфейс администрирования для информации о членах и поиск этой информации.
  • Дополнительные блоки информации, показываемые как вкладыши, для отображения контекстно-зависимых данных на основе роли пользователя и данных, которые ему принадлежат или которые он создает.
  • Еженедельный информационный дайджест, направляемый по электронной почте участникам, интересующимся специфической областью содержимого.

Многие из этих расширений обсуждаются подробно в соответствующих статьях данной серии.

Мы разработали наш Web-сайт в Drupal 4.6, но сейчас доступен Drupal 4.7. Данная серия статей будет базироваться на рассмотрении реализации версии 4.7.


Другие интегрированные системы управления содержимым

Существует множество доступных систем управления содержимым. Вы должны оценить каждую относительно ваших собственных требований. В данной статье вы узнали о преимуществах и недостатках:


Резюме

Данная статья открывает серию статей IBM Internet Technology Group, посвященных проектированию, разработке и развертыванию Web-сайта для совместной работы с использованием программного обеспечения с открытыми исходными кодами. В данной статье был представлен обзор проекта, наши требования и сравнение нескольких систем управления содержимым, которые мы проанализировали. Мы также объяснили наше решение по использованию Drupal и то, как мы могли бы расширить Drupal для решения наших задач.

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

  • Начало работы с Drupal.
  • Взаимодействие Drupal с другими программными средствами, такими как MySQL, PHP, CSS и Ajax.
  • Создание специализированных модулей Drupal.
  • Развертывание и настройка вашей установки.

Мы стремимся помочь вам как можно быстрее установить и запустить надежный набор средств управления содержимым, предоставляя возможность эффективно настраивать ваши Web-приложения.

Ресурсы

Научиться

Получить продукты и технологии

  • Drupal: Система управления содержимым с открытым исходным кодом.
  • MySQL: Система управления базами данных с открытым исходным кодом.
  • PHP: Web-язык для поддержки динамического содержимого.
  • PHPMyAdmin: PHP-программа, предназначенная для администрирования MySQL через Web.
  • MySQL Query Browser: Графическое клиентское приложение для работы с базами данных MySQL и выполнения запросов.
  • MySQL Administrator: GUI-программа для администрирования MySQL-сервера.
  • Apache: Web-сервер с открытым исходным кодом.
  • Eclipse: Среда разработки с открытым исходным кодом.
  • CVS: Система управления исходными кодами, интегрированная в Eclipse для отслеживания изменений кода.
  • Разработайте ваш следующий проект с использованием пробного программного обеспечения IBM, доступного для загрузки непосредственно с developerWorks.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source
ArticleID=185361
ArticleTitle=Использование ПО с открытым исходным кодом для создания Web-сайта для совместной работы: Часть 1.Введение и обзор
publish-date=12252006