KR101403949B1 - 모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템 - Google Patents

모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템 Download PDF

Info

Publication number
KR101403949B1
KR101403949B1 KR20130020477A KR20130020477A KR101403949B1 KR 101403949 B1 KR101403949 B1 KR 101403949B1 KR 20130020477 A KR20130020477 A KR 20130020477A KR 20130020477 A KR20130020477 A KR 20130020477A KR 101403949 B1 KR101403949 B1 KR 101403949B1
Authority
KR
South Korea
Prior art keywords
data
operator
consumer
operators
producer
Prior art date
Application number
KR20130020477A
Other languages
English (en)
Inventor
송준화
주영현
민철홍
이영기
유지현
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR20130020477A priority Critical patent/KR101403949B1/ko
Priority to US13/847,687 priority patent/US9015729B2/en
Application granted granted Critical
Publication of KR101403949B1 publication Critical patent/KR101403949B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Telephonic Communication Services (AREA)

Abstract

모바일 장치는 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 생성된 복수의 오퍼레이터를 포함한다. 상기 복수의 오퍼레이터 중 프로듀서 오퍼레이터는 상기 프로듀서 오퍼레이터와 연결되는 컨슈머 오퍼레이터들에 전달할 데이터를 저장하는 공유 출력 버퍼 및 상기 컨슈머 오퍼레이터들의 정보를 저장하는 플로우 테이블을 포함하는 데이터 뱅크를 포함한다. 이에 따라, 상황 모니터링 애플리케이션을 사용하기 위한 CPU 소비를 줄일 수 있고, 그로 인해 동시에 실행할 수 있는 상황 모니터링 애플리케이션의 개수를 증가시킬 수 있다.

Description

