Как сделать частную связь между частными приложениями по сети? - PullRequest
2 голосов
/ 24 декабря 2008

Это в основном одно приложение, которое установлено на нескольких ПК, каждая из которых поддерживает свою собственную базу данных, которая синхронизируется с другими, как и когда они подключены (подключены к одной сети) в одно и то же время.

Я проверил это, используя простые сокетные соединения и пользовательские буферы, но хочу, чтобы связи между приложениями соответствовали принятым стандартам, а также были безопасными / надежными, а не пытались заново изобрести колесо.

Каков нормальный / стандартный способ передачи данных между приложениями и где я могу узнать больше?

Кроме того, какие методы / можно использовать для объявления и поиска других приложений в сети?


редактирование: (уточняя мою проблему)

Модель паба / субмарина, на которую указывает ниже гимел, похоже, соответствует тому, что мне нужно. Тем не менее, он охватывает много вопросов, и я не знаю, что отнять и использовать от всего этого.

Похоже, мне нужно установить P2P-соединение, когда два или более приложений нашли друг друга - как мне это сделать?

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

Моя предпочтительная платформа - Linux, но примеры на основе Windows также будут очень полезны.


изменить [09-01-06]:

В настоящее время я смотрю на следующие варианты:

  1. многоадресная рассылка (TLDP-Howto) - это кажется работоспособным, но мне нужно изучить его еще немного.
  2. с использованием бесплатных динамических DNS-серверов, хотя это выглядит немного рискованно ...
  3. используя бесплатную электронную почту, например, Gmail / Yahoo / ... и отправлять / читать почту оттуда, чтобы найти IP-адреса других приложений (может работать, но чувствует себя грязным)
  4. веб-сервисы были предложены, но я не знаю, как они работают, и мне придется изучить их

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

[Редактировать 2009-02-19]

(Жаль, что я не смогу принять два / три ответа! Тот, который я принял, потому что он предлагает линии мысли и возможности, в то время как другие пришли с фиксированными, но применимыми решениями. Спасибо всем, кто ответил, все это помогает. )

Поскольку & когда я найду / внедрю свое решение, я обновлю этот вопрос, и если решение будет адекватным, я создам для него проект sourceforge. (В любом случае это небольшая проблема в гораздо более крупном проекте.)

Ответы [ 12 ]

0 голосов
/ 13 февраля 2009

Amazon и Microsoft имеют размещенные очереди, которые можно использовать в качестве точки встречи между произвольным числом подключенных взаимодействующих приложений. Амазонка коммерческая, а не бесплатная. Microsoft в настоящее время бесплатна, но не гарантируется, что так будет всегда. Это точно решает проблему, с которой вы сталкиваетесь. Предоставляет модель pub / sub для подключенных клиентов.

0 голосов
/ 24 декабря 2008

Звучит так, будто вам нужен распределенный кеш или функция автономной работы с БД - в зависимости от вашего языка (java / c # / ...) вам доступны различные опции ...

...