SmartThings의 SmartApp을 위한 페이지 구조 시각화 도구 Visualization tool for page structure of SmartThings Applications Sookmyung Women's University Software Language Lab Bak Nayeon
Content 연구 개요 SmartThings 소개 시각화 도구(Visualization tool) 개발 향후 연구
연구 개요 SmartApp의 페이지 구조 시각화 도구 개발 효과적인 SmartApp 개발을 지원하는 도구 시각화
SmartThings 소개 SmartDevice와 SmartApp을 관리, 개발하는 개방형 사물인터넷 플랫폼 스마트싱스에 SmartApp을 등록하면 연결된 SmartDevice로 서비스를 제공한다.
SmartThings 소개 개방형 사물인터넷 플랫폼. Smart App Smart Devices SmartThings Hub 사용자에게 서비스를 제공 센서를 통해 이벤트를 인식 SmartDevices의 기능을 이용하여 자동화 서비스를 제공하는 앱 스마트싱스와 SmartDevice를 연결
SmartThings 구조
SmartApp 예제 : Left it open Definition Preferences Predefined Callbacks Event Handlers
SmartApp Definition 어플리케이션을 식별하고 설명하는 여러 정보(아이콘, 이름)를 기술하는 부분
SmartApp Preferences 자동화 서비스를 제공하기 위해 필요한 input 디바이스의 기능과 여러 정보들을 정의 page, section, input등으로 구성
Preferences page section input 한 개의 page가 한 개의 화면을 정의 종류 : normal page, dynamic page section input 등 SmartApp의 입력 요소들로 구성 사용자의 직관적인 SmartApp 설정을 지원 input input의 이름과 디바이스의 기능을 지정 특정 디바이스나 변수를 정의
Preferences normal page vs dynamic page
SmartApp Predefined Callbacks 어플리케이션의 설치, 갱신, 삭제를 지원하는 함수 호출
Predefined Callbacks subscribe 특정 디바이스의 어떤 이벤트가 일어 났을 때 명시된 이벤트 핸들러 함수 호출 input device device의 기능 이벤트 핸들러 함수
SmartApp Event Handlers 어플리케이션을 구성하는데 필요한 이벤트 핸들러 함수 정의 dynamic page를 정의하는 함수 정의 관련된 다른 함수 정의
시각화 도구 개발 시각화 도구의 기능 시각화 도구의 모델 시각화 도구의 시스템 구조 구현 결과 SmartApp의 페이지 구조를 트리의 형태로 시각화 한다. SmartApp의 subscribe함수의 오류를 검출한다. 시각화 도구의 모델 시각화 도구의 시스템 구조 구현 결과
capability.contactSensor 시각화 도구 모델 모델 preferences normal page section input ”contact” capability.contactSensor doorOpenHandler contact.open input ”switchf” capability.switch dynamic page input “textMessage” text input “phone” phone
시각화 도구 구조 시스템 구조 AST Parsing Collecting data visualization 자료 수집 모듈 SmartApp의 AST를 순회하며 시각화에 필요한 자료 수집 시각화 모듈 수집 한 자료를 기반으로 SmartApp의 페이지 구조를 트리의 형태로 시각화
자료 수집 모듈 첫번째 순회(traverse) … preference의 정보와 subscribe함수들의 정보를 수집 dynamic page의 존재 여부를 확인 preference subscribe … SmartApp code SmartApp AST
자료 수집 모듈 두번째 순회(traverse) … dynamicPage 존재한다면 두번째 순회 시작 preference subscribe … SmartApp code dynamic page SmartApp AST
시각화 모듈 preference subscribe dynamicPage Information
구현 결과 : 시각화 도구
구현 결과 : 환경 설정 시각화 도구 환경 설정
구현 결과 : 환경 설정 dynamic page를 나타내지 않음
정상 에러 구현 결과 : 오류 검출 subscribe 오류 검출 정의되지 않은 input 지원되지않은 capability 정의되지 않은 handler 정상 에러
구현 결과 : 오류 검출 subscribe 오류 검출 ① ①③ ② ③ 정의되지 않은 input 지원되지않은 capability 정의되지 않은 handler ① ①③ ② ③
구현 결과 :오류 검출 subscribe 오류 검출 ① ①③ ② ③
향후 연구 오류 검출 dynamic page 정의 Conflict 검출 Automated Code Generation SmartApp의 등록된 SmartDevice사이에 일어날 수 있는 Semantic Conflict Automated Code Generation 일반 사용자도 쉽게 SmartApp을 개발할 수 있는 도구 연구
QnA Sookmyung Women's University Software Language Lab Bak Nayeon
Thanks for listening :D Sookmyung Women's University Software Language Lab Bak Nayeon