WO2022173144A1 - 전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법 - Google Patents

전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법 Download PDF

Info

Publication number
WO2022173144A1
WO2022173144A1 PCT/KR2022/001120 KR2022001120W WO2022173144A1 WO 2022173144 A1 WO2022173144 A1 WO 2022173144A1 KR 2022001120 W KR2022001120 W KR 2022001120W WO 2022173144 A1 WO2022173144 A1 WO 2022173144A1
Authority
WO
WIPO (PCT)
Prior art keywords
provisioning
electronic device
information
various embodiments
processor
Prior art date
Application number
PCT/KR2022/001120
Other languages
English (en)
French (fr)
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 EP22752904.7A priority Critical patent/EP4210282A4/en
Priority to US17/679,524 priority patent/US20220264297A1/en
Publication of WO2022173144A1 publication Critical patent/WO2022173144A1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Definitions

  • Cloud computing is being utilized to process data generated in the Internet of Things (IoT).
  • IoT Internet of Things
  • cloud computing as the amount of data or devices constituting the IoT increases, a load is placed on the system, security or privacy issues may occur in the process of data delivery and/or storage, and an error may occur in the cloud server or If you are not connected to the Internet, there may be a problem that the service cannot be provided.
  • Edge computing is a form of distributed computing technology that utilizes a local edge network to control devices connected within the network and share computations and resources.
  • Edge computing technology improves response speed by utilizing the edge network for devices that require real-time response, and because it performs calculations within the edge network without delivering large amounts of data to the cloud, it can increase network bandwidth and reduce cloud traffic.
  • privacy and security can be maximized because related processing can be performed within the edge network without exposing personal information.
  • Registration and management of IoT devices in an edge computing environment may be performed by a cloud server.
  • the cloud server authenticates all connected IoT devices and stores them in a database, but frequent service access for device authentication causes an increase in cloud server traffic.
  • Various embodiments of the present document enable a provisioning operation to be performed by a device in a local network in an edge computing service, and for this, a method for determining a provisioning device to perform a provisioning operation may be provided.
  • An electronic device includes a communication module and a processor operatively connected to the communication module, and the processor uses the communication module to present device information of the electronic device in a local network. transmits to at least one external device or a cloud server, and confirms at least one determined as a provisioning device of the edge computing service among the electronic device or the at least one external device, and the electronic device as the provisioning device When it is determined, using the communication module to receive authentication information of at least one device that will provide the edge computing service from the cloud server, and to perform a provisioning operation related to the edge computing service based on the authentication information can be set.
  • a provisioning device it is possible to determine a provisioning device to perform a provisioning operation related to an edge computing service among devices in a local network, and accordingly, an electronic device and an edge capable of performing provisioning on a local network without the help of a cloud.
  • a method may be provided for determining a provisioning device in a computing network.
  • FIGS. 2A and 2B illustrate respective devices of an edge computing system according to various embodiments.
  • FIG. 3 is a block diagram of a user device in a network environment according to various embodiments.
  • FIG. 5 is a block diagram of a cloud server according to various embodiments of the present disclosure.
  • FIG. 6 illustrates a configuration of an electronic device for determining a provisioning device according to various embodiments of the present disclosure.
  • FIG. 7 is a flowchart of a method for determining a provisioning device according to various embodiments.
  • FIG. 9 is a flowchart of determining a provisioning device through scoring of each device according to various embodiments of the present disclosure.
  • FIG. 10 is a flowchart of determining a provisioning device through scoring of each device according to various embodiments of the present disclosure
  • FIG. 11 illustrates an operation of each device when a change event of a provisioning device occurs according to various embodiments of the present disclosure.
  • FIG. 12 illustrates an operation of each device when a provisioning device is removed according to various embodiments of the present disclosure.
  • FIG. 14 illustrates a process of synchronizing authentication information according to various embodiments.
  • 15 illustrates a process of synchronizing authentication information according to various embodiments.
  • 16A and 16B illustrate a user interface provided by a user device for controlling an IoT device according to various embodiments of the present disclosure.
  • FIG 1 illustrates devices in an IoT environment (or IoT system) according to various embodiments.
  • an internet of things (IoT) system (or edge computing system) 100 includes at least one leaf device 120 (leaf device), at least one edge device 110 (edge device), and a user. It may include a device 130 (user device) and a cloud network 140 (cloud network).
  • the leaf device 120 , the edge device 110 , and the user device 130 may be disposed in adjacent locations (eg, in a house) and connected to the same home network (eg, the same access point (AP)).
  • the cloud network 140 may be remotely located, but may be connected to the leaf device 120 , the edge device 110 , and the user device 130 through the Internet.
  • an edge computing service transmits data acquired from a leaf device to an edge device located adjacent to the leaf device and located on the same home network, and processing a series of data on the edge device and technology for providing other services.
  • a device for acquiring data through a sensor eg, a camera 121, a refrigerator 122, a light bulb 123a, a digital thermometer 123b, or a motion sensor 123c
  • a leaf device may be defined by other names, such as a client device, an end device, a sensor device, an IoT device, or a slave device of an edge computing service.
  • the edge device may be defined as another name such as an edge server, a server device, a master device, a hub device, or a service device of an edge computing service.
  • the leaf device 120, the edge device 110, and the user device 130 are classified and described according to the function or operation of each device in the edge computing system 100, but the same A device (eg, a smart phone or a tablet PC) may operate as any one of the leaf device 120 , the edge device 110 , and the user device 130 in some cases.
  • the names or definitions of devices described in various embodiments of the present document do not limit the functions and/or operations of the devices.
  • the leaf device 120 may collect various data using a sensor as an end point of the IoT system 100 and transmit it to the edge device 110 or the cloud network 140 . Also, the leaf device 120 may perform various operations according to a command transmitted from the cloud network 140 or the user device 130 .
  • a device such as a camera 121 , a refrigerator 122 , a light bulb 123a , a digital thermometer 123b , or a motion sensor 123c may be the leaf device 120 .
  • the leaf device 120 may access the cloud network 140 through the Internet, and among the leaf devices 120 , devices that do not support Internet Protocol (IP) (eg, the light bulb 123a), or The digital thermometer 123b) transmits the sensed data to the hub device 124 through supported non-IP-based communication (eg, Bluetooth, or Zigbee), and the hub device 124 connects to the cloud network 140 through the Internet. Sensing data of each of the leaf devices 123a and 123b may be transmitted.
  • IP Internet Protocol
  • non-IP-based communication eg, Bluetooth, or Zigbee
  • the cloud network 140 is located on the network and may include various server devices (eg, an IoT management server or an IoT hub server) that support cloud computing services in the IoT system 100 .
  • the cloud network 140 may perform computing processing on the sensing data received from the leaf device 120 and transmit a command for controlling the leaf device 120 .
  • the cloud network 140 may perform a function of operating and managing a specific device in the home network to operate as the edge device 110 .
  • the cloud network 140 includes an IoT server (eg, an IoT management server or an IoT hub server), and the IoT server performs registration, connection, or management of the edge device 110 and the leaf device 120 and The same edge computing service may be performed, and a module (eg, a device module and/or a service module) required for the edge computing service may be provided to the edge device 110 .
  • an IoT server eg, an IoT management server or an IoT hub server
  • the IoT server performs registration, connection, or management of the edge device 110 and the leaf device 120 and The same edge computing service may be performed, and a module (eg, a device module and/or a service module) required for the edge computing service may be provided to the edge device 110 .
  • a module eg, a device module and/or a service module
  • the cloud network 140 may perform a provisioning operation of a cloud computing service or an edge computing service.
  • the cloud network 140 eg, IoT server
  • provides security information eg, edge device 110, leaf device 120
  • each device eg, edge device 110, leaf device 120
  • the home network or local network, edge network.
  • security information eg, edge device 110, leaf device 120
  • each device can be authenticated based on the registered information
  • authentication-related information can be stored in the database.
  • the cloud network 140 may check whether each device on the home network has access to the edge computing service based on information registered in the database when connecting with other devices or transmitting data, and each device can We can provide software necessary to receive and process
  • the edge device 110 may directly process data received from the leaf device 120 or transmit it to the cloud network 140 (eg, an IoT server).
  • the edge device 110 may be a device including hardware and/or software resources necessary for an edge computing service, such as a TV 112 and a tablet PC 111 .
  • the edge device 110 may be connected to the cloud network 140 through the Internet, and may form a home network with the leaf device 120 .
  • a plurality of edge devices 110 may exist in the home network, and the leaf device 120 may be connected to any one of the plurality of edge devices 110 to transmit data.
  • the edge device 110 may download and execute a module (eg, a device module and/or a service module) required for an edge computing service from the cloud network 140 . .
  • the edge device 110 may perform a device-specific function (eg, an image output function of a TV), and may perform hardware at least partially simultaneously with the performance of a unique function or during an idle time that does not perform a unique function. and/or may perform edge computing services through software resources.
  • a device-specific function eg, an image output function of a TV
  • the edge device 110 may perform hardware at least partially simultaneously with the performance of a unique function or during an idle time that does not perform a unique function. and/or may perform edge computing services through software resources.
  • the user device 130 may provide various user interfaces related to edge computing services through applications. For example, the user device 130 may obtain data (eg, camera image streaming) acquired from the leaf device 120 or data as a result of processing the data in the edge device 110 or the cloud network 140 (eg, a person). recognition) can be displayed on the display. Also, the user device 130 may receive a user input such as connection of the edge device 110 and/or the leaf device 120 , or server registration, and transmit it to the cloud network 140 . A detailed configuration and operation of the user device 130 will be described in more detail with reference to FIG. 3 .
  • data eg, camera image streaming
  • the cloud network 140 e.g, a person
  • the user device 130 may receive a user input such as connection of the edge device 110 and/or the leaf device 120 , or server registration, and transmit it to the cloud network 140 .
  • FIGS. 2A and 2B illustrate respective devices of an edge computing system according to various embodiments.
  • the edge computing system 200 may include a leaf device 220 , an edge device 210 , a user device 230 , an IoT hub server 250 , and an IoT management server 240 .
  • various IoT devices may exist on the home network, and in FIG. 2 , one leaf device (eg, the camera 121 of FIG. 1 ) and one edge device ) (eg, the TV 112 of FIG. 1 ) will be described as an example.
  • the IoT management server 240 (eg, SmartThings TM server) is a server device that provides various services for determination, connection and/or operation of edge computing services, and includes a provision manager 242, a module It may include a manager 244 and an edge-leaf manager 246 .
  • the provision manager 242 may perform a relay function in the middle so that the edge device 210 can be connected to the IoT hub server 250 .
  • the provision manager 242 provides a connection string ( connection string) to the edge device 210 .
  • the module manager 244 may manage information on various modules provided for edge computing services and devices supporting each service.
  • the module required to perform the edge computing service is a device module 219 that enables the edge device 210 to transmit data transmitted from the leaf device 220 to an external server (eg, IoT hub server 250). (eg, device module 1 (219a) and/or device module 2 (219b)) and the leaf device 220 based on data transmitted from the edge device 210.
  • a service including programs executed to implement the service module 218 .
  • the edge-leaf manager 246 may manage a connection state between the edge device 210 and the leaf device 220 existing in several home networks. For example, when the edge device 210 and the leaf device 220 registered in the IoT management server 240 are connected or disconnected from each other, the edge device 210 and/or the leaf device 220 is connected or connected. The release information is transmitted to the IoT management server 240, and the IoT management server 240 can store information about which edge device 210 and leaf device 220 are connected in real time, and which service is being performed. have.
  • the leaf device 220 is connected to a specific edge device (eg, the tablet PC 111 of FIG. 1 ) to perform an edge computing service, and then disconnects from the corresponding edge device according to a handover event and releases the other edge computing service.
  • a specific edge device eg, the tablet PC 111 of FIG. 1
  • the IoT management server 240 connects the edge device 210 and the leaf device 240 changed according to the handover event. Information can be updated.
  • the IoT hub server 250 supports a cloud computing platform, and provides data necessary for the leaf device 220 and the edge device 210 in the cloud environment to be connected to each other.
  • the IoT hub server 250 may include an IoT hub 252 and a module registry 254 .
  • the module registry 254 includes modules (eg, device module 219 (eg, device module 1 (219a), device module 2 (219b)) necessary to perform an edge computing service. ), the service module 218).
  • the IoT hub 252 maintains a connection with the edge device 210 , provides a module stored in the module registry 254 to the edge device 210 , and provides multiple edge devices 210 . ) can maintain information of installed modules.
  • the edge device 210 (eg, the edge device 110 of FIG. 1 ) has device-specific functions, such as a TV, a tablet PC, or a laptop PC, and includes hardware and/or hardware for edge computing services. It can be a device that contains a software configuration (eg an edge runtime, or a base module). Edge computing services may be performed through hardware and/or software resources at least partially concurrently with the performance of the native function or during idle time when the native function is not performed.
  • a software configuration eg an edge runtime, or a base module.
  • Edge computing services may be performed through hardware and/or software resources at least partially concurrently with the performance of the native function or during idle time when the native function is not performed.
  • the edge device 210 includes an interface 212 and an operating system (OS) 214 for communicating with the cloud (eg, the IoT management server 240 and the IoT hub server 250 ). and an edge runtime 216 , a service module 218 , and a device module 219 (eg, device module 1 ( 219a ) and/or device module 2 ( 219b )).
  • OS operating system
  • the edge device 210 may require hardware conditions (eg, CPU performance) for operating the operating system 214 , and may be configured as a real time operating system (RTOS).
  • RTOS real time operating system
  • An edge runtime 216 (edge runtime) and a basic module for edge computing may be installed in the edge device 210 through a process process or software upgrade of the edge device 210 .
  • the edge runtime 216 may include a daemon program for interworking with the IoT server, and the basic module may be configured as a container as a program necessary for communication with the IoT server.
  • the basic module may be a container installed in the edge runtime 216 environment.
  • the edge device 210 when the edge device 210 is connected to a specific leaf device 220 , it may receive and install at least one module for performing an edge computing service from the IoT hub server 250 .
  • the at least one module may be determined according to the type of the leaf device 220 to be connected and/or the type of service that can be performed, and the device module 219 corresponding to the leaf device 220 ( For example, the device module 1 ( 219a ) or the device module 2 ( 219b )) and/or the service module 218 corresponding to the type of service to be performed may be included.
  • the edge device 210 is connected to a plurality of leaf devices 220 , each leaf device 220 and a corresponding device module 219 (eg, device module 1 219a and/or device module 2 ( 219b)) may be installed.
  • the edge device 210 is connected to the IoT hub server 250 by executing the edge runtime 216 in the provisioning process, and the at least one module is additionally installed according to the type of the leaf device 220 and can be executed
  • the edge device 210 may activate or deactivate the edge mode according to a command received from the IoT hub server 250 or the IoT management server 240 .
  • the edge device 210 performs only its own function (eg, an image output function of the TV), and the device module 219 (eg, device module 1 (219a) and/or device module 2 ( 219b)) and the service module 218 may not be executed.
  • the leaf device 220 (eg, the leaf device 120 of FIG. 1 ) transmits data acquired using a sensor to the connected edge device 210 or a cloud network (eg, IoT management server 240) and / or the IoT hub server 250).
  • a cloud network eg, IoT management server 240
  • IoT hub server 250 For example, in the case of an Internet protocol (IP) camera operating as the leaf device 220 , it may be connected to the edge device 210 to transmit video streaming to the edge device 210 .
  • IP Internet protocol
  • the user device 230 may be a device including a display capable of executing various applications, such as a smart phone or a tablet PC, and displaying a user interface (UI).
  • the user device 230 may install and/or execute an application for an edge computing service, and receive content and a notification generated by the leaf device 220 through the corresponding application.
  • the edge device 210 and the leaf device 220 are connected, the content or notification generated by the leaf device 220 may be transmitted to the user device 230 through the edge device 210 .
  • each configuration of the IoT hub server 250 and the IoT management server 240 of FIG. 2A is distributedly arranged by three or more plurality of server devices existing on the network, or some operations performed in each configuration It may also be distributed by several server devices.
  • FIG. 3 is a block diagram of a user device in a network environment, in accordance with various embodiments.
  • a user device eg, the user device 130 of FIG. 1 , the user device 230 of FIG. 2A
  • the edge computing system eg, the edge computing system 200 of FIG. 2A
  • the user device (or electronic device) 301 communicates with the electronic device 302 through a first network 398 (eg, a short-range wireless communication network), or 2 may communicate with the electronic device 304 or the server 308 through the network 399 (eg, a remote wireless communication network).
  • the electronic device 301 may communicate with the electronic device 304 through the server 308 .
  • the electronic device 301 includes a processor 320 , a memory 330 , an input module 350 , a sound output module 355 , a display module 360 , an audio module 370 , and a sensor module ( 376 ), interface 377 , connection terminal 378 , haptic module 379 , camera module 380 , power management module 388 , battery 389 , communication module 390 , subscriber identification module 396 ) , or an antenna module 397 .
  • at least one of these components eg, the connection terminal 378
  • some of these components are integrated into one component (eg, display module 360 ). can be
  • the processor 320 for example, executes software (eg, a program 340) to execute at least one other component (eg, a hardware or software component) of the electronic device 301 connected to the processor 320 . It can control and perform various data processing or operations. According to one embodiment, as at least part of data processing or computation, the processor 320 converts commands or data received from other components (eg, the sensor module 376 or the communication module 390 ) to the volatile memory 332 . may be stored in , process commands or data stored in the volatile memory 332 , and store the result data in the non-volatile memory 334 .
  • software eg, a program 340
  • the processor 320 converts commands or data received from other components (eg, the sensor module 376 or the communication module 390 ) to the volatile memory 332 .
  • the volatile memory 332 may be stored in , process commands or data stored in the volatile memory 332 , and store the result data in the non-volatile memory 334 .
  • the processor 320 may include a main processor 321 (eg, a central processing unit or an application processor) or a secondary processor 323 (eg, a graphic processing unit, a neural network processing unit) a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
  • a main processor 321 eg, a central processing unit or an application processor
  • a secondary processor 323 eg, a graphic processing unit, a neural network processing unit
  • NPU neural processing unit
  • an image signal processor e.g., a sensor hub processor, or a communication processor.
  • the coprocessor 323 may be, for example, on behalf of the main processor 321 while the main processor 321 is in an inactive (eg, sleep) state, or when the main processor 321 is active (eg, executing an application). ), together with the main processor 321, at least one of the components of the electronic device 301 (eg, the display module 360, the sensor module 376, or the communication module 390) It is possible to control at least some of the related functions or states.
  • the coprocessor 323 eg, image signal processor or communication processor
  • may be implemented as part of another functionally related component eg, camera module 380 or communication module 390). have.
  • the auxiliary processor 323 may include a hardware structure specialized for processing an artificial intelligence model.
  • Artificial intelligence models can be created through machine learning. Such learning may be performed, for example, in the electronic device 301 itself on which artificial intelligence is performed, or may be performed through a separate server (eg, the server 308).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but in the above example not limited
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the above example.
  • the artificial intelligence model may include, in addition to, or alternatively, a software structure in addition to the hardware structure.
  • the memory 330 may store various data used by at least one component (eg, the processor 320 or the sensor module 376 ) of the electronic device 301 .
  • the data may include, for example, input data or output data for software (eg, the program 340 ) and instructions related thereto.
  • the memory 330 may include a volatile memory 332 or a non-volatile memory 334 .
  • the program 340 may be stored as software in the memory 330 , and may include, for example, an operating system 342 , middleware 344 , or an application 346 .
  • the input module 350 may receive a command or data to be used in a component (eg, the processor 320 ) of the electronic device 301 from the outside (eg, a user) of the electronic device 301 .
  • the input module 350 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
  • the sound output module 355 may output a sound signal to the outside of the electronic device 301 .
  • the sound output module 355 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from or as part of the speaker.
  • the display module 360 may visually provide information to the outside (eg, a user) of the electronic device 301 .
  • the display module 360 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the corresponding device.
  • the display module 360 may include a touch sensor configured to sense a touch or a pressure sensor configured to measure the intensity of a force generated by the touch.
  • the audio module 370 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound. According to an embodiment, the audio module 370 acquires a sound through the input module 350 or an external electronic device (eg, a sound output module 355 ) connected directly or wirelessly with the electronic device 301 .
  • the electronic device 302 may output sound through (eg, a speaker or headphones).
  • the sensor module 376 detects an operating state (eg, power or temperature) of the electronic device 301 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the sensed state. can do.
  • the sensor module 376 may include, for example, a gesture sensor, a gyro sensor, a barometric sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 377 may support one or more specified protocols that may be used for the electronic device 301 to directly or wirelessly connect with an external electronic device (eg, the electronic device 302 ).
  • the interface 377 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal 378 may include a connector through which the electronic device 301 may be physically connected to an external electronic device (eg, the electronic device 302 ).
  • the connection terminal 378 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 379 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense.
  • the haptic module 379 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 380 may capture still images and moving images. According to one embodiment, the camera module 380 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 388 may manage power supplied to the electronic device 301 .
  • the power management module 388 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 389 may supply power to at least one component of the electronic device 301 .
  • battery 389 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 390 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 301 and an external electronic device (eg, the electronic device 302 , the electronic device 304 , or the server 308 ). It can support establishment and communication performance through the established communication channel.
  • the communication module 390 may include one or more communication processors that operate independently of the processor 320 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 390 is a wireless communication module 392 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 394 (eg, : It may include a local area network (LAN) communication module, or a power line communication module).
  • a wireless communication module 392 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 394 eg, : It may include a local area network (LAN) communication module, or a power line communication module.
  • a corresponding communication module among these communication modules is a first network 398 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 399 (eg, legacy It may communicate with the external electronic device 304 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
  • a first network 398 eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network 399 eg, legacy It may communicate with the external electronic device 304 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
  • a telecommunication network
  • the wireless communication module 392 uses the subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 396 within a communication network, such as the first network 398 or the second network 399 .
  • the electronic device 301 may be identified or authenticated.
  • the wireless communication module 392 may support a 5G network after a 4G network and a next-generation communication technology, for example, a new radio access technology (NR).
  • NR access technology includes high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency) -latency communications)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low-latency
  • the wireless communication module 392 may support a high frequency band (eg, mmWave band) to achieve a high data rate.
  • a high frequency band eg, mmWave band
  • the wireless communication module 392 uses various techniques for securing performance in a high-frequency band, for example, beamforming, massive multiple-input and multiple-output (MIMO), all-dimensional multiplexing. It may support technologies such as full dimensional MIMO (FD-MIMO), an array antenna, analog beam-forming, or a large scale antenna.
  • the wireless communication module 392 may support various requirements specified in the electronic device 301 , an external electronic device (eg, the electronic device 304 ), or a network system (eg, the second network 399 ).
  • the wireless communication module 392 includes a peak data rate (eg, 20 Gbps or more) for realizing eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency for realizing URLLC ( Example: Downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) can be supported.
  • a peak data rate eg, 20 Gbps or more
  • loss coverage eg, 164 dB or less
  • U-plane latency for realizing URLLC
  • the antenna module 397 may transmit or receive a signal or power to the outside (eg, an external electronic device).
  • the antenna module 397 may include an antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
  • the antenna module 397 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication scheme used in a communication network such as the first network 398 or the second network 399 is connected from the plurality of antennas by, for example, the communication module 390 . can be selected. A signal or power may be transmitted or received between the communication module 390 and an external electronic device through the selected at least one antenna.
  • other components eg, a radio frequency integrated circuit (RFIC)
  • RFIC radio frequency integrated circuit
  • the antenna module 397 may form a mmWave antenna module.
  • the mmWave antenna module comprises a printed circuit board, an RFIC disposed on or adjacent to a first side (eg, bottom side) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, an array antenna) disposed on or adjacent to a second side (eg, top or side) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • the command or data may be transmitted or received between the electronic device 301 and the external electronic device 304 through the server 308 connected to the second network 399 .
  • Each of the external electronic devices 302 or 304 may be the same as or different from the electronic device 301 .
  • all or a part of operations executed in the electronic device 301 may be executed in one or more external electronic devices 302 , 304 , or 308 .
  • the electronic device 301 may perform the function or service itself instead of executing the function or service itself.
  • one or more external electronic devices may be requested to perform at least a part of the function or the service.
  • One or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 301 .
  • the electronic device 301 may process the result as it is or additionally and provide it as at least a part of a response to the request.
  • cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 301 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 304 may include an Internet of things (IoT) device.
  • the server 308 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 304 or the server 308 may be included in the second network 399 .
  • the electronic device 301 may be applied to an intelligent service (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • the application 346 may provide a function of registering the edge device and the leaf device with the IoT server (eg, the IoT management server 240 of FIG. 2A ).
  • the processor 320 may discover at least one edge device and a leaf device in the home network using the communication module 390 and receive device information (eg, identification information and network information) of each device. .
  • the processor 320 may display a list of identified devices on the application.
  • the processor 320 may request registration by transmitting device information of the edge device or leaf device selected based on the user input to the IoT server.
  • the processor 320 may receive the name and/or location information of each device on the application 346 .
  • the processor 320 may receive data (eg, image streaming, sound data) acquired from a sensor of the leaf device from the leaf device from the cloud network in a state in which the edge mode of the edge device is deactivated. Thereafter, when the edge computing service is started, the data acquired from the leaf device is transmitted to the edge device, and the user device (eg, the user device 130 of FIG. 1 , the user device 230 of FIG. 2A , or the electronic device) 301 ) may receive sensor data and analysis data directly from the edge device or via a cloud network (eg, the cloud network 140 of FIG. 1 ) from the edge device.
  • data eg, image streaming, sound data
  • the processor 320 may display information related to connection or disconnection between the edge device and the leaf device on an application displayed on the display.
  • At least one of the components of the edge device or the leaf device may be configured to be at least partially identical to or similar to components of the electronic device 301 (eg, a user device).
  • the sensor of the leaf device may perform substantially the same function and/or operation as the sensor module 376 of the electronic device 301 .
  • FIG. 4 is a block diagram of an electronic device according to various embodiments of the present disclosure.
  • the electronic device 400 may include a processor 410 , a communication module 430 , and a memory 420 , and although some of the illustrated components are omitted or replaced, various embodiments of the present document are described. can be implemented
  • the electronic device 400 may be implemented as any one device on the IoT system (or edge computing system).
  • the electronic device 400 may be an edge device (or hub device) of the IoT system (eg, the tablet PC 111 or TV 112 of FIG. 1 ) or a leaf device (eg, the camera 121 of FIG. 1 ). ), a refrigerator 122, a light bulb 123a, a digital thermometer 123b, or a motion sensor 123c)).
  • the electronic device 400 may perform a unique function (eg, output an image of a TV or run an application of a tablet PC), and a provisioning device to be described later while not executing the unique function or at least partially simultaneously with the execution of the unique function When selected as an operation for selecting and/or a provisioning device, a provisioning operation may be performed.
  • a unique function eg, output an image of a TV or run an application of a tablet PC
  • an operation for the electronic device 400 to determine at least one device among a plurality of devices including the electronic device 400 as a provisioning device in an edge computing environment and the electronic device 400 as a provisioning device When selected, various embodiments of performing a provisioning operation in an edge computing environment will be described.
  • the communication module 430 supports wireless communication (eg, Wi-Fi, cellular communication) and transmits/receives data to and from another electronic device 400 (or an external device) of the IoT system or a cloud server.
  • wireless communication eg, Wi-Fi, cellular communication
  • the communication module 430 may communicate with an external device through an access point (AP) or directly communicate with another device using P2P (eg, Wi-Fi Direct, Wi-Fi Aware) communication.
  • AP access point
  • P2P eg, Wi-Fi Direct, Wi-Fi Aware
  • the memory 420 may include a volatile memory and a non-volatile memory, and may temporarily or temporarily store various data used in at least one component (eg, the processor 410 ) of the electronic device 400 . can be stored permanently.
  • the memory 420 may store various instructions that may be executed by the processor 410 . Such instructions may include various control commands including arithmetic and logical operations, data movement, or input/output that can be recognized by the processor 410 .
  • the processor 410 is a configuration capable of performing an operation or data processing related to control and/or communication of each component of the electronic device 400 , and is a communication module 430 or a memory 420 . ) may be operatively, functionally, and/or electrically connected to each component of the electronic device 400 .
  • the processor 410 can implement within the electronic device 400 , but hereinafter, at least among a plurality of devices including the electronic device 400 in an edge computing environment.
  • An operation for determining one device as a provisioning device and an operation performed by the processor 410 in various embodiments of performing a provisioning operation in an edge computing environment when the electronic device 400 is selected as the provisioning device will be described in detail decide to do
  • the processor 410 may identify at least one device that will operate as a provisioning device for the edge computing service. For example, at least one device among a plurality of devices in a local network (or home network) (eg, the first network 398 ) including the electronic device 400 may be determined as the provisioning device.
  • the local network includes a Wi-Fi network, and a plurality of devices in the local network may be connected to each other through a Wi-Fi access point.
  • the provisioning operation provided by the cloud server of the cloud computing service may be performed by the provisioning device of the local network.
  • the provisioning operation registers security information (eg, X.509, ED25519 key pair, and/or public / private key) for each device for the edge computing service, and authenticates each device based on the registered information. It may include an action to The provisioning device may synchronize authentication information stored in the database of the cloud server, store it in the memory 420 of the provisioning device, and perform a provisioning operation for each device on the local network.
  • the process of determining the provisioning device may be performed by a device (eg, the electronic device 400 ) on the home network or by a cloud server.
  • the processor 410 may receive device information of at least one external device existing in the local network using the communication module 430 .
  • the device information may include a security parameter, a performance parameter, and/or a utility parameter.
  • the security parameter may include whether the device is equipped with a trust zone or an embedded secure element (eSE), whether rooting (or developer mode) is running, or whether a security program (eg, anti-virus) is running. , may include parameters related to the current security state of the device.
  • eSE embedded secure element
  • rooting or developer mode
  • security program eg, anti-virus
  • the performance parameters may include parameters such as the maximum performance of the processor 410 and/or the memory 420 and/or the capacity of currently available resources, or a battery state.
  • the utility information may be determined according to the number of hops to the gateway and/or the role of the corresponding device in the edge computing service (eg, a gateway device, an edge device, or a leaf device).
  • the processor 410 may check device information of the electronic device 400 and transmit device information of the electronic device 400 to each device in a local network.
  • the processor 410 may determine a provisioning device based on device information of the electronic device 400 and device information of an external device received from each external device. According to various embodiments, the processor 410 may determine a provisioning device through scoring based on a parameter of each device. The processor 410 may give each weight or score to a security parameter, a performance parameter, or a utility parameter of device information at the time of scoring, and may give the highest weight to the security parameter.
  • the processor 410 may identify a plurality of devices capable of operating as a provisioning device among devices of a local network, and determine a provisioning device using device information of the identified plurality of devices. For example, when a device type is a predetermined type (eg, a TV, a camera, a hub device, a laptop PC, or a tablet PC) among several devices, it may be a candidate for a provisioning device.
  • the processor 410 may request device information and/or transmit device information of the electronic device 400 to a device that may be a candidate for a provisioning device based on the discovery process or the type information of each device received from the cloud server. have.
  • a process in which the electronic device 400 selects a provisioning device through scoring of device information will be described in more detail with reference to FIGS. 6 to 12 .
  • the electronic device 400 may receive information on the selected provisioning device from the cloud server.
  • the cloud server receives device information of each device in the local network, determines at least one provisioning device of the corresponding local network through scoring, and transmits the determined information of the provisioning device to the provisioning device, or the local network can be transmitted to any device.
  • a plurality of devices on a local network may be determined as a provisioning device.
  • the electronic device 400 or the cloud server determines the provisioning device to be selected on the local network based on at least a part of the number of devices located on the local network, the maximum hop count, or the setting of the user device. number can be determined.
  • the first provisioning device may provision some of the plurality of devices in the local network
  • the second provisioning device may provision other portions of the plurality of devices.
  • the electronic device 400 or the cloud server may select at least some of the predetermined provisioning devices again.
  • the provisioning operation of the provisioning device is stopped, malfunction or theft occurs, when other provisioning devices do not receive secure communication, or when the provisioning data of the provisioning device is deleted, the provisioning device can be determined through a re-scoring operation. have.
  • the processor 410 when the electronic device 400 is determined as the provisioning device, the processor 410 receives authentication information of at least one device on the local network that will provide the edge computing service from the cloud server using the communication module 430 . can receive
  • the processor 410 may receive authentication information of at least one device registered using the same account on the cloud server. For example, when onboarding a device to a cloud server, it can be registered based on an account on the user device.
  • the cloud server may store the authentication information of each device based on the account used for registration, and use the same account as the electronic device 400 selected as the provisioning device in the local network to store the authentication information of the registered device to the electronic device ( 400) can be provided.
  • the processor 410 may receive authentication information of at least one electronic device registered in the same location as the electronic device 400 on the cloud server. For example, when onboarding a device onto a cloud server, it can register a location ID and spatial information (eg, a room, living room, or outdoor).
  • the cloud server may store authentication information of each device based on the location set by the user when registering, and may store authentication information of the registered device in the same location as the electronic device 400 selected as the provisioning device in the local network to the electronic device. (400) can be provided.
  • the processor 410 may receive the device authentication information selected by the user in the application of the user device from the cloud server. For example, when a device is onboarded to a cloud server using a user device, an object (eg a card) indicating the device onboarded to an application of the user device is created, and the object may include a device ID. .
  • the cloud server may transmit authentication information of the device included in the device ID list connected to the object list registered in the user device to the provisioning device.
  • the processor 410 dynamically discovers each device in the local network through device discovery, transmits a device list of the discovered device to the cloud server, and receives authentication information of the device. can do.
  • FIG. 5 is a block diagram of a cloud server according to various embodiments of the present disclosure.
  • the cloud server 500 is a server device located on a cloud network (eg, the cloud network 140 of FIG. 1 ), and may be implemented as one or more server devices.
  • the cloud server 500 may include a processor 510 , a communication interface 530 , and a memory 520 , and although some of the illustrated components are omitted or substituted, various embodiments of the present document are described. can be implemented
  • the communication interface 530 transmits/receives data to and from each device (eg, the edge device 110 , the leaf device 120 and/or the user device 130 of FIG. 1 ) of the local network through the PDN. can do.
  • the memory 520 may store various information related to the cloud computing service.
  • the cloud server 500 may store authentication information of each device onboarded through the user device as a database in the memory 520 based on a registered account, location, or setting of the user device.
  • the processor 510 may perform a provisioning operation of a cloud computing service and/or an edge computing service.
  • the cloud server 500 stores security information (eg, X.509, ED25519 key pair, or public / private key) for each device on the local network in the database of the memory 520 , and the registered information Each device can be authenticated based on
  • the processor 510 may check whether each device on the local network has an access right to the edge computing service based on information registered in the database when connecting to or transmitting data with another device, and each device may provide software necessary for receiving and processing data from other devices, and may provide hardware resources on the cloud server 500 if necessary.
  • the processor 510 may receive device information of a plurality of external devices existing in the local network through the communication interface 530 .
  • the device information may include a security parameter, a performance parameter, and/or a utility parameter.
  • the processor 510 may determine a provisioning device through scoring based on a parameter of each device.
  • the processor 510 may give each weight or score to a security parameter, a performance parameter, or a utility parameter of device information at the time of scoring, and may give the highest weight to the security parameter.
  • the processor 510 may transmit information on the selected provisioning device to all devices of the corresponding local network or at least one device determined as the provisioning device through the communication interface 530 .
  • the processor 510 transmits authentication information stored in the database of the memory 520 to the communication interface 530 so that the provisioning device can perform a provisioning operation. ) through the provisioning device.
  • the processor 510 provides authentication information of at least one device registered using the same account as the provisioning device as a provisioning device, or provides authentication information of at least one electronic device registered in the same location, or , and/or authentication information of the device selected by the user in the application of the user device may be provided.
  • FIG. 6 illustrates a configuration of an electronic device for determining a provisioning device according to various embodiments of the present disclosure.
  • a provisioning processor 612 configured as a provisioning device can be used to determine
  • the illustrated configuration may include at least a part of configuration of a processor (eg, the processor 410 of FIG. 4 ), a program that may be executed by the processor, or information stored in a memory.
  • the electronic device 610 receives device information from at least one external device (eg, the TV 632, the laptop PC 634, or the IP camera 636) existing in the local network, may be stored on score information 616 .
  • the device information may include a security parameter, a performance parameter, and/or a utility parameter.
  • the electronic device 610 may store device information of the electronic device 610 in the score information 616 .
  • the score calculator 618 may calculate a score of each device by calculating each parameter of the device information according to a predetermined algorithm. For example, the score calculator 618 may give each weight or score to a security parameter, a performance parameter, or a utility parameter of the device information, and determine the sum of the scores calculated from each parameter as the score of the corresponding device. In this case, the score calculator 618 may assign a high weight to the security parameter, the performance parameter, and the utility parameter among the parameters, and may have a threshold value for each parameter.
  • Table 1 shows an example of a method in which the electronic device 610 calculates a score by using each parameter of device information.
  • Hardware security level Example: +500 points if a trusted file system exists, such as a trust zone. Rooting software security level Example: -200 points if rooting or developer mode is active Anti-virus Software security levelExample: +200 points each when using security programs, firewalls, and other security devices (up to 400 points) Etc Other security levels Example: +50 points for user authentication, edge device authentication (up to 200 points) Performance Max CPU or memory Hardware performance (up to 40 points) Example: +20 points for having a processor with a specific performance or higher, +20 points for having a memory above a specific capacity Available CPU or memory Available hardware resources (up to 40 points) Example: +20 points if average CPU occupancy and current CPU occupancy are below 50%, +10 points if average free memory and current memory free are each above a certain value battery Operating time (up to 10 points)Example: +10 points for devices connected to a power source, +10 points for devices with a certain capacity or higher in use and the
  • the provisioning manager 614 may select at least one provisioning device based on the score of each device calculated by the score calculator 618 .
  • the provisioning manager 614 may score each device. Depending on the result, each device may be classified by provisioning level, and each provisioning level may be classified according to whether or not it can operate as a provisioning device in a specific situation. Table 2 is an example of the classification of the provisioning level of each device according to the scoring result.
  • Provisioning level Explanation Level 1 Provisioning can be performed only for insensitive devices with minimal functionality without additional security measures
  • the scoring method of the score calculator and/or provisioning manager 614 and the leveling method of the provisioning device may be, for example, as follows.
  • the provisioning manager 614 may be configured to provide all of a specific device or local network device.
  • the scoring method can be selected taking into account the security level and the provisioning level.
  • the score of the device may be determined as in Equation 1 below.
  • weight 1 may be higher than the weight 2 .
  • the provisioning manager 614 may set or omit a weight when setting the basic score. If the score is set by reflecting the weight in advance, the value of each parameter can be added without considering the weight.
  • the specific score when a specific device is selected as the provisioning device, the specific score may be added to the score of the corresponding device to adjust it to have a higher score than other devices.
  • a value obtained by multiplying the provisioning level by a third weight eg, 1000
  • a difference between the scores of at least one device selected as the provisioning device and the calculated scores of the remaining devices not selected as the provisioning device may have a large value.
  • the score of the corresponding device is adjusted, and the adjusted score is propagated (eg, broadcast) to peripheral devices to notify that the device operates as a provisioning device. can
  • the provisioning manager 614 may check whether it is a current provisioning device and/or a provisioning level based on device information received from the corresponding device. For example, when performing in the edge network, a specific device in the edge network can confirm that a new device has entered, and in the case of a server, it can be confirmed that onboarding or joining or rejoining the network on an account-based basis. When the connection of the new device is confirmed, the provisioning manager 614 uses the existing score value transmitted from the device or calculated before reconnection, or calculates the score and the provisioning level value through the above procedure in the score calculator 618 . can be recalculated.
  • the provisioning processor 612 may perform a provisioning operation.
  • the provisioning processor 612 may receive authentication information of each device from the cloud server 620 , store it in a memory, and perform a provisioning operation.
  • FIG. 7 is a flowchart of a method for determining a provisioning device according to various embodiments.
  • the selection timing of the provisioning device may be determined as follows.
  • a provisioning device of the local network may be determined by a trigger of the user device. Since the provisioning device has a security issue, it may operate only when the user directly requests selection of the provisioning device through the user device. Even before the user's trigger, each device in the local network can calculate its own score and exchange the pre-calculated score with other nearby nodes, thereby reducing the time for selecting a provisioning device.
  • the provisioning device selection function basically all networks managed by the user (eg, a local network registered through a user account) select the provisioning device and provisioning operation can be performed locally. Since the provisioning device basically operates based on the local network, a network that is not connected (eg, another local network) may go through a separate provisioning device selection procedure.
  • the user activates the selection function of the provisioning device the user can increase the degree of freedom by separately selecting devices that may be candidates.
  • the cloud server may transmit a user input to each device on the local network to initiate selection of a provisioning device. According to an embodiment, when the user activates the selection function of the provisioning device, the cloud server may start selection of the provisioning device only with devices capable of performing the provisioning operation.
  • each device may update a score with neighboring devices for a predetermined time (eg, 1 minute to 10 minutes). If there is no update for a certain period of time, a provisioning device may be selected according to a procedure for selecting a provisioning device thereafter.
  • a predetermined time eg, 1 minute to 10 minutes
  • an operation of an electronic device eg, the electronic device 400 of FIG. 4 or the electronic device 600 of FIG. 6 .
  • the electronic device may determine whether the electronic device can operate as a provisioning device (PD) and/or a back up device (BD). For example, when a device type is a predetermined type (eg, a device type such as a TV, a camera, a hub device, a laptop PC, or a tablet PC) among several devices, it may be a candidate to be a provisioning device. As a result of the check, if the electronic device cannot operate as a PD, the score is set to a low value (eg 1) so that it cannot be selected as a provisioning device. have.
  • a device type eg, a device type such as a TV, a camera, a hub device, a laptop PC, or a tablet PC
  • the electronic device may acquire device information and network information of the electronic device.
  • device information may include security parameters, performance parameters, and/or utility parameters
  • network information may include information such as number of hops from a particular device (eg, gateway, AP), and/or IP address. have.
  • the electronic device may determine whether sufficient device information and network information have been collected to calculate a score of the electronic device.
  • the electronic device transmits information about a network including the electronic device and device information of devices included in the network to a cloud server (eg, the cloud server 140 of FIG. 1 or the cloud server 620 of FIG. 6 ). )) can be requested.
  • the electronic device may collect device information and network information from external electronic devices located in a specified range for a specified time using a local area network. The electronic device may acquire device information and network information until sufficient information is collected.
  • the electronic device may calculate a score of the electronic device based on each parameter and determine whether the score of the electronic device can be a PD candidate.
  • ND non-provisioning device
  • the electronic device may determine whether there is a PD currently performing a provisioning operation in the local network. If there is no PD in the current local network, in operation 741 , the electronic device may be determined to be a PD and perform a PD role.
  • the electronic device may check whether there are a sufficient number of PDs in the local network. For example, the electronic device determines whether the number of PDs is sufficient by considering the difference (or ratio) between the number of devices currently located in the local network and the number of PDs, and/or the maximum value of the number of end-to-end hops in the local network. can be checked
  • the electronic device may determine whether the score of the electronic device is higher than the score of a currently operating PD or a back up device (BD). As a result of the check, if the score of the electronic device is not high, in operation 729 , the electronic device may be determined as ND.
  • BD back up device
  • the role of the BD when the score of the electronic device is higher than the current PD, in operation 741, the role is performed as the PD, and when the score of the electronic device is lower than the PD and higher than the DB, in operation 731, the role of the BD is performed can do.
  • another device performing the PD role may check whether there is remaining time to perform the PD role, and when the time has arrived, the electronic device may change the role to the PD .
  • the electronic device checks whether the electronic device can communicate with other devices in the network while operating as a provisioning device, continues to perform the PD role if communication is possible, and performs communication , in operation 745 , it may be checked whether another device serving as a PD of the local network has departed from the network.
  • the electronic device when another device performing the role of PD is removed, in operation 747 , it is determined whether the electronic device has the highest score among BDs, and if the electronic device has the highest score among BDs, it plays the role of PD, otherwise, plays the role of BD can be performed.
  • the electronic device may delete the stored provisioning data. After deletion of the provision data, when the PD selection procedure is started again, a scoring operation based on device information may be performed.
  • operation 735 when the execution time of the PD role is expired by another device performing the PD role, it may be confirmed whether there is a PD in the current network. For example, when the device performing the PD role leaves the network (eg, moving to the outside or disconnecting from the network), the device performing the BD role may perform the PD role. As another example, when a device performing the PD role is in the network, the device performing the PD role may update the PD timer to perform the PD role.
  • FIG. 8 is a flowchart of determining a provisioning device through scoring of each device according to various embodiments of the present disclosure
  • a camera 802 , a hub device 804 , a light bulb 806 , and a TV 808 are located on a local network, and the camera 802 includes a hub device 804 and a hub device 804 .
  • the camera 802 and the light bulb 806 is connected to the hub device 804 and the TV 808
  • the TV 808 is connected to the light bulb 806 to transmit/receive device information.
  • the TV 808 and the hub device 804 may be connected to an external IP network (eg, a PDN), and the camera 802 and the light bulb 806 may each be adjacent to or signal from a device accessible to the external network. It may be connected to a device with high strength, or a user may directly select a connection target device.
  • the hub device 804 and the TV 808 may be connected to a cloud server through an IP network.
  • each device on the local network may receive device information of the corresponding device and device information of another device in the local network.
  • devices in the network may receive connection information and device information between devices in the network through a cloud server.
  • devices that cannot be directly connected to the cloud server eg, camera 802 and light bulb 806
  • devices that can be connected to the cloud server eg, hub device 804 and TV 808).
  • each device may calculate a score for that device and other devices based on parameters of the device information (eg, security parameters, performance parameters, and/or utility parameters).
  • the TV 808 may calculate the score of the TV 808 as 120 based on the device information of the TV 808 . Since the TV 808 is its own score, the number of hops can be represented as zero. The TV 808 may transmit the calculated score 120 and the number of hops 0 to the light bulb 806 connected to the TV 808 .
  • the hub device 804 may calculate the score of the hub device 804 as 150 based on the device information of the hub device 804 .
  • the hub device 804 may send the calculated score 150 and the hop count 0 to the camera 802 and light bulb 806 associated with the hub device 804 .
  • the light bulb 806 may calculate a score of the light bulb 806 to be 3 based on the device information of the light bulb 806 .
  • Light bulb 806 may have a low score, as it is a device that does not include processor and memory resources for provisioning operations.
  • Bulb 806 may also set a hop number of 1 for TV 808 and hub device 804 .
  • the light bulb 806 may transmit the score and hop count of the light bulb 806 and the score and hop count of the TV 808 and the hub device 804 to the connected hub device 804 and the TV 808 that it calculates. .
  • the camera 802 may calculate the score of the camera 802 as 52 based on the device information of the camera 802 .
  • the camera 802 may set the number of hops to 1.
  • the camera 802 may transmit the score and number of hops of the camera 802 calculated by the camera 802 and the score and number of hops of the hub device 804 to the connected hub device 804 .
  • the hub device 804 may obtain scores of the camera 802 , the light bulb 806 , and the TV 808 , and update the number of hops. For example, the hop count may be set to two because the score of the TV 808 is sent to the hub device 804 via the light bulb 806 . Hub device 804 may send each device's score and hop count to camera 802 and light bulb 806 .
  • the light bulb 806 may obtain the scores of the camera 802 , the hub device 804 , and the TV 808 , and update the hop count. Light bulb 806 may send each device's score and hop count to hub device 804 and TV 808 .
  • each device in the local network may calculate its own score and transmit it to other connected devices, and may also receive device information of other devices to calculate scores of other devices.
  • each device in the local network may calculate a score of another device by receiving the score calculated from the cloud server.
  • the cloud server may receive device information upon onboarding and/or real-time of a plurality of devices in the local network, calculate a score based on the device information of each device, and display the calculation result in the network. It can transmit to multiple devices.
  • each device may update the score for a set time period (eg, 1 minute to 10 minutes).
  • each device may confirm that a set time has elapsed and that additional device information is not updated. Accordingly, the score of each device in the local network may be determined. The score can be the same on all devices (eg camera 52, hub device 150, light bulb 3, TV 120), and the number of hops can be set differently.
  • FIG. 9 is a flowchart of determining a provisioning device through scoring of each device according to various embodiments of the present disclosure.
  • FIG. 9 is a diagram illustrating an operation of each device after the selection of a provisioning device is triggered after the scoring of FIG. 8 .
  • the user device 912 may request the cloud server 910 to select a provisioning device based on a user input on the application. Since the provisioning device has a security issue, when the user directly requests selection of the provisioning device through the user device 912 , selection of the provisioning device and local provisioning may be performed.
  • the cloud server 910 sends a command for triggering provisioning selection to the hub device 904 (eg, the hub device of FIG. 8 ) that may be connected to the cloud server 910 via an IP network. 804 ) and TV 908 (eg, TV 808 in FIG. 8 ).
  • the hub device 904 eg, the hub device of FIG. 8
  • TV 908 eg, TV 808 in FIG. 8
  • the TV 908 sends a trigger command of provisioning device selection to the light bulb 906 (eg, the light bulb 806 in FIG. 8 ) connected to the TV 908 , in operation 938 .
  • the hub device 904 may transmit a trigger command for selecting a provisioning device to the camera 902 (eg, the camera 802 of FIG. 8 ) connected to the hub device 904 .
  • the camera 902 , the hub device 904 , the light bulb 906 , and the TV 908 may update the score of each device. Since there is no device newly added after calculating and exchanging the score of each device as in the process of FIG. 8 , the score of each device may be maintained at 52, 150, 3, and 120.
  • the hub device 904 and the TV 908 among the devices of the local network are provisioning devices, and it may be determined that the provisioning operation is performed on the connected camera 902 and the light bulb 906 , respectively. have.
  • the hub device 904 may determine that the provisioning device is determined, and may set a resource required to operate as the provisioning device. Also, the hub device 904 may set a high value by adding a specific value (eg, 3000) to its own score. Simultaneously with this at least in part, in operation 954 , the TV 908 may determine that the provisioning device is determined, and may set a resource required to operate as the provisioning device. Also, the TV 908 may set a high value by adding a specific value (eg, 3000) to its own score.
  • a specific value eg, 3000
  • the TV 908 may request the cloud server 910 to transmit provisioning data.
  • the TV 908 may request authentication information of the light bulb 906 stored in the cloud server 910 because it is determined to perform a provisioning operation on the light bulb 906 .
  • the cloud server 910 may transmit authentication information of the light bulb 906 in response to the request of the TV 908 .
  • the TV 908 may advertise to other devices that it has been registered as a provisioning device.
  • the light bulb 906 may set the local provisioning mode to perform an authentication procedure for the TV 908 serving as a provisioning device.
  • the light bulb 906 sends an authentication request to the TV 908 , and in operation 972 , the TV 908 authenticates the light bulb 906 based on the stored authentication information received from the cloud server 910 , , it may transmit a response to the authentication request.
  • the hub device 904 may not advertise to other devices that it is registered as a provisioning device.
  • the camera 902 may be set to the local provisioning mode after waiting for a predetermined time (eg, 30 seconds) after the provisioning trigger.
  • the camera 902 transmits an authentication request to the hub device 904
  • the hub device 904 selects the camera 902 based on the stored authentication information received from the cloud server 910 . Authenticate and transmit a response to the authentication request.
  • the hub device 904 and the TV 908 are determined as provisioning devices, but the number of provisioning devices on the local network is not limited thereto.
  • the hub device 904 may be selected as a provisioning device, and in this case, the hub device 904 may perform provisioning operations on the TV 908 , the camera 902 , and the light bulb 906 .
  • three or more devices on the local network may be determined as provisioning devices.
  • the number of devices determined as provisioning devices among local network devices may be determined based on the number of devices and/or connection relationships between devices in the local network.
  • the connection relationship of the devices may include a connection state with the cloud server 910 and/or the number of hops between the devices.
  • FIG. 10 is a flowchart of determining a provisioning device through scoring of each device according to various embodiments of the present disclosure
  • FIG. 10 illustrates a process of updating the score of each device and selecting a provisioning device when the refrigerator 1012 is newly connected to the local network after the scoring of each device and selection of the provisioning device in FIGS. 8 and 9 .
  • the refrigerator 1012 is added to the local network, and the refrigerator 1012 includes a camera 1002 (eg, the camera 802 of FIG. 8 , the camera 902 of FIG. 9 ) and It may be connected through direct short-range communication or an access point.
  • a score of the refrigerator 1012 may be calculated according to a trigger of the cloud server 1020 and/or other devices in the local network.
  • the refrigerator 1012 may calculate the score of the refrigerator 1012 as 170 based on the device information of the refrigerator 1012 .
  • the refrigerator 1012 may transmit the score and the number of hops of the refrigerator 1012 calculated by the refrigerator 1012 to the connected camera 1002 .
  • the camera 1002 receives the score and the number of hops of the refrigerator 1012 , and scores of devices located in the local network stored in the camera 1002 (eg, the score calculated in FIG. 9 ). score) to the refrigerator 1012 .
  • the provisioning device on the local network is the TV 1008 and the hub device 1004 .
  • the score of the refrigerator 1012 is higher than that of the light bulb 1006 and the camera 1002, it may be determined as a backup provisioning device. Thereafter, when the TV 1008 or the hub device 1004 is turned off or out of the network, the refrigerator 1012 may operate as a provisioning device.
  • the refrigerator 1012 may transmit an authentication request to the camera 1002 serving as a provisioning device.
  • the camera 1002 requests authentication information of the refrigerator 1012 from the cloud server 1020 , and in operation 1064 , the cloud server 1020 transmits authentication information of the refrigerator 1012 stored in the database to the camera 1002 . , and the camera 1002 can synchronize the authentication information.
  • the refrigerator 1012 may be set to operate as a backup provisioning device.
  • FIG. 11 illustrates an operation of each device when a change event of a provisioning device occurs according to various embodiments of the present disclosure.
  • a new device is selected as the provisioning device
  • the provisioning device when the communication between the device of the local network and the cloud server 1120 is normally made, the provisioning device via the cloud server 1120 through the cloud server 1120 through the request and approval of the change of the provisioning device to the cloud server 1120 You can change roles.
  • the provisioning device when the provisioning device is changed by communication between devices on the local network, the provisioning device or another device in the local network may transmit the change fact to the server.
  • the refrigerator 1112 may transmit a request to change the role of the refrigerator 1112 to the camera 1102 .
  • the camera 1102 transmits a provisioning device change request to the cloud server 1120 , and in operation 1136 , the cloud server 1120 may notify the camera 1102 of change approval.
  • the camera 1102 may transmit an approval message to the refrigerator 1112 according to the change approval notification of the cloud server 1120 .
  • the refrigerator 1112 whose role is changed to the provisioning device requests transmission of authentication information of each device in the local network stored in the database of the camera 1102 , and transmits the authentication information to the camera 1102 . can be received and stored.
  • the refrigerator 1112 sets the role of a provisioning device, and in operation 1154, the camera 1102 serves as a backup provisioning device. You can set and delete pre-stored authentication information.
  • the refrigerator 1112 may transmit the provisioning device change information to each device in the local network through the camera 1102 .
  • the refrigerator 1112 and the TV 1108, which are provisioning devices of the local network may periodically exchange states of other devices, and the refrigerator which is a provisioning device of the local network.
  • an operation for changing the provisioning device may be performed.
  • provisioning device when the provisioning device fails or leaves the network, fails to provide secure communication to other devices, and/or provisioning data (or authentication information) is deleted, another device is selected as the provisioning device can do.
  • each device in the local network may perform the process of calculating a score and selecting a provisioning device again.
  • the refrigerator 1212 eg, the refrigerator 1112 of FIG. 11
  • the TV 1208 eg, the TV 1108 of FIG. 11
  • the refrigerator 1212 malfunctions or is stolen. It shows a process of selecting a new provisioning device when it cannot operate as a provisioning device.
  • the refrigerator 1212 may identify an event (eg, breakdown or theft) in which a provisioning operation cannot be performed.
  • the refrigerator 1212 and the TV 1208, which are currently provisioning devices, may periodically exchange a check message including the status of each provisioning device and information of other connected devices, and in operation 1234, as an event occurring in the refrigerator 1212 Due to this, the TV 1208 may not receive the check message.
  • the refrigerator 1212 may delete stored provisioning data (or authentication information) as the role of the provisioning device is stopped, and the TV 1208 may also delete provisioning data.
  • the refrigerator 1212 and the TV 1208 operating as a provisioning device may periodically broadcast update information related to their own status for continuous status check with each other, and may operate as a provisioning device. If it is not possible, update information including related information may be broadcast.
  • the corresponding device may periodically transmit update information to the cloud server 1220 .
  • the provisioning device PD and the backup device BD may periodically exchange update information.
  • the refrigerator 1212 broadcasts update information including that the role of the provisioning device has stopped, and the TV 1208 performs the update information transmitted from the refrigerator 1212 to the refrigerator 1212 . ) can confirm that the operation of the provisioning device has been stopped.
  • the TV 1208 may broadcast update information.
  • the camera 1202, the hub device 1204, the light bulb 1206, and the TV 1208 each perform operation 1252, In operations 1254, 1256, and 1258, it may be determined that there is no additional update information. Thereafter, each device in the local network performs scoring for selection of a provisioning device in the same manner as in FIG. 8 , and the hub device 1204 and TV 1208 having the highest score according to the scoring result act as the provisioning device. can be set.
  • the hub device 1204 may perform setting to operate as a provisioning device
  • the TV 1208 may perform setting to operate as a provisioning device.
  • FIG. 13 illustrates a process of registering authentication information in a process process according to various embodiments of the present disclosure.
  • the manufacturer 1310 may request a certificate of the IoT device 1324 from the developer workspace 1326 .
  • the developer workspace 1326 may be an online environment in which the IoT server provides services related to authentication and registration of the IoT device 1324 .
  • the manufacturer may generate process data (or manufacturer data).
  • the generated process data may include at least one of mnID, vID, setupID, and device type information.
  • the process data may further include at least a part of a public key type (eg, X.509 or ED 25519), a server CA certificate, a device certificate, a device pulick key, a device private key, or a device serial number. have.
  • the manufacturer may store (or flash) the generated process data in the IoT device 1324 .
  • the manufacturer may register the vendor key in the developer workspace 1326 .
  • the vendor key may be security information registered for the corresponding IoT device 1324 .
  • a manufacturer may register a serial number, a public key (eg, ED 25519), and a vendor certificate (eg, X.509) on the workspace 1326 .
  • the manufacturer may register device information of the IoT device created through the developer workspace 1326 .
  • information (eg, serial number and/or public key) registered on the developer workspace 1326 is the device identity of the second DB 1332 (eg, dynamo DB) on the IoT server. (1334) may be registered.
  • device information (eg, mnID, vID, setupID, and/or device type information) registered on the developer workspace 1326 may be stored in the first DB 1422 (eg, SQL DB). .
  • the first DB 1422 may store device information for each device as a table, and an example of device information of a specific device stored in the first DB 1422 is shown in Table 3.
  • the Device Identity 1334 of the second DB 1332 may store a public key registered for each device.
  • the cloud server transmits authentication information including device information and key information stored in the first DB and the second DB for each device in the local network to the provisioning device, and the provisioning device
  • the received authentication information may be stored in a local database of
  • FIG. 14 is a process for synchronizing authentication information of the IoT device 1424 when the IoT device 1424 whose device information is registered on the IoT server through the process of FIG. 13 is installed on the local network.
  • the user may request synchronization of authentication information of the IoT device 1424 from the access gateway 1428 based on an account using the application 1442 of the user device.
  • the access gateway 1428 eg, Great Gate
  • the access gateway 1428 may be a server device or a service module for receiving a connection and/or device event of each device in the local network on the cloud network.
  • the IoT device 1424 on the IoT server it can be registered based on an account on the user device, and the IoT server uses the account used to register authentication information of the IoT device 1424 . can be stored based on
  • the IoT device 1424 when onboarding the IoT device 1424 to the IoT server, it may be registered based on the location of the IoT device 1424 on the user device.
  • the user may register the application 1442 on the user device. ) to request synchronization of authentication information of the IoT device 1424 to the access gateway 1428 based on the location of the IoT device 1424 .
  • the access gateway 1428 may obtain a token for a corresponding user account from an account service 1436 of the IoT server upon receiving the synchronization request.
  • the access gateway 1428 may request device provisioning from the device identity 1434 .
  • device identity 1434 may transmit authentication information to access gateway 1428 in response to the provisioning request.
  • the access gateway 1428 may read information of a DB table in which information of the IoT device 1424 registered with the corresponding account of the second DB 1432 is stored using the token obtained for synchronization of authentication information. .
  • the broker server 1444 subscribes to the access gateway 1428 (eg, Great Gate) through an MQTT topic to obtain device list information.
  • the access gateway 1428 eg, Great Gate
  • the broker server 1444 may store the device list information obtained from the access gateway 1428 in the first DB 1422 (eg, SQL DB) of the IoT device 1424 .
  • the first DB 1422 eg, SQL DB
  • the IoT device 1424 may be connected to the broker server 1444 to register the IoT device 1424 .
  • the IoT device 1424 may be connected to the broker server 1444 using one-way transport layer security (TLS).
  • TLS transport layer security
  • the broker server 1444 checks authentication through a json web token (JWT), and in operation 1470 , token authentication may be successful.
  • the broker server 1444 may return the serial number of the IoT device 1424 , and in operation 1474 , may transmit connection success to the IoT device 1424 .
  • JWT json web token
  • 15 illustrates a process of synchronizing authentication information according to various embodiments.
  • the user may obtain a device list of each device in the local network from the card list displayed on the application 1542 of the user device.
  • the application 1542 may request discovery of the local network from the broker server 1544 (eg, the broker server 1444 of FIG. 14, SmartThings TM broker).
  • the broker server 1544 requests a device ID from the IoT device 1524 located in the local network, and in operation 1558 , the IoT device 1524 may transmit the device ID.
  • the broker server 1544 may transmit the device ID list to the application 1542 of the user device.
  • the application 1542 of the user device authenticates to the access gateway 1528 (eg, the access gateway 1428 and Great Gate of FIG. 14 ) based on the acquired device ID list. Synchronization of information can be requested.
  • the access gateway 1528 may request device provisioning from the device identity 1534 of the IoT server.
  • the device identity 1534 may transmit authentication information to the access gateway 1528 in response to the provisioning request.
  • the access gateway 1528 may read information of a DB table in which information of the IoT device 1524 is stored in the second DB 1532 to synchronize authentication information.
  • the broker server 1544 may subscribe to the access gateway 1528 through an MQTT topic to obtain device list information.
  • the broker server 1544 may store the device list information obtained from the access gateway 1528 in the first DB 1522 (eg, SQL DB) of the IoT device 1524 .
  • the first DB 1522 eg, SQL DB
  • the IoT device 1524 may be connected to the broker server 1544 to register the IoT device 1524 .
  • the IoT device 1524 may be connected to the broker server 1544 using one-way transport layer security (TLS).
  • TLS transport layer security
  • the broker server 1544 checks authentication through a json web token (JWT), and in operation 1578 , token authentication may succeed.
  • the broker server 1544 may return the serial number of the IoT device 1524 , and in operation 1582 , may transmit a connection success to the IoT device 1524 .
  • 16A and 16B illustrate a user interface provided by a user device 1600 for controlling an IoT device according to various embodiments of the present disclosure.
  • the user device 1600 may display a UI item corresponding to each device in the local network on the application 1650 .
  • the user device 1600 includes a UI item 1660 of an AV sound bar, a UI item 1665 of a TV, a UI item 1691 of a right light bulb, a UI item 1692 of a set-top box remote control, and a UI item of the left light bulb.
  • a UI item 1693 and a UI item 1694 of the electric blind controller may be displayed.
  • Each UI item includes an image 1661 indicating a device, a device name 1663, information indicating an operating state of the device (eg, on/off, available/non-available, open/close), and an operation of the device. It may include a button 1662 to change the state.
  • the user device 1600 may visually distinguish and display UI items (eg, UI items 1660 and 1665 ) of the provisioning device among devices in the local network from UI items of other devices. For example, referring to FIG. 16A , the user device 1600 displays the periphery of the UI item 1660 of the AV sound bar, which is a provisioning device, with a box 1664 of a specific color, and displays the UI item 1665 of the TV. The periphery may be indicated by a box 1666 of a different color.
  • UI items eg, UI items 1660 and 1665
  • the user device 1600 includes an image 1661 displayed on a UI item (eg, UI item 1660, 1665) of a provisioning device among devices on a local network, a device name 1663, and a device name. At least one of information indicating an operation state (eg, on/off, available/non-available, open/close) and a button 1662 for changing an operation state of the device may be displayed separately from other devices.
  • IoT devices connected to each provisioning device may be displayed with a box of the same color as the provisioning device, but displayed with a thin thickness to distinguish them from the provisioning device.
  • IoT devices connected to each provisioning device may provide the same icon as the provisioning device, and provide a smaller size.
  • icons 1671 and 1676 indicating the provisioning device may be displayed in the UI items 1670 and 1675 of the AV sound bar and TV, which are provisioning devices.
  • the electronic device (eg, the electronic device 400) according to various embodiments includes a communication module (eg, the communication module 430) and a processor (eg, the processor 410) operatively connected to the communication module. ), and the processor, using the communication module, transmits device information of the electronic device to at least one external device existing in a local network (eg, a TV 632 , a laptop PC 634 , or an IP camera ( 636)) or a cloud server (eg, cloud server 500), and confirms at least one determined as a provisioning device of the edge computing service among the electronic device or the at least one external device, and the electronic device
  • a local network eg, a TV 632 , a laptop PC 634 , or an IP camera ( 636)
  • a cloud server eg, cloud server 500
  • the processor may be configured to receive authentication information of at least one device registered in the same location as the electronic device on the cloud server.
  • the processor receives, through the communication module, device information of the at least one external device from at least one external device existing in the local network, and the device information of the electronic device and the It may be configured to determine the provisioning device through scoring based on at least one parameter included in device information of at least one external device.
  • the device information may include at least a part of a security parameter, a performance parameter, or a utility parameter of the electronic device or the external device.
  • the processor identifies a plurality of devices capable of operating as a provisioning device among the electronic device and the at least one external device, and uses device information of the identified plurality of devices to determine the provisioning device can be set to determine
  • the processor may be configured to determine the number of provisioning devices based on at least one of a number of devices located on the local network, a maximum hop count, or a setting of a user device.
  • the processor may be configured to receive information on the provisioning device determined from the cloud server through the communication module.
  • the device information of the electronic device is stored in at least one external device (eg, a TV) existing in a local network. 632, a laptop PC 634, or an IP camera 636) or an operation of transmitting to a cloud server (eg, cloud server 500), provisioning of an edge computing service among the electronic device or the at least one external device checking at least one device determined as a provisioning device, receiving authentication information of at least one device that will provide the edge computing service from the cloud server when the electronic device is determined as the provisioning device, and the It may include performing a provisioning operation related to the edge computing service based on the authentication information.
  • a cloud server eg, cloud server 500
  • the receiving of the authentication information may include receiving authentication information of at least one device registered using the same account on the cloud server, or registering at the same location as the electronic device on the cloud server. It may include at least one of the operation of receiving the authentication information of the at least one device.
  • the confirming of the at least one determined as the provisioning device includes: receiving device information of the at least one external device from at least one external device existing in the local network; and determining the provisioning device through scoring based on device information and at least one parameter included in device information of the at least one external device.
  • the device information may include at least a part of a security parameter, a performance parameter, or a utility parameter of the electronic device or the external device.
  • the operation of confirming at least one determined as the provisioning device may include receiving information of the determined provisioning device from the cloud server.
  • a server device includes a communication interface, a memory, and a processor operatively connected to the communication interface and the memory, wherein the processor stores authentication information of a plurality of devices in the memory, the same Receive device information from at least one electronic device located on a local network, and provision an edge computing service among the at least one electronic device through scoring based on at least one parameter included in the received device information It may be configured to determine at least one to operate as a provisioning device, and transmit at least some of the authentication information stored in the memory to the provisioning device.
  • the processor may be configured to transmit authentication information of at least one device registered using the same account as the provisioning device or registered in the same location as the provisioning device to the provisioning device.
  • the processor is configured to identify a plurality of devices capable of operating as a provisioning device among the at least one electronic device, and determine the provisioning device using device information of the identified plurality of devices can be

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

