KR20180075073A - 사물인터넷 프레임워크 및 이의 운영 방법 - Google Patents

사물인터넷 프레임워크 및 이의 운영 방법 Download PDF

Info

Publication number
KR20180075073A
KR20180075073A KR1020160178987A KR20160178987A KR20180075073A KR 20180075073 A KR20180075073 A KR 20180075073A KR 1020160178987 A KR1020160178987 A KR 1020160178987A KR 20160178987 A KR20160178987 A KR 20160178987A KR 20180075073 A KR20180075073 A KR 20180075073A
Authority
KR
South Korea
Prior art keywords
test
server
information
test device
virtual machine
Prior art date
Application number
KR1020160178987A
Other languages
English (en)
Inventor
김양수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160178987A priority Critical patent/KR20180075073A/ko
Priority to US15/815,903 priority patent/US20180181456A1/en
Publication of KR20180075073A publication Critical patent/KR20180075073A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server 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/0766Error or fault reporting or storing
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

사물인터넷 프레임워크의 운영 방법은, 제1 테스트 서버와 제1 테스트 장치 그룹을 포함하는 제1 테스트 시스템, 제2 테스트 서버와 제2 테스트 장치 그룹을 포함하는 제2 테스트 시스템 및 메인 서버를 포함하고, 제1 테스트 시스템, 제2 테스트 시스템 및 메인 서버가 네트워크를 통해 연결되는 사물인터넷 프레임워크에서, 제1 테스트 장치 그룹의 리소스 및 제1 테스트 서버의 리소스 중 적어도 일부를 이용하여 테스트 케이스를 수행할 가상 머신을 생성하고, 제1 테스트 장치 그룹 및 제2 테스트 장치 그룹 중에서 가상 머신과 연동되는 적어도 하나의 테스트 장치를 선택하며, 가상 머신 및 적어도 하나의 테스트 장치를 이용하여 테스트 케이스를 수행한다.

Description

