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

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

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

Почему именно так? Этому есть, как минимум, 3 причины:

  • Драйвера для подключения.
    Большинство СУБД не имеют драйверов для «мобильных» операционных систем. Конечно, вы можете использовать JDBC драйвера, если пишете на Java или Kotlin под тот же Android. Но, и в этом случае не всё так просто как хотелось бы.
    Если для вашей платформы и вашего технологического стека не предусмотрены необходимые библиотеки, то данную затею не имеет смысла даже обсуждать (вследствие отсутствия технической возможности);
  • Безопасность.
    Прямое подключение к серверу баз данных требует наличия прямого доступа к нему. Это создаёт угрозу для информационной безопасности даже в изолированном сегменте сети. Что говорить, если вы планируете таким образом передавать данные через интернет?..
  • Сильная связность в архитектуре программного комплекса.
    Работая напрямую с базой данных, вы скорее всего будете использовать SQL запросы, которые неотделимы о структуры её таблиц или парсинг документа (применительно к MongoDB и аналогам).
    Если структура таблиц или документа изменится, вам неизбежно придётся дорабатывать слой доступа к данным. В новой версии СУБД появились несовместимые изменения с предыдущим диалектом SQL (сейчас такое если бывает, то редко, но всё же), что-то изменилось в интерфейсной библиотеке и т.д. – результат тот же.
    А, если бы у вас было какое-нибудь API в качестве посредника, то вы были бы избавлены от всех подобных напастей, т.к. API (если оно грамотно спроектировано) абстрагирует логику клиента от внутреннего устройства серверной части.

В принципе вышеперечисленного достаточно для того, чтобы понять, что прямое подключение к базе данных на сервере из мобильного приложения, это практически 100% гарантированные проблемы и так делать не надо. Надеюсь, что вы сделаете правильные выводы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *