BaaS(Backend as a Service)
Backend as a service - http://en.wikipedia.org/wiki/BaaS
간단히 설명하면, 여러분이 앱을 만드는 경우 앱에서 사용하기 위한 데이터, 사용자 정보등의 Backend 기능을 여러분의 서버에 구성하지 않고, BaaS 사이트(또는 연동)에서 제공하는 기능을 설정(커스터마이징) 후 이용하는 방식입니다. 별도의 여러분의 Backend 서비스 개발 과정이 생략되어 개발 시간을 대폭 단축 할 수 있습니다.
대표적인 BaaS 제공자로는 Kinvey, Pharse, Bass.io(국내)가 있으며 제공되는 기능은 푸시알림, SNS 연동, 사용자 관리, 데이터 관리, 이미지/사운드 등의 파일 관리 등이 있습니다.
BaaS 컴포넌트
BaaS 컴포넌트는 위와 같이 제공자 컴포넌트와 서비스 기능 컴포넌트로 구분됩니다.
서비스 기능 컴포넌트는 BaaS에서 제공되는 대표적인 기능을 사용할 수 있는 컴포넌트이며, 기능별로 추상화(표준화)되어 제공되어 제공자별로 별도로 구성하지 않아도 됩니다. 앱 개발 시 서비스 기능 위주로 개발하고 제공자를 연결하면 제공자의 서비스와 연결되도록 아주 유연한 구조로 설계가 되어있습니다.
즉, 향후 제공자가 추가된다면, 기존에 구현된 기능을 그대로 사용하고 제공자 컴포넌트만 변경해 적용 할 수 있습니다.
그리고 BaaS 컴포넌트는 멀티플랫폼을 지원하여, VCL과 FMX에서 모두 사용이 가능합니다.
즉, VCL에서 사용자 및 데이터 관리와 푸시메시지 전송등을 기존의 어플리케이션에서 적용할 수도 있습니다.
BaaS 관련 샘플
다음은 엠바카데로에서 제공하는 BaaS 컴포넌트 관련 설명과 샘플소스입니다.
(개인적으로 GCM 부분을 따라해 봤는데 아주 쉽게 되었습니다.)
▶ Remote Notification(GCM, APN)
Mobile Tutorial: Using Remote Notifications
- http://docwiki.embarcadero.com/RADStudio/XE6/en/Mobile_Tutorial:_Using_Remote_Notifications_(iOS_and_Android)
메시징 서비스 설정 - 구글과 애플에서 클라우드 서비스 사용을 위한 설정
클라우드 서비스에 구글과 애플 계정 연결 설정
어플리케이션 구현 - 컴포넌트를 이용 클라우드 메시지 수신하도록 구현 및 테스트
- http://blogs.embarcadero.com/sarinadupont/2014/04/30/extend-your-mobile-apps-by-triggering-push-notifications/
데스크탑에서 클라우드 메시지 전송
- http://blogs.embarcadero.com/sarinadupont/2014/04/17/sending-notifications-from-baas-enabled-desktop-apps-to-your-mobile-clients/
▶ Storage 이용
BaaS 컴포넌트를 이용한 ToDo List
- http://blogs.embarcadero.com/sarinadupont/2014/05/06/adding-user-authentication-to-my-todo-list-baas-demo/
사용자 계정관리(생성)
▶ 파일 업로드/다운로드
Uploading images to the cloud with BaaS in RAD Studio XE6
▶ BaaS 데모 프로젝트(소스코드)
델파이 샘플 다운로드
C++빌더 샘플 다운로드
▶ VCL 어플리케이션에서 특정 사용자에게 푸쉬메시지 전송
참고
- Sarina DuPont 블로그의 BaaS 관련 글 모음
- XE5에서 BaaS 컴포넌트 사용하지 않고 GCM 구현하는 방법 - http://blog.hjf.pe.kr/124
- XE5에서 BaaS 컴포넌트 사용하지 않고 APN 구현하는 방법 - http://blog.hjf.pe.kr/129
- [XE7] 자체적으로 원격푸쉬알림(GCM, APN) 전송 구현방법