20150303 RAD스튜디오로 사물인터넷(IoT) 구현하기

Post on 18-Jul-2015

169 views 22 download

Transcript of 20150303 RAD스튜디오로 사물인터넷(IoT) 구현하기

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

RAD스튜디오로 사물 인터넷(IoT) 구현하기 DeepDive!

2015년����������� ������������������  03월����������� ������������������  03일����������� ������������������  

EMBARCADERO  TECHNOLOGIES  

발표자  •  김현수(Humphery  Kim)  •  데브기어 델파이 에반젤리스트  

•  데브기어 테크사이트 :  h/p://tech.devgear.co.kr/  

•  블로그 :  h/p://blog.hjf.pe.kr/  •  Facebook  :  h/p://?.com/hjfactory  •  hskim@embarcadero.kr  

 

EMBARCADERO  TECHNOLOGIES  

Agenda  

•  엠바카데로 (솔루션과 전략) •  사물인터넷(IoT) 앱 개발 •  연결된 앱 (Connected Apps) 그리고 모든 것에 연결 •  엔터프라이즈 기업을 위한 사물인터넷(IoT)

•  헬스캐어 시나리오 구현 •  데모로 살펴보는 사물인터넷 기술

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

엠바카데로 Embarcadero

솔루션과 전략

EMBARCADERO  TECHNOLOGIES  

5  

Founded 1993 3.2 Million Customers

500+ Employees in 29 Countries 5 R&D Centers of Excellence World Wide Sales & Support

Embarcadero Technologies

EMBARCADERO  TECHNOLOGIES  

수백만의 Delphi/C++ 개발자는 코딩 중…

•  연간 97 억 줄

•  10만 윈도우 애플리케이션

•  80% 적은 코드 – 1 줄당 1,700원

•  68조원을 개발자가 연간 절감

•  이제, 사물인터넷으로 확장

EMBARCADERO  TECHNOLOGIES  

멀티-­‐디바이스 순수 네이티브  

Apple  Google  

Microso>  

HTML5  Appcelerator  

Kony    

단일  디바이스  

멀티  디바이스  스크립트  순수 네이티브  

멀티-­‐디바이스  순수 네이티브  Embarcadero  

찬성  네이티브 사용자경험(UX)  네이티브 성능  보안성  

찬성  단일 팀  개발 비용이 더 작음  신속한 시장 진출    

EMBARCADERO  TECHNOLOGIES  

$

Future델파이 or C++

FM 앱 프레임워크

단일 팀,  단일 코드베이스  

단일 팀  단일 코드베이스  

RAD  스튜디오로 멀티-­‐디바이스를 실현  

EMBARCADERO  TECHNOLOGIES  

Embarcadero, XCode

Appcelerator, HTML5, Sencha,

Kendo, Edge, PhoneGap, Corona

Xamarin, Dalvik

Titanium.Geolocation.distanceFilter = .25; Ti.Geolocation.purpose = "Callbacks Are Your Friend”; // make the API call Ti.Geolocation.getCurrentPosition(function(e) { // do this stuff when you have a position, OR an error if (e.error) { Ti.API.error('geo - current position' + e.error); return; } // got the location information Ti.App.info('got a location ',JSON.stringify(e)); }); JavaScript

100100110010011001001100100110010011001001100100110010

ARM Binary

Bytecode  IL  

JavaScript 런타임인터프리터

가상 머신 (VM) 런타임

네이티브 스크립트 가상머신

EMBARCADERO  TECHNOLOGIES  

순수 네이티브로 컴파일된 코드 – 모바일의 경우  

앱 소스 코드

FM 프레임워크

Cocoa SDK Native Developer Kit

.app in IPA .so in APK

EMBARCADERO  TECHNOLOGIES  

Platform Vendor Tools Embarcadero HTML5 Cross

Platform Appcelerator Xamarin

도구 XCode, Visual Studio,

EclipseRADStudio

Adobe, Sencha, Kendo, HTML5Builder

Titanium Mono

플랫폼 Win or Mac or iOS or Android*

