SlideShare a Scribd company logo
IoTivity 오픈소스 기술
이원석 박사 / ETRI 표준연구센터
wonsuk.lee@etri.re.kr
사물인터넷 간단한 유즈케이스
<Source: http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/ >
사물인터넷 제품 개발을 위해 무엇이 필요한가?
• 뛰어난 사물인터넷 기기간 상호운영성 ?
• 빠른 사물인터넷 제품 개발 ?
• 최신의 사물인터넷 기술 활용 ?
• 다양한 하드웨어 / 소프트웨어 플랫폼 지원 ?
IoTivity 소개 (1/2)
• 목적: 미래 IoT 세상에 출현할 수십억 개의 디바이스를 다양
한 운영체제와 네트워크 프로토콜에 상관없이 자연스럽게
연결할 수 있는 오픈소스 소프트웨어 프레임워크 개발
• OIC 표준 기반의 사물인터넷 미들웨어 오픈소스 기술
– 사물인터넷 개발자를 위한 상위 레벨 API 제공
– 리눅스 재단 운영
– 아파치 2.0 라이센스
IoTivity 소개 (2/2)
• Resource 기반 RESTful 아키텍처 모델
– CoAP 기반 非데몬 설계로 저사양, 저전력 기기 지원 용이
– 현실의 ‘Thing’을 Resource로 표현하며, CRUD & N 오퍼레
이션으로 동작
• 지원 소프트웨어 플랫폼: Ubuntu, Tizen, Android, iOS(?)
• 지원 하드웨어 플랫폼 (지속 확장): Arduino, Edison
IoTivity 아키텍처 (1/2)
Profiles
Framework
Transport
1) 근접/원격 장치 및 자원을 발견 2) 메시지과 스트리밍 모델 기반 정보 교환 및 제어
3) 장치의 구성, 권한설정, 및 진단 4) 데이터 수집, 저장, 및 분석
IoTivity 아키텍처 (2/2)
Additional
Service
REST
Framework
Basic
Service
Resource
IoTivityFramework
Protocol Plugin
Manager
Software Sensor
Manager
Things
Manager
Notification
Manager
Control/Controllee
Manager(CM Ver.)
IoTivity Base 2
(C++ SDK)
(UD Ver.)
IoTivity Base 1
(C API Stack/Internal)
Resource Manager
(Registration, Discovery, Attribute GET/SET/OBSERVE)
ConnectivityOCSocket (Socket Abstraction)
JSON
Encoder/Decoder
OCCoAP (Transport)
OCStack
libcoap-4.1.1 ocrandom ocmalloc
Logger
Transport.
Protocol
UDP/IP TCP/IP (Future) Future PAN (Future)
<Source: ETRI 이혜선 박사>
IoTivity 소스 디렉토리
IoTivity 아키텍처
Additional
Service
REST
Framework
Basic
Service
Resource
IoTivityFramework
Protocol Plugin
Manager
Software Sensor
Manager
Things
Manager
Notification
Manager
Control/Controllee
Manager(CM Ver.)
IoTivity Base 2
(C++ SDK)
(UD Ver.)
IoTivity Base 1
(C API Stack/Internal)
Resource Manager
(Registration, Discovery, Attribute GET/SET/OBSERVE)
ConnectivityOCSocket (Socket Abstraction)
JSON
Encoder/Decoder
OCCoAP (Transport)
OCStack
libcoap-4.1.1 ocrandom ocmalloc
Logger
Transport.
Protocol
UDP/IP TCP/IP (Future) Future PAN (Future)
<Source: ETRI 이혜선 박사>
IoTivity Resource API 스택
<Android*, iOS*, or Microsoft* Windows* 등 > <IoTivity Service 미지원>
고사양 기기를 위한 Resource API Stack 저사양 기기를 위한
Resource API Stack
IoTivity Resource 소스 디렉토리
저사양 레퍼런스 보드 – Arduino Mega 2560
<Source: http://www.arduino.cc/en/Main/ArduinoBoardMega2560 >
IoTivity Protocol
• OIC Protocol
– CoAP(Constrained Application Protocol) 지원
– Wi-Fi, BT, BLE 지원
– 연내 ZigBee, Z-Wave 지원예정
– 추가로 Thread 지원 고려 중 (Thread는 ZigBee 프로파일 경쟁 기술)
• CoAP(Constrained Application Protocol)
– UDP 기반
– Multicast 지원 (IoTivity에서 Discovery 용도로만 사용)
– IETF(Internet Engineering Task Force) CoRE Working Group에서 표준
(RFC7252) 정의
IoTivity Resource 스택 지원 기능
• Resource registration (server)
• Resource discovery (client)
• Device discovery with filtering (client) – e.g. GET /oc/core?rt=light
• Property attributes (get/ set/ observe) (client / server)
• Resource tree (resources with sub-resources)
ModeType: Server / Client /Both
simpleserver
simpleclient
Resource creation
Resource finding
<Source: ETRI 이혜선 박사>
Registering a Resource
(주의) URL 당 반드시 하나의 Resource 등록
(1) platform.registerResource(“/light/1”,rt, if, …)
Finding a Resource (1/2)
(1) Platform.findResource(“/oc/core”,…)
(3) 멀티캐스트 (GET /oc/core)
(4) 질의에 매칭되는 디바이스만 응답
Finding a Resource (2/2)
Querying Resource State [GET]
Setting a Resource State [SET]
Observing resource state [Observe]
IoTivity 아키텍처
Additional
Service
REST
Framework
Basic
Service
Resource
IoTivityFramework
Protocol Plugin
Manager
Software Sensor
Manager
Things
Manager
Notification
Manager
Control/Controllee
Manager(CM Ver.)
IoTivity Base 2
(C++ SDK)
(UD Ver.)
IoTivity Base 1
(C API Stack/Internal)
Resource Manager
(Registration, Discovery, Attribute GET/SET/OBSERVE)
ConnectivityOCSocket (Socket Abstraction)
JSON
Encoder/Decoder
OCCoAP (Transport)
OCStack
libcoap-4.1.1 ocrandom ocmalloc
Logger
Transport.
Protocol
UDP/IP TCP/IP (Future) Future PAN (Future)
<Source: ETRI 이혜선 박사>
IoTivity Service 소스 디렉토리
Protocol Plugin Manager
• Plugin 기반 프로토콜 확장 기능 제공하며 런타임에 필요한 프로토콜에
대한 .so 로딩
• Plugin은 특정한 Protocol(e.g. MQTT or AllSeen) 지원 형태나 특정한
Protocol을 쓰는 특정한 기기(e.g. AllSeen FAN or Philip Hue) 지원 형
태 모두 가능 (Plug-in 개발자의 선택)
<Source: SOSCON 2014 삼성전자 정진국 수석 발표자료>
Soft Sensor Manager
• 물리적/논리적 센서 정보 등을 조합하여 새로운 가상의 센서 정보를 정
의할 수 있는 소프트웨어 서비스
Things Manager
• Thing의 그룹을 효과적으로 관리할 수 있는 기능 및 API 제공
– 그룹 생성, 조회, 수정, 삭제
– 그룹 상태나 디바이스 변경에 대한 Presence
– Action Set 생성, 조회, 수정, 삭제
<Source: SOSCON 2014 삼성전자 정진국 수석 발표자료>
결 론
• 뛰어난 사물인터넷 기기간 상호운영성!
• 빠른 사물인터넷 제품 개발!
• 최신의 사물인터넷 기술 활용!
• 다양한 하드웨어 / 소프트웨어 플랫폼 지원!
메일링 리스트: iotivity-dev@lists.iotivity.org
IoTivity 오픈소스 개발에 참여하기
• Discuss on mailing list to get general consensus about approach
• Pull latest code
• Build on Your Supported Build Platform
• Develop feature or fix bug following IoTivity Coding Standards; ask
questions on mailing list as needed
• Submit to Gerrit for review
• Review and respond to reviewer comments
• Change accepted!
참고: https://wiki.iotivity.org/development_workflow
IoTivity 오픈소스 기술

