Доступ к MS Access, размещенному на сервере Ubuntu, с Java в VPS на базе Windows? - PullRequest
4 голосов
/ 02 марта 2012

Привет, у меня есть небольшая большая проблема. У меня есть устаревшее настольное приложение VB6, которое подключается к базе данных MS Access, размещенной на локальном сервере Ubuntu, который совместно используется в локальной сети как общий ресурс SMB, и у меня размещено веб-приложение Tomcat. в VPS на базе Windows это

Требования

  • Чтение информации из базы данных MS Access и отображение ее в веб-приложении (при посещении по URL-адресу и почти в режиме реального времени).

  • Обновление базы данных MS Access с информацией, полученной через веб-сайт.

Факты

  • 20 МБ <размер базы данных </li>
  • Доступно 15 ~ 25 пользователям.
  • Постоянное локальное обновление и запросы.

Размер файла невелик, поскольку он усекается при увеличении размера инструмента (> 100 МБ) Теперь я знаю, что архитектура не лучшая и что MS Access на пределе своих возможностей, миграция на полноценную Java и MySQL идет полным ходом, но это займет много времени… а пока мне нужно способ реализации этой функции, вот мои варианты.


Вариант 1

Доступ к БД на сервере Ubuntu через VPN напрямую из веб-приложения.

Против

  • Возможно ли это?
  • Медленное соединение.
  • Может блокировать БД БОЛЬШЕ, как это часто случается локально.

Вариант 2

Запустите локальное веб-приложение на сервере Ubuntu, которое отображает БД в качестве REST API, поэтому обновления будут обрабатываться локальным веб-приложением.

Минусы:

  • Трудно использовать MS Access в среде UNIX, глядя на unixODBC и FreeTDS , но до сих пор я не смог его использовать.

  • Ну, написание всего приложения и защита сервера.

Вариант 3

Есть предложения?

Спасибо, если вы прочитали это далеко, любая помощь очень ценится.

1 Ответ

1 голос
/ 14 апреля 2012

Если я не пропустил что-то в вашем описании, я думаю, вы, возможно, путаете различия между API и библиотекой.По сути, ODBC - это API, который реализован в виде библиотеки и обычно используется на компьютерах под управлением Windows через дополнительные библиотеки доступа к данным, такие как ADO и ADO.NET.Я упоминаю об этом, так как вы называли unixODBC решением.Это не будет полным решением, поскольку в нем есть нечто большее, чем просто API.

Проще говоря, файл базы данных, который вы создали с помощью Microsoft Access, является базой данных плоских файлов .MDB (хорошо, есть немного больше, но с точки зрения обработки ее как базы данных, это всеэто имеет значение здесь).Если вы знаете, как работает структура файла .MDB, вы можете написать свою собственную библиотеку, которая читает / пишет в нее.Конечно, это не тривиально, и на платформах Windows это предоставляется вам Microsoft с использованием библиотек, входящих в состав ОС.Это также называется драйвером JET и базой данных.JET - это формат базы данных, который реализует файл .MDB и используется Access и другими приложениями через драйверы JET с соответствующими именами.

Итак, чтобы найти эквивалентный вариант для платформ, отличных от Windows, вам нужна какая-то библиотека, которая знает, как напрямую читать / записывать в файл .MDB.Если вы пытаетесь одновременно использовать файл .MDB из приложения Access, вам необходимо убедиться, что выбранная вами библиотека поддерживает одновременный многопользовательский доступ к базе данных.

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

MDB Tools

Easysoft JET / Драйвер доступа

...