Poll vs Push – ¿Alguna razón para evitar Push Notifications?

Acabo de heredar un proyecto de la aplicación de Android como un gerente de producto (técnico) que utiliza un temporizador de 5 segundos para encuestar una URL remota para ver si algún trabajo iniciado por la aplicación ha terminado. Mi reacción inicial, por supuesto, fue sugerir para reemplazar esto con un mecanismo push / notificaciones , de preferencia Android construido en GCM, por lo que el trabajo se retira de la aplicación en el teléfono y poner en el lado del servidor.

Sorprendentemente encontré resistencia del equipo de desarrollo. Un ex gerente de producto (mi predecesor) parece haber pedido explícitamente que la implementación funcione de esta manera. Desafortunadamente, él no fue grande en la documentación de sus decisiones, así que ahora tengo que tratar de volver sobre qué razones podrían haber llevado a esta decisión para justificar un cambio en la aplicación. Vine con la siguiente lista de pro y contra:

Contra Push / Pro Encuesta

  1. Trabajo en el lado del servidor necesario para implementar notificaciones push
  2. No hay manera directa de saber si la notificación push se entregó correctamente
  3. Escalar la notificación push puede ser un dolor

Pro Push / Contra Encuesta

  1. Se elimina el trabajo del dispositivo.
    • Uso de ancho de banda inferior
    • Menor uso de la batería
    • Aplicación y dispositivo más responsivos
  2. Carga del servidor se reduce como los dispositivos no sondean cada x segundos, incluso si nada cambió (DDOS)
  3. El empuje es más rápido (más sensible) que 5 segundos (temporizador actual)
  4. Prueba de entrega de notificación push es trivial para implementar con una encuesta de una URL remota (aquí tiene sentido)
  5. Escala entrega de notificación push es un problema resuelto con un montón de proyectos de código abierto y la aplicación trivial con una cola de mensajes

  • ¿Hay alguna otra razón para evitar Notificaciones Push y utilizar Polling para este usecase?
  • ¿Hay alguna otra razón para evitar el sondeo y el uso de notificaciones push para este usecase?
  • ¿Alguna otra cosa importante que olvidé?

    No hay forma de saber si la notificación push se ha realizado correctamente

    Seguro que hay: haga que el dispositivo llegue a su servidor al recibir el mensaje push. Es posible que deba hacer eso de todos modos, si la carga útil es mayor que 4K.

    Escalar la notificación push puede ser un dolor

    Funciona para bases de usuarios bastante grandes (por ejemplo, RememberTheMilk), y eso era incluso antes de la solución de socket persistente basada en XMPP.

    ¿Hay alguna otra razón para evitar Notificaciones Push y utilizar Polling para este usecase?

    GCM no tiene garantía de nivel de servicio. GCM es específico de Android; Usted podría considerar un envoltorio alrededor de él, como Amazon SNS, si usted está buscando algo que se encargará de otros sistemas operativos del cliente. Soluciones de empuje que implican a terceros, como Google, significa que su carga útil de mensaje de empuje crudo será visible para los servidores de terceros; Utilice un cifrado de nivel de aplicación adecuado si se trata de una preocupación (y debería ser).

    ¿Hay alguna otra razón para evitar el sondeo y el uso de notificaciones push para este usecase?

    Una encuesta de cinco segundos hace que $BABY_DEITY llore.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.