2009-11-06 4 views
12

현재 나는 논문 프로젝트의 연구 단계에 있습니다.안드로이드에서 클라이언트 서버 통신을위한 옵션들

내 프로젝트는 모바일 장치 용 티켓 예약 시스템이며 Android를 타겟팅하도록 선택했습니다.

중앙 서버가있는 클라이언트/서버 아키텍처가 필요하기 때문에 현재 안드로이드가 이러한 서버와 통신 할 수있는 방법을 찾고 있습니다. 서버는 발권 정보에 대한 클라이언트 액세스 권한을 부여하고 클라이언트는 티켓 예약에 대한 정보를 서버에 보냅니다. 나는 자바가 가장 경험이 많은 언어이기 때문에 서버용 자바 EE를보고있다.

Android는 java.niojava.net 패키지와 함께 제공되며 일부는 org.apache 패키지이지만 Android에서 사용할 수있는 라이브러리/기술을 찾고 있습니다.

지금까지 인터넷에서 도움이되는 정보를 찾을 수 없었으므로 SO가 제안 할 수있는 내용을 확인했습니다.

특히 내가 아는에 관심이 :

  1. 어떤 지원이 안드로이드의 다양한 미들웨어 기술에 대한 있는가? 예 :
    • RPC 기반 미들웨어
    • 는 CORBA
    • 같은 XML-RPC, SOAP, REST
  2. 과 같은 메시지 기반 미들웨어
  3. 웹 서비스는 얼마나 잘 (여부) 기존의 자바 라이브러리 때 작동합니까 Android 플랫폼에서 사용 되나요? (예 : Android가 아닌 Java SE 용으로 설계된 라이브러리/API를 사용하려는 경우 어떤 문제가 발생할 수 있습니까?)

이상적으로 내 프로젝트의 초점은 서버 간의 통신이 아닙니다. 클라이언트는 기존 미들웨어를 사용하여 통신을 처리 할 수 ​​있지만 최악의 경우를 대비하여 준비해야합니다.

답변

14

Android의 다양한 미들웨어 기술에 대한 지원에는 어떤 것이 있습니까?

개인적인 견해 - 비록 내가 이런 식으로 생각하고 혼자라고 느끼지 않지만 - 인터넷을 통해 실행되도록 특별히 설계된 프로토콜 만 모바일 클라이언트와 함께 사용하기에 적합합니다. 그래서, 당신의 목록으로, 심지어 즐겁게 할 유일한 사람은 다음과 같습니다 같은 REST XML-RPC, SOAP 등

웹 서비스는

어떤 사람들은 kSOAP2의 안드로이드 포트를 유지하고있다 . 그러나 나는이 분야에서 일하는 대부분의 안드로이드 개발자들이 REST와 REST-ish 프로토콜을 선호한다는 인상을 받았다. XML-RPC (이전) 및 SOAP (이전 및 icky)와 비교할 때 API 이외의 다른 웹 사이트 및 서비스가 사용되는 것은 아닙니다.

진정한 Android 관련 문제없이 REST 스타일 엔드 포인트 (직접 및 타사 JAR 모두)와 통신하기 위해 Android에 java.net.URLConnection 및 Apache HTTPClient 라이브러리를 모두 성공적으로 사용했습니다.

얼마나 잘 (또는하지 않음) 안드로이드 플랫폼에 사용할 경우 기존 Java 라이브러리가 작동합니까?

초록에서는 대답하기가 어렵습니다. Android는 JavaSE의 상당 부분을 구현하지만 모든 JavaSE를 구현하지는 않으므로 주어진 JAR에서 Android가 제공하지 않는 것을 기대할 수 있습니다. 마찬가지로 Android는 환경 변수, 명령 행 스위치 또는 데스크톱 중심의 개발자가 준 요구 사항으로 도입 한 다양한 기타 기능을 사용하지 않습니다. 그래서, 재 컴파일 (Beanshell) 이상으로 어떤 것들이 나에게 도움이되었고, 중복 클래스 (JTwitter)를 제거한 후에 어떤 것들은 나를 위해 일했고, 어떤 것들은 그들이 일하기 위해 무시 무시한 것처럼 보였다 (JavaMail) .

+1

이 질문은 아직 조금 오래되었지만 여전히 많은 의견을 불러옵니다. 귀하의 답변은 여전히 ​​최신입니까, 아니면 원래 질문과 관련하여 지난 3 년 동안 Android 환경이 변경 되었습니까? – chrisbunney

+2

@chrisbunney : 누군가 JavaMail을 작동 시켰으므로 더 이상 문제가되지 않습니다. 'HttpUrlConnection'은 Apache HTTPClient에 비해 REST 클라이언트에 권장되는 방법입니다. 그렇지 않으면, 나는 그 당시의 나의 권고가 여전히 꽤 정확하다고 생각한다. – CommonsWare