KR20230170902A - 분산 불변 데이터 객체 테스팅 - Google Patents
분산 불변 데이터 객체 테스팅 Download PDFInfo
- Publication number
- KR20230170902A KR20230170902A KR1020237028674A KR20237028674A KR20230170902A KR 20230170902 A KR20230170902 A KR 20230170902A KR 1020237028674 A KR1020237028674 A KR 1020237028674A KR 20237028674 A KR20237028674 A KR 20237028674A KR 20230170902 A KR20230170902 A KR 20230170902A
- Authority
- KR
- South Korea
- Prior art keywords
- dido
- test
- node
- virtual
- nodes
- Prior art date
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 416
- 238000000034 method Methods 0.000 claims abstract description 87
- 230000008569 process Effects 0.000 claims abstract description 37
- 230000000977 initiatory effect Effects 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 16
- 238000010998 test method Methods 0.000 claims description 8
- 239000000306 component Substances 0.000 description 26
- 238000004088 simulation Methods 0.000 description 26
- 238000012549 training Methods 0.000 description 19
- 230000010354 integration Effects 0.000 description 13
- 230000004044 response Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 239000000779 smoke Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000001303 quality assessment method Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000280258 Dyschoriste linearis Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000001373 regressive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012029 structural testing Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- 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/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned 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/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/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Emergency Protection Circuit Devices (AREA)
- Optical Fibers, Optical Fiber Cores, And Optical Fiber Bundles (AREA)
Abstract
분산 환경을 관리하기 위한 시스템, 방법, 및 장치가 개시된다. 분산 시스템 내의 노드를 테스트하는 방법은, 분산 불변 데이터 객체를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하기 위해 복수의 가상 노드를 구성하는 단계, 에뮬레이션된 분산 시스템의 테스트를 개시하는 단계로, 테스트는 제1 분산 불변 데이터 객체 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 분산 불변 데이터 객체를 획득하는 것을 포함하는 단계, 및 수정된 제1 분산 불변 데이터 객체와 검증된 시스템에서 처리된 제2 분산 불변 데이터 객체를 비교함으로써 에뮬레이션된 분산 시스템을 검증하는 단계를 포함한다.
Description
관련 출원에 대한 상호 참조
본 출원은 2022년 1월 18일에 미국 특허청에 출원된 미국 정규 출원 일련번호 17/578,432, 2021년 1월 23일에 미국 특허청에 출원된 미국 가출원 일련번호 63/140,849, 및 2021년 11월 22일에 미국 특허청에 출원된 미국 가출원 일련번호 63/282,042의 우선권 및 이점을 주장하고, 이들 출원의 전체 내용은 그 전체가 모든 적용가능한 목적을 위해 이하에 자세히 기술된 것처럼 본원에 참조로 포함된다.
본 발명은 시스템 테스트 환경에 관한 것으로, 보다 구체적으로는, 트레이닝, 테스트, 및 시뮬레이션을 위해 의도될 수 있는 가상 노드들의 가상 네트워크로서 구성되고 이에 걸쳐 배포되는 테스트 플랫폼에 관한 것이다.
2009년에 사토시 나카모토라는 이름을 사용하는 한 사람 또는 몇몇 사람이 결국에는 비트코인의 원동력이 될 논문을 작성하였다. 비트코인은 탈중앙 네트워크형 분산 컴퓨팅 기술에 기반하는 최초의 성공적인 암호화폐였다. 기술의 중심에는, 블록체인 내에 진행되는 트랜잭션을 사용하여 업데이트되고 작업 증명을 사용하여 검증되는 분산 원장이 있다.
특정의 공지된 기술이 계속 오늘날의 컴퓨팅에 상당한 영향을 미치고 있다. 예를 들어, 컨테이너 및 가상 머신이 당해 기술분야에 공지되어 있고 분산 컴퓨팅에 상당한 영향을 미쳐왔다. 컨테이너는 애플리케이션 및 이의 대응하는 런타임 라이브러리와 종속성을 포함하는 패키지 또는 이미지로 획정될 수 있다. 보다 최근에는, Docker®와 같은 턴키 컨테이너 제품 및 관리가 대중화되었고, 자연스럽게 Kubernetes®와 같은 성공적인 컨테이너 조정(orchestration) 제품의 존재로 이어졌다. 가상 머신은 물리적 컴퓨터의 작동을 에뮬레이션하는 소프트웨어 컴퓨터로 획정될 수 있다. 컨테이너 및 가상 머신은 애플리케이션이 설계 요건 및 물리적 처리 환경의 능력에 따라 배포 및 확장되는 것을 가능하게 할 수 있다.
본 개시의 특정 양태는 분산 컴퓨팅 시스템의 요소 및 작동을 안전하게 및 신뢰할 만하게 테스트하는 데에 사용될 수 있는 시스템, 장치, 및 방법을 제공한다. 일부 양태에서, 테스트 시스템은 물리적 처리 장치, 가상 머신, 및/또는 분산 컨테이너의 소정의 조합을 사용하여 물리적 또는 실제 분산 컴퓨팅 시스템을 에뮬레이션하도록 구현될 수 있다.
본 개시의 일 양태에서, 분산 시스템 내의 노드를 테스트하는 방법은, 분산 불변 데이터 객체(DIDO)를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하기 위해 복수의 가상 노드를 구성하는 단계; 에뮬레이션된 분산 시스템의 테스트를 개시하는 단계로, 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것인 단계; 및 수정된 제1 DIDO와 검증된 시스템에 의해 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 에뮬레이션된 분산 시스템을 검증하는 단계를 포함한다.
본 개시의 일 양태에서, 분산 시스템을 위한 테스트 플랫폼은, 각각 복수의 작동 노드 중 하나 이상을 작동시키도록 구성되는 복수의 처리 시스템; 복수의 처리 시스템에 결합되고 복수의 가상 노드를 통신가능하게 결합하도록 구성되는 네트워크로, 그에 따라 복수의 가상 노드는 DIDO를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하도록 구성되는 네트워크; 및 테스트 관리 프로세서를 포함한다. 테스트 관리 프로세서는 에뮬레이션된 분산 시스템의 테스트를 개시하도록 구성되되, 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것을 포함하고; 수정된 제1 DIDO와 검증된 시스템에 의해 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 에뮬레이션된 분산 시스템을 검증하도록 구성될 수 있다.
본 개시의 일 양태에서, 가상 환경을 구성하는 방법은, 관심 분산 시스템에 대한 테스트, 시뮬레이션, 또는 트레이닝 요청에 응하여 가상 노드들의 가상 네트워크를 구성하는 단계; 가상 네트워크 내의 복수의 가상 노드 사이에 분산 시스템을 배포하는 단계; 및 복수의 가상 노드로부터 테스트, 시뮬레이션, 또는 트레이닝 결과를 수신하고, 복수의 노드로부터 수신되는 테스트, 시뮬레이션, 또는 트레이닝 결과를 결합함으로써 요청에 대한 응답을 제공하는 단계를 포함한다.
본 개시의 일 양태에서, 시스템은 가상 노드들의 가상 네트워크, 및 가상 환경 관리자를 포함한다. 가상 환경 관리자는 관심 분산 시스템에 대한 테스트, 시뮬레이션, 또는 트레이닝 요청에 응하여 가상 노드들의 가상 네트워크를 구성하고, 가상 네트워크 내의 복수의 가상 노드 사이에 분산 시스템을 배포하고, 복수의 가상 노드로부터 테스트, 시뮬레이션, 또는 트레이닝 결과를 수신하고, 복수의 노드로부터 수신되는 테스트, 시뮬레이션, 또는 트레이닝 결과를 결합함으로써 요청에 대한 응답을 제공할 수 있다.
도 1은 블록체인-기반 분산 원장의 개발의 일 예의 특정 양태를 도시한다.
도 2는 본 개시의 특정 양태에 따라 구성되는 분산 테스트 환경(TE)의 제1 예를 도시한다.
도 3은 본 개시의 특정 양태에 따라 구성될 수 있는 가상 노드를 도시한다.
도 4는 본 개시의 특정 양태에 따라 제공되는 분산 불변 데이터 객체(DIDO) TE의 구성가능한 특징을 도시한다.
도 5는 본 개시의 특정 양태에 따른 DIDO TE 플랫폼을 획정하는 과정을 도시한 흐름도이다.
도 6은 본 개시의 특정 양태에 따른 DIDO TE 노드 세트를 획정하는 과정을 도시한 흐름도이다.
도 7은 본 개시의 특정 양태에 따른 DIDO TE 가상 네트워크를 획정하는 과정을 도시한 흐름도이다.
도 8은 본 개시의 특정 양태에 따른 DIDO를 초기화하기 위한 특정 구성 설정을 도시한다.
도 9는 본 개시의 특정 양태에 따른 DIDO TE에 사용되는 코드 디버깅의 예를 도시한다.
도 10은 본 개시의 특정 양태에 따른 DIDO TE 모니터링의 예를 도시한다.
도 11은 본 개시의 특정 양태에 따른 악성 에이전트의 예를 도시한다.
도 12는 본 개시의 특정 양태에 따른 DIDO TE 관리자의 예를 도시한다.
도 13은 본 개시의 특정 양태에 따라 제공되는 테스트 및 테스트 플랜의 구조의 예를 도시한다.
도 14는 본 개시의 특정 양태에 따른 DIDO TE를 사용하여 수행되는 테스트를 획정하는 과정을 도시한 흐름도이다.
도 15는 본 개시의 특정 양태에 따른 DIDO TE를 사용하여 테스트를 실행하는 과정을 도시한 흐름도이다.
도 16은 본 개시의 특정 양태에 따라 구성되는 분산 TE의 제2 예를 도시한다.
도 17은 본 개시의 특정 양태에 따른 테스트 플랫폼을 구성하는 과정을 도시한 흐름도이다.
도 18은 본 개시의 특정 양태에 따른 테스트 플랫폼의 사용을 도시한 흐름도이다.
도 2는 본 개시의 특정 양태에 따라 구성되는 분산 테스트 환경(TE)의 제1 예를 도시한다.
도 3은 본 개시의 특정 양태에 따라 구성될 수 있는 가상 노드를 도시한다.
도 4는 본 개시의 특정 양태에 따라 제공되는 분산 불변 데이터 객체(DIDO) TE의 구성가능한 특징을 도시한다.
도 5는 본 개시의 특정 양태에 따른 DIDO TE 플랫폼을 획정하는 과정을 도시한 흐름도이다.
도 6은 본 개시의 특정 양태에 따른 DIDO TE 노드 세트를 획정하는 과정을 도시한 흐름도이다.
도 7은 본 개시의 특정 양태에 따른 DIDO TE 가상 네트워크를 획정하는 과정을 도시한 흐름도이다.
도 8은 본 개시의 특정 양태에 따른 DIDO를 초기화하기 위한 특정 구성 설정을 도시한다.
도 9는 본 개시의 특정 양태에 따른 DIDO TE에 사용되는 코드 디버깅의 예를 도시한다.
도 10은 본 개시의 특정 양태에 따른 DIDO TE 모니터링의 예를 도시한다.
도 11은 본 개시의 특정 양태에 따른 악성 에이전트의 예를 도시한다.
도 12는 본 개시의 특정 양태에 따른 DIDO TE 관리자의 예를 도시한다.
도 13은 본 개시의 특정 양태에 따라 제공되는 테스트 및 테스트 플랜의 구조의 예를 도시한다.
도 14는 본 개시의 특정 양태에 따른 DIDO TE를 사용하여 수행되는 테스트를 획정하는 과정을 도시한 흐름도이다.
도 15는 본 개시의 특정 양태에 따른 DIDO TE를 사용하여 테스트를 실행하는 과정을 도시한 흐름도이다.
도 16은 본 개시의 특정 양태에 따라 구성되는 분산 TE의 제2 예를 도시한다.
도 17은 본 개시의 특정 양태에 따른 테스트 플랫폼을 구성하는 과정을 도시한 흐름도이다.
도 18은 본 개시의 특정 양태에 따른 테스트 플랫폼의 사용을 도시한 흐름도이다.
첨부 도면과 관련하여 이하에 기술되는 상세한 설명은 다양한 구성의 설명으로 의도된 것이며, 본원에 설명된 개념을 실행할 수 있는 유일한 구성을 나타내도록 의도된 것이 아니다. 상세한 설명은 다양한 개념의 철저한 이해를 제공할 목적으로 구체적인 세부사항을 포함한다. 그러나, 이러한 개념이 이러한 구체적인 세부사항 없이 실행될 수 있음은 당업자에게 명확할 것이다. 경우에 따라, 공지된 구조 및 구성요소는 이러한 개념의 모호함을 방지하기 위해 블록도 형태로 도시된다.
테스트될 시스템이 분산 시스템일 때 시스템 테스트와 관련된 어려움이 실질적으로 증가된다. 분산 시스템의 구성요소 및 플랫폼은 물리적으로 세계 어느 곳이든 위치될 수 있다. 적절한 테스트는 주제 전문가, 분산 제품 전문가, 하드웨어 전문가, 운영 시스템 전문가, 테스트 전문가 등을 요구한다. 이는 또한 명시된 기간 내에 인력, 리소스, 및 테스트 시나리오를 관장할 관리 전문가를 요구한다.
암호화폐는 분산 컴퓨팅에 의존하는 예를 제공한다. Bitcoin®과 같은 암호화폐의 성공에 의해 야기된 분산 컴퓨팅에 대한 기대의 상승은, 일반적으로 분산 컴퓨팅 시스템, 구체적으로 암호화폐의 기회와 이득에 참여하려는 기업 및 투자자측의 굉장한 열정과 활기로 이어졌다. 분산 컴퓨팅 제품, 특히 암호화폐는 본래 관심 커뮤니티(COI)의 일부로 개발되었다. 제대로 관리되지 않는 경우, COI는 분산 시스템의 성공에 대한 위험을 가중시킬 수 있다.
암호화폐는 작동을 위해 디지털 매체에 의존하는 교환 메커니즘 내에 사용되는 자산의 형태에 적용되는 용어이다. 일부 예에서, 코인 소유권 기록은 분산 원장 내에 기록 및 유지된다. 분산 원장은 분산 원장 기술 및 전산화 데이터베이스를 사용하여 구현될 수 있다. 강력한 암호화폐 기술이 분산 원장에 의해 유지되는 트랜잭션 기록을 보호하기 위해 채용된다. 일부 예에서, 분산 원장은 블록체인을 사용하여 구축될 수 있되, 원장 엔트리, 기록, 또는 트랜잭션은 블록으로 유지되고, 각각의 블록은 이전 블록의 암호화 해시 및 타임스탬프를 포함한다.
도 1은 블록체인-기반 분산 원장(100)의 개발의 예의 특정 양태를 도시한다. 분산 원장(100)은 제1 블록(102)으로 개시되고, 이로부터 블록들(104, 106, 108, 110, 112, 114, 116)을 포함하는 후속 블록들이 생성된다. 각각의 블록은 트리 구조로 해시 및 인코딩되는 하나 이상의 유효 트랜잭션을 보유한다. 각각의 블록은 블록체인 내의 선행 블록의 암호화 해시를 포함하는데, 이는 각각의 후속 블록을 이의 직전 블록에 연결한다. 일 예에서, 블록(104)은 블록(102)의 암호화 해시를 포함하고, 블록(106)은 블록(104)의 암호화 해시를 포함한다. 블록들(102, 104, 106)은 체인을 형성한다. 경우에 따라, 분기 또는 고아 후속 블록(112 또는 114)이, 메인 체인 내에 포함되는, 선행 블록(104 또는 108)으로부터 생성되는 대응하는 후속 블록(106 또는 110)에 추가로 또는 이와 병렬로 생성된다.
블록체인은 새로운 블록들(104, 106, 108, 110, 112, 114, 116)을 생성하는 데에 사용되는 노드간 통신 프로토콜 및 검증 프로토콜에 따라 작동하는 피어-투-피어 네트워크에 의해 제어 및 관리될 수 있다. 암호화폐의 제어는 탈중앙 방식으로 실행되지만, 기저의 기술은 설계상 안전한 것으로 간주된다. 트랜잭션이 블록 내에 기록될 때, 블록은 모든 후속 생성 블록을 수정함 없이는 수정될 수 없다.
본 개시의 특정 양태는 분산 컴퓨팅 시스템을 안전하게 및 신뢰할 만하게 테스트하는 데에 사용될 수 있는 커뮤니티-기반 테스트를 채용한다. 일부 예에서, 현재 개시된 커뮤니티-기반 테스트는 도 1에 도시된 블록체인-기반 분산 원장(100)과 같은 분산 원장을 조작하거나 관리하는 분산 컴퓨팅 시스템을 테스트, 검증, 검정, 또는 확증하는 데에 사용될 수 있다. 분산 컴퓨팅의 채택은 기존의 기업이 극복해야 할 몇몇 새롭고 고유한 기술적 장애물을 제시하고, 또한 기업이 이의 제어 밖에 있는 네트워크 및 컴퓨터 상에 실행되는 제품에 참여하기 위해 적응할 것을 요구한다. 분산 컴퓨팅에 기반하는 제품의 사용은, 참여 기업이 테스트된 제품의 품질에 대한 신뢰를 유지할 수 있는 동안, 기업이 공통 목표를 달성하기 위해 커뮤니티 내에 동료(피어)로 참여할 것을 요구할 수 있다.
종래의 커뮤니티-기반 암호화폐 테스트의 사용은 반복적인 방식으로 용이하게 수행될 수 없다. 블록체인 사용은 원장의 취소 불가능한 수정을 수반하는 임의의 테스트가 블록체인을 변경할 것을 요구한다. 임의의 반복된 테스트는 결과적으로 수정된 블록체인 상에 수행된다. 게다가, 테스트 중에 결함 있는 시스템에 의해 도입되는 오류 또는 문제가 블록체인으로부터 제거되거나 취소될 수 없고, 오류 또는 문제 데이터가 블록체인 내에 남아있게 된다.
본 개시의 특정 양태는 블록체인 내에 영구적인 풋프린트를 남김 없이 암호화폐 및 기타 블록체인-기반 시스템을 테스트하기 위해 기존의 물리적 인프라구조 상에 구축될 수 있는 가상화 환경을 제공한다. 가상화 환경은, 테스트가 사전-구성된 컨텍스트 및 블록체인으로 요망된 시작점에서 반복적으로 시작될 수 있도록, 여러 번 초기화될 수 있다. 테스트의 결과가 평가될 수 있고, 테스트는 동일한 가상 시스템 구성이나 수정 또는 업데이트된 시스템 구성으로 다시 실행될 수 있다. 가상 시스템은 물리적 시스템 또는 물리적 시스템의 양태를 에뮬레이션하거나 시뮬레이션하도록 구성될 수 있다. 본 개시의 목적으로, 가상 시스템은 물리적 실제 시스템을 모방하고 이의 거동에 긴밀하게 부합할 때 실제 시스템을 에뮬레이션한다. 본 개시의 목적으로, 가상 시스템은 물리적 실제 시스템의 하나 이상의 거동에 부합함 없이 실제 시스템을 모방할 때 실제 시스템을 시뮬레이션한다. 예를 들어, 에뮬레이션은 실제 속도로 실행되는 타임라인에 따라 작동할 수 있는 반면, 시뮬레이션은 가속 또는 감속된 타임라인에 따라 작동할 수 있다.
일부 예에서, 실시간에 고정되거나 잠금되지 않은 가상 시스템 시간이 획정될 수 있다. 예를 들어, 타임라인의 시작점은 가상 네트워크 상에 가상 시스템을 개시할 때 구성될 수 있다. 따라서, 트랜잭션이 일관된 방식으로 기록되는 것을 확인하기 위해, 블록체인 내의 동일한 후속 블록들이 동일한 가상 시간에 가상화 시스템의 상이한 실행시 생성될 수 있다. 일 예에서, 가상 시스템 시간의 사용으로 인해, 시간-민감형 암호화 해시 알고리즘은 다수의 테스트 사이클 중에 예측가능 또는 반복가능한 결과를 형성할 수 있다. 시뮬레이션의 경우, 가상 시스템 시간은 실시간과 연결되지 않을 수 있고, 실시간과 상이한 속도로 실행될 수 있어서, 가상 시간의 확장 또는 압축을 허용할 수 있다.
본 개시의 특정 양태는 기업 목표에 의해 설정된 공차에 따라 용인가능한 수준 내로 새롭거나 재구성되거나 비테스트된 시스템의 채택의 잠재적인 위험을 유지하는 단순화된 테스트 환경을 제공할 수 있다. 분산 불변 데이터 객체(DIDO) 또는 다수의 DIDO의 사용을 통해 테스트 절차를 단순화하고 테스트를 위한 분산 시스템 시작 과정을 상당히 단축할 수 있는 테스트 환경이 제공된다. 본원에 개시된 테스트 환경은 본원에 "분산 불변 데이터 객체 테스트 환경(DIDO TE)"으로 지칭될 수 있다. "DIDO"라는 용어는 또한 피어들의 분산 네트워크에 걸쳐 무결성 및 일관성을 유지하기 위해 합의 알고리즘을 이용하여 네트워크에 걸쳐 분산 데이터 및 연산을 지원하는 기저의 기술을 지칭하는 데에 사용될 수 있다. DIDO는 DIDO 내에 포함되거나 DIDO에 의해 관리되는 특정 데이터 객체가 절대 변경될 수 없는 정도로 불변이다. 데이터의 더 새로운 사본이 생성될 수 있고 원본과 공존할 수 있지만, DIDO의 각각의 새로운 사본은 다시 DIDO 내의 또는 DIDO의 이전 버전을 가리킨다. 실제 DIDO가 DIDO TE에 기준(baseline) DIDO로 사용하기 위해 생성될 때 DIDO의 상이한 버전들이 생성될 수 있다. 기준 DIDO의 동일한 사본이 테스트 플랜에 따라 DIDO TE에서 조작될 때 기준 DIDO의 버전들이 생성될 수 있다. 기준 DIDO의 상이한 버전들은 테스트 결과의 평가시 비교될 수 있다. 기준 DIDO의 하나의 버전의 초기 컨텐츠는 테스트 플랜 중 일부 또는 전부의 실행 후에 기준 DIDO의 동일한 버전의 컨텐츠와 비교될 수 있다.
DIDO가 구성되거나 인스턴스화된 후에, 사용자는 DIDO TE를 사용하여 시스템을 엄밀히 테스트할 수 있다. DIDO TE는 다양한 유형의 테스트가 수행되는 것을 가능하게 하는 가상화 컨테이너식 테스트베드로 구현될 수 있다. DIDO TE는 다수의 가상 노드를 포함하되, 각각의 가상 노드는 분산 시스템 구현예들 사이의 비교 테스트 및 평가를 비롯한 하나 이상의 유형의 테스트를 수행하도록 구성될 수 있다. DIDO TE는 테스트, 시뮬레이션, 또는 트레이닝 목적으로 사용될 수 있다. 일부 예에서, DIDO TE는 획정된 타임라인, 하나 이상의 사전-구성된 불변 객체, 및 사전-구성된 불변 객체를 수반하는 액션 또는 트랜잭션 시퀀스를 사용하여 시스템 구성요소의 작동을 검증하거나 확증하는 데에 사용될 수 있다. 후자의 예에서, 공지된 반복가능한 컨텍스트가 생성 및 재생성될 수 있되, 결정론적 결과가 대응하는 사양에 따라 기능하는 시스템, 노드, 플랫폼, 및 기능적 요소로부터 예상될 수 있다.
일부 예에서, DIDO TE가 새롭거나 업데이트된 플랫폼을 테스트하도록 구성될 수 있다. 일반적으로, 작동 시스템에 영향을 미치거나 이를 절충함 없이 실제 작동 조건 하에 새로운 플랫폼을 테스트하는 것이 바람직하다. DIDO TE는 실제 작동 시스템의 구성요소를 에뮬레이션하는 다양한 가상 노드로 구성될 수 있다. 인위적 타임라인이 DIDO TE에 대해 획정될 수 있다. DIDO TE는 실제 작동 시스템으로부터 캡처되는 실제 상태 정보, 데이터, 및 하나 이상의 DIDO의 사본으로 구성될 수 있다. 이후, DIDO TE는 DIDO TE 관리자에 의해 구성되는 선택된 시점에 작동을 시작할 수 있다. DIDO TE는 먼저 검증된 가상 노드들로 구성되고, 테스트 플랜을 위한 하나 이상의 기준을 생성하는 데에 사용될 수 있다. 기준은 명시 또는 식별된 DIDO TE 상에 실행되는 대응하는 테스트 플랜을 따르는 테스트로부터 예상되는 결과를 획정할 수 있다. 이후, DIDO TE는 테스트 플랜을 사용하여 새롭거나 업데이트된 물리적 노드를 에뮬레이션하는, DIDO TE에 도입되는 새롭거나 수정된 가상 노드를 실행하는 데에 사용될 수 있다. 테스트 플랜은 기준과 비교하여 새롭거나 수정된 가상 노드 및 결과를 포함하는 DIDO TE를 사용하여 실행될 수 있다. 결과는 테스트 플랜의 실행 후에 DIDO TE로부터 캡처되는 상태 정보, 데이터, 및 하나 이상의 DIDO를 포함할 수 있다. 결과는 수정된 가상 노드 및/또는 하나 이상의 검증된 가상 노드로부터 수집되는 정보를 포함할 수 있다. 결과는 예를 들어 테스트 플랜을 사용하여 생성되는 DIDO의 버전과 기준에 의해 제공되는 DIDO의 버전 사이의 차이의 분석을 포함할 수 있다. 테스트 플랜은 가상 노드들의 시스템 또는 하나 이상의 개별 노드의 능력, 신뢰성, 및 기능을 테스트하도록 의도된 이벤트 또는 스트레서의 도입, 타이밍 변경, 및 반복을 포함할 수 있다.
일부 예에서, DIDO TE는 검증된 노드들의 물리적 네트워크의 시뮬레이션을 수행하도록 구성될 수 있다. 일부 예에서, DIDO TE는 시뮬레이션을 수행하도록 구성될 수 있되, 특정 물리적 네트워크 또는 노드는 테스트 중인 시스템, 네트워크, 또는 노드에 의해 에뮬레이션된다. 시뮬레이션은 가변 조건 하에 또는 정상 작동시 거의 일어나지 않는 조건 하에 물리적 시스템의 성능 및 신뢰성을 평가하거나 예측하기 위해 수행될 수 있다. 시뮬레이션은 전체 시스템 성능 또는 개별 노드 성능, 노드 그룹, 노드 유형, 또는 동일한 유형의 노드의 버전을 평가하는 데에 사용될 수 있다. 예를 들어, 시뮬레이션은, 프로세서 조절(throttling)이 배터리 소모율을 감소시키고 온도 상승을 완화하는 데에 사용될 때, 휴대 전화 장치를 포함하는 노드 내의 처리 전력 손실의 효과를 탐색할 수 있다. DIDO TE는 실제 작동 시스템의 구성요소를 에뮬레이션하는 다양한 가상 노드로 구성될 수 있다. 인위적 타임라인이 DIDO TE에 대해 획정될 수 있다. 일부 시뮬레이션에서, 인위적 타임라인은 실제 시스템과 동일한 속도(최대 속도)를 따를 수 있다. 일부 시뮬레이션에서, 인위적 타임라인은 보다 관리가능한 테스트 기간 내에 긴 주기의 실제 작동을 시뮬레이션하기 위해 실제 시스템에 대해 가속될 수 있다. 일부 시뮬레이션에서, 인위적 타임라인은 실제 시스템에 대해 감속될 수 있다. 감속은 복잡하고 빠르게 일어나는 트랜잭션에 대한 개선된 가시성을 제공할 수 있다. DIDO TE는 실제 작동 시스템으로부터 캡처되는 실제 상태 정보, 데이터, 및 하나 이상의 DIDO의 사본으로 구성될 수 있다. 이후, DIDO TE는 DIDO TE 관리자에 의해 구성되는 선택된 시점에 작동을 시작할 수 있다. DIDO TE는 먼저 검증된 가상 노드들로 구성되고, 스크립트 또는 테스트 플랜을 위한 하나 이상의 기준을 생성하는 데에 사용될 수 있다. 이후, DIDO TE는 스크립트 또는 테스트 플랜을 사용하여 새롭거나 업데이트된 물리적 노드를 에뮬레이션하는, DIDO TE에 도입되는 새롭거나 수정된 가상 노드를 실행하는 데에 사용될 수 있다.
일부 예에서, DIDO TE는 트레이닝 목적으로 구성될 수 있다. 트레이닝 목적을 위해, DIDO TE는 수행될 트레이닝의 성질에 기반하는 테스트 또는 시뮬레이션 모드를 위해 구성될 수 있다. 경우에 따라, 최종 사용자 또는 시스템 운영자는 시스템의 올바른 작동, 문제 식별 및 해결, 및 오류 처리에 대해 학습자를 숙지 및 교육시키도록 구성되는 사전-구성된 흐름을 제공하는 스크립트-기반 DIDO TE를 사용하여 트레이닝될 수 있다. 경우에 따라, 시스템 엔지니어 및 개발자는 시스템 기능, 개발 도구, 및 문제 해결에 대해 학습자를 숙지 및 교육시키도록 구성되는 DIDO TE 상에 실행되는 테스트 플랜을 사용하여 트레이닝될 수 있다.
도 2는 테스트 환경(또는 DIDO TE)(202)을 포함하거나 통합하는 DIDO 테스트 프레임워크(200)의 예를 도시한다. DIDO 테스트 프레임워크(200)는 DIDO TE에서 노드들의 분산 네트워크의 제어 및 관리를 용이하게 할 수 있는 DIDO 솔루션 특이 개념 및 인터페이스의 특수한 집합으로 구성되는 임의의 환경에서 작동할 수 있다. DIDO 테스트 프레임워크(200)는 일련의 분산 워크플로우 과정을 통해 주문형 워크플로우를 조정할 수 있다. 일 예에서, DIDO 테스트 프레임워크(200)는 상태 또는 제어 요청을 전달하기 위해 메일박스 메시징 패러다임을 제공하거나 구현하거나 사용할 수 있다.
획정된 워크플로우의 단계들 전체에 걸쳐, 과정이 야기되고, 메시지가 실행되고, 응답이 수신되고, 리소스가 작업 완료 후에 해제된다. 과정은 분산 애플리케이션의 방식으로 분산될 수 있고, 일부 구현예에서, DIDO 테스트 프레임워크(200)는 그 자체의 인스턴스를 호스팅하여, 시스템의 무한 성장을 허용할 수 있다.
특정 예에서, DIDO TE(202)는, Erlang Open Telecom Platform(OTP)의 핵심 구성요소이며 본원에 Erlang 가상 머신으로 지칭될 수 있는 BEAM 가상 머신과 같은 가상 머신과 함께 사용하기 위해 구성될 수 있는, Elixir 함수형 프로그래밍 언어와 같은 함수형 프로그래밍 언어로 구축될 수 있다. 다른 예에서, 기타 가상 머신 및 관련 프로그래밍 언어가 채용될 수 있다. 도시된 DIDO TE(202)는 맞춤형 애플리케이션 프로그래밍 인터페이스(API)를 통해 메시징층을 관리하는 4개의 주요 애플리케이션을 구비한다. 일부 예에서, 이러한 API와의 상호작용은 공공 대표 상태 전송(REST) 인터페이스 또는 간단하고 사용이 용이한 그래픽 사용자 인터페이스(GUI)를 통해 이행될 수 있다. "REST 인터페이스"라는 용어는 웹 프로토콜 및 기술을 사용하는 분산 시스템 프레임워크를 지칭할 수 있다. REST 아키텍처는 클라이언트 및 서버 상호작용과 관련이 있을 수 있다. 애플리케이션이 임의의 호스트 운영 시스템을 위해 패키징 및 분산가능하게 되어, 격리된 작동 환경의 사용 및 이식성을 허용할 수 있다.
도시된 예에서, DIDO TE(202)는 테스트 환경 관리자(204)를 포함할 수 있다. 테스트 환경 관리자(204)는 하나 이상의 가상 노드(212)를 구성하도록 작동되는 하나 이상의 통신가능하게 결합된 처리 시스템을 포함할 수 있다. 경우에 따라, 가상 노드(212)는 테스트 환경 관리자(204) 또는 테스트 환경 관리자(204)의 구성요소인 처리 시스템과 물리적으로 공동-위치될 수 있다. 경우에 따라, 가상 노드(212)는 원격 위치에 배치될 수 있고, 인터넷과 같은 광역 네트워크 또는 근거리 네트워크를 통해 테스트 환경 관리자(204)와 통신할 수 있다. DIDO TE(202)는 테스트 환경 관리자(204)와 가상 노드들(212)을 분리하는 물리적 거리와 무관하게 테스트 환경 관리자(204)와 가상 노드들(212)의 통신을 허용하는 가상 네트워크(210)를 포함하거나 구성할 수 있다. 일부 예에서, 가상 네트워크(210)는 물리적 실제 분산 시스템에서 관리 시스템과 노드들 사이의 통신을 위해 사용되는 거리, 대기시간, 및 통신 프로토콜을 나타내도록 구성될 수 있다.
일부 구현예에서, 보안 HTTP(S) 웹 서버(DIDO 웹 서버(222))가 DIDO TE(202)와 상호작용하고 이를 구성하기 위해 사용자-친화적 웹 GUI를 호스팅하는 데에 사용될 수 있다. 일부 구현예에서, DIDO 웹 서버(222) 애플리케이션은 클라이언트 및 제3자 애플리케이션 액세스를 위해 REST 인터페이스와 공동-호스팅될 수 있다. 이들 두 서비스는 사용 사례 유연성 및 특징 구현 용이성을 위해 긴밀하게 결합될 수 있다. 제3자 인증은 향후 추가 플러그인 특징을 위한 다중 통합 가능성을 애플리케이션에 제공한다.
본 개시의 일 양태에 따르면, 가상 네트워크(210), 하나 이상의 가상 노드(212), 및/또는 에뮬레이션 또는 시뮬레이션된 시스템은 테스트 플랜 세트(230) 내에 획정되는 트랜잭션 및/또는 이벤트 시퀀스를 사용하여 테스트될 수 있다. 테스트는 테스트 플랜 세트(230) 내의 다수의 활성 테스트 플랜을 사용하여 수행될 수 있다. 경우에 따라, 테스트는 DIDO TE(202)에 의해 시뮬레이션될 수 있는 악성 에이전트(208)에 의해 야기되거나 이와 관련이 있는 시뮬레이션된 이벤트를 포함할 수 있다.
일 예에서, 하나 이상의 가상 노드는 수용 테스트 플랜(238)에 따라 수용 테스트를 수행하도록 구성될 수 있다. 수용 테스트는 소프트웨어 시스템이 요건 사양을 충족하였는지 판단하기 위해 수행될 수 있는 기법이다. 요건 사양은 소프트웨어 시스템에 요구되는 기능적 및 비기능적 특징을 기술할 수 있다.
일부 예에서, 하나 이상의 가상 노드는 소프트웨어의 기능이 공지되지 않은 일종의 소프트웨어 테스트로 획정될 수 있는 블랙박스 테스트 플랜(246)에 따라 블랙박스 테스트를 수행하도록 구성될 수 있다. 테스트는 제품의 내부 지식 없이 수행될 수 있다. 경우에 따라, 블랙박스 테스트는 구문 기반 테스트 및 등가 분할을 포함할 수 있다. 구문 기반 테스트는 컨텍스트-프리 문법에 의해 표현될 수 있는 언어 또는 컴파일러와 같은 소정의 언어에 의해 구문론적으로 표현될 수 있는 시스템에 적용될 수 있다. 전자의 경우, 테스트는 각각의 문법 규칙이 한 번 이상 사용되도록 생성될 수 있다. 등가 분할은, 각각의 클래스 멤버가 유사한 방식으로 작용하도록, 시스템의 입력 도메인을 다수의 등가 클래스로 분할하는 것을 수반할 수 있다. 많은 유형의 입력이 유사한 방식으로 작동하고, 유사한 입력은 그룹화될 수 있고, 테스트는 각각의 그룹의 단지 하나의 입력 상에 수행될 수 있다. 예를 들어, 각각의 등가 클래스 멤버는 유사하게 작동하고, 하나의 클래스 멤버 상에 수행되는 테스트 사례가 소정의 오류를 초래하는 경우, 다른 클래스 멤버들은 동일한 오류를 가지고 테스트에 응답할 것으로 예상될 수 있다.
일부 예에서, 하나 이상의 가상 노드는 단대단 테스트 플랜(240)에 따라 단대단 테스트(E2E 테스트)를 수행하도록 구성될 수 있다. E2E 테스트는 처음부터 끝까지 애플리케이션 워크플로우를 테스트하는 것을 수반하는 소프트웨어 테스트 방법을 지칭할 수 있다. 이러한 방법은 통합 및 데이터 무결성에 대해 시스템을 검증하기 위해 실제 시나리오를 복제하고자 한다. 가상 노드는 애플리케이션이 하드웨어, 네트워크 연결성, 외부 종속성, 데이터베이스, 및 기타 애플리케이션과 통신하는 방식을 판단하기 위해 애플리케이션에 대해 구성되는 모든 작동을 실행함으로써 E2E 테스트를 수행한다. 통상적으로, E2E 테스트는 기능적 테스트 및 시스템 테스트가 완료된 후에 실행된다.
일부 예에서, 하나 이상의 가상 노드는 통합 테스트 플랜(236)에 따라 통합 테스트를 수행하도록 구성될 수 있다. 통합 테스트는 개별 구성요소들이 함께 기능하는 방식을 판단하기 위해 이들을 테스트하도록 수행될 수 있다. 통합 테스트는, 통합시 명확한 버그가 없으며 개별 또는 독립형 요소로서 적절하게 기능하는 것으로 판단된 모듈들을 테스트하기 위해 수행될 수 있다. 통합 테스트는 가장 일반적인 기능적 테스트 유형이며 자동화 테스트를 사용하여 수행될 수 있다. 통상적으로, 상이한 개발자들이 동시에 다른 모듈들을 참조함 없이 시스템 또는 소프트웨어의 상이한 모듈들을 함께 구축한다. 이러한 개발자들은 개별 모듈들 상에 블랙박스 및 화이트박스 기능적 검증을 비롯한 광범위한 단위 테스트를 수행할 수 있다. 통합 테스트는 데이터 및 작동 명령을 개별 구성요소들이 아닌 전체 시스템의 일부로 작동되는 모듈들 사이에 흐르게 함으로써 수행된다. 통합 테스트는 사용자 인터페이스 작동, 데이터 포맷, 작동 타이밍, 애플리케이션 프로그래밍 인터페이스(API) 호출, 및 데이터베이스 액세스 및 사용자 인터페이스 작동의 문제를 드러낼 수 있다.
일부 예에서, 하나 이상의 가상 노드는 상호운용성 테스트 플랜(252)에 따라 상호운용성 테스트를 수행하도록 구성될 수 있다. 상호운용성 테스트는 개별 구성요소들이 구성요소 그룹 내에서 기능하는 능력을 테스트하기 위해 수행될 수 있다. 상호운용성은 가상 노드 또는 기능적 구성요소의 성능의 가변성에 대한 응답을 테스트하도록 구성될 수 있다. 예를 들어, 고속 통신 링크를 통해 액세스되는 공동-위치된 노드 또는 기능적 구성요소는 저속 통신 링크를 통해 액세스되는 원격-위치된 노드보다 더 작은 대기시간으로(즉, 더 빠르게) 응답할 수 있다. 상호운용성 테스트는 테스트 중인 가상 장치들이 타이밍 스큐에도 불구하고 트랜잭션 및 이벤트에 적절하게 응답할 수 있는 것을 보장하기 위해 수행될 수 있다. 상호운용성 테스트는 데이터 및 작동 명령을 개별 구성요소들이 아닌 전체 시스템의 일부로 작동되는 모듈들 사이에 흐르게 함으로써 수행될 수 있다. 상호운용성 테스트는 통합 테스트에 의해 제기되는 일련의 문제와 관련이 있는 타이밍 변경 및 기타 변경을 제기할 수 있다.
일부 예에서, 하나 이상의 가상 노드는 인터페이스 테스트 플랜(250)에 따라 노드들 사이에 인터페이스 테스트를 수행하도록 구성될 수 있다. 인터페이스는 2개의 구성요소를 통합하는 연결을 포함할 수 있고, API, 웹 서비스, 및 다른 유형의 연결 서비스를 포함할 수 있다. 인터페이스는 장치와 사용자 사이의 통신을 가능하게 하는 일련의 명령, 메시지, 및 기타 속성을 포함하는 소프트웨어를 포함할 수 있다. 인터페이스 테스트는 2개의 상이한 소프트웨어 시스템 사이의 통신이 제대로 수행되는지 검증하는 소프트웨어 테스트 유형으로 수행될 수 있다.
일부 예에서, 하나 이상의 가상 노드는 회귀 테스트 플랜(234)에 따라 회귀 테스트를 수행하도록 구성될 수 있다. 회귀 테스트는 사전-개발 및 테스트된 가상 노드들의 네트워크가 하나 이상의 노드의 변경 후에 예상대로 기능하는 것을 보장하기 위해 기능적 요건 및 비기능적 요건에 대해 반복적으로 실행되는 테스트를 포함할 수 있다. 장애 또는 오류는 기능과 관련하여 회귀로 지칭될 수 있다. 회귀 테스트를 요구하는 변경은 버그 수정, 소프트웨어 향상, 구성 변경, 및 전자 또는 기타 하드웨어 구성요소의 대체를 포함한다. 회귀 테스트 스위트(suite)는 각각의 결함이 발견됨에 따라 성장하는 경향이 있으므로, 테스트 자동화가 빈번하게 수반된다. 종종, 변경 영향 분석이 테스트의 적절한 서브세트를 판단하기 위해 수행된다(비회귀 분석).
일부 예에서, 하나 이상의 가상 노드는 건전성 테스트 플랜(248)에 따라 건전성 테스트를 수행하도록 구성될 수 있다. 건전성 테스트는 회귀 테스트의 서브세트일 수 있다. 건전성 테스트는 이행된 코드 변경이 예상대로 작용하는 것을 보장하기 위해 수행된다. 건전성 테스트는 소프트웨어 빌드에 대한 테스트가 진행될 수 있는지 확인하기 위한 중단이다. 건전성 테스트의 하나의 목적은 세부 테스트를 수행함 없이 애플리케이션의 기능을 검증하는 데에 있다. 건전성 테스트는 일반적으로 중요한 버그 수정이 이행된 후와 같이 제품 배포가 즉각적으로 요구되는 빌드 상에 수행된다.
일부 예에서, 하나 이상의 가상 노드는 연막 테스트 플랜(244)에 따라 연막 테스트를 수행하도록 구성될 수 있다. 연막 테스트는 기본 기능이 작용하는지 검증하기 위해 새롭거나 업데이트된 소프트웨어 빌드 상에 수행될 수 있다. 연막 테스트는 통상적으로 임의의 새로운 빌드 상에 수행되어야 하는 첫 번째 테스트이다. 연막 테스트시, 테스트 사례는 시스템의 가장 중요한 기능 또는 구성요소를 포괄하도록 선정된다. 목적은 철저한 테스트를 수행하는 것이 아니라 시스템의 중요한 기능이 예상대로 작용 중임을 검증하는 것이다.
일부 예에서, 하나 이상의 가상 노드는 단위 테스트 플랜(232)에 따라 단위 테스트를 수행하도록 구성될 수 있다. 단위 테스트는 구성요소 내의 코드의 각각의 부분이 요망 또는 예상된 출력을 전달하는 것을 보장하기 위해 수행된다. 단위 테스트는 통상적으로 구성요소의 사양 및 인터페이스와 관련이 있다. 단위 테스트는, 코드의 각각의 단위가 다른 단위로의 진행 전에 독립적으로 철저히 테스트됨에 따라, 코드 개발의 문서화를 제공할 수 있다. 단위 테스트는 가장 깨지기 쉬운 코드를 실행함으로써 기능적 테스트를 지원한다.
일부 예에서, 하나 이상의 가상 노드는 화이트박스 테스트 플랜(242)에 따라 화이트박스 테스트를 수행하도록 구성될 수 있다. 화이트박스 테스트는 블랙박스 테스트를 넘어서 소프트웨어의 기능, 및 데이터 구조, 내부 설계, 코드 구조를 비롯한 내부 구조를 분석하는 기법을 채용한다. 화이트박스 테스트는 또한 유리박스 테스트, 투명박스 테스트, 또는 구조적 테스트로 지칭될 수 있다.
DIDO TE는 본원에 DIDO-참조 아키텍처(DIDO-RA)로 지칭되는 참조 아키텍처에 기반할 수 있다. DIDO TE는 광범위하게 액세스가능 및 이용가능해질 수 있는 서비스로서의 고유 동적 분산 테스트 환경(TEaaS)을 제공한다. DIDO TE는 DIDO를 포함하거나 채용하는 플랫폼에 대한 광범위한 사용자 시나리오를 포괄한다. DIDO TE는 피어-투-피어, 스마트-계약을 구비한 블록체인, 및 클러스터화 애플리케이션을 포함하는 사용 사례들에 대해 가상 노드들의 네트워크를 신속하게 배포할 수 있다.
일부 예에서, 작동하는 제품의 핵심은 다음과 같은 DIDO TE 기능을 포함한다.
- 모든 필수 리소스가 상호운용성 테스트에 할당된 가상화 네트워크 내에 여러 종류의 노드를 생성할 수 있는 기능.
- 테스트를 위해 준비가 된 가상화 네트워크 상에 1개에서 수천 개까지 가상화 노드를 신속하게 확장할 수 있는 기능.
일부 예에서, 테스트 환경 관리자(204)는 DIDO TE 프레임워크(200)의 핵심 엔진 및 제어기이다. 테스트 환경 관리자(204)는 DIDO 가상 네트워크, 애플리케이션, 테스트 사례 실행, 및 리소스 관리의 전체 생애주기를 관리 및 제어한다. DIDO 테스트 관리자 API는 임의의 분산 애플리케이션에 대한 확장성 및 고유 프로토콜 지원을 보장하는 맞춤형 통합 노드 명령 맵을 포함할 수 있다. 맞춤형 리소스 조정 및 관리 프로토콜은 상이한 운영 시스템 및 기타 환경 선정 및 지원 파라미터에 대한 가상 노드들의 구성을 허용한다. 일부 예에서, 가상 노드는 가상 머신 또는 컨테이너일 수 있다.
도 3은 도 2에 도시된 DIDO 테스트 프레임워크(200)의 일부를 구현하는 데에 사용될 수 있는 플랫폼(304)을 제공하는 가상 노드(302)의 예를 도시한다. 가상 노드(302)는 본 개시의 특정 양태에 따라 구성될 수 있는 상이한 가상 노드 유형들(312, 322)을 사용하여 구현될 수 있다. 제1 가상 노드 유형(312)은 Erlang 가상 머신과 같은 가상 머신을 사용하여 구현될 수 있다. 제1 가상 노드 유형(312)에 의해 제공되는 플랫폼(314)은 선택된 가상 머신과 호환가능한 구성요소들로 구성될 수 있다. 제2 가상 노드 유형(322)은 컨테이너를 사용하여 구현될 수 있다. 컨테이너는 Kubernetes®와 같은 컨테이너 조정 플랫폼과 상호작용하기 위해 맞춤형 프레임워크를 사용하여 DIDO 애플리케이션을 랩핑할 수 있다. 일 예에서, IOTA 네트워크와 같은 오픈-소스 분산 원장 암호화폐 네트워크의 노드는 IOTA 가상 노드 인스턴스화의 개시 전에 가상 노드에 컨텍스트 및 기타 정보를 제공함으로써 가상 노드 상에 구현될 수 있다. 제2 가상 노드 유형(322)에 의해 제공되는 플랫폼(324)은 컨테이너 작동을 지원하도록 구성될 수 있다.
도 4는 본 개시의 특정 양태에 따라 제공되는 DIDO TE 시스템의 특정의 구성가능한 특징을 도시한다. DIDO TE 플랫폼(400)은 하드웨어 및 소프트웨어 모듈의 소정의 조합을 사용하여 구현될 수 있는 구성요소들의 예를 포함한다. DIDO TE 플랫폼(400)은 목표 DIDO 제조 환경을 에뮬레이션하는 방식으로 요망된 런타임 시스템을 실행하도록 구성가능한 프로세서를 포함하는 하나 이상의 처리 회로를 채용할 수 있다. 경우에 따라, 처리 회로는 목표 DIDO 제조 환경에 사용되는 프로세서의 유형을 포함할 수 있다. 경우에 따라, 처리 회로는 목표 DIDO 제조 환경에 사용되는 프로세서의 유형을 에뮬레이션할 수 있는 가상 머신의 제어 하에 작동될 수 있다.
DIDO TE 플랫폼(400)은 예를 들어 도 5에 추가로 도시된 바와 같이 TE 관리자에 의해 획정될 수 있다. DIDO TE 플랫폼(400)은 하드웨어 및 소프트웨어 모듈의 소정의 조합을 사용하여 구현될 수 있는 구성요소들(402)의 조합을 포함한다. TE 관리자는 하드웨어 플랫폼(404)에 의해 채용되는 하드웨어의 버전(406) 또는 빈티지를 비롯하여 사용될 하드웨어 플랫폼(404)의 유형을 획정할 수 있다. 일 예에서, 하드웨어 플랫폼(404)은 프로세서 유형 및 관련 리소스 및 주변기기에 의해 특징지어질 수 있다. 다른 예에서, 하드웨어 플랫폼(404)은 프로세서 및 관련 리소스 및 주변기기를 구비한 시스템-온-칩, 사용자 인터페이스, 및/또는 무선 모뎀에 의해 제공되는 일련의 능력을 구비한 휴대 전화와 같은 장치 유형에 의해 특징지어질 수 있다. TE 관리자는 명시된 런타임 버전(410)을 구비할 수 있는 런타임 플랫폼(408)을 포함하는 런타임 환경을 획정할 수 있다. 런타임 플랫폼(408)은 하드웨어 플랫폼(404)의 요소를 제어하거나 이와 상호작용하는 운영 시스템, 장치 구동기, 인터럽트 스킴, 및 기타 모듈을 나타낼 수 있다. 런타임 플랫폼(408)은 표준-획정 상용 또는 독점 운영 시스템을 포함할 수 있다. 일부 예에서, 운영 시스템은 Unix, Linux, Windows, Java VM 등이나 이들의 파생물의 버전일 수 있다. TE 관리자는 획정된 운영 시스템 또는 프로그래밍 언어(예를 들어, Solidity)에 대한 런타임 라이브러리를 비롯한 하나 이상의 라이브러리를 획정할 수 있다.
TE 관리자는 DIDO 플랫폼(412) 및 경우에 따라 DIDO 플랫폼(412)의 버전(414)을 획정할 수 있다. DIDO 플랫폼(412)은 Ethereum, Polkadot, Iota, 행성간 파일 시스템(IPFS) 등과 같은 표준-획정 상용 또는 독점 DIDO 환경을 포함할 수 있다.
DIDO TE 노드 플랫폼 유형(420)은 하드웨어 및 소프트웨어 모듈의 소정의 조합을 사용하여 구현될 수 있는 구성요소들(422)의 조합을 포함한다. DIDO TE 노드 플랫폼 유형(420)은 DIDO TE에 DIDO 노드를 구성하거나 사용할 수 있는 상이한 방식들을 설명한다. 각각의 DIDO TE 노드는 DIDO TE 플랫폼(424)과 관련이 있을 수 있고, TE의 버전(426) 또는 인스턴스화, DIDO TE 노드에 의해 구현되는 플랫폼 종류(428), 및 DIDO TE 노드에 의해 수행되는 역할(430)에 따라 구성될 수 있다. DIDO TE 플랫폼(424)은 DIDO TE 노드 플랫폼 유형(420)의 인스턴스화를 표시하거나 이에 대응할 수 있고, 가상 머신, 컨테이너, 또는 다른 종류의 가상화 노드로 식별되거나 분류될 수 있다. DIDO TE 노드는 월렛, 풀 노드, 라이트 노드, 아카이브 노드, 또는 기타 노드와 같은 역할(430)로 작동될 수 있다.
DIDO TE 노드 세트(440)는 TE에서 고유하게 식별될 수 있는 재사용가능한 노드 세트를 획정한다. DIDO TE 노드 세트(440)는 하드웨어 및 소프트웨어 모듈의 소정의 조합을 사용하여 구현될 수 있는 구성요소들(442)의 조합을 포함한다. DIDO TE 노드 세트(440)는 노드 세트 명칭(444)에 의해 식별될 수 있고, 명시된 노드 수(446)를 포함하는 노드 세트와 관련이 있을 수 있다. DIDO TE 노드 세트(440)는 하나 이상의 노드 구성 유형(448)을 표시할 수 있다. 경우에 따라, 각각의 DIDO TE 노드 세트(440)는 모두 동일한 유형인 노드 세트를 획정한다.
DIDO TE 가상 네트워크(460)는 DIDO TE 노드 세트(440)의 모음을 획정한다. DIDO TE 가상 네트워크(460)는 하드웨어 및 소프트웨어 모듈의 소정의 조합을 사용하여 구현될 수 있는 구성요소들(462)의 조합을 포함한다. DIDO TE 가상 네트워크(460)는 가상 네트워크 명칭(464)을 사용하여 식별될 수 있고, 상기 모음 내에 획정된 수의 노드(466)를 포함할 수 있다.
도 5는 DIDO TE 플랫폼을 획정하는 과정을 도시한 흐름도(500)이다. 과정은 DIDO TE 운영자 및 DIDO TE 관리자의 참여를 수반할 수 있다. DIDO TE 운영자는 새로운 DIDO TE 플랫폼들의 리스트의 생성을 담당할 수 있다. DIDO TE 운영자는 DIDO TE 플랫폼을 생성 및 검증할 필요가 없다. 경우에 따라, DIDO TE 운영자는 특정 DIDO TE 플랫폼을 생성 및 검증할 수 있다. DIDO TE 관리자는 DIDO TE에 이용가능한 DIDO TE 노드 유형 리스트를 유지한다. DIDO TE 플랫폼이 인증 및 승인될 때, DIDO TE 운영자에 의해 유지되는 DIDO 노드 TE 플랫폼 획정 데이터저장소(502)에 엔트리가 만들어질 수 있다. DIDO 노드 TE 플랫폼 획정 데이터저장소(502) 또는 데이터저장소(502)의 사본인 로컬 데이터저장소(522)가 DIDO TE 관리자에게 액세스가능할 수 있다. 일 예에서, 데이터저장소(502, 522)는 예를 들어 URL을 비롯하여 플랫폼 구성요소에 대한 참조를 유지한다.
DIDO TE 운영자는 DIDO TE 플랫폼에 대한 필요성을 식별하거나 DIDO TE 플랫폼에 대한 요청(504)을 수신할 수 있다. 요청된 TE 플랫폼을 설명하는 메타데이터(506)가 운영자에 의해 제공될 수 있고, 블록(508)에서 DIDO TE 운영자는 DIDO TE 노드 플랫폼 획정 데이터저장소(502)에 대한 질의를 통해 적합한 플랫폼이 존재하는지 판단할 수 있다. 일부 예에서, 적합 또는 부합하는 DIDO TE 플랫폼이 DIDO TE 노드 플랫폼 획정 데이터저장소(502) 내에 존재하고, 과정은 종료될 수 있다. 일부 예에서, 적합 또는 부합하는 DIDO TE 플랫폼이 이미 획정된 것이 아니고, 플랫폼 획정을 생성하기 위해, 요청(510)이 DIDO TE 관리자에게 이루어진다. DIDO TE 관리자는 플랫폼을 생성하거나 구성할 수 있고, 새로운 DIDO TE 플랫폼 획정을 위해 DIDO 노드 TE 플랫폼 획정 데이터저장소(502, 522)에 엔트리를 생성할 수 있다. 태스크의 완료시, 관리자는 운영자에게 요청의 상태를 알리거나, 요청은 시간 초과될 수 있다.
도 6은 DIDO TE 노드 세트를 획정하는 과정을 도시한 흐름도(600)이다. 과정은 DIDO TE 운영자 및 DIDO TE 관리자의 참여를 수반할 수 있다. DIDO TE 운영자는 DIDO TE 노드 세트들의 리스트의 관리 및 유지를 담당할 수 있다. DIDO TE 운영자는 DIDO TE 노드 세트를 생성 및 검증할 필요가 없지만, 경우에 따라, DIDO TE 운영자는 특정 DIDO TE 노드 세트를 생성 및 검증할 수 있다. DIDO TE 관리자는 DIDO TE와 사용하기 위해 이용가능한 DIDO TE 노드 세트들의 리스트를 유지한다. DIDO TE 노드 세트가 인증 및 승인될 때, DIDO TE 노드 세트 유형 획정 데이터저장소(602) 내의 DIDO TE 플랫폼에 엔트리가 만들어질 수 있다.
DIDO TE 운영자는 DIDO TE 노드 세트 획정에 대한 요청(604) 또는 필요성을 수신하거나 식별할 수 있다. DIDO TE 노드 세트를 설명하는 메타데이터(606)가 운영자에 의해 제공될 수 있고, 블록(608)에서 적합 또는 부합하는 노드 세트 획정이 이미 존재하는지 판단하기 위해 DIDO TE 노드 세트 유형 획정 데이터저장소(602)에 대한 질의가 이루어질 수 있다. 일부 예에서, 적합 또는 부합하는 DIDO TE 노드 세트가 이미 획정되어 있고, 과정은 종료될 수 있다. 적합 또는 부합하는 DIDO TE 노드 세트가 이미 획정된 것이 아니고, 노드 세트 획정을 생성하고 새로운 DIDO TE 노드 세트 획정을 위해 DIDO 노드 세트 유형 획정 데이터저장소(602)에 엔트리를 생성하기 위해, 요청(610)이 DIDO TE 관리자에게 전송될 수 있다. 태스크의 완료시, 관리자는 운영자에게 요청의 상태를 알리거나, 요청은 시간 초과될 수 있다. 블록들(622, 624)에서, 생성된 노드 세트 획정이 검증될 수 없을 때, 이는 통상적으로 운영자에 알려진다. 일 예에서, 검증 실패는 iOS 장치 상에 Iota 아카이브 노드를 생성하기 위한 운영자의 요청에서 기인할 수 있다.
도 7은 DIDO TE 가상 네트워크를 획정하는 과정을 도시한 흐름도(700)이다. 과정은 DIDO TE 운영자 및 DIDO TE 관리자의 참여를 수반할 수 있다. DIDO TE 운영자는 DIDO 가상 네트워크들의 리스트의 관리 및 유지를 담당할 수 있다. DIDO TE 운영자는 DIDO TE 가상 네트워크를 생성 및 검증할 필요가 없지만, 일부 구현예에서, DIDO TE 운영자는 특정 DIDO TE 가상 네트워크를 생성 및 검증하도록 구성될 수 있다. DIDO TE 관리자는 DIDO TE 가상 네트워크 획정 데이터저장소(702) 내에 DIDO TE와 함께 사용하기 위해 이용가능한 DIDO TE 가상 네트워크들의 리스트를 유지할 수 있다. DIDO TE 가상 네트워크가 인증 및 승인될 때, DIDO TE 가상 네트워크 획정 데이터저장소(702)에 엔트리가 만들어질 수 있다.
DIDO TE 운영자는 DIDO TE 가상 네트워크 획정에 대한 필요성 또는 요청(704)을 식별하거나 수신할 수 있다. 요청된 DIDO TE 가상 노드를 설명하는 메타데이터(706)가 운영자에 의해 생성되거나 운영자에게 제공될 수 있고, 블록(708)에서 적합한 가상 네트워크 획정이 존재하는지 판단하기 위해 DIDO TE 가상 네트워크 획정 데이터저장소(702)에 대한 질의의 응답이 사용될 수 있다. 일부 예에서, 적합 또는 부합하는 DIDO TE 가상 네트워크가 이미 획정되어 있고, 과정은 종료될 수 있다. DIDO TE 가상 네트워크가 이미 획정된 것이 아닌 경우, DIDO TE 가상 네트워크를 생성하고 새로운 DIDO TE DIDO TE 가상 네트워크 획정을 위해 DIDO TE 가상 네트워크 획정 데이터저장소(702)에 엔트리를 생성하기 위해, 요청(710)이 DIDO TE 관리자에게 이루어진다. 태스크의 완료시, 관리자는 운영자에게 요청의 상태를 알리거나, 요청은 시간 초과될 수 있다. 블록들(722, 724)에서, 생성된 노드 세트 획정이 검증될 수 없을 때, 이는 통상적으로 운영자에 알려진다. 일 예에서, 검증 실패는 채굴자 없이 Ethereum을 사용하여 가상 네트워크를 생성하기 위한 운영자의 요청 후에 일어날 수 있다.
도 8은 본 개시의 특정 양태에 따른 DIDO를 초기화하기 위한 특정 구성 설정(800)을 도시한다. 테스트 환경 관리자(204)는 다양한 유형의 다수의 구성 설정을 처리하기에 적합하다. 예를 들어, 테스트 환경은 노드의 수, 노드의 종류, 및 플랫폼이 지형 내에서 추적되도록 구성될 수 있다. 이러한 시나리오에서, 모든 노드는 새로운 최초 원장(예를 들어, 제네시스 블록)에 기반할 것이다.
도 9는 본 개시의 특정 양태에 따른 테스트 환경에 구성될 수 있는 코드 디버깅 설정(900)의 획정 예를 도시한다. 도 10은 본 개시의 특정 양태에 따른 DIDO TE 모니터링(1000)의 획정 예를 도시한다. 도 11은 본 개시의 특정 양태에 따른 악성 에이전트의 획정 예를 도시한다. 도 12는 본 개시의 특정 양태에 따른 DIDO TE 관리자 구성(1200)의 획정 예를 도시한다.
DIDO 편집자 환경은 웹-기반 통합 개발 환경(IDE)의 전체 생애주기를 관리 및 제어하도록 구성될 수 있다. DIDO 편집자 환경은 도 2에 도시된 DIDO TE(202)에 필적할 수 있고, 테스트 환경 관리자(204)의 등가물을 포함할 수 있다. 각각의 IDE는 DIDO TE 범위에서 DIDO에 대한 스마트 계약을 편집, 배포, 및 테스트하길 원하는 각각의 사용자를 위해 특별하게 생성 및 관리된다. 이러한 IDE는 개선된 사용 용이성을 제공하고 각각의 DIDO에 대해 고유 기능을 지원하기 위해 다중 플러그인을 사용하여 맞춤화될 것이다.
DIDO TE 노드 명령 및 제어는 DIDO의 생애주기 또는 이의 환경을 통제하거나 제어하기 위한 추가 벡터를 제공하는 DIDO를 위한 보충 애플리케이션이다. 일 예에서, DIDO TE 노드 명령 및 제어 애플리케이션은 분산 애플리케이션을 관리 및 구성하는 API를 제공하는데, 그렇지 않은 경우 내부 API가 없거나 사용자의 요구 및 필요를 충분히 지원하기 위해 추가 제어가 요구된다.
일부 예에서, 테스트 환경은 Google Cloud®, Amazon AWS®, 및 Microsoft Azure®와 같은 클라우드 서비스 상에 호스팅될 수 있다. 테스트 환경을 가상화하는 것은 야생(예를 들어, 상업, 공공 또는 독점 사이버 공간 등)으로의 우발적인 에이전트 릴리스에 관한 우려를 증가시킴 없이 불량 또는 악성 에이전트를 테스트하는 것을 가능하게 한다.
도 13은 본 개시의 특정 양태에 따라 제공되는 테스트(1300) 및 테스트 플랜 세트(1302)의 구조의 예를 도시한다. 테스트 플랜 세트(1302)는 도 2에 도시된 테스트 플랜 세트(230)에 대응할 수 있다. 다양한 예에서, 정적 또는 동적 테스트는 다음과 같은 11개 이상의 테스트 플랜을 포함한다:
- 단위 테스트
- 통합 테스트
- 단대단 테스트(E2E 테스트)
- 연막 테스트
- 건전성 테스트
- 회귀 테스트
- 수용 테스트
- 화이트박스 테스트
- 블랙박스 테스트
- 인터페이스 테스트
- 상호운용성 테스트
- 악성 액터 테스트(도 11 참조).
각각의 테스트 플랜은 예상 결과와의 비교를 위한 테스트 결과를 생성하는 다수의 테스트 단계로 구성되는 테스트 세트를 획정할 수 있다.
DIDO TE는 체계적이고 재현가능한 테스트가 노드들의 DIDO TE 가상 네트워크를 사용하여 이행되는 것을 가능하게 한다. 테스트 세트(1304)는 테스트 네트워크 내의 단일 DIDO 가상 노드, 가상 노드들의 서브세트, 또는 모든 가상 노드를 실행할 수 있다. 테스트는 테스트 플랜 세트(1302) 내의 테스트 플랜 및 테스트 세트(1304)를 고유하게 식별하는 테스트 획정을 사용하여 제어될 수 있거나 이와 관련이 있을 수 있다. 테스트 세트(1304)는 하나 이상의 테스트 단계(1306)를 포함하되, 각각의 테스트 단계(1306)는 테스트 단계(1306)에 대한 예상 테스트 결과를 획정할 수 있다. 테스트 단계(1306)는 테스트 단계(1306)의 성과를 캡처하는 테스트 결과를 생성할 것으로 예상된다.
도 14는 DIDO TE를 사용하여 수행되는 테스트를 획정하는 과정을 도시한 흐름도(1400)이다. 과정은 DIDO TE 운영자 및 DIDO TE 관리자의 참여를 수반할 수 있다. DIDO TE 운영자는 DIDO TE 테스트들의 리스트의 관리 및 유지를 담당한다. DIDO TE 운영자는 DIDO TE 테스트를 생성 및 검증할 필요가 없다. 경우에 따라, DIDO TE 운영자는 특정 DIDO TE 테스트를 생성 및 검증하도록 구성될 수 있다. DIDO TE 관리자는 DIDO TE 테스트 획정 데이터저장소(1402) 내에 DIDO TE와 함께 사용하기 위해 이용가능한 DIDO TE들의 리스트를 유지할 수 있다. DIDO TE 테스트가 인증 및 승인될 때, DIDO TE 테스트 획정 데이터저장소(1402)에 엔트리가 만들어진다.
일 예에서, DIDO TE 운영자는 DIDO TE 테스트 획정에 대한 요청(1404)을 수신하거나 DIDO TE 테스트 획정에 대한 필요성을 식별할 수 있다. DIDO TE 테스트를 설명하는 메타데이터(1406)가 운영자에 의해 생성되거나 운영자에게 제공될 수 있고, 블록(1408)에서 적합한 테스트 획정이 이미 획정되어 있는지 판단하기 위해 DIDO TE 테스트 획정 데이터저장소(1402)에 대한 질의의 응답이 사용될 수 있다. DIDO TE 테스트가 이미 획정된 것이 아닌 경우, 테스트를 생성하고 새로운 테스트 획정을 위해 DIDO 테스트 데이터저장소에 엔트리를 생성하기 위해, 요청(1410)이 DIDO TE 관리자에게 이루어진다. 태스크의 완료시, DIDO TE 관리자는 DIDO TE 운영자에게 요청의 상태를 알리거나, 요청은 시간 초과될 수 있다. 블록들(1422, 1424)에서, 생성된 DIDO TE 테스트 획정이 검증될 수 없을 때, 이는 통상적으로 운영자에 알려진다. 일 예에서, 검증 실패는 예상 결과를 제공함 없이 테스트를 생성하기 위한 요청이 운영자에 의해 제공된 후에 일어날 수 있다.
도 15는 DIDO TE를 사용하여 테스트를 실행하는 과정을 도시한 흐름도(1500)이다. 도 2를 계속 참조하면, 과정은 DIDO TE 저장소 관리자, DIDO TE 품질 관리자, 및 DIDO TE 관리자의 참여를 수반할 수 있다. DIDO TE 저장소 관리자 또는 DIDO TE 운영자는 품질 평가를 생성 또는 수행할 필요가 없다. DIDO TE 품질 관리자는 기본 코드 수정을 분석하고, 릴리스 전에 품질을 보장하기 위해 새로운 기본 코드 상에 수행될 필요가 있는 테스트들의 리스트를 획정한다. 품질 평가를 요구하지 않는 기본 코드의 변경의 예는 코드 기본 내의 커멘트의 추가 또는 수정일 수 있다. DIDO TE 테스트 관리자는 릴리스 전에 제품의 품질을 보장하기 위해 요구되는 모든 테스트의 실행을 담당한다. 테스트 과정의 종료시, 품질 평가 보고서가 각각의 요구된 테스트에 대해 생성되는 개별 테스트 보고서로부터 생성된다.
일 예에서, DIDO TE 저장소 관리자는 품질 평가가 이행될 필요성을 식별한다. 테스트 절차를 설명하는 메타데이터가 저장소의 품질 평가를 시작하기 위해 DIDO TE 저장소 관리자에 의해 DIDO TE 품질 관리자에게 제공된다. DIDO TE 품질 관리자는 기본 코드 저장소를 분석하고, 기본 코드의 품질을 보장하기 위해 어떤 테스트가 이행될 필요가 있는지 판단한다. DIDO TE 테스트 관리자는 테스트들의 리스트를 통해 작업하고, 이행된 각각의 개별 테스트를 포괄하며 전체 결과를 요약하는 테스트 보고서를 생성한다. 태스크의 완료시, DIDO TE 테스트 관리자는 DIDO TE 품질 관리자에게 요청의 상태를 알리거나, 테스트 요청은 시간 초과된다.
다양한 예에서, 모든 요청된 리소스가 상호운용성 테스트에 할당된 가상화 네트워크 내에 여러 종류의 노드가 생성된다. 시스템은 가상화 네트워크 상에 1개에서 수천 개까지 가상화 노드를 확장할 수 있다. 경우에 따라, 테스트 플랫폼은 초 단위 또는 몇 분의 일초 단위로 측정가능한 시간 프레임에서 구성 및 작동가능할 수 있다. 테스트 환경은 우발적인 에이전트 릴리스에 관한 우려 없이 불량 또는 악성 에이전트 테스트를 허용하기 위해 가상화될 수 있다. 컨테이너 조정은 컨테이너 조정을 이용하여 분산 시스템의 포괄적인 정적 및 동적 테스트를 가능하게 하는 데에 사용될 수 있다.
도 16은 DIDO TE 프레임워크(1600)의 예를 도시한다. DIDO TE(1602)는 DIDO TE에서 노드들의 분산 네트워크의 제어 및 관리를 용이하게 하는 DIDO 솔루션 특이 개념 및 인터페이스의 특수한 집합을 포함하는 임의의 환경에서 작동할 수 있는 프레임워크를 제공한다. DIDO TE 프레임워크(1600)는 예를 들어 상태 또는 제어 요청을 전달하기 위해 메일박스 메시징 패러다임 또는 인터페이스를 사용할 수 있는 일련의 분산 워크플로우 과정(1610)을 통해 주문형 워크플로우를 조정할 수 있다. 획정된 워크플로우의 단계들 전체에 걸쳐, 과정이 야기되고, 메시지가 실행되고, 응답이 수신되고, 리소스가 작업 완료 후에 해제된다. 이러한 과정은 임의의 분산 애플리케이션과 유사한 방식으로 분산되기 때문에, 프레임워크는 심지어 그 자체를 호스팅하여, 시스템의 무한 성장을 허용할 수 있다.
일 예에서, DIDO TE(1602)는 Erlang 가상 머신과 함께 사용하기 위해 구성될 수 있는 Elixir 함수형 프로그래밍 언어와 같은 함수형 프로그래밍 언어로 구축될 수 있다. 도시된 DIDO TE(1602)는 맞춤형 애플리케이션 프로그래밍 인터페이스(API)를 통해 메시징층을 관리하는 애플리케이션을 실행할 수 있는 테스트 환경 관리자(1604)를 포함한다. 일부 예에서, 이러한 API와의 상호작용은 공공 REST 인터페이스 또는 간단하고 사용이 용이한 그래픽 사용자 인터페이스(GUI)를 통해 실시될 수 있다. "REST 인터페이스"라는 용어는 웹 프로토콜 및 기술을 사용하는 분산 시스템 프레임워크를 지칭할 수 있다. REST 아키텍처는 클라이언트 및 서버 상호작용과 관련이 있을 수 있다. 애플리케이션이 임의의 호스트 운영 시스템을 위해 패키징 및 분산가능하게 되어, 격리된 작동 환경의 사용 및 이식성을 허용할 수 있다.
일부 예에서, 보안 HTTP(S) 웹 서버(DIDO Web)가 DIDO TE(1602) 테스트 환경과 상호작용하고 이를 구성하기 위해 사용자-친화적 웹 GUI를 호스팅하는 데에 사용될 수 있다. 이러한 애플리케이션은 또한 클라이언트 및 제3자 애플리케이션 액세스를 위해 REST 인터페이스를 호스팅한다. 이들 두 서버는 사용 사례 유연성 및 특징 구현 용이성을 위해 긴밀하게 결합될 수 있다. 제3자 인증은 향후 추가 플러그인 특징을 위한 다중 통합 가능성을 애플리케이션에 제공한다.
시스템 내의 각각의 노드는 물리적 노드 또는 가상 노드일 수 있다. 시스템 내의 모든 노드는 할당된 고유 식별자(노드 ID)를 통해 식별될 수 있다. 특정 양태에 따르면, 다수의 노드가 동일한 노드 ID로 획정될 수 있고, 공통 ID를 공유하는 한 쌍의 노드는 트윈으로 지칭될 수 있다. 트윈은 활성 시스템 내에 동시에 활성화될 수 없다. 즉, 트윈의 어드레스를 갖는 노드의 하나의 인스턴스만이 활성 또는 작동 시스템에서 임의의 특정 시간에 활성화 및 어드레스될 수 있다. 일부 구현예에서, 스위칭 회로 또는 구성요소는 하나의 노드의 가상 인스턴스들(예를 들어, 가상 트윈 풀(1614) 내의 노드들) 또는 물리적 인스턴스화(실제 트윈(1618))로부터 선택되는 트윈으로 트래픽을 라우팅하도록 구성될 수 있다. 스위치는 동일한 노드 ID를 갖는 노드들의 다수의 인스턴스가 활성 또는 작동 시스템 내에 존재하는 것을 허용하도록 작동될 수 있다. 동일한 노드 ID를 갖는 가상 노드들은 가상 트윈 풀(1614)의 일부로 존재할 수 있다. 가상 트윈 스위치(1616)는 런타임 중에 사용하기 위해 가상 트윈 풀(1614) 내의 인스턴스들 간에 선택하도록 구성될 수 있다. 가상 트윈 풀(1614) 외에도, 물리적 노드(1612)의 인스턴스가 트윈으로 존재 및 작동할 수 있다. 가상 트윈 스위치(1616)는 물리적 노드(1612)가 가상 트윈 풀(1614) 내의 임의의 가상 노드 대신에 사용되는 것을 허용하도록 구성될 수 있다. 초기화시, 제어기 또는 가상 트윈 스위치(1616)는 물리적 노드(1612) 또는 가상 트윈 풀(1614) 내의 가상 트윈이 사용될지 판단할 수 있다. 물리적 노드(1612)는 가상 세계와 물리적 세계 사이의 갭을 해소하기 위해 추가적인 구성 파라미터를 요구할 수 있다.
도 17은 도 2의 DIDO TE 프레임워크(200) 내에 도시된 테스트 환경 관리자(204) 또는 도 16의 DIDO TE 프레임워크(1600) 내에 도시된 테스트 환경 관리자(1604)를 포함할 수 있는 테스트 플랫폼을 구성하는 방법을 도시한 흐름도(1700)이다. 블록(1702)에서, 테스트 환경 관리자(204 또는 1604)는 관심 분산 시스템에 대한 테스트, 시뮬레이션, 또는 트레이닝 요청에 응하여 가상 노드들의 가상 네트워크를 구성할 수 있다. 블록(1704)에서, 테스트 환경 관리자(204 또는 1604)는 가상 네트워크 내의 복수의 가상 노드 사이에 분산 시스템을 배포할 수 있다. 블록(1706)에서, 테스트 환경 관리자(204 또는 1604)는 복수의 가상 노드로부터 테스트, 시뮬레이션, 또는 트레이닝 결과를 수신할 수 있다. 블록(1708)에서, 테스트 환경 관리자(204 또는 1604)는 복수의 노드로부터 수신되는 테스트, 시뮬레이션, 또는 트레이닝 결과를 결합함으로써 요청에 대한 응답을 제공할 수 있다.
일부 예에서, 테스트 환경 관리자(204 또는 1604)는 복수의 가상 노드 중 가상 노드를 구현하기 위해 복수의 물리적 노드 각각을 구성할 수 있다. 복수의 물리적 노드는 서로에 대해 지리적으로 원격 위치에 배치되는 물리적 노드들을 포함할 수 있다. 경우에 따라, 가상 네트워크는 적어도 하나의 물리적 노드와 협력한다. 예를 들어, 테스트, 시뮬레이션, 또는 트레이닝은 가상 네트워크와 상호작용하는 실제 장치, 노드, 또는 시스템을 사용하여 수행될 수 있다. 후자의 예에서, 실제 장치, 노드, 또는 시스템은 테스트 중인 암호화 서버 또는 장치, 노드, 또는 시스템을 포함할 수 있다.
일 예에서, 가상 네트워크의 적어도 하나의 노드는 컨테이너를 포함한다. 일 예에서, 가상 네트워크의 적어도 하나의 노드는 가상 머신을 포함한다.
일 예에서, 테스트 환경 관리자(204 또는 1604)는 요청이 테스트에 관한 것일 때 일련의 테스트 절차를 갖는 플랜을 구성하고, 가상 네트워크의 노드들 사이에 테스트 절차의 일부를 할당하고, 테스트 절차의 결과를 수신하고, 복수의 노드로부터 수신되는 테스트 절차의 결과를 결합함으로써 테스트 결과를 제공할 수 있다.
다양한 예에서, 테스트 환경 관리자(204 또는 1604)는 적어도 하나의 가상 노드가 DIDO를 수정하고 테스트의 결과에 수정된 DIDO를 제공하도록 테스트 플랜(230, 1622)을 구성할 수 있다. DIDO는 하나 이상의 트랜잭션 기록을 안전하게 유지하도록 구성되는 분산 원장을 포함할 수 있다.
다양한 예에서, 테스트 환경 관리자(204 또는 1604)는 가상 노드들의 가상 네트워크 상에 테스트 플랜(230, 1622)을 실행하기 위한 타임라인을 구성할 수 있다. 타임라인은 실시간과 일치하게 실행될 수 있다. 타임라인은 실시간보다 빠른 속도로 실행될 수 있다. 타임라인은 실시간보다 느린 속도로 실행될 수 있다. 테스트 환경 관리자(204 또는 1604)는 테스트, 시뮬레이션, 또는 트레이닝 기반의 실행을 반복할 수 있다. 가상 노드들의 가상 네트워크 상에 테스트 플랜(230, 1622)을 실행하기 위한 타임라인은 테스트, 시뮬레이션, 또는 트레이닝의 각각의 실행에 대해 재시작된다. 테스트 환경 관리자(204 또는 1604)는 적어도 하나의 가상 노드가 DIDO의 분산 원장을 수정하도록 테스트 플랜(230, 1622)을 구성할 수 있다. 분산 원장을 수정하는 것은 시간-민감형 암호화를 사용하여 분산 원장에 의해 유지되는 정보를 암호화하는 것을 포함할 수 있다. 타임라인은 시간-민감형 암호화에 영향을 미치도록 구성될 수 있다.
일 예에서, 테스트 환경 관리자(204 또는 1604)는 가상 네트워크 내의 각각의 가상 노드가 검증된 노드를 포함할 때 테스트, 시뮬레이션, 또는 트레이닝을 실행함으로써 테스트 플랜(230, 1622)에 대한 기준 결과를 생성하고, 기준 결과와 가상 네트워크에 적어도 하나의 가상 노드를 추가 또는 수정한 후에 테스트, 시뮬레이션, 또는 트레이닝을 실행함으로써 획득되는 추가 결과를 비교하고, 기준 결과와 추가 결과의 비교에 기반하여 추가 또는 수정된 가상 노드 또는 가상 네트워크를 검증할 수 있다.
도 18은 분산 시스템 내의 노드를 테스트하는 방법을 도시한 흐름도(1800)이다. 분산 시스템은 도 2의 DIDO TE 프레임워크(200) 내에 도시된 테스트 환경 관리자(204) 또는 도 16의 DIDO TE 프레임워크(1600) 내에 도시된 DIDO 테스트 관리자(1604)를 포함할 수 있다. 블록(1802)에서, 테스트 환경 관리자(204 또는 1604)는 DIDO를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하기 위해 복수의 가상 노드를 구성할 수 있다. 블록(1804)에서, 테스트 환경 관리자(204 또는 1604)는 에뮬레이션된 분산 시스템의 테스트를 개시하되, 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것을 포함할 수 있다. 블록(1806)에서, 테스트 환경 관리자(204 또는 1604)는 수정된 제1 DIDO와 검증된 시스템에 의해 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 에뮬레이션된 분산 시스템을 검증할 수 있다. 일부 예에서, 적어도 하나의 트랜잭션이 에뮬레이션된 분산 시스템에서 테스트 중인 노드에 의해 실행된다. 테스트 중인 노드는 수정된 제1 DIDO의 컨텐츠가 제2 DIDO의 컨텐츠에 대응할 때 검증될 수 있다.
특정 예에서, 제1 DIDO는 참조 DIDO의 사본이다. 제2 DIDO는 검증된 시스템이 제1 DIDO의 동일한 사본 상에 하나 이상의 트랜잭션을 수행함으로써 획득될 수 있다. 참조 DIDO는 하나 이상의 트랜잭션 기록을 안전하게 유지하도록 구성되는 제1 분산 원장을 포함하거나 이와 관련이 있을 수 있다. 제2 DIDO는 제2 분산 원장을 포함할 수 있다. 수정된 제1 DIDO는 제3 분산 원장을 포함한다. 이러한 분산 원장들 각각은 독립적으로 유지될 수 있다. 수정된 제1 DIDO의 컨텐츠는 제2 분산 원장 내의 복호화 정보가 제3 분산 원장 DIDO 내의 대응하는 복호화 정보에 부합할 때 제2 DIDO의 컨텐츠에 대응하는 것으로 간주될 수 있다. 검증된 시스템은 실제 시스템일 수 있다. 참조 DIDO, 제2 DIDO, 및 하나 이상의 트랜잭션은 대응하는 기록된 시점에 실제 시스템으로부터 복사될 수 있다.
일부 구현예에서, 테스트 환경 관리자(204 또는 1604)는 에뮬레이션된 분산 시스템을 사용하여 테스트 플랜(230, 1622)을 실행하기 위한 테스트 타임라인의 시작점을 구성할 수 있다. 하나 이상의 트랜잭션이 테스트 플랜(230, 1622)에 의해 획정된다. 제1 작동 모드에서, 테스트 타임라인은 실시간과 일치하는 속도로 실행된다. 제2 작동 모드에서, 테스트 타임라인은 실시간과 상이한 속도로 실행된다. 테스트 환경 관리자(204 또는 1604)는 테스트 타임라인을 시작점으로 재설정한 후에 제1 DIDO의 비수정 버전으로 테스트를 재시작할 수 있다. 테스트 환경 관리자(204 또는 1604)는 적어도 하나의 가상 노드가 제1 DIDO의 분산 원장을 수정하도록 테스트 플랜(230, 1622)을 구성할 수 있다. 분산 원장을 수정하는 것은 시간-민감형 암호화를 사용하여 테스트 타임라인에 따라 분산 원장에 의해 유지되는 정보를 암호화하는 것을 포함할 수 있다.
일부 예에서, 테스트 환경 관리자(204 또는 1604)는 복수의 가상 노드 중 상이한 가상 노드들을 구현하기 위해 복수의 물리적 노드를 구성할 수 있다. 복수의 물리적 노드는 서로에 대해 지리적으로 원격 위치에 배치되는 물리적 노드들을 포함할 수 있다. 일 예에서, 복수의 가상 노드 중 적어도 하나의 노드는 컨테이너를 포함한다.
특정 구현예에서, 테스트 환경 관리자(204 또는 1604)는 에뮬레이션된 분산 시스템 내의 각각의 가상 노드가 검증된 노드를 포함할 때 테스트를 실행함으로써 테스트 플랜(230, 1622)에 대한 기준 결과를 생성하고, 기준 결과와 에뮬레이션된 분산 시스템에 적어도 하나의 가상 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교하고, 기준 결과가 추가 결과에 부합할 때 추가 또는 수정된 가상 노드 또는 에뮬레이션된 분산 시스템을 검증하도록 구성될 수 있다. 가상 트윈 노드가 에뮬레이션된 분산 시스템 내에 포함될 수 있되, 가상 트윈 노드는 에뮬레이션된 분산 시스템에서 하나 이상의 다른 트윈 노드에 의해 공유되는 식별자를 사용하여 어드레스된다. 테스트 환경 관리자(204 또는 1604)는 기준 결과와 가상 트윈 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교할 수 있고, 기준 결과가 추가 결과에 부합할 때 적어도 하나의 추가 또는 수정된 가상 트윈 노드 또는 에뮬레이션된 분산 시스템을 검증할 수 있다. 테스트 환경 관리자(204 또는 1604)는 기준 결과와 하나 이상의 다른 트윈 노드에 물리적 트윈 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교할 수 있고, 기준 결과가 추가 결과에 부합할 때 추가 또는 수정된 물리적 트윈 노드 또는 에뮬레이션된 분산 시스템을 검증할 수 있다.
청구항 제17항 및 제18항의 방법은 분산 시스템을 사용하여 구현되는 테스트 플랫폼 또는 테스트 환경으로 구현될 수 있다. 테스트 플랫폼 또는 테스트 환경은, 각각 복수의 작동 노드 중 하나 이상을 작동시키도록 구성되는 복수의 처리 시스템, 복수의 처리 시스템에 결합되고 복수의 가상 노드를 통신가능하게 결합하도록 구성되는 네트워크로, 그에 따라 복수의 가상 노드는 DIDO를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하도록 구성되는 네트워크, 및 테스트 관리 프로세서를 포함할 수 있다. 테스트 관리 프로세서는 에뮬레이션된 분산 시스템의 테스트를 개시하도록 구성되되, 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것을 포함할 수 있다. 테스트 관리 프로세서는 수정된 제1 DIDO와 검증된 시스템에 의해 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 에뮬레이션된 분산 시스템을 검증하도록 추가로 구성될 수 있다.
일부 예에서, 하나 이상의 트랜잭션 중 적어도 하나는 에뮬레이션된 분산 시스템에서 테스트 중인 가상 노드에 의해 실행된다. 테스트 관리 프로세서는 수정된 제1 DIDO의 컨텐츠가 제2 DIDO의 컨텐츠에 대응할 때 테스트 중인 가상 노드를 검증하도록 추가로 구성될 수 있다.
제1 DIDO는 참조 DIDO의 사본일 수 있고/거나, 제2 DIDO는 검증된 시스템이 제1 DIDO의 동일한 사본 상에 하나 이상의 트랜잭션을 수행함으로써 획득된다. 검증된 시스템은 실제 시스템을 포함할 수 있다. 참조 DIDO, 제2 DIDO, 및 하나 이상의 트랜잭션은 대응하는 기록된 시점에 실제 시스템으로부터 복사될 수 있다.
일부 구현예에서, 테스트 관리 프로세서는 에뮬레이션된 분산 시스템 내의 각각의 가상 노드가 검증된 노드를 포함할 때 테스트를 실행함으로써 테스트 플랜(230, 1622)에 대한 기준 결과를 생성하고, 기준 결과와 가상 트윈 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교하고, 기준 결과가 추가 결과에 부합할 때 적어도 하나의 추가 또는 수정된 트윈 노드 또는 에뮬레이션된 분산 시스템을 검증하도록 추가로 구성된다. 트윈 노드는 에뮬레이션된 분산 시스템에서 하나 이상의 다른 트윈 노드에 의해 공유되는 식별자를 사용하여 어드레스될 수 있다.
일부 구현예가 다음과 같이 번호가 부여된 절들에 설명된다:
1.
분산 시스템 내의 노드를 테스트하는 방법으로서, 분산 불변 데이터 객체(DIDO)를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하기 위해 복수의 가상 노드를 구성하는 단계; 에뮬레이션된 분산 시스템의 테스트를 개시하는 단계로, 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것을 포함하는 단계; 및 수정된 제1 DIDO와 검증된 시스템에 의해 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 에뮬레이션된 분산 시스템을 검증하는 단계를 포함하는, 방법.
2.
제1절에 있어서, 하나 이상의 트랜잭션 중 적어도 하나는 에뮬레이션된 분산 시스템에서 테스트 중인 노드에 의해 실행되는, 방법.
3.
제1절 또는 제2절에 있어서, 수정된 제1 DIDO의 컨텐츠가 제2 DIDO의 컨텐츠에 대응할 때 테스트 중인 노드를 검증하는 단계를 추가로 포함하는, 방법.
4.
제1절 내지 제3절 중 어느 한 절에 있어서, 제1 DIDO는 참조 DIDO의 사본이며, 제2 DIDO는 검증된 시스템이 제1 DIDO의 동일한 사본 상에 하나 이상의 트랜잭션을 수행함으로써 획득되는, 방법.
5.
제4절에 있어서, 참조 DIDO는 하나 이상의 트랜잭션 기록을 안전하게 유지하도록 구성되는 제1 분산 원장을 포함하고, 제2 DIDO는 제2 분산 원장을 포함하고, 수정된 제1 DIDO는 제3 분산 원장을 포함하되, 각각의 분산 원장은 독립적으로 유지되는, 방법.
6.
제5절에 있어서, 수정된 제1 DIDO의 컨텐츠는 제2 분산 원장 내의 복호화 정보가 제3 분산 원장 DIDO 내의 대응하는 복호화 정보에 부합할 때 제2 DIDO의 컨텐츠에 대응하는, 방법.
7.
제4절 내지 제6절 중 어느 한 절에 있어서, 검증된 시스템은 실제 시스템이며, 참조 DIDO, 제2 DIDO, 및 하나 이상의 트랜잭션은 대응하는 기록된 시점에 실제 시스템으로부터 복사되는, 방법.
8.
제1절 내지 제7절 중 어느 한 절에 있어서, 에뮬레이션된 분산 시스템을 사용하여 테스트 플랜을 실행하기 위한 테스트 타임라인의 시작점을 구성하는 단계로, 하나 이상의 트랜잭션은 테스트 플랜에 의해 획정되는 것인 단계를 추가로 포함하는, 방법.
9.
제8절에 있어서, 테스트 타임라인은 제1 작동 모드에서 실시간과 일치하는 속도로 실행되고, 제2 작동 모드에서 실시간과 상이한 속도로 실행되는, 방법.
10.
제8절 또는 제9절에 있어서, 테스트 타임라인을 시작점으로 재설정한 후에 제1 DIDO의 비수정 버전으로 테스트를 재시작하는 단계를 추가로 포함하는, 방법.
11.
제8절 내지 제10절 중 어느 한 절에 있어서, 적어도 하나의 가상 노드가 제1 DIDO의 분산 원장을 수정하도록 테스트 플랜을 구성하는 단계로, 분산 원장을 수정하는 것은 시간-민감형 암호화를 사용하여 테스트 타임라인에 따라 분산 원장에 의해 유지되는 정보를 암호화하는 것을 포함하는 단계를 추가로 포함하는, 방법.
12.
제1절 내지 제11절 중 어느 한 절에 있어서, 복수의 가상 노드 중 상이한 가상 노드들을 구현하기 위해 복수의 물리적 노드를 구성하는 단계로, 복수의 물리적 노드는 서로에 대해 지리적으로 원격 위치에 배치되는 물리적 노드들을 포함하는 것인 단계를 추가로 포함하는, 방법.
13.
제1절 내지 제12절 중 어느 한 절에 있어서, 복수의 가상 노드 중 적어도 하나의 노드는 컨테이너를 포함하는, 방법.
14.
제1절 내지 제13절 중 어느 한 절에 있어서, 에뮬레이션된 분산 시스템 내의 각각의 가상 노드가 검증된 노드를 포함할 때 테스트를 실행함으로써 테스트에 대한 기준 결과를 생성하는 단계; 기준 결과와 에뮬레이션된 분산 시스템에 적어도 하나의 가상 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교하는 단계; 및 기준 결과가 추가 결과에 부합할 때 추가 또는 수정된 가상 노드 또는 에뮬레이션된 분산 시스템을 검증하는 단계를 추가로 포함하는, 방법.
15.
제14절에 있어서, 에뮬레이션된 분산 시스템 내에 가상 트윈 노드를 포함하는 단계로, 가상 트윈 노드는 에뮬레이션된 분산 시스템에서 하나 이상의 다른 트윈 노드에 의해 공유되는 식별자를 사용하여 어드레스되는 것인 단계; 기준 결과와 가상 트윈 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교하는 단계; 및 기준 결과가 추가 결과에 부합할 때 적어도 하나의 추가 또는 수정된 가상 트윈 노드 또는 에뮬레이션된 분산 시스템을 검증하는 단계를 추가로 포함하는, 방법.
16.
제14절 또는 제15절에 있어서, 기준 결과와 하나 이상의 다른 트윈 노드에 물리적 트윈 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교하는 단계; 및 기준 결과가 추가 결과에 부합할 때 추가 또는 수정된 물리적 트윈 노드 또는 에뮬레이션된 분산 시스템을 검증하는 단계를 추가로 포함하는, 방법.
17.
분산 시스템을 위한 테스트 플랫폼으로서, 각각 복수의 작동 노드 중 하나 이상을 작동시키도록 구성되는 복수의 처리 시스템; 복수의 처리 시스템에 결합되고 복수의 가상 노드를 통신가능하게 결합하도록 구성되는 네트워크로, 그에 따라 복수의 가상 노드는 분산 불변 데이터 객체(DIDO)를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하도록 구성되는 네트워크; 및 에뮬레이션된 분산 시스템의 테스트를 개시하도록 구성되되, 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것을 포함하고; 수정된 제1 DIDO와 검증된 시스템에 의해 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 에뮬레이션된 분산 시스템을 검증하도록 구성되는 테스트 관리 프로세서를 포함하는, 테스트 플랫폼.
18.
제17절에 있어서, 하나 이상의 트랜잭션 중 적어도 하나는 에뮬레이션된 분산 시스템에서 테스트 중인 노드에 의해 실행되고, 테스트 관리 프로세서는 수정된 제1 DIDO의 컨텐츠가 제2 DIDO의 컨텐츠에 대응할 때 테스트 중인 가상 노드를 검증하도록 추가로 구성되는, 테스트 플랫폼.
19.
제17절 또는 제18절에 있어서, 제1 DIDO는 참조 DIDO의 사본이며, 제2 DIDO는 검증된 시스템이 제1 DIDO의 동일한 사본 상에 하나 이상의 트랜잭션을 수행함으로써 획득되고, 검증된 시스템은 실제 시스템이며, 참조 DIDO, 제2 DIDO, 및 하나 이상의 트랜잭션은 대응하는 기록된 시점에 실제 시스템으로부터 복사되는, 테스트 플랫폼.
20.
제17절 내지 제19절 중 어느 한 절에 있어서, 테스트 관리 프로세서는 에뮬레이션된 분산 시스템 내의 각각의 가상 노드가 검증된 노드를 포함할 때 테스트를 실행함으로써 테스트 플랜에 대한 기준 결과를 생성하고; 에뮬레이션된 분산 시스템 내에 트윈 노드를 포함하되, 트윈 노드는 에뮬레이션된 분산 시스템에서 하나 이상의 다른 트윈 노드에 의해 공유되는 식별자를 사용하여 어드레스되고; 기준 결과와 가상 트윈 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교하고; 기준 결과가 추가 결과에 부합할 때 적어도 하나의 추가 또는 수정된 트윈 노드 또는 에뮬레이션된 분산 시스템을 검증하도록 추가로 구성되는, 테스트 플랫폼.
전술한 설명은 당업자가 본원에 설명된 다양한 양태를 실행하는 것을 가능하게 하기 위해 제공된다. 이러한 양태들에 대한 다양한 수정이 당업자에게는 즉각적으로 명확해질 것이고, 본원에 정의된 일반적인 원리는 다른 양태들에 적용될 수 있다. 따라서, 청구범위는 본원에 나타낸 양태들에 제한되도록 의도된 것이 아니라, 언어 청구항과 일치하는 전체 범주를 따르도록 의도된 것이며, 구체적으로 그렇게 명시되지 않는 한, 단수 요소에 대한 참조는 "하나 및 단지 하나"가 아닌 "하나 이상"을 의미하도록 의도된다. 구체적으로 달리 명시되지 않는 한, "몇몇"이라는 용어는 하나 이상을 지칭한다. 당업자에게 공지되어 있거나 추후 공지될 본 개시 전체에 걸쳐 설명된 다양한 양태의 요소들에 대한 모든 구조적 및 기능적 등가물은 본원에 참조로 명시적으로 포함되고 청구범위에 의해 포괄되도록 의도된다. 또한, 본원에 개시된 어떤 것도 이러한 개시가 청구범위에 명시적으로 인용되어 있는지 여부와 무관하게 대중에게 공개되도록 의도된 것이 아니다. 청구항 요소가 "~하기 위한 수단"이라는 문구를 사용하여 명시적으로 인용되지 않는 한, 또는 방법 청구항의 경우, 청구항 요소가 "~하는 단계"라는 문구를 사용하여 인용되지 않는 한, 상기 요소는 35 USC §112 6절의 규정에 따라 해석되지 않아야 한다.
Claims (20)
- 분산 시스템 내의 노드를 테스트하는 방법으로서,
분산 불변 데이터 객체(DIDO)를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하기 위해 복수의 가상 노드를 구성하는 단계;
상기 에뮬레이션된 분산 시스템의 테스트를 개시하는 단계로, 상기 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것을 포함하는 단계; 및
상기 수정된 제1 DIDO와 검증된 시스템에 의해 상기 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 상기 에뮬레이션된 분산 시스템을 검증하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 하나 이상의 트랜잭션 중 적어도 하나는 상기 에뮬레이션된 분산 시스템에서 테스트 중인 노드에 의해 실행되는, 방법.
- 제2항에 있어서, 상기 수정된 제1 DIDO의 컨텐츠가 상기 제2 DIDO의 컨텐츠에 대응할 때 테스트 중인 상기 노드를 검증하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 제1 DIDO는 참조 DIDO의 사본이며, 상기 제2 DIDO는 상기 검증된 시스템이 상기 제1 DIDO의 동일한 사본 상에 상기 하나 이상의 트랜잭션을 수행함으로써 획득되는, 방법.
- 제4항에 있어서, 상기 참조 DIDO는 하나 이상의 트랜잭션 기록을 안전하게 유지하도록 구성되는 제1 분산 원장을 포함하고, 상기 제2 DIDO는 제2 분산 원장을 포함하고, 상기 수정된 제1 DIDO는 제3 분산 원장을 포함하되, 각각의 분산 원장은 독립적으로 유지되는, 방법.
- 제5항에 있어서, 상기 수정된 제1 DIDO의 컨텐츠는 상기 제2 분산 원장 내의 복호화 정보가 상기 제3 분산 원장 DIDO 내의 대응하는 복호화 정보에 부합할 때 상기 제2 DIDO의 컨텐츠에 대응하는, 방법.
- 제4항에 있어서, 상기 검증된 시스템은 실제 시스템이며, 상기 참조 DIDO, 상기 제2 DIDO, 및 상기 하나 이상의 트랜잭션은 대응하는 기록된 시점에 상기 실제 시스템으로부터 복사되는, 방법.
- 제1항에 있어서, 상기 에뮬레이션된 분산 시스템을 사용하여 테스트 플랜을 실행하기 위한 테스트 타임라인의 시작점을 구성하는 단계로, 상기 하나 이상의 트랜잭션은 상기 테스트 플랜에 의해 획정되는 것인 단계를 추가로 포함하는, 방법.
- 제8항에 있어서, 상기 테스트 타임라인은 제1 작동 모드에서 실시간과 일치하는 속도로 실행되고, 제2 작동 모드에서 실시간과 상이한 속도로 실행되는, 방법.
- 제8항에 있어서, 상기 테스트 타임라인을 상기 시작점으로 재설정한 후에 상기 제1 DIDO의 비수정 버전으로 상기 테스트를 재시작하는 단계를 추가로 포함하는, 방법.
- 제8항에 있어서, 적어도 하나의 가상 노드가 상기 제1 DIDO의 분산 원장을 수정하도록 상기 테스트 플랜을 구성하는 단계로, 상기 분산 원장을 수정하는 것은 시간-민감형 암호화를 사용하여 상기 테스트 타임라인에 따라 상기 분산 원장에 의해 유지되는 정보를 암호화하는 것을 포함하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 복수의 가상 노드 중 상이한 가상 노드들을 구현하기 위해 복수의 물리적 노드를 구성하는 단계로, 상기 복수의 물리적 노드는 서로에 대해 지리적으로 원격 위치에 배치되는 물리적 노드들을 포함하는 것인 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 복수의 가상 노드 중 적어도 하나의 노드는 컨테이너를 포함하는, 방법.
- 제1항에 있어서,
상기 에뮬레이션된 분산 시스템 내의 각각의 가상 노드가 검증된 노드를 포함할 때 상기 테스트를 실행함으로써 상기 테스트에 대한 기준 결과를 생성하는 단계;
상기 기준 결과와 상기 에뮬레이션된 분산 시스템에 적어도 하나의 가상 노드를 추가 또는 수정한 후에 상기 테스트를 실행함으로써 획득되는 추가 결과를 비교하는 단계;
상기 기준 결과가 상기 추가 결과에 부합할 때 상기 추가 또는 수정된 가상 노드 또는 상기 에뮬레이션된 분산 시스템을 검증하는 단계를 추가로 포함하는, 방법. - 제14항에 있어서,
상기 에뮬레이션된 분산 시스템 내에 가상 트윈 노드를 포함하는 단계로, 상기 가상 트윈 노드는 상기 에뮬레이션된 분산 시스템에서 하나 이상의 다른 트윈 노드에 의해 공유되는 식별자를 사용하여 어드레스되는 것인 단계;
상기 기준 결과와 상기 가상 트윈 노드를 추가 또는 수정한 후에 상기 테스트를 실행함으로써 획득되는 추가 결과를 비교하는 단계; 및
상기 기준 결과가 상기 추가 결과에 부합할 때 상기 적어도 하나의 추가 또는 수정된 가상 트윈 노드 또는 상기 에뮬레이션된 분산 시스템을 검증하는 단계를 추가로 포함하는, 방법. - 제14항에 있어서,
상기 에뮬레이션된 분산 시스템 내에 물리적 트윈 노드를 포함하는 단계로, 상기 물리적 트윈 노드는 상기 에뮬레이션된 분산 시스템에서 하나 이상의 다른 트윈 노드에 의해 공유되는 식별자를 사용하여 어드레스되는 것인 단계;
상기 기준 결과와 상기 물리적 트윈 노드를 추가 또는 수정한 후에 상기 테스트를 실행함으로써 획득되는 추가 결과를 비교하는 단계; 및
상기 기준 결과가 상기 추가 결과에 부합할 때 상기 추가 또는 수정된 물리적 트윈 노드 또는 상기 에뮬레이션된 분산 시스템을 검증하는 단계를 추가로 포함하는, 방법. - 분산 시스템을 위한 테스트 플랫폼으로서,
각각 복수의 작동 노드 중 하나 이상을 작동시키도록 구성되는 복수의 처리 시스템;
상기 복수의 처리 시스템에 결합되고 상기 복수의 가상 노드를 통신가능하게 결합하도록 구성되는 네트워크로, 그에 따라 상기 복수의 가상 노드는 분산 불변 데이터 객체(DIDO)를 처리 및 관리하는 데에 사용되는 분산 시스템을 에뮬레이션하도록 구성되는 네트워크; 및
상기 에뮬레이션된 분산 시스템의 테스트를 개시하도록 구성되되, 상기 테스트는 제1 DIDO 상에 하나 이상의 트랜잭션을 수행하여 수정된 제1 DIDO를 획득하는 것을 포함하고; 상기 수정된 제1 DIDO와 검증된 시스템에 의해 상기 제1 DIDO로부터 생성된 제2 DIDO를 비교함으로써 상기 에뮬레이션된 분산 시스템을 검증하도록 구성되는 테스트 관리 프로세서를 포함하는, 테스트 플랫폼. - 제17항에 있어서, 상기 하나 이상의 트랜잭션 중 적어도 하나는 상기 에뮬레이션된 분산 시스템에서 테스트 중인 가상 노드에 의해 실행되고, 상기 테스트 관리 프로세서는 상기 수정된 제1 DIDO의 컨텐츠가 상기 제2 DIDO의 컨텐츠에 대응할 때 테스트 중인 상기 가상 노드를 검증하도록 추가로 구성되는, 테스트 플랫폼.
- 제17항에 있어서, 상기 제1 DIDO는 참조 DIDO의 사본이며, 상기 제2 DIDO는 상기 검증된 시스템이 상기 제1 DIDO의 동일한 사본 상에 상기 하나 이상의 트랜잭션을 수행함으로써 획득되고, 상기 검증된 시스템은 실제 시스템이며, 상기 참조 DIDO, 상기 제2 DIDO, 및 상기 하나 이상의 트랜잭션은 대응하는 기록된 시점에 상기 실제 시스템으로부터 복사되는, 테스트 플랫폼.
- 제17항에 있어서, 상기 테스트 관리 프로세서는
상기 에뮬레이션된 분산 시스템 내의 각각의 가상 노드가 검증된 노드를 포함할 때 상기 테스트를 실행함으로써 상기 테스트에 대한 기준 결과를 생성하고;
상기 에뮬레이션된 분산 시스템 내에 트윈 노드를 포함하되, 상기 트윈 노드는 상기 에뮬레이션된 분산 시스템에서 하나 이상의 다른 트윈 노드에 의해 공유되는 식별자를 사용하여 어드레스되고;
상기 기준 결과와 상기 트윈 노드를 추가 또는 수정한 후에 테스트를 실행함으로써 획득되는 추가 결과를 비교하고;
상기 기준 결과가 상기 추가 결과에 부합할 때 적어도 하나의 추가 또는 수정된 트윈 노드 또는 상기 에뮬레이션된 분산 시스템을 검증하도록 추가로 구성되는, 테스트 플랫폼.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163140849P | 2021-01-23 | 2021-01-23 | |
US63/140,849 | 2021-01-23 | ||
US202163282042P | 2021-11-22 | 2021-11-22 | |
US63/282,042 | 2021-11-22 | ||
US17/578,432 US12086057B2 (en) | 2021-01-23 | 2022-01-18 | Distributed immutable data object testing |
US17/578,432 | 2022-01-18 | ||
PCT/US2022/012900 WO2022159438A1 (en) | 2021-01-23 | 2022-01-19 | Distributed immutable data object testing |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230170902A true KR20230170902A (ko) | 2023-12-19 |
Family
ID=82495758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237028674A KR20230170902A (ko) | 2021-01-23 | 2022-01-19 | 분산 불변 데이터 객체 테스팅 |
Country Status (9)
Country | Link |
---|---|
US (2) | US12086057B2 (ko) |
EP (1) | EP4281878A1 (ko) |
JP (1) | JP2024504393A (ko) |
KR (1) | KR20230170902A (ko) |
CN (1) | CN117099091A (ko) |
AU (1) | AU2022209731B2 (ko) |
CA (1) | CA3206084A1 (ko) |
IL (1) | IL304660A (ko) |
WO (1) | WO2022159438A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11803456B2 (en) * | 2021-09-01 | 2023-10-31 | National Instruments Corporation | Distributed event-based test execution |
WO2023069729A1 (en) * | 2021-10-22 | 2023-04-27 | Dish Wireless L.L.C. | Systems and methods for cloud-native network slicing and testing-as-a-service with continuous integration and continuous delivery (ci/cd) capabilities |
CN116579023B (zh) * | 2023-07-14 | 2023-11-17 | 武汉能钠智能装备技术股份有限公司四川省成都市分公司 | 信号采集处理机的测试系统及方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102575120B1 (ko) | 2017-11-02 | 2023-09-07 | 엔체인 홀딩스 리미티드 | 블록체인을 디지털 트윈의 세트에 연계하기 위한 컴퓨터 구현형 시스템 및 방법 |
CN108681965B (zh) | 2018-04-24 | 2021-01-29 | 全链通有限公司 | 离线节点的区块链网络交易处理方法和装置 |
US20190377660A1 (en) | 2018-06-07 | 2019-12-12 | Blocktest Global | Methods and systems for blockchain testing |
US11646879B2 (en) | 2018-06-12 | 2023-05-09 | Electronics And Telecommunications Research Institute | Method and apparatus for selecting distributed consensus node based on proof of nonce |
US11301602B2 (en) | 2018-11-13 | 2022-04-12 | Gauntlet Networks, Inc. | Simulation-based testing of blockchain and other distributed ledger systems |
SG11201903544SA (en) | 2018-11-30 | 2019-05-30 | Alibaba Group Holding Ltd | Testing platform for blockchain networks |
EP3742317A1 (en) | 2019-05-21 | 2020-11-25 | Ordnance Survey Limited | Method and system for granting access to data in an immutable ledger system |
US11599431B2 (en) * | 2019-06-04 | 2023-03-07 | International Business Machines Corporation | Database optimized disaster recovery orchestrator |
US11411721B2 (en) | 2019-09-27 | 2022-08-09 | Cypherium Blockchain Inc. | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system |
EP4073655A4 (en) | 2019-12-10 | 2023-09-27 | Hitachi, Ltd. | METHOD AND DEVICE FOR GENERATING TEST ENVIRONMENTS FOR BLOCKCHAIN SYSTEMS |
KR102160379B1 (ko) | 2020-04-20 | 2020-09-25 | 이화여자대학교 산학협력단 | 블록체인 기반 분산 애플리케이션 테스트 방법 및 테스트 장치 |
-
2022
- 2022-01-18 US US17/578,432 patent/US12086057B2/en active Active
- 2022-01-19 CN CN202280024152.8A patent/CN117099091A/zh active Pending
- 2022-01-19 WO PCT/US2022/012900 patent/WO2022159438A1/en active Application Filing
- 2022-01-19 KR KR1020237028674A patent/KR20230170902A/ko active Search and Examination
- 2022-01-19 JP JP2023544460A patent/JP2024504393A/ja active Pending
- 2022-01-19 CA CA3206084A patent/CA3206084A1/en active Pending
- 2022-01-19 EP EP22743067.5A patent/EP4281878A1/en active Pending
- 2022-01-19 AU AU2022209731A patent/AU2022209731B2/en active Active
-
2023
- 2023-07-23 IL IL304660A patent/IL304660A/en unknown
-
2024
- 2024-07-08 US US18/766,614 patent/US20240362158A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2022209731A1 (en) | 2023-09-21 |
EP4281878A1 (en) | 2023-11-29 |
US20220237111A1 (en) | 2022-07-28 |
WO2022159438A1 (en) | 2022-07-28 |
CN117099091A (zh) | 2023-11-21 |
IL304660A (en) | 2023-09-01 |
JP2024504393A (ja) | 2024-01-31 |
US12086057B2 (en) | 2024-09-10 |
CA3206084A1 (en) | 2022-07-28 |
AU2022209731B2 (en) | 2024-07-18 |
US20240362158A1 (en) | 2024-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170590B (zh) | 一种区块链系统的测试系统和方法 | |
US11755919B2 (en) | Analytics for an automated application testing platform | |
KR20230170902A (ko) | 분산 불변 데이터 객체 테스팅 | |
US10339039B2 (en) | Virtual service interface | |
US20170286273A1 (en) | Virtual service data set generation | |
US10394583B2 (en) | Automated model generation for a software system | |
US9886365B2 (en) | Transactional boundaries for software system debugging | |
US9898390B2 (en) | Virtual service localization | |
US9946639B2 (en) | Transactional boundaries for virtualization within a software system | |
TWI626538B (zh) | 基礎架構規則產生技術 | |
US20230325298A1 (en) | System and method for cloud infrastructure test automation | |
Nüst et al. | The rockerverse: packages and applications for containerization with r | |
Peuster et al. | Automated testing of NFV orchestrators against carrier-grade multi-PoP scenarios using emulation-based smoke testing | |
Xavier et al. | Mobile application testing on Clouds: challenges, opportunities and architectural elements | |
Rapatti | Rootless Docker Containers in Continuous Integration | |
Kohli et al. | Troubleshooting Docker | |
Stoneman | Learn Docker in a month of lunches | |
Rinta-Jaskari | Automatic Testing Approaches For Serverless Applications In AWS | |
Grooters | Analysis of automated Virtual Machine generation and automation around system testing at TKH Airport Solutions. | |
Serrano et al. | Hardware-in-the-Loop Testing of Accelerator Firmware | |
Holappa et al. | Future proofing Lovelace system development environment | |
Wasilewska | Pre-study on Network Function Virtualization at Communication Technology Lab: Emulator | |
Mai | Building High Availability Infrastructure in Cloud | |
Waxin Borén | Case study: Performance evaluation of Kind | |
Abdollahi Vayghan | Kubernetes as an Availability Manager for Microservice Based Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |