msu tz

К созданию официального сайта МГУ (New Generation)

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

Цели

Разработка информационно-технологической архитектуры официального сайта МГУ для решения следующих задач:

  • Создание конкурентноспособного представительства Московского Университета в сети Интернет для размещения официальной информации МГУ
  • Обеспечение полного цикла деятельности электронной редакции официального сайта Московского Университета

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

Аудитория

  • Школьники, абитуриенты и их родители
  • Студенты, профессорско-преподавательский состав, научные сотрудники МГУ
  • Студенты, профессорско-преподавательский состав, научные сотрудники сторонних учебных и научных заведений
  • Гости и посетители МГУ, участники конференций и других мероприятий

Задачи

  • Создание программной инфраструктуры
  • Создание кластера для официального сайта МГУ, тестирование и установка программного обеспечения
  • Миграция контента
  • Поддержка и развитие сайта

Методы

Для решения поставленных задач предполагается

  • Разработка программной инфраструктуры на основе открытых программных компонентов для обеспечения работы текущих и будущих информационных проектов на сайте МГУ, в том числе и требующих нестандартных решений
  • Подбор серверного и сетевого оборудования для кластера официального сайта МГУ, организация мониторинга функционирования системы
  • Установка программной инфраструктуры на кластере, конфигурация сервисов и реализация шаблонов страниц официального сайта МГУ, а также специализированных рабочих мест для удаленной работы с документами
  • Создание системы обмена документами между университетскими ресурсами
  • Создание квалифицированной команды редакторов по разным направлениям для оперативного размещения документов на сайте МГУ и для миграции содержимого старой версии сайта

Требования к программной архитектуре

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

Нагрузочные требования (пиковые значения):

  • Количество уникальных посетителей в сутки - 1 млн
  • Количество запросов в секунду - 100 req/sec
  • Количество поисковых запросов - 1 млн/сутки
  • Количество документов в хранилище - 100,000 текстовых документов
  • Линейная масштабируемость системы - от возможности работы всех сервисов на одном сервере, до работы одного сервиса на нескольких серверах

Функциональность:

  • Поддержка полного цикла обработки документов в системе
    • прием и регистрация документов в системе
    • обработка документов в зависимости от его типа (новость, статья, книга, отчет, объявление,…), добавление новых типов документов.
    • публикация на сайте
    • поддержка версионности документов для документирования жизненного цикла документа на сайте
    • Рабочие места для администратора системы, авторов, редакторов, главного редактора и т.д. для удаленной работы с системой с помощью интернет-браузера.
  • Поддержка гибкой политики доступа (создание, чтение, модификация) к документам
  • Поддержка разных методов навигации по сайту:
    • Рубрикатор документов по различным атрибутам
    • Лента документов с поддержкой отборов по различным атрибутам (тип документа, дата создания)
    • Поиск по ключевым словам
    • Полнотекстовый поиск по сайту с поддержкой атрибутов и специализированных словарей
    • Каталог информационных ресурсов
  • Поддержка системы шаблонов для быстрой и удобной верстки страниц сайта с соблюдением общего дизайна
  • Поддержка многоязычности - 2 языка, русский/английский.
    • Поддержка рабочего места переводчика документов
    • Поддержка целостности оформления сайта
  • Поддержка непрерывного цикла разработки сайта
    • Разработка новых сервисов и модификация существующих не влияет на работу сайта
    • Разработка новых сервисов и модификация существующих не влияет на тестирование новой версии сайта выпускающей редакцией
    • Автоматическая синхронизация изменений на сайте без остановки работы сайта
  • Возможность использования внешних сервисов

Обеспечение надежности:

  • No SPOF (Single Point of Failure) - резервирование основных сервисов
  • Обеспечение непрерывной работы системы в условиях пиковых нагрузок

Другие требования:

  • Совместимость с общепринятыми веб-стандартами (HTML, HTTP[s])
  • Использование только открытого ПО
  • Разработка программного обеспечения для массовой миграции документов со старого сервера в новую систему
  • Программная платформа поставляется в дистрибутиве с документацией на установку, требованиями к операционной системе и оборудованию. Кроме этого, требуется наличие регрессионных тестов для автоматического тестирования установленной системы и демонстрационного сайта с примерами использования API системы
  • Сопровождение системы осуществляется в виде исправления ошибок, поставки соответствующих патчей и их применение в рабочей системе. Документирование работы над системой осуществляется с применением общепринятых систем мониторинга разработки, например, trac.

Ролевая политика доступа к ресурсам