More Related Content

PPT
middleware
PDF
Using Node-RED for building IoT workflows
PPT
Tomcat server
PPT
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
PPTX
Selenium test automation
PDF
Shift left and shift right performance testing
PPTX
Postman. From simple API test to end to end scenario
PPTX
Application server vs Web Server
middleware
Using Node-RED for building IoT workflows
Tomcat server
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Selenium test automation
Shift left and shift right performance testing
Postman. From simple API test to end to end scenario
Application server vs Web Server

What's hot (20)

PPTX
White Box Testing And Control Flow & Loop Testing
PPSX
Manual testing
PDF
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
PPSX
SOLID Principles and The Clean Architecture
PPTX
SOA - Unit 1 - Introduction to SOA with Web Services
PDF
J2EE Introduction
PPT
Command Pattern
DOCX
Selenium WebDriver FAQ's
PPSX
Domain Driven Design
PPS
PPTX
Test automation within a scrum process
PDF
Unit Testing vs Integration Testing
PDF
Cucumber ppt
PDF
Test Automation
DOCX
IBM Websphere concepts
PPTX
From use case to software architecture
PPT
Selenium Presentation at Engineering Colleges
PPTX
Network File System in Distributed Computing
PPTX
Test Automation Frameworks: Assumptions, Concepts & Tools
PPTX
Android Widget
White Box Testing And Control Flow & Loop Testing
Manual testing
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
SOLID Principles and The Clean Architecture
SOA - Unit 1 - Introduction to SOA with Web Services
J2EE Introduction
Command Pattern
Selenium WebDriver FAQ's
Domain Driven Design
Test automation within a scrum process
Unit Testing vs Integration Testing
Cucumber ppt
Test Automation
IBM Websphere concepts
From use case to software architecture
Selenium Presentation at Engineering Colleges
Network File System in Distributed Computing
Test Automation Frameworks: Assumptions, Concepts & Tools
Android Widget
Ad

