KR20210123859A - 전자 장치 및 그의 제어 방법 - Google Patents

전자 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR20210123859A
KR20210123859A KR1020200041596A KR20200041596A KR20210123859A KR 20210123859 A KR20210123859 A KR 20210123859A KR 1020200041596 A KR1020200041596 A KR 1020200041596A KR 20200041596 A KR20200041596 A KR 20200041596A KR 20210123859 A KR20210123859 A KR 20210123859A
Authority
KR
South Korea
Prior art keywords
electronic device
unit
function
recipe
unit function
Prior art date
Application number
KR1020200041596A
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 KR1020200041596A priority Critical patent/KR20210123859A/ko
Priority to PCT/KR2021/004200 priority patent/WO2021206385A1/en
Priority to EP21785017.1A priority patent/EP4070510A4/en
Priority to US17/222,509 priority patent/US11900166B2/en
Publication of KR20210123859A publication Critical patent/KR20210123859A/ko
Priority to US18/320,646 priority patent/US20230289232A1/en

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0027Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement involving a plurality of vehicles, e.g. fleet or convoy travelling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4011Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2857User input or output elements for control, e.g. buttons, switches or displays
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0044Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/648Performing a task within a working area or space, e.g. cleaning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Tourism & Hospitality (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시에서는 전자 장치 및 그 제어 방법이 제공된다. 본 개시의 전자 장치는 통신부, 서비스 제공을 위한 복수의 단위 기능이 조합된 레시피에 대한 정보가 저장된 메모리 및 통신부를 통해 복수의 전자 장치 각각으로부터 각 전자 장치에서 수행 가능한 단위 기능에 대한 정보가 수신되면 수신된 정보에 기초하여 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하고, 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 통신부를 제어하는 프로세서를 포함한다.

Description

전자 장치 및 그의 제어 방법 {ELECTRONIC APPARATUS AND CONTROLLING METHOD THEREOF}
본 개시는 전자 장치 및 그의 제어 방법에 관한 것으로, 보다 상세하게는 네트워크로 연결된 다른 전자 장치를 제어하여 서비스를 제공하는 전자 장치 및 그의 제어 방법에 관한 것이다.
일반적으로, 전자 장치는 특정한 기능을 수행할 수 있는 하드웨어를 구비하도록 제조되며, 전자 장치가 특정한 기능을 수행함으로써 사용자에게 특정한 서비스를 제공할 수 있다.
다만, 전자 장치에서 수행될 수 있는 기능은 하드웨어의 종류 및 성능 등에 따라 제한될 수 있으며, 다른 서비스의 제공에 요구되는 기능이 전자 장치가 수행할 수 없는 기능인 경우에는, 전자 장치는 다른 서비스를 제공하는 것이 불가능하다는 문제가 있다.
이 경우, 다른 서비스를 제공하기 위해서는 전자 장치를 다른 서비스를 제공할 수 있는 하드웨어를 구비한 다른 전자 장치로 교체하거나, 전자 장치의 일부 하드웨어를 교체 또는 추가하는 방안이 있으나, 비용이나 시간이 소요된다는 문제가 있다.
본 개시는 상술한 필요성에 의해 안출된 것으로, 본 개시의 목적은 네트워크로 연결된 다른 전자 장치를 제어하여 서비스를 제공하는 전자 장치 및 그의 제어 방법을 제공함에 있다.
상기 목적을 달성하기 위한, 본 개시의 일 실시 예에 따른 전자 장치는 통신부, 서비스의 제공을 위한 복수의 단위 기능이 포함된 레시피에 대한 정보가 저장된 메모리 및 통신부를 통해 복수의 전자 장치 각각으로부터 각 전자 장치에서 수행 가능한 단위 기능에 대한 정보가 수신되면, 수신된 정보에 기초하여 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하고, 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 통신부를 제어하는 프로세서를 포함할 수 있다.
한편, 프로세서는, 수신된 정보에 포함된 복수의 단위 기능 중에서, 레시피에 포함된 복수의 단위 기능이 존재하는지를 식별하고, 레시피에 포함된 복수의 단위 기능이 존재하는 것으로 식별되면, 복수의 전자 장치 중 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별할 수 있다.
한편, 프로세서는, 레시피에 포함된 하나의 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는 경우, 복수의 전자 장치 중 하나의 단위 기능 및 다른 단위 기능의 수행이 가능한 하나의 전자 장치를 하나의 단위 기능 및 다른 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다.
한편, 메모리는 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 기능과 서비스의 제공을 위해 연계되어 수행되는 다른 단위 기능을 나타내는 요구 정보를 더 저장하며, 프로세서는, 요구 정보에 기초하여, 레시피에 포함된 복수의 단위 기능 각각에 대해, 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는지를 식별할 수 있다.
한편, 프로세서는, 레시피에 포함된 복수의 단위 기능 중 우선 순위가 설정된 단위 기능의 수행이 가능한 복수의 전자 장치가 식별된 경우, 식별된 복수의 전자 장치 각각으로부터 수신된 각 전자 장치에서 수행 가능한 단위 기능의 성능 정보에 기초하여 식별된 복수의 전자 장치 각각의 스코어를 산출하고, 식별된 복수의 전자 장치 중에서 산출된 스코어가 가장 높은 전자 장치를 우선 순위가 설정된 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다.
한편, 프로세서는, 레시피에 포함된 복수의 단위 기능 중 제1 단위 기능을 수행하기 위한 신호를 식별된 복수의 전자 장치 중 제1 단위 기능에 매칭되는 제1 전자 장치로 전송하도록 통신부를 제어하고, 레시피에 포함된 복수의 단위 기능 중 제2 단위 기능을 제1 단위 기능의 수행에 따라 획득되는 데이터에 기초하여 수행하기 위한 신호를, 식별된 복수의 전자 장치 중 제2 단위 기능에 매칭되는 제2 전자 장치로 전송하도록 통신부를 제어할 수 있다.
한편, 제1 단위 기능의 수행에 따라 획득되는 데이터는, 제1 전자 장치에서 제2 전자 장치로 전송되거나, 전자 장치를 통해 제1 전자 장치에서 제2 전자 장치로 전송될 수 있다.
한편, 본 개시의 전자 장치는 디스플레이를 더 포함하고, 프로세서는, 복수의 전자 장치가 식별되면, 레시피에 대응되는 서비스의 제공이 가능함을 나타내는 UI(User Interface)를 표시하도록 디스플레이를 제어할 수 있다.
한편, UI는, 레시피를 실행하기 위한 오브젝트를 포함하며, 프로세서는, 오브젝트를 선택하는 사용자 명령이 수신되면, 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 통신부를 제어할 수 있다.
한편, 레시피에 대한 정보는, 서버로부터 통신부를 통해 수신되어 메모리에 저장될 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 복수의 전자 장치 각각으로부터 각 전자 장치에서 수행 가능한 단위 기능에 대한 정보를 수신하는 단계, 수신된 정보에 기초하여 서비스의 제공을 위한 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하는 단계 및 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하는 단계를 포함할 수 있다.
한편, 복수의 전자 장치를 식별하는 단계는, 수신된 정보에 포함된 복수의 단위 기능 중에서, 레시피에 포함된 복수의 단위 기능이 존재하는지를 식별하는 단계 및 레시피에 포함된 복수의 단위 기능이 존재하는 것으로 식별되면, 복수의 전자 장치 중 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하는 단계를 포함할 수 있다.
한편, 복수의 전자 장치를 식별하는 단계는, 레시피에 포함된 하나의 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는 경우, 복수의 전자 장치 중 하나의 단위 기능 및 다른 단위 기능의 수행이 가능한 하나의 전자 장치를 하나의 단위 기능 및 다른 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다.
한편, 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 기능과 서비스의 제공을 위해 연계되어 수행되는 다른 단위 기능을 나타내는 요구 정보에 기초하여, 레시피에 포함된 복수의 단위 기능 각각에 대해, 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는지를 식별하는 단계를 더 포함할 수 있다.
한편, 레시피에 포함된 복수의 단위 기능 중 우선 순위가 설정된 단위 기능의 수행이 가능한 복수의 전자 장치가 식별된 경우, 식별된 복수의 전자 장치 각각으로부터 수신된 각 전자 장치에서 수행 가능한 단위 기능의 성능 정보에 기초하여, 식별된 복수의 전자 장치 각각의 스코어를 산출하는 단계 및 식별된 복수의 전자 장치 중에서 산출된 스코어가 가장 높은 전자 장치를 우선 순위가 설정된 단위 기능에 매칭되는 전자 장치로서 식별하는 단계를 포함할 수 있다.
한편, 전송하는 단계는, 복수의 단위 기능 중 제1 단위 기능을 수행하기 위한 신호를 식별된 복수의 전자 장치 중 제1 단위 기능의 수행이 가능한 제1 전자 장치로 전송하는 단계 및 제1 단위 기능을 수행함으로써 획득되는 데이터에 기초하여 복수의 단위 기능 중 제2 단위 기능을 수행하기 위한 신호를 복수의 전자 장치 중 제2 단위 기능의 수행이 가능한 제2 전자 장치로 전송하는 단계를 더 포함할 수 있다.
한편, 제1 단위 기능의 수행에 따라 획득되는 데이터는, 제1 전자 장치에서 제2 전자 장치로 전송되거나, 전자 장치를 통해 제1 전자 장치에서 제2 전자 장치로 전송될 수 있다.
한편, 본 개시의 제어 방법은 복수의 전자 장치가 식별되면, 레시피에 대응되는 서비스의 제공이 가능함을 나타내는 UI(User Interface)를 표시하는 단계를 더 포함할 수 있다.
한편, UI는, 레시피를 실행하기 위한 오브젝트를 포함하며, 신호를 전송하는 단계는, 오브젝트를 선택하는 사용자 명령이 수신되면, 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하는 것을 포함할 수 있다.
한편, 레시피에 대한 정보는, 서버로부터 수신되어 전자 장치의 메모리에 저장될 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 네트워크로 연결된 다른 전자 장치를 제어하여 서비스를 제공하는 전자 장치 및 그의 제어 방법을 제공할 수 있다.
또한, 사용자의 전자 장치가 서비스에서 요구되는 단위 기능을 수행할 수 없는 경우에도, 네트워크로 연결된 다른 전자 장치 중에 해당 단위 기능을 수행할 수 있는 다른 전자 장치와 연동하여 서비스를 제공할 수 있다. 이에 따라, 전자 장치 자체 또는 하드웨어의 교체에 따른 비용 및 시간의 소요 없이도 해당 서비스를 제공할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 단위 기능을 매칭하는 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 단위 기능을 매칭하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 전자 장치를 식별하는 방법을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 레시피가 수행 가능한 경우에 표시되는 UI를 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시 예에 따른 레시피의 수행을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시 예에 따른 레시피의 수행을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른 레시피의 수행을 설명하기 위한 도면이다.
도 12a는 본 개시의 일 실시 예에 따른 단위 기능에 대한 정보를 설명하기 위한 도면이다.
도 12b는 본 개시의 일 실시 예에 따른 단위 기능에 대한 정보를 설명하기 위한 도면이다.
도 12c는 본 개시의 일 실시 예에 따른 단위 기능에 대한 정보를 설명하기 위한 도면이다.
도 13은 본 개시의 일 실시 예에 따른 레시피에 대한 정보를 설명하기 위한 도면이다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 15는 본 개시의 일 실시 예에 따른 전자 장치의 부가적인 구성을 설명하기 위한 블록도이다.
도 16은 본 개시의 일 실시 예에 따른 흐름도를 설명하기 위한 도면이다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. 덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 상기 구성요소들을 한정하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 상기 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 상기 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에 따르면, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
또한, 일 실시 예들에서, 전자 장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션(navigation) 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine), 상점의 POS(point of sales), 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
또 다른 실시 예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시 예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 본 개시의 일 실시 예에 따른 시스템(10)은 복수의 전자 장치(100, 200-1, 200-2)를 포함할 수 있다. 한편, 복수의 전자 장치(100, 200-1, 200-2)는 전자 장치(100) 및 전자 장치(100)와 다른 전자 장치(200-1, 200-2)를 포함할 수 있다.
복수의 전자 장치(100, 200-1, 200-2)는 다양한 통신 방식을 통해 상호 네트워크로 연결될 수 있다. 예를 들어, 통신 방식은 Serial, USB(Universal Serial Bus), Ethernet 등의 유선 통신 방식 또는 특정한 주파수 대역(또는 특정한 파장)의 신호를 이용하는 Bluetooth, Zigbee, Wi-FI(WiFi), NFC(Near Field Communication), 적외선, LoRa(Long Range), LTE(long-term evolution), LTE-A(LTE Advance), 5G(5th Generation) 이동통신 등의 무선 통신 방식일 수 있다.
복수의 전자 장치(100, 200-1, 200-2) 중 하나의 전자 장치는 네트워크로 연결된 다른 전자 장치로 데이터를 송신(전송)하거나, 네트워크로 연결된 다른 전자 장치로부터 데이터를 수신할 수 있다. 구체적으로, 복수의 전자 장치(100, 200-1, 200-2)는 다양한 통신 방식에서 이용하는 프로토콜에서 정해진 규칙(예: 데이터의 송신 순서 및 데이터의 표현법 등)에 따라 데이터를 송수신할 수 있다. 예를 들어, 프로토콜은 HTTP(HyperText Transfer Protocol), XMPP(eXtensible Messaging and Presence Protocol), CoAP(Constrained Application Protoco), MQTT (Message Queuing Telemetry Transport), AMQP(Advanced Message Queuing Protocol), TCP(Transmission Control Protocol), Web Socket, SNMP(Simple Network Management Protocol) 등에서 적어도 하나를 포함할 수 있다.
전자 장치(100)는 다양한 방식으로 사용자와 인터렉션이 가능한 장치를 지칭할 수 있다. 예를 들어, 전자 장치(100)는 사용자의 음성, 터치, 모션, 키 입력 등의 다양한 입력 방식을 통해 사용자로부터 입력을 수신할 수 있으며, 전자 장치(100)는 디스플레이, 스피커, 진동 햅틱 등의 다양한 출력 방식을 통해 사용자에게 정보를 제공할 수 있다. 전자 장치(100)는 예를 들어, 도 1과 같이 스마트폰으로 구현될 수 있다.
타 전자 장치(200-1, 200-2)는 타 전자 장치(200-1, 200-2)에 특화된 용도의 적어도 하나의 서비스를 사용자에게 제공할 수 있다. 예를 들어, 로봇 청소기의 경우 청소 서비스를 사용자에게 제공하고, TV의 경우 영상 시청 서비스를 사용자에게 제공할 수 있다.
이를 위해, 타 전자 장치(200-1, 200-2)는 서비스를 사용자에게 제공하기 위한 기능을 수행할 수 있다. 여기서, 기능은 적어도 하나의 단위 기능을 포함할 수 있으며, 단위 기능은 기능을 구성하는 하위 단위를 지칭할 수 있다.
본 개시의 일 실시 예에 따른 타 전자 장치(200-1, 200-2)의 단위 기능은 타 전자 장치(200-1, 200-2)의 하드웨어를 이용하여 수행되는 동작을 지칭할 수 있다. 예를 들어, 도 1과 같이 제1 전자 장치(200-1)가 로봇 청소기인 경우, 청소 서비스의 제공을 위한 자동 청소 기능을 수행할 수 있다. 여기서, 자동 청소 기능은 제1 전자 장치(200-1)에 구비된 이동 장치(예: 바퀴, 회전축 등)를 통해 위치를 다른 위치로 이동시키는 제1 단위 기능(이동 기능이라 지칭함), 제1 전자 장치(200-1)에 구비된 카메라릍 통해 주변 환경을 촬영한 이미지를 통해 위치를 식별하는 제2 단위 기능(예: 위치 식별 기능), 제1 전자 장치(200-1)에 구비된 흡입 모터를 통해 먼지 등을 흡입하는 제3 단위 기능(흡입 기능이라 지칭함)을 포함할 수 있다.
한편, 도 1에서 도시된 구현 예는 일 실시 예일 뿐이며, 복수의 전자 장치(100, 200-1, 200-2) 각각은 스마트폰, 태블릿, 컴퓨터(Computer), 스마트 TV, 스마트 스피커, 인공지능 스피커, 에어컨, 냉장고, DVD(digital video disk) 플레이어, 오디오, 로봇 청소기, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync, 애플TV, 또는 구글 TV), 게임 콘솔(예: Xbox??, PlayStation??), 의료기기, 차량, 전자 사전, 캠코더(camcorder), 전자 액자, 상점의 POS(point of sales), 다양한 사물 인터넷 장치(internet of things)(예: 전구, 조명, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등), 또는 웨어러블 장치(wearable device) 중 적어도 하나로 구현될 수 있다. 또한, 복수의 전자 장치(100, 200-1, 200-2)의 수는 다양하게 변형될 수 있다.
한편, 상술한 설명에서는 전자 장치(100)는 사용자와 인터렉션을 수행하는 전자 장치이고 타 전자 장치(200-1, 200-2)가 서비스를 수행하는 전자 장치인 것으로 설명하였으나, 전자 장치(100)가 서비스를 수행하거나 및/또는 타 전자 장치(200-1, 200-2)가 사용자와 인터렉션을 수행할 수도 있다. 즉, 본 개시의 일 실시 예에 따른 전자 장치(100)는 네트워크로 연결된 복수의 전자 장치(100, 200-1, 200-2) 중에서 후술하여 설명하는 동작을 수행하는 어느 하나의 장치일 수 있다.
이하에서는 첨부된 도면을 참조하여 본 개시의 전자 장치(100)를 구체적으로 설명하기로 한다.
도 2 및 도 3은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 2 및 도 3을 참조하면, 본 개시의 일 실시 예에 따른 전자 장치(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다.
통신부(110)는 다른 전자 장치(200-1 내지 200-3)와 유선 통신 또는 무선 통신을 수행하여, 다양한 정보(또는 데이터)를 송신하거나 수신할 수 있는 구성을 지칭할 수 있다.
메모리(120)는 다양한 정보(또는 데이터)가 저장될 수 있는 구성을 지칭할 수 있다. 메모리(120)는 전기적인 형태 또는 자기적인 형태로 정보를 저장할 수 있다.
구체적으로, 메모리(120)에는 전자 장치(100) 또는 프로세서(130)의 동작에 필요한 적어도 하나의 명령어(instruction), 모듈 또는 데이터가 저장될 수 있다. 여기서, 명령어는 전자 장치(100) 또는 프로세서(130)의 동작을 지시하는 단위로서 전자 장치(100) 또는 프로세서(130)가 이해할 수 있는 기계어로 작성된 것일 수 있다. 모듈은 소프트웨어적인 프로그램(또는 운영체제, 어플리케이션, 동적 라이브러리, 런타임 라이브러리 등)을 구성하는 하위 단위의 명령어의 집합(instruction set)일 수 있으나, 이는 일 실시 예일 뿐, 모듈은 프로그램 그 자체일 수 있다. 데이터는 문자, 숫자, 소리, 영상 등의 정보를 나타내기 위해 전자 장치(100) 또는 프로세서(130)가 처리할 수 있는 비트(bit) 또는 바이트(byte) 등의 단위의 자료일 수 있다.
프로세서(130)는 통신부(110)를 통해 복수의 전자 장치(200-1 내지 200-3) 각각으로부터 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보가 수신되면, 수신된 정보에 기초하여 레시피에 포함된 복수의 단위 기능과 매칭되는 복수의 단위 기능이 존재하는지를 식별할 수 있다. 여기서, 매칭이란 2개의 데이터에 대한 값이 동일한 관계 또는 대응되는 관계(예: 같은 행의 데이터, 또는 같은 열의 데이터인 관계)에 있다는 것을 나타낼 수 있다.
그리고, 프로세서(130)는 매칭되는 복수의 단위 기능이 존재하는 것으로 식별되면, 복수의 전자 장치(200-1 내지 200-3) 중 매칭되는 복수의 단위 기능의 수행이 가능한 복수의 전자 장치(200-1 내지 200-2)를 식별할 수 있다.
그리고, 프로세서(130)는 식별된 복수의 전자 장치(200-1 내지 200-2) 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 통신부(110)를 제어할 수 있다.
본 개시의 일 실시 예에 따라 도 2 및 도 3을 참조하면, 프로세서(130)는 단위 기능 검색부(131), 레시피 매칭부(133), 레시피 실행부(135) 각각에 포함된 인스트럭션을 실행함으로써 각 인스트럭션에 해당하는 동작을 수행할 수 있다. 여기서, 단위 기능 검색부(131), 레시피 매칭부(133), 레시피 실행부(135)은 메모리(120) 또는 프로세서(130)에 저장되어 있을 수 있다.
구체적으로, 프로세서(130)는 단위 기능 검색부(131)를 통해, 전자 장치(100)와 네트워크로 연결된 복수의 전자 장치(200-1 내지 200-3) 각각으로 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 요청하는 신호(요청 신호)를 전송하도록 통신부(110)를 제어할 수 있다. 예를 들어, 프로세서(130)는 단위 기능 검색부(131)를 통해, 전자 장치(100)와 네트워크로 연결된 제1 전자 장치(200-1)로 제1 전자 장치(200-1)에서 수행 가능한 단위 기능에 대한 정보를 요청하는 신호를 전송하도록 통신부(110)를 제어할 수 있다. 또한, 프로세서(130)는 단위 기능 검색부(131)를 통해, 전자 장치(100)와 네트워크로 연결된 제2 전자 장치(200-2)로 제2 전자 장치(200-2)에서 수행 가능한 단위 기능에 대한 정보를 요청하는 신호를 전송하도록 통신부(110)를 제어할 수 있다. 제3 전자 장치(200-3)에 대해서도 상술한 프로세서(130)의 동작이 적용될 수 있다.
이를 위해, 전자 장치(100)는 복수의 전자 장치(200-1 내지 200-3)와 다양한 통신 방식(예: Wi-Fi, Bluetooth, LAN 등)을 통해 네트워크로 연결될 수 있다.
여기서, 전자 장치(100)와 네트워크로 연결된 각 전자 장치(200-1 내지 200-3)는 적어도 하나의 단위 기능을 수행할 수 있다. 이때, 타 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능은, 타 전자 장치(200-1 내지 200-3)의 용도에 따른 서비스를 제공하기 위해 수행되는 하위 단위의 기능을 지칭할 수 있다. 이하에서는 설명의 편의를 위해 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능은 전자 장치(200-1 내지 200-3)의 단위 기능이라 간단히 지칭하기로 한다.
예를 들어, 제1 전자 장치(200-1)가 로봇 청소기인 경우에 단위 기능은, 청소 서비스의 제공을 위해 수행되는 자동 청소 기능이 아니라, 자동 청소 기능을 구성하는 하위 단위의 기능일 수 있다. 즉, 로봇 청소기의 단위 기능은 로봇 청소기를 다른 위치로 이동시키는 이동 기능, 먼지 등을 흡입하는 흡입 기능, 로봇 청소기의 주변 환경에 대한 이미지를 획득하는 촬영 기능, 자기 유도 방식 등의 무선 방식으로 전원(배터리)을 충전하는 무선 충전 기능 등일 수 있다.
또한, 본 개시의 일 실시 예에 따른 타 전자 장치(200-1 내지 200-3)의 단위 기능은, 타 전자 장치(200-1 내지 200-3)의 용도에 따른 서비스(의 제공을 위하여 조합된 하위 단위의 기능들 중에서, 네트워크에 연결된 전자 장치(100) 및 타 전자 장치(200-1 내지 200-3) 중에서 다른 하나의 전자 장치로부터의 요청을 받아 수행하고 응답할 수 있도록 구현되는 기능일 수 있다.
예를 들어, 제1 전자 장치(200-1)가 로봇 청소기인 경우, 로봇 청소기 본연의 용도에 따른 서비스(자동 청소 서비스)를 위해 수행 가능한 먼지 흡입 기능, 무선 충전 기능, 촬영 기능, 이동 기능 중에서, 네트워크에 연결된 다른 전자 장치(100)로부터 요청을 받아 수행하고 응답하는 촬영기능과 이동 기능만이 단위기능일 수 있다.
한편, 타 전자 장치(200-1 내지 200-3)의 단위 기능은 타 전자 장치(200-1 내지 200-3)에 구비된 하드웨어를 이용하여 수행될 수 있다. 따라서, 타 전자 장치(200-1 내지 200-3)의 단위 기능은 타 전자 장치(200-1 내지 200-3)에 구비된 하드웨어의 종류 및 하드웨어의 성능 중에서 적어도 하나에 따라 결정될 수 있다.
예를 들어, 제1 전자 장치(200-1)가 카메라를 포함하는 경우 제1 전자 장치(200-1)의 단위 기능은 주변 환경에 대한 이미지를 획득하는 촬영 기능을 포함할 수 있다. 또 다른 예를 들어, 제2 전자 장치(200-2)가 이동 수단(예: 바퀴, 날개, 모터 등)을 포함하는 경우, 제2 전자 장치(200-2)의 단위 기능은 제2 전자 장치(200-2)를 다른 위치로 이동시키는 이동 기능을 포함할 수 있다. 이와 같이, 타 전자 장치(200-1 내지 200-3) 각각이 구비한 하드웨어의 종류 및 하드웨어의 성능 중에서 적어도 하나가 다른 경우, 타 전자 장치(200-1 내지 200-3) 각각의 단위 기능은 상호 달라질 수 있다.
이 경우, 통신부(110)는 복수의 전자 장치(200-1 내지 200-3) 각각으로 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 요청하는 신호(요청 신호)를 전송할 수 있다. 그리고, 각 전자 장치(200-1 내지 200-3)는 전자 장치(100)로부터 수신된 요청 신호에 대한 응답으로, 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 전자 장치(100)로 전송할 수 있다.
이 경우, 통신부(110)는 복수의 전자 장치(200-1 내지 200-3)로부터 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 수신할 수 있다. 여기서, 단위 기능에 대한 정보는 단위 기능을 식별하기 위한 정보(예: 단위 기능의 이름 또는 고유의 식별자 등), 단위 기능에 접근(액세스)하기 위한 네트워크에 대한 정보(예: IP(Internet Protocol) Address, Port, MAC address 또는 URL(Uniform Resource Locator) 등) 및 해당 단위 기능을 수행 가능한 전자 장치(200-1 내지 200-3)를 식별하기 위한 정보(예: 전자 장치(200-1 내지 200-3)의 이름 또는 고유의 식별자 등) 중 적어도 하나를 포함할 수 있다.
예를 들어, 통신부(110)는 제1 단위 기능 및 제2 단위 기능을 수행할 수 있는 제1 전자 장치(200-1)로부터 제1 전자 장치(200-1)에서 수행 가능한 단위 기능에 대한 정보(예: 제1 단위 기능을 식별하기 위한 정보, 제2 단위 기능을 식별하기 위한 정보, 제1 단위 기능 및 제2 단위 기능의 수행 주체는 제1 전자 장치(200-1)라는 것을 나타내는 정보)를 수신할 수 있다. 또한, 통신부(110)는 제3 단위 기능 및 제4 단위 기능을 수행할 수 있는 제2 전자 장치(200-2)로부터 제2 전자 장치(200-2)에서 수행 가능한 단위 기능에 대한 정보(예: 제3 단위 기능을 식별하기 위한 정보, 제4 단위 기능을 식별하기 위한 정보, 제3 단위 기능 및 제4 단위 기능의 수행 주체는 제2 전자 장치(200-2)라는 것을 나타내는 정보)를 수신할 수 있다. 또한, 제5 단위 기능 및 제6 단위 기능을 수행할 수 있는 제3 전자 장치(200-3)에 대해서도 상술한 통신부(110)의 동작이 적용될 수 있다.
이 경우, 프로세서(130)는 단위 기능 검색부(131)를 통해, 통신부(110)에 의해 수신된 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 레시피 매칭부(133)로 전달할 수 있다.
그리고, 프로세서(130)는 레시피 매칭부(133)를 통해, 수신된 정보에 기초하여 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별할 수 있다. 여기서, 단위 기능에 매칭되는 전자 장치는 레시피가 실행될 경우 단위 기능을 수행하도록 결정된 전자 장치를 나타낼 수 있다.
구체적으로, 프로세서(130)는 레시피 매칭부(133)를 통해, 각 전자 장치(200-1 내지 200-3)에서 수신된 단위 기능에 대한 정보에 기초하여, 메모리(120)에 저장된 레시피에 포함된 복수의 단위 기능과 매칭되는 복수의 단위 기능이 존재하는지를 식별할 수 있다.
이를 위해, 메모리(120)에는 적어도 하나의 레시피가 저장될 수 있다. 여기서, 각 레시피는 특정한 서비스의 제공을 위해 복수의 단위 기능이 조합된 것을 나타내며, 각 레시피는 복수의 단위 기능을 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 레시피 A는 특정한 공간 내에서 물건(예: 스마트폰, 리모컨, 서적, 지갑 등)의 위치를 찾아 사용자에게 알려주는 서비스의 제공을 위해, 이동 기능, 촬영 기능, 이미지 크롭 기능, 객체 인식 기능, 표시 기능과 같은 복수의 단위 기능이 조합될 수 있다. 다만, 이는 일 실시 예일 뿐, 레시피는 제공하기 위한 서비스에 따라 다양하게 조합된 복수의 단위 기능을 포함할 수 있다. 이하에서는 설명의 편의를 위해 도 2 및 도 3과 같이 레시피 A는 제1 단위 기능, 제2 단위 기능, 제3 단위 기능이 포함되는 것으로 가정하도록 한다,
예를 들어, 도 2와 같이 프로세서(130)는 각 전자 장치(200-1 내지 200-3)로부터 수신된 단위 기능에 대한 정보에 포함된 단위 기능(예: 제1 단위 기능 내지 제6 단위 기능)을 메모리(120)에 저장된 레시피 A에 포함된 단위 기능(예: 제1 단위 기능, 제2 단위 기능, 제4 단위 기능)과 매칭되는지 여부를 판단할 수 있다. 여기서, 프로세서(130)는 각 전자 장치(200-1 내지 200-3)의 단위 기능에 대한 정보 및 메모리(120)에 저장된 레시피 A에서 단위 기능을 식별하기 위한 정보(예: 이름 또는 고유의 식별자)가 서로 일치하는 경우에 단위 기능이 매칭되는 것으로 판단할 수 있다.
보다 구체적인 예를 들면, 프로세서(130)는 레시피 A에 포함된 제1 단위 기능이 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능(예: 제1 단위 기능 내지 제6 단위 기능) 중 하나에 매칭되는지 판단하고, 레시피 A에 포함된 제2 단위 기능이 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능(예: 제1 단위 기능 내지 제6 단위 기능) 중 하나에 매칭되는지 판단하고, 레시피 A에 포함된 제4 단위 기능이 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능(예: 제1 단위 기능 내지 제6 단위 기능) 중 하나에 매칭되는지 판단할 수 있다.
그리고, 프로세서(130)는 레시피 매칭부(133)를 통해, 레시피 A에 포함된 복수의 단위 기능(예: 제1 단위 기능, 제2 단위 기능, 제4 단위 기능)에 매칭되는 복수의 단위 기능이 존재하는 것으로 식별되는 경우(즉, 레시피 A에 포함된 복수의 단위 기능의 집합이 타 전자 장치(200-1 내지 200-3)에서 수행 가능한 복수의 단위 기능의 집합에 포함되는 관계인 경우), 복수의 전자 장치(200-1 내지 200-3) 중에서 레시피 A에 포함된 복수의 단위 기능과 매칭되는 복수의 전자 장치를 식별할 수 있다. 즉, 프로세서(130)는 복수의 전자 장치(200-1 내지 200-3) 중에서 레시피 A에 포함된 각 단위 기능에 매칭되는 각 전자 장치를 식별할 수 있다.
예를 들어, 프로세서(130)는 레시피 A에 매칭된 제1 단위 기능의 경우, 타 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보(예: 상호 매핑된 제1 단위 기능을 식별하기 위한 정보 및 제1 전자 장치(200-1)를 식별하기 위한 정보, 상호 매칭된 제2 단위 기능을 식별하기 위한 정보 및 제1 전자 장치(200-1)를 식별하기 위한 정보, 상호 매칭된 제3 단위 기능을 식별하기 위한 정보 및 제2 전자 장치(200-2)를 식별하기 위한 정보, 상호 매칭된 제4 단위 기능을 식별하기 위한 정보 및 제2 전자 장치(200-2)를 식별하기 위한 정보, 상호 매칭된 제5 단위 기능을 식별하기 위한 정보 및 제3 전자 장치(200-3)를 식별하기 위한 정보, 상호 매칭된 제6 단위 기능을 식별하기 위한 정보 및 제3 전자 장치(200-3)를 식별하기 위한 정보)에서 제1 단위 기능을 식별하기 위한 정보를 검색하여, 검색된 제1 단위 기능에 매칭되는 제1 전자 장치(200-1)를 제1 단위 기능을 수행할 수 있는 전자 장치로 식별할 수 있다. 이와 같은 방식으로 프로세서(130)는 레시피 A에 매칭되는 제2 단위 기능을 수행할 수 있는 전자 장치를 제1 전자 장치(200-1)로 식별하고, 레시피 A에 매칭되는 제4 단위 기능을 수행할 수 있는 전자 장치를 제2 전자 장치(200-2)로 식별할 수 있다.
이하에서는 설명의 편의를 위해, 레시피 A에 포함된 제1 단위 기능 및 제2 단위 기능에 매칭되는 전자 장치로 제1 전자 장치(200-1)가 식별되고, 레시피 A에 포함된 제4 단위 기능에 매칭되는 전자 장치로 제2 전자 장치(200-2)가 식별된 것으로 가정하도록 한다.
그리고, 도 3을 참조하여, 프로세서(130)는 레시피 매칭부(133)를 통해, 레시피 A에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치(200-1, 200-2)가 식별된 경우, 레시피 A의 실행이 가능함을 나타내는 정보를 레시피 실행부(135)로 전달할 수 있다. 여기서, 레시피 A의 실행이 가능함을 나타내는 정보는 레시피 A에 포함된 복수의 단위 기능 및 식별된 복수의 전자 장치(200-1, 200-2)가 상호 매칭된 정보를 포함할 수 있다.
그리고, 프로세서(130)는 레시피 실행부(135)를 통해, 레시피 A의 실행이 가능함을 나타내는 정보가 수신되면, 레시피 A에 포함된 복수의 단위 기능을 수행하도록 식별된 복수의 전자 장치(200-1, 200-2) 각각을 제어할 수 있다. 이 경우, 프로세서(130)는 수신된 정보에 따라 자동적으로 레시피 A를 실행하거나, 사용자 명령이 수신된 경우에 레시피 A를 실행할 수도 있다.
그리고, 프로세서(130)는 레시피 실행부(135)를 통해, 식별된 복수의 전자 장치(200-1 내지 200-2) 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 통신부(110)를 제어할 수 있다.
예를 들어, 레시피 A에 포함된 제1 단위 기능 및 제2 단위 기능에 매칭되는 전자 장치로 제1 전자 장치(200-1)가 식별되고, 레시피 A에 포함된 제4 단위 기능에 매칭되는 전자 장치로 제2 전자 장치(200-2)가 식별된 경우, 프로세서(130)는 레시피 실행부(135)를 통해, 레시피 A에 포함된 제1 단위 기능 및 제2 단위 기능을 수행하기 위한 신호를 제1 전자 장치(200-1)로 전송하도록 통신부(110)를 제어하고, 레시피 A에 포함된 제4 단위 기능을 수행하기 위한 신호를 제2 전자 장치(200-2)로 전송하도록 통신부(110)를 제어할 수 있다.
이 경우, 프로세서(130)는 수신된 정보에 따라 자동적으로 레시피 A를 실행할 수 있다. 다른 실시 예로서, 프로세서(130)는 사용자 명령이 수신된 경우에 레시피 A를 실행할 수도 있다. 예를 들어, 프로세서(130)는 레시피 실행부(135)를 통해, 레시피 A를 실행하기 위한 사용자 명령이 수신된 경우에, 식별된 복수의 전자 장치(200-1, 200-2) 각각으로 레시피 A에 포함된 각 단위 기능(예: 제1 단위 기능, 제2 단위 기능, 제4 단위 기능)을 수행하기 위한 신호를 전송하도록 통신부(110)를 제어할 수도 있다.
이 경우, 통신부(110)는 식별된 복수의 전자 장치(200-1 내지 200-2) 각각으로 매칭되는 각 단위 기능(예: 제1 단위 기능, 제2 단위 기능, 제4 단위 기능)을 수행하기 위한 신호를 전송할 수 있다. 그리고, 복수의 전자 장치(200-1 내지 200-2)는 통신부(110)로부터 전송된 신호가 수신되면, 각 단위 기능(예: 제1 단위 기능, 제2 단위 기능, 제4 단위 기능)을 수행할 수 있다.
이상과 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 다른 전자 장치(200-1 내지 200-3) 각각에서 단위 기능을 수행함으로써, 조합된 단위 기능을 통한 서비스를 제공할 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 기존의 단일한 전자 장치에서 제공되는 기능이 다른 전자 장치에서 수행 가능한 기능과 결합되어 수행됨으로써 사용자에게 새로운 서비스를 제공하는 환경을 구축할 수 있다. 예를 들어, 단위 기능의 조합을 통해 새로운 서비스를 제공하는 레시피를 스토어(또는 서버 등)에서 구매하여 다운로드 하는 것이 활성화될 수 있으며, 또 다른 예를 들어, 단위 기능 단위로 모듈화된 전자 장치의 제조 및 판매가 증가할 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 사용자의 네트워크 환경 내에서 특정한 서비스를 제공하기 위해 요구되는 복수의 단위 기능 중에서 특정한 단위 기능이 결여된 경우에도, 다른 전자 장치가 결여된 단위 기능을 수행함으로써 특정한 서비스를 제공할 수 있다.
이 경우, 복수의 단위 기능을 모두 수행할 수 있는 새로운 전자 장치로 교체하지 않고서도, 결여된 단위 기능을 수행할 수 있는 기존의 다른 전자 장치를 이용하거나, 결여된 단위 기능을 수행할 수 있는 새로운 다른 전자 장치를 추가함으로써 서비스 제공에 요구되는 비용 및 자원의 절감 효과가 있다.
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치(100)는 복수의 전자 장치(200-1 내지 200-3)에게 단위 기능에 대한 정보를 요청하는 신호를 전송할 수 있다(S410). 구체적으로, 전자 장치(100)의 프로세서(130)는 전자 장치(100)와 네트워크로 연결된 복수의 전자 장치(200-1 내지 200-3) 각각으로 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 요청하는 신호를 전송하도록 통신부(110)를 제어할 수 있다. 이때, 서비스 디스커버리 프로토콜(예: DNS-SD(Domain Name System Service Discovery), mDNS(Multicast DNS), UPnP(Universal Plug and Play) 등)을 이용하여 구현할 수 있다.
이를 위해, 전자 장치(100) 및 복수의 전자 장치(200-1 내지 200-3)는 다양한 통신 방식을 통해 네트워크 연결이 구축될 수 있다. 예를 들어, 프로세서(130)는 브로드캐스팅과 같은 방식으로 타 전자 장치를 검색하기 위한 프로브(probe) 신호를 불특정한 다수의 전자 장치로 전송하도록 통신부(110)를 제어할 수 있다. 이 경우, 전자 장치(100)의 위치를 기준으로 일정한 거리(또는 셀(cell)) 내에 위치한 복수의 전자 장치가 프로브 신호를 수신할 수 있다. 여기서, 프로브 신호를 수신하는 복수의 전자 장치는 설명의 편의상 제1 전자 장치(200-1), 제2 전자 장치(200-2), 제3 전자 장치(200-3)라고 가정하도록 한다. 그리고, 복수의 전자 장치(200-1 내지 200-3)는 수신된 프로브 신호에 대한 응답 신호를 전자 장치(100)로 전송할 수 있다. 이때, 응답 신호에는 복수의 전자 장치(200-1 내지 200-3) 각각을 전자 장치(100)와 네트워크로 연결하기 위한 복수의 전자 장치(200-1 내지 200-3) 각각에 대한 정보를 포함할 수 있다. 그리고, 프로세서(130)는 통신부(110)를 통해 응답 신호가 수신되면, 응답 신호에 기초하여 복수의 전자 장치(200-1 내지 200-3) 각각에 대한 프로파일을 생성할 수 있다. 이 경우, 프로파일에는 각 전자 장치(200-1 내지 200-3)의 이름, 네트워크 주소가 포함될 수 있다. 이와 같이 전자 장치(100)는 복수의 전자 장치(200-1 내지 200-3)와 네트워크 연결을 구축할 수 있으며, 네트워크 연결된 복수의 전자 장치(200-1 내지 200-3)와 데이터를 송수신할 수 있다. 한편, 이는 일 실시 예일 뿐, 다양한 변형 실시 예를 통해 네트워크 연결을 구축하는 것이 가능하다.
그리고, 복수의 전자 장치(200-1 내지 200-3) 각각은 전자 장치(100)로부터 단위 기능에 대한 정보를 요청하는 신호가 수신되면, 요청하는 신호에 대한 응답으로 단위 기능에 대한 정보를 생성하여 생성된 단위 기능에 대한 정보를 전자 장치(100)로 전송할 수 있다. 또는, 복수의 전자 장치(200-1 내지 200-3) 각각은 전자 장치(100)로부터 단위 기능에 대한 정보를 요청하는 신호가 수신되면, 요청하는 신호에 대한 응답으로 복수의 전자 장치(200-1 내지 200-3) 각각에 기저장된 단위 기능에 대한 정보를 전자 장치(100)로 전송할 수도 있다. 예를 들어, 복수의 전자 장치(200-1 내지 200-3) 각각은 네트워크의 타 전자 장치가 각 전자 장치(200-1 내지 200-3)의 단위 기능을 조회할 수 있도록 각 전자 장치(200-1 내지 200-3)의 단위 기능에 대한 네트워크 주소(예: IP, Port 등)를 DNS-SD 등의 다양한 방식으로 브로드캐스팅 할 수 있다.
여기서, 단위 기능에 대한 정보는 예를 들어, 각 전자 장치(200-1 내지 200-3)에 대한 식별자 및 단위 기능에 대한 식별자를 포함할 수 있다. 또한, 단위 기능에 대한 정보는 룩업테이블 등의 다양한 데이터 구조를 가질 수 있으며, 단위 기능에 대한 정보에서 각 전자 장치(200-1 내지 200-3)에 대한 식별자 및 단위 기능에 대한 식별자는 대응되는 관계로 매칭되어 있을 수 있다. 예를 들어, 단위 기능에 대한 정보가 룩업 테이블의 데이터 구조를 갖는 경우, 제1 전자 장치(200-1)에서 수행가능한 제1 단위 기능을 나타내기 위해, 제1 전자 장치(200-1)에 대한 식별자 및 제1 단위 기능에 대한 식별자는 동일한 열(또는 행)에 배열될 수 있다.
또한, 단위 기능은 각 전자 장치(200-1 내지 200-3)에 구비된 하드웨어의 종류 또는 하드웨어의 성능에 따라 달라질 수 있다. 이때, 하드웨어는 특정한 동작을 수행(또는 특정한 데이터를 획득)하는 물리적인 구성이며, 하드웨어의 종류는 하드웨어에서 수행되는 동작에 따라 카메라, 이동 장치, 센서, 프로세서, 디스플레이, 스피커 등과 같이 다양한 하드웨어를 분류하는 항목(또는 카테고리)을 지칭하는 것일 수 있다.
이 경우, 전자 장치(100)는 통신부(110)를 통해 복수의 전자 장치(200-1 내지 200-3) 각각으로부터 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 수신할 수 있다(S420). 이와 같이, 전자 장치(100)는 네트워크로 연결된 복수의 전자 장치(200-1 내지 200-3)로부터 단위 기능에 대한 정보를 수집할 수 있다.
다음으로, 프로세서(130)는 수신된 정보에 포함된 복수의 단위 기능에서 레시피에 포함된 복수의 단위 기능 각각에 동일한 관계로 매칭되는 단위 기능의 존재 여부를 식별할 수 있다(S430). 구체적으로, 프로세서(130)는 수신된 정보에 포함된 복수의 단위 기능에서 레시피에 포함된 각 단위 기능에 대한 식별자를 검색어(키워드)로 하여 매칭되는 단위 기능을 검색함으로써 매칭되는 단위 기능의 존재 여부를 식별할 수 있다. 이와 같은 동작은 레시피에 포함된 단위 기능의 수와 동일한 횟수로 반복하여 수행할 수 있다.
한편, 일 실시 예로서, 레시피에 대한 정보는 통신부(110)를 통해 서버로부터 수신되어 메모리(120)에 저장될 수 있다. 이때, 서버는 복수의 단위 기능이 조합된 레시피를 유상(또는 무상)으로 제공하는 서버일 수 있다. 예를 들어, 서버는 사용자가 특정한 레시피를 유상으로 구매한 경우(예: 특정한 레시피에 대해 결제가 완료되었음을 나타내는 구매 정보가 수신된 경우), 사용자의 전자 장치(100)로 레시피에 대한 정보를 전송할 수 있다.
일 실시 예로서, 프로세서(130)는 수신된 정보에 포함된 복수의 단위 기능에서 레시피에 포함된 복수의 단위 기능과 매칭되는 복수의 단위 기능이 존재하는 경우(S440, Y), 복수의 전자 장치(200-1 내지 200-3) 중에서 레시피에 포함된 각 단위 기능에 매칭되는 타 전자 장치를 식별할 수 있다(S450). 여기서, 단위 기능에 매칭되는 전자 장치는 레시피가 실행될 경우 단위 기능을 수행하도록 결정된 전자 장치를 나타낼 수 있다.
구체적으로, 프로세서(130)는 수신된 정보에 포함된 복수의 단위 기능에서 레시피에 포함된 복수의 단위 기능과 매칭되는 복수의 단위 기능이 존재하는 경우, S420 단계에서 수신된 정보에서 레시피에 매칭되는 단위 기능을 검색할 수 있다. 그리고, 프로세서(130)는 수신된 정보에서 검색된 단위 기능에 대응되는 관계로 매칭되는 전자 장치를 해당 단위 기능의 수행이 가능한 타 전자 장치(200-1 내지 200-3)로서 식별할 수 있다. 이 경우, 수신된 정보에서 대응되는 관계로 매칭된 것은 룩업테이블의 구조를 예를 들면, 2개의 데이터(단위 기능에 대한 식별자 및 전자 장치에 대한 식별자)가 동일한 행에서 다른 열에 배열되거나 동일한 열에서 다른 행에 배열되는 것을 지칭할 수 있다.
한편, 상술한 실시 예는 일 실시 예일 뿐이며, 다양한 실시 예로 변형하는 것 또한 가능하다. 예를 들어, S440 단계를 생략하여, 프로세서(130)는 수신된 정보에서 레시피에 포함된 각 단위 기능을 검색하고, 수신된 정보에서 검색된 단위 기능과 대응되는 관계에 있는 전자 장치를 검색된 단위 기능의 수행이 가능한 타 전자 장치로서 식별할 수도 있다. 이 경우, 프로세서(130)는 상술한 동작을 레시피에 포함된 단위 기능의 수와 동일한 횟수로 반복하여 수행함으로써, 레시피에 포함된 각 단위 기능의 수행이 가능한 타 전자 장치를 식별할 수 있다.
다음으로, 프로세서(130)는 식별된 복수의 전자 장치(예: 200-1, 200-2) 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 통신부(110)를 제어할 수 있다(S460).
구체적으로, 프로세서(130)는 복수의 전자 장치(예: 200-1, 200-2)가 식별된 경우, 복수의 단위 기능 중 제1 단위 기능을 수행하기 위한 신호를 식별된 복수의 전자 장치(예: 200-1, 200-2) 중 제1 단위 기능의 수행이 가능한 제1 전자 장치(200-1)로 전송하도록 통신부(110)를 제어할 수 있다.
본 개시의 일 실시 예에 따른, 프로세서(130)는 제1 단위 기능을 수행함으로써 획득되는 데이터에 기초하여 복수의 단위 기능 중 제2 단위 기능을 수행하기 위한 신호를 식별된 복수의 전자 장치(예: 200-1, 200-2) 중 제2 단위 기능의 수행이 가능한 제2 전자 장치(200-2)로 전송하도록 통신부(110)를 제어할 수 있다. 여기서, 제1 단위 기능을 수행함으로써 획득되는 데이터는 하나의 단위 기능 또는 복수의 단위 기능을 수행함으로써 획득되는 데이터를 모두 총칭할 수 있다. 제1 단위 기능을 수행함으로써 획득되는 데이터는 제2 단위 기능의 수행에 이용될 수 있다.
구체적인 일 실시 예로서, 프로세서(130)는 제1 전자 장치(200-1)에서 획득되는 데이터가 통신부(110)를 통해 수신되면, 수신된 데이터를 제2 전자 장치(200-2)로 전송하도록 통신부(110)를 제어할 수 있다. 이에 따라, 제1 전자 장치(200-1)에서 획득되는 데이터는 제1 전자 장치(200-1)에서 전자 장치(100)를 경유하여 제2 전자 장치(200-2)로 전송될 수 있다.
구체적인 다른 일 실시 예로서, 프로세서(130)는 제1 전자 장치(200-1)에서 획득되는 데이터를 제2 전자 장치(200-2)로 전송하도록 제어하는 신호를 제1 전자 장치(200-1)로 전송하도록 통신부(110)를 제어할 수 있다. 이에 따라, 제1 전자 장치(200-1)에서 획득되는 데이터는 전자 장치(100)를 경유하지 않고 제1 전자 장치(200-1)에서 제2 전자 장치(200-2)로 전송될 수 있다.
다음으로, 복수의 전자 장치(200-1 내지 200-3) 각각은 전자 장치(100)로부터 수신된 단위 기능을 수행하기 위한 신호에 따라 단위 기능을 수행함으로써, 단위 기능이 조합된 레시피에 따른 서비스를 제공할 수 있다(S470).
한편 상술한 일 실시 예와 다른 일 실시 예로서, 프로세서(130)는 수신된 정보에 포함된 복수의 단위 기능에서, 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 단위 기능이라도 매칭되지 않는 경우(S440, Y), 레시피에 따른 서비스의 제공이 불가능한 것으로 판단할 수 있다. 이때, 프로세서(130)는 레시피에 따른 서비스의 제공이 불가능하다는 것을 나타내는 안내 메시지를 표시하도록 디스플레이(140, 도 8 및 도 15 참조)를 제어할 수도 있다. 또한, 프로세서(130)는 레시피에 포함된 복수의 단위 기능 중 매칭되지 않는 단위 기능에 대한 정보를 표시하도록 디스플레이(140)를 제어할 수도 있다.
도 5는 본 개시의 일 실시 예에 따른 단위 기능을 매칭하는 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 전자 장치(100)는 제1 전자 장치(200-1), 제2 전자 장치(200-2), 제3 전자 장치(200-3)와 네트워크로 연결되어 있다. 여기서, 전자 장치(100)는 스마트폰이며, 제1 전자 장치(200-1)는 로봇 청소기이고, 제2 전자 장치(200-2)는 스마트 스피커이며, 제3 전자 장치(200-3)는 TV인 것으로 가정하여 설명하도록 한다.
먼저, 전자 장치(100)는 네트워크로 연결된 제1 내지 제3 전자 장치(200-1 내지 200-3)로 단위 기능에 대한 정보를 요청하는 신호를 전송할 수 있다. 본 개시에 도시된 도 5의 네트워크는 사용자의 가정 환경 내 구축된 네트워크를 도시하고 있으나, 이는 일 실시 예일 뿐이며 다양한 변형 실시 예가 가능하다.
이에 대한 응답으로, 전자 장치(100)는 제1 내지 제3 전자 장치(200-1 내지 200-3) 각각으로부터 단위 기능에 대한 정보(510-1 내지 510-3)를 수신할 수 있다. 예를 들어, 전자 장치(100)는 제1 전자 장치(200-1)로부터 제1 전자 장치(200-1)에서 수행 가능한 단위 기능(예: 이동 기능, 카메라 기능, 위치 식별 기능)에 대한 정보(510-1)를 수신하고, 제2 전자 장치(200-2)로부터 제2 전자 장치(200-2)에서 수행 가능한 단위 기능(예: 이미지 크롭 기능, 객체 식별 기능)에 대한 정보(510-2)를 수신하고, 제3 전자 장치(200-3)로부터 제3 전자 장치(200-3)에서 수행 가능한 단위 기능(예: 실내 맵 기능, 표시 기능)에 대한 정보(510-3)를 수신할 수 있다.
전자 장치(100)는 레시피 A(520)에 대한 정보를 기저장할 수 있다. 레시피 A(520)에 대한 정보에는 복수의 단위 기능이 저장될 수 있다. 또한, 레시피 A(520)에 대한 정보에는 선후 관계 또는 병렬 관계에 대한 정보를 포함할 수 있다. 선후 관계는 복수의 단위 기능이 순차적으로 수행되는 것을 나타내며, 병렬 관계는 복수의 단위 기능이 동시 또는 병렬적으로 수행되는 것을 나타낼 수 있다. 이 경우, 선후 관계 및 병렬 관계의 조합 또한 가능하다.
이하에서는, 레시피 A는 물건을 찾는 서비스를 제공하는 레시피로 가정하기로 한다. 이때, 물건은 사용자의 명령에 따라 설정되거나 변경될 수 있으며, 설명의 편의를 위해 물건은 사용자의 지갑(550)으로 설정된 것으로 가정하기로 한다.
예를 들어, 도 5와 같이 레시피 A(520)에 대한 정보는 제1 단위 기능(예: 이동 기능), 제2 단위 기능(예: 카메라 기능), 제3 단위 기능(예: 위치 식별 기능), 제4 단위 기능(예: 이미지 크롭 기능), 제5 단위 기능(예: 객체 인식 기능), 제6 단위 기능(예: 실내 맵 기능), 제7 단위 기능(예: 표시 기능)을 포함할 수 있다. 이 경우, 레시피 A(520)에 대한 정보는 제1 내지 제7 단위 기능이 순차적으로 수행되는 선후 관계에 대한 정보를 포함할 수도 있다.
전자 장치(100)는 제1 내지 제3 전자 장치(200-1 내지 200-3) 각각으로부터 단위 기능에 대한 정보(510-1 내지 510-3)가 수신되면, 단위 기능에 대한 정보(510-1 내지 510-3)에 포함된 단위 기능에서 레시피 A에 대한 정보(520)에 포함된 단위 기능과 매칭되는 단위 기능이 존재하는지 여부를 식별할 수 있다.
예를 들어, 전자 장치(100)는 수신된 단위 기능에 대한 정보(510-1 내지 510-3)에 포함된 복수의 단위 기능(예: 이동 기능, 카메라 기능, … 등) 중에서, 레시피 A에 대한 정보(520)에 포함된 복수의 단위 기능(예: 이동 기능, 카메라 기능, … 등) 중 제1 단위 기능(예: 이동 기능)을 검색하여 서로 동일한 관계로 매칭되는 단위 기능(예: 이동 기능)이 존재하는 것을 식별할 수 있다. 전자 장치(100)는 레시피 A에 대한 정보(520)에 포함된 다른 단위 기능에 대해서도 이와 같은 동작을 반복하여 수행할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 특정한 서비스의 제공을 위해 하나의 단위 기능이 다른 단위 기능과 연계되어 하나의 전자 장치에서 수행될 것이 설정된 경우가 있을 수 있다. 이에 대해서는 도 6을 참조하여 구체적으로 설명하기로 한다.
도 6은 본 개시의 일 실시 예에 따른 단위 기능을 매칭하는 방법을 설명하기 위한 도면이다. 이하에서는, 반복되는 내용을 생략하기 위해 레시피에 포함된 복수의 단위 기능 중 제1 단위 기능에 대해서만 설명하고, 도 1 내지 도 5에서 상술한 내용과 중복되는 내용은 간략히 설명하기로 한다.
도 6을 참조하면, 프로세서(130)는 통신부(110)를 통해 복수의 전자 장치(200-1 내지 200-3) 각각으로부터 단위 기능에 대한 정보를 수신할 수 있다(S610).
그리고, 프로세서(130)는 수신된 정보에 기초하여, 레시피에 포함된 복수의 단위 기능에 매칭되는 전자 장치를 식별할 수 있다.
구체적인 일 실시 예로서, 프로세서(130)는 요구 정보에 기초해, 레시피에 포함된 복수의 단위 기능 각각에 대해, 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는지를 식별할 수 있다. (S620). 여기서, 메모리(120)는 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 기능과 서비스의 제공을 위해 연계되어 수행되는 다른 단위 기능을 나타내는 요구 정보를 더 저장할 수 있다.
여기서, 요구 정보는 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 기능과 서비스의 제공을 위해 연계되어 수행되는 다른 단위 기능을 나타낼 수 있다. 예를 들어, 요구 정보는 레시피에 포함된 제1 단위 기능과 연계되어 수행될 것이 요구되는 다른 제2 단위 기능에 대한 정보를 포함할 수 있다.
일 실시 예에 따른 요구 정보는 레시피에 포함될 수 있다. 즉, 레시피는 요구 정보를 더 포함할 수 있다. 예를 들어, 요구 정보는 레시피에 포함된 제1 단위 기능에 대한 식별자에 대응되는 레시피 내의 위치(예: 동일한 행에서 다른 열, 동일한 열에서 다른 행 등)에 배열될 수 있다. 다만, 이는 일 실시 예일 뿐, 요구 정보는 레시피에 대한 정보와는 독립적인 정보로서 존재할 수도 있다.
일 실시 예로서, 프로세서(130)는 레시피에 포함된 제1 단위 기능에 연계되어 수행되는 다른 제2 단위 기능이 존재하는 경우(S630, Y), 복수의 전자 장치(200-1 내지 200-3) 중 하나의 전자 장치(예: 200-1)에서 수신된 정보에 포함된 복수의 단위 기능 중에서, 제1 단위 기능 및 제2 단위 기능의 수행이 가능한 전자 장치를 제1 단위 기능 및 제2 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다(S640).
한편, 다른 일 실시 예로서, 프로세서(130)는 레시피에 포함된 제1 단위 기능에 연계되어 수행되는 다른 제2 단위 기능이 존재하지 않는 경우(S630, N), 제1 단위 기능의 수행이 가능한 전자 장치를 제1 전자 장치에 매칭되는 전자 장치로서 식별할 수 있다(S650).
한편, 본 개시의 일 실시 예에 따르면, 레시피에 포함된 하나의 단위 기능을 수행할 수 있는 전자 장치가 복수 개인 경우가 있을 수 있으며, 이 경우 어떠한 전자 장치가 해당 단위 기능을 수행하도록 제어할 것인지 문제될 수 있다. 이에 대해서는 도 7을 참조하여 구체적으로 설명하기로 한다.
도 7은 본 개시의 일 실시 예에 따른 전자 장치를 식별하는 방법을 설명하기 위한 도면이다. 이하에서는, 반복되는 내용을 생략하기 위해 레시피에 포함된 복수의 단위 기능 중 제1 단위 기능에 대해서만 설명하고, 도 1 내지 도 6에서 상술한 내용과 중복되는 내용은 간략히 설명하기로 한다.
프로세서(130)는 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 단위 기능의 수행이 가능한 복수의 전자 장치가 식별된 경우, 우선 순위에 기초해 식별된 복수의 전자 장치 중에서 하나의 전자 장치를 적어도 하나의 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다.
구체적으로 도 7을 참조하면, 프로세서(130)는 수신된 단위 기능에 대한 정보에 기초하여 레시피에 포함된 각 단위 기능의 수행이 가능한 전자 장치를 식별할 수 있다(S710).
이 경우, 수신된 단위 기능에 대한 정보는 적어도 하나의 단위 기능에 대한 성능 정보를 더 포함할 수 있다. 예를 들어, 디스플레이 기능에 대한 성능 정보는 디스플레이 가능한 해상도(예: Full-HD(1920*1080), Quad-HD(2560*1440), 4K(3840*2160 또는 4096*2160), 8K(7680*4320) 등), 화면 주사율(예: 60Hz, 120Hz, 144Hz 등) 등을 포함할 수 있다. 또 다른 예를 들어, 객체 인식 기능에 대한 성능 정보는 이미지 프레임을 처리하는 속도(fps; frame per second) 등을 포함할 수 있으며, 카메라 기능에 대한 성능 정보는, 해상도, 이미지 프레임을 획득하는 속도(fps), 초점거리 등을 포함할 수 있다.
그리고, 프로세서(130)는 레시피에 포함된 복수의 단위 기능 중 제1 단위 기능의 수행이 가능한 전자 장치가 하나의 전자 장치(예: 전자 장치 A)로 식별된 경우(S720, N), 식별된 전자 장치(예: 전자 장치 A)를 제1 단위 기능에 매칭되는 전자 장치로 결정할 수 있다(S725). 여기서, 제1 단위 기능에 매칭되는 전자 장치는 레시피가 실행될 경우 제1 단위 기능을 수행하도록 결정된 전자 장치를 나타낼 수 있다.
이와 달리, 프로세서(130)는 레시피에 포함된 복수의 단위 기능 중 제1 단위 기능의 수행이 가능한 전자 장치가 복수의 전자 장치(예: 전자 장치 A, 전자 장치 B)로 식별된 경우(S720, Y), 우선 순위 정보에 기초하여, 제1 단위 기능에 대한 우선 순위가 설정되었는지 여부를 판단할 수 있다(S730). 이하에서는, 설명의 편의를 위해 복수의 전자 장치는 전자 장치 A 및 전자 장치 B인 것으로 가정하여 설명하도록 한다.
여기서, 우선 순위 정보는 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 기능 각각에 대해 설정된 우선 순위를 나타낼 수 있다. 이때, 우선순위는 단위 기능의 성능에 대한 우선 순위를 나타낼 수 있다. 한편, 우선순위 정보는 레시피에 포함될 수 있다. 즉, 레시피는 우선 순위 정보를 더 포함할 수 있다. 다만, 이는 일 실시 예일 뿐이며, 우선 순위 정보는 레시피와 별도의 독립적인 정보로서 존재할 수도 있다.
일 실시 예로서, 프로세서(130)는 제1 단위 기능(예: 디스플레이 기능)에 설정된 우선순위가 존재하는 경우(S740, Y), 식별된 전자 장치 A 및 전자 장치 B로부터 수신된 성능 정보(예: 해상도)에 기초하여, 제1 단위 기능에 대한 식별된 전자 장치 A 및 전자 장치 B 각각의 스코어를 산출할 수 있다(S750). 여기서, 제1 단위 기능의 스코어는 전자 장치 A 및 전자 장치 B 각각에서 수행되는 제1 단위 기능의 성능을 정량화한 값 또는 성능이 좋은 정도를 나타낼 수 있으며, 다양한 알고리즘을 통해 산출될 수 있다.
일 실시 예로서, 프로세서(130)는 식별된 전자 장치 A 및 전자 장치 B 중에서 산출된 스코어가 가장 높은(또는 가장 큰) 전자 장치(즉, 가장 높은 스코어를 갖는 전자 장치)를 제1 단위 기능에 매칭되는 전자 장치(예: 전자 장치 A)로서 식별할 수 있다(S760). 여기서, 단위 기능에 대한 스코어가 높을수록(또는 클수록) 단위 기능에 대한 성능이 빠르거나 좋은 것을 나타낼 수 있다. 다만, 이는 일 실시 예일 뿐, 스코어는 다양한 정량적인 지표로 구현될 수 있다는 점에서, 스코어가 낮을수록(또는 작을수록) 단위 기능에 성능이 좋은 것을 나타날 수 있다.
이와 다른 일 실시 예로서, 프로세서(130)는 제1 단위 기능에 설정된 우선순위가 존재하지 않는 경우(S740, N), 식별된 복수의 전자 장치(예: 전자 장치 A, 전자 장치 B) 중에서 임의의 전자 장치(예: 전자 장치 A)를 제1 단위 기능에 매칭되는 전자 장치(예: 전자 장치 A)로서 식별할 수 있다(S745).
예를 들어, 프로세서(130)는 식별된 복수의 전자 장치(예: 전자 장치 A, 전자 장치 B) 각각에 대한 랜덤 함수의 값(예: 0에서 1 사이의 값)을 산출하고, 산출된 값 중에 가장 높은 값을 갖는 전자 장치를 제1 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치(100)는 디스플레이(140, 도8, 도 15 참조)를 더 포함할 수 있다. 이에 대해서는 도 8을 참조하여 구체적으로 설명하도록 한다.
도 8은 본 개시의 일 실시 예에 따른 레시피가 수행 가능한 경우에 표시되는 UI를 설명하기 위한 도면이다.
도 8을 참조하면, 프로세서(130)는 레시피에 포함된 복수의 단위 기능의 수행이 가능한 복수의 전자 장치(예: 200-1, 200-2)가 존재하는 것으로 식별되면, 레시피에 대응되는 서비스의 제공이 가능함을 나타내는 UI(User Interface)(810)를 표시하도록 디스플레이(140)를 제어할 수 있다.
여기서, UI(810)는 사용자에게 레시피에 대한 서비스 제공이 가능한 것을 알리기 위한 것으로, UI(810)는 문자, 이미지, 동영상 등의 다양한 형태의 시각 정보로 구현될 수 있다. 예를 들어, UI(810)는 메시지, 아이콘, 알림 배지, 엣지 효과(디스플레이의 가장자리 영역을 특정한 색상으로 표시), 하이라이트 등 다양한 방식으로 구현될 수 있다. 또한, UI(810)는 적어도 하나의 오브젝트를 포함할 수 있다. 여기서, 각 오브젝트에는 대응되는 기능이 기설정될 수 있다. 예를 들어, 제1 오브젝트는 레시피 A를 실행하는 기능이 설정될 수 있으며, 제2 오브젝트는 레시피 B를 실행하는 기능이 설정될 수 있으며, 제3 오브젝트는 레시피를 모두 실행하지 않도록 하는 기능이 설정될 수 있다. 이 경우, 사용자 명령에 따라 하나의 오브젝트가 선택된 경우에 선택된 오브젝트에 대응되는 특정한 기능이 수행될 수 있다.
예를 들어, 도 8을 참조하면, UI(810)는 메시지 형태로 구현될 수 있으며, UI(810)는 레시피 A에 대한 서비스 제공이 가능하는 것을 알리는 문자를 포함할 수 있고, 또한 UI(810)는 레시피 A를 실행하기 위한 실행 버튼(820), UI(810)를 디스플레이에서 표시되지 않도록 제거하기 위한 취소 버튼(830)을 포함할 수 있다.
그리고, 프로세서(130)는 UI(810)를 통한 사용자 명령이 수신되면, 식별된 복수의 전자 장치 각각(예: 200-1, 200-2)으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 통신부(110)를 제어할 수 있다.
예를 들어, 도 8을 참조하면, UI(810)를 통한 사용자 명령은 실행 버튼(820)을 선택하기 위한 사용자 명령일 수 있으며, 사용자 명령의 형태는 터치 입력, 사용자 음성, 모션 입력 등 다양한 방식으로 구현될 수 있다.
다시 도 5를 참조하여, 프로세서(130)는 수신된 단위 기능에 대한 정보(510-1 내지 510-3) 및 지갑(550)을 찾는 서비스의 제공을 위한 레시피 A에 대한 정보(520)에 기초하여, 제1 내지 제3 단위 기능의 수행이 가능한 전자 장치를 제1 전자 장치(200-1)로 식별하고, 그 다음 순서로 수행되는 제4 내지 제5 단위 기능의 수행이 가능한 전자 장치를 제2 전자 장치(200-2)로 식별하고, 그 다음 순서로 수행되는 제6 내지 제7 단위 기능의 수행이 가능한 전자 장치를 제3 전자 장치(200-3)로 식별한 것으로 가정하도록 한다.
이 경우, 프로세서(130)는 제1 전자 장치(200-1)로 제1 내지 제3 단위 기능을 수행하기 위한 신호를 전송하고, 제2 전자 장치(200-2)로 제4 내지 제5 단위 기능을 수행하기 위한 신호를 전송하고, 제3 전자 장치(200-3)로 제6 내지 제7 단위 기능을 수행하기 위한 신호를 전송하도록 통신부(110)를 제어할 수 있다. 이하에서는 도 9 내지 도 11을 참조하여 각 전자 장치에서 수신된 신호에 따라 수행되는 동작을 설명하기로 한다.
도 9 내지 도 11은 본 개시의 일 실시 예에 따른 레시피의 수행을 설명하기 위한 도면이다.
도 9 내지 도 11을 참조하면, 복수의 전자 장치(200-1 내지 200-3)는 수신된 단위 기능을 수행하기 위한 신호에 따라 단위 기능을 수행할 수 있다. 여기서, 제1 내지 제3 단위 기능은 이동 기능, 카메라 기능, 위치 식별 기능이고, 제4 내지 제5 단위 기능은 이미지 크롭 기능, 객체 인식 기능이며, 제6 내지 제7 단위 기능은 맵 기능, 디스플레이 기능인 것으로 가정하도록 한다.
먼저 도 9를 참조하면, 제1 전자 장치(200-1)는 이동 기능을 통해 위치를 이동하면서 카메라 기능을 통해 제1 전자 장치(200-1)의 이동된 위치 주변의 환경에 대한 이미지를 획득할 수 있다. 또한, 이 경우, 제1 전자 장치(200-1)는 위치 식별 기능을 통해 해당 이미지를 획득한 위치를 감지하여 위치 정보를 획득할 수 있다.
예를 들어, 제1 전자 장치(200-1)는 이동 기능을 통해 임의의 위치로 이동하고, 카메라를 통해 이동된 위치에서 이미지(910)를 획득할 수 있으며, 위치 식별 기능을 통해 이미지(910)를 획득한 위치 정보로서 (200, 150)의 좌표값을 획득할 수 있다.
이 경우, 제1 전자 장치(200-1)는 제1 내지 제3 단위 기능을 수행함으로써 획득되는 데이터(920)를 레시피 A에서 다음 순서로 수행되는 제4 단위 기능을 수행하는 제2 전자 장치(200-2)로 전송할 수 있다. 예를 들어, 제1 전자 장치(200-1)에서 획득되는 데이터(920)는, 전자 장치(100)를 경유하여 제2 전자 장치(200-2)로 전송되거나, 제2 전자 장치(200-2)로 직접 전송될 수 있다. 또는 제2 전자 장치(200-2)가 제1 전자 장치(200-1)에서 획득되는 데이터(920)의 네트워크 주소를 통해 직접 액세스하여 가져오는 것 또한 가능하다.
그리고, 제2 전자 장치(200-2)는 이미지 크롭 기능을 통해 제1 전자 장치(200-1)에서 획득되는 데이터(920)에 포함된 이미지(930)을 객체 단위로 분할하여 분할된 이미지(940)를 획득하고, 객체 인식 기능을 통해 분할된 이미지(940)에 포함된 객체(950)는 “침대”라는 것을 인식할 수 있다.
그리고, 제2 전자 장치(200-2)는 객체(950)에 대한 정보를 전자 장치(100)로 전송할 수 있으며, 전자 장치(100)의 프로세서(130)는 통신부(110)를 통해 수신된 객체(950)에 대한 정보가 레시피 A에 따른 물건 찾기 서비스의 대상인 “지갑”인지 판단할 수 있다. 도 9에 도시된 바와 같이 프로세서(130)는 수신된 정보에 따라 객체(950)는 “침대”이며 “지갑”이 아니라고 판단할 수 있으며, 이 경우 제1 내지 제3 단위 기능을 계속하여 수행하도록 제어하는 신호를 제1 전자 장치(200-1)로 전송하도록 통신부(110)를 제어할 수 있다.
도 10을 참조하면, 제1 전자 장치(200-1)는 이동 기능을 통해 다른 위치로 이동하고, 카메라를 통해 이동된 위치에서 이미지(1010)를 획득할 수 있으며, 위치 식별 기능을 통해 이미지(1010)를 획득한 위치 정보로서 (180, 170)의 좌표값을 획득할 수 있다. 이 경우, 제1 전자 장치(200-1)에서 단위 기능의 수행에 따라 획득된 데이터(1020)는 제2 전자 장치(200-2)로 전송될 수 있다.
그리고, 제2 전자 장치(200-2)는 이미지 크롭 기능을 통해 제1 전자 장치(200-1)에서 획득되는 데이터(1020)에 포함된 이미지(1030)을 객체 단위로 분할하여 분할된 이미지(1040)를 획득하고, 객체 인식 기능을 통해 분할된 이미지(1040)에 포함된 객체(1050)는 “지갑”이라는 것을 인식할 수 있다.
이 경우, 제2 전자 장치(200-2)에서 제4 내지 제5 단위 기능의 수행에 따라 획득된 데이터(1060)는 레시피 A에서 다음 순서의 제6 단위 기능을 수행하는 제3 전자 장치(200-3)로 전송될 수 있다. 이때, 데이터(1060)는 객체(1050)에 대한 정보 및 위치 정보를 포함할 수 있다. 즉, 데이터(1060)는 제1 전자 장치(200-1) 및 제2 전자 장치(200-1) 중 적어도 하나에서 수행된 단위 기능에 따라 획득되는 데이터도 포함될 수 있다.
도 11을 참조하여, 제3 전자 장치(200-3)는 맵 기능을 통해 맵(1110) 상에서 수신된 데이터(1060)에 포함된 180, 170의 좌표값(위치 정보)에 대응되는 특정한 위치(1120)에 수신된 데이터(1060)에 포함된 객체(1050)를 위치시키고, 디스플레이 기능을 통해 맵(1110) 상의 특정한 위치(1120)에 객체(1150)를 표시할 수 있다.
이상과 같은 본 개시의 일 실시 예에 따르면, 복수의 전자 장치(200-1 내지 200-3)가 레시피에 조합된 단위 기능을 연동하여 수행함으로써 레시피에 따른 서비스를 사용자에게 제공할 수 있다. 이 경우, 복수의 단위 기능을 조합함으로써 기존과는 새로운 서비스의 제공이 가능하게 되며, 새로운 서비스를 이용하기 위해 전자 장치를 전부 교체할 필요 없이 필요한 단위 기능을 수행할 수 있는 전자 장치만을 구비하면 된다는 점에서 경제적인 효과가 있다.
도 12a 내지 도 12c는 본 개시의 일 실시 예에 따른 단위 기능에 대한 정보를 설명하기 위한 도면이다. 여기서, 단위 기능에 대한 정보는 xml 등의 마크업 언어(markup language)나, JSON(JavaScript Object Notation) 등의 데이터 교환 형식으로 표현될 수 있으며, 이는 일 실시 예일 뿐 단위 기능에 대한 정보는 다양한 데이터 형식으로 구현될 수 있다.
도 12a 내지 12c를 참조하면, 복수의 전자 장치(200-1 내지 200-3) 각각에서는 각 단위 기능에 대한 정보(1210 내지 1230)가 다양한 소스 코드로 작성되어 생성될 수 있다. 이때, 각 단위 기능에 대한 정보(1210 내지 1230)는 다양한 전자 장치에서도 호환되어 사용될 수 있도록 표준화될 수 있다.
제1 전자 장치(200-1)에서 수행이 가능한 단위 기능이 카메라 기능, 디스플레이 기능, 이미지 크롭 기능인 경우를 가정하면, 도 12a에 도시된 바와 같이 단위 기능에 대한 정보(1210)가 제1 전자 장치(200-1)에서 생성될 수 있다.
구체적으로, 단위 기능에 대한 정보(1210)에서 “unit_fuction_name”은 단위 기능의 이름(또는 식별자)을 나타내는 항목을 지칭할 수 있다. “service_url”은 단위 기능에 대한 네트워크 주소를 나타내는 항목을 지칭할 수 있다. “capability”는 해당 단위 기능에 대한 성능 정보를 나타내는 항목을 지칭할 수 있다. 예를 들어, “fps:60” 은 초당 프레임 처리 속도의 최대 값은 60이며, “resolution:1920*1080” 은 해상도의 최대 값은 1920*1080인 Full-HD인 것을 나타낼 수 있다. “method”는 단위 기능을 수행하고 획득된 데이터를 가져오거나 전송을 요청하는 “GET”, 단위 기능을 수행하거나 데이터를 전달시키도록 하는 “POST”, 실시간으로 데이터를 전송하는 “websocket” 등의 방식을 나타내는 항목을 지칭할 수 있다.
제2 전자 장치(200-2)에서 수행이 가능한 단위 기능이 카메라 기능, 이동 기능, 위치 식별 기능인 경우를 가정하면, 도 12b에 도시된 바와 같이 단위 기능에 대한 정보(1220)가 제2 전자 장치(200-2)에서 생성될 수 있다. 제3 전자 장치(200-3)에서 수행이 가능한 단위 기능이 디스플레이 기능, 객체 인식 기능, 맵 기능인 경우를 가정하면, 도 12c에 도시된 바와 같이 단위 기능에 대한 정보(1230)가 제3 전자 장치(200-3)에서 생성될 수 있다. 도 12a에서 설명한 내용이 동일하게 적용될 수 있다는 점에서 중복되는 내용은 생략하기로 한다.
도 13은 본 개시의 일 실시 예에 따른 레시피에 대한 정보를 설명하기 위한 도면이다.
도 13을 참조하면, 전자 장치(100)에 저장된 레시피에 대한 정보(1310)는 다양한 소스 코드로 작성되어 생성될 수 있다. 이때, 레시피에 대한 정보(1310)는 다양한 전자 장치에서도 호환되어 사용될 수 있도록 표준화될 수 있다. 또한, 레시피에 대한 정보(1310)는 앱 마켓 등의 서버를 통해 수신되어 메모리(120)에 저장될 수 있다.
구체적으로, 레시피에 대한 정보(1310)에서 “jobs”은 수행되는 단위 기능 및 복수의 단위 기능 간의 관계(즉, 복수의 단위 기능이 병렬적 또는 순차적으로 수행되는지, 반복되는지 등)를 나타내는 항목을 지칭할 수 있다. “run”은 수행되는 단위 기능에 대한 구체적인 정보로서 네트워크 주소 및 방식 등을 나타내는 항목이며, “require”는 단위 기능에 대한 요구 정보를 나타내는 항목이며, “priority”는 우선순위 정보를 나타내는 항목을 지칭할 수 있다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이며, 도 15는 본 개시의 일 실시 예에 따른 전자 장치의 부가적인 구성을 설명하기 위한 블록도이다.
도 14를 참조하면, 전자 장치(100)는 통신부(110), 메모리(120), 프로세서(130)를 포함할 수 있다.
통신부(110)는 유선 또는 무선의 다양한 통신 방식에 따라 다양한 유형의 외부 장치(예: 스마트폰 등의 사용자 단말 장치, 서버 등)와 다양한 유형의 데이터를 송수신할 수 있다. 이때, 통신부(110)는 외부 장치와 직접(direct) 통신을 수행하거나, 다양한 통신망을 통해 다른 외부 장치를 경유하여(또는 중계하여) 외부 장치와 통신을 수행할 수 있다.
통신부(110)는 외부 장치로부터 정보를 수신하고, 수신된 정보를 프로세서(130)로 전달할 수 있다. 또한, 통신부(110)는 프로세서(130)의 제어에 따라 외부 장치로 정보를 전송할 수 있다.
이를 위해, 통신부(110)는 유무선 통신 방식에 따른 네트워크 인터페이스(Network Interface) 또는 네트워크 칩을 포함할 수 있다. 여기서, 네트워크 인터페이스(Network Interface)는 각 통신 방식에 따른 회로(circuitry)를 포함할 수 있으며, 무선 통신 방식의 경우 안테나 등을 더 포함할 수 있다. 예를 들어, 통신부(110)는 와이파이(WiFi(Wi-Fi)) 통신 방식을 이용하는 와이파이 칩, 블루투스(Bluetooth) 통신 방식을 이용하는 블루투스 칩, NFC(near field communication) 통신 방식을 이용하는 NFC 칩, 이동 통신 방식(예: LTE(long-term evolution), LTE-A(LTE Advance), 5G(5th Generation), CDMA(code division multiple access), WCDMA(wideband CDMA))을 이용하는 무선 통신 칩 및 적외선 통신 방식을 이용하는 적외선 통신 칩 중 적어도 하나를 포함할 수 있다. 나아가, 통신부(110)는 유선 통신을 수행하는 이더넷 모듈(미도시) 및 USB 모듈(미도시) 중 적어도 하나를 포함할 수 있다. 한편, 통신부(110)는 상술한 예에 한정되지 아니하고, 기술의 발전에 따라 새롭게 등장하는 통신 방식에 따라 통신을 수행하도록 변형될 수 있다.
메모리(120)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 다양한 데이터를 저장하기 위한 구성이다.
이를 위해, 메모리(120)는 데이터 또는 정보를 일시적 또는 영구적으로 저장하는 하드웨어로 구성될 수 있다. 예를 들어, 메모리(120)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(120)에는 전자 장치(100) 또는 프로세서(130)의 동작에 필요한 적어도 하나의 인스트럭션(instruction), 프로그램 또는 데이터가 저장될 수 있다. 여기서, 인스트럭션은 전자 장치(100) 또는 프로세서(140)의 동작을 지시하는 부호 단위로서, 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 것일 수 있다. 프로그램은 작업 단위의 특정 작업을 수행하는 일련의 인스트럭션의 집합체(instruction set)일 수 있다. 데이터는 문자, 수, 영상 등을 나타낼 수 있는 비트 또는 바이트 단위의 상태 정보일 수 있다.
또한, 메모리(120)에는 센서(160)에 의해 감지된 정보, 프로세서(130)에 의해 처리된 정보, 전자 장치(100)가 수행 중인 동작에 대한 정보 등과 같은 다양한 정보가 저장될 수 있다. 메모리(120)에 저장된 정보는 프로세서(130)에 의해 액세스될 수 있으며, 예를 들어, 프로세서(130)에 의해 메모리(120)에 저장된 인스트럭션, 프로그램 또는 데이터에 대한 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
프로세서(130)는 CPU(Central Processing Unit), AP(Application Processor) 등과 같은 범용 프로세서, GPU(Graphic Processing Unit), VPU(Vision Processing Unit) 등과 같은 그래픽 전용 프로세서, NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서 등으로 구현될 수 있다. 또한, 프로세서(130)는 적어도 하나의 인스트럭션 또는 모듈을 로드하기 위한 휘발성 메모리를 포함할 수 있다.
도 15를 참조하면, 전자 장치(100)는 통신부(110), 메모리(120), 프로세서(130) 외에도, 디스플레이(140), 입력 인터페이스(150), 센서(160), 스피커(170) 중 적어도 하나를 더 포함할 수 있다.
디스플레이(140)는 시각적으로 정보 또는 데이터를 출력하는 장치이다. 디스플레이(140)는 이미지 프레임을 픽셀로 구동될 수 있는 디스플레이(140)의 일 영역 또는 전체 영역에 표시할 수 있다. 디스플레이(140)의 적어도 일부는 플렉서블 디스플레이(flexible display)의 형태로 전자 장치(100)의 전면 영역 및, 측면 영역 및 후면 영역 중 적어도 하나에 결합될 수도 있다. 플렉서블 디스플레이는 종이처럼 얇고 유연한 기판을 통해 손상 없이 휘거나 구부리거나 말 수 있는 것을 특징으로 할 수 있다.
입력 인터페이스(150)는 다양한 사용자 명령을 수신하여 프로세서(130)로 전달할 수 있다. 즉, 프로세서(130)는 입력 인터페이스(150)를 통해 사용자로부터 입력된 사용자 명령을 인지할 수 있다. 여기서, 사용자 명령은 사용자의 터치 입력(터치 패널), 키(키보드) 또는 버튼(물리 버튼 또는 마우스 등) 입력, 사용자 음성(마이크) 등 다양한 방식으로 구현될 수 있다.
구체적으로, 입력 인터페이스(150)는 예를 들면, 터치 패널(미도시), 펜 센서(미도시), 키(미도시) 및 마이크(미도시) 중에서 적어도 하나를 포함할 수 있다. 터치 패널은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있으며, 이를 위해 터치 패널은 제어 회로를 포함할 수도 있다. 터치 패널은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. 펜 센서는 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는 예를 들면, 물리적인 버튼, 광학식 키 또는 키패드를 포함할 수 있다. 마이크는 사용자의 음성을 직접 수신할 수 있으며, 디지털 변환부(미도시)에 의해 아날로그 신호인 사용자의 음성을 디지털로 변환하여 오디오 신호를 획득할 수 있다.
센서(Sensor)(160)는 다양한 물리적인 신호(예: 온도, 빛, 소리, 화학 물질, 전기, 자기, 압력 등)의 양 또는 변화를 감지하는 소자를 지칭할 수 있다. 여기서, 감지된 신호는 센서(260) 또는 프로세서(220)에 의해 프로세서(120)가 해석할 수 있는 형식의 데이터로 변환될 수 있다.
센서(160)는 카메라, 마이크, 근접 센서, 조도 센서, 온도 센서, 습도 센서, 모션 센서, ToF 센서, GPS 센서 등 다양한 센서로 구현될 수 있다.
예를 들어, 카메라는 빛을 픽셀 단위로 구분하고, 각 픽셀마다 R(Red), G(Green), B(Blue) 색상에 대한 빛의 세기를 감지하여, 빛의 세기를 전기적 신호로 변환하여 객체의 색상, 형상, 명암 등을 표현하는 데이터를 획득할 수 있다. 이때, 데이터의 타입은 복수의 픽셀 각각에 대해 R, G, B 색상 값을 갖는 이미지일 수 있다. 마이크는 사용자의 음성과 같은 음파를 감지하여, 음파를 전기적 신호로 변환하여 데이터를 획득할 수 있다. 이때, 데이터의 타입은 다양한 포맷의 오디오 신호일 수 있다. 근접 센서(proximity sensor)는 주변 물체의 존재를 감지하여, 주변 물체의 존재 여부 또는 주변 물체의 근접 여부에 대한 데이터를 획득할 수 있다. 조도 센서는 전자 장치(100)의 주변 환경에 대한 광량(또는 밝기)을 감지하여, 조도에 대한 데이터를 획득할 수 있다. 온도 센서는 열복사(또는 광자)에 따라 대상 오브젝트의 온도 또는 전자 장치(100)의 주변 환경의 온도(예: 실내 온도 등)를 감지할 수 있다. 이때, 온도 센서는 적외선 카메라 등으로 구현될 수 있다. 습도 센서는 공기 중의 화학 반응에 의한 색 변화, 이온량 변화, 기전력, 전류변화 등 다양한 방식을 통해 공기 중의 수증기의 양을 감지하여 습도에 대한 데이터를 획득할 수 있다. 모션 센서는 전자 장치(100)의 이동 거리, 이동 방향, 기울기 등을 감지할 수 있다. 이를 위해, 모션 센서는 가속도 센서, 자이로(gyro) 센서, 지자기 센서 등의 결합으로 구현될 수 있다. TOF(Time Of Flight) 센서는 특정한 속도를 갖는 다양한 전자기파(예: 초음파, 적외선, 레이저 등)를 방출한 후 되돌아오는 비행 시간을 감지하여, 대상과의 거리(또는 위치)에 대한 데이터를 획득할 수 있다. GPS(Global Positioning System) 센서는 복수의 위성으로부터 전파 신호를 수신하고, 수신된 신호의 전달 시간을 이용하여 각 위성과의 거리를 각각 산출하고, 산출된 거리를 삼각측량을 이용하여 전자 장치(100)의 현재 위치에 대한 데이터를 획득할 수 있다.
다만, 상술한 센서(160)의 구현 예는 일 실시 예일 뿐이며, 이에 제한되지 아니하고 다양한 유형의 센서로 구현되는 것이 가능하다 할 것이다.
스피커(170)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 직접 소리로 출력할 수 있다.
한편, 상술한 실시 예에서는 설명의 편의를 위해 전자 장치(100) 및 복수의 타 전자 장치(200-1 내지 200-3)의 역할을 구분하여 설명하였으나, 본 개시의 전자 장치(100) 또한 단위 기능을 수행하는 전자 장치로서 복수의 전자 장치(100, 200-1 내지 200-3) 중 하나에 포함될 수 있다. 이 경우 상술한 바와 같이, 전자 장치(100)가 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 단위 기능의 수행이 가능한 것으로 식별되면, 식별된 단위 기능을 수행할 수도 있다. 이와 같은 취지에서, 타 전자 장치(200-1 내지 200-3)에 대해서도 도 14 및 도 15 등의 도면에서 설명한 내용이 적용될 수 있다는 점에서, 중복되는 내용은 생략하기로 한다.
도 16은 본 개시의 일 실시 예에 따른 흐름도를 설명하기 위한 도면이다.
본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 복수의 전자 장치(200-1 내지 200-3) 각각으로부터 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 수신하는 단계(S1610), 수신된 정보에 기초하여, 서비스의 제공을 위한 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하는 단계(S1620) 및 식별된 복수의 전자 장치(200-1 내지 200-3) 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하는 단계(S1630)를 포함한다.
구체적으로, 복수의 전자 장치(200-1 내지 200-3) 각각으로부터 각 전자 장치(200-1 내지 200-3)에서 수행 가능한 단위 기능에 대한 정보를 수신할 수 있다(S1610). 이를 위해, 전자 장치(100)는 복수의 전자 장치(200-1 내지 200-3)와 네트워크 연결이 구축될 수 있다.
다음으로, 수신된 정보에 기초하여, 서비스의 제공을 위한 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치(200-1 내지 200-3)를 식별할 수 있다(S1620).
구체적으로, 수신된 정보에 포함된 복수의 단위 기능 중에서, 레시피에 포함된 복수의 단위 기능이 존재하는지를 식별할 수 있다. 여기서, 레시피는 서비스의 제공을 위해 조합된 복수의 단위 기능을 포함할 수 있으며, 전자 장치(100)의 메모리(120)에 저장될 수 있다. 이 경우, 사용자의 명령을 통해 선택된 복수의 단위 기능을 포함하는 레시피가 생성되어 전자 장치(100)의 메모리(120)에 저장되거나, 서버로부터 수신된 레시피가 전자 장치(100)의 메모리(120)에 저장될 수도 있다.
그리고, 레시피에 포함된 복수의 단위 기능이 존재하는 것으로 식별되면, 복수의 전자 장치(200-1 내지 200-3) 중 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치(200-1 내지 200-3)를 식별할 수 있다.
여기에서, 본 개시의 제어 방법은 레시피에 포함된 하나의 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는 경우, 복수의 전자 장치(200-1 내지 200-3) 중 하나의 단위 기능 및 다른 단위 기능의 수행이 가능한 하나의 전자 장치를 하나의 단위 기능 및 다른 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다. 여기서, 연계는 하나의 전자 장치에서 단위 기능 및 다른 단위 기능이 동시에 수행되거나 또는 다른 시간에 순차적으로 수행되는 관계를 나타낼 수 있다.
이를 위해, 본 개시의 제어 방법은 요구 정보에 기초하여, 레시피에 포함된 복수의 단위 기능 각각에 대해, 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는지를 식별할 수 있다.
여기서, 요구 정보는 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 기능과 서비스의 제공을 위해 연계되어 수행되는 다른 단위 기능을 나타내는 정보를 포함할 수 있다. 한편, 요구 정보는 레시피에 포함되거나 또는 레시피와 별도의 정보로서 존재할 수 있으며, 요구 정보는 전자 장치(100)의 메모리(120)에 저장될 수 있다.
한편, 본 개시의 일 실시 예에 따른 레시피에 포함된 복수의 단위 기능 중 적어도 하나의 단위 기능에는 우선 순위가 설정될 수 있다.
여기서, 레시피에 포함된 복수의 단위 기능 중 우선 순위가 설정된 단위 기능의 수행이 가능한 복수의 전자 장치(200-1 내지 200-3)가 존재하는 경우, 식별된 복수의 전자 장치(200-1 내지 200-3) 각각으로부터 수신된 각 전자 장치에서 수행 가능한 단위 기능의 성능 정보에 기초하여, 식별된 복수의 전자 장치(200-1 내지 200-3) 각각의 스코어를 산출할 수 있다.
그리고, 식별된 복수의 전자 장치(200-1 내지 200-3) 중에서 산출된 스코어가 가장 높은 전자 장치를 우선 순위가 설정된 단위 기능에 매칭되는 전자 장치로서 식별할 수 있다.
다음으로, 식별된 복수의 전자 장치(200-1, 200-2) 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송할 수 있다(S1630).
구체적인 일 실시 예로서, 복수의 단위 기능 중 제1 단위 기능을 수행하기 위한 신호를 식별된 복수의 전자 장치(200-1, 200-2) 중 제1 단위 기능의 수행이 가능한 제1 전자 장치(200-1)로 전송할 수 있다.
그리고, 제1 단위 기능을 수행함으로써 획득되는 데이터에 기초하여 복수의 단위 기능 중 제2 단위 기능을 수행하기 위한 신호를 복수의 전자 장치(200-1, 200-2) 중 제2 단위 기능의 수행이 가능한 제2 전자 장치(200-2)로 전송할 수 있다. 여기서, 제1 단위 기능의 수행에 따라 획득되는 데이터는 제2 단위 기능을 수행하는데 이용될 수 있다. 예를 들어, 제1 단위 기능이 카메라 기능이고 제2 단위 기능이 표시 기능인 경우를 가정하면, 제1 단위 기능의 수행에 따라 카메라를 통해 획득된 이미지는 제2 단위 기능인 디스플레이에 표시하는데 이용될 수 있다.
여기에서, 제1 단위 기능의 수행에 따라 획득되는 데이터는, 전자 장치(100)를 통해 제1 전자 장치(200-1)에서 제2 전자 장치(200-2)로 전송되거나, 제1 전자 장치(200-1)에서 제2 전자 장치(200-2)로 전송될 수 있다.
예를 들어, 제1 단위 기능의 수행에 따라 획득되는 데이터는, 전자 장치(100)를 통해 제1 전자 장치(200-1)에서 제2 전자 장치(200-2)로 전송될 수 있다. 구체적으로, 제1 전자 장치(200-1)가 제1 단위 기능의 수행에 따라 획득된 데이터를 전자 장치(100)로 전송하는 경우, 전자 장치(100)는 제1 전자 장치(200-1)로부터 데이터가 수신되면, 수신된 데이터를 제2 전자 장치(200-2)로 전송할 수 있다. 이에 따라, 제1 전자 장치(200-1)에서 획득되는 데이터는 제1 전자 장치(200-1)에서 전자 장치(100)를 경유하여 제2 전자 장치(200-2)로 전송될 수 있다.
이와 다른 예를 들어, 제1 단위 기능의 수행에 따라 획득되는 데이터는, 제1 전자 장치(200-1)에서 제2 전자 장치(200-2)로 직접 전송될 수 있다. 이를 위해, 제1 전자 장치(200-1)에서 획득되는 데이터를 제2 전자 장치(200-2)로 전송하도록 제어하는 신호를 제1 전자 장치(200-1)로 전송할 수 있다. 이에 따라, 제1 전자 장치(200-1)에서 획득되는 데이터는 전자 장치(100)를 경유하지 않고 제1 전자 장치(200-1)에서 제2 전자 장치(200-2)로 전송될 수 있다.
한편, 본 개시의 일 실시 예로서, 전술한 S1620 단계 이후에 레시피에 포함된 복수의 단위 기능의 수행이 가능한 복수의 전자 장치(200-1 내지 200-3)가 존재하는 것으로 식별되면, 레시피에 대응되는 서비스의 제공이 가능함을 나타내는 UI(User Interface)를 디스플레이(140)에 표시할 수 있다.
여기서, UI는 레시피에 대응되는 서비스의 제공이 가능함을 나타내기 위한 것(즉, 레시피에 포함된 복수의 단위 기능의 실행이 가능한 준비상태임을 사용자에게 알리기 위한 것)으로서, 텍스트, 이미지 등과 같은 시각 정보를 포함할 수 있다. 예를 들어, UI는 디스플레이(140)의 일 영역(예: 모서리에 해당하는 영역 등)에 표시되는 비주얼 피드백(visual feedback)(예: 엣지 라이팅(edge lighting))의 형태로 구현될 수 있다. 또는, UI는 디스플레이(140)의 일 영역(예: 중앙에 해당하는 영역 등)에 표시되는 팝업 메시지와 같은 형태로 구현될 수 있다. 또한, UI는 디스플레이(140)의 일 영역(예: 상단 영역)에 표시되는 알림 바(bar)와 같은 형태로 구현될 수 있다. 다만, 이는 일 실시 예일 뿐이며, UI는 음성, 알림음 등과 같은 소리 정보를 스피커를 통해 제공하거나, 진동 등과 같은 촉각 정보를 햅틱 모터를 통해 제공할 수도 있다.
여기에서, UI는 레시피를 실행하기 위한 오브젝트를 포함할 수 있다. 이 경우, 오브젝트를 선택하는 사용자 명령이 수신되면, 식별된 복수의 전자(200-1 내지 200-3) 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하는 것을 포함할 수 있다. 즉, 이 경우, S1630 단계에서 설명한 바와 같이 식별된 복수의 전자 장치(200-1 내지 200-3) 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송할 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서(130)에 의해 실행될 경우, 프로세서(130)가 직접, 또는 상기 프로세서(130)의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 상기하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 상기 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 상기 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
100: 전자 장치
200-1, 200-2, 200-3: 타 전자 장치

Claims (20)

  1. 전자 장치에 있어서,
    통신부;
    서비스의 제공을 위한 복수의 단위 기능이 포함된 레시피에 대한 정보가 저장된 메모리; 및
    상기 통신부를 통해 복수의 전자 장치 각각으로부터 각 전자 장치에서 수행 가능한 단위 기능에 대한 정보가 수신되면, 상기 수신된 정보에 기초하여 상기 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하고,
    상기 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 상기 통신부를 제어하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 수신된 정보에 포함된 복수의 단위 기능 중에서, 상기 레시피에 포함된 복수의 단위 기능이 존재하는지를 식별하고,
    상기 레시피에 포함된 복수의 단위 기능이 존재하는 것으로 식별되면, 상기 복수의 전자 장치 중 상기 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하는, 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 레시피에 포함된 하나의 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는 경우, 상기 복수의 전자 장치 중 상기 하나의 단위 기능 및 상기 다른 단위 기능의 수행이 가능한 하나의 전자 장치를 상기 하나의 단위 기능 및 상기 다른 단위 기능에 매칭되는 전자 장치로서 식별하는, 전자 장치.
  4. 제3항에 있어서,
    상기 메모리는,
    상기 레시피에 포함된 상기 복수의 단위 기능 중 적어도 하나의 기능과 상기 서비스의 제공을 위해 연계되어 수행되는 다른 단위 기능을 나타내는 요구 정보를 더 저장하며,
    상기 프로세서는,
    상기 요구 정보에 기초하여, 상기 레시피에 포함된 복수의 단위 기능 각각에 대해, 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는지를 식별하는, 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 레시피에 포함된 복수의 단위 기능 중 우선 순위가 설정된 단위 기능의 수행이 가능한 복수의 전자 장치가 식별된 경우, 상기 식별된 복수의 전자 장치 각각으로부터 수신된 각 전자 장치에서 수행 가능한 단위 기능의 성능 정보에 기초하여 상기 식별된 복수의 전자 장치 각각의 스코어를 산출하고,
    상기 식별된 복수의 전자 장치 중에서 산출된 스코어가 가장 높은 전자 장치를 상기 우선 순위가 설정된 단위 기능에 매칭되는 전자 장치로서 식별하는, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 레시피에 포함된 상기 복수의 단위 기능 중 제1 단위 기능을 수행하기 위한 신호를 상기 식별된 복수의 전자 장치 중 상기 제1 단위 기능에 매칭되는 제1 전자 장치로 전송하도록 상기 통신부를 제어하고,
    상기 레시피에 포함된 상기 복수의 단위 기능 중 제2 단위 기능을 상기 제1 단위 기능의 수행에 따라 획득되는 데이터에 기초하여 수행하기 위한 신호를, 상기 식별된 복수의 전자 장치 중 상기 제2 단위 기능에 매칭되는 제2 전자 장치로 전송하도록 상기 통신부를 제어하는 전자 장치.
  7. 제6항에 있어서,
    상기 제1 단위 기능의 수행에 따라 획득되는 데이터는,
    상기 제1 전자 장치에서 상기 제2 전자 장치로 전송되거나, 상기 전자 장치를 통해 상기 제1 전자 장치에서 상기 제2 전자 장치로 전송되는, 전자 장치.
  8. 제1항에 있어서,
    디스플레이;를 더 포함하고,
    상기 프로세서는,
    상기 복수의 전자 장치가 식별되면, 상기 레시피에 대응되는 상기 서비스의 제공이 가능함을 나타내는 UI(User Interface)를 표시하도록 상기 디스플레이를 제어하는, 전자 장치.
  9. 제8항에 있어서,
    상기 UI는, 상기 레시피를 실행하기 위한 오브젝트를 포함하며,
    상기 프로세서는,
    상기 오브젝트를 선택하는 사용자 명령이 수신되면, 상기 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하도록 상기 통신부를 제어하는, 전자 장치.
  10. 제1항에 있어서,
    상기 레시피에 대한 정보는, 서버로부터 상기 통신부를 통해 수신되어 상기 메모리에 저장되는, 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    복수의 전자 장치 각각으로부터 각 전자 장치에서 수행 가능한 단위 기능에 대한 정보를 수신하는 단계;
    상기 수신된 정보에 기초하여 서비스의 제공을 위한 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하는 단계; 및
    상기 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하는 단계;를 포함하는 제어 방법.
  12. 제11항에 있어서,
    상기 복수의 전자 장치를 식별하는 단계는,
    상기 수신된 정보에 포함된 복수의 단위 기능 중에서, 상기 레시피에 포함된 복수의 단위 기능이 존재하는지를 식별하는 단계; 및
    상기 레시피에 포함된 복수의 단위 기능이 존재하는 것으로 식별되면, 상기 복수의 전자 장치 중 상기 레시피에 포함된 복수의 단위 기능에 매칭되는 복수의 전자 장치를 식별하는 단계;를 포함하는, 제어 방법.
  13. 제12항에 있어서,
    상기 복수의 전자 장치를 식별하는 단계는,
    상기 레시피에 포함된 하나의 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는 경우, 상기 복수의 전자 장치 중 상기 하나의 단위 기능 및 상기 다른 단위 기능의 수행이 가능한 하나의 전자 장치를 상기 하나의 단위 기능 및 상기 다른 단위 기능에 매칭되는 전자 장치로서 식별하는, 제어 방법.
  14. 제13항에 있어서,
    상기 레시피에 포함된 상기 복수의 단위 기능 중 적어도 하나의 기능과 상기 서비스의 제공을 위해 연계되어 수행되는 다른 단위 기능을 나타내는 요구 정보에 기초하여, 상기 레시피에 포함된 복수의 단위 기능 각각에 대해, 단위 기능과 연계되어 수행되는 다른 단위 기능이 존재하는지를 식별하는 단계;를 더 포함하는, 제어 방법.
  15. 제11항에 있어서,
    상기 레시피에 포함된 복수의 단위 기능 중 우선 순위가 설정된 단위 기능의 수행이 가능한 복수의 전자 장치가 식별된 경우, 상기 식별된 복수의 전자 장치 각각으로부터 수신된 각 전자 장치에서 수행 가능한 단위 기능의 성능 정보에 기초하여, 상기 식별된 복수의 전자 장치 각각의 스코어를 산출하는 단계; 및
    상기 식별된 복수의 전자 장치 중에서 산출된 스코어가 가장 높은 전자 장치를 상기 우선 순위가 설정된 단위 기능에 매칭되는 전자 장치로서 식별하는 단계;를 포함하는, 제어 방법.
  16. 제11항에 있어서,
    상기 전송하는 단계는,
    상기 복수의 단위 기능 중 제1 단위 기능을 수행하기 위한 신호를 상기 식별된 복수의 전자 장치 중 상기 제1 단위 기능의 수행이 가능한 제1 전자 장치로 전송하는 단계; 및
    상기 제1 단위 기능을 수행함으로써 획득되는 데이터에 기초하여 상기 복수의 단위 기능 중 제2 단위 기능을 수행하기 위한 신호를 상기 복수의 전자 장치 중 상기 제2 단위 기능의 수행이 가능한 제2 전자 장치로 전송하는 단계;를 더 포함하는, 제어 방법.
  17. 제16항에 있어서,
    상기 제1 단위 기능의 수행에 따라 획득되는 데이터는,
    상기 제1 전자 장치에서 상기 제2 전자 장치로 전송되거나, 상기 전자 장치를 통해 상기 제1 전자 장치에서 상기 제2 전자 장치로 전송되는, 제어 방법.
  18. 제11항에 있어서,
    상기 복수의 전자 장치가 식별되면, 상기 레시피에 대응되는 상기 서비스의 제공이 가능함을 나타내는 UI(User Interface)를 표시하는 단계;를 더 포함하는, 제어 방법.
  19. 제18항에 있어서,
    상기 UI는, 상기 레시피를 실행하기 위한 오브젝트를 포함하며,
    상기 신호를 전송하는 단계는,
    상기 오브젝트를 선택하는 사용자 명령이 수신되면, 상기 식별된 복수의 전자 장치 각각으로 매칭되는 각 단위 기능을 수행하기 위한 신호를 전송하는 것을 포함하는, 제어 방법.
  20. 제11항에 있어서,
    상기 레시피에 대한 정보는, 서버로부터 수신되어 상기 전자 장치의 메모리에 저장되는, 제어 방법.
KR1020200041596A 2020-04-06 2020-04-06 전자 장치 및 그의 제어 방법 KR20210123859A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200041596A KR20210123859A (ko) 2020-04-06 2020-04-06 전자 장치 및 그의 제어 방법
PCT/KR2021/004200 WO2021206385A1 (en) 2020-04-06 2021-04-05 Electronic apparatus and controlling method thereof
EP21785017.1A EP4070510A4 (en) 2020-04-06 2021-04-05 ELECTRONIC DEVICE AND CONTROL METHOD THEREOF
US17/222,509 US11900166B2 (en) 2020-04-06 2021-04-05 Electronic apparatus and controlling method thereof
US18/320,646 US20230289232A1 (en) 2020-04-06 2023-05-19 Electronic apparatus and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200041596A KR20210123859A (ko) 2020-04-06 2020-04-06 전자 장치 및 그의 제어 방법

Publications (1)

Publication Number Publication Date
KR20210123859A true KR20210123859A (ko) 2021-10-14

Family

ID=77921876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200041596A KR20210123859A (ko) 2020-04-06 2020-04-06 전자 장치 및 그의 제어 방법

Country Status (4)

Country Link
US (2) US11900166B2 (ko)
EP (1) EP4070510A4 (ko)
KR (1) KR20210123859A (ko)
WO (1) WO2021206385A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210334227A1 (en) * 2020-04-24 2021-10-28 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods of conveying information in a vehicle according to a hierarchy of preferences
US11622006B2 (en) * 2020-11-04 2023-04-04 Panduit Corp. Single pair ethernet sensor device and sensor network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
KR101495915B1 (ko) 2007-10-03 2015-02-25 삼성전자주식회사 근거리 통신망 내 통신 방법 및 시스템
US8553625B2 (en) 2008-10-31 2013-10-08 Samsung Electronics Co., Ltd. Method and system for performing tasks on collaborating wireless devices
KR20140055321A (ko) 2012-10-31 2014-05-09 삼성전자주식회사 홈 네트워크 시스템에서 서비스 맵 기반으로 홈 디바이스를 제어하는 방법 및 장치
KR101556537B1 (ko) 2013-05-21 2015-10-02 팅크웨어(주) 전자 기기, 서버, 전자 기기의 제어 방법 및 위치 정보 제공 방법
US8782122B1 (en) 2014-01-17 2014-07-15 Maximilian A. Chang Automated collaboration for peer-to-peer electronic devices
KR102264050B1 (ko) 2014-11-28 2021-06-11 삼성전자주식회사 전자 장치들 간에 기능을 공유하는 방법 및 장치
CN105740273B (zh) 2014-12-10 2021-07-27 深圳富泰宏精密工业有限公司 服务提供方法及***
KR20170033121A (ko) 2015-09-16 2017-03-24 삼성전자주식회사 서비스 처리 방법 및 이를 구현하는 전자 장치
CN105516260B (zh) 2015-11-27 2019-01-08 北京邮电大学 物联网服务组合***
KR102524674B1 (ko) 2016-12-14 2023-04-21 삼성전자주식회사 전자 장치 및 그의 알림 서비스 제공 방법
KR102411124B1 (ko) 2017-10-27 2022-06-21 삼성전자주식회사 전자 장치 및 전자 장치에서 외부 장치를 이용한 태스크 수행 방법
KR102385263B1 (ko) * 2018-01-04 2022-04-12 삼성전자주식회사 이동형 홈 로봇 및 이동형 홈 로봇의 제어 방법
US20190238358A1 (en) * 2018-02-01 2019-08-01 Bby Solutions, Inc. Automatic device orchestration and configuration
KR102484647B1 (ko) 2018-07-11 2023-01-04 삼성전자주식회사 전자 장치의 제어방법 및 컴퓨터 판독 가능 기록매체

Also Published As

Publication number Publication date
WO2021206385A1 (en) 2021-10-14
US20210311797A1 (en) 2021-10-07
US11900166B2 (en) 2024-02-13
EP4070510A4 (en) 2023-01-18
EP4070510A1 (en) 2022-10-12
US20230289232A1 (en) 2023-09-14

Similar Documents

Publication Publication Date Title
KR102425818B1 (ko) 스크린 미러링 서비스 제공장치 및 방법
KR102529120B1 (ko) 영상을 획득하는 방법, 디바이스 및 기록매체
KR102251483B1 (ko) 영상을 처리하는 전자 장치 및 방법
US10146412B2 (en) Method and electronic device for providing information
US10003785B2 (en) Method and apparatus for generating images
KR102481486B1 (ko) 오디오 제공 방법 및 그 장치
US20230289232A1 (en) Electronic apparatus and controlling method thereof
EP2993594A1 (en) Content search method and electronic device implementing same
KR20150136981A (ko) 사물 인터넷 기기들을 제어하기 위한 제어 장치 및 방법
US11681411B2 (en) Method of selecting one or more items according to user input and electronic device therefor
US20150264267A1 (en) Method for guiding shooting location of electronic device and apparatus therefor
US10943404B2 (en) Content output method and electronic device for supporting same
US20150205567A1 (en) Method and apparatus for controlling user interface
US20160099897A1 (en) Information sharing method and electronic device thereof
EP3547107B1 (en) Method for providing information mapped between a plurality of inputs and electronic device for supporting the same
CN108076214B (zh) 电子设备以及在该电子设备中执行的数据传输方法
US10908787B2 (en) Method for sharing content information and electronic device thereof
EP2945056A1 (en) Method and apparatus for controlling user interface
US10582156B2 (en) Electronic device for performing video call and computer-readable recording medium
KR102507536B1 (ko) 콘텐츠 정보를 제공하기 위한 방법 및 그 전자 장치
KR20160043588A (ko) 컨텐츠 서비스 제공 방법 및 장치
US9628716B2 (en) Method for detecting content based on recognition area and electronic device thereof
US20160162106A1 (en) Method and electronic device for controlling touch input
KR20160070511A (ko) 다른 전자 장치와 연결되는 전자 장치 및 그 제어 방법
CN111601399A (zh) 电子装置和用于控制电子装置的方法

Legal Events

Date Code Title Description
A201 Request for examination