
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.04.2007, 15:16
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
Здравствуйте! У меня вопрос, какую технологию лучше выбрать для обмена данными между приложениями, если программы могут находиться как на одном компьютере, так и на разных компьютерах. Нужно решить задачу создания диспетчерской службы, которая состоит из подсистемы сбора данных, сервера приложений, рабочих мест диспетчеров. Подсистема сбора данных снимает данные с датчиков,позволяет управлять оборудованием (выполнять команду телеуправления) и передаёт их серверу приложений (обмена на основе TCP - это требование). Сервер приложений выполняем архивирование полученных данных (запись в БД) и предоставление данных клиента (рабочие места). Вопрос какую технологию лучше выбрать для взаимодействия клиентских программ и сервера приложений, если возможно, что программы будут находиться как одном компьютере, так и на разных? Можно ли успользовать TCP для обмена программ находящихся на однои компьютере? Насколько я знаю для данной задачи часто успользую технологию OPC, которая основана на DCOM. Но как я понимаю использование данной технологии довольно трудоёмко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.04.2007, 18:07
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
TCP - верное решение. Читай про работу с socket ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.04.2007, 19:56
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
White OwlTCP - верное решение. Читай про работу с socket свои пять копеек... чтоб не тратить зря ресурсы (бывает что приложений, коннектящихся к серваку, очень много на одной машине) - делают аутпрок сервер (COM). Енто экзешничек в задачи которого входит удержание одного коннекшенна TCP с рабочей станции до сервака. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 09:05
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
Нет, много приложений, коннектящих к серваку не будет. Коннектится буду всего несколько программ, установленных на рабочих местах диспетчера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 10:35
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
А почему TCP ялвяется лучшим вариантом? Какие ещё варианты могут быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 10:51
|
|||
|---|---|---|---|
|
|||
обмен между приложениями |
|||
|
#18+
OLEG_2005А почему TCP ялвяется лучшим вариантом? Какие ещё варианты могут быть? RPC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 12:02
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
А как насчёт DCOM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 12:25
|
|||
|---|---|---|---|
|
|||
обмен между приложениями |
|||
|
#18+
OLEG_2005А как насчёт DCOM? Те же яйца, но от Microsoft чем вам TCP так не угодил ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 15:30
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
Насколько я знаю разработчики других систем используют технологию OPC, которая основана на DCOM. Как я понимаю, существуют стандартные интерфейсы, с помощью котороых можно обращаться к сервисам сервера. Но насколько я знаю, эти стандартные интерфейс достаточно сложны и реализовать их очень трудоёмко. Если выбрать TCP, то поверх его придётся придумывать какой-то свой протокол для обмена между клиентскими программи диспетчеров и сервером приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 15:37
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
OLEG_2005Насколько я знаю разработчики других систем используют технологию OPC, которая основана на DCOM. Как я понимаю, существуют стандартные интерфейсы, с помощью котороых можно обращаться к сервисам сервера. Но насколько я знаю, эти стандартные интерфейс достаточно сложны и реализовать их очень трудоёмко. Если выбрать TCP, то поверх его придётся придумывать какой-то свой протокол для обмена между клиентскими программи диспетчеров и сервером приложений. Ну да протокол. Можете придумать для каждой типовой пары сервер-клиент свои протоколы. Для большой надежности впереди их означивать дискриминаторами. Это очень сложно что ли? Или в чем вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 16:08
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
Для систем автоматизации, как я понимаю, существуют стандартные протоколы, основанные, на DCOM. Просто хотелось бы на всех уровня взаимодействия системы использовать стандартные протоколы. Например, сервер приложений часто взаимодействует с системой сбора данных по стандартному отраслевому телемеханическому протоколу, который работате поверх TCP. Конечно можно придумать свой протокол для обмена между серврером приложений и клиентами, но в идеале хотелось бы использовать в системе стандарные процедуры взаимодействия. OPC, как я по нимаю фактически является стандртом, котороый для систем автоматизации определяет интерфейсы (COM), которые нужно реализовать. Но эти интерфейсы, видимо, очень сложные и реализовать их непросто. Насколько я знаю, некоторые фирмы разрабатывают специальный ToolKit, для создания OPC сервера. Конечно, вариант реализации своего протокола, которые будет использовать TCP, тоже, по-моему является, неплохим решением, хотелось бы по возможности рассмотреть и другие варианты. Кстати по поводу TCP, если на одном компьютере установлены сервер и два клиента, как происходит обмен (простите за глупый вопрос)? Позволяет ли TCP без ограничений обмениваться с программами расположенными на том, же компьютере? Может кто скажет, а насколько трудна реализация сервера на основе DCOM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 16:19
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
OLEG_2005Для систем автоматизации, как я понимаю, существуют стандартные протоколы, основанные, на DCOM. Просто хотелось бы на всех уровня взаимодействия системы использовать стандартные протоколы. Например, сервер приложений часто взаимодействует с системой сбора данных по стандартному отраслевому телемеханическому протоколу, который работате поверх TCP. Конечно можно придумать свой протокол для обмена между серврером приложений и клиентами, но в идеале хотелось бы использовать в системе стандарные процедуры взаимодействия. OPC, как я по нимаю фактически является стандртом, котороый для систем автоматизации определяет интерфейсы (COM), которые нужно реализовать. Но эти интерфейсы, видимо, очень сложные и реализовать их непросто. Насколько я знаю, некоторые фирмы разрабатывают специальный ToolKit, для создания OPC сервера. Конечно, вариант реализации своего протокола, которые будет использовать TCP, тоже, по-моему является, неплохим решением, хотелось бы по возможности рассмотреть и другие варианты. Кстати по поводу TCP, если на одном компьютере установлены сервер и два клиента, как происходит обмен (простите за глупый вопрос)? Позволяет ли TCP без ограничений обмениваться с программами расположенными на том, же компьютере? Может кто скажет, а насколько трудна реализация сервера на основе DCOM? DCOM. Наверное, надо искать тематическую документацию. 2 клиента на разных портах будут коннектится к серверу на 3-м порте. Сервер будет иметь в свою очередь 3 сокета на своем порте - один базовый, и два для каждого из клиентов для обмена. Т.е. все то же, что и на удаленных компах, единственное отличие - данные не будут вываливаться в сеть, а будут проходить через циклический интерфейс (loopback, так называемый). Ограничения - порты клиентов и серверов должны быть разными, а так то же самое. Кстати, для udp есстествено, что порты должны быть разными, а для tcp теоретически это не обяазательно, т.к. он является сессия-ориентированным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 17:02
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
Если на одном компьютере N-клиентов, то нужно использовать N+1 портка (N - для клиентов и один для сервера). Я понимаю, что это случай не типичный, в таком случае, система не очень масштабируема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 17:32
|
|||
|---|---|---|---|
|
|||
обмен между приложениями |
|||
|
#18+
OLEG_2005Если на одном компьютере N-клиентов, то нужно использовать N+1 портка (N - для клиентов и один для сервера). Я понимаю, что это случай не типичный, в таком случае, система не очень масштабируема.DСОМ тоже не по воздуху летает, кроме того масштабируемость DCOM не бесконечна. Разворачивать приложения DCOM у заказчика - это всегда головная боль. В отличие от сокет связи, достаточно прописать ПК в сети, даже ресурс не надо расшаривать.. Но глядя на твою задачу, я не вижу, где у тебя N клиентов на одной машине? Аналогичную по архитектуре службу для охраны я сделал на сокетах. Хотя первоначально мы моделировали на DCOM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2007, 22:50
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
сокеты или corba. Если опыта с сокетами нет, особенно для многопоточных прог, то я бы для C++ использовал библиотеку ACE. corba даст переносибельность между языками и платформами, но с ней прийдется предварительно плотно поразбираться. Для с++ можно например использовать ORBs: MICO или TAO. Для несложной проги я бы выбрал сокеты+ACE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 08:43
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
А что за библиотека ACE? А кто-нибудь знаком с технологоией OPC. В интернете есть кое-какие статьи, но по-моему, очень уж поверхностные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 08:57
|
|||
|---|---|---|---|
|
|||
обмен между приложениями |
|||
|
#18+
Вот любят некоторые люди искать себе геморой :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 09:01
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
OLEG_2005А что за библиотека ACE? А кто-нибудь знаком с технологоией OPC. В интернете есть кое-какие статьи, но по-моему, очень уж поверхностные? библиотека имени Дага Шмидта . Даже книжка есть на руссском Программирование сетевых приложений на С++ 2 тома ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 09:53
|
|||
|---|---|---|---|
|
|||
обмен между приложениями |
|||
|
#18+
OLEG_2005А что за библиотека ACE? А кто-нибудь знаком с технологоией OPC. В интернете есть кое-какие статьи, но по-моему, очень уж поверхностные? OPC это один из стандартов подключения различного hardware к ПК. Разработка серверной части с нуля не тривиальна. Клиенты проще и есть в open source. Здесь есть кое-что и основные ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 12:30
|
|||
|---|---|---|---|
|
|||
обмен между приложениями |
|||
|
#18+
OLEG_2005Насколько я знаю разработчики других систем используют технологию OPC, которая основана на DCOM. Как я понимаю, существуют стандартные интерфейсы, с помощью котороых можно обращаться к сервисам сервера. Но насколько я знаю, эти стандартные интерфейс достаточно сложны и реализовать их очень трудоёмко. Если выбрать TCP, то поверх его придётся придумывать какой-то свой протокол для обмена между клиентскими программи диспетчеров и сервером приложений. По моим сведениям, с DCOM начнуться принципиальные проблемы как только нужно будет вылезти из пределов локальной сети. А придумать протокол придется, не Вы первый, также как и писать спецификацию интерфейсов СОМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 13:02
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
pandrewDСОМ тоже не по воздуху летаетвроде должен на тцп летать? Он же умрёт, если не на тцп. Лучше юзать сокеты, т.к. никакой фреймворк с твоём случае ничего не даст кроме тормозов и сложности. Протокол обмена данными придётся придумывать в любом случае, разницы никакой. Кроме того, тцп – всем стандартам стандарт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 16:22
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
Насколько я понимаю, за пределы локальной сети вылазить не надо. Но нужно, чтобы программы, который обмениваются, могли находиться как на одной машие (несколько клиентских програм и сервер), так и на разных компютерах в локальной сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 16:24
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
OLEG_2005Насколько я понимаю, за пределы локальной сети вылазить не надо. Но нужно, чтобы программы, который обмениваются, могли находиться как на одной машие (несколько клиентских програм и сервер), так и на разных компютерах в локальной сети. Клиенту не обязательно привязываться к определенному порту, система сама может ему выделить любой свободный. Поэтому клиенты могут не заботиться о своих портах. И поэтому им абсолютно параллельно на локальной машине сервер или на удаленной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2007, 16:33
|
|||
|---|---|---|---|
обмен между приложениями |
|||
|
#18+
OLEG_2005Но нужно, чтобы программы, который обмениваются, могли находиться как на одной машие (несколько клиентских програм и сервер), так и на разных компютерах в локальной сети.и какие с этим могут быть проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2029055]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 453ms |

| 0 / 0 |
