powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / обмен между приложениями
40 сообщений из 40, показаны все 2 страниц
обмен между приложениями
    #34434498
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
У меня вопрос, какую технологию лучше выбрать для обмена данными между приложениями, если программы могут находиться как на одном компьютере, так и на разных компьютерах.

Нужно решить задачу создания диспетчерской службы, которая состоит из подсистемы сбора данных, сервера приложений, рабочих мест диспетчеров.
Подсистема сбора данных снимает данные с датчиков,позволяет управлять оборудованием (выполнять команду телеуправления) и передаёт их серверу приложений (обмена на основе TCP - это требование). Сервер приложений выполняем архивирование полученных данных (запись в БД) и предоставление данных клиента (рабочие места). Вопрос какую технологию лучше выбрать для взаимодействия клиентских программ и сервера приложений, если возможно, что программы будут находиться как одном компьютере, так и на разных? Можно ли успользовать TCP для обмена программ находящихся на однои компьютере? Насколько я знаю для данной задачи часто успользую технологию OPC, которая основана на DCOM. Но как я понимаю использование данной технологии довольно трудоёмко.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34435215
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TCP - верное решение. Читай про работу с socket
...
Рейтинг: 0 / 0
обмен между приложениями
    #34435503
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlTCP - верное решение. Читай про работу с socket

свои пять копеек...
чтоб не тратить зря ресурсы (бывает что приложений, коннектящихся к серваку, очень много на одной машине) - делают аутпрок сервер (COM). Енто экзешничек в задачи которого входит удержание одного коннекшенна TCP с рабочей станции до сервака.

с уважением
(круглый)
...
Рейтинг: 0 / 0
обмен между приложениями
    #34439203
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, много приложений, коннектящих к серваку не будет. Коннектится буду всего несколько программ, установленных на рабочих местах диспетчера.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34439505
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему TCP ялвяется лучшим вариантом? Какие ещё варианты могут быть?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34439578
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005А почему TCP ялвяется лучшим вариантом? Какие ещё варианты могут быть?

RPC
...
Рейтинг: 0 / 0
обмен между приложениями
    #34439917
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как насчёт DCOM?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34439992
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
обмен между приложениями
    #34440025
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005А как насчёт DCOM?

Те же яйца, но от Microsoft

чем вам TCP так не угодил ???
...
Рейтинг: 0 / 0
обмен между приложениями
    #34440875
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я знаю разработчики других систем используют технологию OPC, которая основана на DCOM. Как я понимаю, существуют стандартные интерфейсы, с помощью котороых можно обращаться к сервисам сервера. Но насколько я знаю, эти стандартные интерфейс достаточно сложны и реализовать их очень трудоёмко. Если выбрать TCP, то поверх его придётся придумывать какой-то свой протокол для обмена между клиентскими программи диспетчеров и сервером приложений.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34440908
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Насколько я знаю разработчики других систем используют технологию OPC, которая основана на DCOM. Как я понимаю, существуют стандартные интерфейсы, с помощью котороых можно обращаться к сервисам сервера. Но насколько я знаю, эти стандартные интерфейс достаточно сложны и реализовать их очень трудоёмко. Если выбрать TCP, то поверх его придётся придумывать какой-то свой протокол для обмена между клиентскими программи диспетчеров и сервером приложений.

Ну да протокол. Можете придумать для каждой типовой пары сервер-клиент свои протоколы. Для большой надежности впереди их означивать дискриминаторами. Это очень сложно что ли? Или в чем вопрос?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34441035
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для систем автоматизации, как я понимаю, существуют стандартные протоколы, основанные, на DCOM. Просто хотелось бы на всех уровня взаимодействия системы использовать стандартные протоколы. Например, сервер приложений часто взаимодействует с системой сбора данных по стандартному отраслевому телемеханическому протоколу, который работате поверх TCP. Конечно можно придумать свой протокол для обмена между серврером приложений и клиентами, но в идеале хотелось бы использовать в системе стандарные процедуры взаимодействия. OPC, как я по нимаю фактически является стандртом, котороый для систем автоматизации определяет интерфейсы (COM), которые нужно реализовать. Но эти интерфейсы, видимо, очень сложные и реализовать их непросто. Насколько я знаю, некоторые фирмы разрабатывают специальный ToolKit, для создания OPC сервера. Конечно, вариант реализации своего протокола, которые будет использовать TCP, тоже, по-моему является, неплохим решением, хотелось бы по возможности рассмотреть и другие варианты. Кстати по поводу TCP, если на одном компьютере установлены сервер и два клиента, как происходит обмен (простите за глупый вопрос)? Позволяет ли TCP без ограничений обмениваться с программами расположенными на том, же компьютере?
Может кто скажет, а насколько трудна реализация сервера на основе DCOM?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34441101
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Для систем автоматизации, как я понимаю, существуют стандартные протоколы, основанные, на DCOM. Просто хотелось бы на всех уровня взаимодействия системы использовать стандартные протоколы. Например, сервер приложений часто взаимодействует с системой сбора данных по стандартному отраслевому телемеханическому протоколу, который работате поверх TCP. Конечно можно придумать свой протокол для обмена между серврером приложений и клиентами, но в идеале хотелось бы использовать в системе стандарные процедуры взаимодействия. OPC, как я по нимаю фактически является стандртом, котороый для систем автоматизации определяет интерфейсы (COM), которые нужно реализовать. Но эти интерфейсы, видимо, очень сложные и реализовать их непросто. Насколько я знаю, некоторые фирмы разрабатывают специальный ToolKit, для создания OPC сервера. Конечно, вариант реализации своего протокола, которые будет использовать TCP, тоже, по-моему является, неплохим решением, хотелось бы по возможности рассмотреть и другие варианты. Кстати по поводу TCP, если на одном компьютере установлены сервер и два клиента, как происходит обмен (простите за глупый вопрос)? Позволяет ли TCP без ограничений обмениваться с программами расположенными на том, же компьютере?
Может кто скажет, а насколько трудна реализация сервера на основе DCOM?

DCOM. Наверное, надо искать тематическую документацию.

2 клиента на разных портах будут коннектится к серверу на 3-м порте. Сервер будет иметь в свою очередь 3 сокета на своем порте - один базовый, и два для каждого из клиентов для обмена. Т.е. все то же, что и на удаленных компах, единственное отличие - данные не будут вываливаться в сеть, а будут проходить через циклический интерфейс (loopback, так называемый).

Ограничения - порты клиентов и серверов должны быть разными, а так то же самое.

