Twisted ПАиПП — Общее видение
Прикладная область:
- Мультисервисы
- Интеграция узлов распределенных систем
- Создание слабо связных, масштабируемых систем
Twisted — гибкий инструмент для решения выше поставленных задач, но для правильного выбора технологии надо понимать причину ее необходимости. Используя API twisted платформы можно сделать многие вещи с нуля, но на практике удобнее использовать его как клей и взять за основу уже готовые продукты.
Проблемы в реализации
- Разрозненность систем — разные протоколы, разные технологии
- Ограниченные сроки на запуск системы
- Закрытое и не стабильное API компонентов системы
Откуда следуют данные проблемы?
В настоящих проектах применяют комбинацию различных технологий. Распределяют задачи и системные ресурсы между разными элементами системы. С учетом нашего времени эти сервисы так или иначе сетевые. Технологии применяемые для построения атомарного элемента системы не всегда выбираются исключительно с точки зрения его технических показателей. Чаше всего смотрят на сроки запуска всей системы целиком и затраты на реализацию, если конечно проект не является исследовательским(1). Поэтому требуется средство для интегрирования элементов системы в единый живой механизм. В идеале такое средство должно работать со всеми протоколами, для того, чтобы снизить зависимость от применяемой технологии в любом месте всей системы.
Twisted — платформа для разработки сетевых приложений.
- Специализируется на интеграции систем.
- В идеале, все функциональные возможности системы должны быть доступны посредством всех протоколов.
- Разработчики должны иметь возможность конфигурировать функциональность через интерфейс посредством одного протокола.
- В дальнейшем разработка будет сфокусирована на системе тонкой конфигурации элементов сервисов Twisted для конечных пользователей, — не инженеров-программистов.
Компоненты Twisted
Приложения (Twisted.Application):
- ЯдроРеактор платформы
- Базовые сервисы и их интерфейсы
- Порты для реализации протоколов
Протоколы (Twisted.Protocols, Twisted.Internet):
- TCP, UDP, SSL, I/O, HTTP, SMTP, DNS, IRC, TELNET, POP3, SSH, AMP …
- memcache, portforward, jabber, sip, sux …
Доступ к удаленным объектам(Twisted.Spread):
- PB(Perspective Broker)
- Jelly
- Banana
Интеграция с GUI (Twisted.Internet):
- TK, GTK, QT, wxWindows
Функциональные модули:
- Twisted.Words — Xish(XML, DOM, X-Path)
- Twisted.Cred - авторизация
- Twisted.Enterprise — базы данных mysql, postgresql, sqlite, oracle …
- Twisted.Persisted — персистентность объектов
Готовые Сервисы:
- Web, Web2 — веб сервера, используются в Zope3
- Words — чат сервисы. Протоколы irc, jabber, msn, oscar, toc
- Names - DNS
- News
- Conch — secure shell
- VFS — виртуальная файловая система
- Разное — FTP, Socks, telnet, manhole
Надстройки над python и вспомогательные компоненты(Twisted.Python):
- dist/distutils — управление пакетами
- log, logfile, syslog — система логирования инфомации. Шаблон observer, rotate log.
- plugin — утилиты для работы с плагинами twisted
- release — утилиты для автоматической сборки пакетов twisted
- и многое другое.
Исполняемые компоненты:
- twistd — запуск сервисов
- trial — автоматическое тестирование компонентов
- mktap — создание сервисов
- lore — автоматическое конвертирование документации. Применяется для сборки документации и книги twisted core.
Это список основных компонентов платформы.
(1) экономическое обоснование проекты выходит за рамки данной темы, поэтому мы абстрагируемся и считаем, что исследовательские проекты используют инновационный подход не смотря на затраты



















Интересная тема. Очень жду следующих статей