KR102481797B1 - 서버, 전자장치 및 그의 제어방법 - Google Patents
서버, 전자장치 및 그의 제어방법 Download PDFInfo
- Publication number
- KR102481797B1 KR102481797B1 KR1020170148862A KR20170148862A KR102481797B1 KR 102481797 B1 KR102481797 B1 KR 102481797B1 KR 1020170148862 A KR1020170148862 A KR 1020170148862A KR 20170148862 A KR20170148862 A KR 20170148862A KR 102481797 B1 KR102481797 B1 KR 102481797B1
- Authority
- KR
- South Korea
- Prior art keywords
- information
- program code
- electronic device
- server
- normal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0736—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0748—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring 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/3082—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
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 Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
전자장치가 개시된다. 본 전자장치전자장치 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 저장하는 메모리, 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 통신부 및 프로그램을 이용하여 기설정된 기능을 수행하고, 기설정된 기능 수행 중에 타겟 정보에 대응되는 프로그램 코드가 실행되면 프로그램 코드의 실행 결과와 판단 정보를 비교하여 프로그램 코드에 대한 정상 동작 여부를 판단하는 프로세서를 포함한다.
Description
본 개시는 서버, 전자장치 및 그의 제어방법에 관한 것으로, 더욱 상세하게는 오류 및 오작동을 자동으로 탐지할 수 이는 서버, 전자장치 및 그의 제어방법에 대한 것이다.
기술의 발전에 따라 디지털 기기의 기능은 복잡해지고 다양해졌다. 제조회사가 개방된 애플리케이션 플랫폼을 제공함에 따라 수많은 회사가 개발에 참여하고 독자적인 서비스를 제공하려고 노력하고 있다.
이러한 변화에 따라 디지털기기의 초기 개발단계에서 예측 불가능한 동작들이 일어나게 되고 이러한 동작들이 문제의 원인이 되기도 하였다.
종래엔 디지털 기기 개발단계에서 문제 발생 보고가 될 경우 동일한 문제를 재현시키고 이에 따라 콘솔을 통한 실시간 디버깅 정보를 활용하여 문제를 해결했다. 하지만, 문제가 재현되지 않거나 재현 방법이 정확하지 않을 경우에는 문제 해결이 현실적으로 불가능하였다.
그리고 제품이 소비자에게 공급된 이후에 발생하는 문제들은 대부분 외부 환경이 개발단계와 상이하여 문제를 재현하기가 쉽지 않으며, 발생되는 문제를 확인하기 위해 개발자들이 해당 장소를 방문해도 특정 시점에만 발생하는 문제의 경우 실시간으로 디버깅 정보를 얻는 것은 불가능하였다. 디버깅 정보를 얻더라도 개발자가 직접 해당 정보를 일일이 확인해야 하기에 디버깅 시간이 오래 걸렸다. 또한, 문제가 재현이 되더라도 재현하는데 걸린 시간, 개발자가 특정 장소에 직접 방문하기까지 많은 비용이 발생하게 된다
이와 같이 기존의 방식으로는 디버깅 정보를 얻어오는 것이 제한적이고 많은 비용이 발생하여 새로운 방식의 디버깅 정보기록 방법이 필요하게 되었다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 오류 및 오작동을 자동으로 탐지할 수 이는 서버, 전자장치 및 그의 제어방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자장치는, 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 저장하는 메모리, 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 통신부 및 상기 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 프로세서를 포함한다.
이 경우, 상기 정책 정보는, 복수의 타겟 정보를 포함하고, 상기 프로세서는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단할 수 있다.
이 경우, 상기 프로세서는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
한편, 상기 판단 정보는, 상기 프로그램 코드의 정상 결과에 대한 정보, 정상 소요 시간 정보, 상기 프로그램 코드의 정상 파라미터 정보 중 적어도 하나를 포함할 수 있다.
한편, 상기 프로세서는, 상기 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 상기 통신부를 제어할 수 있다.
한편, 상기 프로세서는, 상기 프로그램 코드에 대한 비정상 동작이 판단되는 경우에만 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 상기 통신부를 제어할 수 있다.
한편, 상기 정책 정보는, 결과 통지 방식에 대한 정보를 포함하고, 상기 프로세서는, 상기 결과 통지 방식에 대한 정보에 기초하여 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하도록 상기 통신부를 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따른 서버는, 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램의 검증을 위한 정책 정보를 전자장치에 제공하고, 상기 정책 정보에 대응한 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 전자장치로부터 수신하는 통신부 및 상기 수신한 판단 결과 정보에 기초하여 기저장된 패턴 테이블을 갱신하고, 상기 갱신된 패턴 테이블에 기초하여 상기 정책 정보를 수정하는 프로세서를 포함하고, 상기 프로세서는, 상기 정책 정보가 수정되면 상기 수정된 정책 정보가 상기 전자장치에 제공되도록 상기 통신부를 제어할 수 있다.
이 경우, 상기 프로세서는, 상기 수신한 판단 결과 정보에 대응되는 패턴이 상기 기저장된 패턴 테이블 내에 속하지 않으면 사용자에게 상기 패턴에 대한 정보를 제공하고, 상기 패턴에 대한 정보의 제공에 대응하여 상기 패턴에 대한 가중치 정보를 입력받으면 상기 입력된 가중치 정보 및 상기 패턴을 이용하여 상기 기저장된 패턴 테이블을 갱신할 수 있다.
이 경우, 상기 프로세서는, 상기 갱신된 패턴 테이블을 구성하는 복수의 패턴 각각에 대한 빈도 및 가중치 정보에 기초하여 정상 패턴의 리스트를 생성하고, 생성된 정상 패턴의 리스트를 포함하도록 정책 정보를 수정할 수 있다.
한편, 상기 통신부는, 복수의 전자장치 각각으로부터 장치 정보를 수신하고, 상기 프로세서는, 상기 수신된 장치 정보에 기초하여 상기 복수의 전자장치를 복수의 타입으로 구분하고, 동일 타입 내의 복수의 장치에 동일한 정책 정보를 제공할 수 있다.
이 경우, 상기 장치 정보는, 국가 정보, 소프트웨어 모델 정보, 연결 장치 정보 중 적어도 하나를 포함할 수 있다.
한편, 본 실시 예에 따른 서버는 상기 복수의 타입 및 상기 복수의 타입 각각에 대응되는 전자장치의 정보를 갖는 테이블을 저장하는 메모리 및 상기 복수의 타입별 샘플링 개수에 대한 정보를 입력받는 조작 입력부를 더 포함하고, 상기 프로세서는, 전자장치로부터 장치 정보를 수신하면, 상기 수신된 장치 정보에 대응하는 타입을 확인하고, 상기 확인된 타입 내의 샘플링 개수 및 상기 메모리에 저장된 테이블에 기초하여 선택적으로 상기 전자장치의 정보를 상기 테이블에 추가할 수 있다.
본 개시의 일 실시 예에 따른 전자장치의 제어 방법은, 타겟 정보 및 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 단계 및 복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 단계 포함한다.
이 경우, 상기 정책 정보는, 복수의 타겟 정보를 포함하고, 상기 판단하는 단계는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단할 수 있다.
이 경우, 상기 판단하는 단계는, 상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단할 수 있다.
한편, 상기 판단 정보는, 상기 프로그램 코드의 정상 결과에 대한 정보, 정상 소요 시간 정보, 상기 프로그램 코드의 정상 파라미터 정보 중 적어도 하나를 포함할 수 있다.
한편, 본 실시 예에 따른 제어 방법은 상기 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하는 단계를 더 포함할 수 있다.
한편, 본 실시 예에 따른 제어 방법은 상기 프로그램 코드에 대한 비정상 동작이 판단되는 경우에만 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하는 단계를 더 포함할 수 있다.
한편, 상기 정책 정보는, 결과 통지 방식에 대한 정보를 포함하고, 상기 제어 방법은, 상기 결과 통지 방식에 대한 정보에 기초하여 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하는 단계를 더 포함할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 관리 시스템을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블럭도,
도 3은 본 개시의 일 실시 예에 따른 전자장치의 구성을 설명하기 위한 블럭도,
도 4는 본 개시의 일 실시 예에 따른 정책 정보 제공 방법을 설명하기 위한 흐름도,
도 5는 본 개시의 일 실시 예에 따른 오류 자동 탐지 방법을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 정책 정보 갱신 방법을 설명하기 위한 도면,
도 7은 본 개시의 또 다른 실시 예에 따른 전자장치의 구성을 설명하기 위한 블럭도,
도 8은 본 개시의 일 실시 예에 따른 전자장치의 제어방법을 설명하기 위한 흐름도, 그리고
도 9는 본 개시의 일 실시 예에 따른 서버의 제어방법을 설명하기 위한 흐름도이다.
도 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은 장치 정보에 따라 구분된 복수의 타입의 일 예를 도시한 것이다. 연결 여부는 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)로 장치 정보를 전송할 수 있다. 장치 정보는 상술하였듯이 국가 정보, 소프트웨어 모델 정보, 연결 장치 정보 등과 같이 소프트웨어의 동작에 영향을 줄 수 있는 요소를 포함할 수 있다.
프로세서(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 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 전자장치
200: 서버
200: 서버
Claims (20)
- 전자장치에 있어서,
복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 저장하는 메모리;
모니터링 대상이 되는 프로그램 코드를 나타내는 타겟 정보 및 상기 모니터링 대상이 되는 프로그램 코드의 실행 결과가 정상 동작에 대응되는지 판단하기 위한 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 통신부; 및
상기 프로그램을 이용하여 상기 기설정된 기능을 수행하고,
상기 기설정된 기능 수행 중에 상기 외부 서버로부터 수신된 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 외부 서버로부터 수신된 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하고,
상기 프로그램 코드에 대한 비정상 동작이 판단되는 경우, 상기 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 상기 통신부를 제어하는 프로세서;를 포함하는 전자장치. - 제1항에 있어서,
상기 정책 정보는,
복수의 타겟 정보를 포함하고,
상기 프로세서는,
상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단하는 전자장치. - 제2항에 있어서,
상기 프로세서는,
상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단하는 전자장치. - 제1항에 있어서,
상기 판단 정보는,
상기 프로그램 코드의 정상 결과에 대한 정보, 정상 소요 시간 정보, 상기 프로그램 코드의 정상 파라미터 정보 중 적어도 하나를 포함하는 전자장치. - 삭제
- 삭제
- 제1항에 있어서,
상기 정책 정보는,
결과 통지 방식에 대한 정보를 포함하고,
상기 프로세서는,
상기 결과 통지 방식에 대한 정보에 기초하여 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하도록 상기 통신부를 제어하는 전자장치. - 서버에 있어서,
복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램의 검증을 위하여 모니터링 대상이 되는 프로그램 코드를 나타내는 타겟 정보 및 상기 모니터링 대상이 되는 프로그램 코드의 실행 결과가 정상 동작에 따른 것인지 여부를 나타내는 판단 정보를 포함하는 정책 정보를 전자장치에 제공하고, 상기 정책 정보에 포함된 상기 타겟 정보와 상기 판단 정보에 기초하여 상기 정책 정보에 대응한 프로그램 코드의 정상 동작 여부에 대한 판단 결과 정보를 상기 전자장치로부터 수신하는 통신부; 및
상기 수신한 판단 결과 정보에 기초하여 복수의 프로그램 코드들의 패턴을 포함하는 기저장된 패턴 테이블을 갱신하고, 상기 갱신된 패턴 테이블에 기초하여 상기 정책 정보를 수정하는 프로세서;를 포함하고,
상기 프로세서는,
상기 정책 정보가 수정되면 상기 수정된 정책 정보가 상기 전자장치에 제공되도록 상기 통신부를 제어하는 서버. - 제8항에 있어서,
상기 프로세서는,
상기 수신한 판단 결과 정보에 대응되는 패턴이 상기 기저장된 패턴 테이블 내에 속하지 않으면 사용자에게 상기 패턴에 대한 정보를 제공하고, 상기 패턴에 대한 정보의 제공에 대응하여 상기 패턴에 대한 가중치 정보를 입력받으면 상기 입력된 가중치 정보 및 상기 패턴을 이용하여 상기 기저장된 패턴 테이블을 갱신하는 서버. - 제9항에 있어서,
상기 프로세서는,
상기 갱신된 패턴 테이블을 구성하는 복수의 패턴 각각에 대한 빈도 및 가중치 정보에 기초하여 정상 패턴의 리스트를 생성하고, 생성된 정상 패턴의 리스트를 포함하도록 정책 정보를 수정하는 서버. - 제8항에 있어서,
상기 통신부는,
복수의 전자장치 각각으로부터 장치 정보를 수신하고,
상기 프로세서는,
상기 수신된 장치 정보에 기초하여 상기 복수의 전자장치를 복수의 타입으로 구분하고, 동일 타입 내의 복수의 장치에 동일한 정책 정보를 제공하는 서버. - 제11항에 있어서,
상기 장치 정보는,
국가 정보, 소프트웨어 모델 정보, 연결 장치 정보 중 적어도 하나를 포함하는 서버. - 제11항에 있어서,
상기 복수의 타입 및 상기 복수의 타입 각각에 대응되는 전자장치의 정보를 갖는 테이블을 저장하는 메모리; 및
상기 복수의 타입별 샘플링 개수에 대한 정보를 입력받는 조작 입력부;를 더 포함하고,
상기 프로세서는,
전자장치로부터 장치 정보를 수신하면, 상기 수신된 장치 정보에 대응하는 타입을 확인하고, 상기 확인된 타입 내의 샘플링 개수 및 상기 메모리에 저장된 테이블에 기초하여 선택적으로 상기 전자장치의 정보를 상기 테이블에 추가하는 서버. - 전자장치의 제어 방법에 있어서,
모니터링 대상이 되는 프로그램 코드를 나타내는 타겟 정보 및 상기 모니터링 대상이 되는 프로그램 코드의 실행 결과가 정상 동작에 대응되는지 판단하기 위한 판단 정보를 포함하는 정책 정보를 외부 서버로부터 수신하는 단계; 및
복수의 프로그램 코드로 구성되고 기설정된 기능을 수행하는 프로그램을 이용하여 상기 기설정된 기능을 수행하고, 상기 기설정된 기능 수행 중에 상기 외부 서버로부터 수신된 타겟 정보에 대응되는 프로그램 코드가 실행되면 상기 프로그램 코드의 실행 결과와 상기 외부 서버로부터 수신된 판단 정보를 비교하여 상기 프로그램 코드에 대한 정상 동작 여부를 판단하는 단계; 및
상기 프로그램 코드에 대한 비정상 동작이 판단되는 경우, 상기 정상 동작 여부에 대한 판단 결과 정보를 상기 외부 서버로 전송하도록 통신부를 제어하는 단계;를 포함하는 제어 방법. - 제14항에 있어서,
상기 정책 정보는,
복수의 타겟 정보를 포함하고,
상기 판단하는 단계는,
상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드 각각에 대한 정상 동작 여부를 판단하는 제어 방법. - 제15항에 있어서,
상기 판단하는 단계는,
상기 복수의 타겟 정보에 대응되는 복수의 프로그램 코드의 실행 순서와 상기 판단 정보를 비교하여 상기 복수의 프로그램 코드에 대한 정상 동작 여부를 판단하는 제어 방법. - 제14항에 있어서,
상기 판단 정보는,
상기 프로그램 코드의 정상 결과에 대한 정보, 정상 소요 시간 정보, 상기 프로그램 코드의 정상 파라미터 정보 중 적어도 하나를 포함하는 제어 방법. - 삭제
- 삭제
- 제14항에 있어서,
상기 정책 정보는,
결과 통지 방식에 대한 정보를 포함하고,
상기 제어 방법은,
상기 결과 통지 방식에 대한 정보에 기초하여 선택적으로, 비정상 동작이 판단되는 경우 및 정상 동작이 판단되는 경우의 판단 결과 정보를 모두 전송하거나, 비정상 동작이 판단되는 경우에만 판단 결과 정보를 전송하는 단계;를 더 포함하는 제어 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170148862A KR102481797B1 (ko) | 2017-11-09 | 2017-11-09 | 서버, 전자장치 및 그의 제어방법 |
PCT/KR2018/011807 WO2019093658A1 (ko) | 2017-11-09 | 2018-10-08 | 서버, 전자장치 및 그의 제어방법 |
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 (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170148862A KR102481797B1 (ko) | 2017-11-09 | 2017-11-09 | 서버, 전자장치 및 그의 제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190052965A KR20190052965A (ko) | 2019-05-17 |
KR102481797B1 true KR102481797B1 (ko) | 2022-12-28 |
Family
ID=66438557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170148862A KR102481797B1 (ko) | 2017-11-09 | 2017-11-09 | 서버, 전자장치 및 그의 제어방법 |
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)
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110099273A1 (en) | 2009-10-22 | 2011-04-28 | Fujitsu Limited | Monitoring apparatus, monitoring method, and a computer-readable recording medium storing a monitoring program |
US20120278478A1 (en) * | 2011-04-28 | 2012-11-01 | International Business Machines Corporation | Method and system for monitoring a monitoring-target process |
US20140157427A1 (en) | 2012-11-30 | 2014-06-05 | Electronics And Telecommunications Research Institute | Apparatus and method for verifying integrity of firmware of embedded system |
KR101685299B1 (ko) * | 2015-07-30 | 2016-12-09 | 한국과학기술원 | 비결정적인 이벤트 처리가 가능한 프로그램의 자동 테스트 방법 및 자동 테스트 장치 |
Family Cites Families (11)
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 | 機器遠隔監視システム |
KR101596503B1 (ko) | 2009-04-16 | 2016-02-22 | 주식회사 엘지유플러스 | 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법 |
WO2012025994A1 (ja) | 2010-08-24 | 2012-03-01 | 富士通株式会社 | システム制御装置、ログ制御方法および情報処理装置 |
US8844032B2 (en) * | 2012-03-02 | 2014-09-23 | Sri International | Method and system for application-based policy monitoring and enforcement on a mobile device |
US9455886B2 (en) | 2013-03-29 | 2016-09-27 | Citrix Systems, Inc. | Providing mobile device management functionalities |
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 |
-
2017
- 2017-11-09 KR KR1020170148862A patent/KR102481797B1/ko not_active Application Discontinuation
-
2018
- 2018-10-08 WO PCT/KR2018/011807 patent/WO2019093658A1/ko unknown
- 2018-10-08 EP EP18875347.9A patent/EP3671463A4/en active Pending
- 2018-10-08 US US16/754,322 patent/US11216328B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110099273A1 (en) | 2009-10-22 | 2011-04-28 | Fujitsu Limited | Monitoring apparatus, monitoring method, and a computer-readable recording medium storing a monitoring program |
US20120278478A1 (en) * | 2011-04-28 | 2012-11-01 | International Business Machines Corporation | Method and system for monitoring a monitoring-target process |
US20140157427A1 (en) | 2012-11-30 | 2014-06-05 | Electronics And Telecommunications Research Institute | Apparatus and method for verifying integrity of firmware of embedded system |
KR101685299B1 (ko) * | 2015-07-30 | 2016-12-09 | 한국과학기술원 | 비결정적인 이벤트 처리가 가능한 프로그램의 자동 테스트 방법 및 자동 테스트 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP3671463A1 (en) | 2020-06-24 |
KR20190052965A (ko) | 2019-05-17 |
EP3671463A4 (en) | 2020-12-02 |
US20200334096A1 (en) | 2020-10-22 |
US11216328B2 (en) | 2022-01-04 |
WO2019093658A1 (ko) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454436B2 (en) | Electronic device and firmware upgrading method thereof | |
JP5946973B2 (ja) | テレビ局ロゴ識別方法、装置、テレビ、システム、プログラム及び記録媒体 | |
US11044352B2 (en) | Adaptive multi-protocol control of a media device | |
US20120266157A1 (en) | Broadcast receiving apparatus and method of installing service | |
US11082737B2 (en) | Display device, display system and method for controlling display device | |
US20150304336A1 (en) | Multi-screen interaction method of multimedia resource and terminal device | |
CN108055584A (zh) | 电视机的信号自适应显示方法、电视机及存储介质 | |
US9041863B2 (en) | Electronic device and method for displaying resources | |
KR102552286B1 (ko) | 영상 표시 장치 및 그 동작 방법 | |
CN103369404A (zh) | 显示设备以及控制和升级显示设备的方法 | |
US20150106847A1 (en) | Content providing apparatus, system, and method for recommending contents | |
US11010213B2 (en) | Electronic device and method for providing event management service | |
US11720370B2 (en) | Electronic apparatus and method of executing application program | |
US11445171B2 (en) | Display apparatus and method of controlling the same | |
KR102481797B1 (ko) | 서버, 전자장치 및 그의 제어방법 | |
JP2013247580A (ja) | 電子機器、電子機器システム、及び電子機器制御方法 | |
US9715821B2 (en) | System and method for managing device controls | |
KR102503466B1 (ko) | 전자 장치 및 그의 제어방법 | |
US10104450B2 (en) | Method and device for controlling implementation of application and recording medium thereof | |
US9307204B1 (en) | Enhancement of media sink compatibility | |
US11256560B2 (en) | Scalable automated detection of functional behavior | |
US10349121B2 (en) | Broadcast receiving apparatus and information providing method thereof | |
US20110145866A1 (en) | Method and apparatus for selecting video channel, video device and tv device | |
KR20130079116A (ko) | 디스플레이장치, 업그레이드장치, 디스플레이 시스템 및 그 제어방법 | |
US20140184395A1 (en) | Communication device and communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal |