Với cách bạn đã hỏi nhiều câu hỏi, bạn có thể nhận ra rằng giải pháp tối ưu bạn sử dụng sẽ là hành động cân bằng giữa các mục tiêu cạnh tranh.
1: Bạn cần xác định "hiệu suất" tốt hơn. Tôi giả sử bạn đang đề cập đến thời gian truyền mạng có nghĩa là giữ độ trễ của máy chủ thấp và số byte truyền thấp. Cuối cùng có lẽ là một giao thức dây nhị phân tùy chỉnh cũng được phân tích về tính nén và nén được áp dụng khi thích hợp (ví dụ: chuỗi hoặc chuỗi lặp lại). Nhược điểm của giao thức này là khó có thể mã hóa trên cả máy khách & vì bạn sẽ không thể sử dụng hỗ trợ SDK cho mã hóa được tiêu chuẩn hóa và trừ khi các giao thức nhị phân được thiết kế chu đáo có xu hướng giòn để hỗ trợ các thay đổi trong tương lai và tiện ích mở rộng cho ứng dụng của bạn. Ngoài ra, bạn nên cân nhắc cách xác định giao dịch của giao thức, ngay cả với mã hóa hiệu quả nếu giao thức của bạn yêu cầu nhiều chuyến đi khứ hồi so với một chuyến đi khứ hồi duy nhất bạn vẫn sẽ bị chậm.
Cuối cùng tùy thuộc vào kích thước dữ liệu bạn đang gửi, chi phí của mã hóa có thể không quan trọng so với kích thước của dữ liệu.
Tôi khuyên bạn nên gắn với định dạng mã hóa được chuẩn hóa có thể được phân tích cú pháp với hỗ trợ thư viện, trường này thu hẹp trường thành hai ngữ pháp chính: XML hoặc JSON.
2: XML và JSON đều được hỗ trợ tốt trong khung máy chủ. Khi sử dụng các dịch vụ XML, tôi khuyên bạn nên sử dụng mẫu kiểu REST vì chúng thường dễ xây dựng và bạn không phải tuân thủ ứng dụng của mình theo phong cách của người khác.
Tôi sẽ tránh xa các dịch vụ web dựa trên SOAP mặc dù việc xây dựng chúng có thể được hỗ trợ tốt (đặc biệt là trên nền tảng Windows), vì sự phức tạp của việc phân tích cú pháp dựa trên SOAP trên máy khách di động cao và không được hỗ trợ tốt đó. Tôi không tìm thấy serialization đối tượng được tạo tự động bởi các trình biên dịch WSDL để có thể giành được nhiều thời gian khi viết mã, thường là khá dễ dàng để tuần tự hóa thành một kiểu REST kiểu REST hoặc thậm chí đơn giản hơn cho JSON.
3: iOS hỗ trợ trình phân tích cú pháp XML kiểu SAX tích hợp và có nhiều thư viện lớp có sẵn hỗ trợ triển khai DOM trong bộ nhớ với các tính năng và tốc độ khác nhau. Chọn một trong những tốt nhất cho nhu cầu của bạn.Cá nhân tôi thích TBXML nhanh, khá nhẹ và dễ lập trình, nhưng vì nó không hợp lệ hóa các lược đồ và nó là một cây trong bộ nhớ, nên nó không thích hợp trong một số trường hợp. Here is a shootout hiệu suất thư viện XML của iOS.
Có một số thư viện JSON có sẵn cho iOS nếu bạn sử dụng Google. Hoặc look in this answer.
SOAP không được hỗ trợ tốt và có nhiều lựa chọn thư viện hạn chế. Bạn luôn có thể phân tích cú pháp các phản hồi SOAP được tạo ra bởi một máy chủ nhưng nó dễ vỡ đối với các thay đổi phía máy chủ là SOAP hợp pháp (ví dụ các tiền tố không gian tên khác nhau) có thể phá vỡ trình phân tích cú pháp XML được mã hóa cứng.
4: Khó trả lời mà không cần biết thêm chi tiết về dự án của bạn, nhưng tôi muốn sử dụng mã hóa dựa trên XML đơn giản hoặc JSON vì cả hai đều dễ dàng lập trình trên máy khách và máy chủ. hiệu quả hợp lý trên dây và có khả năng mở rộng cho các lần lặp lại ứng dụng trong tương lai.
JSON có lợi thế khi phân tích cú pháp đơn giản hơn, có thể ít phức tạp hơn và cũng có thể dễ dàng thực hiện lại các mục đích khác, chẳng hạn như xây dựng ứng dụng web Ajax trên các dịch vụ của bạn.
5: XML và JSON so với các mã hóa khác? Tôi nghĩ đây là sở thích cá nhân. XML có thể tự mô tả nhiều hơn JSON nhưng có nhiều khả năng phân tích cú pháp hơn. JSON có thể có chi phí thấp hơn trong byte thô và dễ phân tích cú pháp. Một lần nữa, chi phí mã hóa có thể đáng kể hoặc có thể không đáng kể tùy thuộc vào kích thước nội dung của bạn. Ngoài ra, bạn có thể áp dụng nén bên ngoài trong mọi trường hợp.
Tôi quan tâm như kết quả của cuộc thảo luận này, tôi sẽ phải đối mặt với tình huống tương tự khá sớm. – Webnet
Nếu bạn định tránh XML, bạn có thể muốn điều tra [JSON] (http://en.wikipedia.org/wiki/JSON). Có [thư viện] (http://code.google.com/p/json-framework/) để xử lý JSON trong Objective-C. – JoeGaggler
Tôi không có ý định tránh XML, trên thực tế từ việc đọc tôi đã thực hiện tôi thích RPC-XML tuy nhiên tôi biết nó sẽ chi phí băng thông. Vì vậy, tôi quan tâm để xem liệu chi phí có đáng sử dụng XML cũng như loại lược đồ nào là tốt nhất và hay dễ nhất. – jamone