KR20160053676A - 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법 - Google Patents

사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법 Download PDF

Info

Publication number
KR20160053676A
KR20160053676A KR1020140153082A KR20140153082A KR20160053676A KR 20160053676 A KR20160053676 A KR 20160053676A KR 1020140153082 A KR1020140153082 A KR 1020140153082A KR 20140153082 A KR20140153082 A KR 20140153082A KR 20160053676 A KR20160053676 A KR 20160053676A
Authority
KR
South Korea
Prior art keywords
rule
user
priority
program
service providing
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020140153082A
Other languages
English (en)
Other versions
KR101943430B1 (ko
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 KR1020140153082A priority Critical patent/KR101943430B1/ko
Priority to PCT/KR2015/010921 priority patent/WO2016072636A1/en
Priority to US14/884,149 priority patent/US10627789B2/en
Priority to CN201510749557.XA priority patent/CN105573128B/zh
Publication of KR20160053676A publication Critical patent/KR20160053676A/ko
Application granted granted Critical
Publication of KR101943430B1 publication Critical patent/KR101943430B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2642Domotique, domestic, home control, automation, smart house

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Selective Calling Equipment (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 사용자 장치, 사용자 장치의 구동방법. 서비스제공장치 및 서비스제공장치의 구동방법에 관한 것으로서, 본 발명의 실시예에 따른 사용자 장치는 장치의 동작 수행과 관련한 룰(Rule)을 수신하여 저장하는 저장부, 및 저장한 룰에 포함된 선순위 동작의 판단 결과에 근거해 선순위 동작을 수행하도록 제어하고, 선순위 동작이 완료되면 룰에 포함된 차순위 동작을 수행하기 위한 주변 장치로 룰이 전송되도록 제어하는 제어부를 포함할 수 있다.

Description

사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법{User Device, Driving Method of User Device, Apparatus for Providing Service and Driving Method of Apparatus for Providing Service}
본 발명은 사용자 장치, 사용자 장치의 구동방법. 서비스제공장치 및 서비스제공장치의 구동방법에 관한 것으로서, 더 상세하게는 가령 사물 인터넷(IoT) 분야에서 복수의 사용자 장치는 장치의 동작 수행에 관련된 룰(Rule)에 정의된 동작 순서에 따라 순차적으로 룰을 제공받아 개별적으로 구비하는 룰 엔진을 실행시켜 룰에 정의된 개별 동작을 수행하는 사용자 장치, 사용자 장치의 구동방법. 서비스제공장치 및 서비스제공장치의 구동방법에 관한 것이다.
기존 인간 중심의 통신 패러다임에서 사물(Things)이 통신의 주체로 참여하는 IoT의 시대가 본격화되고 있다. 이러한 IoT 환경의 발달은 사회 인프라와 산업 전반의 변화뿐만 아니라 개인의 최적화된 스마트한 서비스를 가능하게 한다. 이러한 변화 및 서비스를 위해 다양한 사물들을 단일화된 IoT 인터페이스로 접근함으로써 IoT 서비스를 활성화할 수 있도록 하는 에코시스템(Ecosystem)이 제안되었다.
종래에는 하나의 중앙 서버와 연결된 여러 개의 장치로 서비스를 제공한다. 각 장치는 발생된 팩트(Fact) 즉 이벤트 발생 정보를 가공하여 생성한 정보를 중앙 서버로 전송하며 중앙 서버에서 명령하는 명령을 수행한다. 여기서, 팩트는 이벤트 정보에 시간 등의 정보를 추가하여 생성한 정보일 수 있다. 중앙 서버는 고성능의 계산 능력(High Computing power)을 가진 서버급 장치이며 처리할 모든 룰을 가지고 있다. 중앙 서버는 장치들로부터 모든 팩트를 수신하여 룰 엔진으로 수행해야 할 룰을 판단하며 관련된 서비스를 수행한다.
또한 종래에 룰 저작 시 조건(Trigger) 중심의 룰 저작 서비스를 제공한다. 따라서 사용자로 하여금 먼저 "~가 ~한다면"과 같은 장치와 조건을 선택한 후, 그에 맞는 "~가 ~해라"와 같은 장치와 실행(Action)을 선택하도록 하여 룰 저작 서비스를 제공한다.
나아가, 종래에는 저사양 장치를 지원하기 위해 별도의 허브 장치를 제공하여 저사양 장치들을 대신하여 중앙 서버와 통신할 수 있도록 지원한다.
그런데, 이러한 종래 기술들은 중앙 집중 구조로 인해 부하가 발생하며 전체 시스템의 성능 문제를 초래한다. 모든 룰을 룰 엔진을 가지고 있는 하나의 중앙 서버에서 처리 및 관리하므로 연결된 장치가 많아질수록 중앙 서버의 부하가 발생되고 이로 인해 전체 시스템의 성능문제를 초래한다. 즉 모든 장치가, 발생된 팩트를 중앙 서버로 전송하므로 중앙 서버로 트래픽이 과도하게 집중되어 부하가 발생되어 전체 시스템이 비효율적으로 동작한다.
나아가, 중앙 서버 동작 실패시 전체 시스템이 동작하지 않는다. 연결된 장치들은 정상이어도 중앙 서버가 동작 실패가 되면 전체 시스템이 동작하지 않는다.
한편, 종래기술은 조건 우선 룰 저작으로 사용자 입장에서 직관적이지 않다. 조건 우선 룰 저작은 사용자에게 인과 관계를 먼저 생각하도록 요구한다. 즉, 하고 싶은 실행이 아니라, "~하면"과 같이 조건을 먼저 생각하도록 강요하게 된다. 그러나 사용자는 "~하고 싶다."라는 실행을 먼저 생각하는 것이 직관적이고 자연스럽다. 예를 들면, 룰을 만들 때 "TV를 켜고 싶다."는 실행을 먼저 정한 후 "쇼파에 앉았을 때"라는 조건을 정하게 된다. 따라서 조건 우선 룰 저작은 사용자에게 직관적이지 않다.
또한 룰 저작시 단계가 너무 많아 사용자에게 불편함을 초래한다. 사용자가 룰을 저작할 때 조건 장치 선택, 조건 선택, 조건에 조건 선택, 실행 장치, 실행 선택, 실행 조건 선택과 같이 총 6단계를 거쳐야 한다. 이러한 많은 단계로 인해 룰 저작 시 사용자에게 불편함과 어려움을 초래한다.
나아가, 허브 기능을 위한 별도 장치가 필요하다. 저 사양 기기가 서버와 연동할 수 있도록 하기 위해 별도의 허브 기능을 하는 장치가 필요하다. 이는 추가적인 비용 발생을 초래한다.
본 발명의 실시예는 가령 사물 인터넷(IoT) 분야에서 복수의 사용자 장치는 장치의 동작 수행에 관련된 룰에 정의된 동작 순서에 따라 순차적으로 룰을 제공받아 개별적으로 구비하는 룰 엔진을 실행시켜 룰에 정의된 개별 동작을 수행하는 사용자 장치, 사용자 장치의 구동방법. 서비스제공장치 및 서비스제공장치의 구동방법을 제공함에 그 목적이 있다.
본 발명의 실시예에 따른 사용자 장치는 장치의 동작 수행과 관련한 룰(Rule)을 수신하여 저장하는 저장부, 및 상기 저장한 룰에 포함된 선순위 동작의 판단 결과에 근거해 상기 선순위 동작을 수행하도록 제어하고, 상기 선순위 동작이 완료되면 상기 룰에 포함된 차순위 동작을 수행하기 위한 주변 장치로 상기 룰이 전송되도록 제어하는 제어부를 포함한다.
상기 저장부는, 상기 룰에 대한 실행 명령을 입력받은 서비스제공장치 또는 상기 선순위 동작보다 앞선 동작을 수행한 타 사용자 장치로부터 상기 룰을 수신하여 저장할 수 있다.
상기 저장부는, 상기 선순위 동작을 실행하기 위한 프로그램을 더 저장하며, 상기 제어부는, 상기 선순위 동작의 수행과 관련해 상기 저장한 프로그램을 실행시킬 수 있다.
상기 제어부는, 상기 룰에 대한 저장 명령이 있을 때, 상기 프로그램을 통신 인터페이스부를 통해 서비스제공장치로부터 수신하여 상기 저장부에 저장할 수 있다.
상기 제어부는, 상기 룰을 상기 주변 장치로 전송할 때 상기 차순위 동작을 수행하기 위해 필요한 부가 정보를 더 제공할 수 있다.
상기 선순위 동작은, 기 설정된 조건의 충족 여부를 판단하는 동작을 포함하고, 상기 후순위 동작은 상기 조건이 충족되었을 때 실행할 제어 동작을 포함하며, 상기 동작 수행부는 상기 조건의 충족 여부를 감지하기 위한 적어도 하나의 센서를 포함할 수 있다.
또한 본 발명의 실시예에 따른 사용자 장치의 구동방법은 장치의 동작 수행과 관련한 룰을 수신하여 저장하는 단계, 및 상기 저장한 룰에 포함된 선순위 동작의 판단 결과에 근거해 상기 선순위 동작을 수행하도록 제어하고, 상기 선순위 동작이 완료되면 상기 룰에 포함된 차순위 동작을 수행하기 위한 주변 장치로 상기 룰이 전송되도록 제어하는 단계를 포함한다.
상기 저장하는 단계는, 상기 룰에 대한 실행 명령을 입력받은 서비스 제공 장치 또는 상기 선순위 동작보다 앞선 동작을 수행한 타 사용자 장치로부터 상기 룰을 수신하여 저장할 수 있다.
상기 저장하는 단계는, 상기 선순위 동작을 실행하기 위한 프로그램을 저장하는 단계를 포함하며, 상기 제어하는 단계는, 상기 선순위 동작의 수행과 관련해 상기 저장한 프로그램을 실행시킬 수 있다.
상기 저장하는 단계는, 상기 룰에 대한 저장 명령이 있을 때, 상기 프로그램을 통신 인터페이스부를 통해 서비스제공장치로부터 수신하여 저장할 수 있다.
상기 제어하는 단계는, 상기 룰을 상기 주변 장치로 전송할 때 상기 차순위 동작을 수행하기 위해 필요한 부가 정보를 더 제공할 수 있다.
상기 선순위 동작은, 기 설정된 조건의 충족 여부를 판단하는 동작을 포함하고, 상기 후순위 동작은 상기 조건이 충족되었을 때 실행할 제어 동작을 포함하며, 상기 동작을 수행하는 단계는, 상기 조건의 충족 여부를 감지할 수 있다.
한편, 본 발명의 실시예에 따른 서비스제공장치는 장치의 동작 수행에 관계된 룰(Rule)의 저작을 위해 웹 페이지를 사용자에게 제공하는 프로그램 관리부, 상기 저작한 룰에 포함되는 동작을 수행하기 위한 장치의 지정이 없는 경우, 상기 동작을 파악하여 상기 사용자의 등록 장치 중 하나를 자동으로 지정하는 동작 관리부, 및 상기 룰에 포함된 선순위 동작을 수행하기 위하여 상기 지정된 장치로 상기 룰을 전송하는 장치 관리부를 포함한다.
상기 동작 관리부는, 상기 룰에 대한 저장 명령이 있을 때, 상기 룰에 정의된 동작을 실행하기 위한 적어도 하나의 사용자 장치로 상기 동작에 관련된 프로그램을 전송하도록 상기 장치 관리부를 제어할 수 있다.
상기 동작 관리부는, 사용자로부터 상기 저작한 룰의 실행 명령이 있을 때, 상기 룰에 정의된 선순위 동작을 수행하기 위한 사용자 장치로 상기 룰을 전송하도록 상기 장치 관리부를 제어할 수 있다.
상기 동작 관리부는, 상기 사용자의 상황(context)을 인식하여 상기 장치를 자동 지정할 수 있다.
또한 본 발명의 실시예에 따른 서비스제공장치의 구동방법은 장치의 동작 수행에 관계된 룰(Rule)의 저작을 위해 웹 페이지를 사용자에게 제공하는 단계, 상기 저작한 룰에 포함되는 동작을 수행하기 위한 장치의 지정이 없는 경우, 상기 동작을 파악하여 상기 사용자의 등록 장치 중 하나를 자동 지정하는 단계, 및 상기 룰에 포함된 선순위 동작을 수행하기 위하여 상기 자동 지정한 장치로 상기 룰을 전송하는 단계를 포함할 수 있다.
상기 서비스제공장치의 구동방법은 사용자로부터 상기 저작한 룰의 저장 명령이 있을 때, 상기 룰에 정의된 동작을 실행하기 위한 적어도 하나의 사용자 장치로 상기 동작에 관련된 프로그램을 전송하는 단계를 더 포함할 수 있다.
상기 서비스제공장치의 구동방법은 사용자로부터 상기 저작한 룰의 실행 명령이 있을 때, 상기 룰에 정의된 선순위 동작을 수행하기 위한 사용자 장치로 상기 룰을 전송하는 단계를 더 포함할 수 있다.
상기 자동 지정하는 단계는 상기 사용자의 상황(context)을 인식하여 상기 장치를 자동 지정할 수 있다.
본 발명의 실시예에 따르면 분산된 룰 엔진을 통해 기기 효율성 및 시스템 경량화를 추가할 수 있고, 실행 우선으로 룰을 저작함에 따라 사용자에게 직관적이고 편의성을 제공하며, 룰 저작이 간단하여 쉽고 빠른 룰 저작이 가능할 수 있다. 뿐만 아니라, 조건 및 실행과 관련한 어플리케이션을 탄력적으로(pluggable) 탑재할 수 있어 기능 확장성이 제공되며, 저사양 기기에서도 간단히 룰에 따라 동작을 수행할 수 있을 것이다.
도 1은 본 발명의 실시 예에 따른 에코 시스템을 나타내는 도면,
도 2는 도 1의 에코 시스템을 도식화하여 나타낸 도면,
도 3은 복수의 사용자 장치의 동작 수행 과정을 설명하기 위한 도면,
도 4는 사용자 중심의 추상화된 수준의 간단한 룰 저작 과정을 설명하기 위한 도면,
도 5는 도 1의 사용자 장치 1 또는 사용자 장치 2의 세부 구조를 나타내는 블록다이어그램,
도 6은 도 1의 사용자 장치 1 또는 사용자 장치 2의 다른 구조를 나타내는 블록다이어그램,
도 7은 도 1의 서비스제공장치의 구조를 나타내는 블록다이어그램,
도 8은 본 발명의 실시예에 따른 에코 시스템을 이용한 서비스 과정을 나타내는 도면,
도 9A는 도 5의 사용자 장치 1 또는 사용자 장치 2의 내부 동작을 나타내는 도면,
도 9B는 도 6의 사용자 장치 1 또는 사용자 장치 2의 내부 동작을 나타내는 도면,
도 10은 도 1에 도시된 사용자 장치 1 또는 사용자 장치 2의 구동 과정을 나타내는 흐름도,
도 11은 도 1에 도시된 사용자 장치 1 또는 사용자 장치 2의 다른 구동 과정을 나타내는 흐름도,
도 12는 도 1의 서비스제공장치의 구동 과정을 나타내는 흐름도,
도 13은 도 1의 서비스제공장치의 다른 구동 과정을 나타내는 흐름도,
도 14A 내지 도 14D는 2개 이상의 조건을 가질 때, 연산자를 이용한 룰 처리 과정을 설명하기 위한 도면,
도 15는 본 발명의 다른 실시 예에 따른 에코 시스템을 나타내는 도면, 그리고
도 16은 본 발명의 또 실시 예에 따른 에코 시스템을 나타내는 도면이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 에코 시스템을 나타내는 도면이고, 도 2는 도 1의 에코 시스템을 도식화하여 나타낸 도면이며, 도 3은 복수의 사용자 장치의 동작 수행 과정을 설명하기 위한 도면이다. 또한 도 4는 사용자 중심의 추상화된 수준의 간단한 룰 저작 과정을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 에코 시스템(90)은 적어도 하나의 사용자 장치(100-1, 100-2), 통신망(110), 서비스제공장치(120) 및 서드파티장치(130)의 일부 또는 전부를 포함한다.
여기서, 일부 또는 전부를 포함한다는 것은 서드파티장치(130)와 같은 일부 구성요소가 생략되어 구성되거나 서비스제공장치(120)와 같은 다른 구성요소가 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
사용자 장치 1(100-1) 및 사용자 장치 2(100-2)는 휴대폰, MP3, PDP, PDA, 노트북, 태블릿 PC와 같은 이동 단말기, 온도계, 오디오기기, TV, 웨어러블 장치, 세탁기 등 사용자가 사용가능한 다양한 전자기기를 포함한다. 이러한 장치들은 사용자가 저작한 룰을 실행하기 위한 룰 엔진, 즉, 룰 실행 프로그램을 포함할 수 있으며, 룰에 포함되는 특정 동작(task)을 수행하기 위한 실행 프로그램, 가령 어플리케이션을 서비스제공장치(120)로부터 제공받을 수 있다. 여기서, 어플리케이션은 응용 프로그램으로서, 프로그램 중에서 특정한 업무를 해결하기 위한 목적을 가지고 만들어진 프로그램을 의미한다. 다시 말해, 오퍼레이팅(operating) 시스템이나 유틸리티 프로그램, 언어처리 프로그램 등의 기본 소프트웨어와 달리 특정한 업무 처리를 목적으로 작성된 프로그램이다. 응용 프로그램은 사용자에 의해 직접 작성되기도 하지만, 사용자의 프로그램 작성상의 번거로움을 덜고, 또 편리하게 활용할 수 있도록 하기 위해서, 각 분야의 전문가에 의해 개발·작성되고 패키지화된 응용프로그램이 많이 활용되고 있으며, 이를 패키지 프로그램이라 부르기도 한다.
또한 룰은 복수의 동작을 연관시켜 수행하도록 사용자가 지정한 일련의 동작 정보를 의미한다. 룰은 먼저 수행되어야 하는 선순위 동작과, 그 선순위 동작에 이어지는 차순위 동작으로 구성될 수 있다. 여기서, 선순위 동작은 임의의 조건이 충족되었는지 여부를 판단하는 판단 동작이 포함될 수 있고, 차순위 동작은 그 조건이 충족되었을 때 개시되는 실행 동작이 포함될 수 있다. 물론 룰과 관련해서는 다양한 형태의 룰이 가능하겠지만, 예를 들어 "집의 도어락을 해제하고 사용자를 인식하여 사용자가 집에 들어오면 거실 전등을 켜고 휴대폰을 댁내 와이파이망에 연결한다", "사용자가 집에 왔고, 소파에 않으면 TV를 자동으로 켠다", "휴대폰 사용이 일정 시간 동안 사용이 없고, 베게에 누우면 취침 모드를 실행한다(ex. 조명 조절, 취침 음악 재생 등), "내가 집 근처에 왔고 집 온도가 30도 이상이면 에어컨을 켜라" 등을 포함할 수 있다. 구체적인 룰의 동작과 관련해서는 후술하는 부분에서 자세히 설명하기로 한다.
나아가, 룰 엔진이란 이러한 룰을 이행하기 위한 프로그램 또는 그 프로그램을 실행시키기 위한 하드웨어를 의미할 수 있다. 가령, 룰 엔진은 인터페이스 기능을 수행하는 소 단위의 소프트웨어 즉 모듈에 대한 핵심(core)적인 역할을 수행하는 프로그램을 지칭할 수 있다. 룰 엔진은 비교적 경량(light-weight)의 룰 엔진이 될 수 있다. 예를 들어, 사용자가 서비스제공장치(120)에서 제공하는 룰 저작 툴(tool) 즉 룰 저작 프로그램을 사용자 장치 1(100-1)에 저장하고, 저장한 프로그램을 실행해 도 2에 도시된 바와 같이 서비스제공장치(120)의 웹 페이지에 접속하여 자신이 원하는 룰을 설정한 후 설정한 룰을 저장할 때, 해당 룰의 동작에 관계되는 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)는 해당 동작에 관련된 어플리케이션을 서비스제공장치(120)로부터 수신하여 저장할 수 있다.
도 2에서 볼 때, 조건(Trigger)-실행(Action) 어플리케이션을 사용자 장치에 플러그 인(plug-in)한다는 것은 사용자가 저작한 룰에 따라 룰을 처리하기 위한 조건이나 실행에 해당되는 어플리케이션이 사용자 장치에 설치된다는 것을 의미한다. 예를 들어, 사용자가 저작한 룰이 "사용자가 집에 왔고 소파에 앉으면 TV를 켠다"라면 사용자 장치에는 사용자가 집에 왔는지를 감지하는 조건에 해당되는 프로그램 즉 어플리케이션, 소파에 앉았는지를 감지하는 조건에 해당되는 프로그램, 그리고 TV를 켜는 실행에 해당되는 프로그램이 설치된다. 이와 같이 본 발명의 실시예는 실행 중에 이러한 조건-실행에 해당되는 프로그램의 플러그 인을 지원함으로써 사용자가 서비스 사용 중에 동적으로 룰을 추가할 수 있을 것이다.
이후 사용자가 웹 페이지 상에서 저작한 룰의 실행을 요청하면, 선순위의 동작을 수행하기 위한 사용자 장치 1(100-1)이 서비스제공장치(120)가 제공하는 룰을 수신할 수 있다. 예를 들어, 사용자가 도 3에서와 같이 "내가 집 근처에 있고 집 온도가 30도 이상이면 에어컨을 켜라"라고 룰을 설정하였다고 가정하자. 여기서 선순위 동작은 내가 집 근처에 있는지 여부를 판단하는 것이고, 차순위 동작은 집 온도가 30도 이상인 상태를 판단하는 동작이며, 최후의 차순위 동작은 에어컨을 켜는 것이다. 따라서, 내가 집 근처에 있는 것을 감지하기 위한 사용자 장치 1(100-1), 가령 휴대폰은 해당 룰을 먼저 수신할 수 있다. 해당 룰을 수신하면, 사용자 장치 1(100-1)은 자신이 수행해야 할 동작 즉 태스크(task)를 판단(혹은 추출)한다. 여기서, 동작 즉 태스크는 조건에 관련된 동작 또는 실행에 관련된 동작을 포함한다.
이후, 자신이 수행해야 할 동작을 감지하고, 동작이 완료되면 해당 룰을 다시 사용자 장치 2(100-2), 가령, 온도계로 넘겨준다(hand over). 이때 해당 동작을 수행하기 위하여 사용자 장치 1(100-1)은 이전에 제공받아 저장한 어플리케이션을 실행시킬 수 있다. 자신의 동작이 완료된 후, 사용자 장치 1(100-1)은 해당 룰을 삭제할 수 있다.
물론 삭제가 반드시 이루어져야 하는 것은 아니다. 다시 말해, 서비스제공장치(120)로부터 룰을 수신한 사용자 장치 1(100-1)은 해당 룰의 소유자(owner)이다. 그리고 사용자 장치 1(100-1)로부터 룰을 수신한 사용자 장치 2(100-2)는 해당 룰의 수행자(not owner)이다. 즉 룰의 소유자는 다음에 룰이 또 실행될 수 있도록 서비스제공장치(120)로부터 수신한 룰을 계속 저장하고 있을 수 있다. 그러나, 다른 사용자 장치 1(100-1)로부터 룰을 수신한 룰 수행자는 룰을 처리하여 차순위 사용자 장치로 전달한 후 룰을 삭제한다. 다시 말해, 자신이 직접 룰 처리를 시작하지 못하므로 유지할 필요가 없는 것이다.
나아가, 서비스제공장치(120)로부터 룰을 수신하여 룰 엔진과 같은 프로그램(또는 조건 및 실행에 해당하는 동작 관련 어플리케이션)을 수행한 룰 소유자는 룰을 처리한 후 차순위 사용자 장치 2(100-2)로 룰을 전달한 후에도 해당 프로그램을 중지(또는 종료)하지 않을 수 있다. 즉 룰이 또 한번 실행될 수 있도록 계속 프로그램을 실행시켜 둔다. 그러나, 룰 수행자는 수신한 룰의 프로그램을 실행하고 룰을 차순위 장치로 전달한 후 실행하고 있는 프로그램을 중지시킨다. 즉 룰의 가장 선순위 사용자 장치 즉 소유자로부터 룰을 전달받으면 그때 프로그램을 수행하기 때문에 계속 실행시켜둘 필요가 없는 것이다.
상기와 같은 룰 저장, 룰 삭제와 프로그램 종료 등의 방법으로 사용자 장치는 컴퓨팅 전원(혹은 전력)(computing power)을 효율적으로 유지할 수 있게 된다. 전원 절약과 관련해서는 필요시에만 동작하기 때문에 저사양의 HW로도 서비스 지원이 가능할 수 있게 된다.
한편, 사용자 장치 1(100-1)은 수신된 룰의 룰 활성화 조건에 따라 룰을 활성 및 비활성화하여 동작할 수 있다. 다시 말해, 사용자가 룰 저작시 룰 활성화 시간, 장소 등과 같은 룰 활성화 조건을 설정할 수 있는데, 이와 같은 룰 활성화 조건이 충족될 때, 사용자 장치 1(100-1)은 룰을 처리하거나 룰 내에 포함된 자신의 동작 즉 태스크를 실행시킬 수 있다. 예를 들어, 사용자 장치 1(100-1)이 서비스제공장치(120)로부터 선순위 동작을 위해 룰을 특정 시점에서 수신하였다 하더라도, 룰 활성화 조건이 충족될 때까지 대기하였다가 자신의 동작을 실행할 수 있다. 이와 같은 활성화 조건에 관련된 정보는 일종의 부가 정보일 수 있는데, 이러한 부가 정보는 사용자가 룰 저작을 위한 웹 페이지 상에서 조건(Trigger)에 해당되는 동작을 설정하기 위한 표시 화면에 나타내는 별도의 버튼 또는 아이콘을 선택함으로써 새롭게 나타나는 표시 화면을 통해 설정할 수 있다. 만약 특별한 시간이나 장소 등에 대한 활성화 조건의 설정이 없는 경우 항시 동작한다고 볼 수 있다.
나아가, 사용자 장치 1(100-1)은 복수의 룰을 처리할 때, 복수의 룰이 공통되는 하나의 조건에 해당되는 동작을 포함하는 경우, 하나의 조건에 해당되는 동작이 감지되면 감지된 조건에 해당되는 복수의 룰을 서로 다른 복수의 장치로 각각 전달할 수 있다. 예를 들어, 사용자 장치 1(100-1)이 가령 A룰, B룰, C룰을 서비스제공장치(120)로부터 수신하였는데, 각각의 룰이 공통되게 "휴대폰이 흔들리면"이라는 조건을 포함하고 있다면, 해당 조건이 감지되면 A룰에서 차순위 동작을 수행하기 위한 장치, B룰에서 차 순위 동작을 수행하기 장치, C룰에서 차순위 동작을 수행하기 위한 장치로 각각 해당 룰을 전달할 수 있다. 가령 A룰에서 차순위 동작은 GPS 모듈이고, B룰에서 차순위 동작은 블루투스 모듈이며, C룰에서 차순위 동작이 와이파이 모듈이었다면, 해당 모듈을 갖는 각 장치로 전달된다.
뿐만 아니라, 사용자 장치 1(100-1)은 수신된 룰에서 자신의 동작을 수행한 후, 기설정된 순서에 근거하여 룰을 차순위 동작을 수행하기 위한 장치로 전달할 수 있지만, 전달할 다음 순서를 판단하여 순서를 변경해 전달할 수도 있다. 예를 들어, 사용자 장치 1(100-1)은 차순위 동작을 수행하기 위한 사용자 장치 2(100-2)로 룰을 전달하기에 앞서 사용자 장치 2(100-2)의 동작 상태를 판단할 수 있다. 다시 말해, 사용자 장치 2(100-2)와의 통신을 통해 사용자 장치 2(100-2)의 내부 부하가 심하다고 판단되면, 차차순위 동작을 수행하기 위한 사용자 장치 3으로 룰을 전달할 수도 있다. 물론 이는 서로 동작 순서가 바뀌어도 크게 문제되지 않는 경우에 이루어지는 것이 좋을 것이다. 이의 과정에서, 사용자 장치 2(100-2)의 내부 부하가 해소되면, 차차순위 동작을 수행한 사용자 장치 3은 사용자 장치 2(100-2)로 룰을 전달함으로써 이와 같이 전달 순서가 변경되는 것도 얼마든지 가능하다.
이와 같은 내부 부하가 아니라 하더라고, 사용자 장치 1(100-1)은 별도의 부가 정보, 가령 빈번도 정보를 확인한 후 전달 순서를 변경하는 것도 얼마든지 가능하다. 여기서, 빈번도 정보란 가령 사용자들이 특정 모듈을 얼마나 자주 이용하는지에 대한 상태를 나타내는 정보를 나타낼 수 있다. 사용자 장치 1(100-1)은 자신의 동작을 완료하고, 다음 장치로 룰을 전달하기 위하여 빈번도 정보를 확인하여 동작을 먼저 수행하고자 하는 장치가 있는지를 확인할 수 있다. 확인 결과 빈번도 정보가 없다면 차 순위 동작을 수행하는 장치로 룰을 전달하겠지만, 빈빈도 정보가 있는 장치가 발견되면 해당 장치로 룰을 전달하는 것이다. 예를 들어, GPS 모듈의 경우 사용이 빈번하지 않고, 동작을 위한 준비 시간이 많이 소요될 수 있기 때문에, 빈번도 정보를 갖는 해당 GPS 모듈을 먼저 동작시킬 수 있다. 이러한 빈번도 정보는 사용자가 웹 페이지 상에서 룰 저작시 먼저 동작을 실행할 필요가 있는 장치의 동작을 설정할 때, 서비스제공장치(120)에서 자동으로 삽입될 수 있다. 이는 서비스제공장치(120)의 시스템 설계자가 GPS 모듈의 경우 빈번도 정보의 삽입이 필요하다고 설정한 경우, 해당 장치의 동작이 설정되면 자동으로 삽입될 수 있다.
더 나아가, 사용자 장치 1(100-1)은 자신의 동작을 수행한 후, 차 순위 동작을 수행하기 위한 사용자 장치 2(100-2)로 룰을 전달하기에 앞서, 룰을 갱신하여 전달할 수 있다. 다시 말해, 자신이 동작을 완료하였음을 나타내는 정보를 삽입하여 전달할 수 있는 것이다. 그뿐 아니라, 가령 "문자 메시지가 도착하면 화면에 보여줘"라는 룰이 수신된 경우, 예를 들어 통신 모듈은 문자 메시지의 도착 여부를 판단하고, 판단 결과 메시지가 도착되었다면 메시지의 내용을 삽입하여 차 순위 동작을 수행하기 위한 장치 즉 디스플레이 장치로 전달할 수 있다. 물론 이의 경우, 다양한 형태로 정보를 삽입하여 전달하는 것이 가능할 수 있는데, 가령 사용자 장치 1(100-1)은 해당 룰에서 자신의 동작에 관계되는 정보 영역에 정보를 삽입할 수 있지만, 차 순위 동작을 수행하는 장치의 정보 영역에 삽입하여 전달할 수 있다.
한편, 사용자가 사용자 장치 1(100-1)을 통해 저작에 관련된 룰을 취급한다고 가정하면, 사용자는 사용자 장치 1(100-1)에 저장된 저작 툴을 실행시켜 웹 페이지에 접속하여 룰을 저작할 수 있겠지만, 룰 마켓에서 기저작된 룰들을 다운로드해서 사용하는 것도 가능할 수 있다. 또는 기저작된 룰을 다운로드하여 편집해서 사용하는 것도 가능할 수 있다. 뿐만 아니라, 지인이 저작한 룰을 직접 받아서 사용할 수 있는데, 이를 통해 지인과 룰을 공유하는 것이 가능할 수 있다. 여기서, 저작한 룰은 클라우드 서버와 같은 서비스제공장치(120)에 저장하는 경우, 본인 계정으로 저장하게 된다.
또한 사용자 장치 2(100-2)는 사용자 장치 1(100-1)로부터 넘겨받은 룰을 판단하여 자신이 수행해야 할 동작을 판단한다. 가령, 룰 내의 각 동작을 수행하기 위한 정보 영역이 구분되는 경우, 각 영역에서 자신의 장치와 일치하는 정보가 있는지 비교하여 자신이 수행할 동작을 판단할 수 있다. 그리고 판단한 시점 이후에 사용자 장치 2(100-2)는 자신이 수행해야 할 동작을 수행한다. 즉 도 3에서 볼 때, 온도계는 자신이 수행할 동작이 집 온도가 30도 인지를 판단하는 것임을 알고, 온도 감지 동작을 수행한다. 그리고 온도가 30도 이상이 되면, 온도계는 사용자 장치 3(100-3), 가령 에어컨으로 룰을 다시 넘겨주며, 에어컨은 수신한 룰에서 "에어컨을 켜라"는 자신이 수행해야 할 동작을 판단하고, 판단 이후 에어컨을 켜게 된다. 이후 사용자 장치 3은 마지막 동작이라 판단될 때, 해당 룰을 삭제할 수 있다. 다시 말해, 사용자 장치 3은 수신된 룰에서 최 후순위 동작을 수행한 경우, 자신이 수행해야 할 동작을 수행한 후 사용자 장치 1(100-1)로 동작이 완료되었음을 알리고 해당 룰을 폐기할 수 있다. 이에 따라 사용자 장치 1(100-1)을 통해 사용자는 룰 처리가 완료되었음을 인식할 수 있다.
도 2에서 볼 때, 휴대폰이나 컴퓨터와 같은 사용자 장치는 가령 사용자의 요청에 따라 내부에 저장된 룰 저작 툴을 실행시켜 서비스제공장치(120)의 웹 페이지(120b)에 접속해 룰 저작 과정에 직접 참여할 수 있다. 다시 말해, 휴대폰이나 컴퓨터와 같은 사용자 장치는 서비스제공장치(120)에 접속하여 웹 페이지(120b)를 수신하고, 웹 페이지(120b) 상에서 자신의 장치에 대한 동작을 설정하는 것도 얼마든지 가능할 수 있다. 또한 이러한 영상표시가 가능한 사용자 장치들은 세탁기나 오디오기기와 같은 다른 장치에 대한 동작을 설정하는 것도 가능할 수 있을 것이다. 여기서, 룰 내의 동작은 조건(Trigger)에 해당되는 동작과 실행(Action)에 해당되는 동작으로 구분된다. 좀더 구분하자면 조건 동작은 "~하면"이나 "~할 때"와 같이 가정 형태라면, 실행 동작은 명령 형태가 될 수 있다. 물론 실행 동작은 "켜 주었으면 좋겠다"와 같이 평서문의 형태가 될 수도 있고, "켜 줄래?"와 같이 의문문의 형태가 될 수도 있으므로, 위의 내용에 특별히 한정하지는 않을 것이다.
다만, 휴대폰이나 컴퓨터와 같은 사용자 장치는 웹 페이지(120b)상에서 제1 화면에서 실행에 해당되는 동작을 설정하고, 설정이 완료되면 제2 화면에서 조건에 해당되는 동작을 설정하게 된다. 물론 더 나아가 부가적으로 제3 화면에서 룰의 활성화 조건을 추가로 설정할 수 있다. 제2 화면은 제1 화면에서 동작에 대한 설정이 완료되면 자동으로 표시될 수 있지만, 제3 화면은 제2 화면에서 특정 버튼 또는 아이콘을 선택함으로써 표시될 수 있다. 여기서, 제1 내지 제3화면은 서로 독립된 화면에 해당된다. 그러나 본 발명의 실시예는 각 화면을 독립되게 구성하는 것이 아니라, 하나의 화면에서 영역을 구분하여 표시하는 것도 가능하고, 제1 화면과 제2 화면은 하나의 화면으로 형성하고, 제3 화면은 독립된 화면으로 형성하는 것이 얼마든지 가능하므로 위의 내용에 특별히 한정하지는 않을 것이다.
통신망(110)은 유무선 통신망을 모두 포함한다. 여기서 유선망은 케이블망이나 공중 전화망(PSTN)과 같은 인터넷망을 포함하는 것이고, 무선 통신망은 CDMA, WCDMA, GSM, EPC(Evolved Packet Core), LTE(Long Term Evolution), 와이브로 망 등을 포함하는 의미이다. 물론 본 발명의 실시예에 따른 통신망(110)은 이에 한정되는 것이 아니며, 향후 구현될 차세대 이동통신 시스템의 접속망으로서 가령 클라우드 컴퓨팅 환경하의 클라우드 컴퓨팅망 등에 사용될 수 있다. 가령, 통신망(110)이 유선 통신망인 경우 통신망(110) 내의 액세스포인트는 전화국의 교환국 등에 접속할 수 있지만, 무선 통신망인 경우에는 통신사에서 운용하는 SGSN 또는 GGSN(Gateway GPRS Support Node)에 접속하여 데이터를 처리하거나, BTS(Base Station Transmission), NodeB, e-NodeB 등의 다양한 중계기에 접속하여 데이터를 처리할 수 있다.
통신망(110)은 액세스포인트를 포함할 수 있다. 액세스포인트는 건물 내에 많이 설치되는 펨토(femto) 또는 피코(pico) 기지국과 같은 소형 기지국을 포함한다. 여기서, 펨토 또는 피코 기지국은 소형 기지국의 분류상 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)를 최대 몇 대까지 접속할 수 있느냐에 따라 구분된다. 물론 액세스포인트는 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)와 지그비 및 와이파이(Wi-Fi) 등의 근거리 통신을 수행하기 위한 근거리 통신 모듈을 포함한다. 액세스포인트는 무선통신을 위하여 TCP/IP 혹은 RTSP(Real-Time Streaming Protocol)를 이용할 수 있다. 여기서, 근거리 통신은 와이파이 이외에 블루투스, 지그비, 적외선(IrDA), UHF(Ultra High Frequency) 및 VHF(Very High Frequency)와 같은 RF(Radio Frequency) 및 초광대역 통신(UWB) 등의 다양한 규격으로 수행될 수 있다. 이에 따라 액세스포인트는 데이터 패킷의 위치를 추출하고, 추출된 위치에 대한 최상의 통신 경로를 지정하며, 지정된 통신 경로를 따라 데이터 패킷을 다음 장치, 예컨대 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)로 전달할 수 있다. 액세스포인트는 일반적인 네트워크 환경에서 여러 회선을 공유할 수 있으며, 예컨대 라우터(router), 리피터(repeater) 및 중계기 등이 포함될 수 있다.
서비스제공장치(120)는 사용자의 룰 저작에 관여할 수 있다. 다시 말해, 사용자가 자신이 소유한 컴퓨터 등에 구비되는 룰 저작 툴을 실행시켜 룰 저작을 요청할 때, 서비스제공장치(120)는 룰 저작을 위한 웹 페이지(120b)를 제공할 수 있다. 또한 서비스제공장치(120)는 사용자가 저작한 룰의 저장을 요청할 때, 해당 룰을 저장한 후 룰에 포함되는 동작을 수행하기 위한 사용자 장치 1(100-1) 및 사용자 장치 1(100-2)로 해당 동작의 수행에 필요한 어플리케이션을 전송해 줄 수 있다. 또한 서비스제공장치(120)는 사용자자 저작한 룰을 실행시키면, 저작한 룰에서 선순위 동작을 수행하기 위한 사용자 장치 1(100-1)로 해당 룰을 전송하게 된다.
또한 서비스제공장치(120)는 서드파티장치(130)에 오픈 API(Application Program Interface)를 제공할 수 있다. 다시 말해, 서비스제공장치(120)는 서드파티장치(130)의 플랫폼으로서 동작할 수 있다. 이에 따라 서비스제공장치(120)는 서드파티장치(130)에서 제공하는 다양한 형태의 어플리케이션을 저장할 수 있을 것이다. 이러한 어플리케이션은 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)와 호환되는 장치들에 관련된 것일 수 있고, 나아가 기존의 서비스나 컨텐츠에 연동하는 어플리케이션이 될 수 있을 것이다.
나아가, 서비스제공장치(120)는 사용자가 웹 페이지(120b)상에서 룰을 저작할 때, 즉 실행과 조건에 해당되는 동작을 설정할 때 특정 기기를 지정하지 않는 경우, 그러한 실행 및 조건에 해당되는 동작을 분석하여 사용자가 등록한 장치 중 하나를 자동으로 지정할 수 있다. 이때, 서비스제공장치(120)는 사용자의 상황을 고려하여 설정할 수 있다. 예를 들어, 사용자가 "온도가 30도 이상이면 에어컨을 켜라"라고 룰을 저작하였다고 가정하자. 이의 경우 가령 사용자가 집에 있는 경우에는 집에 있는 에어컨을 켜겠지만, 차량에 있는 경우에는 차량 에어컨을 켜야 한다. 따라서, 서비스제공장치(120)는 룰 내의 동작을 수행하는 장치를 자동 지정할 때, 현재 사용자의 상황을 고려하여 지정하고, 해당 룰을 선순위 동작을 수행하는 장치로 전송해 주게 된다. 이를 본 발명의 실시예에서는 사용자를 중심으로 한 추상화 수준의 간소한(simplified) 룰 저작이라 명명할 수 있다. 즉 사용자는 장치를 고려하지 않고 사용자 중심의 추상화된 수준으로 룰을 저작한다.
예를 다시 들면, 사용자가 도 4에서와 같이 실행으로 "집을 따뜻하게 해줘"를 선택하고 조건으로 "날씨가 추우면"을 선택해서 추상화된 수준의 간단한 룰을 생성할 수 있다. 이의 경우, 서비스제공장치(120)는 사용자의 상황 인식(context-aware)에 기초하여 룰을 생성하고, 나아가 구체적인 동작을 얻기 위하여 룰을 추천할 수 있다. 여기서, 상황 인식은 위에서 언급한 대로 사용자가 현재 처한 상황을 룰 생성시 반영하는 것이다. 가령, 상황은 사용자가 집에 있는 경우와 차량 내에 있는 경우를 포함할 수 있다. 좀더 덧붙이면, 생성된 추상화된 룰을 통해 서비스제공장치(120)는 사용자가 가지고 있는 장치, 사용자의 위치와 환경 정보를 통해 추상화된 수준의 룰을 장치에 반영하여 세부적인 룰을 생성할 수 있다(Generated Rule)(400). 또는 장치와 환경 정보를 반영한 세부적인 룰을 사용자가 선택할 수 있도록 추천해 줄 수도 있다(Suggest Rule)(410).
서드파티장치(130)는 하드웨어나 소프트웨어를 개발하는 업체 외에 중소규모의 개발자들이 운영하는 장치로서, 서비스제공장치(120)에서 요청하는 주어진 규격에 맞추어 제품을 생산하게 된다. 다시 말해, 서드파티장치(130)는 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)와 호환되는 장치들에 관련되는 어플리케이션이나 기존의 서비스나 컨텐츠에 연동하는 어플리케이션을 제공할 수 있다. 즉 서드파티 업체는 개발한 IoT 장치들이 본 서비스와 연동할 수 있도록 장치의 실행 및 조건과 관련한 어플리케이션을 개발하여 서비스제공장치(120)의 조건/실행 마켓(120a)에 등록한다.
이에 따라 사용자는 룰 저작 툴을 통해 서비스제공장치(120)에 등록된 실행 및 조건을 통해 룰을 작성하여 서비스제공장치(120)에 등록한다. 서비스제공장치(120)는 등록된 룰에 따른 실행 및 조건 관련 어플리케이션을 각 사용자 장치에 설치하도록 요청하며 설치가 완료된 후 사용자 장치로 룰을 전송하여 처리할 수 있도록 한다. 또한 사용자 장치들은 허브 및 프락시(proxy) 기능을 통해 저사양 IoT 장치와 연동하여 룰을 처리할 수도 있을 것이다.
여기서, 프락시 기능이란 사용자에 의해 룰 처리 동작을 수행하기 위한 사용자 장치로 지정되었지만 저사양 하드웨어(H/W)의 탑재로 인해 룰 처리 동작이 불가능할 때, 룰 처리 동작이 가능한 주변의 사용자 장치가 서비스제공장치(120), 더 정확하게는 통신망(110)과의 통신을 대신 수행해 주고, 저사양 하드웨어에 탑재되어야 하는 조건 및 실행에 관련된 어플리케이션을 자신이 대신 직접 다운받아 실행해 주며, 나아가 해당 어플리케이션을 이용해 조건 및 실행이 감지되거나 실행되었을 때, 룰을 차순위 사용자 장치로 전달해 줄 수 있는 것을 의미한다.
도 5는 도 1의 사용자 장치 1 또는 사용자 장치 2의 세부 구조를 나타내는 블록다이어그램이다.
도 5에 도시된 바와 같이, 사용자 장치 1(100-1) 또는 사용자 장치 2(100-2)(이하, 사용자 장치 1로 설명함)는 통신 인터페이스부(500), 제어부(510), 동작 수행부(520) 및 저장부(530)의 일부 또는 전부를 포함한다.
여기서, 일부 또는 전부를 포함한다는 것은 통신 인터페이스부(500)와 같은 일부 구성요소가 생략되고 제어부(510)와 같은 구성요소가 통신 인터페이스부(500)의 동작을 수행하거나, 동작 수행부(520)와 같은 일부 구성요소가 제어부(510)와 같은 다른 구성요소에 통합 구성될 수 있는 것을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
통신 인터페이스부(500)는 사용자가 저작한 룰, 더 정확하게는 룰 정보를 외부장치로서 가령 서비스제공장치(120)로부터 수신할 수 있다. 이때, 룰을 최초 수신하는 장치는 룰에 포함된 동작 중 선순위 동작을 수행하는 장치에 해당된다. 만약 후순위 동작을 수행하는 장치가 룰을 수신한 경우라면 외부장치로서 해당 룰의 선순위 동작을 수행한 주변장치로부터 수신한다고 볼 수 있다. 물론 선순위 동작을 수행하는 장치가 아니라 하더라도, 프락시 기능을 수행하는 주변장치와 연동하여 룰을 처리할 수 있으므로 본 발명의 실시예에서의 위의 내용에 특별히 한정하지는 않을 것이다.
제어부(510)는 사용자 장치 1(100-1) 내의 통신 인터페이스부(500) 및 동작 수행부(520)를 제어하며, 룰 처리에 관련된 동작을 수행할 수 있다. 이를 위해 제어부(510)는 룰 실행부(510a) 내에 룰을 실행하기 위한 룰 엔진을 포함할 수 있고, 룰 내의 세부 동작, 즉 실행 또는 조건을 실행하기 위한 어플리케이션을 더 포함할 수 있다. 이에 따라 제어부(510)는 수신된 룰에서 자신이 수행할 동작을 판단하고, 동작이 완료될 때, 수신한 룰을 다시 통신 인터페이스부(500)를 통해 후순위 동작을 수행하기 위한 주변 장치로 건네줄 수 있다.
동작 수행부(520)는 룰에서 자신이 수행할 동작을 수행한다. 예를 들어, 사용자 장치 1(100-1)이 "내가 집에 도착했는지"를 감지하는 동작을 수행해야 한다면, 동작 수행부(520)는 센싱부가 될 수 있다. 예를 들어, 동작 수행부(520)는 자이로 센서 등을 포함할 수 있다. 물론 집에 도착했는지를 판단하기 위하여 자이로 센서 이외에도 GPS를 이용하는 GPS 수신 모듈이나, 측위 정보를 이용하는 다양한 기능 블록이 될 수 있을 것이다. 이러한 동작 수행부(520)는 제어부(510)에 저장된 어플리케이션의 실행에 따라 동작할 수 있을 것이다. 예를 들어, 동작 수행부(520)에서 제어부(510)로 센싱값을 전송해 주면, 제어부(510)는 수신된 센싱값을 통해 이벤트가 감지되었음을 인지하게 된다. 이에 따라 제어부(510)는 주변장치로 룰을 전달해 줄 수 있게 된다.
물론 동작 수행부(520)는 위의 센서 이외에 다양한 것이 가능할 수 있다. 가령 온도계를 구비한 에어컨의 경우, "30도 이상인지"를 감지하기 위한 동작을 수행하는 온도계가 동작 수행부(520)의 역할을 수행할 수 있다. 또한 TV의 경우, 가령 "사용자 음성이 인식되면"이라는 동작을 수행하기 위한 음성 인식부, 즉 마이크로폰이 동작 수행부(520)가 될 수 있을 것이다. 그 이외에도 냉장고의 경우, "9시간이 지나면"이라는 동작을 수행해야 하는 경우라면, 이를 감지하기 위한 타이머가 동작 수행부(520)의 역할을 수행할 수 있을 것이다.
저장부(530)는 제어부(510)의 제어하에 처리되는 다양한 데이터를 임시 저장하고, 제어부(510)의 요청시 이를 출력할 수 있다. 또한 저장부(530)는 수신된 룰을 저장하고, 저장한 룰을 제어부(510)의 요청시 제공해 줄 수 있다. 뿐만 아니라 저장부(530)는 룰 내의 조건 및 실행에 해당되는 동작과 관련한 어플리케이션을 저장하고 이를 제어부(510)에 제공해 줄 수도 있을 것이다. 이러한 저장부(530)는 RAM과 같은 휘발성 메모리로 이루어지는 것이 바람직하지만, ROM과 같은 비휘발성 메모리를 포함할 수도 있을 것이다.
도 6은 도 1의 사용자 장치 1 또는 사용자 장치 2의 다른 구조를 나타내는 블록다이어그램이다.
도 6에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 사용자 장치 1(100-1) 또는 사용자 장치 2(100-2)(이하, 사용자 장치 1로 설명함)는 통신 인터페이스부(600), 저장부(610), 제어부(620), 룰 실행부(630), 동작 수행부(640) 및 디스플레이부(650)의 일부 또는 전부를 포함할 수 있다.
여기서, 일부 또는 전부를 포함한다는 것은 디스플레이부(650)와 같은 일부 구성요소가 생략되어 구성될 수 있거나, 저장부(610) 및 룰 실행부(630)와 같은 일부 구성요소가 제어부(620)와 같은 다른 구성요소에 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
도 6의 사용자 장치 1(100-1')을 도 5의 사용자 장치 1(100-1)과 비교해 볼 때, 도 6의 통신 인터페이스부(600), 동작 수행부(640)는 도 5의 통신 인터페이스부(500) 및 동작 수행부(520)와 크게 다르지 않으므로 그 내용들로 대신한다.
또한 도 6의 저장부(610), 제어부(620) 및 룰 실행부(630)는 도 5의 제어부(510)와 동일 또는 유사한 동작을 수행한다고 볼 수 있다. 다만, 도 5는 하나의 소프트웨어를 실행시켜 동작하거나, 룰 처리만을 소프트웨어로 실행시켜 동작하는 것이라면, 도 6은 하드웨어적으로 분리될 수 있는 것을 보여준다. 다시 말해, 저장부(610)는 서비스제공장치(120)에서 제공하는 실행 및 조건에 관련된 어플리케이션을 저장할 수 있다. 또한 룰 실행부(630)는 SW 모듈의 룰 엔진을 포함하거나 하드웨어 프로세서를 포함할 수 있다. 이에 따라 제어부(620)는 룰이 수신되면, 룰 실행부(630)를 실행시켜 룰에서 자신이 수행할 동작을 판단할 수 있고, 실행 또는 조건에 해당되는 동작을 위하여 저장부(610)에 저장된 어플리케이션을 이용할 수 있다. 그리고 동작 수행부(640)는 제어부(620)의 제어에 따라 실행 또는 조건에 해당되는 동작을 수행한다. 예를 들어, 온도를 감지하는 동작이면 동작 수행부(640)는 온도 감지 센서를 포함할 수 있다. 나아가, 동작 수행부(640)는 온도가 30도 이상인지 판단하는 구체적인 동작도 더 수행하여 결과를 제어부(620)에 전달할 수 있다. 제어부(620)는 수신 결과에 따라 동작이 완료되었다고 판단되면, 통신 인터페이스부(600)를 제어하여 후순위 동작을 수행할 주변 장치로 룰을 건네줄 수 있을 것이다.
디스플레이부(650)는 영상표시가 가능한 장치의 경우, 룰 저작을 위해 요구될 수 있다. 예를 들어, 디스플레이부(650)는 도 1의 서비스제공장치(120)에서 제공하는 웹 페이지(120b)를 표시하고, 사용자가 실행 및 조건, 더 나아가 2개 이상의 조건일 때 연산자를 추가로 설정할 수 있도록 한다. 사용자의 직관성이 있는 룰을 저작하기 위하여, 디스플레이부(650)는 실행에 해당되는 제1 영역을 먼저 표시하고, 제1 영역의 실행에 해당되는 동작이 먼저 설정된 후, 조건에 해당되는 동작을 설정하기 위한 제2 영역을 표시해 줄 수 있을 것이다. 좀더 정확히 말해, 실행에 해당되는 동작이 먼저 설정될 수 있도록 동작한다고 볼 수 있다. 가령, 조건에 해당되는 동작을 제2 영역에서 설정하려 할 때, 사용자에게 제1 영역의 정보를 먼저 설정하라고 알릴 수 있을 것이다.
한편, 본 발명의 실시예에 따라 도 6은 다양하게 구성될 수 있다. 다시 말해, 저장부(610)는 휘발성 또는 비휘발성 메모리이고, 룰 실행부(630)는 비휘발성 메모리일 수 있다. 여기서, 휘발성 메모리는 RAM을 포함하고, 비휘발성 메모리는 마스크 ROM, EPROM, EEPROM 등을 포함할 수 있다. 그리고, 제어부(620)는 CPU와 휘발성 메모리를 포함할 수 있다. 이에 따라, CPU는 저장부(610)에 저장된 어플리케이션을 제어부(620) 내의 휘발성 메모리에 저장한 후 실행시킬 수 있고, 나아가 룰 실행부(630)의 룰 엔진 관련 프로그램을 제어부(620) 내의 휘발성 메모리에 저장한 후 실행시킬 수 있을 것이다.
도 7은 도 1의 서비스제공장치의 구조를 나타내는 블록다이어그램이다.
도 7에 도시된 바와 같이, 본 발명의 실시예에 따른 서비스제공장치(120)는 프로그램 관리부(700), 동작 관리부(710) 및 장치 관리부(730)의 일부 또는 전부를 포함하며, 여기서 일부 또는 전부의 의미는 앞서와 동일하다.
프로그램 관리부(700)는 장치의 동작 수행에 관계된 룰 저작을 위해 웹 페이지(120b)를 사용자에게 제공하는 역할을 수행할 수 있다. 그리고, 사용자가 저장 명령을 요청하거나 룰에 대한 실행 명령이 있으면 이를 동작 관리부(710)에 알릴 수 있다.
또한 동작 관리부(710)는 서비스제공장치(120)의 전반적인 제어 동작을 수행할 수 있다. 예를 들어, 도 1의 서드파티장치(130)에서 제공하는 어플리케이션을 저장 및 관리할 수 있고, 프로그램 관리부(700)의 저장 명령 및 실행 명령에 따라 장치 관리부(730)를 제어하여 어플리케이션을 도 1의 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)로 제공하도록 하고, 사용자가 저작한 룰을 사용자 장치 1(100-1)로 전송하도록 할 수 있다.
뿐만 아니라, 동작 관리부(710)는 가령 제어부의 일종으로서 사용자가 룰 내의 동작을 수행하기 위한 장치를 지정하지 않은 경우, 룰 내의 동작을 파악하여 사용자가 등록한 장치 중 하나를 자동으로 지정할 수 있다. 이는 사용자를 중심으로 한 사용자 수준의 추상화된 간단한 룰 저작에 관계된 것으로서 앞서 충분히 설명하였으므로 더 이상의 설명은 생략한다.
또한 장치 관리부(730)는 가령 통신 인터페이스의 일종으로서, 동작 관리부(710)의 제어에 따라 룰 내의 선순위 동작을 수행하기 위해 장치 또는 자동으로 지정된 장치로 룰을 전송하고, 이외에 실행 및 조건에 해당되는 동작과 관련한 어플리케이션을 전송하는 역할을 수행할 수 있을 것이다.
도 8은 본 발명의 실시예에 따른 에코시스템을 이용한 서비스 과정을 나타내는 도면이다.
도 8을 참조하면, 본 발명의 실시예에 따른 서비스제공장치(120)는 사용자에 의해 저작된 룰을 저장할 수 있다(S800). 그리고 사용자로부터 저장 명령이 있을 때 룰에 포함된 동작 즉 실행과 조건에 해당되는 동작을 각각 실행하기 위한 장치로 동작 관련 프로그램, 가령 어플리케이션을 전송해 줄 수 있다(S810, S820). 예를 들어, 서비스제공장치(120)는 룰이 저장되면 저장된 룰을 분석하여 실행과 조건 동작에 해당되는 어플리케이션이 무엇이고, 해당 동작을 수행하기 위한 장치가 무엇인지 판단할 수 있다.
서비스제공장치(120)에서 동작 관련 프로그램을 전송하면, 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)는 수신된 프로그램을 저장한다(S830).
이후, 서비스제공장치(120)에서 저작된 룰에 대한 실행 명령이 있으면, 서비스제공장치(120)는 룰 내의 선순위 동작을 수행하는 사용자 장치 1(100-1)로 룰을 전송한다(S840).
그러면 사용자 장치 1(100-1)은 가령 내부의 룰 엔진을 실행하여 룰을 분석하고, 자신이 수행할 동작을 판단하게 되며, 이어 해당 동작에 대한 이벤트가 발생하고 완료되는지를 감지한다(S850).
만약 동작이 완료되면 사용자 장치 1(100-1)은 해당 룰은 차순위 동작을 수행하기 위한 사용자 장치 2(100-2)로 건네준다. 이의 과정에서, 사용자 장치 1(100-1)은 해당 룰에 정보를 부가하여 전송할 수 있다. 이와 같이 해당 룰에 정보가 부가되는 경우, 룰은 갱신된 룰이 될 수 있다.
도 9A는 도 5의 구조를 갖는 사용자 장치 1 또는 사용자 장치 2의 내부 동작을 나타내는 도면이다.
설명의 편의상 도 9A를 도 5와 함께 참조하면, 본 발명의 실시예에 따른 사용자 장치 1(100-1)의 제어부(510)는 조건 또는 실행에 해당되는 동작을 실행시키는 어플리케이션 즉 모듈(510-1), 룰 실행을 위한 프로그램의 일부인 서비스 클라이언트(client)(510-2) 및 룰 엔진(510-3)을 포함할 수 있다.
여기서, 서비스 클라이언트(510-2)는 모듈(510-1)과 이벤트 정보를 처리하기 위한 인터페이스 역할을 수행하고, 룰 엔진(510-3)은 룰의 분석 등에 관련된 핵심 동작을 수행하는 역할을 수행한다고 볼 수 있다.
서비스 클라이언트(510-2)는 가령 도 5의 통신 인터페이스부(500)에서 제공한 룰을 룰 엔진(510-3)으로 전달한다(S901).
이어 룰 엔진(510-3)은 수신된 룰을 분석하고, 자신의 동작 즉 태스크를 추출한다(S903).
이후 룰 엔진(510-3)은 추출한 동작을 실행시키기 위하여 서비스 클라이언트(510-2)에 동작 즉 태스크 실행을 요청한다(S905).
서비스 클라이언트(510-2)는 해당 동작의 수행에 관계된 모듈(510-1)을 실행시킨다(S907).
그러면 해당 모듈(510-1)은 자신의 동작이 실행될 때, 서비스 클라이언트(510-2)에 알리고, 서비스 클라이언트(510-2)는 발생된 팩트를 룰 엔진(510-3)에 전달한다(S909).
예를 들어, 룰 내의 "움직임이 감지되면"이라는 조건에 해당되는 동작에서, 모듈(510-1)이 도 5의 동작 수행부(520) 내의 센서가 제공하는 신호를 통해 움직임을 감지하였다면, 감지된 정보를 서비스 클라이언트(510-2)에 제공하고, 서비스 클라이언트(510-2)는 해당 정보를 재가공하여 룰 엔진(510-3)으로 전달한다. 이때, 움직임이 감지되었다는 정보는 이벤트(Event)가 되고, 재가공된 정보는 팩트(Fact)가 된다. 가령 팩트는 이벤트 정보에 시간 등의 부가 정보가 삽입된 정보일 수 있다. 가령 스마트폰과 같은 단말이 "흔들렸는지" 감지하는 것이라면, 서비스 클라이언트(510-2)는 "흔들림이 발생했다는 정보, 그 흔들림이 발생한 시간 및 발생한 장소, 더 나아가 어느 정도 흔들렸는지에 대한 센싱값을 팩트로서 룰 엔진(510-3)에 전달할 수 있을 것이다. 또는 스마트폰과 같은 단말이 "문자가 왔는지 판단"하는 경우라면, 팩트는 문자가 왔다는 정보, 누구한테 왔는지에 대한 정보, 문자 내용, 문자가 발송 또는 수신된 장소와 시간에 대한 정보를 포함할 수도 있을 것이다.
물론 이러한 팩트는 주변장치에서 전송해 줄 수도 있다. 예를 들어, 현재 수신된 룰의 판단 결과 룰이 수신된 사용자 장치 가령 에어컨에서 주변 온도를 측정해야 하지만 온도를 감지하기 위한 센서가 없을 때 또는 고장일 때, 주변 장치로부터 온도 센싱값 등을 팩트로서 수신할 수 있을 것이다. 이는 사용자 장치의 요청에 의한 것일 수 있지만, 주변장치가 직접 룰을 수신해 사용자 장치의 조건에 해당하는 동작을 룰에서 판단함으로써 이루어질 수도 있을 것이다. 이와 같이 팩트의 처리 과정은 다양하게 이루어질 수 있으므로 본 발명의 실시예에서는 위의 내용에 특별히 한정하지는 않을 것이다.
이어 룰 엔진(510-3)은 수신된 팩트와 매칭되는 룰을 검색하여 검색한 룰을 갱신한다(S911, S913). 예를 들어, 복수의 룰을 처리한다면 S911 및 S913 단계가 필요할 수 있지만, 하나의 룰을 처리한다면 S911 단계는 생략되어도 무관하다.
또한 룰 엔진(510-3)은 서비스 클라이언트(510-2)로 룰을 차 순위 동작을 수행하기 위한 장치로 전달해 줄 것을 요청한다(S915).
이에 따라, 서비스 클라이언트(510-2)는 도 5의 통신 인터페이스부(500)를 통해 룰을 차 순위 동작을 수행하기 위한 장치로 전달할 수 있다(S917).
이어 서비스 클라이어트(510-2)는 룰 엔진(510-3)에 해당 팩트를 삭제하도록 요청하고, 모듈(510-1)에 종료를 지시할 수 있을 것이다(S919, S921).
도 9B는 도 6의 사용자 장치 1 또는 사용자 장치 2의 내부 동작을 나타내는 도면이다.
설명의 편의상 도 9B를 도 6과 함께 참조하면, 본 발명의 실시예에 따른 사용자 장치 1(100-1)의 제어부(620)는 수신된 룰을 룰 실행부(630)로 전달할 수 있다(S951).
룰 실행부(630)는 룰 엔진을 실행시켜 룰을 분석하여 동작(Task)을 판단(또는 추출)할 수 있다(S953). 또한 롤 실행부(630)는 제어부(620)로 동작 실행을 요청한다(S955).
이의 과정에서 제어부(620)는 저장부(610)에 저장된 어플리케이션 즉 모듈을 실행시켜 센서와 같은 동작 수행부(640)를 동작시킨다(S957). 예를 들어, 동작 수행부(640)가 센싱부라고 가정하면, 제어부(620)는 센싱부를 동작시키기 위해 저장부(610)에 저장된 어플리케이션을 이용할 수 있을 것이다.
그리고, 저장부(610) 내의 어플리케이션은 센싱부의 센서를 통해 센싱 신호가 감지되는지를 판단하고 센싱 신호가 감지되면 이벤트가 발생된 것으로 판단하여 이를 제어부(620)에 알리고, 제어부(620)는 발생된 이벤트를 다시 룰 실행부(630)로 전달한다(S959).
그리고, 룰 실행부(630)는 이벤트가 수신되면, 선순위 동작이 완료되었음을 알리는 정보를 룰에 삽입함으로써 룰을 갱신할 수 있다(S961).
그리고 갱신된 룰을 제어부(620)로 전달하면서 룰 핸드오버를 요청할 수 있다(S963).
제어부(620)는 룰 실행부(630)의 요청에 따라 차 순위 동작을 수행하기 위한 장치로 룰을 전달한다(S965).
그리고, 제어부(620)는 룰 전달이 완료되면 이를 다시 룰 실행부(630)로 알림으로써 룰 실행부(630)는 이벤트에 관련된 팩트를 삭제할 수 있다(S967, S969).
이후, 룰 실행부(930)는 제어부(620)로 모듈 종료를 요청하고, 요청에 따라 제어부(620)는 저장부(610) 내의 모듈에 대한 실행을 종료시킬 수 있다(S973).
한편, 도 9B의 동작은 다양하게 변형될 수 있다. 다시 말해, 제어부(620)는 비휘발성 메모리에 저장된 모듈 즉 어플리케이션과 룰 실행부(630)에 저장된 룰 실행 프로그램을 별도의 휘발성 메모리에 저장한 후 이를 실행시킬 수 있다. 이의 과정에서 제어부(620)는 정보의 신속한 처리를 위하여 내부의 휘발성 메모리를 이용할 수 있으므로, 본 발명의 실시예에서는 위의 내용에 특별히 한정하지는 않을 것이다.
도 10은 도 1에 도시된 사용자 장치 1 또는 사용자 장치 2의 구동 과정을 나타내는 흐름도이다.
설명의 편의상 도 10을 도 1과 함께 참조하면, 가령 사용자 장치 1(100-1)은 장치의 동작 수행과 관련해 사용자가 저작한 룰에 포함된 선순위 동작을 실행하기 위해 외부 장치, 즉 서비스제공장치(120)로부터 룰을 수신한다(S1000).
또한 사용자 장치 1(100-1)은 수신한 룰에 포함된 선순위 동작을 판단하고, 판단 결과에 근거해 선순위 동작을 수행한다(S1010). 다시 말해, 사용자 장치 1(100-1)은 수신한 룰에서 자신이 수행할 선순위 동작을 판단하고, 판단한 선순위 동작이 수행되고 완료되는지 감지할 수 있다. 예를 들어, "집에 도착하면"이라는 조건에 해당되는 선순위 동작을 수행하기 위하여, 휴대폰과 같은 사용자 장치 1(100-1)은 자이로 센서를 통해 집에 도착하는지 감지할 수 있다.
선순위 동작이 완료되면, 룰에 포함된 차순위 동작을 수행하기 위한 주변장치로 해당 룰을 전송해 준다(S1020). 예를 들어, "도어락의 문 잠금을 해제하라"라는 실행에 해당되는 후순위 동작을 수행할 수 있도록 휴대폰은 도어락으로 룰을 전송할 수 있다.
그 이후에도 가령, 도어락은 문 잠금이 해제되는지 감지하고, 잠금이 해제될 때, 후속 동작이 있다면, 가령 "거실의 등을 켜라"라는 동작이 있다면, 거실의 조명 장치로 룰을 다시 전달할 수 있을 것이다.
도 11은 도 1에 도시된 사용자 장치 1 또는 사용자 장치 2의 다른 구동 과정을 나타내는 흐름도이다.
설명의 편의상 도 10을 도 1과 함께 참조하면, 가령 사용자 장치 1(100-1)은 사용자가 저작한 룰에 포함된 동작을 수행하기 위한 프로그램을 저장한다(S1100). 이와 같은 저장 동작은 룰의 저장 명령이 있을 때 이루어질 수 있다.
이어 저작한 룰의 실행 요청에 따라, 룰에서 선순위에 있는 동작을 실행하기 위한 장치, 즉 사용자 장치 1(100-1)이 서비스제공장치로부터 해당 룰을 수신한다(S1110).
또한 사용자 장치 1(100-1)은 수신한 룰에 포함된 선순위 동작을 판단하고, 판단 결과에 근거해 선순위 동작을 수행한다(S1120). 좀더 정확히 말해, 수신한 룰에서 자신이 수행할 선순위 동작을 판단한다. 그리고 사용자 장치 1(100-1)은 판단한 동작이 수행되고 완료되는지 감지한다.
선순위 동작이 완료되면, 차순위 동작을 실행하기 위한 주변 장치로 룰을 전송한다(S1140). 이때 룰을 정보가 부가되어 갱신된 룰의 형태로 제공될 수 있다.
도 12는 도 1의 서비스제공장치의 구동 과정을 나타내는 흐름도이다.
설명의 편의상 도 12를 도 1과 함께 참조하면, 본 발명의 실시예에 따른 서비스제공장치(120)는 룰 저작을 위한 웹 페이지를 사용자에게 제공한다(S1200).
이어 서비스제공장치(120)는 사용자가 저작한 룰의 저장 명령에 따라, 룰에 정의된 동작을 실행하기 위한 적어도 하나의 사용자 장치로 룰 관련 프로그램을 전송한다(S1210). 여기서, 룰 관련 프로그램은 동작을 구성하는 실행 및 조건에 관련되는 프로그램을 의미한다.
또한 서비스제공장치(120)는 저작한 룰에 대한 사용자의 실행 명령에 따라 룰에 정의된 선순위 동작을 수행하기 위한 장치로 룰을 전송한다(S1220). 도 1에서 볼 때, 선순위 동작을 수행하기 위한 장치는 사용자 장치 1(100-1)이 된다.
도 13은 도 1의 서비스제공장치의 다른 구동 과정을 나타내는 흐름도로서, 사용자 중심의 추상화된 간단한 룰 저작 과정에 관련된다.
설명의 편의상 도 13을 도 1과 함께 참조하면, 본 발명의 실시예에 따른 서비스제공장치(120)는 룰 저작을 위한 웹 페이지를 사용자에게 제공한다(S1300).
이어 서비스제공장치(120)는 저작한 룰에 포함되는 동작을 수행하기 위한 장치의 지정이 없는 경우, 룰 내의 동작을 파악하여 사용자가 등록한 장치 중 하나를 자동으로 지정한다(S1310). 이의 과정에서 서비스제공장치(120)는 사용자 상황을 인식하여 장치를 지정할 수 있다. 이와 관련해서는 앞서 충분히 설명하였으므로 더 이상의 설명은 생략한다.
또한 서비스제공장치(120)는 선순위 동작을 수행하기 위한 자동 지정된 장치로 룰을 전송한다(S1320).
도 14A 내지 도 14D는 2개 이상의 조건을 가질 때, 연산자를 이용한 룰 처리 과정을 설명하기 위한 도면으로, 도 14A는 A→B, 도 14B는 A&B→C, 도 14C는 A│B→C, 도 14D는 A*B→C의 연산을 통한 룰 처리과정을 나타낸다. 여기서, '&'(AND)는 순차적인 룰(ex. A이고 B이면, C해라.)을 나타내고, '│'(OR)는 선택적인 룰(ex. A이거나 B이면, C해라.)을 나타내며, '*'(Simultaneous)는 동시적인 룰(ex. A와 B가 동시에 발생하면, C해라.)을 나타낸다.
이하, 도 1의 사용자 장치 1(100-1) 및 사용자 장치 2(100-2)는 휴대폰으로, 서비스제공장치(120)는 서버로 가정하여 설명하도록 한다.
도 14A를 참조하면, 서버(120')는 사용자가 저작한 룰을 분석 후 필요한 실행 및 조건 어플리케이션 목록을 휴대폰 A(100-1'') 및 휴대폰 B(100-2'')로 전송해 줄 수 있다(2.1 참조).
그리고 휴대폰 A(100-1'') 및 휴대폰 B(100-2'')는 실행 및 조건에 관련된 어플리케이션을 요청하여 설치한다(2.2 참조).
서버(120')는 룰의 선순위 동작을 수행하는 휴대폰 A(100-1'')에게 룰을 전송한다. 휴대폰 A(100-1'')가 룰을 수신하여 자신이 수행해야 동작을 실행한다(2.3 참조).
예를 들어, 휴대폰 A(100-1'')는 자신이 수행해야 할 동작(task)이 와이파이(혹은 와이파이 모듈)가 켜졌는지를 감지하는 것이라면, 와이파이가 켜졌다는 게 감지되면 룰을 휴대폰 B(100-2'')로 전송해 주게 된다.
그러면, 휴대폰 B(100-2'')는 차순위(또는 후순위) 동작으로서 가령 위치추적을 위하여 GPS 모듈을 켜고, 룰의 선순위 동작을 담당하는 휴대폰 A(100-1'')에게 룰을 전달한다. 다시 말해, 룰 처리가 정상적으로 이루어졌음을 알린다.
또한 도 14B에서와 같이 휴대폰 A(100-1'')와 휴대폰 B(100-2'')가 AND 조건에 따라 순차적인 동작을 수행하고(2.3 ~ 2.5 참조), 휴대폰 C(100-3'')는 블루투스(BT) 모듈을 실행시킨 후 A로 룰을 전달하여 룰이 정상적으로 처리되었음을 알린다.
나아가 도 14C에서와 같이 OR 연산자를 가지는 휴대폰 A(100-1'')와 휴대폰 B(100-2'')는 동시에 서버(120')로부터 룰을 다운로드 받는다(2.3 참조).
그리고 휴대폰 B(100-2'')가 조건을 만족하는 경우, 즉 와이파이가 실행되었는지 감지되는 경우, OR 연산자를 가지는 룰이기 때문에 휴대폰 A(100-1'')는 바로 실행(Action)에 해당되는 동작을 수행하는 휴대폰 C(100-3'')로 룰을 전송한다. 휴대폰 C(100-3'')는 블루투스를 켜고 휴대폰 B(100-2'')로 룰을 전송하여 룰 처리가 정상적으로 되었음을 알린다. 이때 만약 룰이 1회성 룰이라면 1회 룰을 수행하고 룰을 삭제한다.
도 14D를 참조하면, 룰이 '*' 연산자(동시)를 가지는 룰이기 때문에 휴대폰 A(100-1'')와 휴대폰 B(100-2'')는 동시에 서버(120')로부터 룰을 수신한다(2.3 참조). 휴대폰 A(100-1'')는 와이파이가 켜지는지를 감지하고, 휴대폰 B(100-2'')는 GPS가 켜지는지를 감지한다. 휴대폰 A(100-1'')와 휴대폰 B(100-2'')에서 각 동작이 감지되면 감지된 시간을 룰에 기록한 후 룰을 휴대폰 A(100-1'')는 휴대폰 B(100-2'')로, 휴대폰 B(100-2'')는 휴대폰 A(100-1'')로 전송한다. 휴대폰 A(100-1'')와 휴대폰 B(100-2'')는 자신의 동작이 발생된 시간과 룰에 기록된 다른 휴대폰의 동작이 발생된 시간을 비교해서 동시에 일어났다고 판단이 되면 휴대폰 C(100-3'')로 룰을 전송한다.
한편, 도 14B 내지 도 14D는 도 14A에서와 2.1 및 2.2의 동작을 포함할 수도 있을 것이다.
도 15는 본 발명의 다른 실시예에 따른 에코 시스템을 나타내는 도면이다.
도 15를 참조하면, 본 발명의 다른 실시예에 따른 에코 시스템(90')은 사용자 장치 1(1500-1), 사용자 장치 2(1500-2), 중계장치(1500-3), 통신망(1510), 서비스제공장치(1520)를 포함할 수 있다.
도 1과 비교해 볼 때, 도 15의 에코 시스템(90')은 가령 댁내(A)에 홈 서버나 홈 게이트웨이와 같은 중계장치(1500-3)를 구비함으로써 클라우드 서버와 같은 서비스제공장치(1520)의 부하를 줄일 수 있다는 점에서 차이가 있다.
예를 들어, 중계장치(1500-3)는 가령 홈 서버로서, 댁내(A)에서 발생하는 이벤트에 대하여는 서비스제공장치(1520)가 아닌 자체적으로 관리함으로써 서비스제공장치(1520)의 부하를 줄일 수 있는 것이다.
서비스제공장치(1520)는 가령 클라우드 서버로서, 각 사용자별로 계정을 가질 수 있고, 각 계정별로 사용자가 소유한 기기, 예를 들어 댁내(A)의 모든 장치들에 대한 정보를 저장 및 관리하고, 현재 실행되고 있는 룰 정보 등을 관리할 수 있다.
기타 사용자 장치 1(1500-1), 사용자 장치 2(1500-2), 통신망(1510), 서비스제공장치(1520)와 관련해서는 앞서 충분히 설명하였으므로 더 이상의 설명은 생략한다.
도 16은 본 발명의 또 다른 실시예에 따른 에코 시스템을 나타내는 도면이다.
도 16을 참조하면, 본 발명의 또 다른 실시예에 따른 에코 시스템(90”)은 선순위 동작장치(1600-1), 후순위 동작장치(1600-2), 통신망(1610), 서비스제공장치(1620)를 포함할 수 있다.
도 1과 비교해 볼 때, 도 16의 선순위 동작장치(1600-1)는 사용자의 룰 저작에 따라 선순위 동작을 수행해야 하지만, 통신망(1610)을 통해 룰을 직접 수신하기 위한 하드웨어 모듈 또는 프로그램과 같은 사양이 부족한 경우에 해당된다. 예를 들어, 블루투스 통신을 위한 통신 모듈만을 가진 경우에는 CDMA 통신이나 와이파이 통신을 수행하는 통신망(1610)으로부터 직접 룰을 수신할 수 없다.
이의 경우, 선순위 동작장치(1600-1)는 통신망(1610)과 통신이 가능한 후순위 동작장치(1600-2)가 있다면, 주변의 후순위 동작장치(1600-2)를 통해 룰을 전달받을 수 있다.
이후, 선순위 동작장치(1600-1)는 해당 룰을 처리한 후, 후순위 동작장치(1600-2)로 다시 전달해 주는 것이 가능할 수 있다. 이의 과정에서 가령 후순위 동작장치(1600-2)가 선순위 동작장치(1600-1)와 동시에 동작 수행 가능한 경우라면, 후순위 동작장치(1600-2)는 선순위 동작장치(1600-1)로 해당 룰을 전달한 후 자신도 동작을 수행할 수 있을 것이다. 동시 동작과 관련해서는 앞서 도 14D를 통해 살펴본 바 있다.
서비스제공장치(1620)는 사용자가 룰을 저작하고 특정 동작 즉 조건에 해당되는 동작이나 실행에 해당되는 동작을 수행할 장치를 지정하는 경우, 내부에 저장된 장치 정보를 근거로 각 장치들의 사양에 관련된 정보를 확인해 볼 수 있다.
그 결과 선순위 동작장치(1600-1)가 통신망(1610)을 통해 룰 수신이 불가하다고 판단될 때, 후순위 동작장치(1600-2)의 사양에 대한 정보를 확인하여 룰 수신이 가능하면 해당 후순위 동작장치(1600-2)로 룰을 전달하도록 통신망(1610)에 요청하고, 후순위 동작장치(1600-2)는 선순위 동작장치(1600-1)로의 전달 여부를 판단하여 해당 룰을 전달해 줄 수 있다.
예를 들어, 후순위 동작장치(1600-2)는 전달한 룰을 확인한 결과 선순위 동작의 완료 정보가 없다면, 이를 근거로 선순위 동작장치(1600-1)로 해당 룰을 전달할 수 있다. 또는 서비스제공장치(1620)에서 선순위 동작장치(1600-1)로 룰을 전달하라는 별도의 정보를 제공하는 경우 이를 근거로 룰을 전달할 수도 있다. 나아가, 후순위 동작장치(1600-2)는 룰에서 자신이 후순위인 것으로 판단되는데, 선순위 동작장치(1600-1)와 같은 주변 장치로부터 룰을 수신하지 않고 통신망(1610)으로부터 수신하였다면, 선순위 동작장치(1600-1)로 룰을 전달할 수도 있다. 이와 같은 방식으로 본 발명의 실시예에 따른 선순위 동작장치(1600-1)는 주변 장치로부터 룰을 전달받아 선순위 동작을 수행하는 것도 얼마든지 가능할 수 있다.
기타 선순위 동작장치(1600-1), 후순위 동작장치(1600-2), 통신망(1610) 및 서비스제공장치(1620)와 관련해서는 도 1의 사용자 장치(100-1, 100-2), 통신망(110), 서비스제공장치(120)와 다르지 않으므로 더 이상의 설명은 생략한다.
한편, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 비일시적 저장매체(non-transitory computer readable media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 레지스터, 캐시(cache), 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리 카드, ROM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100-1, 100-2: 사용자 장치 110: 통신망
120: 서비스제공장치 130: 서드파티장치
500, 600: 통신 인터페이스부 510, 620: 제어부
510a, 630: 룰 실행부 520, 640: 동작 수행부
530, 610: 저장부 650: 디스플레이부
700: 프로그램 관리부 710: 동작 관리부
720: 장치 관리부

Claims (20)

  1. 사용자 장치에 있어서,
    장치의 동작 수행과 관련한 룰(Rule)을 수신하여 저장하는 저장부; 및
    상기 저장한 룰에 포함된 선순위 동작의 판단 결과에 근거해 상기 선순위 동작을 수행하도록 제어하고, 상기 선순위 동작이 완료되면 상기 룰에 포함된 차순위 동작을 수행하기 위한 주변 장치로 상기 룰이 전송되도록 제어하는 제어부;를
    포함하는 사용자 장치.
  2. 제1항에 있어서,
    상기 저장부는,
    상기 룰에 대한 실행 명령을 입력받은 서비스제공장치 또는 상기 선순위 동작보다 앞선 동작을 수행한 타 사용자 장치로부터 상기 룰을 수신하여 저장하는 것을 특징으로 하는 사용자 장치.
  3. 제1항에 있어서,
    상기 저장부는,
    상기 선순위 동작을 실행하기 위한 프로그램을 더 저장하며,
    상기 제어부는,
    상기 선순위 동작의 수행과 관련해 상기 저장한 프로그램을 실행시키는 것을 특징으로 하는 사용자 장치.
  4. 제3항에 있어서,
    상기 제어부는, 상기 룰에 대한 저장 명령이 있을 때, 상기 프로그램을 통신 인터페이스부를 통해 서비스제공장치로부터 수신하여 상기 저장부에 저장하는 것을 특징으로 하는 사용자 장치.
  5. 제1항에 있어서,
    상기 제어부는, 상기 룰을 상기 주변 장치로 전송할 때 상기 차순위 동작을 수행하기 위해 필요한 부가 정보를 더 제공하는 것을 특징으로 하는 사용자 장치.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 선순위 동작은, 기 설정된 조건의 충족 여부를 판단하는 동작을 포함하고,
    상기 후순위 동작은 상기 조건이 충족되었을 때 실행할 제어 동작을 포함하며,
    상기 동작 수행부는 상기 조건의 충족 여부를 감지하기 위한 적어도 하나의 센서를 포함하는 사용자 장치.
  7. 사용자 장치의 구동방법에 있어서,
    장치의 동작 수행과 관련한 룰(Rule)을 수신하여 저장하는 단계; 및
    상기 저장한 룰에 포함된 선순위 동작의 판단 결과에 근거해 상기 선순위 동작을 수행하도록 제어하고, 상기 선순위 동작이 완료되면 상기 룰에 포함된 차순위 동작을 수행하기 위한 주변 장치로 상기 룰이 전송되도록 제어하는 단계;를
    포함하는 사용자 장치의 구동방법.
  8. 제7항에 있어서,
    상기 저장하는 단계는,
    상기 룰에 대한 실행 명령을 입력받은 서비스 제공 장치 또는 상기 선순위 동작보다 앞선 동작을 수행한 타 사용자 장치로부터 상기 룰을 수신하여 저장하는 것을 특징으로 하는 사용자 장치의 구동방법.
  9. 제7항에 있어서,
    상기 저장하는 단계는,
    상기 선순위 동작을 실행하기 위한 프로그램을 저장하는 단계;를 포함하며,
    상기 제어하는 단계는,
    상기 선순위 동작의 수행과 관련해 상기 저장한 프로그램을 실행시키는 것을 특징으로 하는 사용자 장치의 구동방법.
  10. 제9항에 있어서,
    상기 저장하는 단계는,
    상기 룰에 대한 저장 명령이 있을 때, 상기 프로그램을 통신 인터페이스부를 통해 서비스제공장치로부터 수신하여 저장하는 것을 특징으로 하는 사용자 장치의 구동방법.
  11. 제7항에 있어서,
    상기 제어하는 단계는,
    상기 룰을 상기 주변 장치로 전송할 때 상기 차순위 동작을 수행하기 위해 필요한 부가 정보를 더 제공하는 것을 특징으로 하는 사용자 장치의 구동방법.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서,
    상기 선순위 동작은, 기 설정된 조건의 충족 여부를 판단하는 동작을 포함하고,
    상기 후순위 동작은 상기 조건이 충족되었을 때 실행할 제어 동작을 포함하며,
    상기 동작을 수행하는 단계는, 상기 조건의 충족 여부를 감지하는 것을 특징으로 하는 사용자 장치의 구동방법.
  13. 장치의 동작 수행에 관계된 룰(Rule)의 저작을 위해 웹 페이지를 사용자에게 제공하는 프로그램 관리부;
    상기 저작한 룰에 포함되는 동작을 수행하기 위한 장치의 지정이 없는 경우, 상기 동작을 파악하여 상기 사용자의 등록 장치 중 하나를 자동으로 지정하는 동작 관리부; 및
    상기 룰에 포함된 선순위 동작을 수행하기 위하여 상기 지정된 장치로 상기 룰을 전송하는 장치 관리부;를
    포함하는 서비스제공장치.
  14. 제13항에 있어서,
    상기 동작 관리부는,
    상기 룰에 대한 저장 명령이 있을 때, 상기 룰에 정의된 동작을 실행하기 위한 적어도 하나의 사용자 장치로 상기 동작에 관련된 프로그램을 전송하도록 상기 장치 관리부를 제어하는 것을 특징으로 하는 서비스제공장치.
  15. 제13항에 있어서,
    상기 동작 관리부는,
    사용자로부터 상기 저작한 룰의 실행 명령이 있을 때, 상기 룰에 정의된 선순위 동작을 수행하기 위한 사용자 장치로 상기 룰을 전송하도록 상기 장치 관리부를 제어하는 것을 특징으로 하는 서비스제공장치.
  16. 제13항에 있어서,
    상기 동작 관리부는, 상기 사용자의 상황(context)을 인식하여 상기 장치를 자동 지정하는 것을 특징으로 하는 서비스제공장치.
  17. 장치의 동작 수행에 관계된 룰(Rule)의 저작을 위해 웹 페이지를 사용자에게 제공하는 단계;
    상기 저작한 룰에 포함되는 동작을 수행하기 위한 장치의 지정이 없는 경우, 상기 동작을 파악하여 상기 사용자의 등록 장치 중 하나를 자동 지정하는 단계; 및
    상기 룰에 포함된 선순위 동작을 수행하기 위하여 상기 자동 지정한 장치로 상기 룰을 전송하는 단계;를
    포함하는 서비스제공장치의 구동방법.
  18. 제17항에 있어서,
    사용자로부터 상기 저작한 룰의 저장 명령이 있을 때, 상기 룰에 정의된 동작을 실행하기 위한 적어도 하나의 사용자 장치로 상기 동작에 관련된 프로그램을 전송하는 단계;를 더 포함하는 것을 특징으로 하는 서비스제공장치의 구동방법.
  19. 제17항에 있어서,
    사용자로부터 상기 저작한 룰의 실행 명령이 있을 때, 상기 룰에 정의된 선순위 동작을 수행하기 위한 사용자 장치로 상기 룰을 전송하는 단계;를 더 포함하는 것을 특징으로 하는 서비스제공장치의 구동방법.
  20. 제17항에 있어서,
    상기 자동 지정하는 단계는 상기 사용자의 상황(context)을 인식하여 상기 장치를 자동 지정하는 것을 특징으로 하는 서비스제공장치의 구동방법.
KR1020140153082A 2014-11-05 2014-11-05 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법 Expired - Fee Related KR101943430B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140153082A KR101943430B1 (ko) 2014-11-05 2014-11-05 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법
PCT/KR2015/010921 WO2016072636A1 (en) 2014-11-05 2015-10-15 User device, driving method of user device, apparatus for providing service and driving method of apparatus for providing service
US14/884,149 US10627789B2 (en) 2014-11-05 2015-10-15 User device, driving method of user device, apparatus for providing service and driving method of apparatus for providing service
CN201510749557.XA CN105573128B (zh) 2014-11-05 2015-11-05 用户装置及其驱动方法、提供服务的设备及其驱动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140153082A KR101943430B1 (ko) 2014-11-05 2014-11-05 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법

Publications (2)

Publication Number Publication Date
KR20160053676A true KR20160053676A (ko) 2016-05-13
KR101943430B1 KR101943430B1 (ko) 2019-01-29

Family

ID=55852576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140153082A Expired - Fee Related KR101943430B1 (ko) 2014-11-05 2014-11-05 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법

Country Status (4)

Country Link
US (1) US10627789B2 (ko)
KR (1) KR101943430B1 (ko)
CN (1) CN105573128B (ko)
WO (1) WO2016072636A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11050829B2 (en) 2016-12-01 2021-06-29 Samsung Electronics Co., Ltd. Method for sharing information on conditional action and electronic device therefor
US12237942B2 (en) 2020-10-29 2025-02-25 Samsung Electronics Co., Ltd. Electronic device and method for determining device for performing task by electronic device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970138B2 (en) * 2017-05-09 2021-04-06 Microsoft Technology Licensing, Llc Modular applications using a common provisioning service
CN109392030B (zh) * 2017-08-02 2021-12-28 中国移动通信有限公司研究院 一种在基站之间进行切换的方法和无线网络
EP3460594A1 (en) * 2017-09-26 2019-03-27 Vestel Elektronik Sanayi ve Ticaret A.S. Systems and methods for controlling operation of a home appliance
KR102671741B1 (ko) * 2018-05-07 2024-06-04 구글 엘엘씨 다양한 연결 디바이스를 제어하기 위한 복합 그래픽 어시스턴트 인터페이스 제공
JP6931669B2 (ja) * 2019-03-19 2021-09-08 ミサワホーム株式会社 宅内機器制御システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014051982A1 (en) * 2012-09-27 2014-04-03 Motorola Mobility Llc Method and device with an augmented rules engine
US20140095690A1 (en) * 2012-09-28 2014-04-03 Alcatel-Lucent Usa Inc. Real time rules engine for policies orchestration in a mobile telecommunications network

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102208A (ja) * 1997-09-29 1999-04-13 Nissan Motor Co Ltd シーケンス処理方法およびこれに用いるシーケンスコントローラ
US20070037605A1 (en) * 2000-08-29 2007-02-15 Logan James D Methods and apparatus for controlling cellular and portable phones
US20030018508A1 (en) 2001-07-19 2003-01-23 Schwanke Robert W. Data-triggered workflow processes
KR100434545B1 (ko) 2002-03-15 2004-06-05 삼성전자주식회사 홈네트워크로 연결된 가전기기들을 제어하는 방법 및 장치
US20060184410A1 (en) * 2003-12-30 2006-08-17 Shankar Ramamurthy System and method for capture of user actions and use of capture data in business processes
US8217756B2 (en) 2004-09-01 2012-07-10 Microsoft Corporation Rule-based filtering and alerting
JP2006197061A (ja) 2005-01-12 2006-07-27 Matsushita Electric Ind Co Ltd 電気機器ネットワークシステムおよび電気機器
US8156500B2 (en) 2005-07-01 2012-04-10 Microsoft Corporation Real-time self tuning of planned actions in a distributed environment
FR2897186B1 (fr) 2006-02-06 2008-05-09 Somfy Sas Procede de communication par relais entre une telecommande nomade et des equipements domotiques.
US20070266421A1 (en) * 2006-05-12 2007-11-15 Redcannon, Inc. System, method and computer program product for centrally managing policies assignable to a plurality of portable end-point security devices over a network
US20080125101A1 (en) * 2006-08-03 2008-05-29 Nokia Corporation Method, Apparatus and Computer Program Product for Cross Triggering and Detection of Platform Dependent Resources, Features, Actions and Events
EP2056198A4 (en) * 2006-08-24 2010-08-18 Netcleus Systems Corp TASK PROCESSING DEVICE
US7669081B2 (en) * 2006-09-27 2010-02-23 Raytheon Company Systems and methods for scheduling, processing, and monitoring tasks
US8214351B2 (en) 2007-04-16 2012-07-03 International Business Machines Corporation Selecting rules engines for processing abstract rules based on functionality and cost
US8738383B2 (en) * 2007-06-07 2014-05-27 Aesynt Incorporated Remotely and interactively controlling semi-automatic devices
US8306634B2 (en) * 2008-12-23 2012-11-06 Samsung Electronics Co., Ltd. Adaptive and user location-based power saving system
US9838255B2 (en) * 2009-08-21 2017-12-05 Samsung Electronics Co., Ltd. Mobile demand response energy management system with proximity control
CN103052053B (zh) 2010-02-12 2016-03-02 华为技术有限公司 优先级业务处理方法、装置和系统
US8751432B2 (en) * 2010-09-02 2014-06-10 Anker Berg-Sonne Automated facilities management system
US8600914B2 (en) * 2010-11-30 2013-12-03 Red Hat, Inc. Left and right unlinking for a shared knowledge base
US10244500B2 (en) 2011-03-30 2019-03-26 Wei Lu Open wireless architecture (OWA) mobile cloud infrastructure and method
KR101978180B1 (ko) * 2011-06-09 2019-05-14 삼성전자주식회사 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템
US20130178990A1 (en) 2011-07-13 2013-07-11 Bradley Kayton Triangulated Rules Engine
KR20130037610A (ko) * 2011-10-06 2013-04-16 삼성전자주식회사 스마트 그리드 네트워크에서 명령 충돌을 방지하기 위한 장치 및 방법
US10552769B2 (en) * 2012-01-27 2020-02-04 Oracle International Corporation Status management framework in a distributed order orchestration system
KR101397471B1 (ko) 2012-10-16 2014-05-20 전자부품연구원 디바이스 플랫폼이 설치된 IoT 장치 및 IoT 어댑터

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014051982A1 (en) * 2012-09-27 2014-04-03 Motorola Mobility Llc Method and device with an augmented rules engine
US20140095690A1 (en) * 2012-09-28 2014-04-03 Alcatel-Lucent Usa Inc. Real time rules engine for policies orchestration in a mobile telecommunications network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11050829B2 (en) 2016-12-01 2021-06-29 Samsung Electronics Co., Ltd. Method for sharing information on conditional action and electronic device therefor
USRE50835E1 (en) 2016-12-01 2026-03-17 Samsung Electronics Co., Ltd. Method for sharing information on conditional action and electronic device therefor
US12237942B2 (en) 2020-10-29 2025-02-25 Samsung Electronics Co., Ltd. Electronic device and method for determining device for performing task by electronic device

Also Published As

Publication number Publication date
WO2016072636A1 (en) 2016-05-12
CN105573128A (zh) 2016-05-11
US10627789B2 (en) 2020-04-21
KR101943430B1 (ko) 2019-01-29
CN105573128B (zh) 2020-12-08
US20160124404A1 (en) 2016-05-05

Similar Documents

Publication Publication Date Title
KR101943430B1 (ko) 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법
US10970096B2 (en) Suggesting actions based on machine learning
US10789044B2 (en) End-to-end user experiences with a digital assistant
US9577692B2 (en) Subscriber identification module management method and electronic device supporting the same
EP2784666B1 (en) Method and device for displaying service pages for executing applications
US20130237152A1 (en) Methods and systems for hardware and software related to a near field communications task launcher
KR101995260B1 (ko) 앱 서비스 제공 방법 및 시스템
US20140195663A1 (en) Method and System for Providing Cloud-Based Common Distribution Applications
KR102173242B1 (ko) 근거리 무선 데이터 통신 시스템, 그 시스템에서의 정보 자동 설정 방법, 장치
JP2018537757A (ja) タッチスクリーン付き移動デバイスのロック及びロック解除のための方法及び移動デバイス
US20110246903A1 (en) Terminal apparatus, control system, and control method for controlling collaboration among a plurality of devices
JP2017525063A (ja) チャットメッセージをタギングする方法及びデバイス
US10091141B2 (en) Method and device for providing communication between multi-devices
US20140372528A1 (en) Information processing system, information processing apparatus, and recording medium
US9560472B2 (en) Apparatus and method for sharing data with an electronic device
KR20150018709A (ko) 단말의 정보 공유 방법 및 그 장치
KR20160033579A (ko) 애플리케이션을 통하여 서비스를 제공하는 시스템 및 방법
JP5821627B2 (ja) サービス提供方法、サービス利用方法およびシステム
KR101391588B1 (ko) 주소록 정보 서비스 시스템, 그 시스템에서의 주소록 정보 서비스를 위한 방법 및 장치
KR20170050235A (ko) 사용자 장치, 서비스 제공 장치, 액세스 포인트, 그를 포함하는 음원 정보 제공 시스템, 그의 제어 방법 및 컴퓨터 프로그램이 기록된 기록매체
EP4586588A1 (en) Iot device control device and control method
KR101638162B1 (ko) 모바일 단말의 어플리케이션의 실행을 지원하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
JP2015135686A (ja) アプリ提供システム及びアプリ提供方法
KR20230073666A (ko) 와이파이를 이용한 출입 정보 관리 서버 및 출입 정보 관리 방법
KR20140112258A (ko) 에러 발생 시 웹 위젯 데이터를 제공하는 장치 및 그 방법

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20230124

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20230124