Подключение приложений для рабочего стола Windows к удаленному расположению
-
30-09-2019 - |
Вопрос
Я хотел бы узнать, как я могу подключить удаленные офисы в центральную базу данных.
Вот сценарий:
Офис с несколькими пользователями, работающими на приложении Windows Desktop
Это приложение получит данные из базы данных на Office Server.
Теперь 1 или более удаленные (офисы, магазины, что угодно) должны иметь доступ к той же данным.
Как мы можем достичь этого?
Иногда нам нужно в реальном времени
Иногда это не так важно.
Решение
Вы могли легко использовать DataSnap или Redobjects. Чтобы обернуть и подвергать свою существующую базу данных в качестве сервера среднего уровня, а затем пишите клиентам против него. Для подключения к этому я настоятельно рекомендую VPN-соединение между вашими репутациями и вашим средним уровнем. Таким образом, вам не нужно больше беспокоиться о том, чтобы закрепить связь связи ... Если данные вы передаете, - это низкие данные риска (ничего не стоит).
Вы захотите стать очень знакомым с Tclientdataset. Отказ Это дает вам возможность управлять удаленными системами без доступа к главной базе данных, а также уменьшить объем трафика, который поставляется через провод (вы можете фильтровать и сортировать локально).
Обновлять Большая часть производительности будет основана на скорости вашего заднего сервера и типа и объема данных вашей передачи. Это достаточно быстро для большинства целей, и если вы обнаружите, что отправляете много данных по трубе, я нашел его стоит, чтобы сделать некоторые кэширования клиента. Добавив триггер обновления, чтобы установить обновленный Timestamp в каждой записи, вы можете обновить свой кеш, только запрашивая записи, новее, чем последнее, которое вы получили.
Другие советы
Из-за безопасности вам нужен какой-то средний слой между клиентом и базой данных. Очень опасно разоблачить базу данных непосредственно в Интернет. Многие приложения используют мыло в этом сценарии, потому что он широко принят. Вы делаете SOAP Service, определите протокол и функции, а клиент затем вызывает это. Другие варианты, которые вы делаете службу / сервер на основе покоя, который делает то же самое или даже сделать простой слой TCP / IP. Так что вы варианты:
- SOAP SERVICE как средний слой
- Остальный HTTP на основе среднего слоя
- XML RPC на основе среднего слоя
- Средний слой TCP / IP
- VPN-соединение для клиентов
Если вы сделаете VPN-соединение от клиента, вы можете иметь прямую доступ к базе данных, но это, вероятно, для клиентов, если они не являются из вашей компании. Я персонал, вероятно, будет пойти с 2 или 3, но только потому, что мне не нравится мыло. Большинство, если спросить, предпочитает мыло, я думаю.
РЕДАКТИРОВАТЬ:
Поскольку я вижу, что это удаленные офисы, вы можете рассмотреть постоянное VPN-соединение. Большинство маршрутизаторов в эти дни способны на них. Тогда ваше приложение может работать так же удаленно, как это местный.
Есть 3 возможных варианта решения:
- Напишите нормальное настольное приложение и опубликуйте это приложение с терминальными службами (Услуги удаленного рабочего стола) или Citrix XenApp (или сделать его веб-базой)
- (Re) Разработайте ваше приложение для работы над (возможным медленным и / или ненадежным) WAN Connection)
- Реализуйте какую-то репликацию базы данных и реализовать отдельную базу данных (сервер) в каждом офисе
Одним из критериев выбора того, что для принятия, является ваша скорость подключения, ее надежность и стоимость между удаленными офисами и центральным сервером. Если скорость адекватной, надежность в порядке, а затраты плоские VPN - это путь. Это не потребует изменений в вашем приложении (если не написано для загрузки всей базы данных ...) Она также будет обрабатывать аутентификацию и шифрование ваших данных. Если VPN не является выбором, вы можете использовать одну из удаленных методов в ответе бегуна, но обычно они требуются для переработки (и переписывания) приложения, что модель немного отличается от «классического» приложения клиента / сервера. Используются HTTP (ы), обычно не имеют проблем с брандмауэрами, но обычно должны быть нестандартными и не поддерживать обратные вызовы, безопасность требует генерации сертификата и развертывания. Другие, работающие с другими протоколами (т. Е. DCOM, DBExpress DataSnap) более гибкими, но могут быть более сложными для настройки и / или безопасного правильного. Если соединение не является быстрой и достаточно надежным, или слишком дорого, вам может понадобиться местные кеши, синхронизированные с удаленным сервером правильно - и это не может быть легко добиться, в зависимости от потребностей приложений.