Tinjauan Umum
Saya akan mengembangkan aplikasi di Android dan iOS. Ini akan memungkinkan pengguna untuk mengatur 'ruang obrolan' grup dan berbicara di ruang obrolan yang dibuat oleh pengguna lain. Layanan harus sangat skalabel, sehingga bisa mengakomodasi peningkatan besar dalam semalam pengguna (kita hanya bisa bermimpi).
Info latar belakang
Sebelumnya saya terutama menggunakan Java dan Python, tetapi bahasa yang paling tepat untuk tugas ini harus digunakan. Saya tidak keberatan belajar banyak keterampilan baru.
Persyaratan
obrolan Protokol obrolan harus fleksibel: harus memungkinkan untuk menentukan siapa yang dapat melihat / memposting di 'ruang obrolan' berdasarkan faktor yang ditentukan oleh poster pertama / pencipta 'ruang obrolan' tertentu. Ini juga harus memungkinkan pengguna untuk hanya menginstal aplikasi dan mulai menggunakan layanan, setelah hanya memberikan nama panggilan sederhana (yang dapat diubah kemudian).
Paket protokol obrolan
Setelah melihat sekeliling saya pikir protokol XMPP adalah kandidat terbaik. Khususnya ekstensi obrolan multi-pengguna seperti yang saya butuhkan. Apakah ini paling sesuai dengan persyaratan saya, atau Anda tahu solusi potensial lain?
Pembaruan: Saya sejak itu meneliti Protokol untuk Konferensi Synchronous dan sepertinya cocok dengan kebutuhan saya. Namun saya tidak yakin seberapa baik didokumentasikan atau bagaimana saya benar-benar akan mengimplementasikannya.
Layanan cloud
Saya telah memutuskan antara Amazon Web Services, Google App Engine dan Windows Azure. Saya sampai pada kesimpulan bahwa Azure akan menjadi yang terbaik, karena lebih mudah dikelola daripada AWS (kemudahan skalabilitas akan menjadi faktor kunci dalam desain), saya pikir itu mungkin kurang dibatasi daripada GAE, ditambah Azure akan segera memiliki toolkit untuk memudahkan antarmuka dengan ponsel Android dan iOS.
Pembaruan: Melihat lebih jauh, tampaknya AWS akan lebih murah, dan bahwa mereka memiliki ketentuan, seperti Elastic Load Balancing dan Auto Scaling , yang membuat kerja ekstra yang diperlukan untuk mempertahankan skalabilitas dapat diabaikan.
Apakah ini keputusan yang akan Anda buat, atau apakah Anda akan merekomendasikan / melihat ke layanan cloud lainnya?
Persyaratan Umum
Setiap komponen harus didokumentasikan dengan baik, terbukti andal, dan lebih disukai jika memungkinkan. Sebagai contoh saya lebih suka menggunakan plugin untuk mengimplementasikan protokol obrolan daripada menulis sendiri - sehingga menyerahkannya kepada orang yang lebih berpengalaman.
Terima kasih Terima
kasih telah membaca, dan saran yang Anda miliki tentang segala aspek akan sangat dihargai :-)