Question

Aperçu
Je vais développer une application sur Android et iOS. Il permettra aux utilisateurs de configurer les «salles de chat» du groupe et de parler dans les salles de chat configurées par d'autres utilisateurs. Le service doit être très évolutif, de sorte qu'il pourrait s'adapter à une augmentation massive des utilisateurs du jour au lendemain (nous ne pouvons que rêver).


Informations de fond
Auparavant, j'ai utilisé principalement Java et Python, mais les langages les plus appropriés pour cette tâche doivent être utilisés. Cela ne me dérange pas d'apprendre beaucoup de nouvelles compétences.

Exigences de chat
Le protocole de chat doit être flexible: il devrait permettre de déterminer qui peut afficher / publier sur les «salles de chat» en fonction des facteurs déterminés par la première affiche / créateur de la «salle de chat» particulière. Il devrait également permettre aux utilisateurs d'installer simplement l'application et de commencer à utiliser le service, après avoir seulement fourni un seul surnom (qui pourrait être modifié plus tard).


Plans de protocole de chat
Après avoir regardé autour de moi, je pense que le protocole XMPP est le meilleur candidat. En particulier le Chat multi-utilisateurs L'extension ressemble à ce dont j'ai besoin. Serait-ce le plus adapté à mes exigences, ou connaissez-vous une autre solution potentielle?

Mise à jour: J'ai depuis recherché le Protocole de conférence synchrone Et cela semble parfaitement s'adapter à mes besoins. Cependant, je ne sais pas à quel point il est bien documenté ou comment je le mettrais réellement l'implémenter.


Service cloud
J'ai décidé entre Amazon Web Services, Google App Engine et Windows Azure. J'arrive à la conclusion qu'Azure sera le mieux, car il est plus facile à gérer que AWS (la facilité d'évolutivité sera un facteur clé dans la conception), je pense qu'il peut être moins restreint que GAE, et Azure aura bientôt Kodes d'outils pour permettre une interfaçage facile avec les téléphones Android et iOS.

Mise à jour: En y regardant davantage, il semble que AWS serait moins cher et qu'ils ont des dispositions, telles que Équilibrage de la charge élastique et Échelle automatique, cela rend le travail supplémentaire nécessaire pour maintenir l'évolutivité assez négligeable.

Est-ce la décision que vous auriez prise, ou recommanderiez-vous / envisageriez-vous d'autres services cloud?


Exigences générales
Tous les composants doivent être bien documentés, prouvés fiables et de préférence de haut niveau dans la mesure du possible. Par exemple, je préférerais utiliser un plugin pour implémenter le protocole de chat plutôt que de l'écrire moi-même - laissant ainsi les personnes plus expérimentées.


Merci
Merci d'avoir lu, et tout conseil que vous avez sur n'importe quel aspect serait grandement apprécié :-)

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top