37
EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES 박범용 ㈜데브기어 [email protected] 사물인터넷 앱 개발과 커넥티드(Connected)! 2015년 01월 27일

20150127 사물인터넷 앱 개발과 커넥티드(connected)

  • Upload
    devgear

  • View
    516

  • Download
    7

Embed Size (px)

Citation preview

Page 1: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

박범용 ㈜데브기어

[email protected]

사물인터넷 앱 개발과 커넥티드(Connected)!

2015년 01월 27일

Page 2: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

Agenda

• 엠바카데로 (솔루션과 전략)

• 사물인터넷(IoT) 앱 개발

• 연결된 앱 (Connected Apps)

그리고 모든 것에 연결

• 엔터프라이즈 기업을 위한 사물인터넷(IoT)

Page 3: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

엠바카데로

Embarcadero

솔루션과 전략

Page 4: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

4

Founded 1993

3.2 Million Customers

500+ Employees in 29 Countries

5 R&D Centers of Excellence

World Wide Sales & Support

Embarcadero Technologies

Page 5: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

• 연간 97 억 줄

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

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

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

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

Page 6: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

Apple Google

Microsoft

HTML5 Appcelerator

Kony

단일 디바이스

멀티 디바이스

스크립트 순수 네이티브

멀티-디바이스

순수 네이티브 Embarcadero

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

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

Page 7: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

$

Future 델파이 or C++

FM 앱 프레임워크

단일 팀, 단일 코드베이스

단일 팀 단일 코드베이스

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

Page 8: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

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

100100110010

011001001100

100110010011

001001100100

110010 ARM Binary

Bytecode IL

JavaScript 런타임인터프리

가상 머신 (VM) 런타임

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

Page 9: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

앱 소스 코드

FM 프레임워크

Cocoa SDK Native Developer Kit

.app in IPA .so in APK

Page 10: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

컴파일된 코드 vs 가상/스크립팅 코드

순수 네이티브

코드

ARM CPU ARM CPU

소프트웨어 가상 CPU 일명 가상 머신 (VM)

가상 코드

“VB를 기억하시는 분?”

최적화: 앱은 미리 셋팅된 VM의 능력 이내로 제한 성능: 앱은

디바이스에서 동작하는 가상 머신소프트웨어 프로세스 내에서 작동

예측 가능성: 메모리가 자동 회수됨 - 꽉 차거나 VM 이 판단해서. 개발자가 판단하는 것이 아님.

사용자 경험 (UX) : 가상 앱들은 디바이스의 스펙에 대해 모름. 디바이스 제조사들(삼성, 애플 등)은 수많은 비용을 투자하여 엔지니어링, 튜닝함. 제한된 CPU, 베터리, 메모리에서 최대한 뛰어난 UX를 제공하기 위해 노력

vs

C, C++, Obj-C 델파이

HTML5/JavaScript, Java, .NET, Mono

Page 11: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

Platform Vendor Tools

Embarcadero HTML5 Cross

Platform Appcelerator Xamarin

도구 XCode, Visual Studio, Eclipse

RADStudio 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)은 순수 네이티브 아님

Page 12: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

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

– 빠르다 – Uncompromised native device performance with full native 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 additional software layers and random garbage collection.

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

Page 13: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

직접 보면서 개발

Page 14: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

Page 15: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

최신 언어의 기능

• Property-Method-Event

• Automatic Reference Counting

• Interfaces

• Attributes

• Generics/Collections

• Anonymous Methods (Lambda functions/closures)

• Rich RTTI

Page 16: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

사물인터넷(IoT) 앱 개발

Page 17: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

FireUI

• 엠바카데로의 기술 컬렉션으로 하나의 화면(UI) 폼을 서로 다른 모든 디바이스와 화면 비율에 적용

– UI 폼 디자이너

– MultiView 컴포넌트

– Behavior 서비스

Page 18: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

멀티-디바이스 디자이너

• 마스터 폼 디자인

• 필요하면 특정 뷰를 생성 – 마스터 폼을 상속

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

공유

Page 19: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

TMultiView 컴포넌트

• 디바이스의 화면에 알맞게 마스터 목록과 메뉴를 표시

Page 20: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

Behavior 서비스

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

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

Page 21: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

연결된 앱

Page 22: 20150127 사물인터넷 앱 개발과 커넥티드(connected)
Page 23: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

왜 사물인터넷 (IoT) 인가?

• 사물인터넷(IoT)은 우리가 디바이스를 사용하고 상호작용하는 방식을 바꾸고 있습니다

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

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

Work

s W

ith

Page 24: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

현재의 앱을 사물인터넷으로 확장

Appmethod breath new life into existing applications by enabling developers to easily IOT extend existing apps connecting 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.

Page 25: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

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 multiple 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.

Page 26: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

AT

AT

PC 앱 모바일 앱

스마트폰 앱

AT

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

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

앱 테더링 (AppTethering)

Page 27: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

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

• 상호 연결의 주요 4 영역: – 모바일/PC 디바이스

– 기기

– 클라우드 서비스

– 엔터프라이즈 데이터

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

Page 28: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

• 앱을 패키징하여 로드

– Bluetooth or WiFi 테더링

• Bluetooth LE 프로파일

– GATT

• REST APIs over WiFi

• 플랫폼 SDK

Page 29: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

All “things” connected

Page 30: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

엔터프라이즈를 위한 IoT

(헬스 케어, 스마트 공장…)

Page 31: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

Page 32: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

• 턴키 미들웨어 서버, 기업용 사물 인터넷 기능 내장

– 사용자 관리, 인증

– REST 위에 직접 만든 API들을 오픈

– 엔터프라이즈 데이터베이스를 REST를 통해 연결 (Oracle, MS SQL Server, DB2, Informix, Sybase, 등)

– 모바일 임베디드, 서버-사이드 DB 내장

– 웹 콘솔을 통해 사용자, 디바이스, API 사용 분석

Page 33: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

Connecting to All Things

40

RTL

App Tethering 컴포넌트 Framework

BT Speaker

Google Glass

Samsung TV

Wireless Scale

Carplay

XML

Device Profiles (100’s to 1000’s)

Page 34: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

기업용 IOT

41

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

EMS IOT

Repeater

사용자 근처의 사물

IOT Repeater 근처의 사물

EMS 서버 근처의 사물

모든 클라우드 서비스

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

Page 35: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

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

42

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 스캐너

Page 36: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES

Example: 스마트 공장

43

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

EMS IOT

Repeater

생산 라인

EMS IOT

Repeater

Oracle

암호화된 데이터 IT

엔지니어의 태블릿

엔지니어의 폰

엔지니어의 스마트워치

생산 현황 표시

로봇

자재 창고

실내 온도 & 습도 센서

재고 관리 로봇

Page 37: 20150127 사물인터넷 앱 개발과 커넥티드(connected)

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

Questions/Comments?

[email protected]