WO2019093658A1 - 서버, 전자장치 및 그의 제어방법 - Google Patents

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

Info

Publication number
WO2019093658A1
WO2019093658A1 PCT/KR2018/011807 KR2018011807W WO2019093658A1 WO 2019093658 A1 WO2019093658 A1 WO 2019093658A1 KR 2018011807 W KR2018011807 W KR 2018011807W WO 2019093658 A1 WO2019093658 A1 WO 2019093658A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
electronic device
processor
program code
server
Prior art date
Application number
PCT/KR2018/011807
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 US16/754,322 priority Critical patent/US11216328B2/en
Priority to EP18875347.9A priority patent/EP3671463A4/en
Publication of WO2019093658A1 publication Critical patent/WO2019093658A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents

Definitions

  • the present disclosure relates to a server, an electronic apparatus and a control method thereof, and more particularly, to a server, an electronic apparatus and a control method thereof capable of automatically detecting errors and malfunctions.
  • the problem that occurs after the product is supplied to the consumer is that it is not easy to reproduce the problem because the external environment is different from the development stage and the problem that occurs only at a specific point when the developer visits the place It is impossible to obtain debugging information in real time. Debugging took a long time because the developer had to check the information manually, even if the debugging information was obtained. In addition, even if the problem is reproduced, it takes a lot of time to reproduce, and a lot of cost for a developer to visit a specific place
  • the present disclosure is in accordance with the above needs, and it is an object of the present disclosure to provide a server, an electronic apparatus and a control method thereof capable of automatically detecting errors and malfunctions.
  • an electronic device including a memory configured to store a program having a plurality of program codes and performing a preset function, policy information including target information and determination information, Performing a predetermined function using the communication unit and the program and receiving a program code corresponding to the target information while the preset function is being executed, and comparing the execution result of the program code with the determination information And a processor for determining whether the program code is normally operated.
  • the policy information includes a plurality of target information
  • the processor can determine whether or not the program code is normally operated for each of the plurality of program codes corresponding to the plurality of target information.
  • the processor can compare the execution order of the plurality of program codes corresponding to the plurality of target information with the determination information, and determine whether the plurality of program codes are normal or not.
  • the determination information may include at least one of information on a normal result of the program code, normal time information, and normal parameter information of the program code.
  • the processor may control the communication unit to transmit determination result information on whether the program code is normally operated to the external server.
  • the processor may control the communication unit to transmit determination result information on normal operation status to the external server only when an abnormal operation for the program code is determined.
  • the policy information includes information on a result notification method
  • the processor may selectively determine whether an abnormal operation is determined based on the information on the result notification method and a determination result when a normal operation is determined Information can be transmitted, or the communication unit can be controlled to transmit the determination result information only when an abnormal operation is determined.
  • a server for providing policy information for verification of a program constituted by a plurality of program codes and performing a predetermined function to an electronic device
  • a communication unit for receiving determination result information on the operation result from the electronic device, and a processor for updating the pre-stored pattern table based on the received determination result information and correcting the policy information based on the updated pattern table
  • the processor can control the communication unit such that the modified policy information is provided to the electronic device when the policy information is modified.
  • the processor may provide information on the pattern to the user, and may provide information on the pattern
  • the pre-stored pattern table can be updated using the input weight information and the pattern.
  • the processor may generate a list of normal patterns based on the frequency and weight information for each of the plurality of patterns constituting the updated pattern table, and modify the policy information to include the generated list of normal patterns have.
  • the communication unit receives the device information from each of the plurality of electronic devices, and the processor divides the plurality of electronic devices into a plurality of types based on the received device information, The same policy information can be provided.
  • the device information may include at least one of country information, software model information, and connection device information.
  • the server includes a memory for storing a table having information of electronic devices corresponding to each of the plurality of types and the plurality of types, and an operation input unit for receiving information on the number of sampling per the plurality of types
  • the processor is further configured to, upon receiving device information from an electronic device, identify a type corresponding to the received device information, and optionally, based on the number of samples in the identified type and a table stored in the memory, Information of the device can be added to the table.
  • a method of controlling an electronic device includes receiving policy information including target information and determination information from an external server and using a program composed of a plurality of program codes and performing a preset function Performing the predetermined function and comparing the execution result of the program code with the determination information when the program code corresponding to the target information is executed during the execution of the predetermined function to determine whether the program code is normally operated .
  • the policy information may include a plurality of target information, and the determining may determine whether the plurality of program codes corresponding to the plurality of target information respectively operate normally.
  • the determining may determine whether the plurality of program codes are normal or not by comparing the execution order of the plurality of program codes corresponding to the plurality of target information with the determination information.
  • the determination information may include at least one of information on a normal result of the program code, normal time information, and normal parameter information of the program code.
  • control method may further include transmitting determination result information on whether the program code is normally operated to the external server.
  • the control method according to the present embodiment may further include transmitting determination result information on normal operation to the external server only when an abnormal operation for the program code is determined.
  • the policy information includes information on a result notification method
  • the control method may include a step of selectively determining whether an abnormal operation is determined based on the information on the result notification method, Transmitting all of the result information, or transmitting the determination result information only when an abnormal operation is determined.
  • FIG. 1 is a diagram for explaining a management system according to an embodiment of the present disclosure
  • FIG. 2 is a block diagram illustrating a configuration of a server according to an embodiment of the present disclosure
  • FIG. 3 is a block diagram for explaining a configuration of an electronic device according to an embodiment of the present disclosure
  • FIG. 4 is a flowchart illustrating a policy information providing method according to an embodiment of the present disclosure
  • FIG. 5 is a diagram for explaining an automatic error detection method according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram for explaining a policy information update method according to an embodiment of the present disclosure.
  • FIG. 7 is a block diagram for explaining a configuration of an electronic device according to another embodiment of the present disclosure.
  • FIG. 8 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
  • FIG. 9 is a flowchart illustrating a method of controlling a server according to an embodiment of the present disclosure.
  • ordinal numbers such as “first ", " second ", etc. may be used for distinguishing between elements. These ordinals are used to distinguish between identical or similar components, and the use of such ordinal numbers should not be construed as limiting the meaning of the term. For example, the components associated with such an ordinal number should not be limited in their order of use or placement order by their numbers. If necessary, each ordinal number may be used interchangeably.
  • modules such as "module, “ unit, “ or “ part, “ and the like are terms used to refer to components that perform at least one function or operation, Or may be implemented as a combination of hardware and software. It should also be understood that a plurality of “ modules “, “ units “, “ parts “, etc. may be integrated into at least one module or chip, . ≪ / RTI >
  • a part when a part is connected to another part, this includes not only a direct connection but also an indirect connection through another medium. Also, the meaning that a part includes an element does not exclude other elements, but may include other elements, unless specifically stated otherwise.
  • FIG. 1 illustrates a management system 1000 in accordance with one embodiment of the present disclosure.
  • Management system 1000 includes a plurality of electronic devices 100 and a server 200.
  • the server 200 may collect information for debugging from a plurality of electronic devices 100.
  • Debugging is the process of detecting and correcting errors in a computer program. Debugging can be done at the development stage and while the consumer is using the electronic device 100.
  • the server 200 collects various information from a plurality of electronic devices 100, generates policy information for obtaining debugging information based on the collected information, and transmits policy information to the plurality of electronic devices 100 .
  • the server 200 can classify a plurality of electronic devices 100 by type and provide the same policy information for the same type.
  • the server is composed of one device, but in the implementation, the above-described operations may be performed by a plurality of servers.
  • FIG. 2 is a block diagram illustrating a server 200 according to an embodiment of the present disclosure.
  • the server 200 includes a communication unit 210 and a processor 220.
  • the communication unit 210 is configured to perform communication with an external device.
  • the communication unit 210 is formed to connect the server 200 with an external device and is connected to a terminal device through a local area network (LAN) and an Internet network, as well as a USB (Universal Serial Bus) And may be connected through a wireless communication port.
  • LAN local area network
  • USB Universal Serial Bus
  • the processor 220 is a configuration for controlling the overall operation of the server 200.
  • the processor 220 may be implemented as a CPU, an ASIC, a SoC, a MICOM, or the like.
  • the processor 220 receives the device information from each of the plurality of electronic devices 100 through the communication unit 210, divides the plurality of electronic devices 100 into a plurality of types based on the received device information, The same policy information can be provided to a plurality of devices in the network.
  • the device information received from each of the plurality of electronic devices 100 may include information about elements that affect the operation of the software.
  • the device information may include at least one of country information, software model information, and connection device information.
  • factors affecting the operation of the software may include, for example, a country, a ground wave connection, a satellite connection, a set top box connection, a sound bar connection,
  • Table 1 shows an example of a plurality of types classified according to the device information. Whether the electronic device 100 is connected to a specific device can be expressed as 0 and 1.
  • the number of samplings (the number of devices to be monitored) can be set for each of a plurality of types.
  • the server 200 may further include an operation input unit capable of receiving an input from a user, and may receive information on a plurality of types of sampling numbers through an operation input unit.
  • the operation input unit may be implemented by, for example, a keyboard, a mouse, a touch pad, a button, or the like.
  • the server 200 does not have an operation input unit, and user input may be received from an external device through the communication unit 210.
  • debugging information can be provided only from a predetermined number of devices It is possible to manage the memory more efficiently than to obtain debugging information from all devices.
  • the server 200 may include a memory, and a memory may store a plurality of types and a table having information on the monitored device corresponding to each of the plurality of types.
  • the memory may be implemented as a non-volatile memory, a volatile memory, a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
  • the memory may be implemented not only as a storage medium in the server 200 but also as an external storage medium such as a micro SD card, a USB memory, or a web server through a network.
  • Table 2 shows an example of a table including the number of samples for each type and information on the monitoring target device (target).
  • the processor 220 may check whether the type created based on the device information received from the electronic device 100 exists in a table pre-stored in the memory and add a new type to the table if not present.
  • the control unit 220 checks whether the type generated based on the device information received from the electronic device 100 exists in the table pre-stored in the memory. If there is a type, the comparison unit 220 compares the number of sampling of the type with the number of monitoring target devices If the number of monitoring target devices is smaller than the sampling number, information about the electronic device is added. If the number of monitoring target devices is larger than the sampling number, information about the electronic device is not added to the table.
  • the processor 220 may provide the same policy information for the electronic devices classified as the same type. Therefore, management can be efficiently performed only for a predetermined number of devices, thereby effectively reducing server traffic management and memory, thereby achieving cost reduction. In addition, since factors that may affect software operation are classified and managed according to type, it is possible to check what factors are affected by the problem in case of a problem.
  • FIG. 3 is a block diagram for explaining the configuration of an electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 includes a memory 110, a communication unit 120, and a processor 130.
  • the electronic device 100 may be implemented in various types of devices.
  • the electronic device 100 may be a computer, a TV, a cellular phone, a smart phone, a tablet PC, a smart watch, a smart band, a PDA, and the like.
  • the memory 110 stores various data and programs necessary for driving the electronic device 100.
  • the memory 110 may be implemented as a non-volatile memory, a volatile memory, a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
  • the memory 110 may be implemented not only as a storage medium in the electronic device 100 but also as an external storage medium such as a micro SD card, a USB memory, or a web server via a network.
  • the memory 110 may store a program configured by a plurality of program codes and performing a predetermined function.
  • a program for performing a channel switching function is stored in the memory 110, and the program may be composed of a plurality of program codes, for example, "Set_Tune () Check_TunerLock () ",” Check_DecoderLock () ", and the like.
  • the communication unit 120 is configured to perform communication with an external device.
  • the communication unit 120 is formed to connect the electronic device 100 with an external device and is connected to a terminal device through a local area network (LAN) and an Internet network, as well as a USB (Universal Serial Bus) port Or may be connected through a wireless communication port.
  • LAN local area network
  • Internet network as well as a USB (Universal Serial Bus) port
  • USB Universal Serial Bus
  • the communication unit 120 may be an infrared communication (IrDA), a radio frequency identification (RFID), a near field communication (NFC), a wireless fidelity (WiFi), an ultra wideband (UWB) (WirelessHD), Wireless Home Digital Interface (WHDI), Miracast, Wigig (Wireless Gigabit Alliance), Wi-Fi Direct, Bluetooth (ex.
  • IrDA infrared communication
  • RFID radio frequency identification
  • NFC near field communication
  • WiFi wireless fidelity
  • UWB ultra wideband
  • WBDI Wireless Home Digital Interface
  • Miracast Wigig (Wireless Gigabit Alliance), Wi-Fi Direct, Bluetooth (ex.
  • Bluetooth Classic Wireless Local Area Network (WLAN), AirPlay, Z-wave, 4LoWPAN, LTE D2D, GPRS, Weightless, Edge Zigbee, Digital Living Network Alliance (DLNA), ANT +, Digital Enhanced Cordless Telecommunications (DECT) ), A Global System for Mobile communications (GSM), a Universal Mobile Telecommunication System (UMTS), a Long-Term Evolution (LTE), and a Wireless Broadband (WiBRO) .
  • WLAN Wireless Local Area Network
  • AirPlay Z-wave
  • 4LoWPAN LTE D2D
  • GPRS Weightless, Edge Zigbee
  • DLNA Digital Living Network Alliance
  • ANT + Digital Enhanced Cordless Telecommunications
  • GSM Global System for Mobile communications
  • UMTS Universal Mobile Telecommunication System
  • LTE Long-Term Evolution
  • WiBRO Wireless Broadband
  • the processor 130 is a configuration for controlling the overall operation of the electronic device 100.
  • the processor 130 may be implemented as a CPU, an ASIC, a SoC, a MICOM, or the like.
  • the processor 130 may transmit the device information to the server 200 through the communication unit 120.
  • the device information may include elements that may affect the operation of the software, such as country information, software model information, connection device information (information about devices connected to the electronic device 100), as described above.
  • the processor 130 may transmit the device information to the server 200 at regular intervals or only when a specific event occurs to reduce the amount of transmission. For example, the processor 130 may transmit device information to the server 200 through the communication unit 120 when an event occurs in which the electronic device 100 is powered on.
  • the processor 130 may determine the type of the electronic device 100 based on the device information. It compares the device information before the device power is turned off and after the device power is turned on, and transmits the device information to the server 200 only when the type is changed. Lt; / RTI > For example, before the device power is turned off, the electronic device 100 is connected to the set-top box. However, if the set-top box is not connected when the power is turned on, the electronic device 100 determines that the type is changed, ). Alternatively, the electronic device 100 may transmit the information about the determined type itself to the server 200 instead of the device information.
  • the server 200 determines the type of the electronic device 100 based on information on the device information or type received from the electronic device 100 and provides policy information corresponding to the determined type to the electronic device 100 .
  • the processor 130 determines whether the type has been changed (S420) as compared with that before the power is turned off based on the device information If it is judged (S420: YES), the device information can be transmitted to the server 200.
  • the server 200 can confirm the type of the electronic device 100 based on the received device information (S440). If it is confirmed that the confirmed type is present in the pre-stored table (S450: NO), the confirmed type may be added to the table as a new type (S460).
  • the information of the electronic device 100 is added to the table in which the new type is added (S490), and the server 200 can transmit the policy information to the electronic device 100 (S495).
  • the server 200 can confirm the predetermined sampling number for the corresponding type (S470). (S480: NO), the information of the electronic device 100 is added to the table (S490), and the information of the monitoring target devices corresponding to the number of samples 200 may transmit policy information to the electronic device 100 (S495).
  • the processor 130 can determine whether or not the program code is normal operation based on the policy information received from the server 200 via the communication unit 120, To the server 200 via the Internet 120.
  • the policy information is information for verification of a program that is composed of a plurality of program codes and performs a predetermined function, and may include target information and determination information.
  • the target information is information indicating what program code is to be monitored
  • the determination information is information for determining whether the execution result of the program code to be monitored is a normal operation.
  • the target information includes information such as the name of the source file containing the program code to be monitored, the location (or line) of the program code to be monitored in the source file, the program code to be monitored (E.g., return value, parameter, time taken, etc.), and so on.
  • the judgment information may include information on a normal result of items to be checked when the program code to be monitored is executed. For example, if the item to be checked when the program code to be monitored is executed is at least one of a return value, a parameter value and a required time, the judgment information is information about at least one of a normal return value, a normal parameter value, . ≪ / RTI >
  • the determination information may include a normal combination value corresponding to normal result values for a plurality of items.
  • 1 can be calculated as a normal combination value corresponding to a combination of these based on a predetermined criterion when the normal return value is 1, the normal parameter value is 0, and the normal time requirement is 1ms or less.
  • one normal combination value corresponding to the combination is included It is advantageous that the amount of data transferred from the server 200 to the electronic device 100 can be reduced.
  • the policy information may include one or a plurality of target information, and when the target information includes a plurality of target information, the determination information may include a normal result value for items to be checked when a plurality of program codes to be monitored are executed, Not only the normal combination value but also information on the normal execution order of a plurality of program codes to be monitored.
  • the information on the normal execution order includes information indicating which program code is to be executed first in the normal operation among the plurality of program codes to be monitored and information indicating that the program code to be executed first And may include information on the normal execution order.
  • the determination information may include a normal result pattern that bundles normal combination values for a plurality of program codes and a normal order pattern that represents a normal sequence of a plurality of program codes.
  • the processor 130 may perform a preset function using the program stored in the memory 110. If the program code corresponding to the target information included in the policy information is executed during the execution of the preset function, And compare the result with the determination information included in the policy information to determine whether or not the program code is normally operated.
  • the determination information may include a plurality of normal result values for the plurality of items.
  • a plurality of result values of the plurality of items and a plurality of normal result values included in the determination information are compared with each other, and it is possible to determine whether or not the program code is normally operated.
  • the judgment information includes the normal result values for the return value, the parameter value.
  • the processor 130 compares the return value, the parameter value, the required time, and the normal return value, the normal parameter value, and the normal required time included in the determination information with respect to the execution of the program code corresponding to the target information, It is possible to judge whether or not the program code has been normally operated.
  • the determination information may include a normal combination value corresponding to a combination of a plurality of normal result values for the plurality of items.
  • the processor 130 calculates a combination value corresponding to a combination of a plurality of result values for the plurality of items, and outputs a normal combination value To judge whether or not the program code is normally operated.
  • the criterion by which the processor 130 calculates the combination value is the same as the criterion by which the server 200 calculates the normal combination value.
  • the information about the reference may be stored in the memory 110 or may be included in the policy information and provided to the electronic device 100.
  • the processor 130 may calculate a normal combination value corresponding to a combination of normal result values for each of them based on a predetermined criterion, and the processor 130 may calculate a return value, a parameter value, , And compares the calculated combination value with the normal combination value included in the determination information to determine whether the program code is normal or not .
  • the processor 130 may determine whether the program information is normal for each of a plurality of program codes corresponding to a plurality of target information. The processor 130 may determine normal operation based on the normal result value or the normal result value included in the determination information for each of the plurality of program codes as described above.
  • the determination information may include information on the normal order, as well as the normal result value or the normal combination value.
  • the processor 130 may include a plurality of The execution order of the program codes and the determination information are compared with each other to judge whether or not the program codes are normally operated.
  • Information indicating what program code is executed first in normal operation is called trigger information, and the program code that is executed first in normal operation is called trigger.
  • the processor 130 checks the order of the program codes corresponding to the target information executed until the trigger is detected again after the detection of the trigger, It can be determined based on the information on the normal execution order included in the determination information.
  • a source file having a file title a.cpp corresponds to a program that performs a channel switching function
  • the policy information includes target information A, target information B, and target information C as a plurality of target information can do.
  • Target information A corresponds to a program code "Set_Tune ()”
  • target information B corresponds to a program code "Check_TunerLock ()”
  • target information C corresponds to a program code "Check_DecoderLock ()”. More specifically, the target information A includes a name of a source file including a program code to be monitored.
  • the position of the program code to be monitored in the corresponding source file is the 100th line
  • the item (or condition) to be checked when the program code to be monitored is executed is a return value, a parameter, Information.
  • the target information B and the target information C are the names of the source files including the program codes to be monitored and the locations (or lines) of the program codes to be monitored in the source files , And information on what to check when the program code to be monitored is executed.
  • Target information A to C can constitute one target group, and is named target group 10.
  • the policy information includes target information A to C and determination information.
  • the determination information includes a normal result pattern composed of 1 as a normal combination value corresponding to the target information A, 0 as a normal combination value corresponding to the target information B, and 3 as a normal combination value corresponding to the target information C
  • the information on the normal execution order includes information indicating that the program code corresponding to the target information A is a trigger, and information indicating that the program code corresponding to the target information A, the program code corresponding to the target information B, and the program code corresponding to the target information C And a normal order pattern composed of information indicating that the order is a normal execution order.
  • the normal result pattern can be expressed in the form of " 10_103 " (target group number_unit normal combination value), and the normal order pattern can be expressed in the form of " 10_ABC "
  • the server 200 provides the policy information to the electronic device 100, and the processor 130 records information about the executed program code in the buffer when the program code corresponding to the target information included in the policy information is executed.
  • the processor 130 executes the program code A until the execution of the program code A is detected again after the execution of the program code A is detected , And confirms the order of the program codes (C, B) corresponding to the target information.
  • the processor 130 calculates a combination value corresponding to the combination of the return value, the parameter, and the time required for execution of the program code (A).
  • the value is 1.
  • the processor 130 calculates a combination value corresponding to a combination of a return value, a parameter, and a required time according to the execution of the program code (C).
  • the value is 3.
  • the processor 130 calculates a combination value corresponding to the combination of the return value, the parameter, and the time required for execution of the program code (B). In this example, the value is zero.
  • the processor 130 may generate an order pattern based on the order of the executed program codes.
  • the order pattern may be generated such as, for example, " 10_ACB " so that the target group number ('10' in the example of FIG. 5) and the program codes executed.
  • the processor 130 may then generate a resultant pattern based on the calculated combination values.
  • the resultant pattern is generated so as to indicate a combination value calculated for each of the number of the target group and the executed program codes.
  • the combination value includes a program code A, a program code B, and a program code C ). ≪ / RTI > Therefore, it is generated as "10_103".
  • the processor 130 may determine whether the program codes A, B, and C are normal or not by checking whether the generated order pattern and the result pattern are included in the determination information. If at least one of the order pattern and the result pattern is not included in the determination information, it can be determined that the operation is abnormal.
  • the processor 130 may transmit the determination result information about the normal operation status to the server 200 through the communication unit 120 based on the determination result of the normal operation or not.
  • the processor 130 may transmit the determination result information about the normal operation to the server 200 through the communication unit 120 only when the abnormal operation is determined, except when the normal operation is determined .
  • the electronic device 100 may be configured to perform a first mode for transmitting determination result information on normal operation to the server 200 only when an abnormal operation is determined, And the second mode in which all of the determination result information in the case of determination is transmitted.
  • the second mode is a mode that can be used when a sufficient database for debugging is not secured in the server 200.
  • a normal pattern included in the determination information is detected to obtain a probability distribution diagram of the number of patterns
  • the second mode is a mode that can be used in the development stage, for example.
  • the first mode may be referred to as a " Only Detection mode " and the second mode may be referred to as a " Detection & Learing mode ".
  • the server 200 may control the electronic device 100 to operate in the first mode or the second mode.
  • the server 200 may transmit information to the electronic device 100 by including information on the result notification method in the policy information.
  • the information on the result notification method is information indicating whether the electronic device 100 should be operated in the first mode or the second mode.
  • the processor 130 may operate in a first mode in which only an abnormal result is transmitted when the information on the result notification scheme included in the policy information received from the server 200 indicates the first mode, And transmits the determination result to the second mode.
  • the determination result information about whether or not the electronic device 100 transmits the normal operation to the server 200 may include at least one of an order pattern and a result pattern that can be generated as in the above-described example.
  • the processor 130 can transmit only the information about the pattern corresponding to the abnormality in the order pattern and the result pattern to the server 200 or the pattern corresponding to the normal so that the pattern corresponding to the abnormality can be considered together with the server 200 ).
  • the server 200 may update the policy information based on the determination result of normal operation received from the electronic device 100 and provide the updated policy information to the electronic device 100.
  • the server 200 can update the previously stored pattern table based on the determination result information about whether or not the normal operation is received from the electronic device 100 and can modify the policy information based on the updated pattern table.
  • the pattern table includes patterns of a plurality of program codes, that is, an order pattern and a result pattern, and may include information on a pattern corresponding to an abnormal operation and a different weight set for a pattern corresponding to a normal operation.
  • the processor 220 of the server 200 provides information on the pattern to the user (debugging person) if the pattern corresponding to the determination result information received from the electronic device 100 is not in the pre-stored pattern table,
  • the pre-stored pattern table can be updated using the input weight information and the pattern.
  • the processor 220 may provide information on the pattern to the user's terminal (computer, mobile phone, etc.) through the communication unit 210, and may determine whether the user corresponds to the abnormal operation or the normal operation When the weight is determined and input to the terminal, information on the input weight can be received by the server 200 through the communication unit 210. For example, a positive weight may be set for a pattern corresponding to a normal operation, and a negative weight for a pattern corresponding to an abnormal operation.
  • the processor 220 may modify the policy information so as to include a plurality of patterns constituting the updated pattern table and determination information corresponding to the weight information for each of the plurality of patterns.
  • the processor 220 can control the communication unit 210 so that the modified policy information is provided to the electronic device 100.
  • FIG. 6 is a flowchart illustrating an embodiment of a process in which policy information is modified and provided according to an embodiment of the present disclosure.
  • the electronic device 100 receives policy information from the server 200 (S610).
  • the electronic device 100 monitors whether the program code corresponding to the target information is executed based on the target information included in the received policy information (S620). If it is detected that the program codes corresponding to the target information are executed during monitoring, it is determined whether the execution order of the program codes is a normal execution order and whether a result value according to the execution of the program codes is normal. (S630).
  • the electronic device 100 can determine whether it is a normal operation through comparison between a normal pattern included in the determination information and a pattern generated according to the execution of the program code. A pattern can have an order pattern and a result pattern.
  • the electronic device 100 determines whether the result notification method is the first mode or the second mode (S640).
  • the first mode is a mode for transmitting a determination result to the server 200 only when an abnormal operation is determined
  • the second mode is a mode for transmitting a determination result to both the server 200 and the server 200 in the case where the abnormal operation is determined, ). If it is determined that the mode is the second mode, the pattern is transmitted (S650).
  • the server 200 determines whether the received pattern exists in the pre-stored pattern table (S660). If it is determined that the pattern is a new pattern that does not exist in the pattern table, the controller 300 can notify the manager 300 of the pattern (S665).
  • the manager 300 may be a developer of a program to be monitored. As a method of notifying the administrator 300 of the pattern, information on the pattern can be transmitted through the communication unit 210 to the terminal device of the administrator registered in the server 200 in advance.
  • the manager 300 determines whether the received pattern is a normal pattern (S670). If the pattern is abnormal, the manager 300 may set a different weight for each of the abnormal cases and the normal cases (S675). For example, a negative value (for example, '-1') may be set in the pattern if it is determined to be abnormal, and a positive value (for example, '1') may be set in the pattern when it is determined to be normal. Then, information on the set weights is transmitted to the server 200 (S680).
  • a negative value for example, '-1'
  • a positive value for example, '1'
  • the server 200 can update the pattern table (S690). For example, when the pattern transmitted in steps S645 and S650 is present in the pattern table, the server 200 may update the pattern table by increasing the frequency of the pattern. In addition, the server 200 can update the pattern table based on the weights provided from the manager 300. [
  • the server 200 may modify the policy information based on the updated pattern table (S695).
  • the server 200 can generate a list of normal patterns based on the frequency and the weight of each of the plurality of patterns constituting the updated pattern table.
  • the list of normal patterns can also be called a white list.
  • the server 200 can derive a list of normal patterns based on a criterion that the probability of a normal operation is higher as the frequency is higher.
  • the server 200 may include the positive patterns in the normal pattern list regardless of the frequency. And a negative weighted pattern can not be included in the normal pattern list regardless of the frequency.
  • a default weight value of 0 can be automatically set for a pattern in which the manager 300 does not set a weight.
  • Patterns whose weights are equal to or greater than a predetermined frequency may be included in the normal pattern list.
  • the server 200 can modify the policy information based on the normal pattern list generated in this way.
  • the normal pattern list can be included in the determination information of the policy information. Then, the server 200 transmits the modified policy information to the electronic device 100, and the electronic device 100 can receive the modified policy information (S610).
  • FIG. 7 is a diagram for explaining an example in which the electronic device 100 is implemented as a TV.
  • the electronic device 100 may be, for example, an analog TV, a digital TV, a 3D TV, a smart TV, an LED TV, an OLED TV, a plasma TV, a monitor, a Curve with a fixed curvature a flexible TV having a screen with a fixed curvature, a bended TV having a screen with a fixed curvature, and / or a curvature-variable TV capable of changing the curvature of the current screen by a received user input, etc. But is not limited thereto.
  • the electronic device 100 may include a memory 110, a communication unit 120, a processor 130, a tuner 140, an input / output unit 150, a display 160, and an audio output unit 170 .
  • the memory 110, the communication unit 120, and the processor 130 shown in FIG. 7 can perform the same functions as the memory 110, the communication unit 120, and the processor 130 described in FIG.
  • the tuner 140 tunes only a frequency of a channel to be received by an external device among many radio wave components through amplification, mixing, and resonance of a broadcast signal received by wire or wireless You can choose.
  • the broadcast signal may include video, audio, and additional data (e.g., an EPG (Electronic Program Guide).
  • the tuner 140 can receive broadcast signals from various sources such as terrestrial broadcast, cable broadcast, or satellite broadcast.
  • the tuner 140 may be a separate device (e.g., a set-top box) having an all-in-one with the electronic device 100 or having a tuner unit electrically connected to the electronic device 100, top box, and a tuner connected to the input / output unit 150).
  • a separate device e.g., a set-top box having an all-in-one with the electronic device 100 or having a tuner unit electrically connected to the electronic device 100, top box, and a tuner connected to the input / output unit 150).
  • the communication unit 120 is formed to connect the electronic device 100 with an external device and is connected to a terminal device through a local area network (LAN) and an Internet network, as well as a USB (Universal Serial Bus) port Or may be connected through a wireless communication port.
  • the communication unit 120 may be an infrared communication (IrDA), a radio frequency identification (RFID), a near field communication (NFC), a wireless fidelity (WiFi), an ultra wideband (UWB) (WirelessHD), Wireless Home Digital Interface (WHDI), Miracast, Wigig (Wireless Gigabit Alliance), Wi-Fi Direct, Bluetooth (ex.
  • Bluetooth Classic Wireless Local Area Network (WLAN), AirPlay, Z-wave, 4LoWPAN, LTE D2D, GPRS, Weightless, Edge Zigbee, Digital Living Network Alliance (DLNA), ANT +, Digital Enhanced Cordless Telecommunications (DECT) ), A Global System for Mobile communications (GSM), a Universal Mobile Telecommunication System (UMTS), a Long-Term Evolution (LTE), and a Wireless Broadband (WiBRO) .
  • WLAN Wireless Local Area Network
  • AirPlay Z-wave
  • 4LoWPAN LTE D2D
  • GPRS Weightless, Edge Zigbee
  • DLNA Digital Living Network Alliance
  • ANT + Digital Enhanced Cordless Telecommunications
  • GSM Global System for Mobile communications
  • UMTS Universal Mobile Telecommunication System
  • LTE Long-Term Evolution
  • WiBRO Wireless Broadband
  • the input / output unit 150 is configured to be connected to other devices.
  • the input / output unit 150 may include at least one of a high-definition multimedia interface port 151, a component input jack 152, and a USB port 153.
  • the input / output unit 150 may include at least one of ports of RGB, DVI, HDMI, DP, Thunderbolt, and the like.
  • a cathode ray tube (CRT), a plasma display panel (PDP), an organic light emitting diode (OLED), or the like may be used as the display 160.
  • the display 160 may be a liquid crystal display diodes, and TOLED (transparent OLED).
  • the display 160 may be implemented as a touch screen capable of sensing the touch operation of the user.
  • Various screens can be provided through the display 160.
  • the first mode for transmitting only the determination result of the abnormal operation to the server 200 and the determination result for both abnormal and normal are transmitted to the server 200
  • a UI screen for selecting one of the first mode and the second mode may be provided through the display 160.
  • the audio output unit 170 is configured to output audio data such as audio included in the broadcast signal received through the tuner 140, audio data input through the communication unit 120, the input / output unit 150, Or the audio included in the audio file stored in the memory 110.
  • the audio output unit 170 may include a speaker 171 and a headphone output terminal 172.
  • the memory 110 may store various data, programs, or applications for driving and controlling the electronic device 100 under the control of the processor 130.
  • the memory 110 stores policy information provided from the server 200, and the policy information can be updated by receiving update information from the server. At the time of updating, at least one of the new target information and the new determination information may be added to the existing policy information, or the policy information may be updated to be replaced.
  • the processor 130 controls the overall operation of the electronic device 100 and the signal flow between the internal components of the electronic device 100 and performs the function of processing the data.
  • the processor 130 may be implemented as a CPU, an ASIC, a SoC, a MICOM, or the like.
  • the processor 130 accesses the memory 110 and performs booting using the O / S stored in the memory 110.
  • Various functions can be performed using various programs, contents, data, and the like stored in the memory 110.
  • FIG. 8 is a flowchart for explaining a control method of an electronic device according to an embodiment of the present disclosure.
  • the flowchart shown in FIG. 8 can be configured with operations that are processed in the electronic device 100 described herein. Therefore, the contents described with respect to the electronic device 100 can be applied to the flowchart shown in Fig. 8, even if omitted from the following description.
  • the electronic device receives policy information including target information and determination information from an external server (S810).
  • the electronic device executes the predetermined function using a program having a predetermined function, which is composed of a plurality of program codes, The execution result is compared with the determination information to determine whether the program code is normally operated (S820).
  • the policy information may include a plurality of pieces of target information. In this case, in operation 820, it is possible to determine whether each of the plurality of program codes corresponding to the plurality of target information is normally operated.
  • the execution order of the plurality of program codes corresponding to the plurality of target information is compared with the determination information, and it is possible to determine whether the plurality of program codes are operating normally.
  • the electronic device can transmit the determination result information about whether the program code is normally operated to the external server.
  • the determination result information on the normal operation status to the server.
  • the debugging time and cost can be reduced.
  • the above-described control method of the electronic device can be performed in the electronic device of Fig. 3 or the electronic device of Fig.
  • a program for performing the control method of the electronic device described above may be stored in a recording medium and provided.
  • FIG. 9 is a flowchart illustrating a method of controlling a server according to an embodiment of the present disclosure.
  • the flowchart shown in FIG. 9 may be configured with operations that are processed in the server 200 described in this specification. Therefore, even if omitted from the following description, the contents described with respect to the server 200 can also be applied to the flowchart shown in FIG.
  • the server provides policy information for verification of a program configured with a plurality of program codes to a predetermined function (S910).
  • step S920 the server receives the determination result information indicating whether the program code corresponding to the policy information is normal or not, from the electronic device.
  • the server updates the pre-stored pattern table based on the determination result information received from the electronic device, and modifies the policy information based on the updated pattern table (S930).
  • the server For example, if the pattern corresponding to the determination result information received from the electronic device does not belong to the pre-stored pattern table, the server provides information on the pattern to the user, and provides weight information on the pattern in response to the provision of information on the pattern
  • the pre-stored pattern table can be updated using the input weight information and pattern.
  • the server can generate a list of normal patterns based on the frequency and weight information for each of the plurality of patterns constituting the updated pattern table, and modify the policy information to include the generated list of normal patterns.
  • the server When the policy information is modified, the server provides the modified policy information to the electronic device (S940).
  • the server receives device information from each of the plurality of electronic devices, divides the plurality of electronic devices into a plurality of types based on the received device information, and provides the same policy information to a plurality of devices of the same type.
  • the device information may include at least one of country information, software model information, and connection device information.
  • the server includes a memory for storing a table having information of electronic devices corresponding to each of the plurality of types and the plurality of types. Upon receiving the device information from the electronic device, the server confirms the type corresponding to the received device information And optionally add information of the electronic device to the table based on the number of samples in the identified type and the table stored in the memory.
  • the number of sampling is specified for each type, and debugging information is collected only from a predetermined number of devices, so that memory can be more efficiently managed than debugging information is acquired from all devices.
  • debugging information can be collected and learned from various devices, and policy information can be updated in real time, so that it is possible to quickly and accurately cope with the problem.
  • the debugging time can be greatly shortened.
  • the server control method according to the above-described embodiment can be performed in the server of FIG. And a recording medium storing a program for performing a control method of a server according to the above-described embodiment.
  • the various embodiments described above can be implemented in a recording medium that can be read by a computer or a similar device using software, hardware, or a combination thereof.
  • the embodiments described in this disclosure may be implemented as application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays ), A processor, microcontrollers, microprocessors, and an electrical unit for carrying out other functions.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • field programmable gate arrays programmable gate arrays
  • embodiments such as the procedures and functions described herein may be implemented with separate software modules. Each of the software modules may perform one or more of the functions and operations described herein.
  • Computer instructions for performing the processing operations in the electronic device 100 according to the various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium .
  • the computer instructions stored in the non-volatile computer-readable medium cause the particular device to perform processing operations in the electronic device 100 according to the various embodiments described above when executed by a processor of the particular device.
  • the method includes receiving policy information including target information and determination information from an external server, performing the preset function using a program configured with a plurality of program codes and performing a preset function, And comparing the execution result of the program code with the determination information when the program code corresponding to the target information is executed during the execution of the program code to determine whether the program code is normally operated.
  • Recorded non-transitory computer readable medium may be provided.
  • Computer instructions for performing the processing operations in the server 200 according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium.
  • the computer instructions stored in the non-volatile computer-readable medium cause the specific device to perform processing operations in the server 200 according to the various embodiments described above when executed by the processor of the particular device.
  • policy information for verification of a program constituted by a plurality of program codes and to perform a predetermined function to the electronic device, to output determination result information on whether or not the program code corresponding to policy information is normally operated, Updating the pre-stored pattern table based on the determination result information received from the electronic device, modifying the policy information based on the updated pattern table, and, when the policy information is modified, And providing the program to the electronic apparatus, wherein the program for performing the control method of the server is recorded.
  • Non-transitory computer readable media is a medium that stores data for a short period of time, such as a register, cache, memory, etc., but semi-permanently stores data and is readable by the device.
  • Specific examples of non-transitory computer readable media include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.
  • a method according to various embodiments disclosed herein may be provided in a computer program product.
  • a computer program product can be traded between a seller and a buyer as a product.
  • a computer program product may be distributed in the form of a machine readable storage medium (eg, compact disc read only memory (CD-ROM)) or distributed online through an application store (eg PlayStation TM or AppStore TM). have.
  • an application store eg PlayStation TM or AppStore TM.
  • at least a portion of the computer program product may be temporarily stored, or temporarily created, on a storage medium such as a manufacturer's server, a server of an application store, or a memory of a relay server.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