다양한 실시예에 따른 전자 장치는, 통신 모듈, 상기 통신 모듈과 작동적으로(operatively) 연결되는 프로세서를 포함하고, 상기 프로세서는, 상기 통신 모듈을 이용해, 상기 전자 장치의 디바이스 정보를 로컬 네트워크에 존재하는 적어도 하나의 외부 장치 또는 클라우드 서버에 전송하고, 상기 전자 장치 또는 상기 적어도 하나의 외부 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 결정된 적어도 하나를 확인하고, 상기 전자 장치가 상기 프로비저닝 장치로 결정된 경우, 상기 통신 모듈을 이용해, 상기 클라우드 서버로부터 상기 엣지 컴퓨팅 서비스를 제공할 적어도 하나의 장치의 인증 정보를 수신하고, 및 상기 인증 정보에 기초하여, 상기 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행하도록 설정될 수 있다.

Description

전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법
본 문서의 다양한 실시예들은 IoT(internet of things)에 관한 것이며, 예를 들어 전자 장치가 로컬 네트워크에 위치한 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 동작을 수행할 프로비저닝 장치를 결정하는 방법에 대한 것이다.
사물 인터넷(internet of things, 이하 IoT)에서 생성된 데이터를 처리하기 위해 클라우드 컴퓨팅이 활용되고 있다. 클라우드 컴퓨팅은 IoT를 구성하는 장치, 또는 데이터의 양이 증가함에 따라, 시스템에 부하가 생기게 되고, 데이터의 전달 및/또는 저장 과정에서 보안 또는 프라이버시 이슈가 발생할 수 있으며, 클라우드 서버에 오류가 생기거나 인터넷에 연결되지 않는 경우 서비스를 제공할 수 없는 문제점이 발생할 수 있다.
이러한 클라우드 컴퓨팅의 문제점을 해결하기 위해 엣지 컴퓨팅(edge computing) 기술이 활용되고 있다. 엣지 컴퓨팅은 로컬 엣지 네트워크를 활용하여 네트워크 내에 연결된 장치들을 서로 제어하고, 연산 및 리소스를 공유하는 분산 컴퓨팅 기술의 한 형태이다. 엣지 컴퓨팅 기술은 실시간 응답을 요구하는 기기에게 엣지 네트워크를 활용하여 반응 속도를 개선하고, 대용량 데이터를 클라우드에 전달하지 않고 엣지 네트워크 내에서 연산을 수행하기 때문에 네트워크의 대역폭 확대 및 클라우드 트래픽을 감소 시킬 수 있으며, 개인 정보를 노출하지 않고 엣지 네트워크 내에서 관련 처리를 할 수 있기 때문에 프라이버시 및 보안을 극대화 할 수 있다.
엣지 컴퓨팅 환경에서 IoT 장치들의 등록 및 관리는 클라우드 서버에 의해 이루어질 수 있다. 클라우드 서버는 접속하는 모든 IoT 장치들에 인증을 수행하고, 데이터베이스에 저장하는데, 장치 인증을 위한 빈번한 서비스 접속으로 인해 클라우드 서버의 트래픽 증가를 야기하고 있다.
본 문서의 다양한 실시예들은 엣지 컴퓨팅 서비스에서 프로비저닝 동작을 로컬 네트워크 내의 장치에 의해 수행할 수 있도록 하며, 이를 위해 프로비저닝 동작을 수행할 프로비저닝 장치를 결정하기 위한 방법을 제공할 수 있다.
다양한 실시예에 따른 전자 장치는, 통신 모듈, 상기 통신 모듈과 작동적으로(operatively) 연결되는 프로세서를 포함하고, 상기 프로세서는, 상기 통신 모듈을 이용해, 상기 전자 장치의 디바이스 정보를 로컬 네트워크에 존재하는 적어도 하나의 외부 장치 또는 클라우드 서버에 전송하고, 상기 전자 장치 또는 상기 적어도 하나의 외부 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 결정된 적어도 하나를 확인하고, 상기 전자 장치가 상기 프로비저닝 장치로 결정된 경우, 상기 통신 모듈을 이용해, 상기 클라우드 서버로부터 상기 엣지 컴퓨팅 서비스를 제공할 적어도 하나의 장치의 인증 정보를 수신하고, 및 상기 인증 정보에 기초하여, 상기 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치의 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법은, 상기 전자 장치의 디바이스 정보를 로컬 네트워크에 존재하는 적어도 하나의 외부 장치 또는 클라우드 서버에 전송하는 동작, 상기 전자 장치 또는 상기 적어도 하나의 외부 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 결정된 적어도 하나를 확인하는 동작, 상기 전자 장치가 상기 프로비저닝 장치로 결정된 경우, 상기 클라우드 서버로부터 상기 엣지 컴퓨팅 서비스를 제공할 적어도 하나의 장치의 인증 정보를 수신하는 동작, 및 상기 인증 정보에 기초하여, 상기 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행하는 동작을 포함할 수 있다.
다양한 실시예에 따른 서버 장치는, 통신 인터페이스, 메모리, 및 상기 통신 인터페이스 및 상기 메모리와 작동적으로 연결되는 프로세서를 포함하고, 상기 프로세서는, 복수의 장치의 인증 정보를 상기 메모리에 저장하고, 동일한 로컬 네트워크 상에 위치하는 적어도 하나의 전자 장치로부터 디바이스 정보를 수신하고, 상기 수신된 디바이스 정보에 포함된 적어도 하나의 파라미터에 기초한 스코어링(scoring)을 통해 상기 적어도 하나의 전자 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 동작할 적어도 하나를 결정하고, 및 상기 프로비저닝 장치에 상기 메모리에 저장된 인증 정보 중 적어도 일부를 전송하도록 설정될 수 있다.
본 문서의 다양한 실시예에 따르면, 로컬 네트워크 내의 장치 중 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행할 프로비저닝 장치를 결정할 수 있으며, 이에 따라 클라우드의 도움 없이 로컬 네트워크 상에서 프로비저닝을 수행할 수 있는 전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법을 제공할 수 있다.
도 1은 다양한 실시예에 따른 IoT 환경 내의 장치들을 도시한 것이다.
도 2a 및 도 2b는 다양한 실시예에 따른 엣지 컴퓨팅 시스템의 각 장치들을 도시한 것이다.
도 3은 다양한 실시예에 따른 네트워크 환경 내의 사용자 장치의 블록도이다.
도 4는 다양한 실시예에 따른 전자 장치의 블록도이다.
도 5는 다양한 실시예에 따른 클라우드 서버의 블록도이다.
도 6은 다양한 실시예에 따른 프로비저닝 장치의 결정을 위한 전자 장치의 구성을 도시한 것이다.
도 7은 다양한 실시예에 따른 프로비저닝 장치를 결정하기 위한 방법의 흐름도이다.
도 8은 다양한 실시예에 따른 각 장치의 스코어링을 통해 프로비저닝 장치를 결정하는 흐름도이다.
도 9는 다양한 실시예에 따른 각 장치의 스코어링을 통해 프로비저닝 장치를 결정하는 흐름도이다.
도 10은 다양한 실시예에 따른 각 장치의 스코어링을 통해 프로비저닝 장치를 결정하는 흐름도이다.
도 11은 다양한 실시예에 따른 프로비저닝 장치의 변경 이벤트 발생 시 각 장치의 동작을 도시한 것이다.
도 12는 다양한 실시예에 따른 프로비저닝 장치의 제거 시 각 장치의 동작을 도시한 것이다.
도 13은 다양한 실시예에 따른 공정 과정에서 인증 정보를 등록하는 과정을 도시한 것이다.
도 14는 다양한 실시예에 따른 인증 정보를 동기화 하는 과정을 도시한 것이다.
도 15는 다양한 실시예에 따른 인증 정보를 동기화 하는 과정을 도시한 것이다.
도 16a 및 16b는 다양한 실시예에 따른 IoT 기기의 제어를 위해 사용자 장치에서 제공되는 사용자 인터페이스를 도시한 것이다.
도 1은 다양한 실시예에 따른 IoT 환경(또는 IoT 시스템) 내의 장치들을 도시한 것이다.
도 1을 참조 하면, IoT(internet of things) 시스템(또는 엣지 컴퓨팅 시스템)(100)은 적어도 하나의 리프 장치(120)(leaf device), 적어도 하나의 엣지 장치(110)(edge device), 사용자 장치(130)(user device) 및 클라우드 네트워크(140)(cloud network)를 포함할 수 있다. 예를 들면, 리프 장치(120), 엣지 장치(110), 및 사용자 장치(130)는 인접하는 위치(예: 집 안)에 배치되어 동일한 홈 네트워크(예: 동일한 AP(access point))에 연결될 수 있고, 클라우드 네트워크(140)는 원격으로 위치하되 인터넷을 통해 리프 장치(120), 엣지 장치(110), 및 사용자 장치(130)와 연결될 수 있다.
본 문서의 다양한 실시예들에서 엣지 컴퓨팅 서비스(edge computing service)는 리프 장치와 인접하여 위치하고 동일한 홈 네트워크 상에 위치하는 엣지 장치에 리프 장치에서 획득한 데이터를 전송하고, 엣지 장치 상에서 일련의 데이터 처리 및 기타 서비스를 제공하는 기술을 의미할 수 있다. 본 문서의 다양한 실시예들에서는 센서를 통해 데이터를 획득하는 장치(예: 카메라(121), 냉장고(122), 전구(123a), 디지털 온도계(123b), 또는 모션 센서(123c))를 리프 장치로 정의하지만, 리프 장치는 엣지 컴퓨팅 서비스의 클라이언트 장치, 엔드 장치, 센서 장치, IoT 장치, 또는 슬레이브 장치와 같이 다른 명칭으로 정의될 수도 있다. 또한, 본 문서의 다양한 실시예들에서는 엣지 장치로 정의하지만, 엣지 장치는 엣지 컴퓨팅 서비스의 엣지 서버, 서버 장치, 마스터 장치, 허브 장치, 또는 서비스 장치와 같이 다른 명칭으로 정의될 수도 있다.
본 문서에서는 엣지 컴퓨팅 시스템(edge computing system)(100) 내에서 각 장치의 기능, 또는 동작에 따라서 리프 장치(120), 엣지 장치(110), 및 사용자 장치(130)로 분류해서 설명하나, 동일한 장치(예: 스마트 폰 또는 태블릿 PC)가 경우에 따라 리프 장치(120), 엣지 장치(110), 및 사용자 장치(130) 중 어느 하나로 동작할 수도 있다. 다시 말하면, 본 문서의 다양한 실시예들에서 설명하는 장치의 명칭, 또는 정의가 해당 장치의 기능 및/또는 동작을 제한하지 않는다.
다양한 실시예에 따르면, 리프 장치(120)는 IoT 시스템(100)의 엔드 포인트(end point)로써 센서를 이용해 다양한 데이터를 수집하여 엣지 장치(110) 또는 클라우드 네트워크(140)로 전송할 수 있다. 또한, 리프 장치(120)는 클라우드 네트워크(140) 또는 사용자 장치(130)로부터 전달되는 커맨드에 따라 다양한 동작을 수행할 수 있다. 도 1을 참조 하면, 카메라(121), 냉장고(122), 전구(123a), 디지털 온도계(123b), 또는 모션 센서(123c)와 같은 장치가 리프 장치(120)가 될 수 있다.
다양한 실시예에 따르면, 리프 장치(120)는 인터넷을 통해 클라우드 네트워크(140)에 접속할 수 있으며, 리프 장치(120) 중 인터넷 프로토콜(IP)을 지원하지 않는 장치(예: 전구(123a), 또는 디지털 온도계(123b))는 지원하는 비 IP 기반 통신(예: Bluetooth, 또는 Zigbee)으로 허브 장치(124)에 센싱한 데이터를 전송하고, 허브 장치(124)는 인터넷을 통해 클라우드 네트워크(140)에 각 리프 장치(123a, 123b)의 센싱 데이터를 전송할 수 있다.
다양한 실시예에 따르면, 클라우드 네트워크(140)는 네트워크 상에 위치하고, IoT 시스템(100)에서 클라우드 컴퓨팅 서비스를 지원하는 다양한 서버 장치(예: IoT 매니지 서버 또는 IoT 허브 서버)를 포함할 수 있다. 클라우드 네트워크(140)는 리프 장치(120)에서 수신한 센싱 데이터에 대한 컴퓨팅 처리를 수행하고, 리프 장치(120)의 제어를 위한 명령을 전송할 수 있다.
다양한 실시예에 따르면, 클라우드 네트워크(140)는 홈 네트워크 내의 특정 장치가 엣지 장치(110)로 동작할 수 있도록 운영 및 관리하는 기능을 수행할 수 있다. 예를 들어, 클라우드 네트워크(140)는 IoT 서버(예: IoT 매니지 서버, 또는 IoT 허브 서버)를 포함하며, IoT 서버는 엣지 장치(110)와 리프 장치(120)의 등록, 연결, 또는 관리와 같은 엣지 컴퓨팅 서비스를 수행하고, 엣지 컴퓨팅 서비스를 위해 필요한 모듈(예: 디바이스 모듈, 및/또는 서비스 모듈)을 엣지 장치(110)에 제공할 수 있다.
다양한 실시예에 따르면, 클라우드 네트워크(140)는 클라우드 컴퓨팅 서비스 또는 엣지 컴퓨팅 서비스의 프로비저닝 동작을 수행할 수 있다. 예를 들어, 클라우드 네트워크(140)(예: IoT 서버)는 홈 네트워크(또는 로컬 네트워크, 엣지 네트워크) 상의 각 장치(예: 엣지 장치(110), 리프 장치(120))에 대한 보안 정보(예: X.509, ED25519 key pair, 및/또는 public / private key)를 등록하고, 등록된 정보를 기반으로 각 장치를 인증할 수 있으며, 인증 관련 정보를 데이터베이스 상에 저장할 수 있다. 클라우드 네트워크(140)는 홈 네트워크 상의 각 장치가 다른 장치와 연결 또는 데이터 전송 시 데이터베이스 상에 등록된 정보를 기반으로 엣지 컴퓨팅 서비스에 대한 접근 권한을 가지고 있는지 확인할 수 있으며, 각 장치가 다른 장치의 데이터를 수신 및 처리하는데 필요한 소프트웨어를 제공하고, 필요한 경우 클라우드 네트워크 상의 하드웨어 자원을 제공할 수 있다.
다양한 실시예에 따르면, 클라우드 네트워크(140)는 홈 네트워크 상의 적어도 하나의 장치가 프로비저닝 장치로 결정되는 경우, 프로비저닝 장치가 프로비저닝 동작을 수행할 수 있도록 데이터베이스 상에 저장된 정보를 프로비저닝 장치에 제공할 수 있다.
다양한 실시예에 따르면, 엣지 장치(110)는 리프 장치(120)로부터 수신되는 데이터를 직접 처리하거나, 클라우드 네트워크(140)(예: IoT 서버)로 전송할 수 있다. 엣지 장치(110)는 TV(112), 태블릿 PC(111) 등 엣지 컴퓨팅 서비스를 위해 필요한 하드웨어 및/또는 소프트웨어 자원을 포함하는 장치일 수 있다. 엣지 장치(110)는 인터넷을 통해 클라우드 네트워크(140)와 연결될 수 있고, 리프 장치(120)와는 홈 네트워크를 형성할 수 있다.
다양한 실시예에 따르면, 홈 네트워크 내에 복수의 엣지 장치들(110)이 존재할 수 있으며, 리프 장치(120)는 복수의 엣지 장치들(110) 중 어느 하나와 연결되어 데이터를 전송할 수 있다. 예를 들면, 엣지 장치(110)는 특정 리프 장치(120)가 연결될 때, 엣지 컴퓨팅 서비스를 위해 필요한 모듈(예: 디바이스 모듈 및/또는 서비스 모듈)을 클라우드 네트워크(140)로부터 다운로드 받아 실행할 수 있다.
다양한 실시예에 따르면, 엣지 장치(110)는 기기 고유의 기능(예: TV의 영상 출력 기능)을 수행할 수 있으며, 고유 기능의 수행과 적어도 일부 동시에 또는 고유 기능을 수행하지 않는 유휴 시간 동안 하드웨어 및/또는 소프트웨어 자원을 통해 엣지 컴퓨팅 서비스를 수행할 수 있다.
다양한 실시예에 따르면, 사용자 장치(130)는 어플리케이션을 통해 엣지 컴퓨팅 서비스(edge computing service)와 관련된 다양한 사용자 인터페이스(user interface)를 제공할 수 있다. 예를 들어, 사용자 장치(130)는 리프 장치(120)에서 획득한 데이터(예: 카메라 영상 스트리밍) 또는 상기 데이터를 엣지 장치(110) 또는 클라우드 네트워크(140)에서 처리한 결과 데이터(예: 사람 인식)를 디스플레이 상에 표시할 수 있다. 또한, 사용자 장치(130)는 엣지 장치(110) 및/또는 리프 장치(120)의 연결, 또는 서버 등록과 같은 사용자 입력을 수신하여 클라우드 네트워크(140)로 전송할 수 있다. 사용자 장치(130)의 세부 구성 및 동작에 대해서는 도 3을 통해 보다 상세히 설명하기로 한다.
도 2a 및 도 2b는 다양한 실시예에 따른 엣지 컴퓨팅 시스템의 각 장치들을 도시한 것이다.
도 2a를 참조 하면, 엣지 컴퓨팅 시스템(200)은 리프 장치(220), 엣지 장치(210), 사용자 장치(230), IoT 허브 서버(250) 및 IoT 매니지 서버(240)를 포함할 수 있다. 도 1을 통해 설명한 바와 같이, 홈 네트워크 상에 다양한 IoT 기기들이 존재할 수 있으며, 도 2에서는 하나의 리프 장치(leaf device)(예: 도 1의 카메라(121))와 하나의 엣지 장치(edge device)(예: 도 1의 TV(112))를 예로 들어 설명하기로 한다.
다양한 실시예에 따르면, IoT 매니지 서버(240)(예: SmartThingsTM 서버)는 엣지 컴퓨팅 서비스의 결정, 연결 및/또는 운영을 위해 다양한 서비스를 제공하는 서버 장치로써, 프로비전 매니저(242), 모듈 매니저(244) 및 엣지-리프 매니저(246)를 포함할 수 있다.
다양한 실시예에 따르면, 프로비전 매니저(242)(provision manager)는 엣지 장치(210)가 IoT 허브 서버(250)와 연결될 수 있도록 중간에서 중계하는 기능을 수행할 수 있다. 예를 들어, 프로비전 매니저(242)는 엣지 장치(210)가 IoT 매니지 서버(240)에 최초 등록되는 경우에, 엣지 장치(210)가 IoT 허브 서버(250)와 연결될 수 있도록 하는 연결 스트링(connection string)을 엣지 장치(210)에 전송할 수 있다.
다양한 실시예에 따르면, 모듈 매니저(244)(module manager)는 엣지 컴퓨팅 서비스를 위해 제공하는 다양한 모듈 및 각 서비스를 지원하는 기기에 대한 정보들을 관리할 수 있다. 여기서, 엣지 컴퓨팅 서비스를 수행하기 위해 필요한 모듈은 엣지 장치(210)가 리프 장치(220)로부터 전송되는 데이터를 외부 서버(예: IoT 허브 서버(250))로 전송할 수 있도록 하는 디바이스 모듈(219)(예: 디바이스 모듈 1(219a) 및/또는 디바이스 모듈 2(219b)) 및 리프 장치(220)에서 전송되는 데이터를 기반으로 엣지 장치(210)에서 서비스를 구현하기 위해 실행되는 프로그램들을 포함하는 서비스 모듈(218)을 포함할 수 있다.
다양한 실시예에 따르면, 엣지-리프 매니저(246)(edge-leaf manager)는 여러 홈 네트워크에 존재하는 엣지 장치(210)와 리프 장치(220)의 연결 상태를 관리할 수 있다. 예를 들어, IoT 매니지 서버(240)에 등록된 엣지 장치(210)와 리프 장치(220)가 서로 연결 또는 연결 해제 되는 경우, 엣지 장치(210) 및/또는 리프 장치(220)에서 연결 또는 연결 해제 정보를 IoT 매니지 서버(240)에 전송하고, IoT 매니지 서버(240)는 실시간으로 어떠한 엣지 장치(210)와 리프 장치(220)가 연결되었는지, 어떠한 서비스를 수행하는 중인지에 대한 정보를 저장할 수 있다.
다양한 실시예에 따르면, 리프 장치(220)가 특정 엣지 장치(예: 도 1의 태블릿 PC(111))와 연결되어 엣지 컴퓨팅 서비스를 수행하다가 핸드오버 이벤트에 따라 해당 엣지 장치와 연결을 해제하고 다른 엣지 장치(예: 도 1의 TV(112))와 연결되어 엣지 컴퓨팅 서비스를 수행하는 경우, IoT 매니지 서버(240)는 핸드오버 이벤트에 따라 변경된 엣지 장치(210)와 리프 장치(240)의 연결 정보를 업데이트 할 수 있다.
다양한 실시예에 따르면, IoT 허브 서버(250)는 클라우드 컴퓨팅 플랫폼(cloud computing platform)을 지원 하며, 클라우드 환경 내에 있는 리프 장치(220)와 엣지 장치(210)가 서로 연결되는 데 필요한 데이터를 제공할 수 있다. IoT 허브 서버(250)는 IoT 허브(252) 및 모듈 레지스트리(254)를 포함할 수 있다.
다양한 실시예에 따르면, 모듈 레지스트리(254)(module registry)는 엣지 컴퓨팅 서비스를 수행하기 위해 필요한 모듈들(예: 디바이스 모듈(219)(예: 디바이스 모듈 1(219a), 디바이스 모듈 2(219b)), 서비스 모듈(218))의 저장소일 수 있다.
다양한 실시예에 따르면, IoT 허브(IoT hub)(252)는 엣지 장치(210)와 연결을 유지하며, 모듈 레지스트리(254)에 저장된 모듈을 엣지 장치(210)에 제공하고, 여러 엣지 장치(210)에 설치된 모듈들의 정보를 유지할 수 있다.
다양한 실시예에 따르면, 엣지 장치(210)(예: 도 1의 엣지 장치(110))는 TV, 태블릿 PC, 또는 랩톱 PC와 같은 기기 고유의 기능을 가지고, 엣지 컴퓨팅 서비스를 위한 하드웨어 및/또는 소프트웨어 구성(예: 엣지 런타임, 또는 기본 모듈)을 포함하는 장치일 수 있다. 고유 기능의 수행과 적어도 일부 동시에 또는 고유 기능을 수행하지 않는 유휴 시간 동안 하드웨어 및/또는 소프트웨어 자원을 통해 엣지 컴퓨팅 서비스를 수행할 수 있다.
다양한 실시예에 따르면, 엣지 장치(210)는 클라우드(예: IoT 매니지 서버(240), IoT 허브 서버(250))와 통신하기 위한 인터페이스(212), 운영 체제(OS, operating system)(214) 및 엣지 런타임(216), 서비스 모듈(218), 디바이스 모듈(219)(예: 디바이스 모듈 1(219a) 및/또는 디바이스 모듈 2(219b))을 포함할 수 있다. 예를 들면, 엣지 장치(210)는 운영 체제(214)를 동작하기 위한 하드웨어 조건(예: CPU 성능)이 필요할 수 있고, RTOS(real time operating system)로 구성될 수 있다.
엣지 장치(210)의 공정 과정 또는 소프트웨어 업그레이드를 통해 엣지 장치(210)에 엣지 런타임(216)(edge runtime) 및 엣지 컴퓨팅을 위한 기본 모듈이 설치될 수 있다. 여기서, 엣지 런타임(216)은 IoT 서버와 연동을 위한 데몬(daemon) 프로그램을 포함할 수 있으며, 기본 모듈은 IoT 서버와 통신에 필요한 프로그램으로써 컨테이너(container)로 구성될 수 있다. 예를 들면, 기본 모듈은 엣지 런타임(216) 환경에서 설치되는 컨테이너일 수 있다.
다양한 실시예에 따르면, 엣지 장치(210)는 특정 리프 장치(220)와 연결되는 경우, IoT 허브 서버(250)로부터 엣지 컴퓨팅 서비스를 수행하기 위한 적어도 하나의 모듈을 수신하여 설치할 수 있다.
예를 들면, 적어도 하나의 모듈은, 연결되는 리프 장치(220)의 종류 및/또는 수행할 수 있는 서비스의 종류에 따라 결정될 수 있으며, 해당 리프 장치(220)에 대응하는 디바이스 모듈(219)(예: 디바이스 모듈 1(219a) 또는 디바이스 모듈 2(219b)) 및/또는 수행할 서비스의 종류에 대응하는 서비스 모듈(218)을 포함할 수 있다. 엣지 장치(210)가 복수의 리프 장치들(220)과 연결되는 경우, 각각의 리프 장치(220)와 대응하는 디바이스 모듈(219)(예: 디바이스 모듈 1(219a) 및/또는 디바이스 모듈 2(219b))이 설치될 수 있다. 엣지 장치(210)는 프로비전(provision) 과정에서 엣지 런타임(216)을 실행하여 IoT 허브 서버(250)와 연결되고, 리프 장치(220)의 종류에 따라 상기 적어도 하나의 모듈이 추가로 설치되고 실행될 수 있다. 엣지 장치(210)는 IoT 허브 서버(250) 또는 IoT 매니지 서버(240)로부터 수신되는 커맨드에 따라 엣지 모드를 활성화 또는 비활성화 할 수 있다. 엣지 모드가 비활성화 된 경우 엣지 장치(210)는 고유의 기능(예: TV의 영상 출력 기능)만 수행하게 되고, 디바이스 모듈(219)(예: 디바이스 모듈 1(219a) 및/또는 디바이스 모듈 2(219b)) 및 서비스 모듈(218)은 실행되지 않을 수 있다.
다양한 실시예에 따르면, 리프 장치(220)(예: 도 1의 리프 장치(120))는 센서를 이용해 획득한 데이터를 연결된 엣지 장치(210) 또는 클라우드 네트워크(예: IoT 매니지 서버(240) 및/또는 IoT 허브 서버(250))에 전송할 수 있다. 예를 들어, 리프 장치(220)로 동작하는 IP(internet protocol) 카메라의 경우, 엣지 장치(210)와 연결되어 영상 스트리밍을 엣지 장치(210)에 전송할 수 있다.
다양한 실시예에 따르면, 사용자 장치(230)는 스마트 폰, 또는 태블릿 PC와 같은 다양한 어플리케이션을 실행할 수 있고, 사용자 인터페이스(UI, user interface)를 표시할 수 있는 디스플레이를 포함하는 장치일 수 있다. 사용자 장치(230)는 엣지 컴퓨팅 서비스를 위한 어플리케이션을 설치 및/또는 실행하고, 해당 어플리케이션을 통해 리프 장치(220)에서 생성된 컨텐츠와 알림(notification)을 수신할 수 있다. 엣지 장치(210)와 리프 장치(220)가 연결된 경우, 리프 장치(220)에서 생성된 컨텐츠나 알림은, 엣지 장치(210)를 통하여 사용자 장치(230)에 전송될 수 있다.
다양한 실시예에 따르면, IoT 허브 서버(250) 및 IoT 매니지 서버(240)의 기능은 하나의 서버 장치(예: 도 2b의 IoT 서버(260))에 의해 수행될 수 있다. 예를 들어, 도 2b를 참조 하면, IoT 서버(260)는 앞서 설명한 IoT 허브 서버(250) 및 IoT 매니지 서버(240)의 구성인 IoT 허브(261)(예: 도 2a의 IoT 허브(252)), 모듈 레지스트리(262)(예: 도 2a의 모듈 레지스트리(254)), 프로비전 매니저(263)(예: 도 2a의 프로비전 매니저(242)), 모듈 매니저(264)(예: 도 2a의 모듈 매니저(244)) 및 엣지-리프 매니저(265)(예: 도 2a의 엣지-리프 매니저(246))를 포함할 수 있다.
또는 상기 기능들은 셋 이상의 복수의 서버 장치들에 의해 수행될 수도 있다. 예를 들어, 도 2a의 IoT 허브 서버(250), IoT 매니지 서버(240)의 각 구성들이 네트워크 상에 존재하는 셋 이상의 복수의 서버 장치들에 의해 분산 배치 되거나, 각 구성에서 수행되는 일부 동작들도 여러 서버 장치들에 의해 분산 수행될 수 있다.
도 3은 다양한 실시예들에 따른, 네트워크 환경 내의 사용자 장치의 블록도이다. 이하에서는 엣지 컴퓨팅 시스템(예: 도 2a의 엣지 컴퓨팅 시스템(200))의 사용자 장치(예: 도 1의 사용자 장치(130), 도 2a의 사용자 장치(230))를 전자 장치(301)로 지칭할 수도 있다.
도 3을 참조하면, 네트워크 환경(300)에서 사용자 장치(또는 전자 장치)(301)는 제 1 네트워크(398)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(302)와 통신하거나, 또는 제 2 네트워크(399)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(304) 또는 서버(308)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(301)는 서버(308)를 통하여 전자 장치(304)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(301)는 프로세서(320), 메모리(330), 입력 모듈(350), 음향 출력 모듈(355), 디스플레이 모듈(360), 오디오 모듈(370), 센서 모듈(376), 인터페이스(377), 연결 단자(378), 햅틱 모듈(379), 카메라 모듈(380), 전력 관리 모듈(388), 배터리(389), 통신 모듈(390), 가입자 식별 모듈(396), 또는 안테나 모듈(397)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(301)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(378))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(376), 카메라 모듈(380), 또는 안테나 모듈(397))은 하나의 구성요소(예: 디스플레이 모듈(360))로 통합될 수 있다.
프로세서(320)는, 예를 들면, 소프트웨어(예: 프로그램(340))를 실행하여 프로세서(320)에 연결된 전자 장치(301)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(320)는 다른 구성요소(예: 센서 모듈(376) 또는 통신 모듈(390))로부터 수신된 명령 또는 데이터를 휘발성 메모리(332)에 저장하고, 휘발성 메모리(332)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(334)에 저장할 수 있다. 일실시예에 따르면, 프로세서(320)는 메인 프로세서(321)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(323)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(301)가 메인 프로세서(321) 및 보조 프로세서(323)를 포함하는 경우, 보조 프로세서(323)는 메인 프로세서(321)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(323)는 메인 프로세서(321)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(323)는, 예를 들면, 메인 프로세서(321)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(321)를 대신하여, 또는 메인 프로세서(321)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(321)와 함께, 전자 장치(301)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(360), 센서 모듈(376), 또는 통신 모듈(390))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(323)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(380) 또는 통신 모듈(390))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(323)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(301) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(308))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(330)는, 전자 장치(301)의 적어도 하나의 구성요소(예: 프로세서(320) 또는 센서 모듈(376))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(340)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(330)는, 휘발성 메모리(332) 또는 비휘발성 메모리(334)를 포함할 수 있다.
프로그램(340)은 메모리(330)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(342), 미들 웨어(344) 또는 어플리케이션(346)을 포함할 수 있다.
입력 모듈(350)은, 전자 장치(301)의 구성요소(예: 프로세서(320))에 사용될 명령 또는 데이터를 전자 장치(301)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(350)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(355)은 음향 신호를 전자 장치(301)의 외부로 출력할 수 있다. 음향 출력 모듈(355)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(360)은 전자 장치(301)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(360)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(360)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(370)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(370)은, 입력 모듈(350)을 통해 소리를 획득하거나, 음향 출력 모듈(355), 또는 전자 장치(301)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(302))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(376)은 전자 장치(301)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(376)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(377)는 전자 장치(301)가 외부 전자 장치(예: 전자 장치(302))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(377)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(378)는, 그를 통해서 전자 장치(301)가 외부 전자 장치(예: 전자 장치(302))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(378)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(379)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(379)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(380)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(380)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(388)은 전자 장치(301)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(389)는 전자 장치(301)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(389)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(390)은 전자 장치(301)와 외부 전자 장치(예: 전자 장치(302), 전자 장치(304), 또는 서버(308)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(390)은 프로세서(320)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(390)은 무선 통신 모듈(392)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(394)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(398)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(399)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(304)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(392)은 가입자 식별 모듈(396)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(398) 또는 제 2 네트워크(399)와 같은 통신 네트워크 내에서 전자 장치(301)를 확인 또는 인증할 수 있다.
무선 통신 모듈(392)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(392)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(392)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(392)은 전자 장치(301), 외부 전자 장치(예: 전자 장치(304)) 또는 네트워크 시스템(예: 제 2 네트워크(399))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(392)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(397)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(397)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(397)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(398) 또는 제 2 네트워크(399)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(390)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(390)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(397)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(397)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(399)에 연결된 서버(308)를 통해서 전자 장치(301)와 외부의 전자 장치(304)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(302, 또는 304) 각각은 전자 장치(301)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(301)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(302, 304, 또는 308) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(301)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(301)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(301)로 전달할 수 있다. 전자 장치(301)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(301)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(304)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(308)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(304) 또는 서버(308)는 제 2 네트워크(399) 내에 포함될 수 있다. 전자 장치(301)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
다양한 실시예에 따르면, 프로세서(320)는 어플리케이션(346)을 이용해 홈 네트워크 내의 엣지 장치(예: 도 2a의 엣지 장치(210))와 리프 장치(예: 도 2a의 리프 장치(220))를 이용한 엣지 컴퓨팅 서비스와 관련된 제어를 수행할 수 있다.
다양한 실시예에 따르면, 어플리케이션(346)은 엣지 장치 및 리프 장치를 IoT 서버(예: 도 2a의 IoT 매니지 서버(240))에 등록하는 기능을 제공할 수 있다. 예를 들어, 프로세서(320)는 통신 모듈(390)을 이용해 홈 네트워크 내의 적어도 하나의 엣지 장치 및 리프 장치를 디스커버리 하고, 각 장치의 디바이스 정보(예: 식별 정보, 네트워크 정보)를 수신할 수 있다.
프로세서(320)는 확인된 장치들의 리스트를 어플리케이션 상에 표시할 수 있다. 프로세서(320)는 사용자 입력에 기초하여 선택된 엣지 장치 또는 리프 장치의 디바이스 정보를 IoT 서버에 전송하여 등록을 요청할 수 있다. 또한, 프로세서(320)는 어플리케이션(346) 상에서 각 장치의 명칭, 및/또는 위치 정보 등을 입력 받을 수 있다.
다양한 실시예에 따르면, 프로세서(320)는 엣지 장치의 엣지 모드가 비활성화 된 상태에서는 리프 장치로부터 리프 장치의 센서에서 획득한 데이터(예: 영상 스트리밍, 사운드 데이터)를 클라우드 네트워크로부터 수신할 수 있다. 이 후, 엣지 컴퓨팅 서비스가 개시 되는 경우, 리프 장치에서 획득한 데이터는 엣지 장치로 전송되고, 사용자 장치(예: 도 1의 사용자 장치(130), 도 2a의 사용자 장치(230), 또는 전자 장치(301))는 센서 데이터 및 분석 데이터를 엣지 장치로부터 직접 수신하거나, 엣지 장치로부터 클라우드 네트워크(예: 도 1의 클라우드 네트워크(140))를 거쳐 수신할 수 있다.
다양한 실시예에 따르면, 프로세서(320)는 엣지 장치와 리프 장치의 연결 또는 연결 해제와 관련된 정보를 디스플레이에 표시되는 어플리케이션 상에 표시할 수 있다.
다양한 실시예에 따르면, 엣지 장치, 또는 리프 장치의 구성 요소 중 적어도 하나는, 전자 장치(301)(예: 사용자 장치)의 구성 요소와 적어도 일부 동일하거나 유사하게 구성될 수 있다. 예를 들면, 리프 장치의 센서는 전자 장치(301)의 센서 모듈(376)과 실질적으로 동일한 기능 및/또는 동작을 수행할 수 있다.
도 4는 다양한 실시예에 따른 전자 장치의 블록도이다.
도 4를 참조 하면, 전자 장치(400)는 프로세서(410), 통신 모듈(430) 및 메모리(420)를 포함할 수 있으며, 도시된 구성 중 일부가 생략 또는 치환되더라도 본 문서의 다양한 실시예들을 구현할 수 있다.
다양한 실시예에 따르면, 전자 장치(400)는 IoT 시스템(또는 엣지 컴퓨팅 시스템) 상의 어느 하나의 장치로 구현될 수 있다. 예를 들어, 전자 장치(400)는 IoT 시스템의 엣지 장치(또는 허브 장치)(예: 도 1의 태블릿 PC(111), 또는 TV(112)) 또는 리프 장치(예: 도 1의 카메라(121), 냉장고(122), 전구(123a), 디지털 온도계(123b), 또는 모션 센서(123c)) 중 하나 이상의 프로세서 및/또는 메모리 리소스를 구비하는 장치일 수 있다. 전자 장치(400)는 고유의 기능(예: TV의 영상 출력 또는 태블릿 PC의 어플리케이션 실행)을 수행할 수 있으며, 상기 고유 기능을 실행하지 않는 동안 또는 고유 기능의 실행과 적어도 일부 동시에 후술할 프로비저닝 장치를 선정하기 위한 동작 및/또는 프로비저닝 장치로 선정된 경우 프로비저닝 동작을 수행할 수 있다.
이하는, 전자 장치(400)가 엣지 컴퓨팅 환경에서 전자 장치(400)를 포함한 복수의 장치 중 적어도 하나의 장치를 프로비저닝 장치(provisioning device)로 결정하기 위한 동작 및 전자 장치(400)가 프로비저닝 장치로 선정된 경우 엣지 컴퓨팅 환경에서 프로비저닝 동작을 수행하는 다양한 실시예에 대해 설명하기로 한다.
다양한 실시예에 따르면, 통신 모듈(430)은 무선 통신(예: Wi-Fi, 셀룰러 통신)을 지원하며, IoT 시스템의 다른 전자 장치(400)(또는 외부 장치) 또는 클라우드 서버와 데이터를 송수신할 수 있다. 통신 모듈(430)은 AP(access point)를 통해 외부 장치와 통신하거나, P2P(예: Wi-Fi Direct, Wi-Fi Aware) 통신을 이용하여 다른 장치와 직접 통신할 수도 있다.
다양한 실시예에 따르면, 메모리(420)는 휘발성 메모리 및 비휘발성 메모리를 포함할 수 있으며, 전자 장치(400)의 적어도 하나의 구성요소(예: 프로세서(410))에서 사용되는 다양한 데이터를 일시적 또는 영구적으로 저장할 수 있다. 메모리(420)는 프로세서(410)에서 수행될 수 있는 다양한 인스트럭션(instruction)들을 저장할 수 있다. 이와 같은 인스트럭션들은 프로세서(410)에 의해 인식될 수 있는 산술 및 논리 연산, 데이터 이동, 또는 입출력을 포함하는 다양한 제어 명령을 포함할 수 있다.
다양한 실시예에 따르면, 프로세서(410)는 전자 장치(400)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행할 수 있는 구성으로써, 통신 모듈(430), 또는 메모리(420)와 같은 전자 장치(400)의 각 구성요소와 작동적으로(operatively), 기능적으로(functionally) 및/또는 전기적으로(electrically) 연결될 수 있다.
다양한 실시예에 따르면, 프로세서(410)가 전자 장치(400) 내에서 구현할 수 있는 연산 및 데이터 처리 기능에는 한정됨이 없을 것이나, 이하에서는 엣지 컴퓨팅 환경에서 전자 장치(400)를 포함한 복수의 장치 중 적어도 하나의 장치를 프로비저닝 장치로 결정하기 위한 동작 및 전자 장치(400)가 프로비저닝 장치로 선정된 경우 엣지 컴퓨팅 환경에서 프로비저닝 동작을 수행하는 다양한 실시예에 있어 프로세서(410)가 수행하는 동작에 대해 상세히 설명하기로 한다.
다양한 실시예에 따르면, 프로세서(410)는 엣지 컴퓨팅 서비스의 프로비저닝 장치로 동작할 적어도 하나의 장치를 확인할 수 있다. 예를 들어, 전자 장치(400)를 포함하는 로컬 네트워크(또는 홈 네트워크)(예: 제 1 네트워크(398))내의 복수의 장치 중 적어도 하나의 장치가 프로비저닝 장치로 결정될 수 있다. 예를 들어, 로컬 네트워크는 Wi-Fi 네트워크를 포함하며, 로컬 네트워크 내의 복수의 장치는 Wi-Fi 액세스 포인트를 통해 서로 연결될 수 있다.
다양한 실시예에 따르면, 로컬 네트워크 내의 어느 하나의 장치가 프로비저닝 장치로 결정되는 경우, 클라우드 컴퓨팅 서비스의 클라우드 서버가 제공하는 프로비저닝 동작을 로컬 네트워크의 프로비저닝 장치에서 수행할 수 있다. 여기서, 프로비저닝 동작은 엣지 컴퓨팅 서비스를 위해 각 장치에 대한 보안 정보(예: X.509, ED25519 key pair, 및/또는 public / private key)를 등록 하고, 이 등록된 정보를 기반으로 각 장치를 인증하는 동작을 포함할 수 있다. 프로비저닝 장치는 클라우드 서버의 데이터베이스에 저장된 인증 정보를 동기화 하여 프로비저닝 장치의 메모리(420)에 저장하고, 로컬 네트워크 상의 각 장치에 대한 프로비저닝 동작을 수행할 수 있다.
다양한 실시예에 따르면, 프로비저닝 장치를 결정하는 과정은 홈 네트워크 상의 장치(예: 전자 장치(400))에 의해 수행되거나, 클라우드 서버에 의해 수행될 수 있다.
다양한 실시예에 따르면, 프로세서(410)는 통신 모듈(430)을 이용해 로컬 네트워크에 존재하는 적어도 하나의 외부 장치의 디바이스 정보를 수신할 수 있다. 여기서, 디바이스 정보는 보안(security) 파라미터, 성능(performance) 파라미터 및/또는 유틸리티(utility) 파라미터를 포함할 수 있다.
다양한 실시예에 따르면, 보안 파라미터는 해당 장치가 trust zone 또는 eSE(embedded secure element)의 탑재 여부, 루팅(또는 개발자 모드)의 실행 여부, 또는 보안 프로그램(예: anti-virus)의 실행 여부와 같이, 해당 장치의 현재 보안 상태와 관련된 파라미터를 포함할 수 있다.
다양한 실시예에 따르면, 성능 파라미터는 프로세서(410) 및/또는 메모리(420)의 최대 성능 및/또는 현재 활용할 수 있는(available) 리소스의 용량, 또는 배터리 상태와 같은 파라미터를 포함할 수 있다.
다양한 실시예에 따르면, 유틸리티 정보는 게이트웨이로의 홉 수, 및/또는 엣지 컴퓨팅 서비스에서 해당 장치의 역할(예: 게이트웨이 장치, 엣지 장치, 또는 리프 장치)에 따라 결정될 수 있다.
다양한 실시예에 따르면, 프로세서(410)는 전자 장치(400)의 디바이스 정보를 확인하고, 로컬 네트워크의 각 장치에 전자 장치(400)의 디바이스 정보를 전송할 수 있다.
다양한 실시예에 따르면, 프로세서(410)는 전자 장치(400)의 디바이스 정보 및 각 외부 장치로부터 수신되는 외부 장치의 디바이스 정보에 기초하여, 프로비저닝 장치를 결정할 수 있다. 다양한 실시예에 따르면, 프로세서(410)는 각 장치의 파라미터에 기초한 스코어링(scoring)을 통해 프로비저닝 장치를 결정할 수 있다. 프로세서(410)는 스코어링 시에 디바이스 정보의 보안 파라미터, 성능 파라미터 또는 유틸리티 파라미터에 각각의 가중치 또는 스코어를 부여할 수 있으며, 보안 파라미터에 가장 높은 가중치를 부여할 수 있다.
다양한 실시예에 따르면, 프로세서(410)는 로컬 네트워크의 장치 중 프로버저닝 장치로 동작 가능한 복수의 장치를 확인하고, 확인된 복수의 장치의 디바이스 정보를 이용해 프로비저닝 장치를 결정할 수 있다. 예를 들어, 여러 장치 중 장치의 타입이 정해진 타입(예: TV, 카메라, 허브 장치, 랩탑 PC, 또는 태블릿 PC)인 경우에 프로비저닝 장치가 될 수 있는 후보가 될 수 있다. 프로세서(410)는 디스커버리 과정 또는 클라우드 서버로부터 수신한 각 장치의 타입 정보에 기반하여 프로비저닝 장치의 후보가 될 수 있는 장치에 디바이스 정보를 요청하거나 및/또는 전자 장치(400)의 디바이스 정보를 전송할 수 있다.
전자 장치(400)가 디바이스 정보의 스코어링을 통해 프로비저닝 장치를 선택하는 과정에 대해서는 도 6 내지 도 12를 통해 보다 상세히 설명하기로 한다.
다른 실시예에 따르면, 전자 장치(400)는 클라우드 서버로부터 선택된 프로비저닝 장치의 정보를 수신할 수 있다. 예를 들어, 클라우드 서버는 로컬 네트워크의 각 장치의 디바이스 정보를 수신하여, 스코어링을 통해 해당 로컬 네트워크의 적어도 하나의 프로비저닝 장치를 결정하고, 결정된 프로비저닝 장치의 정보를 프로비저닝 장치에 전송하거나, 또는 로컬 네트워크의 모든 장치에 전송할 수 있다.
다양한 실시예에 따르면, 로컬 네트워크 상에서 복수의 장치가 프로비저닝 장치로 결정될 수 있다. 예를 들어, 전자 장치(400) 또는 클라우드 서버는 로컬 네트워크 상에 위치하는 장치의 개수, 최대 홉 수(hop count) 또는 사용자 장치의 설정 중 적어도 일부에 기초하여, 로컬 네트워크 상에서 선정할 프로비저닝 장치의 개수를 결정할 수 있다. 복수의 장치가 프로비저닝 장치로 결정된 경우, 로컬 네트워크의 복수의 장치 중 일부에 대해서는 제1프로비저닝 장치가 프로비저닝 하고, 다른 일부에 대해서는 제2프로비저닝 장치가 프로비저닝 할 수 있다.
다양한 실시예에 따르면, 로컬 네트워크 상에 새로운 장치가 연결되거나, 스코어의 변경이 있는 경우, 전자 장치(400) 또는 클라우드 서버는 기 결정된 프로비저닝 장치 중 적어도 일부를 다시 선택할 수 있다. 또는, 프로비저닝 장치의 프로비저닝 동작이 중지되거나, 고장 또는 도난이 발생한 경우, 다른 프로비저닝 장치가 보안 통신을 받지 못한 경우, 또는 프로비저닝 장치의 프로비저닝 데이터가 삭제된 경우, 다시 스코어링 동작을 통해 프로비저닝 장치가 결정될 수 있다.
이하에서는, 전자 장치(400)가 프로비저닝 장치로 결정된 경우의 동작에 대해 설명하기로 한다.
다양한 실시예에 따르면, 전자 장치(400)가 프로비저닝 장치로 결정된 경우, 프로세서(410)는 통신 모듈(430)을 이용해 클라우드 서버로부터 엣지 컴퓨팅 서비스를 제공할 로컬 네트워크 상의 적어도 하나의 장치의 인증 정보를 수신할 수 있다.
일 실시예에 따르면, 프로세서(410)는 클라우드 서버 상에서 동일한 계정을 이용해 등록된 적어도 하나의 장치의 인증 정보를 수신할 수 있다. 예를 들어, 장치를 클라우드 서버 상에 온보딩(onboarding) 할 때, 사용자 장치 상에서 계정(account)을 기반으로 등록할 수 있다. 클라우드 서버는 각 장치의 인증 정보를 등록 시 사용된 계정을 기반으로 저장할 수 있으며, 해당 로컬 네트워크에서 프로비저닝 장치로 선정된 전자 장치(400)와 동일한 계정을 이용해 등록된 장치의 인증 정보를 전자 장치(400)에 제공할 수 있다.
다른 일 실시예에 따르면, 프로세서(410)는 클라우드 서버 상에 전자 장치(400)와 동일한 위치로 등록된 전자 적어도 하나의 장치의 인증 정보를 수신할 수 있다. 예를 들어, 장치를 클라우드 서버 상에 온보딩 할 때, 위치 ID 및 공간 정보(예: 방, 거실 또는 실외)를 등록할 수 있다. 클라우드 서버는 각 장치의 인증 정보를 등록 시 사용자가 설정한 위치를 기반으로 저장할 수 있으며, 해당 로컬 네트워크에서 프로비저닝 장치로 선정된 전자 장치(400)와 동일한 위치로 등록된 장치의 인증 정보를 전자 장치(400)에 제공할 수 있다.
다른 일 실시예에 따르면, 프로세서(410)는 사용자 장치의 어플리케이션에서 사용자에 의해 선택된 장치의 인증 정보를 클라우드 서버로부터 수신할 수 있다. 예를 들어, 사용자 장치를 이용해 장치를 클라우드 서버 상에 온보딩 하면, 사용자 장치의 어플리케이션에 온보딩 된 장치를 지시하는 오브젝트(예: 카드)가 생성되는데, 해당 오브젝트는 디바이스 ID를 포함할 수 있다. 클라우드 서버는 사용자 장치에서 등록된 오브젝트 리스트와 연결된 디바이스 ID 리스트에 포함된 장치의 인증 정보를 프로비저닝 장치에 전송할 수 있다.
다른 실시예에 따르면, 프로세서(410)는 동적으로 디바이스 디스커버리(device discovery)를 통해 로컬 네트워크의 각 장치를 디스커버리 하고, 디스커버리 된 장치의 디바이스 리스트를 클라우드 서버에 전송하고, 해당 장치의 인증 정보를 수신할 수 있다.
도 5는 다양한 실시예에 따른 클라우드 서버의 블록도이다.
다양한 실시예에 따르면, 클라우드 서버(500)는 클라우드 네트워크(예: 도 1의 클라우드 네트워크(140)) 상에 위치한 서버 장치로써, 하나 이상의 서버 장치로 구현될 수 있다.
도 5를 참조 하면, 클라우드 서버(500)는 프로세서(510), 통신 인터페이스(530) 및 메모리(520)를 포함할 수 있으며, 도시된 구성 중 일부가 생략 또는 치환되더라도 본 문서의 다양한 실시예들을 구현할 수 있다.
다양한 실시예에 따르면, 통신 인터페이스(530)는 PDN을 통해 로컬 네트워크의 각 장치(예: 도 1의 엣지 장치(110), 리프 장치(120) 및/또는 사용자 장치(130))와 데이터를 송수신할 수 있다.
다양한 실시예에 따르면, 메모리(520)는 클라우드 컴퓨팅 서비스와 관련된 다양한 정보를 저장할 수 있다. 예를 들어, 클라우드 서버(500)는 사용자 장치를 통해 온보딩 된 각 장치의 인증 정보를 등록 계정, 위치, 또는 사용자 장치의 설정에 기반하여 메모리(520) 상에 데이터베이스로 저장할 수 있다.
다양한 실시예에 따르면, 프로세서(510)는 클라우드 컴퓨팅 서비스 및/또는 엣지 컴퓨팅 서비스의 프로비저닝 동작을 수행할 수 있다. 예를 들어, 클라우드 서버(500)는 로컬 네트워크 상의 각 장치에 대한 보안 정보(예: X.509, ED25519 key pair, 또는 public / private key)를 메모리(520)의 데이터베이스에 저장하고, 등록된 정보를 기반으로 각 장치를 인증할 수 있다.
다양한 실시예에 따르면, 프로세서(510)는 로컬 네트워크 상의 각 장치가 다른 장치와 연결 또는 데이터 전송 시 데이터베이스 상에 등록된 정보를 기반으로 엣지 컴퓨팅 서비스에 대한 접근 권한을 가지고 있는지 확인할 수 있으며, 각 장치가 다른 장치의 데이터를 수신 및 처리하는데 필요한 소프트웨어를 제공하고, 필요한 경우 클라우드 서버(500) 상의 하드웨어 자원을 제공할 수 있다.
다양한 실시예에 따르면, 프로세서(510)는 특정 로컬 네트워크 상에서 엣지 컴퓨팅 서비스의 프로비저닝 장치를 결정할 수 있다. 프로세서(510)가 프로비저닝 장치를 결정하는 방법은 앞서 도 4를 통해 설명한 전자 장치의 프로세서(510)가 프로비저닝 장치를 결정하는 방법과 적어도 일부 동일할 수 있다.
다양한 실시예에 따르면, 프로세서(510)는 통신 인터페이스(530)를 통해 로컬 네트워크에 존재하는 복수의 외부 장치의 디바이스 정보를 수신할 수 있다. 여기서, 디바이스 정보는 보안(security) 파라미터, 성능(performance) 파라미터 및/또는 유틸리티(utility) 파라미터를 포함할 수 있다. 프로세서(510)는 각 장치의 파라미터에 기초한 스코어링(scoring)을 통해 프로비저닝 장치를 결정할 수 있다. 프로세서(510)는 스코어링 시에 디바이스 정보의 보안 파라미터, 성능 파라미터 또는 유틸리티 파라미터에 각각의 가중치 또는 스코어를 부여할 수 있으며, 보안 파라미터에 가장 높은 가중치를 부여할 수 있다.
다양한 실시예에 따르면, 프로세서(510)는 통신 인터페이스(530)를 통해 해당 로컬 네트워크의 모든 장치 또는 프로비저닝 장치로 결정된 적어도 하나의 장치에 선정된 프로비저닝 장치의 정보를 전송할 수 있다.
다른 실시예에 따르면, 프로비저닝 장치를 선정하는 동작은 로컬 네트워크 상의 각 장치에 의해 수행될 수 있으며, 이 경우 클라우드 서버(500)는 로컬 네트워크 상의 적어도 하나의 장치로부터 선택된 프로비저닝 장치의 정보를 수신할 수 있다.
다양한 실시예에 따르면, 로컬 네트워크에서 적어도 하나의 장치가 프로비저닝 장치로 결정된 경우, 프로세서(510)는 프로비저닝 장치가 프로비저닝 동작을 수행할 수 있도록 메모리(520)의 데이터베이스에 저장된 인증 정보를 통신 인터페이스(530)를 통해 프로비저닝 장치에 제공할 수 있다.
다양한 실시예에 따르면, 프로세서(510)는 프로비저닝 장치로 프로비저닝 장치와 동일한 계정을 이용해 등록된 적어도 하나의 장치의 인증 정보를 제공하거나, 동일한 위치로 등록된 전자 적어도 하나의 장치의 인증 정보를 제공하거나, 및/또는 사용자 장치의 어플리케이션에서 사용자에 의해 선택된 장치의 인증 정보를 제공할 수 있다.
도 6은 다양한 실시예에 따른 프로비저닝 장치의 결정을 위한 전자 장치의 구성을 도시한 것이다.
도 6을 참조 하면, 전자 장치(610)(예: 도 4의 전자 장치(400))에서 프로비저닝 프로세서(612), 프로비저닝 매니저(614), 스코어 정보(616) 및 스코어 계산기(618)가 프로비저닝 장치의 결정을 위해 사용될 수 있다. 도시된 구성은 프로세서(예: 도 4의 프로세서(410))의 구성 중 적어도 일부를 포함하거나, 프로세서에 의해 수행될 수 있는 프로그램이거나, 메모리에 저장된 정보일 수 있다.
다양한 실시예에 따르면, 전자 장치(610)는 로컬 네트워크에 존재하는 적어도 하나의 외부 장치(예: TV(632), 랩탑 PC(634), 또는 IP 카메라(636))로부터 디바이스 정보를 수신하여, 스코어 정보(616) 상에 저장할 수 있다. 여기서, 디바이스 정보는 보안(security) 파라미터, 성능(performance) 파라미터 및/또는 유틸리티(utility) 파라미터를 포함할 수 있다. 또한, 전자 장치(610)는 전자 장치(610)의 디바이스 정보를 스코어 정보(616) 상에 저장할 수 있다.
다양한 실시예에 따르면, 스코어 계산기(618)는 디바이스 정보의 각 파라미터를 정해진 알고리즘에 따라 계산하여, 각 장치의 스코어를 계산할 수 있다. 예를 들어, 스코어 계산기(618)는 디바이스 정보의 보안 파라미터, 성능 파라미터 또는 유틸리티 파라미터에 각각의 가중치 또는 스코어를 부여하고, 각 파라미터로부터 계산된 스코어의 합을 해당 장치의 스코어로 결정할 수 있다. 이 경우, 스코어 계산기(618)는 각 파라미터 중 보안 파라미터, 성능 파라미터, 유틸리티 파라미터의 순으로 높은 가중치를 부여할 수 있으며, 각 파라미터 별로 임계값을 가질 수도 있다.
표 1은 전자 장치(610)가 디바이스 정보의 각 파라미터를 이용하여 스코어를 계산하는 방법의 일 예를 나타낸 것이다.
파라미터 대상 설명
Security Trust zone /
eSE (embedded secure element)
Hardware security level
예: trust zone과 같이 신뢰 가능한 파일 시스템이 존재하는 경우, +500점
Rooting Software security level
예: Rooting 또는 개발자 모드가 활성화 중인 경우, -200점
Anti-virus Software security level예: 보안 프로그램, 방화벽, 기타 보안 장치 사용 시, 각 +200점 (최대 400점)
기타 기타 보안 레벨예: 사용자 인증, 엣지 장치 인증 시 +50점 (최대 200점)
Performance Max CPU or memory 하드웨어 성능 (최대 40점)
예: 특정 성능 이상의 프로세서 보유 시 +20점, 특정 용량 이상의 메모리 보유 시 +20점
Available CPU or memory 사용 가능한 하드웨어 리소스 (최대 40점)
예: 평균 CPU 점유율 및 현재 CPU 점유율이 50% 이하인 경우 +20점, 평균 메모리 여유량 및 현재 메모리 여유량이 각각 특정 값 이상인 경우 +10점
배터리 동작 가능한 시간 (최대 10점)예: 전원에 연결된 기기일 경우 +10점, 특정 용량 이상의 배터리가 사용 중이고 잔여 용량이 특정 비율 이상인 경우 +10점
유틸리티 Connectivity 게이트웨이로의 홉 수, 최대 홉 수
role 게이트웨이 또는 엣지 장치로 동작 중인지 여부
다양한 실시예에 따르면, 프로비저닝 매니저(614)는 스코어 계산기(618)에 의해 계산된 각 장치의 스코어에 기반하여, 적어도 하나의 프로비저닝 장치를 선정할 수 있다.프로비저닝 매니저(614)는 각 장치의 스코어링 결과에 따라서 각 장치를 프로비저닝 레벨 별로 구분할 수 있으며, 각 프로비저닝 레벨은 특정 상황에서 프로비저닝 장치로 동작 가능한 지 여부에 따라 구분될 수 있다. 표 2는 스코어링 결과에 따른 각 장치의 프로비저닝 레벨의 구분의 일 예이다.
Provisioning level 설명
Level 1 별도의 보안 수단 없이 최소한의 기능 만으로 민감하지 않음 디바이스들에 대해서만 프로비저닝을 수행 가능예: 스코어 100 이상의 장치
Level 2 Trust zone과 같이 강력한 보안 수단은 없지만, 기본적인 보안 프로그램과 같은 보안 수단을 가지고 있으며, 루팅이 되어 있지 않은 장치. 보안 레벨이 중간 단계인 디바이스들까지 프로비저닝을 수행 가능예: 스코어 300 이상의 장치
Level 3 Trust zone과 같이 확실한 보안 수단을 가지고, 일정 이상의 하드웨어/소프트웨어 성능이 보장되는 경우, 클라우드 서버(620)와 동일한 레벨의 프로비저닝 동작 수행 가능예: 스코어 600 이상의 장치
스코어 계산기 및/또는 프로비저닝 매니저(614)의 스코어링 방법과 프로비저닝 디바이스의 레벨 구분 방법은 다음과 같이 예를 들 수 있다.일 실시예에 따르면, 프로비저닝 매니저(614)는 특정 장치 또는 로컬 네트워크 장치의 모든 장치에 대해, 보안 레벨과 프로비저닝 레벨을 고려하여 스코어링 방법을 선정할 수 있다.
예를 들어, 장치의 스코어는 다음 식 1과 같이 결정될 수 있다.
[식 1]
Score = security level * weight 1 + performance * weight 2 + position
여기서, 가중치 1(weight 1)은 가중치 2(weight 2)보다 높을 수 있다. (예: weight 1 = 100, weight 2 = 10)
프로비저닝 매니저(614)는 기본 스코어 설정 시 가중치를 설정하거나, 생략할 수 있다. 스코어 설정에 가중치를 미리 반영하여 설정한 경우 가중치를 고려할 필요 없이 각 파라미터의 값을 더할 수 있다.
일 실시예에 따르면, 특정 장치가 프로비저닝 장치로 선정되는 경우, 해당 장치의 스코어에 특정 스코어를 더하여, 다른 장치들보다 높은 스코어를 갖도록 조정할 수 있다. 또는, 특정 장치가 프로비저닝 동작을 수행하는 경우, 해당 장치의 스코어에 제3가중치(예: 1000)에 프로비저닝 레벨을 곱한 값을 더하여, 높은 스코어를 갖도록 조정할 수 있다. 이에 따라, 프로비저닝 장치로 선정된 적어도 하나의 장치의 스코어와 프로비저닝 장치로 선정되지 않은 나머지 장치의 계산된 스코어의 차이가 큰 값을 가질 수 있다. 일 실시예에 따르면, 특정 장치가 프로비저닝 장치로 선정되는 경우, 해당 장치의 스코어를 조정하고, 조정된 스코어를 주변 장치들에게 전파(예: 브로드캐스팅)하여 해당 장치가 프로비저닝 장치로 동작함을 알릴 수 있다.
일 실시예에 따르면, 프로비저닝 매니저(614)는 로컬 네트워크에 새로운 장치가 연결되는 경우, 해당 장치에서 수신한 디바이스 정보를 기반으로 현재 프로비저닝 디바이스인지 여부 및/또는 프로비저닝 레벨을 확인할 수 있다. 예를 들어, 엣지 네트워크에서 수행하는 경우 엣지 네크워크 내의 특정 장치가 새로운 디바이스가 진입 했음을 확인할 수 있고, 서버의 경우, 계정 기반으로 온보딩 또는 네트워크에 합류 또는 재합류 되었음을 확인할 수 있다. 프로비저닝 매니저(614)는 새로운 장치의 연결이 확인되는 경우, 해당 장치로부터 전달 받은 또는 재연결 이전에 계산된 기존 스코어 값을 이용하거나, 스코어 계산기(618)에서 상기 절차를 통해 스코어 및 프로비저닝 레벨 값을 다시 계산할 수 있다.
다양한 실시예에 따르면, 프로비저닝 프로세서(612)는 전자 장치(610)가 프로비저닝 장치로 결정된 경우, 프로비저닝 동작을 수행할 수 있다. 예를 들어, 프로비저닝 프로세서(612)는 클라우드 서버(620)로부터 각 장치의 인증 정보를 수신하여 메모리에 저장하고, 프로비저닝 동작을 수행할 수 있다.
도 7은 다양한 실시예에 따른 프로비저닝 장치를 결정하기 위한 방법의 흐름도이다.
도 7에 도시된 방법은 로컬 네트워크 상의 각 장치(예: 도 4의 전자 장치(400) 또는 도 6의 전자 장치(600))에 의해 수행될 수 있다. 도 7에서 PD는 프로비저닝 장치(provisioning device), BD는 예비적으로 프로비저닝 장치로 동작할 수 있는 백업 장치(back-up device), ND는 프로비저닝 동작을 할 수 없는 장치(non-provisioning device)를 의미할 수 있다.
다양한 실시예에 따르면, 프로비저닝 장치의 선정 시기는 다음과 같이 결정될 수 있다.
일 실시예에 따르면, 사용자 장치의 트리거에 의해 로컬 네트워크의 프로비저닝 장치를 결정할 수 있다. 프로비저닝 장치는 보안 이슈를 가지고 있기 때문에, 사용자가 사용자 장치를 통해 직접 프로비저닝 장치의 선정을 요청해야 동작할 수 있다. 사용자의 트리거 이전에도 로컬 네트워크의 각 장치는 자신의 스코어를 계산하고 주변의 다른 노드와 미리 계산된 스코어를 교환할 수 있으며, 이에 따라 프로비저닝 장치의 선정 시 시간을 줄일 수 있다.
사용자가 프로비저닝 장치의 선정 기능을 활성화는 경우, 기본적으로 사용자가 관리하는 모든 네트워크(예: 사용자 계정을 통해 등록된 로컬 네트워크)가 프로비저닝 장치를 선정하고, 프로비저닝 동작을 로컬 기반으로 수행할 수 있다. 프로비저닝 장치가 기본적으로 로컬 네트워크를 기반으로 동작하기 때문에, 연결되어 있지 않은 네트워크(예: 다른 로컬 네트워크)는 별도의 프로비저닝 장치 선정 절차를 거칠 수 있다. 사용자는 프로비저닝 장치의 선정 기능을 활성화 시킬 때, 후보가 될 수 있는 장치들을 별도로 선택 가능하게 하여 자유도를 높일 수 있다. 클라우드 서버는 사용자 입력을 로컬 네트워크 상의 각 장치에 전달하여 프로비저닝 장치의 선정을 개시하도록 할 수 있다. 일 실시예에 따르면, 클라우드 서버는 사용자가 프로비저닝 장치의 선정 기능을 활성화 하는 경우, 프로비저닝 동작을 수행할 수 있는 장치들로만 프로비저닝 장치의 선정을 개시하도록 할 수 있다. 프로비저닝 장치를 선정하는 동작이 개시되는 경우, 각 장치는 정해진 시간(예: 1분-10분) 동안 주변 장치들과 스코어 업데이트를 진행할 수 있다. 일정 기간동안 업데이트가 없는 경우, 이후 프로비저닝 장치의 선정 절차에 따라 프로비저닝 장치를 선정할 수 있다.
이하에서는 프로비저닝 장치의 선정이 트리거 된 경우, 도 7을 참조하여, 전자 장치(예: 도 4의 전자 장치(400) 또는 도 6의 전자 장치(600))의 동작에 대해 설명한다.
다양한 실시예에 따르면, 동작 701에서, 전자 장치는 전자 장치가 PD(provisioning device) 및/또는 BD(back up device)로 동작 가능한지 확인할 수 있다. 예를 들어, 여러 장치 중 장치의 타입이 정해진 타입(예: TV, 카메라, 허브 장치, 랩탑 PC, 또는 태블릿 PC와 같은 장치 타입)인 경우에 프로비저닝 장치가 될 수 있는 후보가 될 수 있다. 확인 결과, 전자 장치가 PD로 동작할 수 없는 경우 스코어를 낮은 값(예: 1)으로 설정하여 프로비저닝 장치로 선정될 수 없도록 하고, PD로 동작할 수 있는 경우 후술하는 스코어 계산 동작을 수행할 수 있다.
전자 장치의 디바이스 정보의 파라미터(예: 보안 파라미터, 성능 파라미터, 및/또는 유틸리티 파라미터)를 이용하여 전자 장치의 스코어를 계산할 수 있다.
다양한 실시예에 따르면, 동작 711에서, 전자 장치는 전자 장치의 디바이스 정보 및 네트워크 정보를 획득할 수 있다. 예를 들어, 디바이스 정보는 보안 파라미터, 성능 파라미터, 및/또는 유틸리티 파라미터를 포함하고, 네트워크 정보는 특정 장치(예: 게이트웨이, AP)로부터의 홉수, 및/또는 IP 주소와 같은 정보를 포함할 수 있다.
다양한 실시예에 따르면, 동작 712에서, 전자 장치는 전자 장치의 스코어를 계산하기에 충분한 디바이스 정보 및 네트워크 정보가 수집되었는지 확인할 수 있다. 일 실시 예에 따르면, 전자 장치는 전자 장치가 포함된 네트워크에 대한 정보 및 해당 네트워크에 포함된 장치들의 디바이스 정보를 클라우드 서버(예: 도 1의 클라우드 서버(140) 또는 도 6의 클라우드 서버(620))로 요청할 수 있다. 다른 일 실시 예에 따르면, 전자 장치는 근거리 네트워크를 사용하여 지정된 시간 동안 지정된 범위에 위치하는 외부 전자 장치들로부터 디바이스 정보 및 네트워크 정보를 수집할 수 있다. 전자 장치는 충분한 정보가 수집될 때까지 디바이스 정보 및 네트워크 정보를 획득할 수 있다.
다양한 실시예에 따르면, 동작 721에서, 전자 장치는 충분한 정보가 수집된 경우, 각 파라미터에 기반하여 전자 장치의 스코어를 계산하고, 전자 장치의 스코어가 PD 후보가 될 수 있는지 결정할 수 있다.
다양한 실시예에 따르면, 전자 장치의 스코어링 결과 PD 후보가 될 수 없는 경우, 동작 729에서, ND(non-provisioning device)로 결정될 수 있다. 예를 들어, 전자 장치는 전자 장치의 스코어링 결과가 전자 장치가 계산한 다른 전자 장치의 스코어링 결과보다 낮은 경우, 전자 장치가 PD 후보가 될 수 없다고 판단할 수 있다.
다양한 실시예에 따르면, 전자 장치가 스코어링 결과 PD 후보가 될 수 있는 경우, 동작 722에서, 전자 장치는 현재 로컬 네트워크에서 프로비저닝 동작을 수행하는 PD가 있는지 확인할 수 있다. 현재 로컬 네트워크에 PD가 없는 경우, 전자 장치는 동작 741에서, PD로 결정되어 PD 역할을 수행할 수 있다.
다양한 실시예에 따르면, 전자 장치는 현재 로컬 네트워크에 프로비저닝 동작을 수행하는 PD가 있는 경우, 동작 723에서, 전자 장치는 로컬 네트워크에 충분한 수의 PD가 있는지 확인할 수 있다. 예를 들어, 전자 장치는 현재 로컬 네트워크에 위치하는 장치의 개수와 PD의 개수의 차이(또는 비율), 및/또는 로컬 네트워크의 end to end hop 수의 최대 값을 고려하여, PD의 수가 충분한 지 확인할 수 있다.
다양한 실시예에 따르면, 로컬 네트워크에 충분한 수의 PD가 있는 경우, 동작 724에서, 전자 장치는 현재 동작 중인 PD 또는 BD(back up device)의 스코어보다 전자 장치의 스코어가 높은 지 확인할 수 있다. 확인 결과, 전자 장치의 스코어가 높지 않은 경우, 동작 729에서, 전자 장치는 ND로 결정될 수 있다.
다양한 실시예에 따르면, 전자 장치의 스코어가 현재 PD보다 높은 경우, 동작 741에서, PD로 역할을 수행하고, 전자 장치의 스코어가 PD보다 낮고 DB보다 높은 경우에는, 동작 731에서, BD 역할을 수행할 수 있다.
다양한 실시예에 따르면, 전자 장치가 BD 역할을 수행하는 경우, 동작 735에서 PD 역할을 수행하는 다른 장치가 PD 역할의 수행 시간이 남아 있는지 확인하고, 시간이 도달한 경우 PD로 역할을 변경할 수 있다.
다양한 실시예에 따르면, 동작 743에서, 전자 장치는 프로비저닝 장치로 동작 중인 상태에서 전자 장치가 네트워크 내의 다른 장치와 통신을 수행할 수 있는지 확인하고, 통신이 가능한 경우 계속 해서 PD 역할을 수행하고, 통신을 수행할 수 없는 경우, 동작 745에서 로컬 네트워크의 PD의 역할을 수행하는 다른 장치가 네트워크에서 이탈했는지 확인할 수 있다.
다양한 실시예에 따르면, PD의 역할을 수행하는 다른 장치가 제거된 경우 동작 747에서 전자 장치가 BD 중 가장 스코어가 높은 지 확인하고, BD 중 가장 스코어가 높으면 PD 역할을 수행하고, 그렇지 않으면 BD 역할을 수행할 수 있다.
다양한 실시예에 따르면, 동작 745의 확인 결과, 로컬 네트워크의 다른 장치가 PD로 계속 동작 중인 경우, 동작 751에서, 전자 장치는 저장된 프로비전 데이터를 삭제할 수 있다. 프로비전 데이터 삭제 이후, 다시 PD 선정 절차가 개시되는 경우 디바이스 정보에 기반한 스코어링 동작을 수행할 수 있다.
다양한 실시예에 따르면, 동작 735에서 PD 역할을 수행하는 다른 장치가 PD 역할의 수행 시간이 종료된 경우, 현재 네트워크에 PD가 있는지 확인할 수 있다. 예를 들어, PD 역할을 수행하는 장치가 네트워크에서 벗어나는 경우(예: 외부로 이동, 네트워크 연결 해제), BD 역할을 수행하던 장치가 PD 역할을 수행할 수 있다. 다른 예를 들어, PD 역할을 수행하는 장치가 네트워크에 있는 경우, PD 역할을 수행하는 장치는 PD 타이머를 갱신하여 PD 역할을 수행할 수 있다.
도 8은 다양한 실시예에 따른 각 장치의 스코어링을 통해 프로비저닝 장치를 결정하는 흐름도이다.
도 8을 참조 하면, 로컬 네트워크 상에 카메라(802), 허브 장치(804), 전구(806) 및 TV(808)가 위치하고, 카메라(802)는 허브 장치(804)와, 허브 장치(804)는 카메라(802) 및 전구(806)와, 전구(806)는 허브 장치(804) 및 TV(808)와, TV(808)는 전구(806)와 연결되어 디바이스 정보를 송수신할 수 있다. 예를 들어, TV(808) 및 허브 장치(804)는 외부 IP 네트워크(예: PDN)와 연결될 수 있으며, 카메라(802) 및 전구(806)는 각각 외부 네트워크에 접속 가능한 장치 중 인접하거나, 신호 세기가 큰 장치와 연결되거나, 사용자가 직접 연결 대상 장치를 선택할 수 있다. 허브 장치(804) 및 TV(808)는 IP 네트워크를 통해 클라우드 서버와 연결될 수 있다.
다양한 실시예에 따르면, 로컬 네트워크 상의 각 장치는 해당 장치의 디바이스 정보 및 로컬 네트워크의 다른 장치의 디바이스 정보를 수신할 수 있다. 예를 들어, 네트워크에 있는 장치들은 클라우드 서버를 통해 네트워크에 있는 장치들 간의 연결 정보 및 디바이스 정보를 수신할 수 있다. 일 실시예에 따르면, 클라우드 서버와 직접 연결될 수 없는 장치들(예: 카메라(802) 및 전구(806))은 클라우드 서버와 연결될 수 있는 장치들(예: 허브 장치(804) 및 TV(808))을 통해 다른 장치의 디바이스 정보를 수신할 수 있다. 디바이스 정보는 각 장치는 디바이스 정보의 파라미터(예: 보안 파라미터, 성능 파라미터 및/또는 유틸리티 파라미터)에 기반하여 해당 장치 및 다른 장치의 스코어를 계산할 수 있다.
다양한 실시예에 따르면, 동작 832에서, TV(808)는 TV(808)의 디바이스 정보에 기반하여 TV(808)의 스코어를 120으로 계산할 수 있다. TV(808) 자신의 스코어이기 때문에, 홉수는 0으로 나타낼 수 있다. TV(808)는 계산된 스코어 120 및 홉 수 0을 TV(808)와 연결된 전구(806)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 834에서, 허브 장치(804)는 허브 장치(804)의 디바이스 정보에 기반하여 허브 장치(804)의 스코어를 150으로 계산할 수 있다. 허브 장치(804)는 계산된 스코어 150 및 홉 수 0을 허브 장치(804)와 연결된 카메라(802) 및 전구(806)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 836에서, 전구(806)는 전구(806)의 디바이스 정보에 기반하여 전구(806)의 스코어를 3으로 계산할 수 있다. 전구(806)는 프로비저닝 동작을 위한 프로세서 및 메모리 리소스를 포함하지 않는 장치이므로, 낮은 스코어를 가질 수 있다. 또한, 전구(806)는 TV(808) 및 허브 장치(804)에 대해 홉 수 1을 설정할 수 있다. 전구(806)는 자신이 계산한 전구(806)의 스코어 및 홉 수와 TV(808) 및 허브 장치(804)의 스코어 및 홉 수를 연결된 허브 장치(804) 및 TV(808)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 838에서, 카메라(802)는 카메라(802)의 디바이스 정보에 기반하여 카메라(802)의 스코어를 52로 계산할 수 있다. 카메라(802)는 홉 수 1을 설정할 수 있다. 카메라(802)는 자신이 계산한 카메라(802)의 스코어 및 홉 수와, 허브 장치(804)의 스코어 및 홉 수를 연결된 허브 장치(804)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 839에서, 허브 장치(804)는 카메라(802), 전구(806), TV(808)의 스코어를 모두 획득하고, 홉 수를 갱신할 수 있다. 예를 들어, TV(808)의 스코어는 전구(806)를 거쳐 허브 장치(804)로 전송되기 때문에 홉 수가 2로 설정될 수 있다. 허브 장치(804)는 각 장치의 스코어 및 홉 수를 카메라(802) 및 전구(806)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 840에서, 전구(806)는 카메라(802), 허브 장치(804), TV(808)의 스코어를 모두 획득하고, 홉 수를 갱신할 수 있다. 전구(806)는 각 장치의 스코어 및 홉 수를 허브 장치(804) 및 TV(808)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 832 내지 동작 840에서 설명한 바와 같이, 로컬 네트워크의 각 장치는 자신의 스코어를 계산하여 연결된 다른 장치에 전송할 수 있으며, 다른 장치의 디바이스 정보를 수신하여 다른 장치의 스코어도 계산할 수 있다.
미도시 되었지만, 다양한 실시예에 따르면, 로컬 네트워크의 각 장치는 클라우드 서버에서 계산된 스코어를 수신하여 다른 장치의 스코어를 계산할 수 있다. 예를 들어, 클라우드 서버는 로컬 네트워크에 있는 복수의 장치들의 온보딩 시 및/또는 실시간으로 디바이스 정보를 수신할 수 있으며, 각 장치의 디바이스 정보에 기반하여 스코어를 계산하고, 계산 결과를 네트워크에 있는 복수의 장치들로 전송할 수 있다.
다양한 실시예에 따르면, 각 장치는 설정된 시간(예: 1분 내지 10분) 동안 스코어 업데이트를 진행할 수 있다. 동작 842, 844, 846, 848에서, 각각의 장치는 설정된 시간이 경과하고 추가적인 디바이스 정보의 업데이트가 없음을 확인할 수 있다. 이에 따라, 로컬 네트워크의 각 장치의 스코어가 결정될 수 있다. 스코어는 모든 장치에서 동일할 수 있으며(예: 카메라 52, 허브 장치 150, 전구 3, TV 120), 홉 수는 서로 다르게 설정될 수 있다.
도 9는 다양한 실시예에 따른 각 장치의 스코어링을 통해 프로비저닝 장치를 결정하는 흐름도이다.
도 9는 도 8의 스코어링 이후, 프로비저닝 장치의 선정이 트리거 된 이후 각 장치의 동작을 도시한 것이다.
다양한 실시예에 따르면, 동작 932에서, 사용자 장치(912)는 어플리케이션 상의 사용자 입력에 기초하여 프로비저닝 장치의 선택을 클라우드 서버(910)에 요청할 수 있다. 프로비저닝 장치는 보안 이슈를 가지고 있기 때문에, 사용자가 사용자 장치(912)를 통해 직접 프로비저닝 장치의 선정을 요청하는 경우에, 프로비저닝 장치의 선정 및 로컬에서의 프로비저닝 동작이 수행될 수 있다.
다양한 실시예에 따르면, 동작 934에서, 클라우드 서버(910)는 프로비저닝 선택을 트리거 하기 위한 커맨드를 IP 네트워크를 통해 클라우드 서버(910)와 연결될 수 있는 허브 장치(904)(예: 도 8의 허브 장치(804)) 및 TV(908)(예: 도 8의 TV(808))에 전송할 수 있다.
다양한 실시예에 따르면, 동작 936에서, TV(908)는 TV(908)와 연결된 전구(906)(예: 도 8의 전구(806))에 프로비저닝 장치 선정의 트리거 커맨드를 전송하고, 동작 938에서, 허브 장치(904)는 허브 장치(904)와 연결된 카메라(902)(예: 도 8의 카메라(802))에 프로비저닝 장치 선정의 트리거 커맨드를 전송할 수 있다.
다양한 실시예에 따르면, 동작 942, 944, 946, 948에서, 카메라(902), 허브 장치(904), 전구(906) 및 TV(908)는 각 장치의 스코어를 업데이트 할 수 있다. 도 8의 과정과 같이 각 장치의 스코어를 계산 및 교환 한 이후 새로 추가되는 장치가 없기 때문에, 각 장치의 스코어는 52, 150, 3, 120으로 유지될 수 있다.
다양한 실시예에 따르면, 로컬 네트워크의 장치 중 허브 장치(904)와 TV(908)가 프로비저닝 장치로 결정될 수 있고, 각각 연결된 카메라(902) 및 전구(906)에 대해 프로비저닝 동작을 수행하는 것으로 결정될 수 있다.
다양한 실시예에 따르면, 동작 952에서, 허브 장치(904)는 프로비저닝 장치로 결정된 것을 확인하고, 프로비저닝 장치로 동작하기 위해 필요한 리소스를 설정할 수 있다. 또한, 허브 장치(904)는 자신의 스코어에 특정 값(예: 3000)을 더하여 높은 값으로 설정할 수 있다. 이와 적어도 일부 동시에, 동작 954에서, TV(908)는 프로비저닝 장치로 결정된 것을 확인하고, 프로비저닝 장치로 동작하기 위해 필요한 리소스를 설정할 수 있다. 또한, TV(908)는 자신의 스코어에 특정 값(예: 3000)을 더하여 높은 값으로 설정할 수 있다.
다양한 실시예에 따르면, 동작 962에서, TV(908)는 클라우드 서버(910)에 프로비저닝 데이터의 전송을 요청할 수 있다. 예를 들어, TV(908)는 전구(906)에 대해 프로비저닝 동작을 수행하는 것으로 결정 되었으므로, 클라우드 서버(910)에 저장된 전구(906)의 인증 정보를 요청할 수 있다. 동작 964에서, 클라우드 서버(910)는 TV(908)의 요청에 대응하여, 전구(906)의 인증 정보를 전송할 수 있다.
다양한 실시예에 따르면, 동작 966에서, TV(908)는 프로비저닝 장치로 등록되었음을 다른 장치에 애드버타이징(advertising) 할 수 있다. 동작 968에서, 전구(906)는 로컬 프로비저닝 모드로 설정하여 프로비저닝 장치인 TV(908)에 대해 인증 절차를 수행할 수 있다. 동작 970에서, 전구(906)는 TV(908)에 인증 요청을 전송하고, 동작 972에서, TV(908)는 클라우드 서버(910)로부터 수신하여 저장된 인증 정보에 기초하여 전구(906)를 인증하고, 인증 요청에 대한 응답을 전송할 수 있다.
다양한 실시예에 따르면, 허브 장치(904)는 프로비저닝 장치로 등록 되었음을 다른 장치에 애드버타이징 하지 않을 수 있다. 이 경우, 카메라(902)는 프로비저닝 트리거 이후 정해진 시간 동안(예: 30초) 대기한 후 로컬 프로비저닝 모드로 설정할 수 있다. 동작 988에서, 카메라(902)는 허브 장치(904)에 인증 요청을 전송하고, 동작 990에서, 허브 장치(904)는 클라우드 서버(910)로부터 수신하여 저장된 인증 정보에 기초하여 카메라(902)를 인증하고, 인증 요청에 대한 응답을 전송할 수 있다.
도 9의 실시예에서는 2개의 장치(허브 장치(904)와 TV(908))가 프로비저닝 장치로 결정된 것으로 설명하고 있으나, 로컬 네트워크 상에서 프로비저닝 장치의 개수는 이에 한정되지 않는다. 예를 들어, 허브 장치(904)가 프로비저닝 장치로 선정될 수 있으며, 이 경우 허브 장치(904)는 TV(908), 카메라(902), 전구(906)에 대해 프로비저닝 동작을 수행할 수 있다. 또는, 로컬 네트워크 상에서 3개 이상의 장치가 프로비저닝 장치로 결정될 수 있다.
다양한 실시예에 따르면, 로컬 네트워크 장치 중에서 프로비저닝 장치로 결정되는 장치들의 수는 로컬 네트워크의 장치의 개수 및/또는 장치들의 연결 관계에 기반하여 결정될 수 있다. 예를 들어, 장치들의 연결 관계는, 클라우드 서버(910)와의 연결 상태 및/또는 장치들 간의 홉 수를 포함할 수 있다.
도 10은 다양한 실시예에 따른 각 장치의 스코어링을 통해 프로비저닝 장치를 결정하는 흐름도이다.
도 10은 도 8 및 도 9에서 각 장치의 스코어링 및 프로비저닝 장치의 선정 이후 냉장고(1012)가 로컬 네트워크에 새로 연결된 경우, 각 장치의 스코어를 업데이트 하고 프로비저닝 장치를 선정하는 과정에 대해 도시한 것이다.
다양한 실시예에 따르면, 동작 1032에서, 냉장고(1012)가 로컬 네트워크 내에 추가되고, 냉장고(1012)는 카메라(1002)(예: 도 8의 카메라(802), 도 9의 카메라(902))와 직접 근거리 통신 또는 액세스 포인트를 통해 연결될 수 있다. 냉장고(1012)가 클라우드 서버(1020)에 온보딩 된 경우, 클라우드 서버(1020) 및/또는 로컬 네트워크 내의 다른 장치의 트리거에 따라 냉장고(1012)의 스코어를 계산할 수 있다. 동작 1034에서, 냉장고(1012)는 냉장고(1012)의 디바이스 정보에 기초하여 냉장고(1012)의 스코어를 170으로 계산할 수 있다.
다양한 실시예에 따르면, 동작 1034에서, 냉장고(1012)는 자신이 계산한 냉장고(1012)의 스코어 및 홉 수를 연결된 카메라(1002)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 1036에서, 카메라(1002)는 냉장고(1012)의 스코어 및 홉 수를 수신하고, 카메라(1002)에 저장된 로컬 네트워크에 위치하는 장치들의 스코어(예: 도 9에서 계산된 스코어)를 냉장고(1012)로 전송할 수 있다.
다양한 실시예에 따르면, 동작 1038에서, 카메라(1002)는 냉장고(1012)에서 수신한 냉장고(1012)의 스코어 및 홉 수를 허브 장치(1004)(예: 도 8의 허브 장치(804), 도 9의 허브 장치(904))에 전송하고, 허브 장치(1004)는 전구(1006)(예: 도 8의 전구(806), 도 9의 전구(906))에, 전구(1006)는 TV(1008)(예: 도 8의 TV(808), 도 9의 TV(908))에 전송할 수 있다. 이에 따라, 각 장치는 로컬 네트워크에 위치하고 있던 4개의 장치의 스코어 및 새롭게 추가된 냉장고(1012)의 스코어를 확인할 수 있다.
스코어링 결과, 냉장고(1012)의 스코어는 이전에 프로비저닝 장치로 선정된 TV(1008)의 스코어 및 허브 장치(1004)의 스코어보다 낮기 때문에, 로컬 네트워크 상의 프로비저닝 장치는 TV(1008) 및 허브 장치(1004) 2개로 유지될 수 있다. 여기서, 냉장고(1012)의 스코어는 전구(1006) 및 카메라(1002)보다는 높기 때문에, 백업 프로비저닝 장치로 결정될 수 있다. 이 후, TV(1008) 또는 허브 장치(1004)가 오프 되거나, 네트워크에서 벗어나게 되는 경우, 냉장고(1012)가 프로비저닝 장치로 동작할 수 있다.
다양한 실시예에 따르면, 동작 1042에서, 냉장고(1012)는 인증 요청을 프로비저닝 장치인 카메라(1002)에 전송할 수 있다. 동작 1044에서, 카메라(1002)는 냉장고(1012)의 인증 정보를 클라우드 서버(1020)에 요청하고, 동작 1064에서 클라우드 서버(1020)는 데이터베이스에 저장된 냉장고(1012)의 인증정보를 카메라(1002)에 전송하고, 카메라(1002)는 인증 정보를 동기화 할 수 있다.
다양한 실시예에 따르면, 동작 1050에서, 냉장고(1012)는 백업 프로비저닝 장치로 동작하기 위해 설정할 수 있다.
도 11은 다양한 실시예에 따른 프로비저닝 장치의 변경 이벤트 발생 시 각 장치의 동작을 도시한 것이다.
다양한 실시예에 따르면, 클라우드 서버(1120)(예: 도 10의 클라우드 서버(1020))에서 프로비저닝 동작을 수행하거나 또는 로컬 네트워크 내의 특정 장치가 프로비저닝 장치로 선정된 이후, 새로운 장치가 프로비저닝 장치로 선정되는 경우에는 프로비저닝 역할 변경을 요청할 수 있다. 예를 들어, 로컬 네트워크 내의 특정 장치가 프로비저닝 장치로 선정된 후 동작 중에 네트워크 내에서 사라지거나 정상적으로 클라우드 서버(1120)와의 동작을 수행하지 못하는 경우, 또는 로컬 네트워크 내에 프로비저닝 장치가 존재하지 않아 클라우드 서버(1120)가 프로비저닝 동작을 수행 중에 클라우드 서버(1120)가 정상적으로 동작하지 않거나 외부 네트워크와 통신이 불가능한 상태인 경우에는 로컬 네트워크의 장치 간의 약속된 프로토콜을 기준으로 역할 변경을 수행할 수 있다. 일 실시예에 따르면, 로컬 네트워크의 장치와 클라우드 서버(1120)의 통신이 정상적으로 이루어지는 경우에는 클라우드 서버(1120)에 프로비저닝 장치의 변경 요청 및 승인을 통해, 클라우드 서버(1120)를 경유하여 프로비저닝 장치의 역할을 변경할 수 있다. 다른 일 실시예에 따르면, 로컬 네트워크 상에서 각 장치들의 통신에 의해 프로비저닝 장치가 변경되는 경우, 프로비저닝 장치 또는 로컬 네트워크 내의 다른 장치가 서버에 변경 사실을 전송할 수 있다.
다양한 실시예에 따르면, 프로비저닝 장치가 카메라(1102)(예: 도 10의 카메라(1002))에서 냉장고(1112)(예: 도 10의 냉장고(1012))로 변경되는 이벤트가 발생한 경우, 동작 1132에서, 냉장고(1112)는 냉장고(1112)의 역할 변경 요청을 카메라(1102)로 전송할 수 있다. 동작 1134에서, 카메라(1102)는 클라우드 서버(1120)에 프로비저닝 장치 변경 요청을 전송하고, 동작 1136에서, 클라우드 서버(1120)는 카메라(1102)에 변경 승인을 통지할 수 있다. 동작 1142에서, 카메라(1102)는 클라우드 서버(1120)의 변경 승인 통지에 따라 승인 메시지를 냉장고(1112)에 전송할 수 있다.
다양한 실시예에 따르면, 동작 1144에서, 프로비저닝 장치로 역할이 변경된 냉장고(1112)는 카메라(1102)의 데이터베이스에 저장된 로컬 네트워크의 각 장치의 인증 정보의 전송을 요청하고, 인증 정보들을 카메라(1102)로부터 수신하여 저장할 수 있다. 카메라(1102)에 저장된 인증 정보를 냉장고(1112)에 전송하는 경우, 동작 1152에서, 냉장고(1112)는 프로비저닝 장치의 역할을 설정하고, 동작 1154에서, 카메라(1102)는 백업 프로비저닝 장치로 역할을 설정하고 기 저장된 인증 정보를 삭제할 수 있다.
다양한 실시예에 따르면, 동작 1162에서, 냉장고(1112)는 프로비저닝 장치의 변경 정보를 카메라(1102)를 통해 로컬 네트워크의 각 장치에 전송할 수 있다. 냉장고(1112)가 프로비저닝 동작을 개시한 이후, 동작 1164에서 로컬 네트워크의 프로비저닝 장치인 냉장고(1112) 및 TV(1108)은 다른 장치의 상태를 주기적으로 교환할 수 있으며, 로컬 네트워크의 프로비저닝 장치인 냉장고(1112) 및/또는 TV(1108)에서 정해진 이벤트가 발생하면 프로비저닝 장치의 변경을 위한 동작을 수행할 수 있다.
도 12는 다양한 실시예에 따른 프로비저닝 장치의 제거 시 각 장치의 동작을 도시한 것이다.
다양한 실시예에 따르면, 프로비저닝 장치가 고장 또는 네트워크에서 이탈하거나, 다른 장치들에 보안 통신을 제공하지 못하거나, 및/또는 프로비저닝 데이터(또는 인증 정보)가 삭제된 경우, 다른 장치를 프로비저닝 장치로 선정할 수 있다. 이 경우, 로컬 네트워크 내의 각 장치는 스코어의 계산 및 프로비저닝 장치의 선정 과정을 다시 진행할 수 있다.
도 12는 냉장고(1212)(예: 도 11의 냉장고(1112)) 및 TV(1208)(예: 도 11의 TV(1108))가 프로비저닝 장치로 동작 중 냉장고(1212)가 고장 또는 도난으로 인해 프로비저닝 장치로 동작할 수 없는 경우에 새로운 프로비저닝 장치를 선정하는 과정에 대해 도시하고 있다.
다양한 실시예에 따르면, 동작 1232에서, 냉장고(1212)는 프로비저닝 동작을 수행할 수 없는 이벤트(예: 고장 또는 도난)를 확인할 수 있다. 현재 프로비저닝 장치인 냉장고(1212) 및 TV(1208)는 주기적으로 각 프로비저닝 장치의 상태 및 연결된 다른 장치의 정보를 포함하는 체크 메시지를 교환할 수 있으며, 동작 1234에서, 냉장고(1212)에서 발생한 이벤트로 인해 TV(1208)에서 체크 메시지를 수신하지 못할 수 있다.
다양한 실시예에 따르면, 동작 1236에서, 냉장고(1212)는 프로비저닝 장치의 역할이 중지됨에 따라 저장된 프로비저닝 데이터(또는 인증 정보)를 삭제하고, TV(1208)도 프로비저닝 데이터를 삭제할 수 있다.
다양한 실시예에 따르면, 프로비저닝 장치로 동작 중인 냉장고(1212) 및 TV(1208)는 서로 지속적인 상태 체크를 위해, 각각 주기적으로 자신의 상태와 관련된 업데이트 정보를 브로드캐스팅 할 수 있으며, 프로비저닝 장치로 동작할 수 없는 경우 관련 정보를 포함하는 업데이트 정보를 브로드캐스팅 할 수 있다. 일 실시예에 따르면, 로컬 네트워크 상에 하나의 프로비저닝 장치만 존재하는 경우, 해당 장치는 클라우드 서버(1220)에 주기적으로 업데이트 정보를 전송 할 수 있다. 일 실시예에 따르면, 로컬 네트워크 상에 프로비저닝 장치(PD) 및 백업 장치(BD)가 존재하는 경우, 프로비저닝 장치 및 백업 장치가 업데이트 정보를 주기적으로 교환할 수 있다.
다양한 실시예에 따르면, 동작 1242에서, 냉장고(1212)는 프로비저닝 장치의 역할이 중지되었음을 포함하는 업데이트 정보를 브로드캐스팅 하고, TV(1208)는 냉장고(1212)에서 전송하는 업데이트 정보에 따라 냉장고(1212)가 프로비저닝 장치의 동작이 중단 되었음을 확인할 수 있다. 동작 1246에서 TV(1208)는 업데이트 정보를 브로드캐스팅 할 수 있다.
다양한 실시예에 따르면, 프로비저닝 장치의 역할이 중지된 이후 소정 시간 동안 동일한 업데이트 정보가 수신되는 경우, 카메라(1202), 허브 장치(1204), 전구(1206) 및 TV(1208)는 각각 동작 1252, 동작 1254, 동작 1256, 동작 1258에서, 추가적인 업데이트 정보가 없는 것으로 결정할 수 있다. 이 후, 로컬 네트워크의 각 장치는 도 8과 같은 방식으로 프로비저닝 장치의 선정을 위한 스코어링을 수행하고, 스코어링 결과에 따라 가장 높은 스코어를 갖는 허브 장치(1204) 및 TV(1208)가 프로비저닝 장치의 역할을 설정할 수 있다. 동작 1262에서, 허브 장치(1204)는 프로비저닝 장치로 동작하기 위한 설정을 진행하고, 동작 1264에서, TV(1208)는 프로비저닝 장치로 동작하기 위한 설정을 진행할 수 있다.
도 13은 다양한 실시예에 따른 공정 과정에서 인증 정보를 등록하는 과정을 도시한 것이다.
다양한 실시예에 따르면, 동작 1352에서, IoT 장치(1324)의 공정 과정에서, 제조자(manufacture)(1310)는 개발자 워크스페이스(1326)(Develop workspace)에 IoT 장치(1324)의 certificate를 요청할 수 있다. 개발자 워크스페이스(1326)는 IoT 서버에서 IoT 장치(1324)의 인증 및 등록과 관련된 서비스를 제공하는 온라인 환경일 수 있다.
다양한 실시예에 따르면, 동작 1354에서, 제조자는 공정 데이터(또는 manufacturer data)를 생성할 수 있다. 예를 들어, 생성되는 공정 데이터는 mnID, vID, setupID 및 디바이스 타입 정보 중 적어도 하나를 포함할 수 있다. 일 실시예에 따르면, 공정 데이터는 public key type (예: X.509 또는 ED 25519), 서버 CA certificate, 디바이스 certificate, 디바이스 pulick key, 디바이스 private key, 또는 디바이스 시리얼 넘버 중 적어도 일부를 더 포함할 수 있다.
다양한 실시예에 따르면, 동작 1356에서, 제조자는 IoT 장치(1324)에 생성된 공정 데이터를 저장(또는 flashing) 할 수 있다.
다양한 실시예에 따르면, 동작 1358에서, 제조자는 개발자 워크스페이스(1326)에 벤더 키를 등록할 수 있다. 여기서, 벤더 키는 해당 IoT 장치(1324)에 대해 등록하는 보안 정보일 수 있다. 예를 들어, 제조자는 워크스페이스(1326) 상에 시리얼 넘버 및 public key (예: ED 25519), 벤더 certificate (예: X.509)를 등록할 수 있다. 제조자는 개발자 워크스페이스(1326)를 통해 생성된 IoT 장치의 기기 정보를 등록할 수 있다.
다양한 실시예에 따르면, 동작 1360에서, 개발자 워크스페이스(1326) 상에 등록된 정보(예: 시리얼 넘버 및/또는 public key)는 IoT 서버 상의 제2DB(1332)(예: dynamo DB)의 device identity(1334)에 등록될 수 있다.
다양한 실시예에 따르면, 개발자 워크스페이스(1326) 상에서 등록된 기기 정보(예: mnID, vID, setupID 및/또는 디바이스 타입 정보)는 제1DB(1422)(예: SQL DB) 상에 저장될 수 있다.
제1DB(1422)는 각 장치 별의 기기 정보를 테이블로 구성하여 저장할 수 있으며, 제1DB(1422)에 저장되는 특정 장치의 기기 정보의 예는 표 3과 같다.
aws:rep:deleting Boolean L false
aws:rep:updateregion String : ap-northeast-2
aws:rep:updatetime Number : 1582698157.268001
device String : 7e35ef87-b488-4d8d-8cb5-7fdf65bc9095
label String : LED_SAMPLE_EA
locationId String : 12aaa468-106e-4ecc-85e7-42ff881c06a7
mapperId String : 0AEd#STDK0AEd5cb58351
metadata Map {6}
claimId String : 91ebf8ba-c296-5379-1132-964c3b8257ac
deviceTypeId String : Light
mnId String : 0AEd
registrationPayloadType String : json
serialNumber String : STDK0AEd5cd58351
vid String : EXAM123
profileId String : 3918f11e-c21c-47fe-b7f4-4634d9c70845
roomId String : ba817b52-8434-495c-b856-34c8bfa23d98
routingKey String : ap
제2DB(1332)의 Device Identity(1334)는 각 장치에 대해 등록된 public key가 저장될 수 있다. 특정 로컬 네트워크 상에서 특정 장치가 프로비저닝 장치로 결정되는 경우, 클라우드 서버는 로컬 네트워크의 각 장치에 대해 제1DB 및 제2DB에 저장된 기기 정보 및 키 정보를 포함하는 인증 정보를 프로비저닝 장치로 전송하고, 프로비저닝 장치의 로컬 데이터베이스에 수신한 인증 정보를 저장할 수 있다.도 14는 다양한 실시예에 따른 인증 정보를 동기화 하는 과정을 도시한 것이다.
도 14는 도 13의 과정을 통해 기기 정보가 IoT 서버 상에 등록된 IoT 장치(1424)를 로컬 네트워크 상에 설치한 경우, IoT 장치(1424)의 인증 정보를 동기화 하는 과정에 대한 것이다.
다양한 실시예에 따르면, 동작 1452에서, 사용자는 사용자 장치의 어플리케이션(1442)을 이용해 계정을 기반으로 접속 게이트웨이(1428)에 IoT 장치(1424)의 인증 정보의 동기화를 요청할 수 있다. 예를 들어, 접속 게이트웨이(1428)(예: Great Gate)는 클라우드 네트워크 상에서 로컬 네트워크의 각 장치의 연결 및/또는 디바이스 이벤트를 수신하기 위한 서버 장치 또는 서비스 모듈일 수 있다. IoT 장치(1424)를 IoT 서버 상에 온보딩(onboarding) 할 때, 사용자 장치 상에서 계정(account)을 기반으로 등록할 수 있으며, IoT 서버는 IoT 장치(1424)의 인증 정보를 등록 시 사용된 계정을 기반으로 저장할 수 있다.
다른 실시예에 따르면, IoT 장치(1424)를 IoT 서버 상에 온보딩 할 때, 사용자 장치 상에서 IoT 장치(1424)의 위치를 기반으로 등록할 수 있으며, 이 경우, 사용자는 사용자 장치의 어플리케이션(1442)을 이용해 IoT 장치(1424)의 위치를 기반으로 접속 게이트웨이(1428)에 IoT 장치(1424)의 인증 정보의 동기화를 요청할 수 있다.
다양한 실시예에 따르면, 동작 1454에서, 접속 게이트웨이(1428)는 동기화 요청의 수신 시, IoT 서버의 계정 서비스(account service)(1436)로부터 해당 사용자 계정에 대한 토큰(token)을 획득할 수 있다.
다양한 실시예에 따르면, 동작 1456에서, 접속 게이트웨이(1428)는 device identity(1434)에 디바이스 프로비저닝을 요청할 수 있다. 동작 1458에서, device identity(1434)는 프로버저닝 요청에 대응하여, 인증 정보를 접속 게이트웨이(1428)에 전달할 수 있다. 동작 1460에서, 접속 게이트웨이(1428)는 인증 정보의 동기화를 위해 획득한 토큰을 이용하여 제2DB(1432)의 해당 계정으로 등록된 IoT 장치(1424)의 정보들이 저장된 DB 테이블의 정보를 읽을 수 있다.
다양한 실시예에 따르면, 동작 1462에서, 브로커 서버(1444)(예: SmartThingsTM broker)는 접속 게이트웨이(1428)(예: Great Gate)에 장치 리스트 정보를 얻기 위해 MQTT topic을 통해 가입(subscribe) 할 수 있다.
다양한 실시예에 따르면, 동작 1464에서, 브로커 서버(1444)는 접속 게이트웨이(1428)로부터 획득한 장치 리스트 정보를 IoT 장치(1424)의 제1DB(1422)(예: SQL DB)에 저장할 수 있다.
다양한 실시예에 따르면, 동작 1466에서, IoT 장치(1424)는 브로커 서버(1444)와 연결되어, IoT 장치(1424)를 등록할 수 있다. 이 때, IoT 장치(1424)는 one way TLS(transport layer security)를 이용해서 브로커 서버(1444)와 연결될 수 있다.
다양한 실시예에 따르면, 동작 1468에서, 브로커 서버(1444)는 JWT(json web token)를 통해 인증을 체크하고, 동작 1470에서, 토큰 인증에 성공할 수 있다. 동작 1472에서, 브로커 서버(1444)는 IoT 장치(1424)의 시리얼 넘버를 리턴 하고, 동작 1474에서, IoT 장치(1424)에 연결 성공을 전달할 수 있다.
도 15는 다양한 실시예에 따른 인증 정보를 동기화 하는 과정을 도시한 것이다.
다양한 실시예에 따르면, 동작 1552에서, 사용자는 사용자 장치의 어플리케이션(1542) 상에 표시된 카드 리스트로부터 로컬 네트워크의 각 장치의 디바이스 리스트를 획득할 수 있다. 동작 1554에서, 어플리케이션(1542)은 브로커 서버(1544)(예: 도 14의 브로커 서버(1444), SmartThingsTM broker))에 로컬 네트워크의 디스커버리를 요청할 수 있다. 동작 1556에서, 브로커 서버(1544)는 로컬 네트워크에 위치하는 IoT 장치(1524)에 디바이스 ID를 요청하고, 동작 1558에서, IoT 장치(1524)는 디바이스 ID를 전송할 수 있다. 동작 1560에서, 브로커 서버(1544)는 사용자 장치의 어플리케이션(1542)에 디바이스 ID 리스트를 전송할 수 있다.
다양한 실시예에 따르면, 동작 1562에서, 사용자 장치의 어플리케이션(1542)은 획득한 디바이스 ID 리스트에 기초하여, 접속 게이트웨이(1528)(예: 도 14의 접속 게이트웨이(1428), Great Gate))에 인증 정보의 동기화를 요청할 수 있다. 동작 1564에서, 접속 게이트웨이(1528)는 IoT 서버의 device identity(1534)에 디바이스 프로비저닝을 요청할 수 있다. 동작 1566에서, device identity(1534)는 프로버저닝 요청에 대응하여, 인증 정보를 접속 게이트웨이(1528)에 전달할 수 있다. 동작 1568에서, 접속 게이트웨이(1528)는 인증 정보의 동기화를 위해, 제2DB(1532)에서 IoT 장치(1524)의 정보들이 저장된 DB 테이블의 정보를 읽을 수 있다.
다양한 실시예에 따르면, 동작 1570에서, 브로커 서버(1544)는 접속 게이트웨이(1528)에 장치 리스트 정보를 얻기 위해 MQTT topic을 통해 가입(subscribe) 할 수 있다.
다양한 실시예에 따르면, 동작 1572에서, 브로커 서버(1544)는 접속 게이트웨이(1528)로부터 획득한 장치 리스트 정보를 IoT 장치(1524)의 제1DB(1522)(예: SQL DB)에 저장할 수 있다.
다양한 실시예에 따르면, 동작 1574에서, IoT 장치(1524)는 브로커 서버(1544)와 연결되어, IoT 장치(1524)를 등록할 수 있다. 이 때, IoT 장치(1524)는 one way TLS(transport layer security)를 이용해서 브로커 서버(1544)와 연결될 수 있다.
다양한 실시예에 따르면, 동작 1576에서, 브로커 서버(1544)는 JWT(json web token)를 통해 인증을 체크하고, 동작 1578에서, 토큰 인증에 성공할 수 있다. 동작 1580에서, 브로커 서버(1544)는 IoT 장치(1524)의 시리얼 넘버를 리턴 하고, 동작 1582에서, IoT 장치(1524)에 연결 성공을 전달할 수 있다.
도 16a 및 도 16b는 다양한 실시예에 따른 IoT 기기의 제어를 위해 사용자 장치(1600)에서 제공되는 사용자 인터페이스를 도시한 것이다.
다양한 실시예에 따르면, 사용자 장치(1600)는 어플리케이션(1650) 상에 로컬 네트워크의 각 장치에 대응되는 UI 아이템을 표시할 수 있다. 예를 들어, 사용자 장치(1600)는 AV 사운드 바의 UI 아이템(1660), TV의 UI 아이템(1665), 우측 전구의 UI 아이템(1691), 셋톱 박스 리모콘의 UI 아이템(1692), 좌측 전구의 UI 아이템(1693) 및 전동 블라인드 컨트롤러의 UI 아이템(1694)을 표시할 수 있다. 각각의 UI 아이템은 장치를 지시하는 이미지(1661), 장치의 명칭(1663), 장치의 동작 상태(예: on/off, available/non-available, open/close)를 지시하는 정보, 장치의 동작 상태를 변경하는 버튼(1662)을 포함할 수 있다.
다양한 실시예에 따르면, 사용자 장치(1600)는 로컬 네트워크의 각 장치 중 프로비저닝 장치의 UI 아이템(예: UI 아이템(1660, 1665))을 다른 장치의 UI 아이템과 시각적으로 구분하여 표시할 수 있다. 예를 들어, 도 16a를 참조 하면, 사용자 장치(1600)는 프로비저닝 장치인 AV 사운드 바의 UI 아이템(1660)의 주변을 특정 컬러의 박스(1664)로 표시하고, TV의 UI 아이템(1665)의 주변을 다른 컬러의 박스(1666)로 표시할 수 있다. 다른 실시예에 따르면, 사용자 장치(1600)는 로컬 네트워크의 각 장치 중 프로비저닝 장치의 UI 아이템(예: UI 아이템(1660, 1665))에 표시된 이미지(1661), 장치의 명칭(1663), 장치의 동작 상태(예: on/off, available/non-available, open/close)를 지시하는 정보, 장치의 동작 상태를 변경하는 버튼(1662) 중 적어도 하나를 다른 장치들과 구분하여 표시할 수 있다. 일 실시예에 따르면, 각 프로비저닝 장치에 연결된 IoT 장치들은 프로비저닝 장치와 동일한 컬러의 박스로 표시하되, 얇은 두께로 표시하여 프로비저닝 장치와 구분되도록 할 수 있다. 다른 일 실시예에 따르면, 각 프로비저닝 장치에 연결된 IoT 장치들은 프로비저닝 장치와 동일한 아이콘을 제공하고, 그 크기를 작게 제공할 수 있다.
다른 실시예에 따르면, 도 16b를 참조 하면, 프로비저닝 장치인 AV 사운드 바 및 TV의 UI 아이템(1670, 1675) 내에 프로비저닝 장치를 지시하는 아이콘(1671, 1676)을 표시할 수 있다.
다양한 실시예에 따른 전자 장치(예: 전자 장치(400))는, 통신 모듈(예: 통신 모듈(430)), 상기 통신 모듈과 작동적으로(operatively) 연결되는 프로세서(예: 프로세서(410))를 포함하고, 상기 프로세서는, 상기 통신 모듈을 이용해, 상기 전자 장치의 디바이스 정보를 로컬 네트워크에 존재하는 적어도 하나의 외부 장치(예: TV(632), 랩탑 PC(634), 또는 IP 카메라(636)) 또는 클라우드 서버(예: 클라우드 서버(500))에 전송하고, 상기 전자 장치 또는 상기 적어도 하나의 외부 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 결정된 적어도 하나를 확인하고, 상기 전자 장치가 상기 프로비저닝 장치로 결정된 경우, 상기 통신 모듈을 이용해, 상기 클라우드 서버로부터 상기 엣지 컴퓨팅 서비스를 제공할 적어도 하나의 장치의 인증 정보를 수신하고, 및 상기 인증 정보에 기초하여, 상기 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 클라우드 서버 상에서 동일한 계정을 이용해 등록된 적어도 하나의 장치의 인증 정보를 수신하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 클라우드 서버 상에서 상기 전자 장치와 동일한 위치로 등록된 적어도 하나의 장치의 인증 정보를 수신하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 통신 모듈을 통해, 상기 로컬 네트워크에 존재하는 적어도 하나의 외부 장치로부터 상기 적어도 하나의 외부 장치의 디바이스 정보를 수신하고, 및 상기 전자 장치의 디바이스 정보 및 상기 적어도 하나의 외부 장치의 디바이스 정보에 포함된 적어도 하나의 파라미터에 기초한 스코어링(scoring)을 통해 상기 프로비저닝 장치를 결정하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 디바이스 정보는, 상기 전자 장치 또는 상기 외부 장치의 보안 파라미터, 성능 파라미터 또는 유틸리티 파라미터 중 적어도 일부를 포함할 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 스코어링 시에, 상기 보안 파라미터에 가장 높은 가중치를 부여 하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 전자 장치 및 상기 적어도 하나의 외부 장치 중 프로비저닝 장치로 동작할 수 있는 복수의 장치를 확인하고, 및 상기 확인된 복수의 장치의 디바이스 정보를 이용해 상기 프로비저닝 장치를 결정하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 로컬 네트워크 상에 위치하는 장치의 개수, 최대 홉 수(hop count) 또는 사용자 장치의 설정 중 적어도 하나에 기초하여, 상기 프로비저닝 장치의 개수를 결정하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 통신 모듈을 통해, 상기 클라우드 서버로부터 결정된 프로비저닝 장치의 정보를 수신하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 로컬 네트워크 상에 새로운 외부 장치가 진입하는 경우, 상기 프로비저닝 장치로 결정된 적어도 하나를 다시 확인하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 전자 장치가 상기 프로비저닝 장치로 등록된 이후 상기 프로비저닝 장치로 동작할 수 없는 경우, 상기 적어도 하나의 외부 장치 및 상기 클라우드 서버에 통지하고, 및 상기 수신한 인증 정보를 삭제 하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(예: 전자 장치(400))의 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법은, 상기 전자 장치의 디바이스 정보를 로컬 네트워크에 존재하는 적어도 하나의 외부 장치(예: TV(632), 랩탑 PC(634), 또는 IP 카메라(636)) 또는 클라우드 서버(예: 클라우드 서버(500))에 전송하는 동작, 상기 전자 장치 또는 상기 적어도 하나의 외부 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 결정된 적어도 하나를 확인하는 동작, 상기 전자 장치가 상기 프로비저닝 장치로 결정된 경우, 상기 클라우드 서버로부터 상기 엣지 컴퓨팅 서비스를 제공할 적어도 하나의 장치의 인증 정보를 수신하는 동작, 및 상기 인증 정보에 기초하여, 상기 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 상기 인증 정보를 수신하는 동작은, 상기 클라우드 서버 상에서 동일한 계정을 이용해 등록된 적어도 하나의 장치의 인증 정보를 수신하는 동작, 또는 상기 클라우드 서버 상에서 상기 전자 장치와 동일한 위치로 등록된 적어도 하나의 장치의 인증 정보를 수신하는 동작 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따르면, 상기 프로비저닝 장치로 결정된 적어도 하나를 확인하는 동작은, 상기 로컬 네트워크에 존재하는 적어도 하나의 외부 장치로부터 상기 적어도 하나의 외부 장치의 디바이스 정보를 수신하는 동작, 및 상기 전자 장치의 디바이스 정보 및 상기 적어도 하나의 외부 장치의 디바이스 정보에 포함된 적어도 하나의 파라미터에 기초한 스코어링(scoring)을 통해 상기 프로비저닝 장치를 결정하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 상기 디바이스 정보는, 상기 전자 장치 또는 상기 외부 장치의 보안 파라미터, 성능 파라미터 또는 유틸리티 파라미터 중 적어도 일부를 포함할 수 있다.
다양한 실시예에 따르면, 상기 프로비저닝 장치로 결정된 적어도 하나를 확인하는 동작은, 상기 로컬 네트워크 상에 위치하는 장치의 개수, 최대 홉 수(hop count) 또는 사용자 장치의 설정 중 적어도 하나에 기초하여, 상기 프로비저닝 장치의 개수를 결정하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 상기 프로비저닝 장치로 결정된 적어도 하나를 확인하는 동작은, 상기 클라우드 서버로부터 결정된 프로비저닝 장치의 정보를 수신하는 동작을 포함할 수 있다.
다양한 실시예에 따른 서버 장치는, 통신 인터페이스, 메모리, 및 상기 통신 인터페이스 및 상기 메모리와 작동적으로 연결되는 프로세서를 포함하고, 상기 프로세서는, 복수의 장치의 인증 정보를 상기 메모리에 저장하고, 동일한 로컬 네트워크 상에 위치하는 적어도 하나의 전자 장치로부터 디바이스 정보를 수신하고, 상기 수신된 디바이스 정보에 포함된 적어도 하나의 파라미터에 기초한 스코어링(scoring)을 통해 상기 적어도 하나의 전자 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 동작할 적어도 하나를 결정하고, 및 상기 프로비저닝 장치에 상기 메모리에 저장된 인증 정보 중 적어도 일부를 전송하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 프로비저닝 장치와 동일한 계정을 이용해 등록되거나, 상기 프로비저닝 장치와 동일한 위치로 등록된 적어도 하나의 장치의 인증 정보를 상기 프로비저닝 장치로 전송하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서는, 상기 적어도 하나의 전자 장치 중 프로비저닝 장치로 동작할 수 있는 복수의 장치를 확인하고, 및 상기 확인된 복수의 장치의 디바이스 정보를 이용해 상기 프로비저닝 장치를 결정하도록 설정될 수 있다.

