Веб-сервисы с большим объемом данных - PullRequest
2 голосов
/ 23 сентября 2010

В настоящее время я разрабатываю набор веб-служб с использованием JAX-WS и подхода «снизу вверх».

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

Я смотрю на разные варианты:

  • Разбиение на страницы: это включает в себя изменение моих операций и информирование их о большом объеме возвращаемых данных путем добавления одного или нескольких параметров для выбора страницы или блока данных для извлечения.

  • Фильтрация данных: эта операция также включает изменение моего сервиса путем добавления параметра операции для фильтрации данных по некоторым критериям.

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

Кто-нибудь может дать какой-нибудь совет или указать ресурсы, где я могу найти информацию по этому вопросу?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

Вы, вероятно, хотите оба.

Если вы можете передать аргументы фильтра веб-службе, сделайте это и примените их в веб-службе вместо отправки всех данных и фильтрации на клиенте.

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

0 голосов
/ 23 сентября 2010

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

Я бы сказал, пейджинг - лучшая практика здесь.

...