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) экономическое обоснование проекты выходит за рамки данной темы, поэтому мы абстрагируемся и считаем, что исследовательские проекты используют инновационный подход не смотря на затраты



















Comments
Интересная тема. Очень жду следующих статей
Спасибо, скоро будут. Жаль что больше всего времени уходит на форматирование и корректировку. Статьи уже все есть.
Ждём