Что лучше?Большое количество вызовов веб-сервисов (сообщений SOAP) или большое количество данных в одном сообщении Soap? - PullRequest
6 голосов
/ 29 ноября 2011


Я разрабатываю мобильное приложение, которое получает данные сервера через сообщения SOAP.

Я хотел бы узнать, что является лучшим методом:

  • Больше номеров веб-службвызовы, извлекающие меньше данных при каждом вызове сообщения SOAP.
    ИЛИ
  • Я получаю все данные за один вызов веб-службы, но тогда длина сообщения SOAP будет большой.

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

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

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

Ответы [ 3 ]

2 голосов
/ 29 ноября 2011

Пара баллов

  1. Как указано в комментарии. Используйте JSON вместо SOAP, когда это возможно, SOAP очень тяжелый вес и в наши дни не рекомендуется.конечные точки выставляются Google и другими - большинство из них использует JSON)

  2. Если размер xml становится слишком большим (более нескольких килобайт), лучше сделать несколько вызовов, а не загружатьбольшой объект в памяти.

1 голос
/ 29 ноября 2011

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

Даже большие ответы можно эффективно обрабатывать, не сохраняя их в памяти, если вы используете библиотеку, которая может "передавать" ответ.

1 голос
/ 29 ноября 2011

О каких размерах мы говорим - мин / макс / типичный?

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

Задержка является одним из факторов, влияющих на мобильные сети (более важно, чем низкая пропускная способность), поэтому теоретически вы должны стремиться к минимальному количеству запросов.

но ...

Нет смысла делать большие запросы, если вам не нужны данные.

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

Также не забудьте разрешить gzip / deflate в запросе и сжать ответ от сервера.

Если возможно, я бы также использовал подход RESTful и гарантировал, что ответы GET кэшируются

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