Что вы думаете об использовании веб-сервисов для получения больших списков данных? - PullRequest
1 голос
/ 21 января 2009

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

Что вы думаете по этому поводу? Является ли использование веб-службы для получения большого списка данных разумным способом повышения производительности?

Ответы [ 3 ]

1 голос
/ 21 января 2009

оооо .... мы не работали здесь из-за проблем с производительностью, в которых говорилось, что это приложение типа CRM, и получение списка открытых дел из приложения Line of Business пришлось вернуть менее чем за 3 секунды. Мы попали в базу данных напрямую.

Так, я думаю, что это ответ, какой тип приложения отключен и вовлечен ли пользователь?

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

1 голос
/ 21 января 2009

Лично я не думаю, что это имеет какое-либо отношение к типу приложений как таковых (хотя, безусловно, к приложениям, ориентированным на пользователя, предъявляются другие требования, чем к межмашинным, и некоторые приложения, ориентированные на пользователя, будут терпеть большие задержки изящно, чем другие); на самом деле вопрос в том, как лучше всего передать мои данные клиенту? это тот, чей ответ неизменно будет некоторой вариацией на «Ну, это зависит».

Со своей стороны, я могу сказать, что для общедоступных ориентированных на пользователя приложений, вообще говоря, следует избегать «больших списков» или, по крайней мере, избегать их не потому, что они изначально злые, а потому, что они могут влияют на пользовательский интерфейс (клиентские приложения могут зависать при извлечении или обработке больших наборов данных), они плохо масштабируются (если ваша домашняя страница проталкивает по миллиону инкрустированных SOAP материалов по проводам для каждого запроса, кешируется на сервере или нет вы будете сталкиваться с неприятностями при увеличении трафика) и так далее. В зависимости от того, как обстоят дела с проектом, вам может потребоваться переписать его, чтобы поддержать увеличение нагрузки или повысить запаздывающую производительность или скорость отклика, что для сервис-ориентированных приложений может оказаться значительным, но не слишком увлекательным занятием.

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

Так что сложно сказать так или иначе; иногда все хорошо, иногда нет - «это зависит». Не зная больше о ваших конкретных требованиях, я бы, вероятно, посоветовал вам сделать что-то простое, используя молоток большого списка, с реальными (или почти реальными) данными, выполнить некоторые измерения, экстраполировать их и посмотреть, как все выглядит , Вы можете обнаружить, что беспокоиться не о чем, и последнее, что вам нужно сделать, это увязнуть в неоправданно сложном дизайне просто потому, что группа людей в StackOverflow сказала вам, что «большие списки плохие». ;)

1 голос
/ 21 января 2009

Вы можете посмотреть, как компонент Apache Wicket решил эту проблему.

Редко вы хотите отобразить весь контент большого списка. Только одна страница в определенный момент и ссылки на другие страницы из набора результатов.

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

На клиенте вы можете использовать список идентификаторов для создания запроса на какую-то другую страницу.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...