Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
 Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
Сокет юникс, protobuff, qRPC?
Ось линуксоподобная.

Сообщение было отредактировано: 23 апр 20, 17:25
23 апр 20, 17:26    [22121611]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50050

shmem

Posted via ActualForum NNTP Server 1.5

23 апр 20, 17:40    [22121618]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
Dimitry Sibiryakov,

Боюсь слишком низкий уровень.
Все писать надо, семафоры, проверялки что там что то появилось для события. Сериализацию.
23 апр 20, 18:22    [22121633]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50050

Ну, раз ты для себя уже всё решил, так в чём вопрос? Между устраивающими тебя вариантами
можешь выбирать с помощью монетки.

Posted via ActualForum NNTP Server 1.5

23 апр 20, 18:37    [22121646]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
Dima T
Member

Откуда:
Сообщений: 14751
ZeroMQ
23 апр 20, 19:23    [22121668]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
Dimitry Sibiryakov,
Не решил. Обсуждаем плюсы минусы
23 апр 20, 19:52    [22121681]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
PetroNotC Sharp
Сокет юникс, protobuff, qRPC?
Ось линуксоподобная.


protobuf здесь выпадает из списка. Он вобщем не относится к интеракции процессов.
Это просто протокол сериализации как и Avro/Apache Thrift. И его можно юзать и для
файлов и для сетей.
23 апр 20, 19:56    [22121683]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Про D-Bus еще можно почитать. Вот щас в Ubuntu используется.

Вообще думаю надо пойти еще и от языка разработки и платформы. Если Qt - то будет одно.
Если Java то будет еще штук 20 как.

ZeroMq удобен когда 1 процесс должен за секунду передать тыщу мегабайт в другой
процесс и тот другой должен так-же быстро это схавать. Если таких требований нет
- то лучше наверное брать что-то высокоуровневое. Или просто то что удобно программировать.
Без амбиций.
23 апр 20, 20:00    [22121687]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 700
Dima T
ZeroMQ

!!! :)
...
Я без зазрения совести пихаю ZMQ во все дыры, пока - полет нормальный.
Правда, я остановился на версии 4.2 (кажется), которую все еще под WinXP можно.
Очень классная транспортная основа, поверх неё легко наращивать прикладное "мясо". Легко расширяется и вбок и вглубь. Не завязан ни на какие-либо брокеры, особенности операционок, не требует инсталляции, надежность, понятные исходники. Почти нет разницы при организации разных уровней (межнитевое, межпроцессное, межкомпьютерное) взаимодействий.
Отличная документация, мощное комьюнити, бесплатно.

Из недостатков: если пытаться использовать сокеты ZMQ "привычным" ("а вот в <Berkeley Sockets>||<Windows Sockets>,...") образом - получится фигня, наблюдал не раз. Т.е., чтение документации должно предшествовать.
23 апр 20, 23:35    [22121770]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Автору я предлагаю написать 2 превед-медвед-мира на D-Bus, ZeroMQ.

И просто посмотреть где оно практически будет удобно. И прикинуть цену внесения изменений.
24 апр 20, 10:19    [22121882]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
mayton
PetroNotC Sharp
Сокет юникс, protobuff, qRPC?
Ось линуксоподобная.


protobuf здесь выпадает из списка. Он вобщем не относится к интеракции процессов.
Это просто протокол сериализации как и Avro/Apache Thrift. И его можно юзать и для
файлов и для сетей.

Да. Прочитал.
А там даже никаких вкусностей сверху нету?
У gRPC такая же картина? Не в курсе?
24 апр 20, 13:29    [22122041]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Я протобуф использовал косвенно. Как часть проекта Apache-ORC. И там протобуф использовался
просто для хранения длинных последовательностей вещественных и целых чисел в файлах.
+Еще были опции сжатия. Но они скорее всего шли от Apache-ORC.
24 апр 20, 13:31    [22122048]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
C gRPC не работал.
24 апр 20, 13:32    [22122050]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
mayton
Автору я предлагаю написать 2 превед-медвед-мира на D-Bus, ZeroMQ.