Viewers also liked (20)

PDF
(2015년 상반기) HTML5 및 Hybrid app 최신 동향
PDF
국내외 Io t 기술 표준
PDF
OCF/IoTivity for Healthcare/Fitness/Wearable
PDF
사물인터넷에 활용되는 무선통신 기술
PDF
ARM CoAP Tutorial
PDF
IoT & 오픈소스
PDF
Internet of Things - Iot Solution 73 - 사물인터넷 제품 리뷰 73
PDF
IoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar
PDF
Iotivity atmel-20150328rzr
PDF
Google IO 2015 Keynote Summary
PPTX
UI/UX의 변화와 방향성 사색 (차세대 인터페이스 및 터치리스 UI를 위한 인터랙션 개발기술 세미나)
PDF
Open Source and Open Standards
PPTX
버스도착알람시스템 구현하기 - IoT 기기
PDF
IoTivity: From Devices to the Cloud
PDF
오픈플랫폼(Open platform) 개요 및 사례
PDF
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
PDF
IoT 제품 리뷰 - 약 20개의 IoT 제품 리뷰
PDF
IoT(사물인터넷) 제품 및 서비스 동향
PPTX
Google I/O 2015 Keynote 요약
PDF
Aeye(가스 원격 검침)
(2015년 상반기) HTML5 및 Hybrid app 최신 동향
국내외 Io t 기술 표준
OCF/IoTivity for Healthcare/Fitness/Wearable
사물인터넷에 활용되는 무선통신 기술
ARM CoAP Tutorial
IoT & 오픈소스
Internet of Things - Iot Solution 73 - 사물인터넷 제품 리뷰 73
IoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar
Iotivity atmel-20150328rzr
Google IO 2015 Keynote Summary
UI/UX의 변화와 방향성 사색 (차세대 인터페이스 및 터치리스 UI를 위한 인터랙션 개발기술 세미나)
Open Source and Open Standards
버스도착알람시스템 구현하기 - IoT 기기
IoTivity: From Devices to the Cloud
오픈플랫폼(Open platform) 개요 및 사례
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoT 제품 리뷰 - 약 20개의 IoT 제품 리뷰
IoT(사물인터넷) 제품 및 서비스 동향
Google I/O 2015 Keynote 요약
Aeye(가스 원격 검침)
Ad

Similar to IoTivity 오픈소스 기술 (20)

PDF
2015 n tels iot product lineup_2015
PPTX
Mqtt 소개
PDF
The Bible of IoTs
PDF
숭실대교육교재 - IoT 산업에서 오픈소스의 활용방안(김형채)
PDF
Do IoT Yourself 3rd : Open API - revision 3
PDF
IoT 구현을 위한 오픈 데이터 이슈
PPSX
사물인터넷(Internet of Things) 시대의 공개SW
PDF
Internet of Things
PDF
Trends on Smart Wearable Application Standardization
PDF
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
PDF
Iot 융합기술 적용사례 및 발전전망(keti)
PPTX
E조 spec발표
PDF
IoT Web App - 수집된 정보의 가공, 처리, 융합
PDF
IoT 세상의 사업 기회와 고려 사항
PDF
개방형 사물인터넷 플랫폼 기술
PDF
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼
PDF
Sensor - Data Processing API rachel skyler
PDF
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
PDF
사물 인터넷 뽀개기(취업 준비생 용)
PDF
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
2015 n tels iot product lineup_2015
Mqtt 소개
The Bible of IoTs
숭실대교육교재 - IoT 산업에서 오픈소스의 활용방안(김형채)
Do IoT Yourself 3rd : Open API - revision 3
IoT 구현을 위한 오픈 데이터 이슈
사물인터넷(Internet of Things) 시대의 공개SW
Internet of Things
Trends on Smart Wearable Application Standardization
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
Iot 융합기술 적용사례 및 발전전망(keti)
E조 spec발표
IoT Web App - 수집된 정보의 가공, 처리, 융합
IoT 세상의 사업 기회와 고려 사항
개방형 사물인터넷 플랫폼 기술
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼
Sensor - Data Processing API rachel skyler
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
사물 인터넷 뽀개기(취업 준비생 용)
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823

