проектирование и выбор ПО для создания веб-сайта для совместной работы
В настоящее время веб-сайты являются важнейшими составляющими бизнеса, а инструментальные средства для создания и развертывания веб-сайтов становятся все более гибкими и простыми в использовании. Однако создание сложных веб-приложений, использующих не совсем стандартные методы взаимодействия (например, блоги), не является тривиальной задачей. Очень часто каждое приложение в организации может потребовать адаптации. В данной статье мы используем вымышленную организацию International Business Council (IBC). IBC объединяет своих сотрудников и бизнес-партнеров во взаимодействующее сообщество, однако существующий веб-сайт не отвечает новым бизнес-требованиям и нуждается в модернизации. Новый, модернизированный веб-сайт должен иметь хранилище документов, дискуссионные группы, специализированные рабочие группы, планировщик конференций, описания запланированных сессий, функцию завершения сессий, а также выполнять другие задачи.
Задачей пользователей является увеличение предложений компании путем улучшения стратегических и тактических решений. Сообщество пользователей организовано вокруг основной концепции рабочих групп. Несколько раз в год члены сообщества встречаются на конференциях. На этих конференциях определяются проблемы, которые затем решаются в период между встречами. Веб-сайт используется для предоставления информации о деятельности сообщества, например, о конференциях, а также как способ мониторинга процесса выполнения задач, поставленных на встречах.
Существующий веб-сайт основан на репозитории документов, обеспечивающем способ обмена документами и уведомления членов сообщества о предстоящих событиях. Однако веб-сайт не способствует взаимодействию пользователей, особенно в контексте сайтов Web 2.0 с такими улучшенными возможностями как веб-журналы, дискуссионные группы, RSS-каналы и т.д. Целью группы разработчиков является стимулирование взаимодействия пользователей и обеспечение интегрированной среды публикаций для поддержки деятельности сообщества.
проблемы
Поскольку это будет защищенный веб-сайт, нам необходима система управления сессиями для поддержки завершения сессий и механизм подтверждения документа об условиях использования сайта, которые выполняют свои функции до того, как станет возможным получение доступа к сайту. Мы также хотим поддерживать принцип непосредственного управления в том, что касается редактирования содержимого - если есть действие по добавлению фрагмента содержимого, необходимо, чтобы элемент управления взаимодействием был помещен рядом с соответствующим содержимым.
Другие проблемы существующего веб-сайта состоят в непоследовательности визуального языка, навигации и информационной архитектуры. Содержимое часто спрятано внутри документов, помещаемых в репозиторий и нет указания того, что находится в документе. Поэтому вы должны загрузить и просмотреть его. В результате анализа группа разработчиков сделала вывод, что модель репозитория документов является ошибочной моделью для внедрения. Нам нужна система управления содержимым с намного более широкими возможностями.
процесс проектирования
Наш процесс проектирования был итеративным и протекал от анализа до создания прототипа и пробных испытаний. На самых ранних этапах мы подключили к процессу конечных пользователей при помощи опросных листов, альтернатив проектирования и прототипов различной степени готовности. Мы хотели сконцентрировать наши решения как на бизнес-целях, так и на потребностях конечных пользователей. Еще до определения функциональных требований и начала процесса разработки мы обнаружили, что чем ранее мы подключим пользователей, тем быстрее сможем понять, что было бы полезным, и какие решения являются правильными. Не прикладывая значительных усилий, мы собрали очень ценную информацию, одновременно вызвав у пользователей чувство непосредственного участия в процессе проектирования. Кроме того, мы завоевали доверие сообщества пользователей.
Еще одним компонентом осмысления проекта является понимание информационной архитектуры. Например, благодаря пользователям мы узнали, что одними из самых важных требований является доступ к трем основным областям:
- информация о рабочих группах;
- информация о прошедших и предстоящих конференциях;
- доступ к информации обо всех членах сообщества.
По обратной реакции пользователей стало также понятно, что необходима четкая, ясная и простая архитектура.
Мы определили три класса пользователей (или персонажей), приходящих на сайт: клиенты, руководители рабочих групп и администраторы. Эти персонажи определяют наш дизайн и процесс принятия решений. Изучив, какая информация представляет важность, и как она связана с основными классами пользователей, мы смогли создать архитектуру содержимого, его иерархию, способы представления и способы взаимодействия каждого класса пользователей с этой информацией. Например, информация о конференциях может содержать вопросы повестки дня или сессии, планирование этих вопросов, темы, затрагиваемые на конференции, и вопросы, решенные между конференциями.
Во время анализа начали появляться дополнительные функциональные возможности. Например, для поддержки активного сообщества мы решили разрешить дискуссии и комментарии по содержимому, поддержку контекстной обратной реакции и интерактивное взаимодействие. Новым важным требованием пользователей было использование уникального, но при этом нейтрального, бренда или визуального идентификатора. Поскольку веб-сайт предоставляет нейтральное место, куда для взаимодействия приходят самые разные пользователи, ярко выраженная визуальная связь с какой-либо компанией или окружением могла бы вызвать нежелательную реакцию.
среда разработки
Для упрощения процесса разработки мы решили использовать существующую систему управления содержимым, которая помогла бы сгенерировать своевременное решение. Большинство систем управления содержимым могло бы поддержать необходимые нам основные функции, но существовала очевидная необходимость детальной настройки. Полностью готовой реализации было недостаточно. Мы решили принять за основу большую работу, выполненную сообществом сторонников открытого исходного кода. В конечном итоге мы использовали инструментальные средства этого типа.
У нас было несколько требований к среде разработки, например, возможность вносить изменения в код и тестировать внесенные изменения автономно. После тестирования изменений мы хотели делать этот код доступным для группы разработчиков. Такой итеративный цикл разработки вынудил нас использовать удаленную систему управления версиями CVS, которая позволила синхронизироваться с членами нашей группы разработки и управлять базой исходных кодов, которую мы все могли бы использовать совместно.
Для поддержки проекта и использования всех технологий в интегрированной среде разработки (IDE) мы выбрали Eclipse. Eclipse предоставляет большое количество расширений и очень тесно интегрируется с Concurrent Versions System (CVS). Eclipse-перспективы предоставляют несколько видов и редакторов, поддерживающих текущую деятельность. В нашем случае такой деятельностью являлось редактирование PHP-модулей и HTML-фрагментов. Eclipse также отслеживал локальные изменения в нашем коде. То есть даже если вы не выполняете входящий контроль файлов в CVS, то все равно можете восстановить более ранние версии файла на вашей локальной машине. Эта функциональная возможность Eclipse гарантирует, что вы никогда не потеряете исходный код. Создав централизованную среду разработки и тестирования, мы могли оптимизировать работу с кодом и другими членами группы - время должно тратиться на написание и тестирование кода, а не на управление файлами и другим ресурсами на вашей системе.
Выбор системы управления содержимым повлиял на необходимость использования других инструментальных средств. В случае с Drupal это означало использование PHP, HTML и Cascading Style Sheets (CSS) для разработки страниц, а также MySQL для серверного хранилища.
требования
Мы определили набор требований, которые помогли нам в выборе системы управления содержимым. Если какие-либо из этих функциональных возможностей не были реализованы, мы хотели, чтобы система была способна легко расширяться для их включения. К этим требованиям относятся:
- разделение содержимого и представления;
- встроенное комментирование содержимого;
- встроенное редактирование содержимого;
- тематические дискуссионные группы;
- управление правами доступа;
- поиск содержимого;
- аутентификация перед просмотром какого-либо содержимого;
- управление сессиями, включая завершение, а также соглашение с условиями использования;
- поддержка взаимодействия сообщества через дискуссии;
- простой курс обучения работе с системой управления содержимым;
- простой интерфейс администрирования системы управления содержимым (для передачи клиенту).
решения с открытым исходным кодом для управления содержимым
Существует множество способов управления содержимым вашего веб-сайта, начиная от простого механизма веб-журналов (web log, blog), допускающих ограниченную публикацию содержимого, до полнофункциональной интегрированной прикладной системы, на основе которой вы можете создать свою собственную систему управления содержимым. При наличии большого количества вариантов в области систем с открытым исходным кодом выбрать подходящую может быть не просто.
В конечном итоге мы выбрали Drupal. Однако полезно обосновать причины нашего выбора. В следующем разделе мы описали некоторые из систем- кандидатов, включая Drupal, Mambo, Typo3, Ruby on Rails, Movable Type, WordPress и TextPattern.
Drupal
Drupal - это программное обеспечение, позволяющее индивидууму или сообществу пользователей легко публиковать, управлять и организовывать разнообразное содержимое на веб-сайте. Десятки тысяч людей и организаций использовали Drupal для настройки множества веб-сайтов различного типа, включая:
- веб-порталы сообществ и дискуссионные сайты;
- корпоративные веб-сайты/интранет-порталы;
- персональные веб-сайты;
- сайты по интересам;
- приложения для электронной коммерции (e-commerce);
- каталоги ресурсов.
Drupal содержит функциональные возможности, позволяющие создать системы управления содержимым, блоги, среды для совместной творческой деятельности, форумы, информационные письма, галереи изображений, системы загрузки файлов и многое другое. Drupal является программой с открытым исходным кодом, которая использует лицензию GPL, управляется и разрабатывается сообществом тысяч пользователей и разработчиков. Drupal можно свободно загружать и использовать.
Drupal - это новичок по сравнению с другими системами управления содержимым (Content Management Systems, CMS). Однако нас поразила добротность написания, надежность, отличная расширяемость этой среды, а также, по-видимому, бурно развивающееся сообщество разработчиков, которые обеспечивают хорошую адаптацию и поддержку.
Как и другие CMS, эта среда очень легко расширяема. Многие из нужных нам функций предоставлены в виде модулей, которые можно было легко подключить к основной функциональности нашего веб-сайта.
Интегрированная среда и шаблонная система (theming - поддержка тем) написаны полностью на PHP, то есть не нужно изучать отдельный язык тегов. Если вы хотите выйти за границы среды, это очень легко сделать (естественно, это не рекомендуется, но демонстрирует неограниченную гибкость). Управление сессиями встроено в функции ядра, чего не было в других CMS. Это помогло нам преодолеть в дальнейшем некоторые препятствия. Drupal известен своей масштабируемостью (простотой расширения веб-сайта для небольшой группы пользователей до сайта корпоративного уровня). Среда обладает также возможностью "притормаживать" области сайта, которые могут вызвать потенциальные проблемы при большом трафике. Способность использования 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 лет!).
На то время Mambo являлась популярной системой и предлагала очень простую установку и притягательный, простой в использовании административный интерфейс. Обычно не принимаемая во внимание система хранения в CMS становится очень важной, если вам нужна хорошая работа системы у клиентов, нуждающихся в администрировании веб-сайта после сдачи вами проекта.
Простая установка, казалось бы, дала нам почти все нужные функции, доступные и готовые к подключению. Однако, как и во многих 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, а также множество университетов, правительственных агентств и некоммерческих организаций.
Typo3 является чем-то очень большим. Большим приложением. Большим сообществом. Большой адаптацией. Большим списком расширенных функциональных возможностей и дополнений. Кривая обучения тоже является большой. Не удивительно, что Typo3 могла бы делать все, что нам нужно, но обнаружились другие проблемы в дополнение к сложности.
Генерируемая большинством из основных и дополнительных модулей разметка использовала структуру середины-конца 90-х со множеством табличных схем, незначительным использованием эффективно расположенных CSS ID и атрибутов классов, а иногда и явно некорректную структуру. Мы хотели использовать современные методики для сохранения наших итераций разработки гибкими, поэтому данная система не могла способствовать своевременной разработке. Шаблонная система тоже оказалась очень сложной по сравнению с другими решениями. Время, необходимое для освоения системы работы с темами для веб-содержимого, перевесило мощность шаблонной системы.
Интерфейс администратора показался неуклюжим и древним, особенно по сравнению с Mambo. Это важно, поскольку мы должны были передать заказчику функции администрирования сайта.
Если бы мы имели больше времени, то могли бы выбрать для работы Typo3. Но его надо было бы переписать, чтобы сделать свежим и
конкурентоспособным в сравнении с другими CMS. Проблема использования стандартов, основанных на xHTML и CSS, решается в новой версии Typo3.
Ruby on Rails
Ruby является чистым объектно-ориентированным языком программирования с чрезвычайно ясным синтаксисом, делающим программирование элегантным и интересным. Ruby успешно комбинирует концептуальную элегантность Smalltalk, простоту использования и изучения Python и прагматизм Perl. Ruby возник в Японии в начале 1990 и стал всемирно популярным в последние несколько лет после появления большего числа книг и документации на английском языке. Rails является Ruby-средой с открытыми исходными кодами для разработки использующих базы данных веб-приложений. Основные принципы Rail: меньше программирования и соглашение вместо конфигурации.
Меньше программирования означает, что вы пишете меньшее число строк кода для реализации вашего приложения. Сохранение вашего кода небольшим означает более быструю разработку и меньшее число ошибок, что делает ваш код более легким для понимания, обслуживания и улучшения.
Соглашение вместо конфигурации означает конец многословным конфигурационным XML-файлам - их в Rails нет вообще! Вместо конфигурационных файлов Rails-приложение использует несколько простых соглашений по программированию, позволяющих вычислить все через отражение и обнаружение. Код вашего приложения и работающая база данных уже содержат все, что Rails должен знать.
Типичные системы управления содержимым позволяют аутентифицированным пользователям создавать формирующие содержимое страницы как часть веб- сайта. Ruby On Rails (ROR), однако, не обеспечивает эту функциональность в готовом виде. Он предоставляет интегрированную среду веб-приложения. Используя ROR, вы можете создать специализированную CMS с нуля.
На момент создания нашего проекта вокруг ROR было много слухов, источником которых являлась, главным образом, 37Signals и ее впечатляющий набор реальных интерактивных ROR-приложений, таких как Base Camp.
Нам понравился способ связываний с базой данных через среду. Это помогало ускорить те повторяющиеся этапы разработки, которые связаны со столбцами базы данных.
На момент наших исследований данная интегрированная среда была несколько больше ориентирована на веб-журналы. Были также проблемы со стабильностью, но мы отметили потенциал ROR для использования в будущих проектах.
Создание специализированной CMS по-своему привлекательно. Например, при помощи какого-либо специализированного решения мы могли бы создать поддерживающий использование тем административный интерфейс. Но из-за ограничений по времени нам нужна была готовая CMS.
механизмы веб-журналов
Мы также рассматривали вариант использования системы публикации, которая преимущественно поддерживает создание веб-журналов. Мы раньше использовали такие системы для поддержки содержимого не журнальных веб-сайтов, переопределяя способ использования категорий и данных. Эти решения не следует ставить в один ряд с такими системами, как Drupal, Mambo и Typo3. Например, управление сессиями, предоставляемое в Drupal и Typo3, обычно в них не поддерживается. Однако они действительно обеспечивают очень простой и быстрый способ создания элементарной CMS. Отмечая, что все эти решения ориентированы на веб-журналы, остановимся на нескольких вариантах.
Movable Type
Movable Type является мощной и настраиваемой платформой для публикации, позволяющей пользователям создавать привлекательные, выразительные веб- журналы внутри персональной системы публикаций, которая является чрезвычайно настраиваемой и универсальной. Функционируя как серверное программное обеспечение, Movable Type была адаптирована отдельными пользователями и компаниями, которым понравилась полнота ее функциональных возможностей, открытая архитектура и хорошая библиотека сторонних подключаемых модулей, предназначенных для расширения функциональности системы. Благодаря современной базе из сотен подключаемых модулей, созданных преданными разработчиками со всего мира, можно создать полностью новый класс приложений на основе знакомой и проверенной системы Movable Type.
Являясь в настоящее время одной из наиболее популярных систем публикации веб-журналов, данная Perl-реализация имеет большое сообщество сторонников и хорошую структуру поддержки. Но с недавних пор появилось препятствие - создание авторами, Six Apart, структуры оплаты для поддержки разработки этого продукта. Поскольку мы пытались создать решение с открытым исходным кодом, данный факт в зародыше погубил идею использования Movable Type.
WordPress
WordPress представляет собой современную семантическую платформу персональной публикации, ориентированную на эстетику, веб-стандарты и простоту использования. Что-то необычное. WordPress одновременно и бесплатен, и бесценен. Говоря проще, WordPress - это то, что вы используете, когда хотите работать с вашим программным обеспечением ведения веб-журналов, а не бороться с ним. Возможности WordPress по умолчанию могут быть сильно расширены (легко можно добавить новые функции) при помощи простой в использовании архитектуры подключаемых модулей.
На момент разработки нашего проекта WordPress развивался. Как и в Drupal, полезной является его система документирования в стиле wiki, поддерживающая это решение. Основной код ясен и прост в расширении, а пользовательский интерфейс легок в использовании.
Шаблонная система является типичной основанной на таблицах системой, которая хорошо сравнима с другими платформами публикации веб-журналов. Генерируемый системой код поддерживал передовой опыт и значительно облегчал разработку схем содержимого и доступность.
Недостатком WordPress является отсутствие возможностей кэширования, что по нашему мнению ограничило бы масштабируемость.
TextPattern
Бесплатная, гибкая, элегантная, легкая в использовании система управления содержимым для всех типов веб-сайтов, даже для веб-журналов. Когда приходит время публикации в Интернете, новички и профессионалы одинаково сталкиваются с надоедливым парадоксом: текстовые процессоры и графические приложения позволяют каждому довольно хорошо выполнять работу по управлению текстом и изображениями на персональном компьютере, но при выполнении действий по представлению этой работы в вебе (кажущимся такой же средой документов и, вроде бы, имеющем аналогичное назначение), легкость использования исчезает за непредвиденными требованиями наличия опыта программирования на нескольких языках, квалификации в компьютерном графическом дизайне и, в конечном итоге, ангельского терпения. Те, кто не отступил, все равно обнаружат, что их сдерживает отсутствие гибкости, присущее вебу (по сравнению с письменным языком), с его нежеланием справиться с чем-нибудь кроме простейшего текста, или непредсказуемостью результатов, вызванной использованием WYSIWYG веб-редакторов. TextPattern является веб-приложением, помогающим преодолеть эти и другие препятствия для интерактивной публикации и упрощающим создание хорошо структурированных, совместимых со стандартами веб-страниц.
Как и WordPress, TextPattern выглядела хорошо сделанной системой публикации веб-журналов. Она имеет понятный административный интерфейс и кажется простой в использовании. Однако в ней отсутствуют многие нужные нам функции, в том числе управление сессиями и кэширование.
решение использовать Drupal
Поскольку мы должны были сделать дизайн этого веб-сайта легким для нас и для любого, кто будет адаптировать его, ключевыми факторами была простота установки интегрированной среды и время, которое понадобилось бы для ее освоения. Хотя Ruby on Rails (ROR) заинтриговал нас, мы решили, что написание CMS с нуля займет много времени, поэтому ROR был исключен из нашего рассмотрения.
Если бы мы могли эффективно управлять правами доступа к информации для каждого пользователя, наличие надежной и гибкой системы управления сессиями и пользователями облегчило бы нашу реализацию. Естественно, скорость реализации повысилась бы также и при наличии надежной инфраструктуры подключаемых модулей, поддерживаемой энергичным сообществом пользователей, разрабатывающих качественные расширения для существующей среды.
Еще одним ключевым аспектом была потенциальная возможность повышения масштабируемости в случае увеличения количества параллельно работающих пользователей.
Простота настройки способа отображения содержимого была самым важным фактором - мы должны были сохранить гибкость во время итераций разработки и при любых дальнейших настройках. Так называемая "способность к использованию тем" (themability) также была необходима для использования передового опыта в веб-дизайне: семантики xHTML, CSS и понятного дизайна.
На рисунке 1 показано сравнение кандидатов, отвечающих нашим требованиям. Было очевидно, что нам нужно нечто больше, чем то, что могли бы предоставить механизмы ведения веб-журналов.
Рис. 1. Рейтинг кандидатов на основе требований.
Mambo была очень привлекательной системой из-за простоты установки и из-за пользовательского интерфейса, но существовавшая на то время трещина в направлениях дальнейшей разработки не вызывала никакой уверенности в поддержке.
Typo3 казался имеющим огромное сообщество и искомую зрелость. Однако трудность освоения Typo3 по сравнению с Drupal повергала в уныние. Мы должны были потратить некоторое время на изучение способа работы Drupal, и среда показалась вполне осмысленной. Мы также почувствовали, что Drupal предоставлял правильную комбинацию среды и гибкости для выхода за пределы среды при необходимости завершить работу. Учитывая все это, мы решили использовать Drupal. Ландшафт CMS с открытыми исходными кодами постоянно меняется, и в дальнейшем мы будем повторно исследовать эти и любые новые продукты данной области.
Drupal в деталях
Drupal содержит много встроенных функциональных возможностей и легко расширяется, благодаря поддержке активного сообщества и добавлению дополнительных возможностей. К основным функциональным возможностям относятся:
- дружественные URL, использующие функциональность Apache mod_rewrite;
- легкая расширяемость с использованием модульной интегрированной среды Drupal (сообщество пользователей разработало много полезных модулей, обеспечивающих такие функции, как отображение таксономии, jabber-аутентификация, персональные сообщения, закладки и т.д.);
- персонализация среды для индивидуального содержимого и представления, основанного на предпочтениях пользователя;
- ролевая система полномочий, определяющая права доступа для просмотра и редактирования содержимого;
- содержимое полностью индексируется для поддержки операций поиска;
- Drupal написан на верхнем уровне абстракции базы данных, поэтому среда может быть легко расширена на другие серверные базы данных; - поддержка других форм содержимого, таких как голосования, тематические комментарии и дискуссии, синдикация содержимого;
- отделение содержимого от моделирования отображения в шаблонной системе, использующей HTML, CSS и PHP;
- административная поддержка ведения журналов, анализа и веб-администрирования;
- интерактивная справочная система.
расширение Drupal
Мы использовали модульную среду Drupal для добавления расширенных функциональных возможностей, необходимых для поддержки нашего веб-сайта. К расширенным функциям относятся:
- создание экстранет-среды - сайта с ограниченным доступом, требующим аутентификации перед просмотром какой-либо информации;
- завершение сессии, основанное на взаимодействии пользователя с веб-сайтом;
- реализация политики условий использования сайта;
- расширение существующего интерфейса редактирования содержимого для предоставления "встроенного" (in-place) редактирования (например, показать авторизованному пользователю, что он может редактировать в содержимом веб-страницы, и позволить выбрать редактирование этого содержимого в этом месте и в это время);
- управление уведомлениями для публикации общей информации, которую должны увидеть все пользователи;
- управление задачами рабочих групп, текущим состоянием, элементами деятельности и т.д.;
- управление созданием сессий конференций и повесток дня с использованием Ajax в интерфейсе администрирования;
- расширенный вид и интерфейс администрирования для информации о членах и поиск этой информации;
- дополнительные блоки информации, показываемые как вкладыши, для отображения контекстно-зависимых данных на основе роли пользователя и данных, которые ему принадлежат или которые он создает;
- еженедельный информационный дайджест, направляемый по электронной почте участникам, интересующимся специфической областью содержимого.
Элистер Льюис-Боуэн, старший инженер-программист, IBM. Стефен Эванчик, инженер-программист, IBM. Луис Вайцман, старший инженер-программист, IBM
Задачей пользователей является увеличение предложений компании путем улучшения стратегических и тактических решений. Сообщество пользователей организовано вокруг основной концепции рабочих групп. Несколько раз в год члены сообщества встречаются на конференциях. На этих конференциях определяются проблемы, которые затем решаются в период между встречами. Веб-сайт используется для предоставления информации о деятельности сообщества, например, о конференциях, а также как способ мониторинга процесса выполнения задач, поставленных на встречах.
Существующий веб-сайт основан на репозитории документов, обеспечивающем способ обмена документами и уведомления членов сообщества о предстоящих событиях. Однако веб-сайт не способствует взаимодействию пользователей, особенно в контексте сайтов Web 2.0 с такими улучшенными возможностями как веб-журналы, дискуссионные группы, RSS-каналы и т.д. Целью группы разработчиков является стимулирование взаимодействия пользователей и обеспечение интегрированной среды публикаций для поддержки деятельности сообщества.
проблемы
Поскольку это будет защищенный веб-сайт, нам необходима система управления сессиями для поддержки завершения сессий и механизм подтверждения документа об условиях использования сайта, которые выполняют свои функции до того, как станет возможным получение доступа к сайту. Мы также хотим поддерживать принцип непосредственного управления в том, что касается редактирования содержимого - если есть действие по добавлению фрагмента содержимого, необходимо, чтобы элемент управления взаимодействием был помещен рядом с соответствующим содержимым.
Другие проблемы существующего веб-сайта состоят в непоследовательности визуального языка, навигации и информационной архитектуры. Содержимое часто спрятано внутри документов, помещаемых в репозиторий и нет указания того, что находится в документе. Поэтому вы должны загрузить и просмотреть его. В результате анализа группа разработчиков сделала вывод, что модель репозитория документов является ошибочной моделью для внедрения. Нам нужна система управления содержимым с намного более широкими возможностями.
процесс проектирования
Наш процесс проектирования был итеративным и протекал от анализа до создания прототипа и пробных испытаний. На самых ранних этапах мы подключили к процессу конечных пользователей при помощи опросных листов, альтернатив проектирования и прототипов различной степени готовности. Мы хотели сконцентрировать наши решения как на бизнес-целях, так и на потребностях конечных пользователей. Еще до определения функциональных требований и начала процесса разработки мы обнаружили, что чем ранее мы подключим пользователей, тем быстрее сможем понять, что было бы полезным, и какие решения являются правильными. Не прикладывая значительных усилий, мы собрали очень ценную информацию, одновременно вызвав у пользователей чувство непосредственного участия в процессе проектирования. Кроме того, мы завоевали доверие сообщества пользователей.
Еще одним компонентом осмысления проекта является понимание информационной архитектуры. Например, благодаря пользователям мы узнали, что одними из самых важных требований является доступ к трем основным областям:
- информация о рабочих группах;
- информация о прошедших и предстоящих конференциях;
- доступ к информации обо всех членах сообщества.
По обратной реакции пользователей стало также понятно, что необходима четкая, ясная и простая архитектура.
Мы определили три класса пользователей (или персонажей), приходящих на сайт: клиенты, руководители рабочих групп и администраторы. Эти персонажи определяют наш дизайн и процесс принятия решений. Изучив, какая информация представляет важность, и как она связана с основными классами пользователей, мы смогли создать архитектуру содержимого, его иерархию, способы представления и способы взаимодействия каждого класса пользователей с этой информацией. Например, информация о конференциях может содержать вопросы повестки дня или сессии, планирование этих вопросов, темы, затрагиваемые на конференции, и вопросы, решенные между конференциями.
Во время анализа начали появляться дополнительные функциональные возможности. Например, для поддержки активного сообщества мы решили разрешить дискуссии и комментарии по содержимому, поддержку контекстной обратной реакции и интерактивное взаимодействие. Новым важным требованием пользователей было использование уникального, но при этом нейтрального, бренда или визуального идентификатора. Поскольку веб-сайт предоставляет нейтральное место, куда для взаимодействия приходят самые разные пользователи, ярко выраженная визуальная связь с какой-либо компанией или окружением могла бы вызвать нежелательную реакцию.
среда разработки
Для упрощения процесса разработки мы решили использовать существующую систему управления содержимым, которая помогла бы сгенерировать своевременное решение. Большинство систем управления содержимым могло бы поддержать необходимые нам основные функции, но существовала очевидная необходимость детальной настройки. Полностью готовой реализации было недостаточно. Мы решили принять за основу большую работу, выполненную сообществом сторонников открытого исходного кода. В конечном итоге мы использовали инструментальные средства этого типа.
У нас было несколько требований к среде разработки, например, возможность вносить изменения в код и тестировать внесенные изменения автономно. После тестирования изменений мы хотели делать этот код доступным для группы разработчиков. Такой итеративный цикл разработки вынудил нас использовать удаленную систему управления версиями CVS, которая позволила синхронизироваться с членами нашей группы разработки и управлять базой исходных кодов, которую мы все могли бы использовать совместно.
Для поддержки проекта и использования всех технологий в интегрированной среде разработки (IDE) мы выбрали Eclipse. Eclipse предоставляет большое количество расширений и очень тесно интегрируется с Concurrent Versions System (CVS). Eclipse-перспективы предоставляют несколько видов и редакторов, поддерживающих текущую деятельность. В нашем случае такой деятельностью являлось редактирование PHP-модулей и HTML-фрагментов. Eclipse также отслеживал локальные изменения в нашем коде. То есть даже если вы не выполняете входящий контроль файлов в CVS, то все равно можете восстановить более ранние версии файла на вашей локальной машине. Эта функциональная возможность Eclipse гарантирует, что вы никогда не потеряете исходный код. Создав централизованную среду разработки и тестирования, мы могли оптимизировать работу с кодом и другими членами группы - время должно тратиться на написание и тестирование кода, а не на управление файлами и другим ресурсами на вашей системе.
Выбор системы управления содержимым повлиял на необходимость использования других инструментальных средств. В случае с Drupal это означало использование PHP, HTML и Cascading Style Sheets (CSS) для разработки страниц, а также MySQL для серверного хранилища.
требования
Мы определили набор требований, которые помогли нам в выборе системы управления содержимым. Если какие-либо из этих функциональных возможностей не были реализованы, мы хотели, чтобы система была способна легко расширяться для их включения. К этим требованиям относятся:
- разделение содержимого и представления;
- встроенное комментирование содержимого;
- встроенное редактирование содержимого;
- тематические дискуссионные группы;
- управление правами доступа;
- поиск содержимого;
- аутентификация перед просмотром какого-либо содержимого;
- управление сессиями, включая завершение, а также соглашение с условиями использования;
- поддержка взаимодействия сообщества через дискуссии;
- простой курс обучения работе с системой управления содержимым;
- простой интерфейс администрирования системы управления содержимым (для передачи клиенту).
решения с открытым исходным кодом для управления содержимым
Существует множество способов управления содержимым вашего веб-сайта, начиная от простого механизма веб-журналов (web log, blog), допускающих ограниченную публикацию содержимого, до полнофункциональной интегрированной прикладной системы, на основе которой вы можете создать свою собственную систему управления содержимым. При наличии большого количества вариантов в области систем с открытым исходным кодом выбрать подходящую может быть не просто.
В конечном итоге мы выбрали Drupal. Однако полезно обосновать причины нашего выбора. В следующем разделе мы описали некоторые из систем- кандидатов, включая Drupal, Mambo, Typo3, Ruby on Rails, Movable Type, WordPress и TextPattern.
Drupal
Drupal - это программное обеспечение, позволяющее индивидууму или сообществу пользователей легко публиковать, управлять и организовывать разнообразное содержимое на веб-сайте. Десятки тысяч людей и организаций использовали Drupal для настройки множества веб-сайтов различного типа, включая:
- веб-порталы сообществ и дискуссионные сайты;
- корпоративные веб-сайты/интранет-порталы;
- персональные веб-сайты;
- сайты по интересам;
- приложения для электронной коммерции (e-commerce);
- каталоги ресурсов.
Drupal содержит функциональные возможности, позволяющие создать системы управления содержимым, блоги, среды для совместной творческой деятельности, форумы, информационные письма, галереи изображений, системы загрузки файлов и многое другое. Drupal является программой с открытым исходным кодом, которая использует лицензию GPL, управляется и разрабатывается сообществом тысяч пользователей и разработчиков. Drupal можно свободно загружать и использовать.
Drupal - это новичок по сравнению с другими системами управления содержимым (Content Management Systems, CMS). Однако нас поразила добротность написания, надежность, отличная расширяемость этой среды, а также, по-видимому, бурно развивающееся сообщество разработчиков, которые обеспечивают хорошую адаптацию и поддержку.
Как и другие CMS, эта среда очень легко расширяема. Многие из нужных нам функций предоставлены в виде модулей, которые можно было легко подключить к основной функциональности нашего веб-сайта.
Интегрированная среда и шаблонная система (theming - поддержка тем) написаны полностью на PHP, то есть не нужно изучать отдельный язык тегов. Если вы хотите выйти за границы среды, это очень легко сделать (естественно, это не рекомендуется, но демонстрирует неограниченную гибкость). Управление сессиями встроено в функции ядра, чего не было в других CMS. Это помогло нам преодолеть в дальнейшем некоторые препятствия. Drupal известен своей масштабируемостью (простотой расширения веб-сайта для небольшой группы пользователей до сайта корпоративного уровня). Среда обладает также возможностью "притормаживать" области сайта, которые могут вызвать потенциальные проблемы при большом трафике. Способность использования 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 лет!).
На то время Mambo являлась популярной системой и предлагала очень простую установку и притягательный, простой в использовании административный интерфейс. Обычно не принимаемая во внимание система хранения в CMS становится очень важной, если вам нужна хорошая работа системы у клиентов, нуждающихся в администрировании веб-сайта после сдачи вами проекта.
Простая установка, казалось бы, дала нам почти все нужные функции, доступные и готовые к подключению. Однако, как и во многих 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, а также множество университетов, правительственных агентств и некоммерческих организаций.
Typo3 является чем-то очень большим. Большим приложением. Большим сообществом. Большой адаптацией. Большим списком расширенных функциональных возможностей и дополнений. Кривая обучения тоже является большой. Не удивительно, что Typo3 могла бы делать все, что нам нужно, но обнаружились другие проблемы в дополнение к сложности.
Генерируемая большинством из основных и дополнительных модулей разметка использовала структуру середины-конца 90-х со множеством табличных схем, незначительным использованием эффективно расположенных CSS ID и атрибутов классов, а иногда и явно некорректную структуру. Мы хотели использовать современные методики для сохранения наших итераций разработки гибкими, поэтому данная система не могла способствовать своевременной разработке. Шаблонная система тоже оказалась очень сложной по сравнению с другими решениями. Время, необходимое для освоения системы работы с темами для веб-содержимого, перевесило мощность шаблонной системы.
Интерфейс администратора показался неуклюжим и древним, особенно по сравнению с Mambo. Это важно, поскольку мы должны были передать заказчику функции администрирования сайта.
Если бы мы имели больше времени, то могли бы выбрать для работы Typo3. Но его надо было бы переписать, чтобы сделать свежим и
конкурентоспособным в сравнении с другими CMS. Проблема использования стандартов, основанных на xHTML и CSS, решается в новой версии Typo3.
Ruby on Rails
Ruby является чистым объектно-ориентированным языком программирования с чрезвычайно ясным синтаксисом, делающим программирование элегантным и интересным. Ruby успешно комбинирует концептуальную элегантность Smalltalk, простоту использования и изучения Python и прагматизм Perl. Ruby возник в Японии в начале 1990 и стал всемирно популярным в последние несколько лет после появления большего числа книг и документации на английском языке. Rails является Ruby-средой с открытыми исходными кодами для разработки использующих базы данных веб-приложений. Основные принципы Rail: меньше программирования и соглашение вместо конфигурации.
Меньше программирования означает, что вы пишете меньшее число строк кода для реализации вашего приложения. Сохранение вашего кода небольшим означает более быструю разработку и меньшее число ошибок, что делает ваш код более легким для понимания, обслуживания и улучшения.
Соглашение вместо конфигурации означает конец многословным конфигурационным XML-файлам - их в Rails нет вообще! Вместо конфигурационных файлов Rails-приложение использует несколько простых соглашений по программированию, позволяющих вычислить все через отражение и обнаружение. Код вашего приложения и работающая база данных уже содержат все, что Rails должен знать.
Типичные системы управления содержимым позволяют аутентифицированным пользователям создавать формирующие содержимое страницы как часть веб- сайта. Ruby On Rails (ROR), однако, не обеспечивает эту функциональность в готовом виде. Он предоставляет интегрированную среду веб-приложения. Используя ROR, вы можете создать специализированную CMS с нуля.
На момент создания нашего проекта вокруг ROR было много слухов, источником которых являлась, главным образом, 37Signals и ее впечатляющий набор реальных интерактивных ROR-приложений, таких как Base Camp.
Нам понравился способ связываний с базой данных через среду. Это помогало ускорить те повторяющиеся этапы разработки, которые связаны со столбцами базы данных.
На момент наших исследований данная интегрированная среда была несколько больше ориентирована на веб-журналы. Были также проблемы со стабильностью, но мы отметили потенциал ROR для использования в будущих проектах.
Создание специализированной CMS по-своему привлекательно. Например, при помощи какого-либо специализированного решения мы могли бы создать поддерживающий использование тем административный интерфейс. Но из-за ограничений по времени нам нужна была готовая CMS.
механизмы веб-журналов
Мы также рассматривали вариант использования системы публикации, которая преимущественно поддерживает создание веб-журналов. Мы раньше использовали такие системы для поддержки содержимого не журнальных веб-сайтов, переопределяя способ использования категорий и данных. Эти решения не следует ставить в один ряд с такими системами, как Drupal, Mambo и Typo3. Например, управление сессиями, предоставляемое в Drupal и Typo3, обычно в них не поддерживается. Однако они действительно обеспечивают очень простой и быстрый способ создания элементарной CMS. Отмечая, что все эти решения ориентированы на веб-журналы, остановимся на нескольких вариантах.
Movable Type
Movable Type является мощной и настраиваемой платформой для публикации, позволяющей пользователям создавать привлекательные, выразительные веб- журналы внутри персональной системы публикаций, которая является чрезвычайно настраиваемой и универсальной. Функционируя как серверное программное обеспечение, Movable Type была адаптирована отдельными пользователями и компаниями, которым понравилась полнота ее функциональных возможностей, открытая архитектура и хорошая библиотека сторонних подключаемых модулей, предназначенных для расширения функциональности системы. Благодаря современной базе из сотен подключаемых модулей, созданных преданными разработчиками со всего мира, можно создать полностью новый класс приложений на основе знакомой и проверенной системы Movable Type.
Являясь в настоящее время одной из наиболее популярных систем публикации веб-журналов, данная Perl-реализация имеет большое сообщество сторонников и хорошую структуру поддержки. Но с недавних пор появилось препятствие - создание авторами, Six Apart, структуры оплаты для поддержки разработки этого продукта. Поскольку мы пытались создать решение с открытым исходным кодом, данный факт в зародыше погубил идею использования Movable Type.
WordPress
WordPress представляет собой современную семантическую платформу персональной публикации, ориентированную на эстетику, веб-стандарты и простоту использования. Что-то необычное. WordPress одновременно и бесплатен, и бесценен. Говоря проще, WordPress - это то, что вы используете, когда хотите работать с вашим программным обеспечением ведения веб-журналов, а не бороться с ним. Возможности WordPress по умолчанию могут быть сильно расширены (легко можно добавить новые функции) при помощи простой в использовании архитектуры подключаемых модулей.
На момент разработки нашего проекта WordPress развивался. Как и в Drupal, полезной является его система документирования в стиле wiki, поддерживающая это решение. Основной код ясен и прост в расширении, а пользовательский интерфейс легок в использовании.
Шаблонная система является типичной основанной на таблицах системой, которая хорошо сравнима с другими платформами публикации веб-журналов. Генерируемый системой код поддерживал передовой опыт и значительно облегчал разработку схем содержимого и доступность.
Недостатком WordPress является отсутствие возможностей кэширования, что по нашему мнению ограничило бы масштабируемость.
TextPattern
Бесплатная, гибкая, элегантная, легкая в использовании система управления содержимым для всех типов веб-сайтов, даже для веб-журналов. Когда приходит время публикации в Интернете, новички и профессионалы одинаково сталкиваются с надоедливым парадоксом: текстовые процессоры и графические приложения позволяют каждому довольно хорошо выполнять работу по управлению текстом и изображениями на персональном компьютере, но при выполнении действий по представлению этой работы в вебе (кажущимся такой же средой документов и, вроде бы, имеющем аналогичное назначение), легкость использования исчезает за непредвиденными требованиями наличия опыта программирования на нескольких языках, квалификации в компьютерном графическом дизайне и, в конечном итоге, ангельского терпения. Те, кто не отступил, все равно обнаружат, что их сдерживает отсутствие гибкости, присущее вебу (по сравнению с письменным языком), с его нежеланием справиться с чем-нибудь кроме простейшего текста, или непредсказуемостью результатов, вызванной использованием WYSIWYG веб-редакторов. TextPattern является веб-приложением, помогающим преодолеть эти и другие препятствия для интерактивной публикации и упрощающим создание хорошо структурированных, совместимых со стандартами веб-страниц.
Как и WordPress, TextPattern выглядела хорошо сделанной системой публикации веб-журналов. Она имеет понятный административный интерфейс и кажется простой в использовании. Однако в ней отсутствуют многие нужные нам функции, в том числе управление сессиями и кэширование.
решение использовать Drupal
Поскольку мы должны были сделать дизайн этого веб-сайта легким для нас и для любого, кто будет адаптировать его, ключевыми факторами была простота установки интегрированной среды и время, которое понадобилось бы для ее освоения. Хотя Ruby on Rails (ROR) заинтриговал нас, мы решили, что написание CMS с нуля займет много времени, поэтому ROR был исключен из нашего рассмотрения.
Если бы мы могли эффективно управлять правами доступа к информации для каждого пользователя, наличие надежной и гибкой системы управления сессиями и пользователями облегчило бы нашу реализацию. Естественно, скорость реализации повысилась бы также и при наличии надежной инфраструктуры подключаемых модулей, поддерживаемой энергичным сообществом пользователей, разрабатывающих качественные расширения для существующей среды.
Еще одним ключевым аспектом была потенциальная возможность повышения масштабируемости в случае увеличения количества параллельно работающих пользователей.
Простота настройки способа отображения содержимого была самым важным фактором - мы должны были сохранить гибкость во время итераций разработки и при любых дальнейших настройках. Так называемая "способность к использованию тем" (themability) также была необходима для использования передового опыта в веб-дизайне: семантики xHTML, CSS и понятного дизайна.
На рисунке 1 показано сравнение кандидатов, отвечающих нашим требованиям. Было очевидно, что нам нужно нечто больше, чем то, что могли бы предоставить механизмы ведения веб-журналов.
Рис. 1. Рейтинг кандидатов на основе требований.
Mambo была очень привлекательной системой из-за простоты установки и из-за пользовательского интерфейса, но существовавшая на то время трещина в направлениях дальнейшей разработки не вызывала никакой уверенности в поддержке.
Typo3 казался имеющим огромное сообщество и искомую зрелость. Однако трудность освоения Typo3 по сравнению с Drupal повергала в уныние. Мы должны были потратить некоторое время на изучение способа работы Drupal, и среда показалась вполне осмысленной. Мы также почувствовали, что Drupal предоставлял правильную комбинацию среды и гибкости для выхода за пределы среды при необходимости завершить работу. Учитывая все это, мы решили использовать Drupal. Ландшафт CMS с открытыми исходными кодами постоянно меняется, и в дальнейшем мы будем повторно исследовать эти и любые новые продукты данной области.
Drupal в деталях
Drupal содержит много встроенных функциональных возможностей и легко расширяется, благодаря поддержке активного сообщества и добавлению дополнительных возможностей. К основным функциональным возможностям относятся:
- дружественные URL, использующие функциональность Apache mod_rewrite;
- легкая расширяемость с использованием модульной интегрированной среды Drupal (сообщество пользователей разработало много полезных модулей, обеспечивающих такие функции, как отображение таксономии, jabber-аутентификация, персональные сообщения, закладки и т.д.);
- персонализация среды для индивидуального содержимого и представления, основанного на предпочтениях пользователя;
- ролевая система полномочий, определяющая права доступа для просмотра и редактирования содержимого;
- содержимое полностью индексируется для поддержки операций поиска;
- Drupal написан на верхнем уровне абстракции базы данных, поэтому среда может быть легко расширена на другие серверные базы данных; - поддержка других форм содержимого, таких как голосования, тематические комментарии и дискуссии, синдикация содержимого;
- отделение содержимого от моделирования отображения в шаблонной системе, использующей HTML, CSS и PHP;
- административная поддержка ведения журналов, анализа и веб-администрирования;
- интерактивная справочная система.
расширение Drupal
Мы использовали модульную среду Drupal для добавления расширенных функциональных возможностей, необходимых для поддержки нашего веб-сайта. К расширенным функциям относятся:
- создание экстранет-среды - сайта с ограниченным доступом, требующим аутентификации перед просмотром какой-либо информации;
- завершение сессии, основанное на взаимодействии пользователя с веб-сайтом;
- реализация политики условий использования сайта;
- расширение существующего интерфейса редактирования содержимого для предоставления "встроенного" (in-place) редактирования (например, показать авторизованному пользователю, что он может редактировать в содержимом веб-страницы, и позволить выбрать редактирование этого содержимого в этом месте и в это время);
- управление уведомлениями для публикации общей информации, которую должны увидеть все пользователи;
- управление задачами рабочих групп, текущим состоянием, элементами деятельности и т.д.;
- управление созданием сессий конференций и повесток дня с использованием Ajax в интерфейсе администрирования;
- расширенный вид и интерфейс администрирования для информации о членах и поиск этой информации;
- дополнительные блоки информации, показываемые как вкладыши, для отображения контекстно-зависимых данных на основе роли пользователя и данных, которые ему принадлежат или которые он создает;
- еженедельный информационный дайджест, направляемый по электронной почте участникам, интересующимся специфической областью содержимого.
Элистер Льюис-Боуэн, старший инженер-программист, IBM. Стефен Эванчик, инженер-программист, IBM. Луис Вайцман, старший инженер-программист, IBM
Сетевые решения. Статья была опубликована в номере 01 за 2007 год в рубрике software