Introduction
Overview
Sync SDK는 Infotainment 애플리케이션과 Mobile 애플리케이션들간의 데이터 동기화를 지원합니다. Sync SDK는 차량에 최적화된 동기화 특성을 가지고 있으며 크게 SyncDatabase와 SyncDocument를 기반으로 동기화를 지원합니다.
Features
Sync SDK는 다음 네 가지 특성으로 동기화 됩니다.
- Operation-based JSON document synchronization: JSON 포맷의 SyncDocument는 operation 레벨로 업데이트 될 수 있으며 여러 client들간에 operation을 교환하여 동기화합니다. 이를 통해 적은 네트워크 전송량으로 개별 JSON operation들을 동시에 반영하여 동기화 가능합니다.
- Local first, remote later: SyncDocument는 client의 로컬에 복제되어 빠르게 읽기/쓰기가 가능하며, 쓰기 operation은 서버를 통해 원격 client의 복제된 SyncDocument에 적용되고 이벤트 리스너(listener)를 통해 이벤트 처리가 가능합니다.
- Multi-client, real-time concurrency: 여러 client가 복제된 SyncDocument를 동시에 수정할 수 있으며 실시간으로 다른 client에 전달하여 복제된 SyncDocument에 적용될 때 충돌(conflict)를 스스로 해결하여 eventual consistency를 보장합니다.
- Reliable, fault-tolerant synchronization protocol:: 차량이 음영 지역에 들어가거나 통신이 안될 때도 복제된 SyncDocument를 읽기/쓰기가 가능하며 쓰기 operation들을 버퍼링하여 네트워크가 복구되면 유실이나 중복없이 전달합니다. 또한 서버에 전달된 다른 client들의 operation들은 차량 앱이 재시작하거나 네트워크가 가능해 질때 전달됩니다.
Sync SDK의 이러한 특성들을 이해하면 효율적으로 동기화하는 Pleos Connect의 애플리케이션을 구현할 수 있습니다. Sync SDK를 사용하기 위해서는 SyncDatabase를 생성 / 초기화 / 인증 정보를 설정해야 하고, 이를 바탕으로 SyncDocument를 초기화 및 사용 가능합니다. 이에 대한 자세한 예제는 sample에서 확인할 수 있습니다. SyncDocument를 통해 업데이트하는 데이터 구조화를 위해서는 Data sync model에서 참조할 수 있습니다.
[하위 호환성을 지원하지 않습니다]
- Sync SDK v2.3.0은 기존 SDK와 호환되지 않습니다. 따라서 새로운 SDK로 마이그레이션해야 합니다.
- 변경된 패키지 네이밍을 적용합니다. (모듈 단위 build.gradle, import 구문 수정)
- Manifest 파일에서 변경된 permission을 적용합니다
- Pleos Connect Emulator를 다시 다운로드합니다.