모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템 {MOBILE APPARATUS EXECUTING EFFICIENT DATAFLOW EXECUTION FOR MOBILE CONTEXT MONITORING, METHOD OF EXECUTING DATAFLOW USING THE SAME, METHOD OF CONTEXT MONITORING USING THE SAME AND CONTEXT MONITORING SYSTEM INCLUDING THE SAME}
본 발명은 모바일 장치에 관한 것으로, 보다 상세하게는 모바일 상황 모니터링을 위해 효율적으로 데이터를 처리할 수 있는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 방법에 관한 것이다.
최근의 정보통신 패러다임은 유비쿼터스 컴퓨팅(Ubiquitos Computing), 유비쿼터스 네트워크(Ubiquitos Network), 퍼배시브 컴퓨팅(Pervasive Computing) 등이라 할 수 있다. 이는 모두 동일한 개념으로서, 유비쿼터스가 의미하는 것은 사용자가 언제, 어디서라도 원하는 정보를 손쉽게 얻을 수 있음을 말한다. 향후 도래할 유비쿼터스 시대에는 컴퓨팅 및 커뮤니케이션 능력을 가진 스마트 객체들이 동적인 환경 변화를 인식하고 이에 적응할 수 있는 특성, 즉 상황 인식 특성을 갖게 될 것이다.
개인 영역 네트워크(Personal Area Network; 이하 PAN이라 칭함)는 상황 인식 특성을 갖게 될 유비쿼터스 네트워크를 구현하는 핵심기술이다. PAN은 개인을 중심으로 근거리 이내에서 사용할 수 있는 네트워크 기술을 가리키는데, 이는 네트워크를 사용할 개인을 중심으로 10여 미터 정도까지 네트워크로 다양한 장비들을 연결할 수 있는 기술을 의미한다.
개인이 중심이 된 PAN은 사용자의 행동, 몸 상태, 환경 등과 관련된 상황들에 맞춰 적절한 서비스를 제공하는 상황 모니터링 애플리케이션(Context Monitoring Application)들에 적합하다. PAN 환경에서는 개인을 중심으로 네트워크가 구성되므로, 휴대가 가능한 모바일 장치는 다양한 센서들로부터 데이터를 받아 상황 모니터링 애플리케이션들에게 사용자 상황 정보를 제공하는 핵심 플랫폼이 될 수 있다. 예를 들어, 이동통신 단말기 내에서 상황 정보 수집 및 교환을 통해 사용자가 처한 상황을 모니터링하고, 해석 및 추론과 같은 처리 과정을 거쳐 상황 모니터링 애플리케이션들에게 정보를 제공하고, 상황 모니터링 애플리케이션들은 사용자에게 상황에 적합한 서비스를 제공할 수 있다. 이때에, 다수의 상황 모니터링 애플리케이션을 동시에 효율적으로 지원할 수 있는 모바일 장치가 필요하다.
상황 인식 애플리케이션은 개발과 사용이 꾸준히 증가하고 있다. 이러한 상황 인식 애플리케이션은 스마트폰과 같은 모바일 장치의 주요 워크로드가 되고 있다. 상황 인식 애플리케이션은 사용자의 상황을 계속하여 모니터링하여 사용자의 상황에 적합한 서비스를 제공한다. 이와 같은 서비스의 핵심은 고속으로 센싱되는 데이터들을 복수의 프로세싱 스텝들을 통해 상황 정보로 적합하게 변환하는 것이다. 이러한 일련의 프로세싱 스텝들은 오퍼레이터의 데이터 플로우 그래프로 표현될 수 있다.
복잡한 상황 모니터링 데이터 플로우를 수행함으로 인해 스마트폰과 같은 모바일 장치에 극심한 오버헤드가 발생되게 된다. 특히 상황 모니터링을 지원하는 모바일 장치의 자원의 열악함을 고려하면 더욱 문제가 크다. 고속으로 입력되는 센싱 데이터를 계속적으로 모니터링하는 상황 모니터링 방식에서 상기 데이터 플로우를 나이브(Naive)하게 관리하게 되면 그 효율성이 극히 떨어진다. 특히 계산 집중형 오퍼레이터들에 의해 빈번한 호출이 발생하여 데이터 플로우 그래프를 실행하고 관리함에 있어 중대한 오버헤드가 발생하게 된다. 이와 같은 높은 CPU 오버헤드로 인해, 동시에 실행할 수 있는 상황 모니터링 애플리케이션의 개수가 줄어들게 되는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 효율적인 데이터 처리를 수행하는 상황 모니터링 모바일 장치를 제공하는 것이다.
본 발명의 다른 목적은 상기 모바일 장치를 이용하는 데이터 처리 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 모바일 장치를 이용하는 상황 모니터링 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 모바일 장치를 포함하는 상황 모니터링 시스템을 제공하는 것이다.
상기한 본 발명의 목적을 달성하기 위한 일 실시예에 따른 모바일 장치는 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 생성된 복수의 오퍼레이터를 포함한다. 상기 복수의 오퍼레이터 중 프로듀서 오퍼레이터는 상기 프로듀서 오퍼레이터와 연결되는 컨슈머 오퍼레이터들에 전달할 데이터를 저장하는 공유 출력 버퍼 및 상기 컨슈머 오퍼레이터들의 정보를 저장하는 플로우 테이블을 포함하는 데이터 뱅크를 포함한다.
본 발명의 일 실시예에 있어서, 상기 데이터 플로우 그래프는 복수의 원시 오퍼레이터 및 상기 원시 오퍼레이터들 사이에 형성되는 에지를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 원시 오퍼레이터는 아이디, 타입 및 파라미터로 정의될 수 있다.
본 발명의 일 실시예에 있어서, 상기 에지는 상기 에지의 제1 단에 배치되는 프로듀서 원시 오퍼레이터의 아이디, 상기 에지의 제2 단에 배치되는 컨슈머 원시 오퍼레이터의 아이디, 상기 컨슈머 원시 오퍼레이터가 요구하는 데이터의 윈도우 사이즈 및 상기 컨슈머 원시 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈로 정의될 수 있다.
본 발명의 일 실시예에 있어서, 상기 공유 출력 버퍼는 원형 버퍼일 수 있다.
본 발명의 일 실시예에 있어서, 상기 공유 출력 버퍼의 사이즈는 상기 컨슈머 오퍼레이터들이 요구하는 데이터의 윈도우 사이즈 중 최대값으로 설정될 수 있다.
본 발명의 일 실시예에 있어서, 상기 공유 출력 버퍼는 데이터가 기록될 위치를 가리키는 현재 버퍼 인덱스를 관리할 수 있다.
본 발명의 일 실시예에 있어서, 상기 플로우 테이블은 상기 컨슈머 오퍼레이터의 아이디, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 윈도우 사이즈, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈, 상기 컨슈머 오퍼레이터에게 제공되어야할 다음 데이터의 마지막 지점을 가리키는 트리거 인덱스 및 상기 컨슈머 오퍼레이터의 데이터 뱅크의 포인터를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 프로듀서 오퍼레이터의 입력 데이터가 있을 때 상기 프로듀서 오퍼레이터를 실행(Execute)할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 프로듀서 오퍼레이터가 실행된 후 상기 컨슈머 오퍼레이터들에 출력 데이터를 전송할 필요가 있는지를 체크할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 공유 출력 버퍼의 현재 버퍼 인덱스가 이전 버퍼 인덱스보다 크고, 상기 트리거 인덱스가 상기 이전 버퍼 인덱스보다 크며, 상기 현재 버퍼 인덱스가 상기 트리거 인덱스보다 클 때, 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송할 수 있다.
본 발명의 일 실시예에 있어서, 상기 출력 데이터는 버퍼 포인터, 스타트 인덱스 및 데이터의 길이로 정의되고, 상기 버퍼 포인터는 상기 공유 출력 버퍼의 포인터이고, 상기 스타트 인덱스는 상기 트리거 인덱스와 상기 윈도우 사이즈의 차이이며, 상기 데이터의 길이는 상기 윈도우 사이즈일 수 있다.
본 발명의 일 실시예에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 컨슈머 오퍼레이터의 상기 데이터 뱅크의 포인터를 이용하여 상기 컨슈머 오퍼레이터의 실행 함수를 직접 호출할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송한 후 상기 트리거 인덱스에 상기 슬라이딩 윈도우 사이즈를 더하여 상기 트리거 인덱스를 갱신할 수 있다.
본 발명의 일 실시예에 있어서, 상기 복수의 오퍼레이터는 센싱 오퍼레이터들 및 프로세싱 오퍼레이터들을 포함할 수 있다. 상기 프로세싱 오퍼레이터들은 동기화되어 실행될 수 있다. 상기 센싱 오퍼레이터들은 비동기화되어 실행될 수 있다.
본 발명의 일 실시예에 있어서, 상기 센싱 오퍼레이터들의 센싱 데이터들을 수집하는 센싱 데이터 큐(Queue)를 더 포함할 수 있다.
상기한 본 발명의 다른 목적을 달성하기 위한 일 실시예에 따른 데이터 처리 방법은 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 복수의 오퍼레이터를 생성하는 단계, 컨슈머 오퍼레이터들에 전달할 데이터를 프로듀서 오퍼레이터의 공유 출력 버퍼에 저장하는 단계 및 상기 컨슈머 오퍼레이터들의 정보를 저장하는 상기 프로듀서 오퍼레이터의 플로우 테이블을 기초로 상기 컨슈머 오퍼레이터들에게 출력 데이터를 전송하는 단계를 포함한다.
본 발명의 일 실시예에 있어서, 상기 공유 출력 버퍼는 데이터가 기록될 위치를 가리키는 현재 버퍼 인덱스를 관리할 수 있다.
본 발명의 일 실시예에 있어서, 상기 플로우 테이블은 상기 컨슈머 오퍼레이터의 아이디, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 윈도우 사이즈, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈, 상기 컨슈머 오퍼레이터에게 제공되어야할 다음 데이터의 마지막 지점을 가리키는 트리거 인덱스 및 상기 컨슈머 오퍼레이터의 데이터 뱅크의 포인터를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 데이터 처리 방법은 상기 프로듀서 오퍼레이터의 입력 데이터가 있을 때 상기 프로듀서 오퍼레이터를 실행(Execute)하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 데이터 처리 방법은 상기 프로듀서 오퍼레이터가 실행된 후 상기 컨슈머 오퍼레이터들에 출력 데이터를 전송할 필요가 있는지를 체크하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프로듀서 오퍼레이터는 상기 공유 출력 버퍼의 현재 버퍼 인덱스가 이전 버퍼 인덱스보다 크고, 상기 트리거 인덱스가 상기 이전 버퍼 인덱스보다 크며, 상기 현재 버퍼 인덱스가 상기 트리거 인덱스보다 클 때, 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송할 수 있다.
본 발명의 일 실시예에 있어서, 상기 출력 데이터는 버퍼 포인터, 스타트 인덱스 및 데이터의 길이로 정의되고, 상기 버퍼 포인터는 상기 공유 출력 버퍼의 포인터이고, 상기 스타트 인덱스는 상기 트리거 인덱스와 상기 윈도우 사이즈의 차이이며, 상기 데이터의 길이는 상기 윈도우 사이즈일 수 있다.
본 발명의 일 실시예에 있어서, 상기 프로듀서 오퍼레이터는 상기 컨슈머 오퍼레이터의 상기 데이터 뱅크의 포인터를 이용하여 상기 컨슈머 오퍼레이터의 실행 함수를 직접 호출할 수 있다.
본 발명의 일 실시예에 있어서, 상기 컨슈머 오퍼레이터들에게 상기 출력 데이터를 전송한 후 상기 트리거 인덱스에 상기 슬라이딩 윈도우 사이즈를 더하여 상기 트리거 인덱스를 갱신할 수 있다.
상기한 본 발명의 또 다른 목적을 달성하기 위한 일 실시예에 따른 상황 모니터링 방법은 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 복수의 오퍼레이터를 생성하는 단계, 컨슈머 오퍼레이터들에 전달할 데이터를 프로듀서 오퍼레이터의 공유 출력 버퍼에 저장하는 단계, 상기 컨슈머 오퍼레이터들의 정보를 저장하는 상기 프로듀서 오퍼레이터의 플로우 테이블을 기초로 상기 컨슈머 오퍼레이터들에게 출력 데이터를 전송하는 단계 및 상기 출력 데이터를 기초로 상기 상황 모니터링 애플리케이션에게 상황 모니터링 결과를 전송하는 단계를 포함한다.
상기한 본 발명의 또 다른 목적을 달성하기 위한 일 실시예에 따른 상황 모니터링 시스템은 센서, 모바일 장치 및 상황 모니터링 애플리케이션을 포함한다. 상기 센서는 센싱 데이터를 생성한다. 상기 모바일 장치는 상기 센서로부터 상기 센싱 데이터를 수신하며, 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 생성된 복수의 오퍼레이터를 포함한다. 상기 상황 모니터링 애플리케이션은 상기 모바일 장치로부터 상황 모니터링 결과를 수신한다. 상기 복수의 오퍼레이터 중 프로듀서 오퍼레이터는 상기 프로듀서 오퍼레이터와 연결되는 컨슈머 오퍼레이터들에 전달할 데이터를 저장하는 공유 출력 버퍼 및 상기 컨슈머 오퍼레이터들의 정보를 저장하는 플로우 테이블을 포함하는 데이터 뱅크를 포함한다.
상기와 같은 본 발명의 실시예에 따른 모바일 장치, 데이터 처리 방법, 상황 모니터링 방법 및 상황 모니터링 시스템은 데이터 전송 및 스케쥴링 작업을 감소시킬 수 있고, 프로듀서에 의해 통합적인 데이터 관리가 가능하여 불필요한 중복 작업을 제거할 수 있으며, 반복적인 메모리 할당 및 반환을 피할 수 있다.
따라서, 상황 모니터링 애플리케이션을 사용하기 위한 CPU 소비를 줄일 수 있고, 그로 인해 동시에 실행할 수 있는 상황 모니터링 애플리케이션의 개수를 증가시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 상황 모니터링 시스템을 나타내는 블록도이다.
도 2는 도 1의 모바일 장치를 나타내는 블록도이다.
도 3a는 도 1의 모바일 장치에 의해 수행되는 제1 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 나타내는 개념도이다.
도 3b는 도 1의 모바일 장치에 의해 수행되는 제2 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 나타내는 개념도이다.
도 4는 도 1의 모바일 장치의 오퍼레이터의 데이터 뱅크의 구조를 나타내는 개념도이다.
도 5는 도 1의 모바일 장치의 오퍼레이터의 데이터 뱅크의 네트워크를 나타내는 개념도이다.
도 6은 도 1의 모바일 장치의 오퍼레이터의 데이터 뱅크의 수행을 나타내는 슈도 코드(Pseudo Code)이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 상황 모니터링 시스템을 나타내는 블록도이다.
도 1을 참조하면, 상황 모니터링 시스템은 모바일 장치(100), 외부 센서(200) 및 상황 모니터링 애플리케이션(300)을 포함한다.
상기 모바일 장치(100)는 상황 모니터링 기능을 기반으로 동작하는 상기 상황 모니터링 애플리케이션(300)으로부터 상황 모니터링 쿼리(Context Monitoring Query, 이하, CMQ)를 요청 받고, 상기 외부 센서(200)로부터 센싱 데이터(SD)를 수신하여 상기 CMQ의 만족 여부를 모니터링 한다. 상기 모바일 장치(100)는 상기 CMQ의 만족 여부를 판단하여, 상황 모니터링 결과(CMR)를 상기 애플리케이션(300)으로 출력한다. 상기 모바일 장치(100)의 구성에 대해서는 도 2를 참조하여 상세히 설명한다.
상기 모바일 장치(100)는 상기 상황 모니터링 애플리케이션(300)의 데이터 플로우 그래프를 기초로 복수의 오퍼레이터를 생성한다. 상기 모바일 장치(100)의 오퍼레이터에 대해서는 도 3a 내지 도 5를 참조하여 상세히 설명한다.
상기 외부 센서(200)는 상기 센싱 데이터(SD)를 상기 모바일 장치(100)에 제공한다. 이와는 달리, 상기 외부 센서(200)는 상기 센싱 데이터(SD)로부터 도출된 특성(Feature)을 상기 모바일 장치(100)에 전달할 수 있다.
예를 들어, 상기 외부 센서(200)는 복수 개의 외부 센서들(200)일 수 있다. 상기 외부 센서(200)는 빛 센서, 온도 센서, 위치 센서, 먼지 센서, 자외선 센서, 온도계, 습도계, 이산화탄소 측정기, 주변 소리 측정기, 가속도 측정기 등이 될 수 있고, 각각의 외부 센서(200)들이 센싱하는 상황 요소는 빛, 온도, 위치, 먼지량, 자외선량, 온도, 습도, 이산화탄소량, 주변 소리, 가속도 등이 될 수 있다. 상기 외부 센서(200)는 상기 모바일 장치(100)의 사용자의 신체에 착용하는 웨어러블(Wearable) 센서일 수 있다.
상기 외부 센서(200)에서 측정한 상기 센싱 데이터(SD)는 상기 모바일 장치(100)에 제공되어 상기 상황 인식 애플리케이션(300)이 요구한 상기 상황(CONTEXT)의 만족 여부를 모니터링하는 데 활용된다.
상기 상황 모니터링 애플리케이션(300)은 프로그램 목적에 따른 상기 CMQ를 상기 모바일 장치(100)에 요청한다. 상기 모바일 장치(100)는 상기 CMQ를 등록하고, 상기 CMQ가 '참'(true) 또는 '거짓'(false)이 되는 지를 모니터링할 수 있다. CMQ의 결과가 변경되면 상기 모바일 장치(100)는 상기 상황 모니터링 애플리케이션(300)에 상황 모니터링 결과(CMR)를 제공할 수 있다.
도 2는 도 1의 모바일 장치(100)를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 상기 모바일 장치(100)는 애플리케이션 인터페이스(110), 프로세싱 핸들러(120) 및 센싱 핸들러(130)를 포함한다. 상기 모바일 장치(100)는 내부 센서(140)를 더 포함할 수 있다.
상기 애플리케이션 인터페이스(110)는 상기 상황 모니터링 애플리케이션(300)과 통신한다. 상기 애플리케이션 인터페이스(110)는 상기 상황 모니터링 애플리케이션(300)으로부터 상기 CMQ를 수신하여, 상기 프로세싱 핸들러(120)에게 전달한다. 상기 애플리케이션 인터페이스(110)는 상기 프로세싱 핸들러(120)의 상황 모니터링 결과(CMR)를 상기 상황 모니터링 애플리케이션(300)에 전달한다.
상기 프로세싱 핸들러(120)는 상기 애플리케이션 인터페이스(110)로부터 상기 CMQ를 입력 받는다. 상기 프로세싱 핸들러(120)는 상기 센싱 핸들러(130)로부터 상기 센싱 데이터(SD) 및 내부 센싱 데이터(ISD)를 입력 받는다.
상기 프로세싱 핸들러(120)는 복수의 프로세싱 오퍼레이터를 포함한다. 상기 프로세싱 핸들러(120)는 상기 프로세싱 오퍼레이터를 이용하여 상기 상황 모니터링 결과(CMR)를 판단하여 상기 상황 모니터링 결과(CMR)를 상기 애플리케이션 인터페이스(110)에 출력한다. 상기 각각의 프로세싱 오퍼레이터는 데이터 뱅크를 포함한다.
상기 센싱 핸들러(130)는 상기 외부 센서(200)로부터 상기 센싱 데이터(SD)를 입력 받는다. 상기 센싱 핸들러(130)는 상기 내부 센서(140)로부터 상기 내부 센싱 데이터(ISD)를 입력 받는다.
상기 센싱 핸들러(130)는 복수의 센싱 오퍼레이터를 포함한다. 상기 센싱 핸들러(130)는 상기 센싱 오퍼레이터를 이용하여 상기 센싱 데이터(SD)를 상기 프로세싱 오퍼레이터에 출력한다. 상기 센싱 핸들러(130)는 상기 외부 센서(200) 및 상기 내부 센서(140)를 컨트롤할 수 있다.
상기 내부 센서(140)는 상기 내부 센싱 데이터(ISD)를 상기 센싱 핸들러(130)에 제공한다. 이와는 달리, 상기 내부 센서(140)는 상기 내부 센싱 데이터(ISD)로부터 도출된 특성(Feature)을 상기 센싱 핸들러(130)에 전달할 수 있다.
상기 내부 센서(140)에서 측정한 상기 내부 센싱 데이터(ISD)는 상기 센싱 핸들러(130)에 제공되어 상기 상황 인식 애플리케이션(300)이 요구한 상기 상황(CONTEXT)의 만족 여부를 모니터링하는 데 활용된다.
도 3a는 도 1의 모바일 장치에 의해 수행되는 제1 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 나타내는 개념도이다. 도 3b는 도 1의 모바일 장치에 의해 수행되는 제2 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 나타내는 개념도이다.
도 3a 및 도 3b를 참조하면, 상기 상황 모니터링 애플리케이션(300)의 로직은 데이터 플로우 그래프로 표현된다. 상기 데이터 플로우 그래프는 원시 오퍼레이터 및 에지를 포함한다. 상기 원시 오퍼레이터는 컴퓨테이션의 단위 및 입출력의 단위이다. 상기 에지는 두 개의 원시 오퍼레이터 사이의 관계를 나타낸다.
상기 원시 오퍼레이터는 아이디, 타입 및 파라미터의 세 개의 요소로 정의된다. 상기 원시 오퍼레이터의 아이디는 상기 원시 오퍼레이터를 구분하기 위한 구분자이다. 예를 들어, 상기 원시 오퍼레이터의 아이디는 1, 2, 3, 4와 같은 숫자일 수 있다. 상기 원시 오퍼레이터의 타입은 상기 원시 오퍼레이터가 수행하는 동작을 의미한다. 예를 들어, 상기 원시 오퍼레이터의 타입은 RMS(root mean square), FFT(fast Fourier transform), Normalize 등일 수 있다. 상기 원시 오퍼레이터의 파라미터는 상기 원시 오퍼레이터가 동작을 수행하는 조건을 나타낸다. 예를 들어, 상기 원시 오퍼레이터 중 소리를 센싱하는 Sound는 16bit, 8kHz의 파라미터를 갖는다.
상기 원시 오퍼레이터는 센싱 데이터를 생성하는 센싱 원시 오퍼레이터 및 입력 데이터를 수신하여 새로운 출력 데이터를 생성하는 프로세싱 원시 오퍼레이터를 포함할 수 있다.
상기 에지는 프로듀서 원시 오퍼레이터의 아이디, 컨슈머 원시 오퍼레이터의 아이디, 상기 컨슈머 원시 오퍼레이터가 요구하는 데이터의 윈도우 사이즈 및 상기 컨슈머 원시 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈로 정의된다.
상기 데이터의 윈도우 사이즈란 상기 프로듀서 원시 오퍼레이터가 상기 컨슈머 원시 오퍼레이터에 한번에 전송하는 데이터양을 의미하고, 상기 데이터의 슬라이딩 윈도우 사이즈란 상기 프로듀서 원시 오퍼레이터가 상기 컨슈머 원시 오퍼레이터에 그 다음에 전송하는 데이터가 몇 칸 슬라이드 되었는지를 의미한다.
예를 들어, 상기 윈도우 사이즈가 20이고, 상기 슬라이딩 윈도우 사이즈가 20인 경우, 상기 프로듀서 원시 오퍼레이터는 상기 컨슈머 원시 오퍼레이터에게 1번부터 20번의 데이터를 전송하고, 그 다음에 21번부터 40번의 데이터를 전송한다. 반면, 상기 윈도우 사이즈가 20이고, 상기 슬라이딩 윈도우 사이즈가 10인 경우, 상기 프로듀서 원시 오퍼레이터는 상기 컨슈머 원시 오퍼레이터에게 1번부터 20번의 데이터를 전송하고, 그 다음에 11번부터 30번의 데이터를 전송한다.
상기 도 3a에서는 프로듀서 원시 오퍼레이터와 상기 컨슈머 원시 오퍼레이터 사이에 표시된 2개의 수치로 상기 에지를 표현되었다. 예를 들어, 상기 프로듀서 원시 오퍼레이터의 아이디는 SOUND 오퍼레이터의 아이디, 상기 컨슈머 원시 오퍼레이터의 아이디는 RMS 오퍼레이터의 아이디, 상기 데이터의 윈도우 사이즈는 512, 상기 슬라이딩 윈도우 사이즈는 512일 수 있다.
도 3a의 데이터 플로우 그래프는 MusicMap이라는 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 나타낸다. 상기 MusicMap은 다양한 장소에서 재생되고 있는 음악 정보를 수집한다. 예를 들어, 상기 음악 정보의 수집은 사용자의 모바일 장치의 내부 센서에 의해 수행될 수 있다. 상기 모바일 장치는 주변 소리 데이터를 꾸준히 수집하고 처리하여 상기 주변 소리 데이터에 포함된 음악의 장르를 판단한다.
도 3a에서 센싱 원시 오퍼레이터인 SOUND는 8kHz의 주파수로 계속하여 오디오 데이터를 샘플링한다. 상기 오디오 데이터는 상기 Sound에 연결된 두 개의 프로세싱 원시 오퍼레이터인 RMS 및 FFT에게 전달된다. 상기 RMS 및 상기 FFT의 처리 결과는 일련의 프로세스를 거쳐 GMM(Gaussian Mixture Model)로 전달되고, 상기 GMM에 의해 상기 음악의 장르가 분류된다.
도 3b의 데이터 플로우 그래프는 FindMyPhone이라는 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 나타낸다. 상기 FindMyPhone은 사용자가 모바일 장치를 건물 내에서 분실한 경우, 상기 사용자가 상기 모바일 장치를 찾을 수 있도록 해준다. 상기 모바일 장치의 위치를 탐색하기 위해 상기 모바일 장치는 본인의 위치를 꾸준히 지정된 서버로 전송한다.
도 3b는 단순한 체인 형태의 데이터 플로우 그래프를 보여준다. 도 3b에서 센싱 원시 오퍼레이터인 SOUND는 44.1kHz의 주파수로 계속하여 사운드 데이터를 생성하여, 다음 프로세싱 원시 오퍼레이터인 WINDOW FUNCTION에 전달한다. 상기 WINDOW FUNCTION의 처리 결과는 일련의 프로세스를 거쳐 NEAREST-NEIGHBOR에 전달된다.
도 4는 도 1의 모바일 장치의 오퍼레이터의 데이터 뱅크의 구조를 나타내는 개념도이다. 도 5는 도 1의 모바일 장치의 오퍼레이터의 데이터 뱅크의 네트워크를 나타내는 개념도이다. 도 6은 도 1의 모바일 장치의 오퍼레이터의 데이터 뱅크의 수행을 나타내는 슈도 코드(Pseudo Code)이다.
도 2 내지 도 6을 참조하면, 상기 모바일 장치(100)는 상기 상황 모니터링 애플리케이션(300)의 데이터 플로우 그래프를 기초로 복수의 오퍼레이터를 생성한다. 예를 들어, 상기 오퍼레이터는 상기 데이터 플로우 그래프의 상기 원시 오퍼레이터에 대응할 수 있다.
상기 오퍼레이터들은 데이터를 제공하는 프로듀서 오퍼레이터 및 데이터를 제공 받는 컨슈머 오퍼레이터로 분류될 수 있다. 하나의 오퍼레이터는 그 역할에 따라 프로듀서 오퍼레이터이면서 동시에 컨슈머 오퍼레이터일 수도 있다.
상기 오퍼레이터들은 각각 데이터 뱅크(DATABANK)를 포함한다. 상기 데이터 뱅크는 공유 출력 버퍼(SHARED OUTPUT BUFFER) 및 플로우 테이블(FLOW TABLE)을 포함한다.
상기 프로듀서 오퍼레이터의 공유 출력 버퍼는 상기 프로듀서 오퍼레이터와 연결되는 컨슈머 오퍼레이터들에 전달할 데이터를 저장한다. 상기 프로듀서 오퍼레이터의 플로우 테이블은 상기 컨슈머 오퍼레이터들의 정보를 저장한다.
상기 공유 출력 버퍼는 상기 오퍼레이터의 데이터 처리 결과를 포함한다. 상기 공유 출력 버퍼는 프로듀서 오퍼레이터의 입장에서 정의된다. 따라서, 데이터 처리 결과를 하나의 통합 버퍼로 관리하므로 복수의 컨슈머 오퍼레이터에 의한 중복적인 데이터 관리를 피할 수 있다. 또한, 상기 프로듀서 오퍼레이터로 하여금 처리 결과를 상기 공유 출력 버퍼에 직접 기록하게 할 수 있다. 이에 따라, 반복적인 메모리의 할당 및 반환을 방지할 수 있다.
예를 들어, 상기 공유 출력 버퍼는 원형 버퍼일 수 있다. 상기 공유 출력 버퍼는 사이즈가 고정된 원형 버퍼일 수 있다. 상기 공유 출력 버퍼는 출력 데이터를 생성 순서대로 저장한다. 상기 공유 출력 버퍼는 데이터가 기록될 위치를 가리키는 현재 버퍼 인덱스(idxc)를 관리한다.
예를 들어, 상기 공유 출력 버퍼의 사이즈는 상기 프로듀서 오퍼레이터들에 연결된 상기 컨슈머 오퍼레이터들이 요구하는 데이터의 윈도우 사이즈 중 최대값으로 설정될 수 있다.
상기 플로우 테이블은 상기 프로듀서 오퍼레이터를 상기 컨슈머 오퍼레이터들에 연결해주는 역할을 한다. 상기 플로우 테이블의 상기 컨슈머 오퍼레이터의 데이터 요구 사항을 포함한다.
예를 들어, 상기 플로우 테이블은 상기 컨슈머 오퍼레이터의 아이디(cons_id), 상기 컨슈머 오퍼레이터가 요구하는 데이터의 윈도우 사이즈(wsize), 상기 컨슈머 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈(sl_wsize), 상기 컨슈머 오퍼레이터에게 제공되어야할 다음 데이터의 마지막 지점을 가리키는 트리거 인덱스(trig_idx) 및 상기 컨슈머 오퍼레이터의 데이터 뱅크의 포인터(cons_ptr)를 포함한다.
상기 트리거 인덱스(trig_idx)는 상기 공유 출력 버퍼에 생성된 데이터가 가득 찼는지를 확인하고, 상기 컨슈머 오퍼레이터가 동작을 수행하도록 신호를 전송하는 데 이용된다.
도 4에서 오퍼레이션 OPi의 데이터 뱅크는 상기 OPi와 연결되는 다른 오퍼레이션들 OPm 및 OPn과의 에지에 의해 형성된다. 상기 OPi의 데이터 뱅크의 공유 출력 버퍼는 초기화 시간에 상기 OPi에 연결되는 컨슈머 오퍼레이터들 OPm 및 OPn의 윈도우 사이즈 중 최대값으로 설정될 수 있다.
도 5를 다시 참조하면, 상기 모바일 장치(100)는 복수의 센싱 오퍼레이터(SO1, SO2, SO3, SO4) 및 복수의 프로세싱 오퍼레이터(PO1, PO2, PO3, PO4, PO5, PO6, PO7, PO8)를 포함한다.
상기 오퍼레이터들의 데이터 뱅크들은 상기 플로우 테이블 내에 기록된 상기 데이터 뱅크의 포인터들에 의해 서로 연결된다. 예를 들어, 상기 프로듀서 오퍼레이터의 데이터 뱅크는 상기 컨슈머 오퍼레이터의 데이터 뱅크의 포인터를 이용하여 상기 컨슈머 오퍼레이터의 실행 함수를 직접 호출하여 데이터를 전달할 수 있다.
따라서, 오퍼레이터 간의 통신에 있어 낮은 오버헤드를 가질 수 있으며 과도한 스케쥴링과 큐잉 동작을 피할 수 있다. 또한, 직접 함수를 호출하는 방식에 의해 오퍼레이터 간의 실행 시간을 동기화할 수 있고, 하나의 프로듀서 오퍼레이터와 복수의 컨슈머 오퍼레이터가 하나의 데이터 버퍼를 공유할 수 있다.
다만, 상기 센싱 오퍼레이터들의 비동기적 특성으로 인해, 상기 프로세싱 오퍼레이터들은 동기화되어 실행되는 반면, 상기 센싱 오퍼레이터들은 비동기화되어 실행될 수 있다. 따라서, 상기 모바일 장치(100)는 상기 센싱 오퍼레이터들의 센싱 데이터들을 수집하는 센싱 데이터 큐(SENSING DATA QUEUE)를 더 포함할 수 있다.
상기 오퍼레이터의 상기 데이터 뱅크의 동작은 (1) 오퍼레이터 실행(operator execution) 및 버퍼 기록, (2) 데이터 전송 여부 체크 및 (3) 컨슈머 오퍼레이터에 데이터 전송의 세 가지 단계를 갖는다.
상기 프로듀서 오퍼레이터의 데이터 뱅크는 상기 프로듀서 오퍼레이터의 입력 데이터가 있을 때 상기 프로듀서 오퍼레이터의 실행 함수(execute)를 수행한다 (도 6의 line 3).
상기 실행(execute) 단계에서, 상기 오퍼레이터는 write() 함수를 수행한다. 이에 따라, 처리 결과는 직접 상기 공유 출력 버퍼의 현재 버퍼 인덱스(idxc)에 기록된다. 상기 공유 출력 버퍼는 상기 공유 출력 버퍼에 데이터가 기록될 때마다, 상기 현재 버퍼 인덱스(idxc)를 갱신한다.
상기 프로듀서 오퍼레이터의 실행(execute) 단계 이후, 상기 출력 데이터가 상기 컨슈머 오퍼레이터에게 전송할 필요가 있는지를 체크할 수 있다 (도 6의 lines 4-7). 예를 들어, 상기 현재 버퍼 인덱스(idxc)가 상기 컨슈머 오퍼레이터의 트리거 인덱스(trig_idx)를 초과한 경우, 상기 컨슈머 오퍼레이터에게 상기 출력 데이터를 전송한다. 구체적으로, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 공유 출력 버퍼의 현재 버퍼 인덱스(idxc)가 이전 버퍼 인덱스(idxp)보다 크고, 상기 컨슈머 오퍼레이터의 트리거 인덱스(trig_idx)가 상기 이전 버퍼 인덱스(idxp)보다 크며, 상기 현재 버퍼 인덱스(idxc)가 상기 트리거 인덱스(trig_idx)보다 클 때, 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송할 수 있다.
상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 컨슈머 오퍼레이터의 상기 데이터 뱅크의 포인터를 이용하여 상기 컨슈머 오퍼레이터의 실행 함수를 직접 호출하여 상기 출력 데이터를 전송할 수 있다.
만약 상기 프로듀서 오퍼레이터가 센싱 오퍼레이터라면, 상기 출력 데이터는 상기 센싱 데이터 큐를 통해 상기 컨슈머 오퍼레이터에게 전달될 수 있다.
상기 출력 데이터는 데이터 윈도우 앱스트랙션을 이용하여 전송될 수 있다. 예를 들어, 상기 출력 데이터는 버퍼 포인터, 스타트 인덱스 및 데이터의 길이로 정의될 수 있다. 상기 버퍼 포인터는 상기 공유 출력 버퍼의 포인터이고, 상기 스타트 인덱스는 상기 트리거 인덱스(trig_idx)와 상기 윈도우 사이즈(wsize)의 차이이며, 상기 데이터의 길이는 상기 윈도우 사이즈(wsize)일 수 있다.
상기 데이터가 전송된 후에는 상기 트리거 인덱스(trig_idx)는 다음 데이터 윈도우를 위해 갱신된다. 예를 들어, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 트리거 인덱스에 상기 슬라이딩 윈도우 사이즈를 더하여 상기 트리거 인덱스를 갱신할 수 있다.
상기 프로듀서 오퍼레이터의 데이터 뱅크의 공유 출력 버퍼는 상기 프로듀서 오퍼레이터 뿐만 아니라 복수의 컨슈머 오퍼레이터들에 의해 액세스된다. 상기 오퍼레이터들이 프로세싱 오퍼레이터인 경우, 상기 오퍼레이터들은 동기화되어 실행되기 때문에 공유 출력 버퍼의 공유에 있어서 마찰이 일어나지 않는다. 즉, 복수의 오퍼레이터들이 동시에 상기 공유 출력 버퍼를 액세스하지 않는다.
그러나, 센싱 오퍼레이터의 공유 출력 버퍼의 경우, 상기 공유 출력 버퍼의 공유를 위해 추가적인 관리가 필요할 수 있다. 컨슈머 오퍼레이터에게 전달되는 데이터 윈도우의 사용을 계속하여 관찰하여야 한다. 또한, 현재 버퍼 위치에 새로운 데이터를 기록하기 전에 처리되지 않은 데이터 윈도우가 현재 버퍼 위치에 존재하는 지를 확인하여야 한다. 만약 현재 버퍼 위치에 처리되지 않은 데이터가 있는 경우, 버퍼 공간은 확장된다.
본 발명에 따르면, 모바일 장치의 오퍼레이터는 공유 출력 버퍼 및 플로우 테이블을 포함하는 데이터 뱅크를 포함하므로, 상황 모니터링을 위해 효율적으로 데이터를 처리할 수 있다. 따라서, 상황 모니터링 애플리케이션을 사용하기 위한 CPU 소비를 줄일 수 있고, 그로 인해 동시에 실행할 수 있는 상황 모니터링 애플리케이션의 개수를 증가시킬 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (27)

  1. 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 생성된 복수의 오퍼레이터를 포함하고,
    상기 복수의 오퍼레이터 중 프로듀서 오퍼레이터는,
    상기 프로듀서 오퍼레이터와 연결되는 컨슈머 오퍼레이터들에 전달할 데이터를 저장하는 공유 출력 버퍼 및 상기 컨슈머 오퍼레이터들의 정보를 저장하는 플로우 테이블을 포함하는 데이터 뱅크를 포함하는 것을 특징으로 하는 모바일 장치.
  2. 제1항에 있어서, 상기 데이터 플로우 그래프는 복수의 원시 오퍼레이터 및 상기 원시 오퍼레이터들 사이에 형성되는 에지를 포함하는 것을 특징으로 하는 모바일 장치.
  3. 제2항에 있어서, 상기 원시 오퍼레이터는 아이디, 타입 및 파라미터로 정의되는 것을 특징으로 하는 모바일 장치.
  4. 제2항에 있어서, 상기 에지는 상기 에지의 제1 단에 배치되는 프로듀서 원시 오퍼레이터의 아이디, 상기 에지의 제2 단에 배치되는 컨슈머 원시 오퍼레이터의 아이디, 상기 컨슈머 원시 오퍼레이터가 요구하는 데이터의 윈도우 사이즈 및 상기 컨슈머 원시 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈로 정의되는 것을 특징으로 하는 모바일 장치.
  5. 제1항에 있어서, 상기 공유 출력 버퍼는 원형 버퍼인 것을 특징으로 하는 모바일 장치.
  6. 제5항에 있어서, 상기 공유 출력 버퍼의 사이즈는 상기 컨슈머 오퍼레이터들이 요구하는 데이터의 윈도우 사이즈 중 최대값으로 설정되는 것을 특징으로 하는 모바일 장치.
  7. 제1항에 있어서, 상기 공유 출력 버퍼는 데이터가 기록될 위치를 가리키는 현재 버퍼 인덱스를 관리하는 것을 특징으로 하는 모바일 장치.
  8. 제1항에 있어서, 상기 플로우 테이블은 상기 컨슈머 오퍼레이터의 아이디, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 윈도우 사이즈, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈, 상기 컨슈머 오퍼레이터에게 제공되어야할 다음 데이터의 마지막 지점을 가리키는 트리거 인덱스 및 상기 컨슈머 오퍼레이터의 데이터 뱅크의 포인터를 포함하는 것을 특징으로 하는 모바일 장치.
  9. 제8항에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 프로듀서 오퍼레이터의 입력 데이터가 있을 때 상기 프로듀서 오퍼레이터를 실행(Execute)하는 것을 특징으로 하는 모바일 장치.
  10. 제9항에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 프로듀서 오퍼레이터가 실행된 후 상기 컨슈머 오퍼레이터들에 출력 데이터를 전송할 필요가 있는지를 체크하는 것을 특징으로 하는 모바일 장치.
  11. 제10항에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 공유 출력 버퍼의 현재 버퍼 인덱스가 이전 버퍼 인덱스보다 크고, 상기 트리거 인덱스가 상기 이전 버퍼 인덱스보다 크며, 상기 현재 버퍼 인덱스가 상기 트리거 인덱스보다 클 때, 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송하는 것을 특징으로 하는 모바일 장치.
  12. 제11항에 있어서, 상기 출력 데이터는 버퍼 포인터, 스타트 인덱스 및 데이터의 길이로 정의되고, 상기 버퍼 포인터는 상기 공유 출력 버퍼의 포인터이고, 상기 스타트 인덱스는 상기 트리거 인덱스와 상기 윈도우 사이즈의 차이이며, 상기 데이터의 길이는 상기 윈도우 사이즈인 것을 특징으로 하는 모바일 장치.
  13. 제11항에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 컨슈머 오퍼레이터의 상기 데이터 뱅크의 포인터를 이용하여 상기 컨슈머 오퍼레이터의 실행 함수를 직접 호출하는 것을 특징으로 하는 모바일 장치.
  14. 제11항에 있어서, 상기 프로듀서 오퍼레이터의 상기 데이터 뱅크는 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송한 후 상기 트리거 인덱스에 상기 슬라이딩 윈도우 사이즈를 더하여 상기 트리거 인덱스를 갱신하는 것을 특징으로 하는 모바일 장치.
  15. 제1항에 있어서, 상기 복수의 오퍼레이터는 센싱 오퍼레이터들 및 프로세싱 오퍼레이터들을 포함하고,
    상기 프로세싱 오퍼레이터들은 동기화되어 실행되고,
    상기 센싱 오퍼레이터들은 비동기화되어 실행되는 것을 특징으로 하는 모바일 장치.
  16. 제15항에 있어서, 상기 센싱 오퍼레이터들의 센싱 데이터들을 수집하는 센싱 데이터 큐(Queue)를 더 포함하는 것을 특징으로 하는 모바일 장치.
  17. 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 복수의 오퍼레이터를 생성하는 단계;
    컨슈머 오퍼레이터들에 전달할 데이터를 프로듀서 오퍼레이터의 공유 출력 버퍼에 저장하는 단계; 및
    상기 컨슈머 오퍼레이터들의 정보를 저장하는 상기 프로듀서 오퍼레이터의 플로우 테이블을 기초로 상기 컨슈머 오퍼레이터들에게 출력 데이터를 전송하는 단계를 포함하는 모바일 장치를 이용한 데이터 처리 방법.
  18. 제17항에 있어서, 상기 공유 출력 버퍼는 데이터가 기록될 위치를 가리키는 현재 버퍼 인덱스를 관리하는 것을 특징으로 하는 데이터 처리 방법.
  19. 제17항에 있어서, 상기 플로우 테이블은 상기 컨슈머 오퍼레이터의 아이디, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 윈도우 사이즈, 상기 컨슈머 오퍼레이터가 요구하는 데이터의 슬라이딩 윈도우 사이즈, 상기 컨슈머 오퍼레이터에게 제공되어야할 다음 데이터의 마지막 지점을 가리키는 트리거 인덱스 및 상기 컨슈머 오퍼레이터의 데이터 뱅크의 포인터를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  20. 제19항에 있어서, 상기 프로듀서 오퍼레이터의 입력 데이터가 있을 때 상기 프로듀서 오퍼레이터를 실행(Execute)하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  21. 제20항에 있어서, 상기 프로듀서 오퍼레이터가 실행된 후 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송할 필요가 있는지를 체크하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  22. 제21항에 있어서, 상기 프로듀서 오퍼레이터는 상기 공유 출력 버퍼의 현재 버퍼 인덱스가 이전 버퍼 인덱스보다 크고, 상기 트리거 인덱스가 상기 이전 버퍼 인덱스보다 크며, 상기 현재 버퍼 인덱스가 상기 트리거 인덱스보다 클 때, 상기 컨슈머 오퍼레이터들에 상기 출력 데이터를 전송하는 것을 특징으로 하는 데이터 처리 방법.
  23. 제22항에 있어서, 상기 출력 데이터는 버퍼 포인터, 스타트 인덱스 및 데이터의 길이로 정의되고, 상기 버퍼 포인터는 상기 공유 출력 버퍼의 포인터이고, 상기 스타트 인덱스는 상기 트리거 인덱스와 상기 윈도우 사이즈의 차이이며, 상기 데이터의 길이는 상기 윈도우 사이즈인 것을 특징으로 하는 데이터 처리 방법.
  24. 제22항에 있어서, 상기 프로듀서 오퍼레이터는 상기 컨슈머 오퍼레이터의 상기 데이터 뱅크의 포인터를 이용하여 상기 컨슈머 오퍼레이터의 실행 함수를 직접 호출하는 것을 특징으로 하는 데이터 처리 방법.
  25. 제22항에 있어서, 상기 컨슈머 오퍼레이터들에게 상기 출력 데이터를 전송한 후 상기 트리거 인덱스에 상기 슬라이딩 윈도우 사이즈를 더하여 상기 트리거 인덱스를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  26. 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 복수의 오퍼레이터를 생성하는 단계;
    컨슈머 오퍼레이터들에 전달할 데이터를 프로듀서 오퍼레이터의 공유 출력 버퍼에 저장하는 단계;
    상기 컨슈머 오퍼레이터들의 정보를 저장하는 상기 프로듀서 오퍼레이터의 플로우 테이블을 기초로 상기 컨슈머 오퍼레이터들에게 출력 데이터를 전송하는 단계; 및
    상기 출력 데이터를 기초로 상기 상황 모니터링 애플리케이션에게 상황 모니터링 결과를 전송하는 단계를 포함하는 모바일 장치를 이용한 상황 모니터링 방법.
  27. 센싱 데이터를 생성하는 센서;
    상기 센서로부터 상기 센싱 데이터를 수신하며, 상황 모니터링 애플리케이션의 데이터 플로우 그래프를 기초로 생성된 복수의 오퍼레이터를 포함하는 모바일 장치; 및
    상기 모바일 장치로부터 상황 모니터링 결과를 수신하는 상황 모니터링 애플리케이션을 포함하고,
    상기 복수의 오퍼레이터 중 프로듀서 오퍼레이터는,
    상기 프로듀서 오퍼레이터와 연결되는 컨슈머 오퍼레이터들에 전달할 데이터를 저장하는 공유 출력 버퍼 및 상기 컨슈머 오퍼레이터들의 정보를 저장하는 플로우 테이블을 포함하는 데이터 뱅크를 포함하는 것을 특징으로 하는 상황 모니터링 시스템.