사물인터넷 프레임워크 및 이의 운영 방법{INTERNET OF THINGS FRAMEWORK AND METHOD OF OPERATING THE SAME}
본 발명은 사물인터넷 프레임워크에 관한 것이다. 보다 상세하게는, 본 발명은 사물인터넷 소프트웨어 및 하드웨어를 테스트하는 사물인터넷 프레임워크 및 사물인터넷 프레임워크의 운영 방법에 관한 것이다.
사물인터넷(Internet of Things; IoT)은 사람과 사물 간 및 사물들 간을 연결하여 사용자 중심의 지능형 서비스를 제공하는 기술이다. 사물인터넷 기술의 발달에 따라 사물인터넷 제품들(예를 들어, 사물인터넷 장치 및 소프트웨어)이 다양해지고, 사물인터넷 제품들에 대한 국제 규격 및 검증 절차가 복잡해지고 있으며, 사용자들의 높은 기대치를 충족시키기 위해 사물인터넷 제품들에 대한 검증 시나리오도 다양해지고 있다. 사물인터넷 제품에 대해 복잡하고 다양한 검증을 보다 빨리 수행하기 위한 프레임워크가 제안되었으나, 프레임워크는 한정된 자원을 이용하므로 검증 시간을 단축하는데 제한이 있다.
본 발명의 일 목적은 사물인터넷 제품에 대한 검증 시간을 단축시킬 수 있는 사물인터넷 프레임워크를 제공하는 것이다.
본 발명의 다른 목적은 사물인터넷 프레임워크의 효율을 향상시킬 수 있는 사물인터넷 프레임워크의 운영 방법을 제공하는 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 사물인터넷 프레임워크는 제1 테스트 서버 및 제1 테스트 장치 그룹을 포함하고, 상기 제1 테스트 서버 및 상기 제1 테스트 장치들은 제1 로컬 네트워크를 통해 연결되는 제1 테스트 시스템; 제2 테스트 서버 및 제2 테스트 장치 그룹을 포함하고, 상기 제2 테스트 서버 및 상기 제2 테스트 장치들은 제2 로컬 네트워크를 통해 연결되는 제2 테스트 시스템; 및 네트워크를 통해 상기 제1 테스트 시스템 및 상기 제2 테스트 시스템에 연결되고, 상기 제1 및 제2 테스트 장치 그룹들에 포함된 테스트 장치들의 장치 정보를 관리하는 메인 서버를 포함할 수 있다. 여기서, 상기 제1 테스트 서버는 상기 제1 테스트 장치들의 리소스 중 적어도 일부를 이용하여 가상 머신을 생성하고, 상기 테스트 장치들의 상기 장치 정보에 기초하여 적어도 하나의 테스트 장치를 선택하며, 상기 가상 머신을 통해 상기 적어도 하나의 테스트 장치와 연동하여 테스트 케이스를 수행할 수 있다.
본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 사물인터넷 프레임워크의 운영 방법은 상기 사물인터넷 프레임워크에서 수행될 수 있다. 상기 사물인터넷 프레임워크의 운영 방법은 상기 제1 테스트 장치 그룹의 리소스 및 상기 제1 테스트 서버의 리소스 중 적어도 일부를 이용하여 테스트 케이스를 수행할 가상 머신을 생성하는 단계; 상기 제1 테스트 장치 그룹 및 상기 제2 테스트 장치 그룹 중에서 상기 가상 머신과 연동되는 적어도 하나의 테스트 장치를 선택하는 단계; 및 상기 가상 머신 및 상기 적어도 하나의 테스트 장치를 이용하여 상기 테스트 케이스를 수행하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따른 사물인터넷 프레임워크는 로컬 네트워크에 연결된 테스트 장치들뿐만 아니라 메인 서버에 연결되는 다른 지역의 테스트 장치들을 이용하여 사물인터넷 제품에 대한 테스트를 수행함으로써, 사물인터넷 제품에 대한 검증 시간을 단축시킬 수 있다.
본 발명의 실시예들에 따른 사물인터넷 프레임워크의 운영 방법은 테스트 서버의 리소스뿐만 아니라 테스트 장치의 리소스(resource)를 이용하여 테스트를 수행함으로써, 사물인터넷 프레임워크의 효율을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 사물인터넷 프레임워크를 나타내는 블록도이다.
도 2는 도 1의 사물인터넷 프레임워크에 포함된 테스트 서버의 일 예를 나타내는 블록도이다.
도 3은 도 1의 사물인터넷 프레임워크에 포함된 테스트 장치의 일 예를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 사물인터넷 프레임워크의 운영 방법을 나타내는 순서도이다.
도 5는 도 4의 방법이 테스트 장치를 검색하는 일 예를 나타내는 순서도이다.
도 6은 도 4의 방법이 테스트 장치에 가상 머신을 생성하는 일 예를 나타내는 순서도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
사물인터넷 프레임워크는 테스트 대상에 대한 테스트를 수행할 수 있다. 여기서, 테스트 대상은 사물인터넷 하드웨어 및 사물인터넷 소프트웨어를 포함하고, 사물인터넷 하드웨어는 사물인터넷을 구성하는 사물인터넷 장치, 사물인터넷 장치에 포함되는 반도체 시스템 등을 포함할 수 있다. 사물인터넷 소프트웨어는 사물인터넷 장치에서 동작하는 운영체제, 어플리케이션 등을 포함할 수 있다. 예를 들어, 테스트 대상은 사물인터넷 장치에 포함되는 시스템 온 칩(System on chip; Soc) 또는 시스템 온 칩을 구동하는 소프트웨어 일 수 있다.
사물인터넷 프레임워크는 테스트 케이스 및 테스트 장치들을 이용하여 테스트 대상에 대한 테스트를 수행할 수 있다. 여기서, 테스트 케이스는 테스트 대상에 요구되는 규격, 성능 등에 기초하여 설정되고, 테스트 절차, 테스트 내용 등을 포함할 수 있다. 예를 들어, 사물인터넷 프레임워크는 테스트 대상을 테스트 장치들 중 적어도 하나와 연동시키고, 테스트 절차와 테스트 내용에 기초하여 테스트 대상의 동작을 모니터링 할 수 있다.
예를 들어, 테스트 케이스는 상호운용성 테스트(interoperability test) 및 적합성 테스트(conformance test)를 포함할 수 있다. 상호운용성 테스트는 동일한 표준에 기초하여 개발된 다른 사물인터넷 장치들(예를 들어, 다른 제조사에서 제조된 사물인터넷 장치들) 사이의 종단간 기능을 테스트 하기 위해 시나리오 기반으로 테스트 케이스들을 정의할 수 있다. 사물인터넷 프레임워크는 표준에 정의된 일반 인터페이스를 이용하여 상호운용성 테스트를 수행하고, 사물인터넷 장치들의 정상적인 행위들(예를 들어, 정상적인 상황에서 사물인터넷 장치들의 동작)을 테스트 할 수 있다.
적합성 테스트는 사물인터넷 장치들이 요구사항(예를 들어, oneM2M 표준 문서에 명시된 요구사항)에 부합하는지 여부를 판단하기 위한 테스트 케이스들을 정의할 수 있다. 예를 들어, 적합성 테스트는 프로토콜 메시지의 상세 값, 포맷, 메시지 교환 프로시저 등의 적합성에 대한 테스트들을 포함할 수 있다. 사물인터넷 프레임워크는 일반 인터페이스와 다른 테스트 인터페이스를 이용하여 적합성 테스트를 수행하고, 사물인터넷 장치들의 정상적인 행위들뿐만 아니라 비정상적인 행위들(즉, 비정상적인 상황에서 사물인터넷 장치들의 동작)을 테스트 할 수 있다.
도 1은 본 발명의 실시예들에 따른 사물인터넷 프레임워크를 나타내는 도면이다.
도 1을 참조하면, 사물인터넷 프레임워크(100)는 메인 서버(110), 제1 테스트 시스템(FARM1) 내지 제3 테스트 시스템(FARM3)를 포함할 수 있다. 메인 서버(110)는 네트워크를 통해 제1 테스트 시스템(FARM1) 내지 제3 테스트 시스템(FARM3)에 각각 연결될 수 있다. 즉, 제1 테스트 시스템(FARM1) 내지 제3 테스트 시스템(FARM3)은 메인 서버를 통해 연결되거나 연동될 수 있다. 한편, 도 1에서 사물인터넷 프레임워크(100)는 3개의 테스트 시스템들(FARM1 내지 FARM3)을 포함하는 것으로 도시되어 있으나, 사물인터넷 프레임워크(100)가 그에 한정되는 것은 아니다. 예를 들어, 사물인터넷 프레임워크(100)는 4개 이상의 테스트 시스템들을 포함할 수 있다.
메인 서버(110)는 제1 테스트 시스템(FARM1) 내지 제3 테스트 시스템(FARM3)에 대한 관리 기능을 수행할 수 있다. 예를 들어, 메인 서버(110)는 제1 테스트 시스템(FARM1) 내지 제3 테스트 시스템(FARM3)에 포함된 테스트 장치들(D111 내지 D14N)(단, N은 3 이상의 정수) 각각의 정보를 저장하고 갱신할 수 있다.
제1 내지 제3 테스트 시스템들(FARM1 내지 FARM3) 각각은 테스트 대상에 대한 테스트를 수행하기 위해 개별적으로 구축된 시스템일 수 있다. 예를 들어, 제1 내지 제3 테스트 시스템들(FARM1 내지 FARM3)은 상호 다른 물리적 영역들에 각각 구축될 수 있다.
제1 테스트 시스템(FARM1)은 제1 테스트 서버(120-1) 및 제1 테스트 장치 그룹(130-1)을 포함할 수 있다. 제1 테스트 장치 그룹(130-1)은 N개의 테스트 장치들(D111 내지 D11N)을 포함하고, 예를 들어, 제1 내지 제N 테스트 장치들(D111 내지 D11N) 각각은 사물인터넷 장치일 수 있다. 제1 테스트 서버(120-1) 및 제1 내지 제N 테스트 장치들(D111 내지 D11N)은 물리적으로 인접하여 위치할 수 있다. 제1 테스트 서버(120-1)는 로컬 네트워크를 통해 제1 내지 제N 테스트 장치들(D111 내지 D11N)과 연결될 수 있다. 제1 테스트 서버(120-1)는 제1 테스트 장치 그룹(130-1)을 이용하여 테스트 대상에 대한 테스트를 수행할 수 있다. 예를 들어, 제1 테스트 서버(120-1)는 테스트 대상을 제1 테스트 장치 그룹(130-1) 중 적어도 일부와 연동시켜 테스트를 수행할 수 있다. 즉, 제1 테스트 서버(120-1)는 테스트 대상을 제1 내지 제N 테스트 장치들(D111 내지 D11N) 중 적어도 하나의 테스트 장치와 연동시켜 테스트를 수행할 수 있다.
유사하게, 제2 테스트 시스템(FARM2)은 제2 테스트 서버(120-2) 및 제2 테스트 장치 그룹(130-2)을 포함할 수 있다. 제2 테스트 장치 그룹(130-2)은 N개의 테스트 장치들(D121, D122 내지 D12N)을 포함할 수 있다. 제2 테스트 시스템(FARM3)은 제1 테스트 시스템(FARM1)과 물리적으로 다른 영역에 위치할 수 있다. 제2 테스트 서버(120-2)는 로컬 네트워크를 통해 제21 내지 제2N 테스트 장치들(D121 내지 D12N)과 연결될 수 있다. 제2 테스트 서버(120-2)는 제2 테스트 장치 그룹(130-2)을 이용하여 테스트 대상에 대한 테스트를 수행할 수 있다.
제3 테스트 시스템(FARM3)은 제3 테스트 서버(120-3) 및 제3 테스트 장치 그룹(130-3)을 포함할 수 있다. 제3 테스트 장치 그룹(130-3)은 N개의 테스트 장치들(D131, D132 내지 D13N)을 포함할 수 있다. 또한, 제3 테스트 시스템(FARM3)은 제4 테스트 서버(120-4) 및 제4 테스트 장치 그룹(130-4)을 포함할 수 있다.
실시예들에서, 제1 테스트 서버(120-1)는 제1 테스트 서버(120-1)의 리소스 및 제1 테스트 장치 그룹(130-1)의 리소스 중 적어도 일부를 이용하여 가상 머신을 생성하고, 제1 및 제2 테스트 장치 그룹들(130-1, 130-2)에 포함된 제1 내지 제N 테스트 장치들(D111 내지 D11N)의 장치 정보와 제21 내지 제2N 테스트 장치들(D121 내지 D12N)의 장치 정보에 기초하여 적어도 하나의 테스트 장치(예를 들어, 제1 테스트 장치(D111))를 선택하며, 가상 머신을 통해 선택된 적어도 하나의 테스트 장치와 연동하여 테스트 케이스를 수행할 수 있다. 여기서, 리소스는 중앙 처리 장치(CPU), 메모리 등을 포함할 수 있다. 가상 머신은 실제 테스트 대상에 비해 용이하게 구현될 수 있고, 테스트 과정의 실시간 모니터링, 모니터링 결과 저장 등이 제공하므로, 테스트는 가상 머신 내에서 수행될 수 있다.
즉, 제1 테스트 서버(120-1)는 제1 테스트 서버(120-1)의 리소스뿐만 아니라 제1 테스트 장치 그룹(130-1)의 리소스를 이용하여 가상 머신을 생성하고, 제1 테스트 시스템(FRAM1)뿐만 아니라 제2 테스트 시스템(FARM2)을 이용하여 테스트를 수행할 수 있다. 따라서, 사물인터넷 프레임워크(100)는, 제1 테스트 서버(120-1)의 리소스 부족, 테스트 장치의 매칭 지연 등으로 인한 테스트 지연을 최소화할 수 있다.
도 2는 도 1의 사물인터넷 프레임워크에 포함된 테스트 서버의 일 예를 나타내는 도면이다.
도 2를 참조하면, 테스트 서버(120)는 장치 관리부(210), 제어 관리부(220) 및 서비스 관리부(230)를 포함할 수 있다. 여기서, 테스트 서버(120)는 도 1에 도시된 제1 내지 제4 테스트 서버들(120-1 내지 120-4)과 실질적으로 동일할 수 있다.
장치 관리부(210)는 테스트 장치 관리, 사용자 관리, 테스트 장치 모니터링, 테스트 장치 검색 등의 기능을 수행할 수 있다.
장치 관리부(210)는 테스트 장치 제공자(또는, 제조자)로부터 테스트 장치(130)에 대한 장치 정보를 수신하고, 테스트 장치(130)를 등록할 수 있다. 여기서, 테스트 장치(130)는 도 1에 도시된 제1 내지 제N 테스트 장치들(D111 내지 D11N), 제21 내지 제2N 테스트 장치들(D121 내지 D12N), 제31 내지 제3N 테스트 장치들(D131 내지 D13N) 및 제41 내지 제4N 테스트 장치들(D141 내지 D14N)과 실질적으로 동일하거나 유사할 수 있다. 장치 정보는 테스트 장치(130)의 식별자(identity), 명칭, 모델명, 제조사, 위치 정보, 장치 상태 정보 등을 포함할 수 있다. 또한, 장치 정보는 테스트 장치(130)와의 연결에 사용되는 주소(예를 들어, IP 주소)를 포함할 수 있다.
장치 관리부(210)는 테스트 장치(130)의 장치 정보를 사용자(USER)(또는, 사물인터넷 브라우저 등)에 제공하고, 사용자(USER)가 테스트 장치(130)를 검색하거나 조회할 수 있도록 할 수 있다. 유사하게, 장치 관리부(210)는 테스트 장치(130)에 관한 정보를 메인 서버(110)에 제공하고, 메인 서버(110) 또는 다른 테스트 서버가 테스트 장치(130)를 검색하거나 조회할 수 있도록 할 수 있다.
장치 관리부(210)는 메인 서버(110)에 접근하는 사용자(USER)에 대한 인증을 수행할 수 있다. 예를 들어, 장치 관리부(210)는 사용자 인증에 필요한 사용자(USER)의 ID, PW, 전화번호 등의 사용자 정보를 포함할 수 있다. 또한, 장치 관리부(210)는 사물인터넷 프레임워크(예를 들어, 테스트 장치)에서 사용되는 어플리케이션을 등록하거나 다운로드 하기 위해 서비스 관리부(230)에 접근하는 사용자(USER)에 대한 인증을 수행할 수 있다.
장치 관리부(210)는 테스트 장치(130)의 상태를 모니터링 할 수 있다. 예를 들어, 장치 관리부(210)는 테스트 장치(130)의 동작 상태를 모니터링 하여 테스트 장치(130)의 동작 상태를 동작 상태 또는 미동작 상태로 구분하며, 테스트 장치(130)의 동작 상태를 나타내는 상태 정보를 테스트 장치(130)의 장치 정보에 포함하여 저장할 수 있다. 장치 관리부(210)는 테스트 장치(130)의 상태 변화에 따라 상태 정보를 갱신할 수 있다.
제어 관리부(220)는 테스트 서버(120)의 리소스를 이용하여 가상 머신을 생성하고, 테스트 장치(130)와 통신하여 테스트 케이스에 따라 가상 머신에서 출력되는 제어 명령을 테스트 장치(130)에 제공할 수 있다. 또한, 제어 관리부(220)는 테스트 장치(130)로부터 데이터(예를 들어, 센싱 데이터)를 수집하고, 수집된 데이터를 처리할 수 있다.
제어 관리부(220)는 테스트 장치(130)의 로그, 테스트 케이스에 따른 시나리오 등을 저장하고, 테스트 도중에 발생한 에러 상태를 유지할 수 있다.
서비스 관리부(230)는 테스트 장치(130)를 위한 어플리케이션(APP)을 저장할 수 있다. 예를 들어, 서비스 관리부(130)는 개발자에 의해 개발된 어플리케이션(APP)을 저장할 수 있다. 서비스 관리부(230)는 테스트 장치(130) 및 사용자(USER) 중 적어도 하나에 어플리케이션 검색 기능을 제공할 수 있다. 예를 들어, 서비스 관리부(230)는 테스트 장치(130)의 ID에 기초하여 테스트 장치(130)의 기능을 이용할 수 있는 어플리케이션을 검색하고, 검색된 어플리케이션(APP)에 대한 리스트를 테스트 장치(130)에 제공할 수 있다.
한편, 상기에서는 장치 관리부(210), 제어 관리부(220) 및 서비스 관리부(230)로 명명되었으나, 장치 관리부(210), 제어 관리부(220) 및 서비스 관리부(230)가 그 명칭에 의해 한정되는 것은 아니다. 예를 들어, 장치 관리부(210)는, 소프트웨어 플랫폼, 라이브러리, 소프트웨어 솔루션, 소프트웨어 패키지, 소프트웨어 프레임워크, 소프트웨어 등 다양한 형태로 구현될 수 있다.
도 2를 참조하여 설명한 바와 같이, 테스트 서버(120)는 테스트 장치(130)의 장치 정보를 저장하고, 테스트 장치(130)에 대한 검색 기능을 제공할 수 있다. 또한, 테스트 서버(120)는 가상 머신을 생성하고 제어 명령을 테스트 장치(130)에 제공하며, 테스트 장치(130)에서 생성된 데이터를 수집할 수 있다. 나아가, 테스트 서버(130)는 어플리케이션을 저장하고, 어플리케이션에 대한 검색 기능을 제공할 수 있다.
한편, 메인 서버(110)는 제어 관리부(220)를 제외하고 테스트 서버(120)와 실질적으로 동일하거나 유사할 수 있다. 메인 서버(110)는 테스트 서버(120)에서 제공되는 테스트 장치(130)의 장치 정보를 저장하고, 테스트 서버(120)에 테스트 장치(130)에 대한 검색 기능을 제공하며, 어플리케이션을 저장하고, 테스트 서버(120) 및 테스트 장치(130)에 어플리케이션에 대한 검색 기능 및 어플리케이션을 제공할 수 있다.
한편, 테스트 장치(130)는 테스트 서버(120)에서 생성된 가상 머신과 연동되고, 다른 테스트 장치들과 상호 작용하여 테스트를 수행할 수 있다. 즉, 테스트 장치(130)가 테스트 케이스의 구성 정보에 기초하여 테스트 서버(120)에 의해 선택된 경우, 테스트 장치(130)는 테스트 서버(120)의 가상 머신에서 제공되는 명령에 기초하여 동작할 수 있다. 또한, 테스트 장치(130)는 테스트 서버(120)와 리소스 공유(resource sharing)(또는, 장치 공유(device sharing))를 수행할 수 있다. 즉, 테스트 서버(120)의 리소스가 테스트 케이스를 수행하기에 부족한 경우, 테스트 장치(130)는 테스트 서버(120)의 제어에 따라 테스트 서버(120)의 슬레이브로 설정될 수 있다. 이 경우, 테스트 장치(130)의 리소스가 테스트 서버(120)에 공유될 수 있다.
테스트 장치(130)는 센서 및 임베디드 모듈을 포함할 수 있다. 센서는 데이터 소스로부터 직접 데이터를 수집하고, 임베디드 모듈은 수집된 데이터를 가공할 수 있다.
일 실시예에서, 임베디드 모듈은 중앙처리장치(CPU), 메모리 등과 같은 리소스 및 운영체제(operating system; OS)를 포함할 수 있다. 여기서, 운영체제는 오픈 소스 기반의 리눅스(linux)일 수 있다. 도 1에 도시된 테스트 장치들(D111 내지 D14N) 중 적어도 일부는 리소스 및 운영체제를 포함하고, 테스트 서버(120)를 대신하여 테스트를 진행하거나, 또는 테스트 서버(120)를 지원할 수 있다.
도 3은 도 1의 사물인터넷 프레임워크에 포함된 테스트 장치의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 테스트 장치(130)는 인터페이스부(310), 서비스 관리부(320), 클라이언트 관리부(330), 오픈 API 관리부(340), 장치 정보 관리부(350), 장치 관리부(360), 및 네트워크 관리부(370)를 포함할 수 있다.
인터페이스부(310)는 테스트 장치(130)와 테스트 서버(120)가 통신할 수 있도록 인터페이스를 수행할 수 있다. 인터페이스부(310)는 테스트 장치(130)의 정보, 센싱 데이터(예를 들어, 테스트 장치의 센서를 통해 획득한 센싱 정보) 등을 서비스 관리부(320)로 전송하거나, 서비스 관리부(320)로부터 제어 명령을 수신할 수 있다. 인터페이스부(310)는 API(application programming interface)를 이용하여 인터페이스할 수 있다.
서비스 관리부(320)는 장치 어댑터에서 제공하는 서비스를 관리할 수 있다. 서비스 관리부(320)는 테스트 장치(130)에 대한 정보를 장치 정보 관리부(350)로 전달할 수 있다. 서비스 관리부(320)는 테스트 장치(130)에서 생성된 데이터를 주기적으로 추출하여 장치 정보 관리부(350)로 전달할 수 있다.
서비스 관리부(320)는 장치 정보 관리부(350)로부터 수신되는 제어 명령을 인터페이스부(310)를 통해 테스트 장치(130)로 전달할 수 있다.
클라이언트 관리부(330)는 클라이언트인 테스트 장치(130)에 대한 장치 정보를 테스트 서버(120) 또는 메인 서버(130)에 전달하고, 테스트 장치(130)가 생성한 데이터를 업데이트할 수 있다.
클라이언트 관리부(330)는 장치 정보 관리부(350)로부터 수신된 장치 정보를 메인 서버(110)의 장치 관리부(210)에 전달함으로써, 테스트 장치(130)를 사물인터넷 프레임워크에 등록할 수 있다.
오픈 API 관리부(340)는 오픈 API를 통해 테스트 서버로부터 데이터 및 제어 명령을 수신하여 장치 정보 관리부(350)로 전달할 수 있다. 오픈 API 관리부(340)는 테스트 서버(120)로부터 오픈 API를 통해 제어 명령을 수신하여 장치 정보 관리부(350)로 전송할 수 있다. 이를 통해 오픈 API 관리부(340)는 테스트 서버(120)로부터 테스트 장치(130)로 제어 명령을 전달할 수 있다.
또한, 오픈 API 관리부(340)는 다른 외부 장치 등과 직접 연결되어 제어 명령 수신 및 데이터 전송을 수행할 수 있다. 이 경우, 다른 외부 장치는 테스트 장치(130)와 P2P(Peer to Peer) 방식으로 연결되어 직접 통신하게 되며, 오픈 API 관리부(340)는 P2P용 오픈 API를 통해 제어 명령을 수신할 수 있다.
장치 정보 관리부(350)는 테스트 장치(130)에 대한 장치 정보, 데이터 및 제어 명령을 저장 및 전달할 수 있다. 도 3에 도시된 바와 같이, 장치 정보 관리부(350)는 이벤트 제어부(352), 리소스 포맷터(formatter)(354) 및 장치 정보 저장부(356)를 포함할 수 있다.
이벤트 제어부(352)는 장치 정보 관리부(350)의 다양한 동작을 위해 이벤트를 발생시킬 수 있다. 예를 들어, 이벤트 제어부(352)는 서비스 관리부(320)로부터 장치 정보, 장치 정보 변경 또는 데이터가 장치 정보 저장부(356)에 저장되면, 클라이언트 관리부(330)에 제1 이벤트를 발생시킬 수 있다. 제1 이벤트가 발생되면, 클라이언트 관리부(330)는 장치 정보 저장부(356)에 저장된 장치 정보 또는 데이터를 인출하여 처리할 수 있다. 또한, 이벤트 제어부(352)는 오픈 API 관리부(340)로부터 제어 명령 또는 데이터가 장치 정보 저장부(356)에 저장되면, 서비스 관리부(320)에 제2 이벤트를 발생시킬 수 있다. 제2 이벤트가 발생되면, 서비스 관리부(320)는 장치 정보 저장부(356)에 저장된 제어 명령 또는 데이터를 인출하여 처리할 수 있다.
리소스 포맷터(354)는 서비스 관리부(320)로부터 수신된 장치 정보 및 데이터를 클라이언트 관리부(330)가 처리하기에 적합한 포맷으로 변환시킬 수 있다. 또한, 리소스 포맷터(354)는 오픈 API 관리부(340)로부터 수신된 제어 명령 또는 데이터를 서비스 관리부(320)가 처리하기에 적합한 포맷으로 변환시킬 수 있다. 예를 들어, 리소스 포맷터(354)는 장치 정보, 데이터 및 제어 명령을 내부 저장, 내부 관리부 간 정보 교환, 외부 플랫폼과의 정보 교환에 적합하도록 데이터 포맷을 변환 할 수 있다.
장치 정보 저장부(356)는 장치 정보, 데이터, 제어 명령 및 데이터를 장치 정보 베이스(DIB: Device Information Base) 형태로 저장 및 관리할 수 있다. 장치 정보 관리부(350)는 테스트 장치(130)에 대한 장치 정보, 데이터 및 제어 명령을 저장하고, 서비스 관리부(320), 클라이언트 관리부(330) 및 오픈 API 관리부(340) 사이에서 장치 정보, 데이터 및 제어 명령을 전달할 수 있다.
장치 관리부(360)는 테스트 장치(130)에 대한 보안 정보 및 기본적인 제어를 관리 할 수 있다. 예를 들어, 장치 관리부(360)는 테스트 장치(130)의 인증키 및 보안 알고리즘을 관리할 수 있다. 예를 들어, 장치 관리부(360)는 테스트 장치(130)의 시스템 리셋, 일시 정지 및 재가동을 제어하고, 펌웨어 버전 관리 및 업데이트를 관리할 수 있다.
네트워크 관리부(370)는 사물인터넷 프레임워크(100)와 통신하기 위한 네트워크 망을 관리할 수 있다. 여기에서, 이동 통신망은 3G망, 4G망, SMS망 등을 포함하고, 유무선 네트워크망은 무선랜, 와이파이(WIFI), 이더넷 망 등을 포함할 수 있다.
도 4는 본 발명의 실시예들에 따른 사물인터넷 프레임워크의 운영 방법을 나타내는 순서도이다.
도 1 및 도 4를 참조하면, 도 4의 방법은 도 1의 사물인터넷 프레임워크(100)를 운영할 수 있다. 이하에서, 도 4의 방법은 도 1의 제1 테스트 서버(120-1)를 이용하여 테스트를 수행하고자 하는 경우를 가정하여 설명한다.
도 4의 방법은 테스트 케이스들 중 하나의 테스트 케이스를 선택 또는 결정(S410)할 수 있다. 도 4의 방법은 기 설정된 테스트 케이스 선택 기준에 따라 테스트 케이스들 중 하나의 테스트 케이스를 결정할 수 있다. 앞서 설명한 바와 같이, 테스트 케이스들은 테스트 대상에 요구되는 성능, 기능 등에 기초하여 다양하게 설정될 수 있다. 예를 들어, 테스트 케이스들은 상호운용성 테스트에 관한 제1 테스트 케이스와, 적합성 테스트에 관한 제2 테스트 케이스를 포함할 수 있다. 이 경우, 도 4의 방법은 제1 테스트 케이스를 선택할 수 있다. 예를 들어, 테스트 케이스 선택 기준 내에서, 정상적인 상황에 관한 테스트는 비정상적인 상황에 관한 테스트보다 우선할 수 있고, 도 4의 방법은 테스트 케이스 선택 기준에 기초하여 제1 및 제2 테스트 케이스들 중에서 제1 테스트 케이스를 선택할 수 있다.
도 4의 방법은 제1 테스트 서버(120-1)의 리소스 및 제1 테스트 장치 그룹(130-1)의 리소스 중 적어도 일부의 리소스를 이용하여 테스트 케이스를 수행하기 위한 가상 머신을 생성할 수 있다.
도 4의 방법은 테스트 케이스에 대한 제1 테스트 서버(120-1)의 리소스의 사용 가능 여부를 판단(S420)할 수 있다. 즉, 도 4의 방법은 제1 테스트 서버(120-1)의 상태에 기초하여 제1 테스트 서버(120-1)의 리소스가 테스트 케이스를 수행하기에 충분한지 여부를 판단할 수 있다. 여기서, 테스트 케이스는 테스트 케이스들 중 선택된 하나의 테스트 케이스일 수 있다.
예를 들어, 테스트 케이스는 테스트 요구사항에 대한 테스트 설명(test description)을 포함할 수 있다. 테스트 설명은 해당 테스트를 수행하기 위해 필요한 기능 및 특징들을 포함하는 기능(applicability) 정보, 해당 테스트를 수행하는데 필요한 테스트 장치들의 구성을 포함하는 구성(configuration or architecture) 정보, 해당 테스트를 수행하기 전에 설정되어야 하는 조건을 포함하는 사전 조건(pre-test conditions) 정보, 테스트를 진행하는 동안 따라야 하는 절차와 각 단계에서 확인되어야 하는 내용을 포함하는 테스트 절차(test sequence) 정보를 포함할 수 있다. 이 경우, 도 4의 방법은 테스트 케이스의 테스트 설명(예를 들어, 기능 정보, 구성 정보 및 테스트 절차 정보)에 기초하여 테스트 케이스를 수행하는 데 요구되는 리소스를 산출하거나 판단할 수 있다. 다른 예를 들어, 테스트 설명은 테스트 케이스를 수행하는 데 요구되는 리소스를 나타내는 요구 리소스 정보를 포함할 수 있다. 이 경우, 도 4의 방법은 요구 리소스 정보 및 제1 테스트 서버(120-1)의 리소스 상태(예를 들어, 여유 리소스)를 비교할 수 있다.
도 4의 방법은, 제1 테스트 서버(120-1)의 리소스의 사용이 가능한 경우, 제1 테스트 서버(120-1) 내 리소스를 이용하여 가상 머신을 생성(S430)하고, 제1 테스트 서버(120-1) 내 리소스를 가상 머신에 할당할 수 있다. 즉, 제1 테스트 서버(120-1)의 리소스가 테스트 케이스를 수행하기에 충분한 것으로 판단한 경우, 제1 테스트 서버(120-1) 내 리소스를 이용하여 가상 머신을 생성할 수 있다.
이와 달리, 도 4의 방법은, 제1 테스트 서버(120-1)의 리소스의 사용이 불가한 경우, 사물인터넷 프레임워크(100) 내에서 적어도 하나의 테스트 장치를 검색(S440)할 수 있다. 즉, 제1 테스트 서버(120-1)의 리소스가 테스트 케이스를 수행하기에 불충분한 것으로 판단한 경우, 사물인터넷 프레임워크(100) 내에서 적어도 하나의 테스트 장치를 검색할 수 있다. 여기서, 적어도 하나의 테스트 장치는 제1 테스트 서버(120-1)를 대체하거나 제1 테스트 서버(120-1)를 지원할 수 있는 리소스를 가지는 테스트 장치(예를 들어, 제1 테스트 장치(D111))일 수 있다.
일 실시예에서, 도 4의 방법은 제1 테스트 서버(120-1)에 저장된 제1 내지 제N 테스트 장치들(D111 내지 D11N)의 정보 및 테스트 케이스의 요구 리소스 정보에 기초하여 적어도 하나의 테스트 장치를 검색할 수 있다.
제1 내지 제N 테스트 장치들(D111 내지 D11N)의 정보는, 도 2를 참조하여 설명한 바와 같이, 제1 테스트 서버(120-1)의 장치 관리부(210)에 저장되고, 제1 내지 제N 테스트 장치들(D111 내지 D11N)의 ID, 위치 정보, 장치 상태 정보, 리소스 정보, 어플리케이션 정보(예를 들어, 테스트 장치에 설치된 어플리케이션 정보) 등을 포함할 수 있다. 이 경우, 도 4의 방법은 장치 상태 정보 및 리소스 정보에 기초하여 제1 내지 제N 테스트 장치들(D111 내지 D11N) 중 적어도 하나의 테스트 장치를 검색할 수 있다.
예를 들어, 도 4의 방법은 제1 테스트 장치 그룹(130-1) 중에서 제1 조건을 만족하는 테스트 장치를 검색할 수 있다. 여기서, 제1 조건은 테스트 장치의 상태가 비동작 상태인 조건과, 테스트 장치가 테스트 케이스에 대해 사용 가능한 리소스를 가지는 조건을 포함할 수 있다. 예를 들어, 도 4의 방법은 장치 상태 정보가 비동작 상태(예를 들어, 하이버네이션 상태(hibernation))이고 테스트 케이스의 요구 리소스보다 큰 리소스를 가지는 적어도 하나의 테스트 장치를 검색할 수 있다.
이후, 도 4의 방법은 제1 내지 제N 테스트 장치들(D111 내지 D11N)의 장치 정보와 테스트 케이스의 요구 자원 정보에 기초하여 제1 내지 제N 테스트 장치들(D111 내지 D11N) 각각의 우선순위를 결정하고, 제1 조건 및 우선순위에 기초하여 테스트 장치를 선택할 수 있다. 예를 들어, 도 4의 방법은 리소스가 많은 테스트 장치의 우선순위는 높게 결정할 수 있다. 이 경우, 도 4의 방법은 검색된 적어도 하나의 테스트 장치 중 우선순위가 가장 높은 테스트 장치를 선택할 수 있다. 한편, 도 4의 방법은 제1 테스트 장치들(130-1)의 결정된 우선순위들을 장치 정보와 함께 제1 테스트 서버(120-1)에 저장할 수 있다. 유사하게, 도 4의 방법은 제1 테스트 장치들(130-1)의 결정된 우선순위들을 장치 정보와 함께 메인 서버(110)에 저장할 수 있다.
일 실시예에서, 도 4의 방법은 제1 테스트 서버(120-1)가 포함된 제1 테스트 시스템(FARM1)에서 테스트 장치를 검색하지 못한 경우, 제1 테스트 시스템(FARM1)과 다른 제2 테스트 시스템(FARM2)에서 적어도 하나의 테스트 장치를 검색할 수 있다. 또한, 도 4의 방법은 제3 테스트 시스템(FARM3) 및 제4 테스트 시스템(FARM4)에서 적어도 하나의 테스트 장치를 검색할 수 있다. 즉, 도 4의 방법은 제1 테스트 시스템(FARM1)을 제외한 사물인터넷 프레임워크(100) 내에서 적어도 하나의 테스트 장치를 검색할 수 있다.
예를 들어, 도 4의 방법은 메인 서버(110)에 포함된 테스트 장치들(즉, 제1 내지 제4N 테스트 장치들(D111 내지 D14N))의 장치 정보에 기초하여 테스트 장치를 검색할 수 있다. 즉, 도 4의 방법은 메인 서버(110)의 장치 관리부(210)에서 제공하는 테스트 장치 검색 기능을 이용하여 제2 테스트 시스템(FARM2)에 포함된 적어도 하나의 테스트 장치를 검색할 수 있다. 이하, 도 5를 참조하여 테스트 장치를 검색하는 구성을 설명하고, 그 이후에 단계 S450 내지 단계 S490을 설명하기로 한다.
도 5는 도 4의 방법이 테스트 장치를 검색하는 일 예를 나타내는 순서도이다.
도 4 및 도 5를 참조하면, 제1 테스트 서버(120-1)는 메인 서버(110)에 테스트 장치에 대한 검색을 요청(S510)할 수 있다. 예를 들어, 제1 테스트 서버(120-1)는 테스트 케이스의 테스트 설명(예를 들어, 테스트 설명에 포함된 요구 리소스 정보)와 함께 테스트 장치에 대한 검색을 메인 서버(110)에 요청할 수 있다. 이 경우, 메인 서버(110)는 장치 관리부(210)에 저장된 테스트 장치들(D111 내지 D14N)의 정보에 기초하여 적어도 하나의 테스트 장치를 검색할 수 있다.
이와 달리, 메인 서버(110)는 제2 테스트 서버(120-2) 및 제3 테스트 서버(120-3)에 테스트 장치에 대한 검색을 요청(S520)할 수 있다. 즉, 메인 서버(110)는 제1 테스트 서버(120-1)로부터 수신한 테스트 장치에 대한 검색 요청을 제2 테스트 서버(120-2) 및 제3 테스트 서버(120-3)에 전달할 수 있다. 메인 서버(110)는 테스트 장치 정보를 주기적으로 또는 특정 이벤트 발생시 마다 수집(crawling) 할 수 있다. 여기서 특정 이벤트는, 테스트 장치들(D111 내지 D14N)의 등록 추가, 변경, 폐기 등이 발생한 경우일 수 있다. 메인 서버(110)는 테스트 장치들(D111 내지 D14N)의 정보를 주기적으로 수집하는 경우를 고려하여, 메인 서버(110)는 제2 테스트 서버(120-2) 및 제3 테스트 서버(120-3)에게 테스트 장치에 대한 검색을 요청할 수 있다.
이 경우, 제2 테스트 서버(120-2)는 제2 테스트 서버(120-2)의 장치 관리부(120)에 저장된 제21 내지 제2N 테스트 장치들(D121 내지 D12N)의 정보에 기초하여 요구 리소스 정보에 대응하는 테스트 장치를 검색할 수 있다. 유사하게, 제3 테스트 서버(130-3)는 요구 리소스 정보에 대응하는 테스트 장치를 검색할 수 있다.
이후, 요구 리소스 정보에 대응하는 테스트 장치를 포함하는 제2 테스트 서버(120-2)는 테스트 장치 검색 결과를 메인 서버(110)에 제공(S530)할 수 있다. 즉, 요구 리소스 정보에 대응하는 테스트 장치를 포함하는 경우, 제2 테스트 서버(120-2)는 테스트 장치 검색 결과를 메인 서버(110)에 제공할 수 있다. 메인 서버(110)는 제2 테스트 서버(120-2)로부터 수신한 테스트 장치 검색 결과를 제1 테스트 서버에 제공(S540)할 수 있다.
도 5에서, 제2 테스트 서버(120-2)만이 테스트 장치 검색 결과를 메인 서버(110)에 제공하는 것으로 도시되어 있으나, 본 발명이 그에 한정되는 것은 아니다. 예를 들어, 제3 테스트 서버(120-3)는 테스트 장치 검색 결과를 메인 서버(110)에 제공할 수 있다. 예를 들어, 메인 서버(110)는 제2 테스트 서버(120-2)로부터 수신한 제2 테스트 장치 검색 결과 및 제3 테스트 서버(120-3)로부터 수신한 제3 테스트 장치 검색 결과를 제1 테스트 서버에 제공하거나, 제2 테스트 장치 검색 결과 또는 제3 테스트 장치 검색 결과를 제1 테스트 서버(120-1)에 제공할 수 있다.
다시 도 4를 참조하면, 적어도 하나의 테스트 장치(예를 들어, 제1 테스트 장치(111))가 검색된 경우, 도 4의 방법은 적어도 하나의 테스트 장치에 가상 머신을 생성(S450)할 수 있다. 예를 들어, 도 4의 방법은 검색된 적어도 하나의 테스트 장치 중에서 하나의 테스트 장치를 선택하고, 선택된 테스트 장치의 리소스를 이용하여 선택된 테스트 장치에 가상 머신을 생성할 수 있다. 예를 들어, 도 4의 방법은 선택된 테스트 장치를 제1 테스트 서버(120-1)에 대한 슬레이브(slave)로 설정하고, 테스트 장치의 리소스를 이용하여 가상 머신을 생성할 수 있다. 즉, 도 4의 방법은 리소스 공유를 통해 테스트 장치의 리소스를 제1 테스트 서버(120-1)와 공유하도록 설정 또는 제어할 수 있다. 한편, 선택된 하나의 테스트 장치의 장치 상태 정보는 비동작 상태에서 동작(busy) 상태로 변환될 수 있다.
한편, 도 4의 방법은, 제1 테스트 시스템(FARM1)에서 테스트 케이스에서 요구하는 적어도 하나의 테스트 장치를 검색(S460)할 수 있다. 예를 들어, 테스트 케이스의 테스트 설명 중 구성 정보(즉, 해당 테스트를 수행하는데 필요한 테스트 장치들의 구성에 관한 정보) 및 제1 내지 제N 테스트 장치들(D111 내지 D11N)의 정보(예를 들어, 제1 내지 제N 테스트 장치들(D111 내지 D11N)의 장치 상태 정보)에 기초하여 적어도 하나의 테스트 장치를 검색할 수 있다. 예를 들어, 도 4의 방법은 테스트 케이스의 테스트 설명 중 구성 정보에 포함되고, 장치 상태 정보가 비동작 상태인 적어도 하나의 테스트 장치(예를 들어, 제2 테스트 장치(D112))를 검색할 수 있다.
이후, 도 4의 방법은 검색된 테스트 장치들 중 테스트 케이스에서 요구하는 적어도 하나의 테스트 장치를 선택(S470)하고, 선택된 적어도 하나의 테스트 장치를 이용하여 테스트 케이스에 포함된 테스트를 수행(S480)할 수 있다.
일 실시예에서, 도 4의 방법은 제1 테스트 시스템(FARM1) 내에서 테스트 케이스에서 요구하는 테스트 장치를 검색하지 못한 경우, 제2 테스트 시스템(FARM2) 내에서 테스트 케이스에서 요구하는 테스트 장치를 검색할 수 있다. 제2 테스트 시스템(FARM1) 내에서 테스트 장치를 검색하는 내용은, 도 4 및 도 5를 참조하여 설명한 테스트 장치를 검색하는 내용과 실질적으로 동일할 수 있다. 따라서, 중복되는 설명은 반복하지 않기로 한다.
한편, 도 4의 방법은 제1 및 제2 테스트 시스템들(FARM1, FARM2) 내에서 테스트 케이스에서 요구하는 테스트 장치를 검색하지 못한 경우, 테스트 케이스에 대한 진행을 대기(S490)시키거나 중지할 수 있다.
상술한 바와 같이, 도 4의 방법은 제1 테스트 서버(120-1)의 리소스뿐만 아니라 테스트 장치(예를 들어, 제1 내지 제N 테스트 장치들(D111 내지 D11N) 중 선택된 하나의 테스트 장치)의 리소스를 이용하여 테스트를 수행함으로써, 사물인터넷 프레임워크의 효율을 향상시킬 수 있다. 또한, 도 4의 방법은 로컬 네트워크에 연결된 테스트 장치들(예를 들어, 제1 테스트 서버(120-1)와 로컬 네트워크로 연결된 제1 테스트 장치 그룹(130-1))뿐만 아니라 메인 서버(110)에 연결되는 다른 지역의 테스트 장치 그룹들(예를 들어, 제2 테스트 장치 그룹(130-2), 제3 테스트 장치 그룹(130-3))을 이용하여 사물인터넷 제품에 대한 테스트를 수행함으로써, 사물인터넷 제품에 대한 검증 시간을 단축시킬 수 있다.
한편, 도 4의 방법은 실시간으로 수행될 수 있을 뿐만 아니라, 스케줄링을 이용하여 수행될 수 있다. 예를 들어, 도 4의 방법은 테스트 케이스를 결정하면서, 동시에 테스트 케이스를 수행되는 시점을 결정할 수 있다. 예를 들어, 테스트 케이스는 테스트가 수행되는 시점을 나타내는 시간 정보를 포함할 수 있다. 이 경우, 도 4의 방법은 시간 정보에 기초하여 제1 테스트 서버(120-1)의 리소스의 사용 가능 여부를 판단할 수 있다. 유사하게, 도 4의 방법은 시간 정보에 기초하여 테스트 장치들(D111 내지 D14N)의 동작 상태에 기초하여 테스트 장치를 검색할 수 있다.
도 6은 도 4의 방법이 테스트 장치에 가상 머신을 생성하는 일 예를 나타내는 순서도이다.
도 4 및 도 6을 참조하면, 도 4의 방법은 가상 머신 생성에 관한 어플리케이션이 설치되지 않는 테스트 장치(예를 들어, 제1 테스트 장치(D111))를 선택할 수 있다.
이 경우, 선택된 테스트 장치는 제1 테스트 서버(120-1) 또는 메인 서버(110)에 장치 정보를 전송(S610)할 수 있다. 예를 들어, 테스트 장치는 제1 테스트 서버(120-1)에 테스트 장치의 ID를 전송할 수 있다.
제1 테스트 서버(120-1)는 테스트 장치의 장치 정보에 연관된 어플리케이션 리스트를 테스트 장치에 전송(S620)할 수 있다. 예를 들어, 제1 테스트 서버(120-1)는 서비스 관리부(230)에 저장된 어플리케이션들 중에서 테스트 장치에 설치 가능하고, 가상 머신 생성에 이용되는 어플리케이션을 포함하는 어플리케이션 리스트를 테스트 장치에 회신할 수 있다.
테스트 장치는 제1 테스트 서버(120-1)로부터 수신한 어플리케이션 리스트 중에서 특정 어플리케이션을 선택(S630)할 수 있다. 예를 들어, 테스트 장치는 어플리케이션 선택 기준에 기초하여 특정 어플리케이션을 선택할 수 있다. 예를 들어, 테스트 장치는 테스트 장치를 제조한 제조사에서 생성한 어플리케이션, 다운로드 횟수가 많거나 높은 어플리케이션 등을 고려하여, 특정 어플리케이션을 선택할 수 있다.
테스트 장치는 선택한 어플리케이션에 매칭되는 어플리케이션 ID를 제1 테스트 서버(120-1)에 전송(S640)하고, 제1 테스트 서버(120-1)는 어플리케이션 ID에 매칭되는 어플리케이션을 테스트 장치에 전송(S650)할 수 있다.
이 경우, 테스트 장치는 수신한 어플리케이션을 설치(S660)하고, 어플리케이션에 기초하여 가상 머신을 생성(S670)할 수 있다.
한편, 도 6에서 테스트 장치가 장치 정보를 전송하고, 제1 테스트 서버가 어플리케이션 리스트를 회신하는 것으로 설명하였으나, 본 발명이 그에 한정되는 것은 아니다. 예를 들어, 제1 테스트 서버(120-1)는 가상 머신 생성을 위해 테스트 장치를 선택한 직후, 제1 테스트 서버(120-1)의 장치 관리자에 저장된 장치 정보에 기초하여 테스트 장치에 설치 가능한 어플리케이션을 선택하며, 선택된 어플리케이션을 테스트 장치에 전송할 수 있다.
본 발명은 반도체 메모리의 테스트 장치에 적용될 수 있다. 예를 들어, 본 발명은 반도체 메모리를 구비하는 사물인터넷 장치의 테스트 시스템 등에 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 사물인터넷 프레임워크 110: 메인 서버
120: 테스트 서버 130: 테스트 장치
120-1, 120-2, 120-3, 120-4: 제1 내지 제4 테스트 서버
130-1, 130-2, 130-3, 130-4: 제1 내지 제4 테스트 장치 그룹들
210: 장치 관리부 220: 제어 관리부
230: 서비스 관리부 310: 인터페이스부
320: 서비스 관리부 330: 클라이언트 관리부
340: 오픈 API 관리부 350: 장치 정보 관리부
352: 이벤트 제어부 354: 리소스 포맷터
356: 장치정보 저장부 360: 장치 관리부
370: 네트워크 관리부

