Около 5000 компьютеров будут звонить на центральный сервер, и они будут передавать GUID на центральный сервер.
Затем сервер вернет клиенту True / False.
Есть ли большая разница в представление между веб-службой и обычным HTTP-запросом на URL-адрес на сервере?


Я не уверен на 100% в улучшении производительности во времени ответа, но запрос WebService, который возвращает только истинное значение false, а не обычный HTTP-запрос, а затем анализ ответа, как я предполагаю, будет в целом более эффективным.
HTTP-запрос не означает, что он вернет HTML.
У меня есть приложение, в котором в настоящее время около 7000 машин вызывают веб-службу .net с помощью WCF.
.
Каждый автомат звонит каждые 15 минут. Сервис берет данные и отправляет их в SQL-сервер; который установлен на той же коробке.
Сейчас он собирает около 350 МБ данных в день.
Загрузка почти не регистрируется, и мы в процессе развертывания ее для 25 000 клиентов.
Я предполагаю, что моя точка зрения заключается в том, что передача guid на сервер с возвращаемым значением true / false не является большой нагрузкой, о которой следует беспокоиться, если только веб-сервер не был POS 5 лет назад.
4 вызова в час x 24 часа = 96 вызовов на компьютер x 7000 компьютеров = 672 000 вызовов веб-сервисов в день. Эти звонки разбросаны или каждые 15 минут вы можете набрать 7К звонков?
Они разбросаны, потому что с момента запуска службы до ее остановки проходит 15 минут. Это означает, что он полностью основан на времени запуска машины и, следовательно, случайен.
Я думаю, разница не будет большой, если вообще будет. На самом деле HttpRequest может быть быстрее только потому, что он использует на один слой меньше в стеке. Если вы видите, что расширяете сервисы в будущем, вы можете пойти дальше и использовать WebSerivce, но не из-за производительности (опять же, разница в производительности, вероятно, незначительна), а потому, что WebService будет более удобен в обслуживании по мере того, как сервисы становятся более сложными.
Веб-службы REST являются HTTP.
Следовательно, я не понимаю вопроса. Возможно, вам следует предоставить больше информации о протоколе, сообщениях, будь то стиль RPC или стиль документа, размер документа и т. д.
проблема в том, что модное слово «веб-сервисы» часто используется для обозначения SOAP или других форм переосмысления RPC поверх HTTP. REST означает «вернуться к основам» с некоторыми соглашениями.
@ Хавьер: дело не в том, что это часто означает. Дело в том, что вопрос плохой и без ответа в такой форме.
Я предполагаю, что под веб-службой вы имеете в виду SOAP. Мой опыт работы с различными стеками SOAP на разных платформах (Java, .NET, Ruby, PHP) заключается в том, что в этом случае вы, вероятно, наблюдаете разницу на порядок при обработке такого простого сообщения. Обычно при использовании SOAP возникают значительные накладные расходы, которые незначительны, если вы передаете большие сообщения, но излишни для небольших сообщений. Использование SOAP для этого подобно слону, несущему пенни. В этом случае я бы порекомендовал просто простой обработчик HTTP.
Все 5000 клиентов будут обращаться к серверу одновременно? Вам нужно гарантировать определенное время ответа?
Разница по порядку величины все еще может быть приемлемой: 20 мс против 100 мс. Поэтому все зависит от того, какую нагрузку получит сервер.
Если отбросить производительность на секунду - простота обработчика из PoV обслуживания действительно желательна.
Да, конверт SOAP относительно здоровенный. Я бы предложил службу на основе REST, которая будет сводить размер маршалируемых данных к минимуму.
+1 согласен с этим, просто пройдите через ... анализ полезной нагрузки XML, а затем либо создание ответа XML, либо отправку кешированного ответа XML, а не синтаксический анализ URL-адреса и отправку либо тела 1 / true / json обратно.
как насчет Android, мне нужно использовать мыло, так как я не могу нормально отдыхать
Почему нет? stackoverflow.com/questions/6047194/…
Веб-службы SOAP и REST предполагают некоторые накладные расходы, но, безусловно, они подходят, если вы считаете, что вам нужно масштабировать, чтобы вернуть некоторую другую информацию, кроме истинной / ложной.
HTTP-ответ всего 1/0 или истина / ложь будет намного меньше и, следовательно, теоретически быстрее.
Хорошо спроектированный REST - это именно HTTP-ответ.
Какие накладные расходы связаны с вызовом службы на основе REST?
На самом деле это не будет иметь большого значения. Из того, что может вызвать задержку в этом запросе, у вас есть:
Даже если у вас невероятно быстрая сеть и сервер базы данных, количество времени, затрачиваемого на прохождение сети туда и обратно и доступ к базе данных (что, возможно, может включать в себя другой сетевой обход), приведет к накладным расходам на выполнение скомпилированного кода любой инфраструктуры веб-сервисов. вы используете незначительное.
Вам действительно нужно предоставить более подробную информацию о фактическом протоколе веб-сервисов и полезной нагрузке сообщений, о которых вы говорите. REST - это HTTP, поэтому нет никакой разницы. О каком протоколе вы говорите?