KR20130020477A 2013-02-26 2013-02-26 모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템 KR101403949B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130020477A KR101403949B1 (ko) 2013-02-26 2013-02-26 모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템
US13/847,687 US9015729B2 (en) 2013-02-26 2013-03-20 Mobile apparatus executing efficient dataflow execution for mobile context monitoring, method of executing dataflow using the same, method of context monitoring using the same and context monitoring system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130020477A KR101403949B1 (ko) 2013-02-26 2013-02-26 모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템

Publications (1)

Publication Number Publication Date
KR101403949B1 true KR101403949B1 (ko) 2014-06-09

Family

ID=51131906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130020477A KR101403949B1 (ko) 2013-02-26 2013-02-26 모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템

Country Status (2)

Country Link
US (1) US9015729B2 (ko)
KR (1) KR101403949B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874168A (zh) * 2017-01-12 2017-06-20 北京奇虎科技有限公司 确定应用程序运行性能的方法、装置和移动终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060068518A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 유비쿼터스 기반의 상황 정보 제공 서비스 시스템 및 그방법
JP2007323350A (ja) 2006-05-31 2007-12-13 Toshiba Corp データ処理装置
KR20090097530A (ko) * 2008-03-12 2009-09-16 아주대학교산학협력단 유비쿼터스 스마트 스페이스의 상황인지 시스템
KR20110138547A (ko) * 2010-06-21 2011-12-28 한국과학기술원 상황 모니터링을 지원하는 모바일 장치, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100344530B1 (ko) * 1999-12-20 2002-07-24 한국과학기술원 시계열 데이터베이스에서 윈도우 구성의 이원성을 사용한 서브시퀀스 매칭방법
GB0022951D0 (en) * 2000-09-19 2000-11-01 Sgs Thomson Microelectronics Data injection
JP4291664B2 (ja) * 2003-10-14 2009-07-08 株式会社日立製作所 通信バッファ予約機能を備えるストレージ装置およびシステム
US8612614B2 (en) * 2008-07-17 2013-12-17 Citrix Systems, Inc. Method and system for establishing a dedicated session for a member of a common frame buffer group
US20100064357A1 (en) * 2008-09-09 2010-03-11 Kerstin Baird Business Processing System Combining Human Workflow, Distributed Events, And Automated Processes
US8134934B2 (en) * 2009-09-21 2012-03-13 Alcatel Lucent Tracking network-data flows
US8402003B2 (en) * 2011-02-08 2013-03-19 International Business Machines Corporation Performance monitoring mechanism for use in a pattern matching accelerator
US8904067B2 (en) * 2012-03-13 2014-12-02 Microsoft Corporation Adaptive multi-threaded buffer
US8938490B2 (en) * 2012-11-07 2015-01-20 Ca, Inc. System and method for accessing mainframe system automation from a process automation application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060068518A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 유비쿼터스 기반의 상황 정보 제공 서비스 시스템 및 그방법
JP2007323350A (ja) 2006-05-31 2007-12-13 Toshiba Corp データ処理装置
KR20090097530A (ko) * 2008-03-12 2009-09-16 아주대학교산학협력단 유비쿼터스 스마트 스페이스의 상황인지 시스템
KR20110138547A (ko) * 2010-06-21 2011-12-28 한국과학기술원 상황 모니터링을 지원하는 모바일 장치, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템

