У нас есть продукт, построенный на архитектуре Client-Server. Некоторые сведения о используемом стеке технологий.Как повысить производительность приложения «Архитектура клиент-сервер»?
- Client - Java Swing
- Сервер - RMI
- Java Database - Oracle
клиенты находятся в разных частях мира, но сервер Java & базы данных Oracle расположены на та же машина в Швеции. Из-за этого существует много задержек в сети. Клиенты, расположенные в отдаленных местах, имеют ужасную производительность. Приложение используется для обработки файлов размером более 50 МБ. Для каждой операции обычно требуется более 1000 сетевых вызовов.
Основываясь на вашем опыте, как вы решаете эту проблему и улучшаете производительность?
EDIT: Для того, чтобы ответить на несколько вопросов
- Files содержит фактические бизнес-данные, которые должны быть обработаны и обновлены в базе данных не могут быть отправлены в части.
- Некоторые сетевые вызовы могут быть собраны, но для этого потребуется большой рефакторинг кода. Это очень старое приложение, написанное еще в 2001 году. И дизайн приложения таков, что сервер хранит все службы, и они становятся многоразовыми по всему коду, а бизнес-логика написана на стороне клиента. Таким образом, эта бизнес-логика вызывает сервер много раз и, следовательно, астрономическую фигуру.
-Snehal
Я исследователь, поэтому я могу указать вам на _research_, как решить вашу проблему и автоматически выполнять групповые вызовы. Возможно, их прототипы достаточно полезны, я не пытался их использовать: http://research.cs.vt.edu/vtspaces/best/ http://research.cs.vt.edu/vtspaces/brmi/ – Blaisorblade