LXF86:Учебники:Kamaelia
|
|
|
Содержание |
Kamaelia: Работа по сети
Майкл Спаркс расскажет, как запустить децентрализованное whiteboard-приложение, используя его новый каркас, а затем расширить его до мультимедиа-вещания и так далее.
Kamaelia – это открытый каркас общего назначения для разработки программ. Вы скажете: ну вот, еще один... Но Kamaelia имеет отличие: она работает с распределенными сетями в стиле BitTorrent для поддержки общего доступа к информации в децентрализованной [peer-to-peer] сети в режиме реального времени. Приложения, разрабатываемые с помощью Kamaelia, умеют мгновенно доставлять информацию, через LAN или интернет, потенциально неограниченному числу машин.
Эта технология возникла благодаря исследованиям BBC в сфере сетевой передачи мультимедийного контента, но стала применяться и в других областях. Она включает компоненты для работы с Freeview (свободное цифровое наземное телевидение в Великобритании) и инструменты обработки мультимедиа, и позволяет разработчикам легко и просто использовать Pygame, OpenGL, сетевые возможности, видеокодек Dirac, Vorbis, Speex и множество других инструментов в одной и той же системе.
Данный урок покажет, как пользоваться whiteboard-приложением, написанным для решения реальных проблем команды Kamaelia. [Whiteboard – приложение, позволяющее пользователям, объединенным сетью, рисовать на одной «доске». В русском языке встречаются термины «белая доска», «разделяемый блокнот», «разделяемая калька». Мы будем говорить «блокнот», – прим. перев.] Наша команда разбросана по разным местам и нуждается в системе совместной работы, поддерживающей и звук, и эскизы, и просто работы – а это может пригодиться многим открытым проектам. Некоторые из возможностей системы описаны во врезке «Что предлагает наш блокнот», справа. Интересно? Тогда займемся.
Часть 1. Установка ПО
Kamealia разработана для SUSE Linux, с использованием Python 2.4. Она должна работать под любым дистрибутивом Linux; но вашу конфигурацию мы вряд ли проверяли – обратная связь с командой разработчиков приветствуется (http://kamaelia.sourceforge.net/Contact.html). Kamaelia должна работать с любой версией Python, начиная с 2.2.2, но мы рекомендуем 2.4. Для установки Kamaelia требуются два основных пакета: ядро системы, называемое Axon; и библиотека компонентов и инструментов Kamaelia. После них устанавливайте любые дополнительные зависимости для желаемых специфических функций (примеры см. во врезке «Зависимости Kamaelia», справа). Для удобства я предполагаю, что вы выполняете установку как root. Кстати, вы можете считать Axon аналогом ядра Linux, а Kamaelia – базовой инсталляцией; все остальные файлы – необязательные дополнения.
Добавляем ингредиенты, по очереди
Axon. Сначала установите Axon, чтобы обеспечить базовый коммуникационный каркас для компонентов. Распакуйте, перейдите в каталог и запустите инсталлятор:
tar zxf Axon-1.5.1.tar.gz cd Axon-1.5.1 python setup.py install
Kamaelia. Затем установим репозиторий компонентов. Распакуйте еще один архив, перейдите в каталог и запустите инсталлятор:
tar zxf Kamaelia-0.5.0.tar.gz cd Kamaelia-0.5.0 python setup.py install
Pygame. Блокнот использует Pygame для отображения и ввода. Pygame может быть уже установлен у вас или включен в ваш дистрибутив. Если его нет, или ваша версия не последняя, установка выполняется легко: распакуйте, перейдите в каталог и запустите инсталлятор: tar zxf pygame-1.7.1release.tar.gz cd pygame-1.7.1release python setup.py install Вам будет задано несколько вопросов, зависящих от вашей локальной установки, вот почему предпочтительней использовать пакеты из вашего дистрибутива!
В этом уроке я остановился только на зависимостях для «блокнота»; но в MegaBundle полно других. Для более подробных инструкций по всем зависимостям загляните в отдельные пакеты или зайдите на http://kamaelia.sourceforge.net/GettingStarted.html. В Kamaelia существуют PVR-инструменты для захвата ТВ-сигнала и временного разделения. Если все прошло успешно, в вашей системе будет установленная Kamaelia. Если натолкнетесь на проблемы, проверьте, предоставляет ли ваш менеджер пакетов соответствующие версии ПО.
Наш эксперт
Майкл Спаркс ведущий инженер BBC Research и лидер открытого проекта Kamaelia. Данный урок и интервью отражают его личное мнение как лидера проекта Kamaelia, а не мнение BBC относительно чего бы то ни было.
Что предлагает наш «блокнот»
- Простейшие функции рисования.
- Поддержка многостраничности с навигацией.
- Каждый «блокнот» может быть клиентом, сервером или сразу и клиентом, и сервером. Если вы подключите свой «блокнот» к моему, а я изменю страницы, вы увидите эти изменения. Все, нарисованное в одном «блокноте», становится видимым на всех подключенных к нему. Поскольку любой «блокнот» может быть и сервером, и клиентом, он является децентрализованным в своей основе. Каждый подключившийся к любому серверу в сети сможет получить все, что предоставляется остальными.
- Поддержка звука с использованием аудиокодека Speex (оптимизированного для разговора и для кодирования с очень низкой частотой дискретизации). То есть можно поговорить с любым из подключенных в данный момент.
- Сессии могут быть записаны для последующего воспроизведения. Пока запись воспроизводится, вы можете использовать «блокнот» как обычно – как и все подключенные к вашей whiteboard-сети.
- Поддержка MP3.
- Консоль с командной строкой.
- Экспериментальная возможность заставить «блокнот» нумеровать локально сохраненные страницы полусинхронным образом.
Зависимости Kamaelia
Kamalelia MegaBundle (http://snipurl.com/xie4) включает все основные зависимости. В ее недрах можно найти:
- Обязательные файлы: Axon-1.5.1.tar.gz, Kamaelia-0.5.0.tar.gz.
- Рекомендуемые файлы: pygame-1.7.1release. tar.gz, Pyrex-0.9.3.1.tar.gz.
- Для поддержки звука в «блокноте»: speex1.0.5.tar.gz, pySpeex-0.2.tar.gz, pymedia-cvspatched.tar.gz.
- Для загрузки и сохранения изображений: Imaging-1.1.5.tar.gz. Для BitTorrent: BitTorrent-4.20.8.tar.gz.
- Для OpenGL: PyOpenGL-2.0.2.01.tar.gz. Поддержка Dirac: dirac-0.5.4.tar.gz.
- Поддержка Vorbis (устанавливается в указанном порядке, в дополнение к Pyrex): libao0.8.6.tar.gz, libogg-1.3.3.tar.gz, libvorbis-1.1.2.tar. gz, pyao-0.82.tar.gz, vorbissimple-0.0.2.tar.gz.
- Freeview (вам понадобится Pyrex и последнее ядро Linux): python-dvb3-0.0.4.tar.gz.
Набор зависимостей довольно велик, но следует помнить, что они требуются только для поддержки дополнительных функций. Не нужен Dirac – не устанавливайте зависимости Dirac!