О заказчике
Разроев Элдар
- С 2004 по 2007 гг. — президент компании Евросеть.
- С 2007 по 2008 гг. — генеральный директор Системы масс-медиа.
- С 2009 г. - генеральный директор МТТ
Модули Интернет-поиск и Матрица классификатора
Задачи проекта
Создание Портала направлено на повышение качества, удобства и эффективности работы в Интернете, достигаемое за счет социализации, а также:
- использования единого стиля интерфейсных решений для виртуального рабочего стола;
- деления профиля стартовой страницы на три рабочие зоны: информационную матрицу, геоинформационную зону и зону персональных настроек дополнительных модулей (в виде разворачиваемых контейнеров), служащих для размещения виджетов, гаджетов, RSS-лент, а также организации авторизации, общения, коммуникаций, медиатрансляций, органайзера, платежных систем и офисной работы (далее персональная зона);
- централизованного предоставления пользователям функциональных сервисов и служб, позволяющих целенаправленно формировать, находить и использовать контент;
- индивидуальной настройки стартовых страниц сайтов пользователей в соответствии с личными предпочтениями.
Модуль Управление документами
Портал предназначен для решения широкого круга задач, направленных на социализацию пользователей Портала:
- предоставления персонифицированной точки доступа к приложениям и данным единого открытого информационного пространства при обязательном соблюдении условий авторизации и жесткого разграничения прав доступа;
- агрегации и представления информационных ресурсов с использованием функций добавления, редактирования, комментирования полученных данных и настройки правил взаимодействия с этими данными;
- интеграции mashup приложений;
- обеспечения универсальности создаваемых коммуникаций, формирования защищенной групповой и персонифицированной среды общения;
- реализации функциональности картографического сервиса Google Maps, позволяющей наносить на карту любого региона (при помощи специальных миниприложений Mapplets) персонализированную систему маркеров, привязывающих к местонахождению объектов местности файлы любой информации, включая текстовые и табличные данные, графические изображения, видеоролики и др.;
- расширения перечня и функциональных возможностей персонально настраиваемых дополнительных сервисных услуг;
- поддержки электронного документооборота, унификации передаваемых документов;
- автоматизации рутинных операций;
- создания предпосылок для преобразования используемой информации в систему управления проблемно и предметно-ориентированными знаниями.
Модуль Коммуникатор
Технологии проекта
В качестве серверной платформы разработки был использован фреймворк Symfony 1.2:
- высокие показатели производительности;
- парадигма MVC;
- независимость архитектуры, все неиспользуемые компоненты можно отключить;
- более жесткая архитектура (по сравнению с Zend), позволяющая создавать понятный и легкосопровождаемый код;
- большое количество плагинов (готовых компонент) и сниппетов (полезных минифункций), в настоящий момент в коллекции около 1000 плагинов самых разных назначений, среди который есть компоненты аутентификации и авторизации, OpenID, работы с RSS, PDF, интеграции с веб-сервисами и приложениями (например, Flickr и GoogleMaps) и многие другие;
- развитый механизм работы с БД (propel , doctrine, PDO);
- мощная система кеширования, поддержка работы до 6 систем кеширования (file, sqlite, memcached, APC, eAccelerator, xCache);
- поддержка работы с AJAX, развитые компоненты для работы с AJAX и ExtJS;
- комьюнити Symfony активно развивается, помимо новых плагинов постоянно пополняется документация и wiki, при этом документация — это не сухой справочник, а содержит множество примеров и best practice.
В качестве веб-серверов используется nginx как маршрутизатор, сервер-балансировки и веб-сервер, обслуживающий запросы на получение статической информации (изображения, видео и т.д.). В остальных случаях используется Apache версии 2.2.8 и выше.
На стороне клиентского приложения
На стороне клиента jQuery — удобный фреймворк для построения веб-интерфейсов и интерактивных приложений. jQuery написан на JavaScript и работает во всех популярных сейчас браузерах.
Базы данных
В качестве СУБД в проекте используется MySQL версии 5.0.Система управления базами данных в составе одного сервера предполагает работу только с ним. Взаимодействие должно частично производиться через ORM Propel, там, где это невозможно или нецелесообразно, — непосредственно с БД с помощью SQL.
Архитектура master-slave предполагает один сервер master, в который производится запись данных, и несколько (2-4) серверов баз данных, с которых производится чтение (выборка) данных.
Архитектура sharding (сегментирование баз данных) подразумевает распределение данных между серверами по определенному признаку. Данную архитектуру целесообразно использовать при достаточно больших объемах данных, она позволяет неограниченно масштабировать кластер базы данных.
Наиболее часто используемые данные хранятся на сервере memcached с целью уменьшения нагрузки на кластер базы данных.
Архитектура портала
Портальные решения должны объединять в единое мультимедийное пространство различные источники информации в соответствии со сложившимися стандартами. Они должны быть связаны с технологией единого входа Single Sign On, позволяющей переходить с одних страниц веб-сайтов на другие без повторной авторизации и осуществлять организацию передачи данных между разными приложениями.
Портальные решения должны обеспечивать персонализацию пользователей, то есть предоставлять им широкие возможности выбора персональной настройки внешнего вида и информационного наполнения своих стартовых страниц.
Портальные решения должны иметь модульную структуру и состоять из Web-служб, разработанных на основе стандарта WSRP (Web Services for Remote Portlets), набор которых может изменяться администратором портала.
Архитектура «на вырост»
Архитектура познавательно-аналитического портала спроектирована с учетом дальнейшего масштабирования.Кластер PHP:
На начальном этапе предусматривается 2 сервера-интерпретатора PHP (Symfony), в дальнейшем возможно увеличение кластера на необходимое количество серверов с корректировкой конфигураций сервера балансировки нагрузки nginx (mod_proxy);
Кластер баз данных:
На начальном этапе предусмотрен один сервер базы данных MySQL. При повышении нагрузки на сервер целесообразен постепенный переход на архитектуру master-slave, основывающуюся на 2-4 серверах, а затем – на архитектуру sharding (сегментирование базы данных);
Кластер статической информации (файлов, графических изображений, видео):
На начальном этапе предусмотрен 1 веб-сервер статики lighttpd. При необходимости масштабирования возможно подключение к веб-серверу статики серверов с кластерной файловой системой либо добавление дополнительных веб-серверов lighttpd с независимыми файловыми системами;
Кластер jabber-серверов:
На начальном этапе предусматривается 1 jabber-сервер. При повышении нагрузки возможно наращивание кластера дополнительными серверами с предварительной установкой сервера балансировки нагрузки nginx.
Серверы memcached:
Увеличение мощностей серверов memcached должно производится пропорционально мощностям кластера PHP и базы данных.
Взаимодействие со смежными системами и компонентами
Портал взаимодействует с такими смежными системами, как Google Maps API, Google Search API, Yandex.XML, Yahoo API, Netvibes, Zoho API, Acrobat API и другие.
Модуль Управление картой
Результаты
В результате работ над проектом создана первая бета-версия познавательно-аналитического портала, которая включает следующие модули:
- работа с информационными ресурсами в контексте геоданных;
- мощный поисковый модуль, позволяющий агрегировать поиск ведущих поисковых систем, а так же подключенные к системе информационные порталы;
- модуль работы с документами;
- блоки функций социальных систем, таких как: создание групп друзей, управление правами доступа к информационным ресурсам и т.д.
- матричный классификатор информационных ресурсов.