전자장치가 개시된다. 본 전자장치전자장치 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 저장하는 메모리, 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 통신부 및 프로그램을 이용하여 기설정된 기능을 수행하고, 기설정된 기능 수행 중에 타겟 정보에 대응되는 프로그램 코드가 실행되면 프로그램 코드의 실행 결과와 판단 정보를 비교하여 프로그램 코드에 대한 정상 동작 여부를 판단하는 프로세서를 포함한다.

Description

서버, 전자장치 및 그의 제어방법
본 개시는 서버, 전자장치 및 그의 제어방법에 관한 것으로, 더욱 상세하게는 오류 및 오작동을 자동으로 탐지할 수 이는 서버, 전자장치 및 그의 제어방법에 대한 것이다.
기술의 발전에 따라 디지털 기기의 기능은 복잡해지고 다양해졌다. 제조회사가 개방된 애플리케이션 플랫폼을 제공함에 따라 수많은 회사가 개발에 참여하고 독자적인 서비스를 제공하려고 노력하고 있다.
이러한 변화에 따라 디지털기기의 초기 개발단계에서 예측 불가능한 동작들이 일어나게 되고 이러한 동작들이 문제의 원인이 되기도 하였다.
종래엔 디지털 기기 개발단계에서 문제 발생 보고가 될 경우 동일한 문제를 재현시키고 이에 따라 콘솔을 통한 실시간 디버깅 정보를 활용하여 문제를 해결했다. 하지만, 문제가 재현되지 않거나 재현 방법이 정확하지 않을 경우에는 문제 해결이 현실적으로 불가능하였다.
그리고 제품이 소비자에게 공급된 이후에 발생하는 문제들은 대부분 외부 환경이 개발단계와 상이하여 문제를 재현하기가 쉽지 않으며, 발생되는 문제를 확인하기 위해 개발자들이 해당 장소를 방문해도 특정 시점에만 발생하는 문제의 경우 실시간으로 디버깅 정보를 얻는 것은 불가능하였다. 디버깅 정보를 얻더라도 개발자가 직접 해당 정보를 일일이 확인해야 하기에 디버깅 시간이 오래 걸렸다. 또한, 문제가 재현이 되더라도 재현하는데 걸린 시간, 개발자가 특정 장소에 직접 방문하기까지 많은 비용이 발생하게 된다
이와 같이 기존의 방식으로는 디버깅 정보를 얻어오는 것이 제한적이고 많은 비용이 발생하여 새로운 방식의 디버깅 정보기록 방법이 필요하게 되었다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 오류 및 오작동을 자동으로 탐지할 수 이는 서버, 전자장치 및 그의 제어방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자장치는, 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 저장하는 메모리, 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 통신부 및 상기 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 프로세서를 포함한다.
이 경우, 상기 정책 정보는, 복수의 타겟 정보를 포함하고, 상기 프로세서는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단할 수 있다.
이 경우, 상기 프로세서는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
한편, 상기 판단 정보는, 상기 프로그램 코드의 정상 결과에 대한 정보, 정상 소요 시간 정보, 상기 프로그램 코드의 정상 파라미터 정보 중 적어도 하나를 포함할 수 있다.
한편, 상기 프로세서는, 상기 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 상기 통신부를 제어할 수 있다.
한편, 상기 프로세서는, 상기 프로그램 코드에 대한 비정상 동작이 판단되는 경우에만 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 상기 통신부를 제어할 수 있다.
한편, 상기 정책 정보는, 결과 통지 방식에 대한 정보를 포함하고, 상기 프로세서는, 상기 결과 통지 방식에 대한 정보에 기초하여 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하도록 상기 통신부를 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따른 서버는, 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램의 검증을 위한 정책 정보를 전자장치에 제공하고, 상기 정책 정보에 대응한 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 전자장치로부터 수신하는 통신부 및 상기 수신한 판단 결과 정보에 기초하여 기저장된 패턴 테이블을 갱신하고, 상기 갱신된 패턴 테이블에 기초하여 상기 정책 정보를 수정하는 프로세서를 포함하고, 상기 프로세서는, 상기 정책 정보가 수정되면 상기 수정된 정책 정보가 상기 전자장치에 제공되도록 상기 통신부를 제어할 수 있다.
이 경우, 상기 프로세서는, 상기 수신한 판단 결과 정보에 대응되는 패턴이 상기 기저장된 패턴 테이블 내에 속하지 않으면 사용자에게 상기 패턴에 대한 정보를 제공하고, 상기 패턴에 대한 정보의 제공에 대응하여 상기 패턴에 대한 가중치 정보를 입력받으면 상기 입력된 가중치 정보 및 상기 패턴을 이용하여 상기 기저장된 패턴 테이블을 갱신할 수 있다.
이 경우, 상기 프로세서는, 상기 갱신된 패턴 테이블을 구성하는 복수의 패턴 각각에 대한 빈도 및 가중치 정보에 기초하여 정상 패턴의 리스트를 생성하고, 생성된 정상 패턴의 리스트를 포함하도록 정책 정보를 수정할 수 있다.
한편, 상기 통신부는, 복수의 전자장치 각각으로부터 장치 정보를 수신하고, 상기 프로세서는, 상기 수신된 장치 정보에 기초하여 상기 복수의 전자장치를 복수의 타입으로 구분하고, 동일 타입 내의 복수의 장치에 동일한 정책 정보를 제공할 수 있다.
이 경우, 상기 장치 정보는, 국가 정보, 소프트웨어 모델 정보, 연결 장치 정보 중 적어도 하나를 포함할 수 있다.
한편, 본 실시 예에 따른 서버는 상기 복수의 타입 및 상기 복수의 타입 각각에 대응되는 전자장치의 정보를 갖는 테이블을 저장하는 메모리 및 상기 복수의 타입별 샘플링 개수에 대한 정보를 입력받는 조작 입력부를 더 포함하고, 상기 프로세서는, 전자장치로부터 장치 정보를 수신하면, 상기 수신된 장치 정보에 대응하는 타입을 확인하고, 상기 확인된 타입 내의 샘플링 개수 및 상기 메모리에 저장된 테이블에 기초하여 선택적으로 상기 전자장치의 정보를 상기 테이블에 추가할 수 있다.
본 개시의 일 실시 예에 따른 전자장치의 제어 방법은, 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 단계 및 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 단계 포함한다.
이 경우, 상기 정책 정보는, 복수의 타겟 정보를 포함하고, 상기 판단하는 단계는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단할 수 있다.
이 경우, 상기 판단하는 단계는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
한편, 상기 판단 정보는, 상기 프로그램 코드의 정상 결과에 대한 정보, 정상 소요 시간 정보, 상기 프로그램 코드의 정상 파라미터 정보 중 적어도 하나를 포함할 수 있다.
한편, 본 실시 예에 따른 제어 방법은 상기 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하는 단계를 더 포함할 수 있다.
한편, 본 실시 예에 따른 제어 방법은 상기 프로그램 코드에 대한 비정상 동작이 판단되는 경우에만 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하는 단계를 더 포함할 수 있다.
한편, 상기 정책 정보는, 결과 통지 방식에 대한 정보를 포함하고, 상기 제어 방법은, 상기 결과 통지 방식에 대한 정보에 기초하여 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하는 단계를 더 포함할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 관리 시스템을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블럭도,
도 3은 본 개시의 일 실시 예에 따른 전자장치의 구성을 설명하기 위한 블럭도,
도 4는 본 개시의 일 실시 예에 따른 정책 정보 제공 방법을 설명하기 위한 흐름도,
도 5는 본 개시의 일 실시 예에 따른 오류 자동 탐지 방법을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 정책 정보 갱신 방법을 설명하기 위한 도면,
도 7은 본 개시의 또 다른 실시 예에 따른 전자장치의 구성을 설명하기 위한 블럭도,
도 8은 본 개시의 일 실시 예에 따른 전자장치의 제어방법을 설명하기 위한 흐름도, 그리고
도 9는 본 개시의 일 실시 예에 따른 서버의 제어방법을 설명하기 위한 흐름도이다.
본 개시에 대하여 구체적으로 설명하기에 앞서, 본 명세서 및 도면의 기재 방법에 대하여 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다 하지만, 이러한 용어들은 당해 기술 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성요소를 모두 도시되어 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 "제1", "제2" 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성요소들을 서로 구별하기 위하여 사용하는 것이며 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안 된다. 일 예로, 이러한 서수와 결합된 구성요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한되어서는 안 된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 개시의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부된 도면을 이용하여 본 개시에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 관리 시스템(1000)을 도시한 것이다.
관리 시스템(1000)은 복수의 전자장치(100) 및 서버(200)를 포함한다.
서버(200)는 복수의 전자장치(100)로부터 디버깅을 위한 정보를 수집할 수 있다. 디버깅이란 컴퓨터 프로그램의 오류를 찾아내어 수정하는 과정을 뜻한다. 디버깅은 개발 단계에서 이루어질 수 있고, 소비자가 전자장치(100)를 사용하고 있는 동안에도 이루어질 수 있다.
서버(200)는 복수의 전자장치(100)로부터 여러 정보를 수집하여 수집된 정보를 기초로 디버깅 정보를 얻기 위한 정책 정보(policy information)를 생성하고, 정책 정보를 복수의 전자장치(100)로 제공할 수 있다.
소프트웨어 문제 특징상 한 기기에서 발생한 문제는 같은 특성이 있는 기기 모두에서 발생할 수 있다. 따라서 서버(200)는 복수의 전자장치(100)를 타입별로 구분하여 동일 타입에 대해서는 동일한 정책 정보를 제공할 수 있다.
도 1에 도시된 예에서는 서버가 하나의 장치로 구성되는 예만을 도시하였으나, 구현시에 상술한 동작은 복수의 서버가 수행할 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 서버(200)를 설명하기 위한 블럭도이다.
서버(200)는 통신부(210), 프로세서(220)를 포함한다.
통신부(210)는 외부 장치와 통신을 수행하기 위한 구성이다. 통신부(210)는 서버(200)를 외부 장치와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 단말장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신 포트를 통하여 접속되는 형태도 가능하다.
프로세서(220)는 서버(200)의 전반적인 동작을 제어하기 위한 구성이다. 프로세서(220)는 CPU, ASIC, SoC, MICOM 등으로 구현될 수 있다.
프로세서(220)는 통신부(210)를 통해 복수의 전자장치(100) 각각으로부터 장치 정보를 수신하고, 수신된 장치 정보에 기초하여 복수의 전자장치(100)를 복수의 타입으로 구분하고, 동일 타입 내의 복수의 장치에 동일한 정책 정보를 제공할 수 있다.
복수의 전자장치(100) 각각으로부터 수신되는 장치 정보는 소프트웨어의 동작에 영향을 주는 요소에 대한 정보를 포함할 수 있다. 예컨대, 장치 정보는 국가 정보, 소프트웨어 모델 정보, 연결 장치 정보 중 적어도 하나를 포함할 수 있다. 복수의 전자장치(100)가 TV인 경우, 소프트웨어의 동작에 영향을 주는 요소에는 예컨대, 국가, 지상파 연결 여부, 위성 연결 여부, 셋톱박스 연결 여부, 사운드바 연결 여부 등이 있을 수 있다.
아래 표 1은 장치 정보에 따라 구분된 복수의 타입의 일 예를 도시한 것이다. 전자 장치(100)가 특정 장치와 연결되어 있는지 여부는 0과 1로 표현될 수 있다.
타입 국가 S/W 모델 지상파 위성 셋톱박스 사운드바 ...
A KOR UKS9000 0 0 0 1 ...
B KOR UKS9000 0 0 1 0 ...
C KOR UKS9000 0 1 0 0 ...
... ... ... ... ... ... ... ...
복수의 타입별로 샘플링 개수(모니터링 할 장치의 개수)가 설정될 수 있다. 서버(200)는 사용자로부터 입력을 수신할 수 있는 조작 입력부를 더 포함할 수 있고, 조작 입력부를 통해 복수의 타입별 샘플링 개수에 대한 정보를 입력받을 수 있다. 조작 입력부는 예컨대, 키보드, 마우스, 터치 패드, 버튼 등으로 구현될 수 있다. 또는, 서버(200)는 조작 입력부를 구비하지 않고 외부의 장치로부터 통신부(210)를 통해 사용자 입력이 수신되는 것도 가능하다.이와 같이 타입별로 샘플링 개수를 지정하여 정해진 개수의 장치로부터만 디버깅 정보를 취합하므로, 모든 기기에서 디버깅 정보를 취득하는 것보다 메모리를 더 효율적으로 관리할 수 있다.
서버(200)는 메모리를 포함하고, 메모리에는 복수의 타입 및 상기 복수의 타입 각각에 대응되는 모니터링 대상 기기의 정보를 갖는 테이블이 저장되어 있을 수 있다. 메모리는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 한편, 메모리는 서버(200) 내의 저장 매체뿐만 아니라, 외부 저장 매체, 예를 들어, micro SD 카드, USB 메모리 또는 네트워크를 통한 웹 서버(Web server) 등으로 구현될 수 있다.
아래 표 2는 각 타입별로 샘플링 개수, 및 모니터링 대상 기기(타겟)에 대한 정보를 포함하는 테이블의 예시를 도시한 것이다.
타입 샘플링 개수 타겟 1 HWDUID 타겟 2 타겟 3 ...
A 900 SAM12SUNG3 ... ... ...
B 1000 ... ... ... ...
C 990 ... ... ... ...
... ... ... ... ... ...
프로세서(220)는 전자장치(100)로부터 수신한 장치 정보에 기초하여 생성된 타입이 메모리에 기 저장된 테이블에 존재하는지 확인하여, 존재하지 않는 경우 테이블에 신규 타입을 추가할 수 있다.예컨대, 프로세서(220)는 전자장치(100)로부터 수신한 장치 정보에 기초하여 생성된 타입이 메모리에 기 저장된 테이블에 존재하는지 확인하여, 존재하는 경우에는 해당 타입의 샘플링 개수와 모니터링 대상 기기의 개수를 비교하여 샘플링 개수보다 모니터링 대상 기기의 개수가 적으면 해당 전자장치에 대한 정보를 추가하고, 샘플링 개수보다 모니터링 대상 기기의 개수가 많으면 해당 전자장치에 대한 정보를 테이블에 추가하지 않는다.
프로세서(220)는 동일 타입으로 분류된 전자장치들에 대해서 동일한 정책 정보를 제공할 수 있다. 따라서 정해진 샘플링 개수만큼의 기기에 대해서만 관리가 효율적으로 이루어질 수 있으므로 서버 트래픽 관리 및 메모리를 효과적으로 줄일 수 있어 비용 절감 효과를 얻을 수 있다. 그리고 소프트웨어 동작에 영향을 줄 수 있는 요인들을 타입별로 구분하여 관리하기 때문에 문제 발생 시 해당 문제가 어떤 요인의 영향을 받아 발생되었는지 확인이 가능하다.
도 3은 본 개시의 일 실시 예에 따른 전자장치(100)의 구성을 설명하기 위한 블럭도이다.
도 3을 참고하면, 전자장치(100)는 메모리(110), 통신부(120) 및 프로세서(130)를 포함한다.
전자장치(100)는 다양한 유형의 장치로 구현될 수 있다. 예컨대, 전자장치(100)는 컴퓨터, TV, 휴대폰, 스마트폰, 테블릿 PC, 스마트 워치, 스마트 밴드, PDA 등일 수 있다.
메모리(110)는 전자장치(100)의 구동에 필요한 각종 데이터, 프로그램을 저장한다. 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 한편, 메모리(110)는 전자장치(100) 내의 저장 매체뿐만 아니라, 외부 저장 매체, 예를 들어, micro SD 카드, USB 메모리 또는 네트워크를 통한 웹 서버(Web server) 등으로 구현될 수 있다.
메모리(110)는 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 저장할 수 있다. 예를 들어 전자장치(100)가 TV인 경우, 채널전환 기능을 수행하는 프로그램이 메모리(110)에 저장되고, 상기 프로그램은 복수의 프로그램 코드로 구성될 수 있는데, 예컨대 "Set_Tune()", "Check_TunerLock()", "Check_DecoderLock()"과 같은 복수의 프로그램 코드를 포함할 수 있다.
통신부(120)는 외부 장치와 통신을 수행하기 위한 구성이다. 통신부(120)는 전자장치(100)를 외부 장치와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 단말장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신 포트를 통하여 접속되는 형태도 가능하다.
예를 들어 통신부(120)는 적외선 통신(IrDA, infrared Data Association), RFID(Radio Frequency Identification), NFC(Near Field Communication), WiFi(Wireless Fidelity), UWB(ultra wideband), WiDi(WirelessDisplay), WiHD(WirelessHD), WHDI(Wireless Home Digital Interface), 미라캐스트(Miracast), Wigig(Wireless Gigabit Alliance), 와이파이 다이렉트(Wi-Fi Direct), 블루투스(ex. 블루투스 클래식(Bluetooth Classic), 블루투스 저 에너지(Bluetooth Low Energy)), AirPlay, Z-wave, 4LoWPAN, LTE D2D, GPRS, Weightless, Edge 지그비(Zigbee), DLNA(Digital Living Network Alliance), ANT+, DECT(Digital Enhanced Cordless Telecommunications), WLAN(wireless local area network), GSM(Global System for Mobile communications), UMTS(Universal Mobile Telecommunication System), LTE(Long-Term Evolution), WiBRO(Wireless Broadband) 등의 통신 방식들 중 적어도 하나의 통신 방식으로 통신을 수행할 수 있다.
프로세서(130)는 전자장치(100)의 전반적인 동작을 제어하기 위한 구성이다. 프로세서(130)는 CPU, ASIC, SoC, MICOM 등으로 구현될 수 있다.
프로세서(130)는 통신부(120)를 통해 서버(200)로 장치 정보를 전송할 수 있다. 장치 정보는 상술하였듯이 국가 정보, 소프트웨어 모델 정보, 연결 장치 정보(전자 장치(100)에 연결된 장치에 대한 정보) 등과 같이 소프트웨어의 동작에 영향을 줄 수 있는 요소를 포함할 수 있다.
프로세서(130)는 장치 정보를 일정 주기로 서버(200)로 전송하거나, 또는 전송량을 줄이기 위해 특정 이벤트 발생시에만 전송할 수 있다. 예컨대, 프로세서(130)는 전자장치(100)의 전원이 켜지는 이벤트 발생시 장치 정보를 통신부(120)를 통해 서버(200)로 전송할 수 있다. 프로세서(130)는 장치 정보를 기초로 전자장치(100)의 타입을 판단할 수 있는데, 장치 전원이 꺼지기 전과 장치 전원이 켜진 후의 장치 정보를 비교해서 타입이 변경된 경우에만 장치 정보를 서버(200)로 전송할 수 있다. 예컨대, 장치 전원이 꺼지기 전에는 전자장치(100)가 셋톱 박스에 연결되어 있었으나, 전원이 켜졌을 때에 셋톱 박스에 연결되어 있지 않으면 전자장치(100)는 타입이 변경된 것으로 판단하고 장치 정보를 서버(200)로 전송할 수 있다. 또는 전자장치(100)는 장치 정보 대신에 판단된 타입에 대한 정보 자체를 서버(200)로 전송할 수도 있다.
서버(200)는 전자장치(100)로부터 수신한 장치 정보 또는 타입에 대한 정보에 기초하여 전자장치(100)의 타입을 결정하고, 결정된 타입에 대응하는 정책 정보를 전자장치(100)로 제공할 수 있다.
도 4를 참고하여 전자장치(100)와 서버(200) 간에 정보를 주고받는 과정의 일 예를 설명하도록 한다.
도 4를 참고하면, 전자장치(100)에서 전원이 켜지면(S410), 프로세서(130)는 장치 정보를 기초로 전원이 꺼지기 전과 비교하여 타입이 변경되었는지 판단하고(S420), 타입이 변경된 것으로 판단되면(S420; YES), 장치 정보를 서버(200)로 전송할 수 있다. 서버(200)는 수신된 장치 정보에 기초하여 전자장치(100)의 타입을 확인할 수 있다(S440). 확인된 타입이 기 저장된 테이블에 존재하는 것인지 확인하여 존재하지 않은 것으로 확인되면(S450; NO), 상기 확인된 타입을 테이블에 신규 타입으로서 추가할 수 있다(S460). 신규 타입이 추가된 테이블에 전자장치(100)의 정보가 추가되고(S490), 서버(200)는 전자장치(100)로 정책 정보를 전송할 수 있다(S495).
한편, 확인된 타입이 기 저장된 테이블에 존재하면(S450; YES), 서버(200)는 해당 타입에 대해 기 설정된 샘플링 개수를 확인할 수 있다(S470). 샘플링 개수만큼의 모니터링 대상 기기가 존재하는지를 확인하여 샘플링 개수만큼의 모니터링 대상 기기가 존재하지 않는 것으로 확인되면(S480; NO), 전자장치(100)의 정보가 테이블에 추가되고(S490), 서버(200)는 전자장치(100)로 정책 정보를 전송할 수 있다(S495).
프로세서(130)는 통신부(120)를 통해 서버(200)로부터 수신한 정책 정보에 기초하여 프로그램 코드의 실행에 대하여 정상 동작인지 여부를 판단할 수 있고, 정상 동작인지 여부에 대한 판단 결과 정보를 통신부(120)를 통해 서버(200)로 전송할 수 있다.
정책 정보는 복수의 프로그램 코드로 구성되고 기 설정된 기능을 수행하는 프로그램의 검증을 위한 정보로서, 타겟 정보와 판단 정보를 포함할 수 있다. 타겟 정보는 모니터링 대상이 되는 프로그램 코드가 무엇인지를 나타내는 정보이고, 판단 정보는 모니터링 대상이 되는 프로그램 코드의 실행 결과가 정상 동작에 따른 것인지를 판단하기 위한 정보이다.
타겟 정보는 모니터링 대상이 되는 프로그램 코드가 포함된 소스 파일의 이름이 무엇인지, 해당 소스 파일 내에서 모니터링 대상이 되는 프로그램 코드의 위치(또는 라인)가 어디인지, 모니터링 대상이 되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항(예컨대, 리턴 값, 파라미터, 소요시간 등)이 무엇인지 등에 대한 정보를 포함할 수 있다.
판단 정보는 모니터링 대상이 되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항들의 정상 결과에 대한 정보를 포함할 수 있다. 예컨대, 모니터링 대상이 되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항이 리턴 값, 파라미터 값, 소요 시간 중 적어도 하나라면, 판단 정보는 정상 리턴 값, 정상 파라미터 값, 정상 소요 시간 중 적어도 하나에 대한 정보를 포함할 수 있다.
또 다른 실시 예에 따르면, 모니터링 대상이 되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항이 복수 개이면, 판단 정보는 복수 개의 사항들에 대한 정상 결과 값들에 대응되는 정상 조합 값을 포함할 수 있다. 예컨대 정상 리턴 값이 1이고, 정상 파라미터 값이 0이고, 정상 소요 시간이 1ms 이하인 경우 기 결정된 기준에 기초하여 이들의 조합에 대응되는 정상 조합 값으로 1이 산출될 수 있다. 본 실시 예에 따르면 모니터링 대상이 되는 프로그램 코드가 실행되었을 때 확인해야 하는 복수 개의 사항에 대한 복수의 정상 결과값 모두가 판단 정보에 포함되는 대신에 이들의 조합에 대응되는 하나의 정상 조합 값이 판단 정보에 포함되므로, 서버(200)에서 전자장치(100)로의 데이터 전송량이 줄어들 수 있는 장점이 있다.
정책 정보는 하나 또는 복수의 타겟 정보를 포함할 수 있고, 복수의 타겟 정보를 포함하는 경우, 판단 정보는 모니터링 대상이 되는 복수의 프로그램 코드가 실행되었을 때 확인해야 하는 사항들에 대한 정상 결과 값 또는 정상 조합 값뿐만 아니라, 모니터링 대상이 되는 복수의 프로그램 코드의 정상 실행 순서에 대한 정보도 포함할 수 있다. 정상 실행 순서에 대한 정보는, 모니터링 대상이 되는 복수의 프로그램 코드 중에서 정상 동작 시에 가장 처음으로 실행되는 프로그램 코드가 무엇인지를 나타내는 정보 및 가장 처음으로 실행되는 프로그램 코드 이후에 나머지 프로그램 코드들에 대한 정상 실행 순서에 대한 정보를 포함할 수 있다. 판단 정보는 복수의 프로그램 코드에 대한 정상 조합 값들을 묶은 정상 결과 패턴과 복수의 프로그램 코드들의 정상 순서를 나타내는 정상 순서 패턴을 포함할 수 있다.
프로세서(130)는 메모리(110)에 저장된 프로그램을 이용하여 기설정된 기능을 수행할 수 있고, 기설정된 기능 수행 중에, 정책 정보에 포함된 타겟 정보에 대응되는 프로그램 코드가 실행되면, 프로그램 코드의 실행 결과와 정책 정보에 포함된 판단 정보를 비교하여 실행된 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
타겟 정보에 대응되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항이 복수 개인 경우, 판단 정보는 상기 복수 개의 사항에 대한 복수 개의 정상 결과 값을 포함할 수 있고, 이 경우 프로세서(130)는 타겟 정보에 대응되는 프로그램 코드가 실행되었을 때 상기 복수 개의 사항에 대한 복수 개의 결과 값과 판단 정보에 포함된 복수 개의 정상 결과 값을 각각 비교하여, 실행된 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
예를 들어, 타겟 정보에 대응되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항이 리턴 값, 파라미터 값, 소요시간인 경우, 판단 정보는 리턴 값, 파라미터 값, 소요시간 각각에 대한 정상 결과 값들을 포함할 수 있고, 프로세서(130)는 타겟 정보에 대응되는 프로그램 코드의 실행에 따른 리턴 값, 파라미터 값, 소요시간과 판단 정보에 포함된 정상 리턴 값, 정상 파라미터 값, 정상 소요시간 각각을 비교하여, 실행된 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
타겟 정보에 대응되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항이 복수 개인 경우, 판단 정보는 상기 복수 개의 사항에 대한 복수 개의 정상 결과 값의 조합에 대응하는 정상 조합 값을 포함할 수 있고, 이 경우 프로세서(130)는 타겟 정보에 대응되는 프로그램 코드가 실행되었을 때 상기 복수 개의 사항에 대한 복수 개의 결과 값의 조합에 대응되는 조합 값을 산출하고, 산출된 조합 값과 판단 정보에 포함된 정상 조합 값을 비교하여, 실행된 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다. 프로세서(130)가 조합 값을 산출하는 기준은, 서버(200) 측에서 정상 조합 값을 산출하는 기준과 동일하다. 상기 기준에 대한 정보는 메모리(110)에 기 저장되어 있거나, 정책 정보에 포함되어 전자장치(100)로 제공될 수 있다.
예를 들어, 타겟 정보에 대응되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항이 리턴 값, 파라미터 값, 소요시간인 경우, 판단 정보는 리턴 값, 파라미터 값, 소요시간인 경우, 서버(200)는 이들 각각에 대한 정상 결과 값들의 조합에 대응되는 정상 조합 값을 기 설정된 기준에 따라 산출할 수 있고, 프로세서(130)는 타겟 정보에 대응되는 프로그램 코드의 실행에 따른 리턴 값, 파라미터 값, 소요시간의 조합에 대응하는 조합 값을 상기 기 결정된 기준과 동일한 기준에 따라 산출하고, 산출된 조합 값을 판단 정보에 포함된 정상 조합 값과 비교하여 실행된 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
정책 정보가 복수의 타겟 정보를 포함하는 경우 프로세서(130)는 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단할 수 있다. 프로세서(130)는 복수의 프로그램 코드 각각에 대하여 상술한 바와 같이 판단 정보에 포함된 정상 결과 값 또는 정상 조합 값을 기초로 정상 동작 여부를 판단할 수 있다.
정책 정보가 복수의 타겟 정보를 포함하는 경우 판단 정보는 정상 결과 값 또는 정상 조합 값 뿐만 아니라 정상 순서에 대한 정보를 포함할 수 있고, 이 경우프로세서(130)는 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 판단 정보를 비교하여 복수의 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
정상 실행 순서에 대한 정보는 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 중에서 정상 동작 시에 가장 처음으로 실행되는 프로그램 코드가 무엇인지를 나타내는 정보 및 가장 처음으로 실행되는 프로그램 코드 이후에 나머지 프로그램 코드들에 대한 정상 실행 순서에 대한 정보를 포함할 수 있다. 이러한 정상 실행 순서에 대한 정보를 기초로 프로세서(130)는 복수의 타겟 정보에 대응되는 복수의 프로그램이 정상적인 순서대로 실행되는지 판단할 수 있다. 정상 동작 시에 가장 처음으로 실행되는 프로그램 코드가 무엇인지를 나타내는 정보를 트리거 정보라고 명명하고, 정상 동작 시에 가장 처음으로 실행되는 프로그램 코드를 트리거라고 명명하도록 한다.
프로세서(130)는 트리거 정보를 기초로 트리거의 실행이 감지되면, 그 트리거의 감지 이후에 다시 트리거가 감지되기 전까지 실행된, 타겟 정보에 대응되는 프로그램 코드들의 순서를 확인하고, 확인된 순서가 정상적인 순서인지를 판단 정보에 포함된 정상 실행 순서에 대한 정보를 기초로 판단할 수 있다.
정상 동작 여부를 판단하는 일 실시 예에 대해 이하 도 5를 참고하여 설명하도록 한다.
도 5를 참고하면, a.cpp라는 파일 제목을 가지는 소스 파일은 채널 전환 기능을 수행하는 프로그램에 대응하는 것으로서, 정책 정보는 복수의 타겟 정보로서 타겟 정보 A, 타겟 정보 B, 타겟 정보 C를 포함할 수 있다. 타겟 정보 A는 "Set_Tune()"라는 프로그램 코드에 대응되고, 타겟 정보 B는 "Check_TunerLock()"라는 프로그램 코드에 대응되고 타겟 정보 C는 "Check_DecoderLock()"라는 프로그램 코드에 대응된다. 구체적으로 타겟 정보 A는, 모니터링 대상이 되는 프로그램 코드가 포함된 소스 파일의 이름이 a. cpp 이고, 해당 소스 파일 내에서 모니터링 대상이 되는 프로그램 코드의 위치가 100번째 라인이고, 모니터링 대상이 되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항(혹은 조건)이 리턴 값, 파라미터, 소요시간임을 나타내는 정보를 포함한다. 타겟 정보 B와 타겟 정보 C도 타겟 정보 A와 마찬가지로 모니터링 대상이 되는 프로그램 코드가 포함된 소스 파일의 이름이 무엇인지, 해당 소스 파일 내에서 모니터링 대상이 되는 프로그램 코드의 위치(또는 라인)가 어디인지, 모니터링 대상이 되는 프로그램 코드가 실행되었을 때 확인해야 하는 사항이 무엇인지에 대한 정보를 포함한다.
타겟 정보 A 내지 C는 하나의 타겟 그룹을 구성할 수 있고, 타겟 그룹 10이라고 명명되었다. 정책 정보는 타겟 정보 A 내지 C와 판단 정보를 포함한다. 본 예시에서 판단 정보는 타겟 정보 A에 대응되는 정상 조합 값으로서 1, 타겟 정보 B에 대응되는 정상 조합 값으로서 0 및 타겟 정보 C에 대응되는 정상 조합 값으로서 3으로 구성된 정상 결과 패턴을 포함하며, 정상 실행 순서에 대한 정보는 타겟 정보 A에 대응하는 프로그램 코드가 트리거임을 나타내는 정보 및 '타겟 정보 A에 대응하는 프로그램 코드 → 타겟 정보 B에 대응하는 프로그램 코드 → 타겟 정보 C에 대응하는 프로그램 코드'의 순서가 정상 실행 순서임을 나타내는 정보로 구성된 정상 순서 패턴을 포함하는 것으로 가정하도록 한다.
정상 결과 패턴은 "10_103"(타겟 그룹 넘버_정상 조합값)의 형식으로 표현될 수 있고, 정상 순서 패턴은 "10_ABC"(타겟 그룹 넘버_정상 순서)의 형식으로 표현될 수 있다.
서버(200)는 정책 정보를 전자장치(100)로 제공하고, 프로세서(130)는 정책 정보에 포함된 타겟 정보에 대응하는 프로그램 코드가 실행되면 실행된 프로그램 코드에 대한 정보를 버퍼에 기록한다.
프로세서(130)는 트리거인 타겟 정보 A에 대응하는 프로그램 코드(A)의 실행이 감지되면, 프로그램 코드(A)의 실행이 감지된 이후에 다시 프로그램 코드(A)의 실행이 감지되기 전까지 실행된, 타겟 정보에 대응되는 프로그램 코드들(C, B)의 순서를 확인한다.
그리고 프로세서(130)는 프로그램 코드(A)의 실행에 따른 리턴 값, 파라미터, 소요시간의 조합에 대응하는 조합값을 산출한다. 본 예시에서 그 값은 1이다. 마찬가지로 프로세서(130)는 프로그램 코드(C)의 실행에 따른 리턴 값, 파라미터, 소요시간의 조합에 대응하는 조합값을 산출한다. 본 예시에서 그 값은 3이다. 마찬가지로 프로세서(130)는 프로그램 코드(B)의 실행에 따른 리턴 값, 파라미터, 소요시간의 조합에 대응하는 조합값을 산출한다. 본 예시에서 그 값은 0이다.
프로세서(130)는 실행된 프로그램 코드들의 순서를 바탕으로 순서 패턴을 생성할 수 있다. 순서 패턴은 타겟 그룹의 넘버(도 5의 예시에서는 '10')와 실행된 프로그램 코드들을 순서를 나타낼 수 있도록 예컨대 "10_ACB"와 같이 생성될 수 있다. 그리고 프로세서(130)는 산출된 조합값들을 기초로 결과 패턴을 생성할 수 있다. 결과 패턴은 타겟 그룹의 넘버와 실행된 프로그램 코드들 각각에 대해 산출된 조합값을 나타낼 수 있도록 생성되는데, 조합값은 정상 실행 순서인 프로그램 코드(A), 프로그램 코드(B), 프로그램 코드(C)의 순서에 대응되게 나열될 수 있다. 따라서 "10_103"와 같이 생성되게 된다.
프로세서(130)는 생성된 순서 패턴 및 결과 패턴이 판단 정보에 포함되어 있는지를 확인하여 상기 프로그램 코드들(A, B, C)에 대한 정상 동작 여부를 판단할 수 있다. 순서 패턴과 결과 패턴 중 적어도 하나라도 판단 정보에 포함되어 있지 않으면 비정상 동작으로 판단할 수 있다.
프로세서(130)는 정상 동작 여부에 대한 판단 결과를 기초로, 정상 동작 여부에 대한 판단 결과 정보를 통신부(120)를 통해 서버(200)로 전송할 수 있다.
일 실시 예에 따르면 프로세서(130)는 정상 동작이 판단되는 경우는 제외하고 비정상 동작이 판단되는 경우에만 상기 정상 동작 여부에 대한 판단 결과 정보를 통신부(120)를 통해 서버(200)로 전송할 수 있다.
또 다른 실시 예에 따르면, 전자장치(100)는 비정상 동작이 판단되는 경우에만 정상 동작 여부에 대한 판단 결과 정보를 서버(200)로 전송하는 제1 모드 또는 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하는 제2 모드로 동작할 수 있다. 제2 모드는 서버(200)에 디버깅을 위한 충분한 데이터 베이스가 확보되지 않았을 경우에 사용될 수 있는 모드로서, 패턴의 경우의 수에 대한 확률 분포도를 얻기 위해 판단 정보에 포함된 정상 패턴이 감지되는 경우라도 패턴의 경우의 수에 대한 확률 분포도를 얻기 위해 서버로 판단 결과를 전송하는 모드이다. 제2 모드는 예컨대 개발 단계에서 사용될 수 있는 모드이다. 제1 모드는 "Only Detection 모드"라고 명명할 수 있고, 제2 모드는 "Detection & Learing 모드"라고 명명할 수 있다.
전자장치(100) 측에서의 사용자의 조작에 의해 상기 제1 모드와 상기 제2 모드 중 어느 하나의 모드가 선택될 수 있다. 또는, 서버(200) 측에서 전자장치(100)가 제1 모드 또는 제2 모드로 동작하도록 제어할 수 있다. 예컨대, 서버(200)는 정책 정보에 결과 통지 방식에 대한 정보를 포함시켜 전자장치(100)로 전송할 수 있다. 결과 통지 방식에 대한 정보는 전자장치(100)가 상기 제1 모드와 제2 모드 중 어떠한 모드로 동작되어야 하는지를 나타내는 정보이다. 프로세서(130)는 서버(200)로부터 수신된 정책 정보에 포함된 결과 통지 방식에 대한 정보가 제1 모드를 지시하면, 비정상 결과만을 전송하는 제1 모드로 동작할 수 있고, 제2 모드를 지시하면 판단 결과를 모두 전송하는 제2 모드로 동작할 수 있다.
전자장치(100)가 서버(200)로 전송하는 정상 동작 여부에 대한 판단 결과 정보는 상술한 예시에서와 같이 생성될 수 있는 순서 패턴 및 결과 패턴 중 적어도 하나를 포함할 수 있다.
프로세서(130)는 순서 패턴과 결과 패턴 중에서 비정상에 해당하는 패턴에 대한 정보만을 서버(200)로 전송할 수 있고, 또는 비정상에 해당하는 패턴과 함께 고려될 수 있도록 정상에 해당하는 패턴도 서버(200)로 전송할 수 있다.
이하에서는 판단 여부에 대한 판단 결과 정보를 수신한 서버(200) 측의 동작에 대해 설명하도록 한다.
서버(200)는 전자장치(100)로부터 수신한 정상 동작 여부에 대한 판단 결과 정보를 기초로 정책 정보를 업데이트하고, 업데이트된 정책 정보를 전자장치(100)로 제공할 수 있다.
서버(200)는 전자장치(100)로부터 수신한 정상 동작 여부에 대한 판단 결과 정보를 기초로 기 저장된 패턴 테이블을 갱신할 수 있고, 갱신된 패턴 테이블에 기초하여 정책 정보를 수정할 수 있다. 패턴 테이블은 복수의 프로그램 코드들의 패턴 즉, 순서 패턴과 결과 패턴을 포함하며, 비정상 동작에 해당하는 패턴과 정상 동작에 해당하는 패턴에 대해 서로 다르게 설정된 가중치에 대한 정보를 포함할 수 있다.
서버(200)의 프로세서(220)는, 전자장치(100)로부터 수신한 판단 결과 정보에 대응되는 패턴이 기저장된 패턴 테이블 내에 없으면 사용자(디버깅 담당자)에게 상기 패턴에 대한 정보를 제공하고, 상기 패턴에 대한 정보의 제공에 대응하여 상기 패턴에 대한 가중치 정보를 사용자로부터 입력받으면 상기 입력된 가중치 정보 및 상기 패턴을 이용하여 상기 기저장된 패턴 테이블을 갱신할 수 있다.
예컨대, 프로세서(220)는 패턴에 대한 정보를 통신부(210)를 통해 사용자의 단말(컴퓨터, 휴대폰 등)로 제공할 수 있고, 사용자가 패턴을 보고 비정상 동작에 해당하는 것인지 정상 동작에 해당하는 것인지 판단해서 가중치를 단말에 입력하면, 입력된 가중치에 대한 정보가 통신부(210)를 통해 서버(200)로 수신될 수 있다. 예를 들어, 정상 동작에 대응하는 패턴에 대해선 양수 가중치가 설정될 수 있고, 비정상 동작에 대응하는 패턴에 대해선 음수 가중치가 설정될 수 있다.
프로세서(220)는 갱신된 패턴 테이블을 구성하는 복수의 패턴 및 복수의 패턴 각각에 대한 가중치 정보에 대응하는 판단 정보를 포함하도록 정책 정보를 수정할 수 있다.
정책 정보가 수정되면 프로세서(220)는 수정된 정책 정보가 전자장치(100)에 제공되도록 통신부(210)를 제어할 수 있다.
도 6을 참고하여 정책 정보가 수정 및 제공되는 과정을 좀 더 구체적으로 설명하도록 한다.
도 6은 본 개시의 일 실시 예에 다른 정책 정보가 수정 및 제공되는 과정의 일 실시 예를 설명하기 위한 흐름도이다.
도 6을 참고하면, 전자장치(100)는 서버(200)로부터 정책 정보를 수신한다(S610). 전자장치(100)는 수신된 정책 정보에 포함된 타겟 정보를 기초로, 타겟 정보에 대응하는 프로그램 코드가 실행되는지 모니터링한다(S620). 모니터링 중에 타겟 정보에 대응하는 프로그램 코드들이 실행됨이 감지되면, 상기 프로그램 코드들의 실행 순서가 정상 실행 순서인지, 상기 프로그램 코드들의 실행에 따른 결과 값이 정상인지를 정책 정보에 포함된 판단 정보를 기초로 판단한다(S630). 전자장치(100)는 판단 정보에 포함되어 있는 정상 패턴과, 프로그램 코드 실행에 따라 생성된 패턴 간의 비교를 통해 정상 동작인지 여부를 판단할 수 있다. 패턴은 순서 패턴과 결과 패턴이 있을 수 있다. 판단 결과 정상 동작이 아닌 경우, 비정상 패턴에 대한 정보를 서버(200)로 전송한다(S645). 판단 결과 정상 동작인 경우, 전자장치(100)는 결과 통지 방식이 제1 모드인지 제2 모드인지 판단한다(S640). 제1 모드는 비정상 동작이 판단되는 경우에만 판단 결과를 서버(200)로 전송하는 모드이고, 제2 모드는 비정상 동작이 판단되는 경우와 정상 동작이 판단되는 경우 모두에 있어서 판단 결과를 서버(200)로 전송하는 모드이다. 제2 모드인 것으로 판단되면, 패턴을 전송한다(S650).
서버(200)는 패턴이 수신되면 수신된 패턴이 기 저장된 패턴 테이블에 존재하는지 판단한다(S660). 패턴 테이블에 존재하지 않는 새로운 패턴이라고 판단된 경우, 해당 패턴이 정상 동작에 해당하는 것인지를 알아보기 위해 관리자(300)에게 해당 패턴에 대해 알릴 수 있다(S665). 관리자(300)는 모니터링 대상이 되는 프로그램의 개발자일 수 있다. 관리자(300)에게 패턴을 알리는 방법으로서, 서버(200)에 기 등록된 관리자의 단말 장치로 패턴에 대한 정보를 통신부(210)를 통해 전송할 수 있다.
관리자(300)는 통지받은 패턴이 정상 패턴인지 여부를 판단하여(S670), 비정상으로 판단된 경우와 정상으로 판단된 경우 각각에 대해 다르게 가중치를 설정할 수 있다(S675). 예컨대, 비정상으로 판단된 경우 패턴에 음수 값(예컨대 '-1')을 설정하고, 정상으로 판단된 경우에 패턴에 양수 값(예컨대 '1')을 설정할 수 있다. 그리고 설정한 가중치에 대한 정보를 서버(200)에 전송한다(S680).
서버(200)는 패턴 테이블을 갱신할 수 있다(S690). 예컨대, 서버(200)는 S645 단계와 S650 단계에서 전송된 패턴이 패턴 테이블에 존재하는 경우 해당 패턴의 빈도수를 증가시킴으로써 패턴 테이블을 갱신할 수 있다. 또한 서버(200)는 관리자(300)로부터 제공받은 가중치를 기초로 패턴 테이블을 갱신할 수 있다.
서버(200)는 갱신된 패턴 테이블을 기초로 정책 정보를 수정할 수 있다(S695). 예컨대, 서버(200)는 갱신된 패턴 테이블을 구성하는 복수의 패턴들 각각의 빈도와 가중치에 기초하여, 정상 패턴의 리스트를 생성할 수 있다. 정상 패턴의 리스트는 일명 White List라고 명명할 수도 있다. 구체적으로, 서버(200)는 빈도가 높을수록 정상 동작일 확률이 높다는 판단 기준을 기초로 정상 패턴의 리스트를 도출할 수 있다. 서버(200)는 양수의 가중치가 설정된 패턴은 빈도에 상관없이 정상 패턴 리스트에 포함시킬 수 있다. 그리고 음수의 가중치가 설정된 패턴은 빈도에 상관없이 정상 패턴 리스트에 포함될 수 없다. 한편, 관리자(300)가 모든 패턴에 대해 일일이 가중치를 설정할 수 없으므로, 관리자(300)가 가중치를 설정하지 않은 패턴에 대해선 자동으로 디폴트 가중치인 0이 설정될 수 있다. 가중치가 0으로 설정된 패턴들 중에서 기 설정된 빈도 이상인 패턴들이 정상 패턴 리스트에 포함될 수 있다. 서버(200)는 이와 같이 생성된 정상 패턴 리스트에 기초해서 정책 정보를 수정할 수 있다. 정상 패턴 리스트는 정책 정보의 판단 정보에 포함될 수 있다. 그리고 서버(200)는 수정된 정책 정보를 전자장치(100)에 전송하고, 전자장치(100)는 이를 수신할 수 있다(S610).
도 7은 전자장치(100)가 TV로 구현된 경우의 일 예를 설명하기 위한 도면이다.
도 7을 참고하면, 전자장치(100)는 예를 들어 아날로그 TV, 디지털 TV, 3D-TV, 스마트 TV, LED TV, OLED TV, 플라즈마 TV, 모니터, 고정 곡률(curvature)인 화면을 가지는 커브드(curved) TV, 고정 곡률인 화면을 가지는 플렉시블(flexible) TV, 고정 곡률인 화면을 가지는 벤디드(bended) TV, 및/또는 수신되는 사용자 입력에 의해 현재 화면의 곡률을 변경 가능한 곡률 가변형 TV 등으로 구현될 수 있으나, 이에 한정되지 않는다.
전자장치(100)는 메모리(110), 통신부(120), 프로세서(130), 튜너(140), 입/출력부(150), 디스플레이(160), 오디오 출력부(170)를 포함할 수 있다.
도 7에 도시된 메모리(110), 통신부(120), 프로세서(130)는 도 3에서 설명한 메모리(110), 통신부(120), 프로세서(130)와 같은 기능을 실행할 수 있다.
튜너(140)는 유선 또는 무선으로 수신되는 방송 신호를 증폭(amplification), 혼합(mixing), 공진(resonance) 등을 통하여 많은 전파 성분 중에서 외부 장치에서 수신하고자 하는 채널의 주파수만을 튜닝(tuning)시켜 선택할 수 있다. 방송 신호는 비디오(video), 오디오(audio) 및 부가 데이터(예를 들어, EPG(Electronic Program Guide)를 포함할 수 있다.
튜너(140)는 지상파 방송, 케이블 방송, 또는, 위성 방송 등과 같이 다양한 소스에서부터 방송 신호를 수신할 수 있다.
튜너(140)는 전자장치(100)와 일체형(all-in-one)으로 구현되거나 또는 전자장치(100)와 전기적으로 연결되는 튜너 유닛을 가지는 별개의 장치(예를 들어, 셋톱박스(set-top box), 입/출력부(150)에 연결되는 튜너)로 구현될 수 있다.
통신부(120)는 전자장치(100)를 외부 장치와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 단말장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신 포트를 통하여 접속되는 형태도 가능하다. 예를 들어 통신부(120)는 적외선 통신(IrDA, infrared Data Association), RFID(Radio Frequency Identification), NFC(Near Field Communication), WiFi(Wireless Fidelity), UWB(ultra wideband), WiDi(WirelessDisplay), WiHD(WirelessHD), WHDI(Wireless Home Digital Interface), 미라캐스트(Miracast), Wigig(Wireless Gigabit Alliance), 와이파이 다이렉트(Wi-Fi Direct), 블루투스(ex. 블루투스 클래식(Bluetooth Classic), 블루투스 저 에너지(Bluetooth Low Energy)), AirPlay, Z-wave, 4LoWPAN, LTE D2D, GPRS, Weightless, Edge 지그비(Zigbee), DLNA(Digital Living Network Alliance), ANT+, DECT(Digital Enhanced Cordless Telecommunications), WLAN(wireless local area network), GSM(Global System for Mobile communications), UMTS(Universal Mobile Telecommunication System), LTE(Long-Term Evolution), WiBRO(Wireless Broadband) 등의 통신 방식들 중 적어도 하나의 통신 방식으로 통신을 수행할 수 있다.
입/출력부(150)는 타 장치와 연결되기 위한 구성이다. 입/출력부(150)는 HDMI 입력 포트(High-Definition Multimedia Interface port, 151), 컴포넌트 입력 잭(152), 및 USB 포트(153) 중 적어도 하나를 포함할 수 있다. 도시한 것 이외에도 입/출력부(150)는 RGB, DVI, HDMI, DP, 썬더볼트 등의 포트 중 적어도 하나를 포함할 수 있다.
디스플레이(160)는 영상을 표시하기 위한 구성으로서, 예컨대, LCD(Liquid Crystal Display)로 구현될 수 있으며, 경우에 따라 CRT(cathode-ray tube), PDP(plasma display panel), OLED(organic light emitting diodes), TOLED(transparent OLED) 등으로 구현될 수 있다. 또한, 디스플레이(160)는 사용자의 터치 조작을 감지할 수 있는 터치스크린 형태로 구현될 수도 있다.
디스플레이(160)를 통해 다양한 화면이 제공될 수 있고, 예컨대, 비정상 동작에 대한 판단 결과만을 서버(200)로 전송하는 제1 모드와 비정상 및 정상 모두에 대한 판단 결과를 서버(200)로 전송하는 제2 모드 중에서 어느 하나의 모드를 선택받기 위한 UI 화면이 디스플레이(160)를 통해 제공될 수 있다.
오디오 출력부(170)는 오디오를 출력하기 위한 구성으로서, 예컨대, 튜너(140)를 통해 수신된 방송 신호에 포함된 오디오, 통신부(120), 입/출력부(150) 등을 통해 입력되는 오디오, 또는 메모리(110)에 저장된 오디오 파일에 포함된 오디오를 출력할 수 있다. 오디오 출력부(170)는 스피커(171) 및 헤드폰 출력 단자(172)를 포함할 수 있다.
메모리(110)는 프로세서(130)의 제어에 의해 전자장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 애플리케이션을 저장할 수 있다. 예컨대 메모리(110)는 서버(200)로부터 제공받은 정책 정보를 저장하며, 정책 정보는 서버로부터 업데이트 정보를 수신하여 업데이트될 수 있다. 업데이트 시에는 기존의 정책 정보에 신규 타겟 정보 및 신규 판단 정보 중 적어도 하나가 추가되는 형태로 업데이트될 수 있고, 또는 정책 정보가 교체되는 형태로 업데이트될 수 있다.
프로세서(130)는 전자장치(100)의 전반적인 동작 및 전자장치(100)의 내부 구성요소들 사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행한다. 프로세서(130)는 예컨대 CPU, ASIC, SoC, MICOM 등으로 구현될 수 있다.
프로세서(130)는 메모리(110)에 액세스하며, 메모리(110)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고 메모리(110)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 기능을 수행할 수 있다.
도 8은 본 개시의 일 실시 예에 따른 전자장치의 제어방법을 설명하기 위한 흐름도이다. 도 8에 도시된 흐름도는 본 명세서에서 설명되는 전자장치 (100)에서 처리되는 동작들로 구성될 수 있다. 따라서, 이하에서 생략된 내용이라 하더라도 전자장치(100)에 관하여 기술된 내용은 도 8에 도시된 흐름도에도 적용될 수 있다.
도 8을 참고하면, 전자장치는 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신한다(S810).
그리고 전자장치는 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단한다(S820).
정책 정보는 복수의 타겟 정보를 포함할 수 있고, 이 경우 S820 단계는 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단할 수 있다.
이 경우, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
그리고 전자장치는 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 외부 서버로 전송할 수 있다. 이 경우, 프로그램 코드에 대한 비정상 동작이 판단되는 경우에만 정상 동작 여부에 대한 판단 결과 정보를 서버로 전송할 수 있다. 또는, 정책 정보에 포함된 결과 통지 방식에 대한 정보에 기초하여, 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하는 모드로 동작하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하는 모드로 동작할 수 있다.
상술한 전자 장치의 제어 방법에 따르면 디버깅 시간 및 비용이 감소될 수 있다. 상술한 전자 장치의 제어 방법은 도 3의 전자 장치 또는 도 7의 전자 장치에서 수행될 수 있다. 그리고 상술한 전자 장치의 제어 방법을 수행하기 위한 프로그램이 기록 매체에 저장되어 제공될 수 있다.
도 9는 본 개시의 일 실시 예에 따른 서버의 제어방법을 설명하기 위한 흐름도이다. 도 9에 도시된 흐름도는 본 명세서에서 설명되는 서버(200)에서 처리되는 동작들로 구성될 수 있다. 따라서, 이하에서 생략된 내용이라 하더라도 서버(200)에 관하여 기술된 내용은 도 9에 도시된 흐름도에도 적용될 수 있다.
도 9를 참고하면, 서버는 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램의 검증을 위한 정책 정보를 전자장치에 제공한다(S910).
그리고 서버는 정책 정보에 대응한 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 전자장치로부터 수신한다(S920).
그리고 서버는 전자장치로부터 수신한 판단 결과 정보에 기초하여 기저장된 패턴 테이블을 갱신하고, 상기 갱신된 패턴 테이블에 기초하여 상기 정책 정보를 수정한다(S930).
예컨대, 서버는 전자장치로부터 수신한 판단 결과 정보에 대응되는 패턴이 기저장된 패턴 테이블 내에 속하지 않으면 사용자에게 상기 패턴에 대한 정보를 제공하고, 패턴에 대한 정보의 제공에 대응하여 패턴에 대한 가중치 정보를 입력받으면 입력된 가중치 정보 및 패턴을 이용하여 기저장된 패턴 테이블을 갱신할 수 있다.
이 경우, 서버는 갱신된 패턴 테이블을 구성하는 복수의 패턴 각각에 대한 빈도 및 가중치 정보에 기초하여 정상 패턴의 리스트를 생성하고, 생성된 정상 패턴의 리스트를 포함하도록 정책 정보를 수정할 수 있다.
그리고 서버는 정책 정보가 수정되면 수정된 정책 정보가 상기 전자장치에 제공한다(S940).
서버는 복수의 전자장치 각각으로부터 장치 정보를 수신하고 상기 수신된 장치 정보에 기초하여 복수의 전자장치를 복수의 타입으로 구분하고, 동일 타입 내의 복수의 장치에 동일한 정책 정보를 제공할 수 있다. 여기서 장치 정보는 국가 정보, 소프트웨어 모델 정보, 연결 장치 정보 중 적어도 하나를 포함할 수 있다.
서버는 상기 복수의 타입 및 상기 복수의 타입 각각에 대응되는 전자장치의 정보를 갖는 테이블을 저장하는 메모리를 포함하며, 전자장치로부터 장치 정보를 수신하면, 상기 수신된 장치 정보에 대응하는 타입을 확인하고, 상기 확인된 타입 내의 샘플링 개수 및 상기 메모리에 저장된 테이블에 기초하여 선택적으로 상기 전자장치의 정보를 상기 테이블에 추가할 수 있다.
상술한 실시 예에 따른 서버의 제어방법에 따르면 타입별로 샘플링 개수를 지정하여 정해진 개수의 장치로부터만 디버깅 정보를 취합하므로 모든 기기에서 디버깅 정보를 취득하는 것보다 메모리를 더 효율적으로 관리할 수 있다. 또한, 여러 기기로부터 디버깅 정보를 수집해서 학습할 수 있고 실시간으로 정책 정보를 갱신할 수 있으므로 통해 문제에 대한 빠른고 정확한 대처가 가능하다. 또한, 문제 발생시 종래의 디버깅 데이터에 비해 간소화된 패턴을 이용하므로 디버깅 시간을 크게 단축할 수 있다.
상술한 실시 예에 따른 서버의 제어방법은 도 2의 서버에서 수행될 수 있다. 그리고 상술한 실시 예에 따른 서버의 제어방법을 수행하기 위한 프로그램을 저장한 기록매체가 제공될 수 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
상술한 본 개시의 다양한 실시 예들에 따른 전자장치(100)에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 전자장치(100)에서의 처리 동작을 상기 특정 기기가 수행하도록 한다.
예컨대, 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 단계 및 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 단계를 포함하는 전자장치의 제어 방법을 수행하는 프로그램이 기록된 비일시적 컴퓨터 판독 가능 매체가 제공될 수 있다.
상술한 본 개시의 다양한 실시 예들에 따른 서버(200)에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 서버(200)에서의 처리 동작을 상기 특정 기기가 수행하도록 한다.
예컨대, 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램의 검증을 위한 정책 정보를 전자장치에 제공하는 단계, 정책 정보에 대응한 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 전자장치로부터 수신하는 단계, 전자장치로부터 수신한 판단 결과 정보에 기초하여 기저장된 패턴 테이블을 갱신하고, 상기 갱신된 패턴 테이블에 기초하여 상기 정책 정보를 수정하는 단계 및 정책 정보가 수정되면 수정된 정책 정보가 전자장치에 제공하는 단계를 포함하는 서버의 제어방법을 수행하는 프로그램이 기록된 기록 매체가 제공될 수 있다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어™, 앱스토어™)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (15)

  1. 전자장치에 있어서,
    복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 저장하는 메모리;
    타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 통신부; 및
    상기 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 프로세서;를 포함하는 전자장치.
  2. 제1항에 있어서,
    상기 정책 정보는,
    복수의 타겟 정보를 포함하고,
    상기 프로세서는,
    상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단하는 전자장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단하는 전자장치.
  4. 제1항에 있어서,
    상기 판단 정보는,
    상기 프로그램 코드의 정상 결과에 대한 정보, 정상 소요 시간 정보, 상기 프로그램 코드의 정상 파라미터 정보 중 적어도 하나를 포함하는 전자장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 상기 통신부를 제어하는 전자장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 프로그램 코드에 대한 비정상 동작이 판단되는 경우에만 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 상기 통신부를 제어하는 전자장치.
  7. 제1항에 있어서,
    상기 정책 정보는,
    결과 통지 방식에 대한 정보를 포함하고,
    상기 프로세서는,
    상기 결과 통지 방식에 대한 정보에 기초하여 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하도록 상기 통신부를 제어하는 전자장치.
  8. 서버에 있어서,
    복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램의 검증을 위한 정책 정보를 전자장치에 제공하고, 상기 정책 정보에 대응한 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 전자장치로부터 수신하는 통신부; 및
    상기 수신한 판단 결과 정보에 기초하여 기저장된 패턴 테이블을 갱신하고, 상기 갱신된 패턴 테이블에 기초하여 상기 정책 정보를 수정하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 정책 정보가 수정되면 상기 수정된 정책 정보가 상기 전자장치에 제공되도록 상기 통신부를 제어하는 서버.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 수신한 판단 결과 정보에 대응되는 패턴이 상기 기저장된 패턴 테이블 내에 속하지 않으면 사용자에게 상기 패턴에 대한 정보를 제공하고, 상기 패턴에 대한 정보의 제공에 대응하여 상기 패턴에 대한 가중치 정보를 입력받으면 상기 입력된 가중치 정보 및 상기 패턴을 이용하여 상기 기저장된 패턴 테이블을 갱신하는 서버.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 갱신된 패턴 테이블을 구성하는 복수의 패턴 각각에 대한 빈도 및 가중치 정보에 기초하여 정상 패턴의 리스트를 생성하고, 생성된 정상 패턴의 리스트를 포함하도록 정책 정보를 수정하는 서버.
  11. 제8항에 있어서,
    상기 통신부는,
    복수의 전자장치 각각으로부터 장치 정보를 수신하고,
    상기 프로세서는,
    상기 수신된 장치 정보에 기초하여 상기 복수의 전자장치를 복수의 타입으로 구분하고, 동일 타입 내의 복수의 장치에 동일한 정책 정보를 제공하는 서버.
  12. 제11항에 있어서,
    상기 장치 정보는,
    국가 정보, 소프트웨어 모델 정보, 연결 장치 정보 중 적어도 하나를 포함하는 서버.
  13. 제11항에 있어서,
    상기 복수의 타입 및 상기 복수의 타입 각각에 대응되는 전자장치의 정보를 갖는 테이블을 저장하는 메모리; 및
    상기 복수의 타입별 샘플링 개수에 대한 정보를 입력받는 조작 입력부;를 더 포함하고,
    상기 프로세서는,
    전자장치로부터 장치 정보를 수신하면, 상기 수신된 장치 정보에 대응하는 타입을 확인하고, 상기 확인된 타입 내의 샘플링 개수 및 상기 메모리에 저장된 테이블에 기초하여 선택적으로 상기 전자장치의 정보를 상기 테이블에 추가하는 서버.
  14. 전자장치의 제어 방법에 있어서,
    타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 단계; 및
    복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 단계; 포함하는 제어 방법.
  15. 제14항에 있어서,
    상기 정책 정보는,
    복수의 타겟 정보를 포함하고,
    상기 판단하는 단계는,
    상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단하는 제어 방법.