Claims (10)

  1. 제1 테스트 서버와 제1 테스트 장치 그룹을 포함하는 제1 테스트 시스템, 제2 테스트 서버와 제2 테스트 장치 그룹을 포함하는 제2 테스트 시스템 및 메인 서버를 포함하고, 상기 제1 테스트 시스템, 제2 테스트 시스템 및 상기 메인 서버는 네트워크를 통해 연결되는 사물인터넷 프레임워크에서,
    상기 제1 테스트 장치 그룹의 리소스 및 상기 제1 테스트 서버의 리소스 중 적어도 일부를 이용하여 테스트 케이스를 수행할 가상 머신을 생성하는 단계;
    상기 제1 테스트 장치 그룹 및 상기 제2 테스트 장치 그룹 중에서 상기 가상 머신과 연동되는 적어도 하나의 테스트 장치를 선택하는 단계; 및
    상기 가상 머신 및 상기 적어도 하나의 테스트 장치를 이용하여 상기 테스트 케이스를 수행하는 단계를 포함하는 사물인터넷 프레임워크의 운영 방법.
  2. 제 1 항에 있어서, 상기 가상 머신을 생성하는 단계는,
    상기 테스트 케이스에 대한 상기 제1 테스트 서버의 상기 리소스의 사용 가능 여부를 판단하는 단계;
    상기 제1 테스트 서버의 상기 리소스의 사용이 불가한 경우, 상기 제1 테스트 장치 그룹 중에서 제1 조건을 만족하는 테스트 장치를 검색하는 단계; 및
    상기 제1 조건을 만족하는 상기 테스트 장치가 검색된 경우, 상기 테스트 장치의 리소스를 이용하여 상기 가상 머신을 생성하는 단계를 포함하고,
    상기 제1 조건을 만족하는 상기 테스트 장치는 비동작 상태를 가지고, 상기 테스트 케이스에 대해 사용 가능한 리소스를 가지는 사물인터넷 프레임워크의 운영 방법.
  3. 제 2 항에 있어서, 상기 테스트 장치를 검색하는 단계는,
    상기 제1 테스트 장치 그룹에 포함된 제1 내지 제N 테스트 장치들(단, N은 2 이상의 정수)의 장치 정보와 상기 테스트 케이스의 요구 리소스 정보에 기초하여 상기 제1 테스트 장치들 각각의 우선순위를 결정하는 단계; 및
    상기 제1 조건 및 상기 우선순위에 기초하여 상기 테스트 장치를 선택하는 단계를 포함하고,
    상기 장치 정보는 상기 제1 내지 제N 테스트 장치들의 동작 상태를 나타내는 장치 상태 정보, 상기 제1 내지 제N 테스트 장치들이 보유하는 리소스에 대한 리소스 정보 및 상기 제1 내지 제N 테스트 장치들에 설치된 어플리케이션들에 대한 어플리케이션 정보를 포함하는 사물인터넷 프레임워크의 운영 방법.
  4. 제 2 항에 있어서, 상기 우선순위를 결정하는 단계는,
    상기 결정된 우선순위를 상기 장치 정보와 함께 상기 메인 서버에 저장하는 단계를 포함하는 사물인터넷 프레임워크의 운영 방법.
  5. 제 2 항에 있어서, 상기 제1 조건을 만족하는 상기 테스트 장치를 검색하는 단계는,
    상기 제1 테스트 장치 그룹 중에서 상기 제1 조건을 만족하는 상기 테스트 장치가 검색되지 않은 경우, 상기 제2 테스트 시스템에서 상기 제1 조건을 만족하는 상기 테스트 장치를 검색하는 단계를 더 포함하는 사물인터넷 프레임워크의 운영 방법.
  6. 제 5 항에 있어서, 상기 제2 테스트 시스템에서 상기 테스트 장치를 검색하는 단계는,
    상기 제1 테스트 서버로부터 상기 메인 서버에 상기 테스트 장치에 대한 검색을 요청하는 단계; 및
    상기 메인 서버에 저장된 상기 제2 테스트 장치 그룹에 포함된 제21 내지 제2N 테스트 장치들의 장치 정보에 기초하여 상기 테스트 장치를 검색하는 단계를 포함하는 사물인터넷 프레임워크의 운영 방법.
  7. 제 5 항에 있어서, 상기 제2 테스트 시스템에서 상기 테스트 장치를 검색하는 단계는,
    상기 제1 테스트 서버로부터 상기 메인 서버에 상기 적어도 하나의 테스트 장치에 대한 검색을 요청하는 단계;
    상기 메인 서버로부터 상기 제2 테스트 서버에 상기 적어도 하나의 테스트 장치에 대한 검색을 요청하는 단계;
    상기 제2 테스트서버로부터 상기 메인 서버에 테스트 장치 검색 결과를 전송하는 단계; 및
    상기 메인 서버로부터 상기 제1 테스트 서버에 상기 테스트 장치 검색 결과를 전송하는 단계를 포함하는 사물인터넷 프레임워크의 운영 방법.
  8. 제 2 항에 있어서, 상기 테스트 장치의 리소스를 이용하여 가상 머신을 생성하는 단계는,
    상기 테스트 장치로부터 상기 테스트 서버에 상기 테스트 장치의 장치 정보를 전송하는 단계;
    상기 테스트 서버에서 상기 테스트 장치에 상기 테스트 장치와 연관된 어플리케이션 리스트를 전송하는 단계;
    선택 기준에 기초하여 상기 어플리케이션 리스트 중 하나를 선택하는 단계;
    상기 테스트 장치로부터 상기 테스트 서버에 상기 어플리케이션 리스트 중 선택된 하나에 매칭되는 어플리케이션 식별자를 전송하는 단계; 및
    상기 테스트 서버로부터 상기 테스트 장치에 상기 어플리케이션 식별자에 대응하는 어플리케이션을 전송하는 단계를 포함하는 사물인터넷 프레임워크의 운영 방법.
  9. 제 1 항에 있어서, 상기 가상 머신과 연동되는 상기 적어도 하나의 테스트 장치를 선택하는 단계는,
    상기 제1 테스트 장치 그룹 중에서 상기 적어도 하나의 테스트 장치를 검색하는 단계; 및
    상기 제1 테스트 장치 그룹 중에서 상기 적어도 하나의 테스트 장치가 검색되지 않은 경우, 상기 제2 테스트 장치 글부 중에서 상기 적어도 하나의 테스트 장치를 검색하는 단계를 포함하는 사물인터넷 프레임워크의 운영 방법.
  10. 제1 테스트 서버 및 제1 테스트 장치 그룹을 포함하고, 상기 제1 테스트 서버 및 상기 제1 테스트 장치 그룹은 제1 로컬 네트워크를 통해 연결되는 제1 테스트 시스템;
    제2 테스트 서버 및 제2 테스트 장치 그룹을 포함하고, 상기 제2 테스트 서버 및 상기 제2 테스트 장치 그룹은 제2 로컬 네트워크를 통해 연결되는 제2 테스트 시스템; 및
    네트워크를 통해 상기 제1 테스트 시스템 및 상기 제2 테스트 시스템에 연결되고, 상기 제1 및 제2 테스트 장치 그룹에 포함된 테스트 장치들의 장치 정보를 관리하는 메인 서버를 포함하고,
    상기 제1 테스트 서버는 상기 테스트 장치들의 리소스 중 적어도 일부를 이용하여 가상 머신을 생성하고, 상기 테스트 장치들의 상기 장치 정보에 기초하여 적어도 하나의 테스트 장치를 선택하며, 상기 가상 머신을 통해 상기 적어도 하나의 테스트 장치와 연동하여 테스트 케이스를 수행하는 사물인터넷 프레임워크.
