<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Межпроцессное взаимодействие</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html</link>
    <description>Всем добрый вечер!&lt;br&gt;&lt;br&gt;Недавно впервые столкнулся с задачей межпроцессного взаимодействия. Задача такая:&lt;br&gt;&lt;br&gt;Есть некоторый программный модуль, написанный на С++(Qt). Предполагается, что он должен обеспечивать некоторый набор услуг прикладным процессам, его использующим. При этом заранее не известно, с использованием какого языка программирования будут реализованы эти процессы. Суть в том, что, необходимо реализовать некий универсальный интерфейс обмена информацией между модулем и прикладным ПО, написанном на каком-либо языке (php, java...). Изначально предпологалось использовать для этих целей xml-файлы. Но мне не ясно, по каому принципу должен осуществляться такое взаимодействие. Например, как один процесс будет проинформирован другим процессом о том, что он прекратил запись в файл и можно совершать его чтение... Подскажите пожалуйста, где можно почитать про это? Буду очень рад вашим советам. Может быть, обмен через xml не самый оптимальный вариант. Кстати, критерием оптимальности в данном случае является ско</description>

<item>
    <title>Межпроцессное взаимодействие (goodfornothing)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#12</link>
    <pubDate>Mon, 21 Nov 2011 09:40:09 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Безусловно, идея с сокетами хорошая. Многие языки их поддерживают. Сейчас обдумываю данный &lt;br&gt;&amp;gt;&amp;gt; вариант)В UNIX есть так называемые unix-сокеты, предназначееные именно для обмена между &lt;br&gt;&amp;gt;&amp;gt; локальными процессами. Пытаюсь найти что-то подобное в библиотеках Qt &lt;br&gt;&amp;gt; в qt dbus есть, но я-бы делал через tcp scoket -- проще. &lt;br&gt;&lt;br&gt;Tcp для моих целей обладает избыточностью (ненужными заголовками). Наткнулся на класс QLocalSocket, вроде бы он заточен под обмен между процессами на одной машине.&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (me)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#11</link>
    <pubDate>Mon, 21 Nov 2011 09:32:20 GMT</pubDate>
    <description>&amp;gt; Безусловно, идея с сокетами хорошая. Многие языки их поддерживают. Сейчас обдумываю данный &lt;br&gt;&amp;gt; вариант)В UNIX есть так называемые unix-сокеты, предназначееные именно для обмена между &lt;br&gt;&amp;gt; локальными процессами. Пытаюсь найти что-то подобное в библиотеках Qt &lt;br&gt;&lt;br&gt;в qt dbus есть, но я-бы делал через tcp scoket -- проще.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (goodfornothing)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#10</link>
    <pubDate>Sun, 20 Nov 2011 16:58:47 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; А вот смотрите как легко и просто через сеть организуется передача данных: &lt;br&gt;&amp;gt; у каждой службы есть веб-сервер висящий на своем порту (или просто процесс &lt;br&gt;&amp;gt; слушающий свой сокет).&lt;br&gt;&amp;gt; когда нам надо передать ему данные- мы просто вызываем урл, который дергает &lt;br&gt;&amp;gt; нужный CGI-скрипт (засовываем данные в сокет).&lt;br&gt;&amp;gt; никаких лок-файлов, никаких циклических сканирований. Большую часть работы делает система. &lt;br&gt;&amp;gt; собственно когда я говорил о шине - я подразумевал что передача данных &lt;br&gt;&amp;gt; будет происходить по такой логике, но только будет единая точка входа &lt;br&gt;&amp;gt; в эти сервисы - тоесть сокет будет единственный, а уже шина &lt;br&gt;&amp;gt; будет разруливать кому передать нужное сообщение, согласовывать форматы и т.д.&lt;br&gt;&lt;br&gt;Безусловно, идея с сокетами хорошая. Многие языки их поддерживают. Сейчас обдумываю данный вариант)В UNIX есть так называемые unix-сокеты, предназначееные именно для обмена между локальными процессами. Пытаюсь найти что-то подобное в библиотеках Qt&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (Square)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#9</link>
    <pubDate>Sun, 20 Nov 2011 16:57:02 GMT</pubDate>
    <description>&amp;gt; Если бы я свои деньги зарабатывал подобным образом, меня бы давно с &lt;br&gt;&amp;gt; работы выгнали) &lt;br&gt;&amp;gt; TCP,UDP,SCTP,RTP/IP... На кой??? Обмен данными между процессами на одной машине.&lt;br&gt;&lt;br&gt;А вот смотрите как легко и просто через сеть организуется передача данных:&lt;br&gt;у каждой службы есть веб-сервер висящий на своем порту (или просто процесс слушающий свой сокет).&lt;br&gt;когда нам надо передать ему данные- мы просто вызываем урл, который дергает нужный CGI-скрипт (засовываем данные в сокет).&lt;br&gt;никаких лок-файлов, никаких циклических сканирований. Большую часть работы делает система.&lt;br&gt;Нужно передать данные- просто передаем их.&lt;br&gt;&lt;br&gt;собственно когда я говорил о шине - я подразумевал что передача данных будет происходить по такой логике, но только будет единая точка входа в эти сервисы - тоесть сокет будет единственный, а уже шина будет разруливать кому передать нужное сообщение, согласовывать форматы и т.д.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (goodfornothing)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#8</link>
    <pubDate>Sun, 20 Nov 2011 16:17:24 GMT</pubDate>
    <description>Если бы я свои деньги зарабатывал подобным образом, меня бы давно с работы выгнали)&lt;br&gt;&lt;br&gt;TCP,UDP,SCTP,RTP/IP... На кой??? Обмен данными между процессами на одной машине.&lt;br&gt;&lt;br&gt;Спасибо за ответы!!!&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (elvenic)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#7</link>
    <pubDate>Sat, 19 Nov 2011 22:09:17 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Скажем так, нужно выбрать наиболее быстрый вариант обмена с сохранением универсальности &lt;br&gt;&amp;gt; Сначала делаешь на файлах, полгода получаешь зарплату.&lt;br&gt;&amp;gt; Потом, случайно так, выясняется что это тормоза...&lt;br&gt;&amp;gt; Придумываешь делать на сигналах иль пайпах,... ещё пол года получаешь зарплату &lt;br&gt;&amp;gt; Когда чувствуешь, что начальство уже начинает сомневаться... , ты победоносно, &lt;br&gt;&amp;gt; за пару недель делаешь на TCP/IP ...&lt;br&gt;&lt;br&gt;Внемлите! Внемлите словам мудрого!&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#6</link>
    <pubDate>Sat, 19 Nov 2011 18:31:49 GMT</pubDate>
    <description>&amp;gt; Скажем так, нужно выбрать наиболее быстрый вариант обмена с сохранением универсальности &lt;br&gt;&lt;br&gt;Сначала делаешь на файлах, полгода получаешь зарплату.&lt;br&gt;Потом, случайно так, выясняется что это тормоза...&lt;br&gt;Придумываешь делать на сигналах иль пайпах,... ещё пол года получаешь зарплату &lt;br&gt;Когда чувствуешь, что начальство уже начинает сомневаться... , ты победоносно, &lt;br&gt;за пару недель делаешь на TCP/IP ... &lt;br&gt;&lt;br&gt;Пох...ю на проблему, годовая зарплата освоена. :) &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#5</link>
    <pubDate>Sat, 19 Nov 2011 18:24:48 GMT</pubDate>
    <description>&amp;gt; Всем добрый вечер!&lt;br&gt;&amp;gt; Недавно впервые столкнулся с задачей межпроцессного взаимодействия. Задача такая: &lt;br&gt;&amp;gt; Есть некоторый программный модуль, написанный на С++(Qt). Предполагается, что он должен &lt;br&gt;&amp;gt; обеспечивать некоторый набор услуг прикладным процессам, его использующим. При этом заранее &lt;br&gt;&amp;gt; не известно, с использованием какого языка программирования будут реализованы эти процессы. &lt;br&gt;&lt;br&gt;pipe / shared memory / сигналы  и сюрприз - TCP,UDP,SCTP,RTP/IP :) &lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Межпроцессное взаимодействие (goodfornothing)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9294.html#4</link>
    <pubDate>Sat, 19 Nov 2011 11:01:03 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; начать писать в файл - он делает лок. закончил писать -снял &lt;br&gt;&amp;gt; лок.&lt;br&gt;&amp;gt; другой процесс - проверяет есть ли лок- если есть - на случайный &lt;br&gt;&amp;gt; промежуток вермени откладывает попытку записи... и как только лок снимится- делает &lt;br&gt;&amp;gt; аналогично -ставит лок, пишет, снимает лок.&lt;br&gt;&amp;gt; считывание рабочего файла-делать по дате последней модификации файла. читающий процесс &lt;br&gt;&amp;gt; запоминает время последней модификации (это атрибут файла на уровне файловой системы),и &lt;br&gt;&amp;gt; как только оно поменяется- значит стоит считать какието обновленные данные.&lt;br&gt;&amp;gt; вобще, обмен через файлы - имхо самый медленный. через сокеты -и быстрее &lt;br&gt;&amp;gt; и универсальнее.&lt;br&gt;&lt;br&gt;Ваша мысль мне ясна)Я понимаю, что обмен через файл - штука сама по себе медленная, но файл универсален. Я достаточно хорошо знаком с C и C++, а о других языках имею весьма поверхностное представление. Все ли они поддерживают сокеты??? Могу ли я быть уверен, что с моим приложением через сокеты сможет общаться приложение, написанное на любом другом языке (широко </description>
</item>

</channel>
</rss>
