Подключение приложений для рабочего стола Windows к удаленному расположению

StackOverflow https://stackoverflow.com/questions/3937990

  •  30-09-2019
  •  | 
  •  

Вопрос

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

Вот сценарий:

Офис с несколькими пользователями, работающими на приложении Windows Desktop

Это приложение получит данные из базы данных на Office Server.

Теперь 1 или более удаленные (офисы, магазины, что угодно) должны иметь доступ к той же данным.

Как мы можем достичь этого?

Иногда нам нужно в реальном времени

Иногда это не так важно.

Это было полезно?

Решение

Вы могли легко использовать DataSnap или Redobjects. Чтобы обернуть и подвергать свою существующую базу данных в качестве сервера среднего уровня, а затем пишите клиентам против него. Для подключения к этому я настоятельно рекомендую VPN-соединение между вашими репутациями и вашим средним уровнем. Таким образом, вам не нужно больше беспокоиться о том, чтобы закрепить связь связи ... Если данные вы передаете, - это низкие данные риска (ничего не стоит).

Вы захотите стать очень знакомым с Tclientdataset. Отказ Это дает вам возможность управлять удаленными системами без доступа к главной базе данных, а также уменьшить объем трафика, который поставляется через провод (вы можете фильтровать и сортировать локально).

Обновлять Большая часть производительности будет основана на скорости вашего заднего сервера и типа и объема данных вашей передачи. Это достаточно быстро для большинства целей, и если вы обнаружите, что отправляете много данных по трубе, я нашел его стоит, чтобы сделать некоторые кэширования клиента. Добавив триггер обновления, чтобы установить обновленный Timestamp в каждой записи, вы можете обновить свой кеш, только запрашивая записи, новее, чем последнее, которое вы получили.

Другие советы

Из-за безопасности вам нужен какой-то средний слой между клиентом и базой данных. Очень опасно разоблачить базу данных непосредственно в Интернет. Многие приложения используют мыло в этом сценарии, потому что он широко принят. Вы делаете SOAP Service, определите протокол и функции, а клиент затем вызывает это. Другие варианты, которые вы делаете службу / сервер на основе покоя, который делает то же самое или даже сделать простой слой TCP / IP. Так что вы варианты:

  1. SOAP SERVICE как средний слой
  2. Остальный HTTP на основе среднего слоя
  3. XML RPC на основе среднего слоя
  4. Средний слой TCP / IP
  5. VPN-соединение для клиентов

Если вы сделаете VPN-соединение от клиента, вы можете иметь прямую доступ к базе данных, но это, вероятно, для клиентов, если они не являются из вашей компании. Я персонал, вероятно, будет пойти с 2 или 3, но только потому, что мне не нравится мыло. Большинство, если спросить, предпочитает мыло, я думаю.

РЕДАКТИРОВАТЬ:

Поскольку я вижу, что это удаленные офисы, вы можете рассмотреть постоянное VPN-соединение. Большинство маршрутизаторов в эти дни способны на них. Тогда ваше приложение может работать так же удаленно, как это местный.

Есть 3 возможных варианта решения:

  1. Напишите нормальное настольное приложение и опубликуйте это приложение с терминальными службами (Услуги удаленного рабочего стола) или Citrix XenApp (или сделать его веб-базой)
  2. (Re) Разработайте ваше приложение для работы над (возможным медленным и / или ненадежным) WAN Connection)
  3. Реализуйте какую-то репликацию базы данных и реализовать отдельную базу данных (сервер) в каждом офисе

Одним из критериев выбора того, что для принятия, является ваша скорость подключения, ее надежность и стоимость между удаленными офисами и центральным сервером. Если скорость адекватной, надежность в порядке, а затраты плоские VPN - это путь. Это не потребует изменений в вашем приложении (если не написано для загрузки всей базы данных ...) Она также будет обрабатывать аутентификацию и шифрование ваших данных. Если VPN не является выбором, вы можете использовать одну из удаленных методов в ответе бегуна, но обычно они требуются для переработки (и переписывания) приложения, что модель немного отличается от «классического» приложения клиента / сервера. Используются HTTP (ы), обычно не имеют проблем с брандмауэрами, но обычно должны быть нестандартными и не поддерживать обратные вызовы, безопасность требует генерации сертификата и развертывания. Другие, работающие с другими протоколами (т. Е. DCOM, DBExpress DataSnap) более гибкими, но могут быть более сложными для настройки и / или безопасного правильного. Если соединение не является быстрой и достаточно надежным, или слишком дорого, вам может понадобиться местные кеши, синхронизированные с удаленным сервером правильно - и это не может быть легко добиться, в зависимости от потребностей приложений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top