KR1020160178987A 2016-12-26 2016-12-26 사물인터넷 프레임워크 및 이의 운영 방법 KR20180075073A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160178987A KR20180075073A (ko) 2016-12-26 2016-12-26 사물인터넷 프레임워크 및 이의 운영 방법
US15/815,903 US20180181456A1 (en) 2016-12-26 2017-11-17 Internet of things framework and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160178987A KR20180075073A (ko) 2016-12-26 2016-12-26 사물인터넷 프레임워크 및 이의 운영 방법

Publications (1)

Publication Number Publication Date
KR20180075073A true KR20180075073A (ko) 2018-07-04

Family

ID=62625731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160178987A KR20180075073A (ko) 2016-12-26 2016-12-26 사물인터넷 프레임워크 및 이의 운영 방법

Country Status (2)

Country Link
US (1) US20180181456A1 (ko)
KR (1) KR20180075073A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733070B2 (en) * 2018-03-29 2020-08-04 Bank Of America Corporation Executing test scripts with respect to a server stack
CN108984274A (zh) * 2018-08-01 2018-12-11 佛山市甜慕链客科技有限公司 一种对物联网系统进行操作的方法
US10977072B2 (en) 2019-04-25 2021-04-13 At&T Intellectual Property I, L.P. Dedicated distribution of computing resources in virtualized environments
CN110601871B (zh) * 2019-07-31 2022-04-05 华为技术有限公司 一种虚拟设备的测试方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004303094A (ja) * 2003-03-31 2004-10-28 Fujitsu Ltd ネットワークシステムテスト方法、ネットワークシステムテストプログラム及びネットワーク装置
US20070168734A1 (en) * 2005-11-17 2007-07-19 Phil Vasile Apparatus, system, and method for persistent testing with progressive environment sterilzation
JP5401922B2 (ja) * 2008-11-04 2014-01-29 富士通株式会社 仮想システム制御プログラム、方法及び装置
CN102736972B (zh) * 2011-03-30 2016-03-09 国际商业机器公司 对待测试应用的测试例进行处理的方法和系统
US8966318B1 (en) * 2012-04-27 2015-02-24 Symantec Corporation Method to validate availability of applications within a backup image
JP6020273B2 (ja) * 2013-03-19 2016-11-02 富士通株式会社 監視装置,情報処理システム,監視方法および監視プログラム

Also Published As

Publication number Publication date
US20180181456A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
US9920948B2 (en) Asynchronous reporting system
US9002932B2 (en) Cloud computing access gateway and method for providing a user terminal access to a cloud provider
US20180351793A1 (en) System and method for providing secure and redundant communications and processing for a collection of internet of things (iot) devices
KR20180075073A (ko) 사물인터넷 프레임워크 및 이의 운영 방법
US20180351792A1 (en) System and method for providing secure and redundant communications and processing for a collection of internet of things (iot) devices
CN111431740A (zh) 数据的传输方法、装置、设备及计算机可读存储介质
US9075660B2 (en) Apparatus and method for providing service availability to a user via selection of data centers for the user
CN101727449A (zh) 利用远程应用处理本地文件的系统和方法
JP2006237668A (ja) センサネット管理システム
JP5452589B2 (ja) 被管理ノードの初期動作状態
US9104565B2 (en) Fault tracing system and method for remote maintenance
JP2013218687A (ja) サーバー監視システム及びその方法
JP6406336B2 (ja) センサ開通テストシステム、センサ開通テスト管理端末、センサ、センサ開通テスト方法及びプログラム
JPWO2015037603A1 (ja) 遠隔監視システム、遠隔監視方法、及びプログラム
US11509527B1 (en) Assisted and context-driven network changes
CN114884838A (zh) Kubernetes组件的监控方法及服务器
CN116302352A (zh) 集群灾备处理方法、装置、电子设备和存储介质
CN111026503A (zh) 一种基于虚拟化的遥感卫星地面站监控方法和系统
CN111343700A (zh) 无线传感网络通信方法
KR100933251B1 (ko) 무선랜 서비스 장애 및 품질 관리 시스템 및 방법
US20150142960A1 (en) Information processing apparatus, information processing method and information processing system
JP5702134B2 (ja) デバイス制御装置、情報管理装置、及びその制御方法、デバイス制御システム
KR101377461B1 (ko) 이종장치 및 시스템에 대한 원격 유지보수 및 모니터링 서비스 프레임워크
US20240146625A1 (en) Telemetry information notification apparatus, telemetry information notification method and telemetry information notification program
CN116820686B (zh) 物理机的部署方法、虚拟机和容器统一监控的方法及装置