2009-11-06 20 views
12

Tôi hiện đang trong giai đoạn nghiên cứu của dự án luận án của tôi.Tùy chọn cho Giao tiếp Máy chủ Khách hàng trong Android

Dự án của tôi là hệ thống đặt vé cho thiết bị di động và tôi đã chọn nhắm mục tiêu Android.

Tôi dự đoán nhu cầu về kiến ​​trúc máy khách/máy chủ với máy chủ trung tâm và vì vậy hiện tại, tôi đang xem cách Android có thể giao tiếp với máy chủ như vậy. Máy chủ sẽ cấp cho khách hàng quyền truy cập vào thông tin bán vé và khách hàng sẽ gửi thông tin về việc đặt vé cho máy chủ. Tôi đang xem Java EE cho máy chủ vì Java là ngôn ngữ tôi có nhiều kinh nghiệm nhất.

Tôi biết Android đi kèm với java.niojava.net, cũng như một số gói org.apache, nhưng tôi cũng đang tìm kiếm thư viện/công nghệ có thể sử dụng với Android.

Cho đến bây giờ tôi không tìm thấy bất kỳ thứ gì ồ ạt hữu ích trên internet, vì vậy tôi thấy những gì SO có thể đề xuất.

Cụ thể tôi muốn biết:

  1. hỗ trợ gì cho công nghệ middleware khác nhau trong Android? ví dụ.
    • RPC dựa middleware
    • CORBA
    • middleware nhắn dựa
    • dịch vụ Web như XML-RPC, SOAP, REST
  2. tốt như thế nào (hoặc không) làm thư viện Java hiện làm việc khi được sử dụng trên nền tảng Android? (ví dụ: Nếu tôi muốn sử dụng thư viện/API được thiết kế cho Java SE thay vì Android thì tôi có thể gặp phải vấn đề gì?)

Lý tưởng nhất, vì trọng tâm của dự án của tôi không có nghĩa là giao tiếp giữa máy chủ và khách hàng, tôi có thể sử dụng một phần mềm trung gian hiện có để xử lý thông tin liên lạc, nhưng tôi đã chuẩn bị cho trường hợp xấu nhất, đó là việc phải tự viết.

Trả lời

14

Có hỗ trợ nào cho các công nghệ phần mềm trung gian khác nhau trong Android? ?

Ý kiến ​​cá nhân của tôi - mặc dù tôi không cảm thấy đơn độc khi nghĩ theo cách này - chỉ có các giao thức được thiết kế riêng để chạy qua Internet mới phù hợp với khách hàng di động. Vì vậy, trong danh sách của bạn, là người duy nhất mà tôi thậm chí sẽ giải trí sẽ là:

dịch vụ Web như XML-RPC, SOAP, REST

Một số người đã được duy trì một cổng Android của kSOAP2 . Tuy nhiên, tôi có ấn tượng rõ ràng rằng hầu hết các nhà phát triển Android làm việc trong lĩnh vực này đều có xu hướng hướng tới các giao thức REST và REST-ish. Nếu không có gì khác, đó là những gì tất cả các trang web và dịch vụ thú vị đang sử dụng cho một API, đặc biệt là so với XML-RPC (cũ) và SOAP (cũ và icky).

Tôi đã sử dụng thành công cả thư viện java.net.URLConnection và Apache HTTPClient trong Android để liên lạc với các điểm cuối kiểu REST - cả trực tiếp và thông qua các JAR của bên thứ ba - không có sự cố cụ thể của Android.

Thư viện Java hiện tại hoạt động tốt khi được sử dụng trên nền tảng Android?

Thật khó để trả lời rằng trong tóm tắt. Android thực hiện một tập hợp con đáng kể của JavaSE, nhưng không phải tất cả JavaSE, do đó, có một cơ hội mà bất kỳ JAR nhất định nào cũng mong đợi một thứ mà Android không cung cấp. Tương tự, Android không sử dụng các biến môi trường, các công tắc dòng lệnh hoặc nhiều thứ khác mà các nhà phát triển tập trung vào máy tính để bàn có thể đã được giới thiệu là các yêu cầu bán. Vì vậy, một số thứ đã làm việc cho tôi không có gì hơn là biên dịch lại (Beanshell), và một số thứ đã làm việc cho tôi sau khi loại bỏ các lớp dư thừa (JTwitter), và một số thứ trông giống như chúng sẽ trở nên khủng khiếp để làm việc (JavaMail) .

+1

Câu hỏi này hiện đã hơi cũ nhưng vẫn thu hút được nhiều lượt xem. Câu trả lời của bạn vẫn được cập nhật, hoặc có môi trường Android đã thay đổi trong 3 năm qua liên quan đến câu hỏi ban đầu? – chrisbunney

+2

@chrisbunney: Ai đó đã làm việc với JavaMail, vì vậy đó không còn là vấn đề nữa. 'HttpUrlConnection' là phương pháp được khuyến nghị cho các máy khách REST trên Apache HTTPClient. Nếu không, tôi nghĩ rằng các khuyến nghị của tôi từ cách trở lại sau đó vẫn còn khá chính xác. – CommonsWare

Các vấn đề liên quan