Интерфейс Twisted для других приложений - PullRequest
1 голос
/ 02 апреля 2012

Я решил использовать Twisted для проекта и разработал сервер, который может передавать данные клиентам на других компьютерах. В настоящее время я использую фиктивные данные для тестирования требований к скорости, но теперь мне нужно подключить Twisted к моему другому приложению Python DAQ, которое в основном собирает данные в режиме реального времени (500 Гц) с различных внешних устройств по различным транспортным сетям (например, Bluetooth). (примечание: приложение DAQ (сбор данных) находится на том же компьютере, что и сервер Twisted)

Поскольку приложение DAQ не является частью Twisted Framework, мне интересно, какой самый эффективный (самый быстрый, надежный, с минимальной задержкой) способ передачи данных на сервер Twisted. Я подумывал об использовании облегченной базы данных, memcache, Queue или даже Twisted плагинов, но трудно сказать, какой из них будет наиболее подходящим и наиболее подходящим. Я должен добавить, что приложение DAQ было разработано до принятия решения об использовании Twisted, поэтому до сих пор я рассматривал его отдельно от сети Twisted.

На другой стороне системы, на стороне клиента, которая находится на нескольких компьютерах, у меня похожая проблема. Поскольку потоки данных (я посылаю строки данных, около 100 байтов каждая), я хочу передать эти данные другому приложению, которое будет обрабатывать эти данные для веб-приложения (я бы предпочел использовать для этого Twisted Web Service, но это это не мой выбор!) Веб-приложение написано на Java. Еще раз я рассмотрел варианты выше, но так как я новичок в Twisted, я не уверен, что это лучший подход. (примечание: веб-приложение находится на тех же компьютерах, что и клиенты Twisted)

Любой совет или мысли будут с благодарностью.

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Я бы предложил создать простой протокол со встроенной поддержкой twisted для AMP ;Вы можете подключить это к любым другим языкам или платформам, используя одну из реализаций AMP на других языках .AMP спроектирован так, чтобы его было максимально просто реализовать, поскольку он представляет собой просто сокет с несколькими строками с префиксом длины, сгруппированными в пары ключ / значение.

0 голосов
/ 29 апреля 2012

Очевидно, что вы можете сделать это по-разному, но я бы сначала посмотрел на использование очереди для передачи данных на ваш Twisted сервер.Если вы развернете один из множества инструментов организации очередей с открытым исходным кодом (например, RabbitMQ, ZeroMQ, OpenMQ и множество других), вы сможете писать из своего продукта DAQ с использованием чего-то общего, например, HTTP, а затем читать на свой сервер Twisted, также используя HTTP.Если вам не нравится HTTP, тогда будет много альтернативных транспортов на выбор - просто определите, какой вы хотите использовать, а затем используйте его в качестве основы для выбора вашего инструмента очередей.

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

...