powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что выбрать для межпроцессного взаимодействия модулей приложений?
25 сообщений из 145, страница 4 из 6
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961119
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Тем что Qt у тебя уже есть, а добавляя ещё одну библиотеку — ты добавляешь новую зависимость.

Ну и что?

Да ничего, нормально всё. Добавляйте. Только не понятно зачем задавать бессмысленные вопросы? Или вам снова процитировать разработчика PVS Studio?
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961122
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

Ну и что?

Да ничего, нормально всё. Добавляйте. Только не понятно зачем задавать бессмысленные вопросы? Или вам снова процитировать разработчика PVS Studio?

Нет я считаю что инженерия знаний - это поиск и исопльзование. Если ты нашел что-то и оно решает
твою задачу в разумные сроки - это успех.

Если из принципа не подключать зависимости к коду (дескыть я и сам напишу) - то такой путь
предполагает что ты напишешь сам вообще все. И драйвер к БД. И рендерер 3Д графики.
Можно и Буст написать.

Вобщем граница здесь - зыбкая. Я не осуждаю. Не хотите - не используйте. Но эволюционный
процесс - предполагает предпочтение повторного использования изобретению.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961124
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли ты нашел что-то и оно решает твою задачу в разумные сроки - это успех.

А если нашёл что-то, что решает не совсем твою задачу или не совсем её решает? Вот как у
топикстартера, например.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961125
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Protobuf - все решит.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961126
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если решит не всё, надо найти ещё одну библиотеку, которая в сочетании с ним решит
недостающее. Это Ява-ой-вэй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961127
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Да ничего, нормально всё. Добавляйте. Только не понятно зачем задавать бессмысленные вопросы? Или вам снова процитировать разработчика PVS Studio?

Нет я считаю что инженерия знаний - это поиск и исопльзование. Если ты нашел что-то и оно решает
твою задачу в разумные сроки - это успех.

Если из принципа не подключать зависимости к коду (дескыть я и сам напишу) - то такой путь
предполагает что ты напишешь сам вообще все. И драйвер к БД. И рендерер 3Д графики.
Можно и Буст написать.

Я где-то призывал не использовать сторонние библиотеки? Да ерунда, не было такого. Вы манипулируете.

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

Нет, эволюция как раз и есть квинтэссенция изобретения.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961129
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

А если решит не всё, надо найти ещё одну библиотеку, которая в сочетании с ним решит
недостающее. Это Ява-ой-вэй.

На этом форуме явно не хватает функции лайков. :) Лайк!
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961130
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Нет, эволюция как раз и есть квинтэссенция изобретения.

Давай отвлечемся. Как ты думаешь? Зачем было созданое "наследование" как один из пунктов идеологии ООП?
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961131
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

Я где-то призывал не использовать сторонние библиотеки? Да ерунда, не было такого. Вы манипулируете.

Тогда прошу прощения. Это направление дискуссии закрыто.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961132
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav
Я где-то призывал не использовать сторонние библиотеки?

Только те, которые Гугл "тянет"?
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961138
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
Нет, эволюция как раз и есть квинтэссенция изобретения.

Давай отвлечемся. Как ты думаешь? Зачем было созданое "наследование" как один из пунктов идеологии ООП?

Я, конечно, готов обсуждать банальные вещи, потому что часто нам вещь кажется банальной. Но на практике она оказывается очень сложной, хотя и выгладят простой с первого взгляда. Но в таком случае и вопрос должен намекать на какие-то неординарные моменты. А ваш вопрос банален. Не вижу смысла на него отвечать по сути.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961140
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"стакан полу налитый или полупустой"? )))
Я выше про функционал говорил к такому примеру.
Если потребуется отправить команду - метод по IP на другую машину то qRPC решит задачу.
А DBus не решит.
Это как пример функционала.
Надо это или нет решает руководство.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961156
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
"стакан полу налитый или полупустой"? )))
Я выше про функционал говорил к такому примеру.
Если потребуется отправить команду - метод по IP на другую машину то qRPC решит задачу.
А DBus не решит.
Это как пример функционала.
Надо это или нет решает руководство.


Тут еще тонкий момент. Есть взаимодействие типа посылка месседжей (MQ). И есть - вызов методов (RPC).
Они похожи но первый асинхронный и практически без обратной связи. Тоесть контролируется просто
факт доставки хотя-бы одному потребителю. Работает очень быстро. А что дальше с сообщением
случилось на прикладном уровне? Обработано оно или у тебя был division by zero... ХЗ. Это уже
не задачи MQ. Это уже прикладной слой.

И второе взаимодействие - дёрнул метод (RPC) и получил код ошибки. Работает
медленно. Но надежно. Каждая интеракция между процессами имеет фиксацию.
Ты точно знаешь что получил ответ.