Claims (15)

  1. 전자 장치에 있어서,
    통신 모듈;
    상기 통신 모듈과 작동적으로(operatively) 연결되는 프로세서를 포함하고,
    상기 프로세서는,
    상기 통신 모듈을 이용해, 상기 전자 장치의 디바이스 정보를 로컬 네트워크에 존재하는 적어도 하나의 외부 장치 또는 클라우드 서버에 전송하고,
    상기 전자 장치 또는 상기 적어도 하나의 외부 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 결정된 적어도 하나를 확인하고,
    상기 전자 장치가 상기 프로비저닝 장치로 결정된 경우, 상기 통신 모듈을 이용해, 상기 클라우드 서버로부터 상기 엣지 컴퓨팅 서비스를 제공할 적어도 하나의 장치의 인증 정보를 수신하고, 및
    상기 인증 정보에 기초하여, 상기 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행하도록 설정된 전자 장치.
  2. 제 1항에 있어서,
    상기 프로세서는,
    상기 클라우드 서버 상에서 동일한 계정을 이용해 등록된 적어도 하나의 장치의 인증 정보를 수신하도록 설정된 전자 장치.
  3. 제 1항에 있어서,
    상기 프로세서는,
    상기 클라우드 서버 상에서 상기 전자 장치와 동일한 위치로 등록된 적어도 하나의 장치의 인증 정보를 수신하도록 설정된 전자 장치.
  4. 제 1항에 있어서,
    상기 프로세서는,
    상기 통신 모듈을 통해, 상기 로컬 네트워크에 존재하는 적어도 하나의 외부 장치로부터 상기 적어도 하나의 외부 장치의 디바이스 정보를 수신하고, 및
    상기 전자 장치의 디바이스 정보 및 상기 적어도 하나의 외부 장치의 디바이스 정보에 포함된 적어도 하나의 파라미터에 기초한 스코어링(scoring)을 통해 상기 프로비저닝 장치를 결정하도록 설정된 전자 장치.
  5. 제 4항에 있어서,
    상기 디바이스 정보는,
    상기 전자 장치 또는 상기 외부 장치의 보안 파라미터, 성능 파라미터 또는 유틸리티 파라미터 중 적어도 일부를 포함하고,
    상기 스코어링 시에, 상기 보안 파라미터에 가장 높은 가중치를 부여 하도록 설정된 전자 장치.
  6. 제 4항에 있어서,
    상기 프로세서는,
    상기 전자 장치 및 상기 적어도 하나의 외부 장치 중 프로비저닝 장치로 동작할 수 있는 복수의 장치를 확인하고, 및
    상기 확인된 복수의 장치의 디바이스 정보를 이용해 상기 프로비저닝 장치를 결정하도록 설정된 전자 장치.
  7. 제 4항에 있어서,
    상기 프로세서는,
    상기 로컬 네트워크 상에 위치하는 장치의 개수, 최대 홉 수(hop count) 또는 사용자 장치의 설정 중 적어도 하나에 기초하여, 상기 프로비저닝 장치의 개수를 결정하도록 설정된 전자 장치.
  8. 제 1항에 있어서,
    상기 프로세서는,
    상기 통신 모듈을 통해, 상기 클라우드 서버로부터 결정된 프로비저닝 장치의 정보를 수신하도록 설정된 전자 장치.
  9. 제 1항에 있어서,
    상기 프로세서는,
    상기 로컬 네트워크 상에 새로운 외부 장치가 진입하는 경우, 상기 프로비저닝 장치로 결정된 적어도 하나를 다시 확인하도록 설정된 전자 장치.
  10. 제 1항에 있어서,
    상기 프로세서는,
    상기 전자 장치가 상기 프로비저닝 장치로 등록된 이후 상기 프로비저닝 장치로 동작할 수 없는 경우, 상기 적어도 하나의 외부 장치 및 상기 클라우드 서버에 통지하고, 및
    상기 수신한 인증 정보를 삭제 하도록 설정된 전자 장치.
  11. 전자 장치의 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법에 있어서,
    상기 전자 장치의 디바이스 정보를 로컬 네트워크에 존재하는 적어도 하나의 외부 장치 또는 클라우드 서버에 전송하는 동작;
    상기 전자 장치 또는 상기 적어도 하나의 외부 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 결정된 적어도 하나를 확인하는 동작;
    상기 전자 장치가 상기 프로비저닝 장치로 결정된 경우, 상기 클라우드 서버로부터 상기 엣지 컴퓨팅 서비스를 제공할 적어도 하나의 장치의 인증 정보를 수신하는 동작; 및
    상기 인증 정보에 기초하여, 상기 엣지 컴퓨팅 서비스와 관련된 프로비저닝 동작을 수행하는 동작을 포함하는 방법.
  12. 제 11항에 있어서,
    상기 인증 정보를 수신하는 동작은,
    상기 클라우드 서버 상에서 동일한 계정을 이용해 등록된 적어도 하나의 장치의 인증 정보를 수신하는 동작; 또는
    상기 클라우드 서버 상에서 상기 전자 장치와 동일한 위치로 등록된 적어도 하나의 장치의 인증 정보를 수신하는 동작 중 적어도 하나를 포함하는 방법.
  13. 서버 장치에 있어서,
    통신 인터페이스;
    메모리; 및
    상기 통신 인터페이스 및 상기 메모리와 작동적으로 연결되는 프로세서를 포함하고,
    상기 프로세서는,
    복수의 장치의 인증 정보를 상기 메모리에 저장하고,
    동일한 로컬 네트워크 상에 위치하는 적어도 하나의 전자 장치로부터 디바이스 정보를 수신하고,
    상기 수신된 디바이스 정보에 포함된 적어도 하나의 파라미터에 기초한 스코어링(scoring)을 통해 상기 적어도 하나의 전자 장치 중 엣지 컴퓨팅 서비스의 프로비저닝 장치(provisioning device)로 동작할 적어도 하나를 결정하고, 및
    상기 프로비저닝 장치에 상기 메모리에 저장된 인증 정보 중 적어도 일부를 전송하도록 설정된 서버 장치.
  14. 제 13항에 있어서,
    상기 프로세서는,
    상기 프로비저닝 장치와 동일한 계정을 이용해 등록되거나, 상기 프로비저닝 장치와 동일한 위치로 등록된 적어도 하나의 장치의 인증 정보를 상기 프로비저닝 장치로 전송하도록 설정된 서버 장치.
  15. 제 13항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 전자 장치 중 프로비저닝 장치로 동작할 수 있는 복수의 장치를 확인하고, 및
    상기 확인된 복수의 장치의 디바이스 정보를 이용해 상기 프로비저닝 장치를 결정하도록 설정된 서버 장치.