Mac/Win/iOS & Android* (2013) iOS/Android iOS/Android iOS/Android

단일 소스/ 멀티-디바이스 No Yes Yes 일부 일부

런타임 ARM ARM JavaScript JavaScript Bytecode VM

순수 네이티브 스크립트 VM

순수 네이티브  or  스크립트?  

*Android NDK 는 순수 네이티브 – Android ADK (Java/Davlik VM)은 순수 네이티브 아님  

EMBARCADERO  TECHNOLOGIES  

순수 네이티브,  컴파일된 코드  

•  순수 네이티브,  컴파일된 코드 (RAD  스튜디오 사용)는 스크립트가 없으며 하드웨어 CPU에서 바로 작동되므로 다음과 같은 장점을 가짐:  –  빠르다  –  Uncompromised  naNve  device  performance  with  full  naNve  API  

and  CPU  control  when  needed,  and  not  limited  by  or  slowed  by  script  interpreters  and  VMs.  

–  예측 가능하다  –  Apps  run  directly  on  the  device  CPU,  as  intended  by  the  device  vendors,  and  are  not  slowed  by  addiNonal  soRware  layers  and  random  garbage  collecNon.    

–  사용자경험(UX)이 더 뛰어나다  –  Apps  take  full  advantage  of  device  capabiliNes  and  performance.    

 

EMBARCADERO  TECHNOLOGIES  

RAD  -­‐  직접 보면서 개발  

EMBARCADERO  TECHNOLOGIES  

EMBARCADERO  TECHNOLOGIES  

최신 언어의 기능  

•  Property-­‐Method-­‐Event    •  AutomaNc  Reference  CounNng  •  Interfaces  •  A/ributes  •  Generics/CollecNons  •  Anonymous  Methods  (Lambda  funcNons/closures)  •  Rich  RTTI  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

사물인터넷(IoT) 앱 개발  

EMBARCADERO  TECHNOLOGIES  

FireUI  

•  엠바카데로의 기술 컬렉션으로 하나의 화면(UI) 폼을 서로 다른 모든 디바이스와 화면 비율에 적용  – 멀티-­‐디바이스 디자이너  – MulNView  컴포넌트  –  Behavior 서비스  

EMBARCADERO  TECHNOLOGIES  

멀티-­‐디바이스 디자이너  

•  마스터 폼 디자인  •  필요하면 특정 뷰를 생성  

–  마스터 폼을 상속  

•  단일 프로젝트의 단일 폼이 모든 디바이스에 적용  –  UI  코드와 이벤트 처리 공유  

EMBARCADERO  TECHNOLOGIES  

TMulNView 컴포넌트  

•  디바이스의 화면에 알맞게 마스터 목록과 메뉴를 표시  –  PlaYormBehaviour  –  Drawer  –  Panel  –  Popover  –  Custom  

EMBARCADERO  TECHNOLOGIES  

Behavior  서비스  

•  개발자가 앱이 실행될 디바이스,  OS,  화면 요소에 액세스할 수 있는 API  

•  MulNView  컴포넌트가 자동으로 화면에 반응할 수 있도록 하는 기반  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

연결된 앱

EMBARCADERO  TECHNOLOGIES  

왜 사물인터넷 (IoT) 인가?  •  사물인터넷(IoT)은 우리가 디바이스를

사용하고 상호작용하는 방식을 바꾸고 있습니다  

•  기기/웨어러블은 새로운 사용자 경험(UX)  입니다  

•  앱은 더이상 혼자있을 수 없습니다. 앱은 디바이스, 기기, 클라우드, 데이터 요소로 분산되어서 존재합니다.  

 

Wor

ks W

ith

EMBARCADERO  TECHNOLOGIES  

현재의 앱을 사물인터넷으로 확장 Appmethod  breath  new  life  into  exisNng  applicaNons  by  enabling  developers  to  easily  IOT  extend  exisNng  apps  connecNng  devices,  sensors,  data  and  services.    

연결된 앱들을 구축 With AppTethering, developers easily extend an app user experience across devices and gadgets. This is especially powerful for extending the utility of existing desktop and mobile apps. Virtually all industries can immediately benefit, such as Point of Sale, Food Services, Healthcare, Manufacturing and Shipping but the applications are limitless.

