Лучший способ получить доступ к удаленной базе данных: через веб-сервис или прямой доступ к БД? - PullRequest
5 голосов
/ 17 апреля 2011

Ищу разработку приложения для Mac и iOS-устройств.Приложение будет опираться на информацию, хранящуюся в удаленной базе данных.Требуется как чтение (выбор), так и запись (вставка, обновление, удаление) доступа к базе данных.Приложение будет многопользовательским.

Теперь я рассматриваю два различных подхода к доступу к базе данных: - через веб-сервис: приложение обращается к веб-сервису (REST, JSON), который обращается к базе данных.,Аутентификация будет осуществляться через HTTP-аутентификацию по SSL (https).- доступ к удаленной базе данных напрямую через VPN.

Приложение будет использоваться максимум, скажем, 100 человек, и предназначено для небольших групп / организаций / предприятий.

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

Буду признателен за любой совет.

Спасибо

Ответы [ 2 ]

3 голосов
/ 17 апреля 2011

Использование веб-сервисов добавляет уровень косвенности между клиентами и базой данных. Это имеет несколько преимуществ, связанных с тем, что клиенты не должны знать о базе данных, а только об интерфейсе вашего веб-сервиса. Поскольку клиентские приложения более сложны в управлении и обновлении, чем код на стороне сервера, стоит добавить уровень бизнес-логики на сервере, который позволяет настраивать систему без отправки обновлений клиентам. Основные преимущества:

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

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

1 голос
/ 17 апреля 2011

Учитывая предоставленную вами информацию, почти наверняка ответом будут веб-службы, если только VPN не быстрый.

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

Вы также можете предоставить удаленный доступ к сеансам виртуального ПК, если это ваше дело.

Так что все будет зависеть от ваших требований. Есть много способов сделать это, и у каждого есть свои преимущества и недостатки. Принятие правильного решения потребует значительного объема системного анализа, возможно, выходящего за рамки вопроса, размещенного в StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...