PCT/KR2018/011807 2017-11-09 2018-10-08 서버, 전자장치 및 그의 제어방법 WO2019093658A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/754,322 US11216328B2 (en) 2017-11-09 2018-10-08 Server, electronic device, and control method thereof
EP18875347.9A EP3671463A4 (en) 2017-11-09 2018-10-08 SERVER, ELECTRONIC DEVICE AND ASSOCIATED CONTROL PROCESS

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0148862 2017-11-09
KR1020170148862A KR102481797B1 (ko) 2017-11-09 2017-11-09 서버, 전자장치 및 그의 제어방법

Publications (1)

Publication Number Publication Date
WO2019093658A1 true WO2019093658A1 (ko) 2019-05-16

Family

ID=66438557

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/011807 WO2019093658A1 (ko) 2017-11-09 2018-10-08 서버, 전자장치 및 그의 제어방법

Country Status (4)

Country Link
US (1) US11216328B2 (ko)
EP (1) EP3671463A4 (ko)
KR (1) KR102481797B1 (ko)
WO (1) WO2019093658A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112890823B (zh) * 2021-01-22 2023-10-13 深圳市润谊泰益科技有限责任公司 生理数据采集方法、系统及存储介质
KR102338425B1 (ko) * 2021-09-28 2021-12-10 (주)제너럴데이타 인공지능 기반 모니터링 대상 서버의 어플리케이션 자동 설정 및 모니터링 방법, 장치 및 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100114607A (ko) * 2009-04-16 2010-10-26 주식회사 엘지유플러스 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법
US20130232540A1 (en) * 2012-03-02 2013-09-05 Hassen Saidi Method and system for application-based policy monitoring and enforcement on a mobile device
KR20140070203A (ko) * 2012-11-30 2014-06-10 한국전자통신연구원 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법
KR20160018474A (ko) * 2013-03-29 2016-02-17 사이트릭스 시스템스, 인크. 모바일 디바이스 관리 기능 제공
KR101685299B1 (ko) * 2015-07-30 2016-12-09 한국과학기술원 비결정적인 이벤트 처리가 가능한 프로그램의 자동 테스트 방법 및 자동 테스트 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2978803B2 (ja) 1996-12-26 1999-11-15 日本電気ソフトウェア株式会社 通信エラーログの採取方式
KR20050063023A (ko) 2003-12-19 2005-06-28 한국전자통신연구원 제이티에이지를 이용한 임베디드 시스템의 디버깅 장치 및방법
KR20060033550A (ko) 2004-10-15 2006-04-19 엘지전자 주식회사 웹 서버를 이용한 교환기의 장애 처리 장치 및 그 방법
JP2007257085A (ja) 2006-03-20 2007-10-04 Ricoh Co Ltd 機器遠隔監視システム
JP2011090512A (ja) 2009-10-22 2011-05-06 Fujitsu Ltd 監視装置、監視方法及び監視プログラム
WO2012025994A1 (ja) 2010-08-24 2012-03-01 富士通株式会社 システム制御装置、ログ制御方法および情報処理装置
JP5579650B2 (ja) * 2011-04-28 2014-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 監視対象プロセスを実行する装置及び方法
KR101527774B1 (ko) 2014-01-17 2015-06-10 애니포인트 미디어 그룹 타게팅 정보 제공 장치 및 방법
KR101561233B1 (ko) 2014-04-07 2015-10-19 주식회사 모코플렉스 사용자 단말 타겟팅 시스템 및 방법
US9558060B1 (en) * 2014-08-22 2017-01-31 Sprint Communications Company L.P. End use self-help delivery system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100114607A (ko) * 2009-04-16 2010-10-26 주식회사 엘지유플러스 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법
US20130232540A1 (en) * 2012-03-02 2013-09-05 Hassen Saidi Method and system for application-based policy monitoring and enforcement on a mobile device
KR20140070203A (ko) * 2012-11-30 2014-06-10 한국전자통신연구원 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법
KR20160018474A (ko) * 2013-03-29 2016-02-17 사이트릭스 시스템스, 인크. 모바일 디바이스 관리 기능 제공
KR101685299B1 (ko) * 2015-07-30 2016-12-09 한국과학기술원 비결정적인 이벤트 처리가 가능한 프로그램의 자동 테스트 방법 및 자동 테스트 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3671463A4 *