EMBARCADERO  TECHNOLOGIES  

수천가지의 디바이스와 동작 Appmethod’s  integrated  wireless  support  (Bluetooth  and  Wifi  )  works  with  thousands  of  “off  the  shelf”  consumer  and  industry  specific  devices.  Appmethod’s  approach  make  it  easy  to  integrate  virtually  any  device  into  the  app  user  experience,  and  even  support  mulNple  device  vendors  with  the  same  code.    

Bluetooth & WiFi 내장 Appmethod's integrated Bluetooth and WiFi support in the RTL and easy to use components enable developers to easily connect to any wireless and Internet connected gadgets, sensors and devices.

EMBARCADERO  TECHNOLOGIES  

AT  

AT  

PC  앱  모바일 앱  

스마트폰 앱  

AT  

•  앱을 서로서로 연결 •  디바이스 자동 탐색 •  다른 디바이스의 이벤트와 동작을 제어

•  앱을 원격 조정 •  데이터 송수신 •  Bluetooth & WiFi 지원

앱 테더링 (AppTethering)  

EMBARCADERO  TECHNOLOGIES  

•  개발자들이 상호 연결되는 새로운 앱을 만들 수 있다:  앱들이 서로서로 연결되고, 기기, 클라우드 서비스, 데이터에 연결  

•  RAD 스튜디오와 앱메소드는 연결된 앱들의 새로운 세상을 위한 개발 도구  

•  상호 연결의 주요 4 영역:  –  모바일/PC  디바이스  –  기기  –  클라우드 서비스  –  엔터프라이즈 데이터  

RAD스튜디오와 사물인터넷(IoT)  

EMBARCADERO  TECHNOLOGIES  

사물인터넷(IoT)에 연결하려면  

•  앱을 패키징하여 로드  –  Bluetooth  or  WiFi  테더링  

•  Bluetooth  LE 프로파일  –  GATT  

•  REST  APIs  over  WiFi  •  플랫폼 SDK  

EMBARCADERO  TECHNOLOGIES  

All  “things”  connected  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

엔터프라이즈를 위한 IoT (헬스 케어, 스마트 공장…)

EMBARCADERO  TECHNOLOGIES  

EMBARCADERO  TECHNOLOGIES  

엔터프라이즈 모빌리티 서비스  (Enterprise  Mobility  Services,  EMS)  •  턴키 미들웨어 서버,  기업용 사물 인터넷 기능 내장  

– 사용자 관리, 인증  –  REST 위에 직접 만든 API들을 오픈  – 엔터프라이즈 데이터베이스를 REST를 통해 연결 (Oracle,  MS  SQL  Server,  DB2,  Informix,  Sybase,  등)  

– 모바일 임베디드, 서버-­‐사이드 DB 내장  – 웹 콘솔을 통해 사용자, 디바이스,  API  사용 분석  

EMBARCADERO  TECHNOLOGIES  ConnecNng  to  All  Things  

33  

RTL  

App  Tethering 컴포넌트  Framework  

BT  Speaker    

   

Google  Glass    

   

Samsung  TV    

   

Wireless  Scale    

   

Carplay      

XML    

Device  Profiles    (100’s  to  1000’s)  

EMBARCADERO  TECHNOLOGIES  기업용 IOT  

34  

EMS  서버  •  사용자 인증  •  API  호스팅  •  기업 데이터 액세스  •  데이터 저장소  •  IOT  디바이스 접근 통제  

EMS  IOT  Repeater  

사용자 근처의 사물  IOT  Repeater 근처의 사물  

EMS  서버 근처의 사물  

모든 클라우드 서비스  

기업 내의 모든  데이터와 서비스    

EMBARCADERO  TECHNOLOGIES  Example:  병원/의료영상 검사실  

35  

EMS  서버  •  사용자 인증  •  API  호스팅  •  기업 데이터 액세스  •  안전한 데이터 저장소  •  IOT  디바이스 접근 통제  

