pyFMS

50 %
50 %
Information about pyFMS

Published on April 13, 2008

Author: Smirnov.Andrey

Source: slideshare.net

Сервер Flash- вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted Андрей Смирнов NetStream

Содержание Обзор существующих решений . Разработка своего решения ( pyFMS): выбор архитектуры, основные проблемы и пути их решения . Борьба за качество: ретрансляция . Полученные количественные характеристики .

Обзор существующих решений .

Разработка своего решения ( pyFMS): выбор архитектуры, основные проблемы и пути их решения .

Борьба за качество: ретрансляция .

Полученные количественные характеристики .

Общая схема RTMP RTMP: симметричный; проприетарный; закрытый. Возможности: удаленный вызов процедур ( RPC) ; управление пропускной способностью; работа с аудио-видео потоками (просмотр и запись). Клиент ( Flash) Сервер RTMP RTMP

RTMP:

симметричный;

проприетарный;

закрытый.

Возможности:

удаленный вызов процедур ( RPC) ;

управление пропускной способностью;

работа с аудио-видео потоками (просмотр и запись).

Существующие решения Коммерческие: Adobe Flash Media Server (FMS) ; Wowza Media Server Pro . Свободное ПО : Red5 ( http://osflash.org/red5/ ) ; Milenia Grafter ( http:// milgra.com / ) ; …

Коммерческие:

Adobe Flash Media Server (FMS) ;

Wowza Media Server Pro .

Свободное ПО :

Red5 ( http://osflash.org/red5/ ) ;

Milenia Grafter ( http:// milgra.com / ) ;



Архитектура сетевого сервера Много процессов. Много нитей. Один поток (асинхронный ввод-вывод). Комбинированный: асинхронный в/в + много нитей / процессов.

Много процессов.

Много нитей.

Один поток (асинхронный ввод-вывод).

Комбинированный: асинхронный в/в + много нитей / процессов.

Концепция нашего решения Простота: не будем реализовывать ничего лишнего; простая архитектура - один поток выполнения. Python : нам хорошо знаком; Twisted Framework ; готовые модули: pyAMF .

Простота:

не будем реализовывать ничего лишнего;

простая архитектура - один поток выполнения.

Python :

нам хорошо знаком;

Twisted Framework ;

готовые модули: pyAMF .

Twisted Framework Концепция отложенного выполнения ( Deferred) . Переносимый асинхронный ввод-вывод ( reactor) . Реализация большого числа базовых протоколов ( HTTP, DNS, Telnet, и т.п.)

Концепция отложенного выполнения ( Deferred) .

Переносимый асинхронный ввод-вывод ( reactor) .

Реализация большого числа базовых протоколов ( HTTP, DNS, Telnet, и т.п.)

Архитектура pyFMS Приложение 2 Приложение 1 Сервер pyFMS Комната 1 Комната 2 Разделяемый объект Поток (вещание) Клиенты:

Схема вещания API Клиент pyFMS Сайт ( API) Сбор и анализ статистики Вещание Чат Разделяемый объект Поток (вещание) Запись потока на диск с последующей обработкой Удаленные вызовы процедур ( RPC)

Эффективность реализации Python – интерпретируемый ЯП прозрачная сложность операций; легкое расширение с помощью модулей на С. Для увеличения производительности в два раза достаточно было : переписать 5% кода на Python; написать один модуль на C ( около 1000 строк кода).

Python – интерпретируемый ЯП

прозрачная сложность операций;

легкое расширение с помощью модулей на С.

Для увеличения производительности в два раза достаточно было :

переписать 5% кода на Python;

написать один модуль на C ( около 1000 строк кода).

Ретрансляция Вещание на 10 000 клиентов? Легко! pyFMS 1 pyFMS 2 pyFMS 3 pyFMS 4 Источник вещания Ретрансляторы Клиенты вещания Автор вещания

Вещание на 10 000 клиентов? Легко!

Количественные характеристики На один процесс (одно ядро процессора): 10 тыс. соединений без потока вещания; Вещание: в среднем 100 Мбит/с, пик 140 Мбит/с; примерно соответствует 700-900 человек, которые смотрят вещание. Ретрансляция позволяет наращивать мощность практически неограниченно.

На один процесс (одно ядро процессора):

10 тыс. соединений без потока вещания;

Вещание: в среднем 100 Мбит/с, пик 140 Мбит/с; примерно соответствует 700-900 человек, которые смотрят вещание.

Ретрансляция позволяет наращивать мощность практически неограниченно.

Всё! Вопросы?

Вопросы?

Add a comment

Related presentations

Related pages

Farad Aero Aluminium Dachträger für Fiat Grande Punto 2005 ...

Kaufen Sie Farad Aero Aluminium Dachträger für Fiat Grande Punto 2005-2015 ohne Dachreling im Auto & Motorrad-Shop auf Amazon.de. Große Auswahl und ...
Read more

Streetlife | User Profile - Louise B

Streetlife makes it easy to connect with local people, ask questions about your area, share news, events and recommendations with neighbours. Join the ...
Read more

Design Toscano Figur Jurassic-Sized Flying Pteranodon ...

Amazon.de: Design Toscano Figur Jurassic-Sized Flying. Kostenlose Lieferung durch Amazon schon ab 29€. Finden Sie mehr Infos zum Produkt hier...
Read more

pypi.python.org

fms/__init__.pyfms/core.pyfms/version.pyfms/__init__.pycfms/core.pycfms/version.pycfms/agents/playorderlogfile.pyfms/agents/randomtrader.pyfms/agents ...
Read more

Fuck Yeah Gravity Falls! - pyf-ms: :music: moumoon ...

pyf-ms: “:music: moumoon - Sunshine Girl ” ... A Gravity Falls fansite. A Gravity Falls site for fans by fans. In league with the Gravity Falls Wiki.
Read more

Just A Boi on Twitter: "#goals https://t.co/PYFmsDMw6E"

Add a location to your Tweets. When you tweet with a location, Twitter stores that location. You can switch location on/off before each Tweet and always ...
Read more

Insurance Channel - YouTube

Life Insurance. Retirement. Investments. #KeepGoodGoing in your life and business with New York Life. A Fortune 100 company founded in 1845, we are the ...
Read more

native girls bathing - YouTube

native girls bathing matt. Subscribe Subscribed Unsubscribe 86 86. Loading... Loading... Working... Add to. Want to watch this again later?
Read more

Leica M Telyt f4 200mm für Sony Nex / A7 adaptiert | eBay

Leica M Telyt f4 200mm für Sony Nex / A7 adaptiert in Foto & Camcorder, Objektive & Filter, Objektive | eBay!
Read more