More from Wonsuk Lee (7)

PDF
W3C HTML5 표준 기술 동향 - 2017
PPTX
W3C Automotive 표준 개발 현황
PDF
2014 HTML5 총정리
PDF
네이티브 웹앱 기술 동향 및 전망
PDF
네이티브 웹앱 기술 동향 및 전망
PDF
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)
PDF
Industry trend of HTML5 in 2012 (2012년 HTML5 총정리)
W3C HTML5 표준 기술 동향 - 2017
W3C Automotive 표준 개발 현황
2014 HTML5 총정리
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)
Industry trend of HTML5 in 2012 (2012년 HTML5 총정리)

IoTivity 오픈소스 기술

  • 1. IoTivity 오픈소스 기술 이원석 박사 / ETRI 표준연구센터 wonsuk.lee@etri.re.kr
  • 2. 사물인터넷 간단한 유즈케이스 <Source: http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/ >
  • 3. 사물인터넷 제품 개발을 위해 무엇이 필요한가? • 뛰어난 사물인터넷 기기간 상호운영성 ? • 빠른 사물인터넷 제품 개발 ? • 최신의 사물인터넷 기술 활용 ? • 다양한 하드웨어 / 소프트웨어 플랫폼 지원 ?
  • 4. IoTivity 소개 (1/2) • 목적: 미래 IoT 세상에 출현할 수십억 개의 디바이스를 다양 한 운영체제와 네트워크 프로토콜에 상관없이 자연스럽게 연결할 수 있는 오픈소스 소프트웨어 프레임워크 개발 • OIC 표준 기반의 사물인터넷 미들웨어 오픈소스 기술 – 사물인터넷 개발자를 위한 상위 레벨 API 제공 – 리눅스 재단 운영 – 아파치 2.0 라이센스
  • 5. IoTivity 소개 (2/2) • Resource 기반 RESTful 아키텍처 모델 – CoAP 기반 非데몬 설계로 저사양, 저전력 기기 지원 용이 – 현실의 ‘Thing’을 Resource로 표현하며, CRUD & N 오퍼레 이션으로 동작 • 지원 소프트웨어 플랫폼: Ubuntu, Tizen, Android, iOS(?) • 지원 하드웨어 플랫폼 (지속 확장): Arduino, Edison
  • 6. IoTivity 아키텍처 (1/2) Profiles Framework Transport 1) 근접/원격 장치 및 자원을 발견 2) 메시지과 스트리밍 모델 기반 정보 교환 및 제어 3) 장치의 구성, 권한설정, 및 진단 4) 데이터 수집, 저장, 및 분석
  • 7. IoTivity 아키텍처 (2/2) Additional Service REST Framework Basic Service Resource IoTivityFramework Protocol Plugin Manager Software Sensor Manager Things Manager Notification Manager Control/Controllee Manager(CM Ver.) IoTivity Base 2 (C++ SDK) (UD Ver.) IoTivity Base 1 (C API Stack/Internal) Resource Manager (Registration, Discovery, Attribute GET/SET/OBSERVE) ConnectivityOCSocket (Socket Abstraction) JSON Encoder/Decoder OCCoAP (Transport) OCStack libcoap-4.1.1 ocrandom ocmalloc Logger Transport. Protocol UDP/IP TCP/IP (Future) Future PAN (Future) <Source: ETRI 이혜선 박사>
  • 9. IoTivity 아키텍처 Additional Service REST Framework Basic Service Resource IoTivityFramework Protocol Plugin Manager Software Sensor Manager Things Manager Notification Manager Control/Controllee Manager(CM Ver.) IoTivity Base 2 (C++ SDK) (UD Ver.) IoTivity Base 1 (C API Stack/Internal) Resource Manager (Registration, Discovery, Attribute GET/SET/OBSERVE) ConnectivityOCSocket (Socket Abstraction) JSON Encoder/Decoder OCCoAP (Transport) OCStack libcoap-4.1.1 ocrandom ocmalloc Logger Transport. Protocol UDP/IP TCP/IP (Future) Future PAN (Future) <Source: ETRI 이혜선 박사>
  • 10. IoTivity Resource API 스택 <Android*, iOS*, or Microsoft* Windows* 등 > <IoTivity Service 미지원> 고사양 기기를 위한 Resource API Stack 저사양 기기를 위한 Resource API Stack
  • 11. IoTivity Resource 소스 디렉토리
  • 12. 저사양 레퍼런스 보드 – Arduino Mega 2560 <Source: http://www.arduino.cc/en/Main/ArduinoBoardMega2560 >
  • 13. IoTivity Protocol • OIC Protocol – CoAP(Constrained Application Protocol) 지원 – Wi-Fi, BT, BLE 지원 – 연내 ZigBee, Z-Wave 지원예정 – 추가로 Thread 지원 고려 중 (Thread는 ZigBee 프로파일 경쟁 기술) • CoAP(Constrained Application Protocol) – UDP 기반 – Multicast 지원 (IoTivity에서 Discovery 용도로만 사용) – IETF(Internet Engineering Task Force) CoRE Working Group에서 표준 (RFC7252) 정의
  • 14. IoTivity Resource 스택 지원 기능 • Resource registration (server) • Resource discovery (client) • Device discovery with filtering (client) – e.g. GET /oc/core?rt=light • Property attributes (get/ set/ observe) (client / server) • Resource tree (resources with sub-resources)
  • 15. ModeType: Server / Client /Both simpleserver simpleclient Resource creation Resource finding <Source: ETRI 이혜선 박사>
  • 16. Registering a Resource (주의) URL 당 반드시 하나의 Resource 등록 (1) platform.registerResource(“/light/1”,rt, if, …)
  • 17. Finding a Resource (1/2) (1) Platform.findResource(“/oc/core”,…) (3) 멀티캐스트 (GET /oc/core) (4) 질의에 매칭되는 디바이스만 응답
  • 20. Setting a Resource State [SET]
  • 22. IoTivity 아키텍처 Additional Service REST Framework Basic Service Resource IoTivityFramework Protocol Plugin Manager Software Sensor Manager Things Manager Notification Manager Control/Controllee Manager(CM Ver.) IoTivity Base 2 (C++ SDK) (UD Ver.) IoTivity Base 1 (C API Stack/Internal) Resource Manager (Registration, Discovery, Attribute GET/SET/OBSERVE) ConnectivityOCSocket (Socket Abstraction) JSON Encoder/Decoder OCCoAP (Transport) OCStack libcoap-4.1.1 ocrandom ocmalloc Logger Transport. Protocol UDP/IP TCP/IP (Future) Future PAN (Future) <Source: ETRI 이혜선 박사>
  • 23. IoTivity Service 소스 디렉토리
  • 24. Protocol Plugin Manager • Plugin 기반 프로토콜 확장 기능 제공하며 런타임에 필요한 프로토콜에 대한 .so 로딩 • Plugin은 특정한 Protocol(e.g. MQTT or AllSeen) 지원 형태나 특정한 Protocol을 쓰는 특정한 기기(e.g. AllSeen FAN or Philip Hue) 지원 형 태 모두 가능 (Plug-in 개발자의 선택) <Source: SOSCON 2014 삼성전자 정진국 수석 발표자료>
  • 25. Soft Sensor Manager • 물리적/논리적 센서 정보 등을 조합하여 새로운 가상의 센서 정보를 정 의할 수 있는 소프트웨어 서비스
  • 26. Things Manager • Thing의 그룹을 효과적으로 관리할 수 있는 기능 및 API 제공 – 그룹 생성, 조회, 수정, 삭제 – 그룹 상태나 디바이스 변경에 대한 Presence – Action Set 생성, 조회, 수정, 삭제 <Source: SOSCON 2014 삼성전자 정진국 수석 발표자료>
  • 27. 결 론 • 뛰어난 사물인터넷 기기간 상호운영성! • 빠른 사물인터넷 제품 개발! • 최신의 사물인터넷 기술 활용! • 다양한 하드웨어 / 소프트웨어 플랫폼 지원! 메일링 리스트: iotivity-dev@lists.iotivity.org
  • 28. IoTivity 오픈소스 개발에 참여하기 • Discuss on mailing list to get general consensus about approach • Pull latest code • Build on Your Supported Build Platform • Develop feature or fix bug following IoTivity Coding Standards; ask questions on mailing list as needed • Submit to Gerrit for review • Review and respond to reviewer comments • Change accepted! 참고: https://wiki.iotivity.org/development_workflow