2011-08-30 21 views
20

Quiero crear un servicio de mensajería móvil, pero no sé cuál es mejor usar una programación de socket o un servicio web.¿Programación de socket vs. servicio web?

¿Cuáles son las preocupaciones que debo tener en cuenta al crear dicho servicio? como el costo de conexión ... etc.

Si necesita más información, solo dígame antes de votar la pregunta o cerrar.

+1

a los cuales votaron abajo! Dime por qué ?? – Adham

+0

Es difícil entender lo que estás preguntando. Los servicios web funcionan a través de sockets, no es ni uno ni el otro. Además, "¿Cuáles son las inquietudes ...?" Parece básicamente solicitar al respondedor que escriba un libro. –

+0

Como sé, el servicio web utiliza el protocolo HTTP, donde los paquetes HTTP tienen muchos datos adicionales (encabezados) que significan en consecuencia más consumo de tráfico, ¿es efectivo diseñar nuestro protocolo para reducir dicho problema usando la programación de socket? Acerca de consideraciones, necesito titulares importantes si no quiere deatils .. – Adham

Respuesta

17

Los servicios web en general son más "fáciles" de hacer, gracias al enorme interés en ellos y al soporte para ellos en herramientas de desarrollo y bibliotecas y marcos. No obstante, especialmente si su carga útil es pequeña (piense en mensajes del tamaño de un SMS o tweet típico), la sobrecarga que crea con servicios web es prohibitiva: los bytes enviados a través de una red inalámbrica como GPRS o UMTS siguen siendo muy caros, en comparación a bytes transportados por cable o ADSL. Y los servicios web tienen varias capas de información invisible que el cliente final también tendrá que pagar.

Por lo tanto, si su caso de uso se basa en mensajes cortos, al menos le aconsejo hacer algunos cálculos de simulación de ancho de banda y basar su decisión en el ahorro de ancho de banda frente a la mayor complejidad de su aplicación.

Mientras mira los sockets, también eche un vistazo a UDP: si puede vivir con el hecho de que básicamente le arrojas un paquete a alguien, y sin diseñar ningún mecanismo de acceso en tu protocolo nunca estarás seguro de que llegó el mensaje, es muy eficiente porque no hay tráfico para crear y mantener una conexión, e incluso mensajes bastante largos pueden transportarse dentro de 1 paquete UDP.

EDITAR en base a un comentario:

  • toma de corriente: no está seguro de cómo se defina corrientes, pero las corrientes y los mensajes son dos conceptos muy distintos para mí, una corriente es una secuencia típica de datos más largas de ser enviado, mientras un mensaje es una entidad que se envía, y que el receptor reconoce o responde opcionalmente.
  • simulación de ancho de banda: la forma más fácil de entender de lo que estoy hablando es obtener Wireshark y sumar todo lo que se transporta a través de la red para hacer una simple solicitud de una cadena muy corta: verá varias capas de administración información (es decir, invisible, solo para hacer funcionar las diferentes capas de protocolo) que el usuario final paga por el tráfico. Luego, escriba un pequeño servicio simulado usando UDP para transportar el mismo mensaje, o use una herramienta como netcat, buen tutorial here, y sume los bytes que se transportan. Verá diferencias bastante grandes en la cantidad de bytes que se intercambian.

EDIT2, algo que olvidé mencionar: las redes móviles solían ser redes abiertas y transparentes con dispositivos identificados por direcciones IP públicas. Hay una rápida evolución hacia las redes móviles NATed, que tiene un impacto en cómo los dispositivos dentro y fuera de este "jardín amurallado" pueden comunicarse (NAT traversal). Deberá tener esto en cuenta al diseñar su canal de comunicación.

En cuanto a la utilización de corrientes para una aplicación de chat: ofrece algunas ventajas conceptuales, pero puede muy bien una aplicación de chat de la capa en la parte superior de la UDP, mira here o here

+0

favor le puede dar más detalles acerca de "yo al menos aconseja hacer algún cálculo de simulación de ancho de banda" .. y gracias gracias por su información muy útil – Adham

+0

por ejemplo. ¿Cuál crees que es la tecnología detrás de dicho servicio? .. http://www.redmondpie.com/chaton-for-iphone-android-and-blackberry-is-samsungs-answer-to-imessage-video/ – Adham

+0

perdón, quise decir en arroyos, Si quiero poner en práctica el -line chat, ¿es ese un buen concepto? – Adham