И просто посмотреть где оно практически будет удобно. И прикинуть цену внесения изменений.
как раз собираюсь.
Подскажи, ожидать API при общении с модулями как в шарпе или java
servis.getUser()
То есть построить семантику методы тут реально?
24 апр 20, 13:35    [22122055]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Не понял суть вопроса. На примере лучше.
24 апр 20, 13:43    [22122062]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
mayton,
Суть построения API в java и тут совершенно противоположная.
Тут шлем структуры с командами по одному и тому же методу.
По крайней мере в протобафе.
А в java или API google есть список методов с комментами.
Как сделать api на 50 методов.
В соап там прокси класс генерится с этими методами.

Сообщение было отредактировано: 24 апр 20, 13:53
24 апр 20, 13:53    [22122076]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
mayton
Не понял суть вопроса. На примере лучше.

servis.getUser()
Сериализовать тут что?
24 апр 20, 13:57    [22122080]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Вряд-ли я тебе отвечу на этот вопрос сразу. Ты начни делать HelloWorld - и по мере поступления
информации - будем смотреть где API удобнее.

Про сериализацию - непонятно. Можно ответить и да и нет. Смотря какие фреймворки и протоколы связи.
24 апр 20, 14:00    [22122084]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
mayton,
ОК. Попозже.
Протобаф - передача структур и классов в другой процесс. А мне метод с именем вызввть надо.
24 апр 20, 14:13    [22122101]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
mayton
Ты начни делать HelloWorld - и по мере поступления
информации - будем смотреть где API удобнее.

народ.
Подскажите как сделать бинарники в протобаф либе для студии в винде.
Я директиву make вообще не знаю.
Вот инструкция
https://github.com/protocolbuffers/protobuf/blob/master/src/README.md
автор
To build protobuf from source, the following tools are needed:

autoconf
automake
libtool
make
g++
unzip

Но тут меня напугало, что делать в винде? Если ничего этого нет?
И make я в жизни не запускал.
Что делать?
С чего начать?
21 май 20, 17:43    [22137213]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
Вот тут пишут что есть уже скомпилированные бинарники.
Но опять же, внутри архивов их не нашел
https://github.com/protocolbuffers/protobuf/releases/
21 май 20, 17:47    [22137217]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
ХЗ. Но там дальше по тексту они дают более конкретную ссылку на CMake + VisualStudio

https://github.com/protocolbuffers/protobuf/blob/master/cmake/README.md
21 май 20, 17:52    [22137222]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
mayton
ХЗ. Но там дальше по тексту они дают более конкретную ссылку на CMake + VisualStudio

https://github.com/protocolbuffers/protobuf/blob/master/cmake/README.md

OK
CMake на компе не было - поставил.
Делаю дальше
21 май 20, 17:58    [22137226]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
c:\Path\to\cmake\build\release>cmake -G "NMake Makefiles" ^
Продолжить? -DCMAKE_BUILD_TYPE=Release ^
Продолжить? -DCMAKE_INSTALL_PREFIX=../../../../install ^
Продолжить? ../..
CMake Error: The source directory "C:/Path/to/cmake" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
- Как убрать вопрос Продолжить?
- путь добавлять в CMakeLists.txt?
21 май 20, 18:09    [22137234]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать для межпроцессного взаимодействия модулей приложений?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4839
PetroNotC Sharp
- путь добавлять в CMakeLists.txt?

по данному вопросу не тот путь был
c:\Path\to\cmake\build\release>cd c:\Path\to\protobuf\cmake\build\release

c:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
Продолжить? -DCMAKE_BUILD_TYPE=Release ^
Продолжить? -DCMAKE_INSTALL_PREFIX=../../../../install ^
Продолжить? ../..
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:20 (project):
The CMAKE_C_COMPILER:

cl

is not a full path and was not found in the PATH.

To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).

Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.


CMake Error at CMakeLists.txt:20 (project):
The CMAKE_CXX_COMPILER:

cl

is not a full path and was not found in the PATH.

To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).

Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
See also "C:/Path/to/protobuf/cmake/build/release/CMakeFiles/CMakeOutput.log".
See also "C:/Path/to/protobuf/cmake/build/release/CMakeFiles/CMakeError.log".
21 май 20, 18:25    [22137243]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
Все форумы / C++ Ответить