EMS  IOT  Repeater  

아웃365  캘린더  

대기실  

EMS  IOT  Repeater  

영상 검사실  

Oracle  

암호화된 데이터   IT  

BAAS  

의료진의 태블릿  

환자의  폰  

환자의  스마트워치  

다음 환자  호출  

대기시간  표시  

Imaging  Center  Michael,  Dr.  Jones  will  See  you  now.  

         

Close   View  

간호사실  

EMS  IOT  

Repeater  

간호사  태블릿  

MRI  스캐너  

EMBARCADERO  TECHNOLOGIES  Example:  스마트 공장  

36  

EMS  서버  •  사용자 인증  •  API  호스팅  •  기업 데이터 액세스  •  안전한 데이터 저장소  •  IOT  디바이스 접근 통제  

EMS  IOT  

Repeater  

생산 라인  

EMS  IOT  Repeater  

Oracle  

암호화된 데이터   IT  

엔지니어의 태블릿  

엔지니어의 폰  

엔지니어의  스마트워치  

생산 현황  표시  

로봇  

자재 창고  

실내 온도  &  습도  센서  

재고 관리 로봇  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

헬스케어 시나리오  RAD  스투디오로 구현  

EMBARCADERO  TECHNOLOGIES  

RAD  Studio의 사물인터넷 지원  

•  멀티디바이스 개발  •  블루투스  

– 클래식 블루투스  – 블루투스  LE  컴포넌트  

•  REST 연결(IoT 기기/센서)  •  앱 테더링(WiFi/블루투스)  

EMBARCADERO  TECHNOLOGIES  

가족  병원   환자  

모바일 헬스케어 시나리오  

진료용 PC  

환자의  심장박동  센서  

가족의  폰 or  태블릿  

환자의  폰  or  워치  

Cloud  (BaaS)  

응급실 태블릿  

•  환자����������� ������������������  심장박동����������� ������������������  센서����������� ������������������  장착����������� ������������������  •  환자의����������� ������������������  스마트폰과����������� ������������������  연결����������� ������������������  •  백엔드(클라우드)에����������� ������������������  심박정보����������� ������������������  전송����������� ������������������  

•  긴급(심장이상)����������� ������������������  시����������� ������������������  조치안내����������� ������������������  •  가족에게����������� ������������������  방문����������� ������������������  알림����������� ������������������  •  응급실에서����������� ������������������  태블릿으로����������� ������������������  환자상태����������� ������������������  확인����������� ������������������  후����������� ������������������  빠른대응����������� ������������������   응급

AT  

GCM

EMBARCADERO  TECHNOLOGIES  

모바일 헬스케어 시나리오 데모  

Bluetooth / Mobile / Cloud in RAD Studio

DEMOSTRATIONS 모바일����������� ������������������  헬스캐어����������� ������������������  시나리오

EMBARCADERO  TECHNOLOGIES  

데모1. 모바일과 심박센서 연결  

진료용 PC  

환자의  심장박동  센서  

환자의  폰  or  워치  

응급실 태블릿  

가족의  폰 or  태블릿  

Cloud  (BaaS)  

응급

AT  

AT  

1.  심박센서 연결(블루투스 LE)  

2.  심박정보 모니터링 앱(스마트폰, 스마

트 패드, 웨어러블 디바이스)  

3.  심박데이터 클라우드 등록/조회(BaaS)  

4.  위급사항 발생 시 원격 메시지 전송

(BaaS,  GCM:  Google  Cloud  Message)  

GCM

가족  병원   환자  

EMBARCADERO  TECHNOLOGIES  

데모2. 심박데이터 활용 & 모바일 확장  

가족  병원   환자  

진료용 PC  

환자의  심장박동  센서  

가족의  폰 or  태블릿  

Cloud  (BaaS)  

응급실 태블릿  

AT  환자의  

폰  or  워치  

GCM

1.  진료PC에서 심박데이터 클라우드 조회

(BaaS)  

2.  진료PC에서 환자에게 메시지전달(GCM)  

3.  (사내에서)진료 데이터를 태블릿으로