PCT/KR2022/001120 2021-02-10 2022-01-21 전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법 WO2022173144A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22752904.7A EP4210282A4 (en) 2021-02-10 2022-01-21 ELECTRONIC DEVICE AND METHOD FOR DETERMINING A PROVISIONING DEVICE IN AN EDGE COMPUTING NETWORK
US17/679,524 US20220264297A1 (en) 2021-02-10 2022-02-24 Electronic device and method for determining provisioning device of edge computing network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210019242A KR20220115346A (ko) 2021-02-10 2021-02-10 전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법
KR10-2021-0019242 2021-02-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/679,524 Continuation US20220264297A1 (en) 2021-02-10 2022-02-24 Electronic device and method for determining provisioning device of edge computing network

Publications (1)

Publication Number Publication Date
WO2022173144A1 true WO2022173144A1 (ko) 2022-08-18

Family

ID=82837613

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/001120 WO2022173144A1 (ko) 2021-02-10 2022-01-21 전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법

Country Status (2)

Country Link
KR (1) KR20220115346A (ko)
WO (1) WO2022173144A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160073262A1 (en) * 2010-09-20 2016-03-10 Interdigital Patent Holdings, Inc. Identity management on a wireless device
US20170142094A1 (en) * 2015-11-12 2017-05-18 Microsoft Technology Licensing, Llc. Single sign-on identity management between local and remote systems
US20170272240A1 (en) * 2009-11-16 2017-09-21 Arm Technologies Israel Ltd. Method, system, and device of provisioning cryptographic data to electronic devices
KR20190034317A (ko) * 2016-08-03 2019-04-01 노키아 솔루션스 앤드 네트웍스 오와이 로컬 운영자에 의한 서비스 프로비저닝
KR20200115333A (ko) * 2019-03-29 2020-10-07 삼성전자주식회사 무선 통신 시스템에서 에지 컴퓨팅 서비스를 제공하기 위한 위한 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170272240A1 (en) * 2009-11-16 2017-09-21 Arm Technologies Israel Ltd. Method, system, and device of provisioning cryptographic data to electronic devices
US20160073262A1 (en) * 2010-09-20 2016-03-10 Interdigital Patent Holdings, Inc. Identity management on a wireless device
US20170142094A1 (en) * 2015-11-12 2017-05-18 Microsoft Technology Licensing, Llc. Single sign-on identity management between local and remote systems
KR20190034317A (ko) * 2016-08-03 2019-04-01 노키아 솔루션스 앤드 네트웍스 오와이 로컬 운영자에 의한 서비스 프로비저닝
KR20200115333A (ko) * 2019-03-29 2020-10-07 삼성전자주식회사 무선 통신 시스템에서 에지 컴퓨팅 서비스를 제공하기 위한 위한 장치 및 방법

