Nghị định thư bộ đệm là "nhẹ" theo nghĩa là chúng tạo ra sự đại diện dây rất nhỏ gọn, do đó tiết kiệm băng thông, bộ nhớ, lưu trữ, vv - trong khi vẫn giữ mục đích chung và đa ngôn ngữ. Chúng tôi sử dụng chúng lô tại Google, tất nhiên, nhưng không rõ liệu bạn có quan tâm đến các đặc điểm hiệu suất này hay không - bạn dường như sử dụng "nhẹ" theo nghĩa rất khác với điều này, được kết nối chặt chẽ với tải (tinh thần) về bạn, lập trình viên, và không phải tất cả với tải (tính toán) trên máy tính và mạng ;-).
Nếu bạn không quan tâm đến chi tiêu băng thông/bộ nhớ/etc nhiều hơn bạn có thể, và bạn cũng không quan tâm đến khả năng mã hóa các hệ thống con tham gia bằng các ngôn ngữ khác nhau, thì bộ đệm giao thức có thể không tối ưu cho bạn.
Không phải là pickling
, nếu tôi đọc yêu cầu "phần nào an toàn" của bạn một cách chính xác: bỏ ghim chuỗi chuỗi độc hại được xây dựng phù hợp có thể thực thi mã tùy ý trên máy tháo ghim.Trên thực tế, HTTP không "an toàn" theo một cách khác: không có gì trong giao thức đó để ngăn chặn kẻ xâm nhập truy cập lưu lượng truy cập của bạn (vì vậy bạn không bao giờ nên sử dụng HTTP để gửi các tải trọng bí mật, trừ khi có thể bạn sử dụng mã hóa mạnh tải trọng trước khi gửi và hoàn tác sau khi nhận được). Để bảo mật (một lần nữa phụ thuộc vào ý nghĩa của từ) bạn cần HTTPS hoặc (đơn giản hơn để thiết lập, không yêu cầu bạn phải mua chứng chỉ! -) Đường hầm SSH.
Khi bạn có một đường hầm SSH được thiết lập giữa hai máy (đối với Python, paramiko
có thể giúp, nhưng thậm chí thực hiện nó thông qua shell script hoặc bằng cách khác trực tiếp kiểm soát máy khách dòng lệnh ssh
không quá xấu ;-) bạn có thể chạy bất kỳ giao thức nào trên nó (ví dụ như HTTP là tốt), vì các điểm cuối của đường hầm được tạo sẵn như các cổng được đánh số mà bạn có thể mở socket. Cá nhân tôi khuyên bạn nên sử dụng JSON thay vì XML để mã hóa các tải trọng - xem here cho máy chủ và máy khách RPC dựa trên JSONRPC như ví dụ - nhưng tôi đoán rằng việc sử dụng máy chủ và máy khách XMLRPC đi kèm với thư viện chuẩn của Python là thậm chí đơn giản hơn, do đó có thể gần hơn với những gì bạn đang tìm kiếm. Tại sao bạn muốn anh đào ngoài? Hiệu suất bây giờ có đột nhiên vượt qua sự đơn giản, cho khía cạnh này của toàn bộ kiến trúc chỉ, trong khi trong mọi trường hợp đơn giản khác được chọn trên hiệu suất? Điều đó dường như là một sự lựa chọn kiến trúc đặc biệt mâu thuẫn! -)
Nguồn
2010-02-04 15:43:05
@Bạn đặc biệt không thích gì về protobuf? Nó không nhẹ như XML-RPC như thế nào? –
Tôi đã cập nhật câu trả lời của mình. –
JSON qua https? Chắc chắn có một thư viện Python để xử lý JSON. –