Tôi đang phải đối mặt với một tình thế khó xử sau:Thiết kế một giao thức mạng cho dữ liệu thời gian thực/thiết bị di động
Thiết kế một giao thức mạng mới sẽ được sử dụng giữa các máy chủ (phần mềm Java) và máy tính để bàn và các khách hàng di động. Các khách hàng di động bao gồm J2ME, Android và có thể trong tương lai thậm chí iPhone.
Luồng dữ liệu là luồng thời gian thực, không đổi với các phần không thường xuyên hơn. Khách hàng hiển thị dạng sóng của dữ liệu này và cũng là dữ liệu không cần cập nhật ngay lập tức. Các khách hàng cũng nên được xác thực.
Tôi muốn tránh việc tạo triển khai giao thức TCP hoàn toàn tùy chỉnh từ đầu nếu có thể.
Những ngày này mọi người thường đề xuất làm mọi thứ theo phong cách REST mà tôi cũng thực sự thích. Trong trường hợp này tôi là một chút do dự mặc dù: làm thế nào bạn sẽ thực hiện một dòng dữ liệu liên tục trên đầu trang của REST? Một phản ứng HTTP chunked?
Tôi cũng đang xem xét các giao thức không rõ ràng (các giao thức hiện tại mà tôi đang thay thế là các giao thức nhị phân). Những giao thức hiện tại có vấn đề khá nghiêm trọng của họ nên chúng thực sự cần được thay thế.
Bộ đệm giao thức của Google trông giống như một ứng cử viên khá mạnh mẽ để xử lý các chi tiết cấp thấp, nhưng tôi không chắc liệu nó có thể được sử dụng từ Android hay không. Và tôi khá chắc chắn rằng việc thực hiện iPhone sẽ có vấn đề với nó là tốt.
Ngoài ra còn có BEEP, nhưng tôi nghĩ rằng nó khá nhiều người chết và tôi tự hỏi là nó đã từng được sử dụng rộng rãi chưa.
Bất kỳ ý tưởng nào?
Cảm ơn bạn! Tôi không biết rằng đã có các khung công tác NIO thay thế được sử dụng rộng rãi cho Java. Tôi đã sử dụng chương trình chống lại API Java NIO và đôi khi tôi vẫn thức dậy vào ban đêm la hét (nó phải là mặt trời API tồi tệ nhất từng được sản xuất) :-) Thông tin mới này làm cho NIO liên quan đến tôi một lần nữa! – auramo
Tôi đồng ý với bạn hoàn toàn. Tôi đã có những cơn ác mộng tương tự khi phát triển dựa trên API Java NIO :-) Apache MINA đã thay đổi cuộc đời tôi mãi mãi. –