Also Published As

Publication number Publication date
KR20220115346A (ko) 2022-08-17

Similar Documents

Publication Publication Date Title
AU2019271627B2 (en) Electronic device for performing network connection based on data transmission of application and method thereof
WO2020080776A1 (en) Electronic device supporting link sharing and method therefor
WO2019135552A1 (ko) 통신 연결의 형성 또는 해제를 제어하는 전자 장치 및 그 동작 방법
WO2020246822A1 (en) Electronic device and method for switching electronic device between dual standby mode and single standby mode
WO2020032510A1 (en) Electronic device including electronic pen and method of controlling communication connection between electronic device and electronic pen
WO2022154272A1 (ko) Iot 장치 및 iot 장치를 서버에 온보딩 하는 방법
WO2022019681A1 (ko) 엣지 컴퓨팅 시스템 및 연결 기기 추천 방법
WO2020032465A1 (en) Method for contents playback with continuity and electronic device therefor
WO2020067677A1 (ko) 외부 장치와 통신이 필요한 어플리케이션의 운영 방법 및 전자 장치
WO2021025401A1 (en) Electronic device for reducing power consumption and operating method thereof
WO2022019682A1 (ko) 엣지 컴퓨팅 시스템 및 방법
WO2022114483A1 (ko) 에지 컴퓨팅 서비스를 수행하는 전자 장치 및 전자 장치의 동작 방법
WO2021033961A1 (en) Electronic device and method for providing service by electronic device
WO2022124846A1 (ko) Iot 환경의 허브 장치 및 로컬 네트워크 기반 이벤트 처리 방법
WO2022060046A1 (ko) 엣지 컴퓨팅 시스템 및 엣지 컴퓨팅 장치의 핸드오버 방법
WO2022030801A1 (ko) 전자 장치의 무선 연결을 관리하는 방법 및 그 장치
WO2022173144A1 (ko) 전자 장치 및 엣지 컴퓨팅 네트워크에서 프로비저닝 장치를 결정하는 방법
WO2022030814A1 (ko) 전자 장치의 무선 연결을 관리하는 방법 및 그 장치
WO2021132940A1 (ko) 전자 장치 및 전자 장치의 nan 기반의 통신 제어 방법
WO2022154364A1 (ko) 전자 장치의 무선 연결을 관리하는 방법 및 그 장치
WO2023214695A2 (ko) 비활성 노드를 위한 대리 합의 방법 및 전자 장치
WO2023003425A1 (ko) 가전 기기를 제어하는 방법 및 장치
WO2022102964A1 (ko) 슬라이스 유형 서비스를 위한 사용자 단말 및 그 동작 방법
WO2022197035A1 (ko) 블록 체인 기반의 서비스를 제공하는 전자 장치 및 그 운용 방법
WO2023013845A1 (ko) 전자 장치 및 전자 장치에서 임베디드 가입자 식별 모듈 프로파일을 설치하는 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22752904

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022752904

Country of ref document: EP

Effective date: 20230403

NENP Non-entry into the national phase

Ref country code: DE