Also Published As

Publication number Publication date
US20140245323A1 (en) 2014-08-28
US9015729B2 (en) 2015-04-21

Similar Documents

Publication Publication Date Title
JP5571847B2 (ja) 複数の制御システムの異常を検知する異常検知システム
CN110443457B (zh) 数据处理方法及装置
WO2017129022A1 (zh) 一种终端数据库的并行执行方法和装置
KR20050076750A (ko) 인터-포지션된 메시지 변경을 사용하는, 코드에 대한 수신메시지의 적응성 디스패치
CN111611125A (zh) 用于改善高性能计算应用的性能数据收集的方法与设备
US11514355B2 (en) Flat representation of machine learning model
CN113468112B (zh) 文件管理方法、装置、存储介质及计算机设备
CN113641413A (zh) 目标模型加载更新方法及装置、可读介质和电子设备
CN112560390B (zh) 自动生成交叉覆盖点中的忽略仓的方法、装置、设备
WO2022081492A1 (en) Quantization of tree-based machine learning models
KR101403949B1 (ko) 모바일 상황 모니터링을 위한 효율적 데이터 처리를 수행하는 모바일 장치, 이를 이용하는 데이터 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템
EP3779778A1 (en) Methods and apparatus to enable dynamic processing of a predefined workload
CN110245166B (zh) 数据核对方法及装置
CN115061928A (zh) 微服务自动化测试方法、装置、电子设备及存储介质
CN111026504B (zh) 配置虚拟机中获取处理器信息的指令的处理方法、装置、cpu芯片、片上系统和计算机
CN113778850A (zh) 数据处理方法、装置、电子设备和计算机可读介质
US20160110219A1 (en) Managing i/o operations in a shared file system
CN113157628A (zh) 存储系统、数据处理方法、装置、存储系统及电子设备
KR20210012886A (ko) 컴퓨팅 기기에 의해 수행되는 방법, 장치, 기기 및 컴퓨터 판독가능 저장 매체
CN110765136A (zh) 标识符的管理方法、装置、介质及设备
Chourasiya et al. Computation offloading in hand-held devices using ternary decision maker in Accountance with time and energy
CN114297131B (zh) 传感器控制系统、片上系统和计算装置
US20230393891A1 (en) Application performance enhancement system and method based on a user's mode of operation
US10761900B1 (en) System and method for secure distributed processing across networks of heterogeneous processing nodes
Park et al. Adaptable I/O system based I/O reduction for improving the performance of HDFS

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180425

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 6