제공(모바일확장,  AppTethering)  

•  조회한 데이터 셋 일괄 전송

(FireDAC)  

•  문자열, 파일(스트림) 전송

•  폰과 태블릿용 최적UI 제공

(FireUI)  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

여러분의 앱을  센서와 기기로 확장할 수 있는  RAD스튜디오의 주요 기술  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

연결된 앱

EMBARCADERO  TECHNOLOGIES  

블루투스  

•  블루투스 지원(System.Bluetooth)  •  블루투스 LE 컴포넌트(TBluetoothLE)  •  클래식 블루투스 라이브러리  

–  TBluetoothManager  –  TBluetoothAdapter  –  TBluetoothDevice  

블루투스 :  h/ps://www.bluetooth.org/ko-­‐kr/  

EMBARCADERO  TECHNOLOGIES  

블루투스 기술 종류  

클래식 블루트스   블루투스 LE(Low  Energy)  

•  블루투스 LE 보타 처리량이 뛰어나다.  •  데이터 전송속도 2Mbps  •  소비전력이 크다.  •  표준 블루투스 프로파일(SPP,  DUN,  PAN)에 근거한다.  

•  프로토콜은 최대 7 솔레이브로 제한된다.  

•  소량의 데이터를 주기적 전송 시 적합  •  데이터 전송속도 100Kbps 미만  •  소비전력이 매우 적다.  •  GATT 프로파일에 근거한다.  •  다수의 솔레이브를 지원한다.  •  연결 시간이 짧고 페어링이 필요없다.  

EMBARCADERO  TECHNOLOGIES  

일반 속성 프로파일(GATT)  

•  애플리케이션에서 표준 서비스 사용을 위해 서비스별로 정의된 값  

•  GATT(일반  속성  프로파일)  사양  –  h/ps://developer.bluetooth.org/ga//

services/Pages/ServicesHome.aspx  

Bluetooth  Base  UUID  :    00000000-­‐0000-­‐1000-­‐8000-­‐00805F9B34FB  Heart  Rate  :      0000180D-­‐0000-­‐1000-­‐8000-­‐00805F9B34FB  Heart  Rate  Measurement  :    00002A37-­‐0000-­‐1000-­‐8000-­‐00805F9B34FB  Body  Sensor  LocaNon  :    00002A38-­‐0000-­‐1000-­‐8000-­‐00805F9B34FB  

EMBARCADERO  TECHNOLOGIES  

클라우드 수화물 무게 기록  BALANCE  BLUETOOTH    SMART  SCALE(WAHOO)    사용기술  •  블루투스 LE  •  클라우드(BaaS)  

h/p://blog.hjf.pe.kr/274  

EMBARCADERO  TECHNOLOGIES  

스마트 홈 컨트롤러  Z-­‐Wave,  VeraLite  Home  Controller    사용기술  •  REST  API  over  WiFi  •  JSON  

h/p://blog.appmethod.com/developing-­‐the-­‐internet-­‐of-­‐things-­‐kwikset-­‐smartcode-­‐deadbolt-­‐and-­‐veralite-­‐smart-­‐home-­‐controller  

EMBARCADERO  TECHNOLOGIES  

가정용 조명 컨트롤러  Philips  Hue  Lights    사용기술  •  REST  API  over  WiFi  •  JSON  

h/p://blogs.embarcadero.com/davidi/2014/02/03/43493  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

사물인터넷(IoT) 앱 개발  

EMBARCADERO  TECHNOLOGIES  

FireUI  :  장치의 다양성은 더욱 확장될 것!!  

EMBARCADERO  TECHNOLOGIES  

멀티 디바이스 개발(모바일 /  PC  / 웨어러블)  멀티-­‐디바이스 디자이너   TMulNView   Behaviour  서비스  

h/p://tech.devgear.co.kr/405789  h/p://tech.devgear.co.kr/405793    

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

엔터프라이즈 데이터 엑세스  

EMBARCADERO  TECHNOLOGIES  

