Поддержи Openmeetings

вторник, 3 марта 2009 г.

Видеоконференция на основе СПО и Flash

В предыдущей статье Родион раскрыл, как построить видеоконференцию по протоколу H.323 на основе свободно распространяемого ПО и получил довольно много отзывов и критики. В частности, довольно большое количество читателей усомнились в принципиальной важности использования столь сложного сигнального протокола для большинства задач — действительно, в наше время видеосвязь нужна не только для соединения сложных профессиональных систем, таких, как Tandberg или Polycom, иногда людям нужно просто початиться, или размеры организации, в которой требуется установить связь, слишком малы для внедрения чего-то трудоёмкого или дорогостоящего. Тогда к нам на помощь приходит технология Flash и отличное решение с открытым кодом — проект OpenMeetings.

Основными чертами нашей системы видеосовещаний являются следующие:

  • Обеспечение многоточечной видеосвязи.
  • Отсутствие необходимости установки на компьютерах пользователей дополнительного ПО.
  • Сообщение с сервером при помощи обычного браузера.
  • Совместная работа на «белой доске» и с офисными документами.
  • Невысокие затраты на оборудование: сервер на Pentium 4 2GB RAM способен обрабатывать не менее 100 соединений.
  • Гарантированная надёжность: cрок наработки ПО сервера на отказ не менее 48 часов.
  • Интеграция с продуктами Microsoft.
  • Возможность записи совещания.
  • Использование адресной книги предприятия по протоколу LDAP.
  • Рассылка приглашений на совещания.
  • Инструкции на русском языке.

Дополнительным плюсом является поддержка разных платформ и открытых стандартов. Наша система может работать на любой операционной системе, включая Windows, большинство дистрибутивов Linux, многие версии Unix, а так OS/X. Для работы наших продуктов на сервере должны быть установлены веб и медиа сервера, СУБД MySQL для управления базой данных, Java, Openoffice.org и некоторые другие свободные продукты для конвертации документов. В этом длинном списке Вы можете обратить внимание на наше желание использовать преимущественно свободное программное обеспечение. В своих мыслях мы идём дальше, полагая, что подобная, основанная на международном сотрудничестве, модель производства и распространения ПО послужит восстановлению российской индустрии разработки программного обеспечения, которая будет на равных конкурировать с американскими компаниями.

Сервера

Серверное решение основано на следующих компонентах:

  • MySql — база данных;
  • Apache Tomcat — веб сервер;
  • Red5 — Flash медиа-сервер;
  • OpenOffice.org — сервер документации;
  • OpenMeetings — веб приложение, написанное на java и скриптовом языке.

Соединение с сервером осуществляется по протоколам http (порт 5080), rtmp (порт 1935), rtmpt (порт 8088). Для того, чтобы сервер был виден в сети Интернет, достаточно прокинуть эти три порта на компьютер за роутером или брэндмауром.

Конечно же, проще всего дать ссылку на описание установки уже собранного кода по умолчанию, благо оно есть, и не отвлекать вас более, но я решил пойти по чуть более изощрённому пути. Во-первых, описания установки, как и во всех подобных решениях с открытым кодом не изобилуют подробностями, во-вторых, очень часто требуется внести минимальные изменения по собственной прихоти, или же пожеланиям заказчика, и тогда простой установкой откомпилированного кода не обойтись. С другой стороны, проект достаточно большой, и всё невозможно описать в пределах одной статьи, не превращая её в трактат, поэтому сегодня я ограничусь следующим — в статье будет описано, как получить исходники сервера, отладить и собрать серверный код у себя на компьютере под управлением ОС Windows XP, а также протестировать его работу, а уж как его установить на сервере клиента или вашем собственном, вы разберётесь сами. Работу же над клиентской частью оставим в виде факультатива.

Инструментарий

Итак, начнём с необходимого инструментария.

Получение и компиляция исходного кода

Для начала мы получим, и соберём серверный код. Для этого после установки TortoiseSVN, создадим папку на диске и сделаем туда SVN Checkout последней ревизии кода.

