¿Cual es mejor? Alto número de llamadas de servicio web (mensajes SOAP) o alta cantidad de datos en un único mensaje de jabón?

Estoy diseñando una aplicación móvil que recibe datos de servidor a través de mensajes SOAP.

Quería saber cuál es la mejor práctica:

  • Más número de llamadas de servicio web que buscan menos datos en cada llamada de mensaje SOAP.
    O
  • Recibo todos los datos en una sola llamada de servicio web, pero la longitud del mensaje SOAP sería grande.

    La gran cantidad de datos en un solo mensaje de jabón no crearía problemas de conectividad de datos para el suscriptor móvil.

    En mi solicitud para un año en particular tengo que obtener nombres de todos los fabricantes de automóviles y nombres de modelo para todos los coches por cada fabricante. Tengo dos planes:

  • Como el usuario selecciona un año que enviar un servicio web que obtendrá todos los datos.
  • Como el usuario selecciona un año que obtener los nombres de los fabricantes y, a continuación, cuando el usuario selecciona un fabricante que obtener todos los modelos para ese fabricante.
    Por favor ayuda diciéndome qué enfoque debo tomar.

* PS: * el usuario puede tener muchos vehículos y si utilizo el segundo acercamiento entonces los servicios de la tela serán llamados para cada vehículo.

¿Qué tipo de respuestas de tamaño estamos hablando – min / max / típico?

No hay una respuesta simple a esta pregunta, ya que depende de lo que desencadena la solicitud de servicio web, por ejemplo, es en respuesta a una acción del usuario, cronometrado, etc

La latencia es uno de los asesinos de las redes móviles (más importante que el ancho de banda bajo), por lo que en teoría debe apuntar a un número mínimo de solicitudes.

pero…

No tiene sentido hacer grandes solicitudes si no necesita los datos.

Mi conjetura es que usted va a tener que probar con diversos tamaños de la respuesta para encontrar el punto dulce.

También no olvide permitir gzip / deflate en la solicitud y comprimir la respuesta del servidor.

Si es posible yo también iría para un enfoque RESTful y garantizar las respuestas GET son caché

Un par de puntos

  1. Como se señaló en el comentario Utilizar JSON en lugar de SOAP siempre que sea posible, SOAP es muy pesado y no se recomienda en estos días. (Mira todos los puntos finales que están expuestos por Google y otros – la mayoría de ellos utilizan JSON)

  2. Si el tamaño xml se está volviendo demasiado grande (más allá de algunos kilobytes) es mejor hacer varias llamadas en lugar de cargar un objeto grande en la memoria.

En una conexión móvil, optaría por respuestas más grandes debido a la latencia de la red. Es mejor buscar un montón de cosas de una sola vez que buscar cada elemento en una nueva ida y vuelta. Esto mantendrá su aplicación rápida.

Incluso las respuestas más grandes pueden ser manejadas eficientemente sin necesidad de almacenar ésos en memoria si usted utiliza una biblioteca que pueda "fluir" la respuesta.

  • OkHttp - Habilitar registros
  • Servicio Web recibe parámetros nulos de la aplicación utilizando el método ksoap
  • ¿Cómo puedo hacer que una aplicación de Android se comunique con un servidor web a través de Internet?
  • El método HttpTransportSe.call () tarda hasta un minuto en llamar al servicio web
  • Android: ¿Cómo configurar la codificación en JSONStringer para las peticiones de servicio web?
  • EOFException en libcore.io.Streams.readAsciiLine (Streams.java:203) cuando se utiliza HttpDelete en HttpsURLConnection
  • Comprobación del sobre con Ksoap2 (Android)
  • Publicar mi servicio Web RESTful en Internet
  • Tener problemas para vincular un objeto ksoap a un ArrayList en Android
  • Analizar la respuesta de KSoap2 en android
  • Ventaja de almacenamiento de datos sin esquema en el almacenamiento de datos con el esquema
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.