Tổng quan
Tôi sẽ phát triển một ứng dụng trên Android và iOS. Nó sẽ cho phép người dùng thiết lập nhóm 'phòng trò chuyện' và nói chuyện trên các phòng trò chuyện do người dùng khác thiết lập. Dịch vụ cần có khả năng mở rộng cao, sao cho có thể đáp ứng sự gia tăng lớn của người dùng chỉ sau một đêm (chúng ta chỉ có thể mơ ước).
Thông tin cơ bản
Trước đây tôi đã sử dụng chủ yếu Java và Python, nhưng nên sử dụng các ngôn ngữ phù hợp nhất cho tác vụ này. Tôi không ngại học nhiều kỹ năng mới.
Yêu cầu
trò chuyện Giao thức trò chuyện phải linh hoạt: nó sẽ cho phép xác định ai có thể xem / đăng bài trên 'phòng trò chuyện' dựa trên các yếu tố được xác định bởi người đăng / người tạo đầu tiên của 'phòng trò chuyện' cụ thể. Nó cũng nên cho phép người dùng chỉ cần cài đặt ứng dụng và bắt đầu sử dụng dịch vụ, sau khi chỉ cung cấp một biệt danh đơn giản (có thể thay đổi sau này).
Kế hoạch giao thức trò chuyện
Nhìn xung quanh tôi nghĩ rằng giao thức XMPP là ứng cử viên tốt nhất. Cụ thể, tiện ích mở rộng trò chuyện Nhiều người dùng trông giống như những gì tôi cần. Điều này sẽ phù hợp nhất với yêu cầu của tôi, hoặc bạn có biết một giải pháp tiềm năng khác không?
Cập nhật: Tôi đã nghiên cứu Giao thức cho Hội nghị Đồng bộ và nó có vẻ phù hợp hoàn hảo với nhu cầu của tôi. Tuy nhiên tôi không chắc nó được ghi chép tốt như thế nào hoặc tôi thực sự sẽ thực hiện nó như thế nào.
Dịch vụ đám mây
Tôi đã quyết định giữa Amazon Web Services, Google App Engine và Windows Azure. Tôi đi đến kết luận rằng Azure sẽ tốt nhất, vì nó dễ quản lý hơn AWS (tính dễ mở rộng sẽ là yếu tố chính trong thiết kế), tôi nghĩ rằng nó có thể ít bị hạn chế hơn GAE, cộng với Azure sẽ sớm có bộ công cụ để cho phép dễ dàng giao tiếp với cả điện thoại Android và iOS.
Cập nhật: Nhìn sâu hơn, có vẻ như AWS sẽ rẻ hơn và họ có các điều khoản, chẳng hạn như Cân bằng tải đàn hồi và Thu phóng tự động , khiến cho công việc bổ sung cần thiết để duy trì khả năng mở rộng khá không đáng kể.
Đây có phải là quyết định mà bạn đã đưa ra hoặc bạn muốn giới thiệu / xem xét các dịch vụ đám mây khác?
Yêu cầu chung
Bất kỳ thành phần nào cũng phải được ghi chép đầy đủ, được chứng minh là đáng tin cậy và tốt nhất là cấp cao nếu có thể. Ví dụ, tôi thích sử dụng một plugin để thực hiện giao thức trò chuyện hơn là tự viết nó - do đó để lại cho những người có kinh nghiệm hơn.
Cảm ơn bạn Cảm ơn bạn đã
đọc, và bất kỳ lời khuyên nào bạn có về bất kỳ khía cạnh nào cũng sẽ được đánh giá cao :-)