2011-04-22 4 views
3

저는 Android 앱에서 액세스 할 웹 서비스를 만들고 있습니다. 최고의 기술이 무엇인지에 대한 연구를 한 후에, 다소 혼란스러워하고 옵션으로 망설였습니다.Android 및 AppEngine 웹 서비스 : Json ... RPC, REST ... 프로토콜 버퍼?

분명히 안드로이드 끝 부분에서 가능한 한 가볍게하고 싶습니다. 그다지 중요한 것은 아니지만 둘 다 자바이기 때문에 공통 코드를 공유하는 것을 선호합니다. 저의 가장 큰 관심사는 효율적이며, 그 후에 간단하고 우아한 코드입니다.

나는 안드로이드 끝에서 gson을 시도했고 멋지게 작동합니다. 그러나 프로토콜 버퍼에 대해 읽었을 때 훨씬 더 효율적으로 보입니다. 중요한 차이가 있는지 확실하지 않습니다. 또한 RPC 또는 REST를 수행할지 여부를 알지 못합니다.

답변

5

효율면에서 볼 때, 프로토콜 버퍼는 JSON 구현보다 효율적일 수 있습니다. 생각만큼 많이 생각하지 않아도됩니다. GSON은 특별히 빠르지 않지만 Jackson 라이브러리는 대부분의 바이너리 시리얼 라이저와 거의 경쟁 할 수 있습니다 (Jackson은 대부분의 경우 GSON보다 2 ~ 4 배 빠르고 UTF-8의 경우 10 ~ 20 배 더 빠르기 때문에 UTF-8에 대한 특수 코드가 있기 때문에).

프로그래밍 모델 때문에 프로토콜 버퍼가 여전히 JSON 라이브러리보다 많습니다. 대부분의 JSON 라이브러리를 사용하면 메시지 구조를 수동으로 확인해야합니다. 프로토콜 버퍼를 사용하여 메시지 구조를 선언적으로 지정하면 라이브러리가 구조적 유효성 검사를 처리합니다 (수동으로 유효성을 검사해야하는 사항이 남아 있지만).

프로토콜 버퍼와 같은 기타 라이브러리 : Apache Avro, Apache Thrift.

Protostuff 라이브러리는 프로토콜 버퍼 데이터 모델을 사용하므로 다른 포맷과 함께 JSON 및 YAML에 직렬화 할 수 있습니다. Javascript 코드에서 서비스를 사용하려는 경우 유용 할 수 있습니다. JSON은 대개 가장 쉬운 방법입니다.

+0

이 정보를 주셔서 감사합니다. 의심 스럽지만 프로토콜 버퍼 사용에 관해 Google에서 몇 가지 사실을 발견했습니다. 프로토콜 버퍼를 사용하여 더 많은 예제가 있다면 좋을 것입니다. – Otto

+0

Protostuff lib가 멋지게 보입니다. 나는 그것, 좋은 팁을 몰랐다! – Otto