Официальный сайт МГУ является информационной системой с повышенным уровнем ответственности к контенту сайта, а именно:

  • Документы должны поступать только из авторизованных источников
  • Документы должны проходить корректорскую обработку для исправления грамматических ошибок и очепяток
  • Все версии документов должны храниться в системе, с предоставлением доступа к ним при необходимости
  • Документы могут модифицироваться только авторизованными пользователями
  • Доступ к некоторым документам может быть ограничен
  • Некоторые возможности разметки текста (HTML) и вызываемых из документов скриптов (javascript) могут быть запрещены из соображений безопасности

Для эффективной и простой реализации политики доступа к ресурсам и документам предполагается использование ролевой политики доступа со следующими ролями:

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

Редакторский интерфейс

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

Список задач:

  • Заведение нового пользователя в системе
  • Управление системой ролевого доступа
  • Изменение ролей, приписанных к пользователю
  • Создание и редактирование каталогов, справочников
  • Создание и изменение нового документа выбранного типа
  • Редактирование метаданных документа
  • Формирование главной страницы сайта

Масштабирование системы

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

  • Фронтенды - "легкие" сервера, требующие минимум ресурсов, которые взаимодействуют с пользователями сайта. Фронтенды могут работать как на одном, так и на нескольких серверах (при необходимости).
  • Бэкенды - "тяжелые" сервера, которые по запросу от фронтенда формируют страницу (собирая данные с разных источников). Только бэкенды имеют доступ непосредственно к хранилищу данных. Как и фронтенды они могут работать на нескольких серверах.
  • База данных обычно работает на отдельном сервере, к которому имеют доступ только бэкенды (по постоянному соединению) и только из внутренней сети. Она хранит разнообразные метаданные документов системы. Масштабируется репликацией на дополнительные сервера.
  • Файловое распределенное хранилище для хранения разнообразных файлов (картинки, архивы, pdf, doc,…)
  • Сервер[а] обработки документов для приемки, обработки и укладки документов. В зависимости от размера, сложности и типа документа, процесс обработки может быть очень ресурсоемким. При большом потоке документов может потребоваться несколько серверов.

Дополнительные сервисы

  • Для обработки и онлайн редактирования некоторых видов документов необходима поддержка TeX/LaTeX, системы проверки правописания (спелл-чеккер), разнообразных словарей.
  • Для анализа производительности системы, работы сайта необходим сервис хранения журналов работы всех основных сервисов, анализ и онлайн доступ к результатам.

Миграция

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

Кроме того, требуется начальная работа по переводу основных документов сайта и его интерфейсов на английский язык. Для облегчения работы переводчиков требуется создать рабочее место переводчика.

План работ

  • Этап 1.
    • Создание тестового кластера для работ по созданию программной архитектуры сайта - определение конфигурации тестового кластера, закупка оборудования
    • Настройка тестового кластера - установка операционной системы и необходимого программного обеспечения, в том числе и системы документирования процесса разработки (trac)
    • Анализ структуры и содержания существующего официального сайта МГУ, выработка списка необходимых типов документов, разработка специализированных парсеров для конвертации документов в новые форматы и извлечение метаданных, создание специализированных справочников.
  • Этап 2.
    • Разработка программной архитектуры распределенной информационной системы
    • Создание редакторских рабочих мест
    • Разработка шаблонов для страниц сервера
    • Наполнение и проверка целостности базы данных
    • Перевод шаблонов и определенного списка базовых документов на английский язык
    • Запуск пробного сайта и его тестирование - функциональное и нагрузочное
  • Этап 3.
    • Создание дистрибутива, документирование API, создание демонстрационного сайта с примерами реализации базовой функциональности сайта образовательного учреждения
  • Этап 4.
    • Уточнение дизайна официального сайта МГУ и его реализация
    • Реализация ленты новостей с редакторским интерфейсом на основе агрегации новостей с университетских ресурсов
    • Реализация поиска по всем информационных ресурсам МГУ и его тестирование
    • Демонстрация работы сайта, работа над замечаниями
    • Запуск сайта в рабочем режиме официального сайта МГУ

Этапы 1 и 2 могут идти параллельно, но 1 этап должен завершится раньше этапа 2.

    1,2 -----------------1k----------2k3----------------3k4------------------------4k
   1-1k - 2 месяца
   2-2k - 3 месяца
   3-3k - 2 месяца
   4-4k - 4 месяца

Реальная продолжительность проекта больше на 1-2 месяца, если учесть выходные и праздники.

Рабочие группы

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