Краткая версия: Нужна консультация (плюсы и минусы) при выборе инфраструктуры Java-инфраструктуры для клиент-серверного приложения с низким количеством пользователей/запросов и относительно большим количеством данных.советы по выбору сетевой среды для java
Возможные варианты:
- RMI
- реки Apache
- Нетти (это кажется более асинхронным ориентированным, может это сделать синхронные вызовы?)
- Некоторые другие рамки, которые сделают мою жизнь легче? :)
Длинная версия: Текущий проект я работаю на это настольное приложение, написанное на Java, что позволяет пользователю оптимизировать часть цепочки поставок. Обратите внимание, что приложение до сих пор было только настольным. У него была база данных, установленная на локальной машине, и все. Теперь у нас есть новые требования по изменению кода для поддержки общей/сетевой базы данных. Установка базы данных на сетевом сервере и запуск нескольких экземпляров приложения выявили (как и ожидалось) множество проблем. Самые большие проблемы связаны с тем, что взаимодействие с базами данных не было разработано с учетом параллелизма. У нас много ожиданий блокировки и несколько тупиков. Было принято решение о том, что уровень доступа к данным будет изменен для учета новых требований.
Похоже, что невозможно создать DAL для одновременного доступа без разделения приложения на клиенте и на сервере, который будет обрабатывать доступ к данным и, возможно, некоторую бизнес-логику. Нам не нужно очень высокопроизводительное решение, там не так много сообщений, но проблема заключается в количестве данных.
Типичный сценарий использования выглядит следующим образом:
- Запустите приложение
- Импорт данных из файла CSV (обычно между 600МБ-1GB) и сохраните его для дальнейшего использования
- Добавить конфигурации сценариев (очень маленький объем данных) и сохранить их
- Запустите оптимизацию (берет данные с шага 1, применяет конфигурацию, применяет некоторые оптимизации/ограничения)
- Показать opti mization.
Шаг 4 будет выполнен на сервере, шаги 1-3 и 5 будут выполнены на клиенте.
У вас есть предложения/советы? Спасибо.
Я понимаю, что проблема в том, что у вас есть файл размером 600 МБ - 1 ГБ на локальной машине и его необходимо загрузить на сервер. Я прав? –
@PiotrGwiazda Да, в основном вы правы. Файл импортируется на локальный компьютер, он преобразуется в формат данных, который используется приложением, и должен быть сохранен в базе данных для использования в ходе шага 4. Также на шаге 3 простая конфигурация изменяется (меняет значение двойное поле, добавьте некоторую сущность в список) также должны быть сохранены. –