ZeroMQ, DBus - это про первое. Это стрим месседжей.

Любая библиотечка Rest/SOAP/Http - это второе.

И protoBuf - это ни первое и не второе а просто протокол сериализации-десериализации объекта в БЛОБ.
Причем такой блоб которому пофиг на разрядность int, и пофиг на порядок байтов в слове (BigEndian).
И более того. ProtoBuf может подружить между собой например C++/JavaScript и все остальное.

Мы используем протобуф не напрямую а косвенно как Apache-ORC - формат документа для биг-дата
где десятки терабайт таблиц упаковываются в такие-себе Vertical Arrays. И со сжатием ZLib/Snappy
уже поверх данных и завернутых в proto.

А какие усилия сишник потратит для поддержки вот такой кросс-платформенности на основе структур
struct? Я не знаю. Опять-же чтоб прочувствовать преимущества прото-буф - надо чтобы оба процесса
были на разных архитектурах.

А если у тебя процессы - гомогенные (оба под Win32 и одной разрядности) то наверное протобуф
тебе и не нужен.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961158
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

Давай отвлечемся. Как ты думаешь? Зачем было созданое "наследование" как один из пунктов идеологии ООП?

Я, конечно, готов обсуждать банальные вещи, потому что часто нам вещь кажется банальной. Но на практике она оказывается очень сложной, хотя и выгладят простой с первого взгляда. Но в таком случае и вопрос должен намекать на какие-то неординарные моменты. А ваш вопрос банален. Не вижу смысла на него отвечать по сути.


С тобой иногда бывает так сложно говорить. Вот ты сказал первый свою банальность дескыть:

>> Тем что Qt у тебя уже есть, а добавляя ещё одну библиотеку — ты добавляешь новую зависимость.

Это - банальность. Знаешь я не помню в каком бизнес-сегменте ты работешь. Кажется что-то с авиацией
или АСУТП. Но мне кажется что у тебя есть определённая проф-деформация.

Я всегда старался из себя эту деформацию изгонять. Смотреть на мир широко отрытыми глазами
и не позволять предвзятости брать верх.

У тебя есть элемент предвзятости. Ты сослался на PVS-Studio? Ты что? Cотрудник этой организации?
Зачем вообще нам в дискуссию затаскивать это? Неужели у нас нет аргументов кроме какого-то кастомного
приложения которое создавалось чтоб стыдливо закрыть дефекты 40 летней эволюции кодирования на С++?
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961164
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть взаимодействие типа посылка месседжей (MQ).

конечно, в данном топике message-oriented middleware мы не рассматриваем.
Все просто - getName() из другого процесса\демона
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961168
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

А какие усилия сишник потратит для поддержки вот такой кросс-платформенности на основе структур
struct? Я не знаю. Опять-же чтоб прочувствовать преимущества прото-буф - надо чтобы оба процесса
были на разных архитектурах.

На самом деле обмен структурами Human, Car, Dog... причём в произвольном порядке в канале данных. Это весит, ну максимум 500 строчек кода. С проверкой контрольной суммы, с анализом возможных шумов в канале данных. Причём взаимодействие на разных архитектурах.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961170
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Это весит, ну максимум 500 строчек кода.

какого уровня программиста и сколько будет в баксах потеря компании если там баги?
Вот пример на java простейшего сервера для школы.
Они есть готовые
---------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class TestAsServer {

/**
 * 
 * @param args
 * @throws InterruptedException
 */
    public static void main(String[] args) throws InterruptedException {
//  стартуем сервер на порту 3345

        try (ServerSocket server= new ServerSocket(3345)){
// становимся в ожидание подключения к сокету под именем - "client" на серверной стороне                                
                Socket client = server.accept();

// после хэндшейкинга сервер ассоциирует подключающегося клиента с этим сокетом-соединением             
                System.out.print("Connection accepted.");

// инициируем каналы для  общения в сокете, для сервера     

// канал записи в сокет
                DataOutputStream out = new DataOutputStream(client.getOutputStream());
                System.out.println("DataOutputStream  created");

                // канал чтения из сокета
                DataInputStream in = new DataInputStream(client.getInputStream());
                System.out.println("DataInputStream created");

// начинаем диалог с подключенным клиентом в цикле, пока сокет не закрыт                
                while(!client.isClosed()){

                System.out.println("Server reading from channel");

// сервер ждёт в канале чтения (inputstream) получения данных клиента               
                String entry = in.readUTF();

// после получения данных считывает их              
                System.out.println("READ from client message - "+entry);

// и выводит в консоль              
                System.out.println("Server try writing to channel");

// инициализация проверки условия продолжения работы с клиентом по этому сокету по кодовому слову       - quit  
                if(entry.equalsIgnoreCase("quit")){
                    System.out.println("Client initialize connections suicide ...");
                    out.writeUTF("Server reply - "+entry + " - OK");    
                            out.flush();
                    Thread.sleep(3000);
                    break;
                }

// если условие окончания работы не верно - продолжаем работу - отправляем эхо-ответ  обратно клиенту               
                out.writeUTF("Server reply - "+entry + " - OK");                
                System.out.println("Server Wrote message to client.");

// освобождаем буфер сетевых сообщений (по умолчанию сообщение не сразу отправляется в сеть, а сначала накапливается в специальном буфере сообщений, размер которого определяется конкретными настройками в системе, а метод  - flush() отправляет сообщение не дожидаясь наполнения буфера согласно настройкам системы             
                out.flush();    

                }

// если условие выхода - верно выключаем соединения             
                System.out.println("Client disconnected");
                System.out.println("Closing connections & channels.");

                // закрываем сначала каналы сокета !
                in.close();
                out.close();

                // потом закрываем сам сокет общения на стороне сервера!
                client.close();

                // потом закрываем сокет сервера который создаёт сокеты общения
                // хотя при многопоточном применении его закрывать не нужно
                // для возможности поставить этот серверный сокет обратно в ожидание нового подключения

                System.out.println("Closing connections & channels - DONE.");
            } catch (IOException e) {
                e.printStackTrace();
        }
    }
}
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961171
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
а шумы в канале откуда?
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961172
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Я, конечно, готов обсуждать банальные вещи, потому что часто нам вещь кажется банальной. Но на практике она оказывается очень сложной, хотя и выгладят простой с первого взгляда. Но в таком случае и вопрос должен намекать на какие-то неординарные моменты. А ваш вопрос банален. Не вижу смысла на него отвечать по сути.

С тобой иногда бывает так сложно говорить.

У всех свои недостатки, я прошу прощения.

mayton
Вот ты сказал первый свою банальность дескыть:

>> Тем что Qt у тебя уже есть, а добавляя ещё одну библиотеку — ты добавляешь новую зависимость.

Это - банальность.

Конечно, это банальность. Но я не задавал банальных вопросов. А вы, mayton , задали именно что банальные вопросы. При этом вы высококвалифицированный программмист.

mayton
Знаешь я не помню в каком бизнес-сегменте ты работешь. Кажется что-то с авиацией
или АСУТП.

Нет.

mayton
Но мне кажется что у тебя есть определённая проф-деформация.

Конечно, как и у вас.

mayton
Я всегда старался из себя эту деформацию изгонять. Смотреть на мир широко отрытыми глазами
и не позволять предвзятости брать верх.

Это пример для подражания.

mayton
У тебя есть элемент предвзятости. Ты сослался на PVS-Studio? Ты что? Cотрудник этой организации?

Нет, я не сотрудник этой компании. Да, у меня есть элемент предвзятости, но эта предвзятость основана на боевом опыте и на статьях, которые они пишут. Я просто их уважаю и понимаю.

mayton
Зачем вообще нам в дискуссию затаскивать это? Неужели у нас нет аргументов кроме какого-то кастомного
приложения которое создавалось чтоб стыдливо закрыть дефекты 40 летней эволюции кодирования на С++?

?! Хватит говорить ерунду.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961173
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Сокет-сервер - это слишком примитивно. Автору нужен API для
синхронных интеракций. Например на базе Http.

Давайте на верхнем архитектурном уровне
нарисуем этот API как абстракции. А потом имплементируем.

Код: plaintext
1.
2.
3.
interface IPetroServer {
        
}


Почему я хочу именно в таком виде. Чтобы отвязаться от всяких Human, Car, Doc
и от разговоров ниочем.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961175
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav, давай возьмем паузу на недельку. Просто мы напрягаем
общество банальностями и перебранкой.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961176
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Автору нужен API для
синхронных интеракций. Например на базе Http.

Например, ZeroMQ с парой штатный zmq сокетов req-rep.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961177
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
mayton
Автору нужен API для
синхронных интеракций. Например на базе Http.

Например, ZeroMQ с парой штатных zmq сокетов req-rep.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961179
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,
ну дак, для кругозора и альтернативы надо ещё знать одну - две либы.
Чтобы выбирать то было из чего.
...
Рейтинг: 0 / 0
Что выбрать для межпроцессного взаимодействия модулей приложений?
    #39961183
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

это же прикольно.
...
Рейтинг: 0 / 0
25 сообщений из 145, страница 4 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что выбрать для межпроцессного взаимодействия модулей приложений?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]