MEAP(Mobile  Enterprise  ApplicaNon  Pla`orm)  

         

REST  Client  

 

DataSnap  (미들웨어)  

     

Cloud  Service  (BaaS)  

EMS  (기업형 모빌  리티 서비스)  

백엔드 데이터와 연결할 수 있는 다양한 방법(VCL  /  FMX)  

EMBARCADERO  TECHNOLOGIES  

REST 클라이언트  

•  표준 웹 프로토콜(REST) 지원  •  기능별 독립 컴포넌트  

–  TRESTClinet  –  TRESTRequest  –  TRESTReponse  

•  JSON  데이터 자동분석  •  REST  Debugger:  REST 분석툴  

EMBARCADERO  TECHNOLOGIES  

데이터 스냅  

•  델파이로 만드는 미들웨어 서버  – 미들웨어 서버를 통해 엔터프라이즈 DBMS,  사내 보안데이터 연결  

–  TCP/IP,  HTTP,  HTTPS 지원  – 서버 데이터셋,  메소드 제공  – 서버의 메소드 자동 생성  – 모바일과 데스크탑 클라이언트 제공  

DataSnap  서버  

Database  

EMBARCADERO  TECHNOLOGIES  

클라우드:  Backend  as  a  Service  

•  클라우드 기반 백엔드 서비스  •  제공기능  

–  데이터와 파일 스토리지  –  사용자 관리  –  원격 푸시 알림  –  소셜네트워크  –  사용자 분석  

•  Backend  컴포넌트 이용  h/p://www.youtube.com/playlist?list=PLpSzuJvn7BTwNO6lw9dKHfqFf4bkrJhw2    

EMBARCADERO  TECHNOLOGIES  

엔터프라이즈 모빌리티 서비스(EMS)  

•  턴키 방식의 REST  기반의 MEAP 미들웨어  – 사용자 정의  API    호스팅  – 엔터프라이즈 데이터베이스 엑세스  – 사내 서비스와 클라우드 엑세스  – 모바일과 데스크탑 클라이언트 지원  – 클라이언트용 컴포넌트 제공(BaaS 기반)  – 사용자,  REST  API 호출 웹 콘솔을 통해 분석  

EMBARCADERO  TECHNOLOGIES  

앱 테더링  

•  VCL 윈도우 앱을 모바일 장치로 가장 쉽게 확장하는 방법  – 신규개발 보다 상호보완과 확장  

•  양측에 컴포넌트 추가로 커뮤니케이션  – 디바이스 자동 탐색 / 앱간 연결  – 앱을 원격 조정 / 데이터 송수신  – WiFi  & 블루투스 인터페이스 지원  

h/p://tech.devgear.co.kr/406984  h/p://www.youtube.com/watch?v=OFNsLU7OXLk      

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

마무리 요약  

EMBARCADERO  TECHNOLOGIES  

마무리 요약  

•  사물인터넷 앱 개발과 커넥티드(Connected)!  •  모바일 헬스캐어 시나리오를 RAD  Studio로 구현  •  사물인터넷 센서와 기기 연결 앱 개발  

– 블루투스/LE,  REST,  WiFi,  FireUI  

•  엔터프라이즈 데이터 연결 기술  –  BaaS,  앱테더링,  데이터스냅,  REST  클라이언트  

•  최고의 RAD  Studio  

EMBARCADERO  TECHNOLOGIES  

교육안내  •  h/p://devgear.co.kr/edu  

EMBARCADERO  TECHNOLOGIES  

도서안내  

•  한 번에 개발하는 안드로이드/iOS 앱 with  델파이 –  2편 고급활용  •  김원경, 김현수, 오상현 저  •  h/p://www.devgear.co.kr/book/  •  전국 서점에서 만나보세요  

•  대상  •  따라하기 과정을 통한 학습  •  모바일 개발을 시작하는 개발자  

EMBARCADERO  TECHNOLOGIES  EMBARCADERO  TECHNOLOGIES  

감사합니다.  

h/p://tech.devgear.co.kr  h/p://www.devgear.co.kr  h/p://www.facebook.com/devgear    

EMBARCADERO  TECHNOLOGIES  

QuesNons?    

QuesNons?