В качестве ссылки на репозиторий указываем https://svn.apache.org/repos/asf/openmeetings. Далее ставим ранее скачанный Eclipse, и в workspace создаём новый проект. Назовём его OpenMeetings, и импортируем туда файловую систему, указав в качестве основной нашу свежесозданную папку.

[далее текст не обновлялся] Обращу ваше внимание, что импортируется содержимое, а не сама папка, чтобы сохранить совместимость со структурой каталогов в Eclipse.

Делаем Window->Show View->Ant и в открывшемся окне, нажав на «Add buildfiles» добавляем билд-файл build.xml, получаем нижеследующую картину:
image

Теперь устанавливаем JDK, его же надо зарегистрировать в Eclipse для последующего использования — это делается посредством добавления пути к установленному JDK в Window->Preferences->Java->Installed JREs. Если всё прописано правильно, двойной клик на построение дистрибутива (dist, пункт по умолчанию) в виде Ant View приведёт к благополучной постройке проекта. Помимо консоли, проконтролировать успех можно, нажав правую кнопку на проекте и выбрав пункт Refresh, в структуре проекта должна появиться папка dist, содержащая построенные файлы OpenMeetings. Поздравляю, вы уже на полпути к победе!
image

База данных

Теперь установим MySQL и подготовим его к использованию, а затем попробуем запустить наш проект. Я не буду погружаться в детализацию этого процесса, так как в принципе, значения по умолчанию вполне подойдут для наших целей — а именно СУБД для небольшого количества клиентов. Разве что кодировку в базе данных я бы поставил UTF-8. После установки стоит зайти на базу, чтобы проверить, что она работает, а также подготовить плацдарм для инсталляции проекта OpenMeetings. Для этого запустим из командной строки, введём пароль — и убедимся что мы в системе и она работает:
image

После того, как вход осуществлён успешно и база данных создана, необходимо отредактировать файл из папки dist(та, что появилась после компиляции)/openmeetings/conf/mysql_hibernate.cfg.xml, прописать в нём пользователя (например root) и его пароль, а также в качестве сервера 127.0.0.1 и базу данных openmeetings. В моём случае строка соединения будет выглядеть так:

jdbc:mysql://127.0.0.1/openmeetings?autoReconnect=true&
useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8

Полученный файл необходимо сохранить там же как hibernate.cfg.xml.

Установка проекта на сервере

Предварительно пропишем переменную окружения JAVA_HOME, чтобы она указывала на JDK.
Установка таблиц проста — запускаем Red5 (файл red5.bat в установочной папке). Теперь наш проект становится доступным через веб (не забудьте про фаервол!). Остаётся последнее — произвести установку и настройку таблиц в базе данных. Заходим на сайт 127.0.0.1/openmeetings/install. Если всё отконфигурировано правильно, то в браузере вы увидите установочную страницу, если же нет, перечитайте инструкции и просмотрите логи Red5, там должны высвечиваться все ошибки. После ввода параметров конфигурации и нажатия кнопки install следует тоже проверить логи — при правильных обстоятельствах там не будут сыпаться различные ошибки, а также будет виден прогресс установки (занимает несколько минут). По окончанию установки остаётся сделать лишь одно — настроить клиента. А именно — вытаскиваем файл с названием main.lzx.swf8.swf из скачанного архива с готовым openmeetings, и кладём его в корень openmeetings. В зависимости от версии ПО его, возможно, придётся переименовать в main.lzx.lzr=swf8.swf — о необходимости такого переименования будет говорить пустой белый экран при заходе на 127.0.0.1/openmeetings после проведённой установки. Если же посмотреть приходящий html-код, легко можно увидеть каким именно должно быть название у вашего скрипта:
image

В большинстве случаев таких хлопот не предвидится. Ну вот и всё, добро пожаловать в конференцию!

Как мы видим, без особых усилий «продвинутый» пользователь ПК может организовать связь на основе ПО с открытым кодом и в этой области, и даже поучаствовать в его развитии. А профессионалам в данном случае отводится роль поддержки, развития проекта, а также удовлетворения особых пожеланий потенциального клиента.

Комментариев нет :

Отправить комментарий