Twisted ПАиПП — Общее видение

Прикладная область:

  1.  Мультисервисы
  2. Интеграция узлов распределенных систем
  3. Создание слабо связных, масштабируемых систем

Twisted - гибкий инструмент для решения выше поставленных задач, но для правильного выбора технологии надо понимать причину ее необходимости. Используя API twisted платформы можно сделать многие вещи с нуля, но на практике удобнее использовать его как клей и взять за основу уже готовые продукты.

Проблемы в реализации

  1. Разрозненность систем - разные протоколы, разные технологии
  2. Ограниченные сроки на запуск системы
  3. Закрытое и не стабильное API компонентов системы

Откуда следуют данные проблемы?

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

Twisted - платформа для разработки сетевых приложений.

  • Специализируется на интеграции систем.
  • В идеале, все функциональные возможности системы должны быть доступны посредством всех протоколов.
  • Разработчики должны иметь возможность конфигурировать функциональность через интерфейс посредством одного протокола.
  • В дальнейшем разработка будет сфокусирована на системе тонкой конфигурации элементов сервисов Twisted для конечных пользователей, - не инженеров-программистов.

Компоненты Twisted

twisted-overview

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


Add post to:   Yandex.ru Google Yahoo Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Memori.ru Myscoop.ru 100zakladok.ru Rucity.com Moemesto.ru News2.ru Delicious Reddit Slashdot Digg Technorati
Make comment

Comments

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

Спасибо, скоро будут. Жаль что больше всего времени уходит на форматирование и корректировку. Статьи уже все есть.


Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image