Re: Поток информации между приложениями
От: XuMuK Россия  
Дата: 11.11.14 10:37
Оценка:
Здравствуйте, pestis, Вы писали:

P>Доброго дня, коллеги.


P>Для одной интересной штуки нужно уметь передавать поток информации между расчетным модулем и слоем отображения. Но:

P>
P>Подскажите, какие еще есть варианты?


ZeroC ICE — кроссплатформенный rpc, для вызовов в пределах одной машины сеть не используется, но нет биндов под js и сильно негуманная коммерческая лицензия.
Re[7]: Поток информации между приложениями
От: pestis  
Дата: 11.11.14 15:56
Оценка:
Здравствуйте, Nuzhny, Вы писали:


N>А мне кажется, что тут есть всего 1 момент, который надо учитывать:

N>1. если при таком интенсивном взаимодействии приходится копировать память с участием CPU (хотя бы 1 раз), то будет тормозить;
N>2. если память можно копировать через DMA, то будет всё хорошо (например, запустить копирование данных в видеопамять и другим приложением подхватить текстуру);
N>3. если память вообще не надо копировать, то всё будет превосходно.

N>То есть топикстартеру надо сразу отметать (что он и сделал) всякие сети и протоколы, основанные на копировании.

N>В тоже самое время факт ограничения типа разработки на JavaScript чуть ли не закрывает возможность использования вариантов (2) и (3).
N>По (2): умеет какой-нибудь WebGL подхватывать указатели на видеопамять? Если нет, то вариант полностью отметаем.

Спасибо за понимание. На самом деле проблема не только в копировании. Грубо приближенно мою задачу можно сравнить с моделированием на регулярной стеке. Сетка большая и ограничена только объемом памяти и производительностью CPU. Железо десктопное, без выкрутасов. Производительность чем больше тем лучше. Будет слишком быстро, можно увеличить размер сетки и получить более точные результаты. Аналогично и с памятью.

Это основная причина по которой меня не устраивают RPC-based протоколы. Мало того что нужно протаскивать изменения через протокол, так еще и придется хранить по копии сетки для каждого инструмента. Либо существенно усложнять логику расчетов вводя дополнительные понятия.

Меня бы спасла технология позволяющая клиентам засылать в расчетный модуль "послов" которые имея прямой доступ к данным предрасчитают все что им нужно и выплюнут результаты в любой RPC протокол, хоть HTTP. Желательно чтобы эти "послы" писались на чем-то более высокоуровневом чем plain C, работали в read-only песочнице и не могли влиять друг на друга. Поэтому тупое решение с динамической линковкой чужих модулей тут не пойдет.
Re: Поток информации между приложениями
От: Baudolino  
Дата: 12.11.14 13:17
Оценка:
Здравствуйте, pestis, Вы писали:
P>Подскажите, какие еще есть варианты?
IPC через pipes?
http://carminedimascio.com/2014/01/named-pipes-with-java/
Написать на С слой абстракции Win/*nix, если его еще нет готового (POSIX, насколько я понимаю, не подойдет), и все. Java/JavaScript/.Net прочитать смогут.
Re[8]: Поток информации между приложениями
От: enji  
Дата: 12.11.14 13:29
Оценка: 6 (1)
Здравствуйте, pestis, Вы писали:

P>Меня бы спасла технология позволяющая клиентам засылать в расчетный модуль "послов" которые имея прямой доступ к данным предрасчитают все что им нужно и выплюнут результаты в любой RPC протокол, хоть HTTP. Желательно чтобы эти "послы" писались на чем-то более высокоуровневом чем plain C, работали в read-only песочнице и не могли влиять друг на друга. Поэтому тупое решение с динамической линковкой чужих модулей тут не пойдет.


ну какой-нить встроенный интерпретатор, типа луа или того же питона
Re[3]: Поток информации между приложениями
От: Mr.Delphist  
Дата: 12.11.14 13:36
Оценка:
Здравствуйте, pestis, Вы писали:

P>Хочется не выдумывать протокол, а высунуть поток всех данных и пусть разработчики клиентов решают что им нужно, а что нет. Что udp что tcp с сырым потоком не справятся, придется городить подписки и прочие оптимизации.


Тогда берите протокол типа MQTT — клиенты подпишутся на то что захотят.
Re[9]: Поток информации между приложениями
От: pestis  
Дата: 12.11.14 15:26
Оценка:
Здравствуйте, enji, Вы писали:

E>ну какой-нить встроенный интерпретатор, типа луа или того же питона


Спасибо, Lua это отличная идея.
Re[3]: Поток информации между приложениями
От: Alex912  
Дата: 24.11.14 08:51
Оценка:
Здравствуйте, pestis, Вы писали:

P>Спасибо, не подойдет. Этот тот же TCP/IP, вид сбоку.


ipc

А вообще если ничего из существующего не подходит, напиши сам.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.