Кстати, для udp есстествено, что порты должны быть разными, а для tcp теоретически это не обяазательно, т.к. он является сессия-ориентированным.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34441284
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если на одном компьютере N-клиентов, то нужно использовать N+1 портка (N - для клиентов и один для сервера). Я понимаю, что это случай не типичный, в таком случае, система не очень масштабируема.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34441400
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OLEG_2005Если на одном компьютере N-клиентов, то нужно использовать N+1 портка (N - для клиентов и один для сервера). Я понимаю, что это случай не типичный, в таком случае, система не очень масштабируема.DСОМ тоже не по воздуху летает, кроме того масштабируемость DCOM не бесконечна. Разворачивать приложения DCOM у заказчика - это всегда головная боль. В отличие от сокет связи, достаточно прописать ПК в сети, даже ресурс не надо расшаривать..
Но глядя на твою задачу, я не вижу, где у тебя N клиентов на одной машине?
Аналогичную по архитектуре службу для охраны я сделал на сокетах. Хотя первоначально мы моделировали на DCOM.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34441948
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сокеты или corba. Если опыта с сокетами нет, особенно для многопоточных прог, то я бы для C++ использовал библиотеку ACE. corba даст переносибельность между языками и платформами, но с ней прийдется предварительно плотно поразбираться. Для с++ можно например использовать ORBs: MICO или TAO.
Для несложной проги я бы выбрал сокеты+ACE.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34442195
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за библиотека ACE?
А кто-нибудь знаком с технологоией OPC. В интернете есть кое-какие статьи, но по-моему, очень уж поверхностные?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34442219
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот любят некоторые люди искать себе геморой :(
...
Рейтинг: 0 / 0
обмен между приложениями
    #34442225
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005А что за библиотека ACE?
А кто-нибудь знаком с технологоией OPC. В интернете есть кое-какие статьи, но по-моему, очень уж поверхностные?
библиотека имени Дага Шмидта . Даже книжка есть на руссском Программирование сетевых приложений на С++ 2 тома
...
Рейтинг: 0 / 0
обмен между приложениями
    #34442358
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OLEG_2005А что за библиотека ACE?
А кто-нибудь знаком с технологоией OPC. В интернете есть кое-какие статьи, но по-моему, очень уж поверхностные?
OPC это один из стандартов подключения различного hardware к ПК. Разработка серверной части с нуля не тривиальна. Клиенты проще и есть в open source. Здесь есть кое-что и основные ссылки.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34443076
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Насколько я знаю разработчики других систем используют технологию OPC, которая основана на DCOM. Как я понимаю, существуют стандартные интерфейсы, с помощью котороых можно обращаться к сервисам сервера. Но насколько я знаю, эти стандартные интерфейс достаточно сложны и реализовать их очень трудоёмко. Если выбрать TCP, то поверх его придётся придумывать какой-то свой протокол для обмена между клиентскими программи диспетчеров и сервером приложений.

По моим сведениям, с DCOM начнуться принципиальные проблемы как только нужно будет вылезти из пределов локальной сети.
А придумать протокол придется, не Вы первый, также как и писать спецификацию интерфейсов СОМ.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34443227
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrewDСОМ тоже не по воздуху летаетвроде должен на тцп летать? Он же умрёт, если не на тцп.
Лучше юзать сокеты, т.к. никакой фреймворк с твоём случае ничего не даст кроме тормозов и сложности. Протокол обмена данными придётся придумывать в любом случае, разницы никакой. Кроме того, тцп – всем стандартам стандарт
...
Рейтинг: 0 / 0
обмен между приложениями
    #34444091
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю, за пределы локальной сети вылазить не надо. Но нужно, чтобы программы, который обмениваются, могли находиться как на одной машие (несколько клиентских програм и сервер), так и на разных компютерах в локальной сети.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34444098
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Насколько я понимаю, за пределы локальной сети вылазить не надо. Но нужно, чтобы программы, который обмениваются, могли находиться как на одной машие (несколько клиентских програм и сервер), так и на разных компютерах в локальной сети.

Клиенту не обязательно привязываться к определенному порту, система сама может ему выделить любой свободный. Поэтому клиенты могут не заботиться о своих портах. И поэтому им абсолютно параллельно на локальной машине сервер или на удаленной.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34444135
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Но нужно, чтобы программы, который обмениваются, могли находиться как на одной машие (несколько клиентских програм и сервер), так и на разных компютерах в локальной сети.и какие с этим могут быть проблемы?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34444161
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh
Клиенту не обязательно привязываться к определенному порту, система сама может ему выделить любой свободный. Поэтому клиенты могут не заботиться о своих портах. И поэтому им абсолютно параллельно на локальной машине сервер или на удаленной.

Можно поподробнее об этом? Каким образом происходи выделение порта.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34444177
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005 Akh
Клиенту не обязательно привязываться к определенному порту, система сама может ему выделить любой свободный. Поэтому клиенты могут не заботиться о своих портах. И поэтому им абсолютно параллельно на локальной машине сервер или на удаленной.

Можно поподробнее об этом? Каким образом происходи выделение порта.

Создаешь сокет tcp (socket()) и начинаешь коннектится (connect()) куда тебе надо не делая bind(). Система сама выделит порт, который ей удобней (выделение происходит на этапе socket(), и его могно переопредилить функцией bind(). Но в нашем случае это ни к чему).
...
Рейтинг: 0 / 0
обмен между приложениями
    #34446442
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh OLEG_2005 Akh
Клиенту не обязательно привязываться к определенному порту, система сама может ему выделить любой свободный. Поэтому клиенты могут не заботиться о своих портах. И поэтому им абсолютно параллельно на локальной машине сервер или на удаленной.

Можно поподробнее об этом? Каким образом происходи выделение порта.

Создаешь сокет tcp (socket()) и начинаешь коннектится (connect()) куда тебе надо не делая bind(). Система сама выделит порт, который ей удобней (выделение происходит на этапе socket(), и его могно переопредилить функцией bind(). Но в нашем случае это ни к чему).

у меня вопрос:
а какой порт вы сервером слушать будете?

чего-то в топе тут намутили, что а шфигею. чего тут придумывать, есть же TCP нормальный. и ничего не надо придумывать.

искать (в поиске) по фразам:
socket
connect
listen
если никс, то select
если винда, то WSAAsyncSelect
send
recv

примеров миллионы если не больше.
надо только разобраться.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34446459
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin Akh OLEG_2005 Akh
Клиенту не обязательно привязываться к определенному порту, система сама может ему выделить любой свободный. Поэтому клиенты могут не заботиться о своих портах. И поэтому им абсолютно параллельно на локальной машине сервер или на удаленной.

Можно поподробнее об этом? Каким образом происходи выделение порта.

Создаешь сокет tcp (socket()) и начинаешь коннектится (connect()) куда тебе надо не делая bind(). Система сама выделит порт, который ей удобней (выделение происходит на этапе socket(), и его могно переопредилить функцией bind(). Но в нашем случае это ни к чему).

у меня вопрос:
а какой порт вы сервером слушать будете?


Определенно выбранный. Каждый сервер имеет свои стандартные порты (ssh, samba, ...), так же будет и разрабатываемый.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34454582
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DCOM - только для Виндоус и с секюрити потом забодаешся - то не работает что права не те, то какуюто аутомейшн длл не установили и он не работает.

Короче - TCP.
А для данных - почитать RFC 1832 - XDR
...
Рейтинг: 0 / 0
обмен между приложениями
    #34454968
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Короче - TCP.
А для данных - почитать RFC 1832 - XDR"

А об этом можно поподробнее? Как я понял это формат представления данных в RPC.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34454984
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вы что? Садисты мозахисты? Тынц.
...
Рейтинг: 0 / 0
обмен между приложениями
    #34455666
ddev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рекомендую OPC - удобно блин.
а поводу трудоемкости - ничего страшного, с помощью toolkit-а все пишется за пару дней.
из бесплатных рекомендую graybox opc server toolkit
...
Рейтинг: 0 / 0
обмен между приложениями
    #34456133
dr-Wicked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно подробнее про OPC и OPC-UA(если склероз не изменяет)
Regards
dr-Wicked
...
Рейтинг: 0 / 0
обмен между приложениями
    #34456146
dr-Wicked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От себя добавлю что мне нравится remoting.
Преимущество - поддержка нескольких несущих протоколов(ipc, tcp, http)
Regards
dr-Wicked
...
Рейтинг: 0 / 0
обмен между приложениями
    #34458065
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ddevрекомендую OPC - удобно блин.
а поводу трудоемкости - ничего страшного, с помощью toolkit-а все пишется за пару дней.
из бесплатных рекомендую graybox opc server toolkit

А можно подробнее о toolkit? Где можно достать бесплатный? И какие у него ограничения?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34458067
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dr-WickedОт себя добавлю что мне нравится remoting.
Преимущество - поддержка нескольких несущих протоколов(ipc, tcp, http)
Regards
dr-Wicked

Ты имеешь в виду Net Remoting?
...
Рейтинг: 0 / 0
обмен между приложениями
    #34458888
dr-Wicked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. На нём кстати OPC-UA и работает.
Regards
dr-Wicked
...
Рейтинг: 0 / 0
обмен между приложениями
    #34458897
dr-Wicked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё на нём работают элементы альбатроса , насколько видно из описания, ну и я :)
Regards
dr-Wicked
...
Рейтинг: 0 / 0
обмен между приложениями
    #34459438
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое OPC UA?
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / обмен между приложениями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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