Also Published As

Publication number Publication date
US20200334096A1 (en) 2020-10-22
US11216328B2 (en) 2022-01-04
EP3671463A4 (en) 2020-12-02
KR102481797B1 (ko) 2022-12-28
KR20190052965A (ko) 2019-05-17
EP3671463A1 (en) 2020-06-24

Similar Documents

Publication Publication Date Title
WO2017119683A1 (en) Display system, display apparatus, and controlling method thereof
WO2019074260A1 (en) REMOTE CONTROL, DISPLAY APPARATUS, SYSTEM AND METHOD FOR CONTROLLING THE SAME
WO2013048154A2 (en) Group-wise device management system and method
WO2019059596A1 (ko) 전자 장치의 소프트웨어의 업데이트를 관리하기 위한 장치 및 방법
WO2016208841A1 (en) Node terminal apparatus, display apparatus, peripheral device management system including node terminal apparatus and display apparatus, and method thereof
WO2015156640A1 (en) Method and device for controlling security screen in electronic device
WO2014189275A1 (en) Apparatus and method of recognizing external device in a communication system
WO2017090931A1 (ko) 이벤트 관리 서비스를 제공하는 전자 장치 및 방법
WO2021145597A1 (en) Electronic device and operating method thereof
WO2014077458A1 (ko) 통신망의 종류를 구분하는 방법 및 이를 이용한 콘텐츠 제공 방법
WO2017082608A1 (en) Wireless device and communication connection method with external device
WO2019093658A1 (ko) 서버, 전자장치 및 그의 제어방법
WO2021187818A1 (ko) 전자 장치 및 전자 장치의 테마를 부분적으로 운용하는 방법
WO2017034178A1 (ko) 디스플레이 장치 및 그 제어 방법
WO2018110956A1 (en) Display apparatus presenting status of external electronic apparatus and controlling method thereof
EP3129910A1 (en) Method and device for controlling security screen in electronic device
WO2023149647A1 (ko) 전자 장치 및 이의 동작 방법
WO2016129965A1 (ko) 기지국 연동 노드를 통한 스트리밍 데이터 제공 방법, 이를 위한 기지국 연동 노드
WO2019194427A1 (ko) 외부 전자 장치의 키와 관련된 어플리케이션을 관리하는 전자 장치 및 전자 장치의 동작 방법
WO2019164168A1 (ko) 블루투스 통신을 사용하는 전자 장치와 이의 동작 방법
WO2019059492A1 (en) ELECTRONIC APPARATUS, ITS CONTROL METHOD AND COMPUTER-READABLE RECORDING MEDIUM
WO2018110840A1 (ko) 전자 장치 및 그의 알림 서비스 제공 방법
WO2021182761A1 (ko) 적어도 하나의 장치를 관리하는 방법 및 전자 장치
WO2017065522A1 (en) Display apparatus and the controlling method thereof
WO2021112414A1 (en) Method and device for reproducing content of mobile device on display device

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: 18875347

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018875347

Country of ref document: EP

Effective date: 20200320

NENP Non-entry into the national phase

Ref country code: DE