LINUX.ORG.RU

Python event server


0

0

Мне надо сделать систему для передачи сообщений по сети, т.е. не в смысле как джаббер или ICQ, а по типу модуля dispatch, но только по сети.

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

Сообщения должны доходить гарантированно (т.е. TCP), всё это должно быть секурно и т.д.

Первым приходит в голову Pyro и его EventServer, но т.к. это UDP, там не гарантируется доставка сообщений, порядок их прихода, и к тому же ещё и небезопасно.

Следующим в голову приходит twisted или twisted.spread, там TCP, SSL, безопасность как в концлагере и всё такое. Но зато нет ничего похожего на Event Server. Т.е. надо писать свой сервер и свои клиенты на голом TCP, либо дотачивать twisted.spread.

Никто не может подсказать какой-нибудь такой системы передачи сообщений?

P.S. В гугле ничего не нашёл.

Лучше сам реализуй. Потом выложишь - тебе спасибо будет. Штука иногда действительно актуальная.

Anoxemian ★★★★★
()
Ответ на: комментарий от anonymous

Возможно, но мне надо чтобы это хозяйство работало в том числе и на Win32. Т.е. сервер Linux, а клиенты Win32/Linux.

redvasily
() автор топика

А чем Erlang не катит? То что ты описал реализуется в течении нескольких рабочих дней. Работает везде.

anonymous
()
Ответ на: комментарий от tailgunner

> Например, omniEvents

Кроме того, у omniORB есть бинд к Python и родная прикрутка к openssl для секурности. Недостатков два: 1. CORBA --- страшный корявый монстр, 2. Маршалинг произвольных Python-объектов придется-таки делать самому, хотя для event'ов это несложно сделать pickle'м.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

Ну самому сериализацию сделать нетрудно, есть pickle, есть gnosis.xml, есть xml.marhsall есть twisted.jelly.

А вот про CORBA можно поподробнее, что в нём страшного, корявого и монструозного? Может есть какой хороший обзор/ сравнение технологий?

redvasily
() автор топика
Ответ на: комментарий от redvasily

> что в нём страшного, корявого и монструозного?

Обзором тут не обойдешься, тут надо попробовать и сразу всё станет понятно, за исключением витиеватого хода мыслей разработчиков. Одним из самых непонятных завихрений для меня является то, почему до сих пор нет нормального биндинга к C++. Да, я знаю, что CORBA сочинили тогда, когда не было даже теперешней убогой стандартной библиотеки, но неужели нельзя было с тех пор разработать и стандартизировать биндинг, использующий типы стандартной библиотеки и нормальные smart pointer'ы вместо char*, дебильных sequence и прочих *_var'ов?

Под Python я ее не ковырял. Официально, биндинг к Python еще не release. На вид (попался проект в котором быля Python-часть с CORBA) --- говёненько, особенно для почти всегда красивого Python.

> Может есть какой хороший обзор/ сравнение технологий?

Тут: http://www.zeroc.com/iceVsCorba.html сравнение двух --- ICE и CORBA. Там же есть бенчмарки и пр.

watashiwa_daredeska ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.