KR101579029B1 - Application programming interface testing services - Google Patents

Application programming interface testing services Download PDF

Info

Publication number
KR101579029B1
KR101579029B1 KR1020147028083A KR20147028083A KR101579029B1 KR 101579029 B1 KR101579029 B1 KR 101579029B1 KR 1020147028083 A KR1020147028083 A KR 1020147028083A KR 20147028083 A KR20147028083 A KR 20147028083A KR 101579029 B1 KR101579029 B1 KR 101579029B1
Authority
KR
South Korea
Prior art keywords
programming interface
application programming
test
data center
target data
Prior art date
Application number
KR1020147028083A
Other languages
Korean (ko)
Other versions
KR20140131590A (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 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20140131590A publication Critical patent/KR20140131590A/en
Application granted granted Critical
Publication of KR101579029B1 publication Critical patent/KR101579029B1/en

Links

Images

Classifications

    • 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/3676Test management for coverage analysis
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Abstract

데이터 센터 서비스들을 전송하기 위한 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 기술들 및 구현들. Technologies and implementations that provide application programming interface testing services for transmitting data center services.

Description

애플리케이션 프로그래밍 인터페이스 테스팅 서비스{APPLICATION PROGRAMMING INTERFACE TESTING SERVICES}[0001] APPLICATION PROGRAMMING INTERFACE TESTING SERVICES [0002]

여기서 달리 나타내지 않는 한, 본 섹션에 기술된 접근법들은 본 출원에서의 청구범위에 대한 종래 기술이 아니고, 본 섹션에의 포함에 의해 종래 기술인 것으로 인정되지 않는다.Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application, and are not considered to be prior art by inclusion in this section.

고객의 데이터 센터 전개에 있어서, 다양한 애플리케이션 프로그래밍 인터페이스 콜들이 사용될 수도 있다. 일반적으로, 하나의 데이터 센터로부터 다른 데이터 센터로 전송하는 경우, 오리진 (origin) 데이터 센터에서 사용 중인 어느 애플리케이션 프로그래밍 인터페이스 콜들이 목적지 (destination) 데이터 센터에서 이용가능할 수도 있는지, 및 어느 애플리케이션 프로그래밍 인터페이스 콜들이 이용가능하지 않을 수도 있는지를 알고 있는 것이 유용할 수도 있다. 일반적으로, 어느 애플리케이션 프로그래밍 인터페이스 콜들이 오리진 데이터 센터에서 사용 중일 수도 있는지를 결정하는 것은 어려울 수도 있다. In a customer's data center deployment, various application programming interface calls may be used. Generally, when transferring from one data center to another, it is important to know which application programming interface calls in use at the origin data center may be available at the destination data center, It may be useful to know if it may not be available. In general, it may be difficult to determine which application programming interface calls may be in use at the origin data center.

여러 실시형태들에서, 본 개시는 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 예시의 방법들을 기술한다. 예시의 방법들은 오리진 데이터 센터에서 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것, 애플리케이션 프로그래밍 인터페이스 콜들 각각을 테스트 세그먼트로 변환하여 테스트 세그먼트들을 생성하는 것, 및 타겟 데이터 센터에 대한 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것으로서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 복수의 테스트 세그먼트들을 포함하는, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것을 포함한다.In various embodiments, the present disclosure describes exemplary methods of providing an application programming interface testing service. Exemplary methods include determining application programming interface calls used by the service in the origin data center, converting each of the application programming interface calls into a test segment to generate test segments, and testing the application programming interface test Wherein the application programming interface test module comprises forming the application programming interface test module comprising a plurality of test segments.

여러 실시형태들에서, 본 개시는 또한 예시의 머신 판독가능 비일시적 매체들을 기술한다. 예시의 머신 판독가능 비일시적 매체들은, 실행될 때, 디바이스로 하여금, 오리진 데이터 센터에서 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것, 애플리케이션 프로그래밍 인터페이스 콜들 각각을 테스트 세그먼트로 변환하여 테스트 세그먼트들을 생성하는 것, 및 타겟 데이터 센터에 대한 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것으로서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 복수의 테스트 세그먼트들을 포함하는, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. In various embodiments, the present disclosure also describes exemplary machine-readable non-volatile media. Exemplary machine-readable non-volatile media include, when executed, causing the device to determine application programming interface calls used by a service in an originating data center, transforming each application programming interface call into a test segment to generate test segments And forming an application programming interface test module for a target data center, wherein the application programming interface test module comprises an application programming interface testing service by forming the application programming interface testing module, comprising a plurality of test segments, Or < / RTI >

여러 실시형태들에서, 본 개시는 또한 예시의 디바이스들을 기술한다. 예시의 디바이스들은, 실행될 때, 디바이스로 하여금, 오리진 데이터 센터에서 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것, 애플리케이션 프로그래밍 인터페이스 콜들 각각을 테스트 세그먼트로 변환하여 테스트 세그먼트들을 생성하는 것, 및 타겟 데이터 센터에 대한 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것으로서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 복수의 테스트 세그먼트들을 포함하는, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 갖는 머신 판독가능 매체, 및 머신 판독가능 매체에 커플링되어 명령들을 실행하는 프로세서를 포함할 수도 있다. In various embodiments, the present disclosure also describes exemplary devices. Exemplary devices, when executed, allow a device to determine application programming interface calls used by a service in an origin data center, convert each of the application programming interface calls into test segments to generate test segments, Forming an application programming interface test module for a data center, the application programming interface test module comprising instructions for providing an application programming interface testing service by forming the application programming interface testing module, comprising a plurality of test segments, And a processor coupled to the machine-readable medium for executing the instructions.

상술된 개요는 단지 예시적일 수도 있으며, 임의의 방식으로도 제한하는 것으로 의도되지 않을 수도 있다. 상술된 예시적인 양태들, 실시형태들, 및 특징들에 더하여, 추가의 양태들, 실시형태들, 및 특징들은 도면들 및 다음의 상세한 설명을 참조하여 명백해질 것이다. The above summary is illustrative only and may not be intended to be limiting in any way. In addition to the exemplary aspects, embodiments, and features described above, additional aspects, embodiments, and features will become apparent with reference to the drawings and the following detailed description.

주제는 본 명세서의 결론 부분에서 특정적으로 지적되고 명백하게 청구된다. 본 개시의 상술한 특징 및 다른 특징은 첨부하는 도면들과 함께 취해진 다음의 설명 및 첨부된 청구범위들로부터 더욱 완전하게 명백하게 될 것이다. 이들 도면들은 단지 본 개시에 따른 수개의 실시형태들을 도시하며, 따라서 그것의 범위를 제한하는 것으로 고려되어서는 안된다는 것을 이해하면서, 본 개시는 첨부하는 도면들의 사용을 통해 추가적인 구체성 및 상세로 기술될 것이다.
도 1 은 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 예시의 방법의 흐름도를 도시한다.
도 2 는 오리진 데이터 센터에서 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 예시의 방법의 흐름도를 도시한다.
도 3 은 오리진 데이터 센터에서 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 예시의 방법의 흐름도를 도시한다.
도 4 는 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 예시의 시스템의 블록도를 도시한다.
도 5 는 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 예시의 시스템의 블록도를 도시한다.
도 6 은 예시의 컴퓨터 프로그램 제품을 도시한다.
도 7 은 전체가 본 개시의 적어도 일부 실시형태들에 따라 배열된, 예시의 컴퓨팅 디바이스의 블록도를 도시한다.
The subject matter is particularly pointed out and distinctly claimed in the concluding portion of the specification. The foregoing and other features of the present disclosure will become more fully apparent from the following description taken in conjunction with the accompanying drawings and the appended claims. BRIEF DESCRIPTION OF THE DRAWINGS These drawings are merely illustrative of several embodiments in accordance with the present disclosure and, therefore, should not be construed as limiting the scope thereof, the present disclosure will be described in further detail and with reference to the use of the accompanying drawings .
Figure 1 shows a flow chart of an example method of providing an application programming interface testing service.
Figure 2 shows a flow diagram of an example method of determining application programming interface calls used by a service in an origin data center.
Figure 3 shows a flow diagram of an example method of determining application programming interface calls used by a service in an origin data center.
Figure 4 shows a block diagram of an example system for providing an application programming interface testing service.
5 shows a block diagram of an example system for providing an application programming interface testing service.
Figure 6 shows an example computer program product.
Figure 7 illustrates a block diagram of an example computing device in which the whole is arranged according to at least some embodiments of the present disclosure.

주제는 본 명세서의 결론 부분에서 특정적으로 지적되고 명백하게 청구된다. 본 개시의 상술한 특징 및 다른 특징은 첨부하는 도면들과 함께 취해진 다음의 설명 및 첨부된 청구범위들로부터 더욱 완전하게 명백하게 될 것이다. 이들 도면들은 단지 본 개시에 따른 수개의 실시형태들을 도시하며, 따라서 그것의 범위를 제한하는 것으로 고려되어서는 안된다는 것을 이해하면서, 본 개시는 첨부하는 도면들의 사용을 통해 추가적인 구체성 및 상세로 기술될 것이다.The subject matter is particularly pointed out and distinctly claimed in the concluding portion of the specification. The foregoing and other features of the present disclosure will become more fully apparent from the following description taken in conjunction with the accompanying drawings and the appended claims. BRIEF DESCRIPTION OF THE DRAWINGS These drawings are merely illustrative of several embodiments in accordance with the present disclosure and, therefore, should not be construed as limiting the scope thereof, the present disclosure will be described in further detail and with reference to the use of the accompanying drawings .

다음의 설명은 청구된 주제의 철저한 이해를 제공하기 위해 특정의 상세들과 함께 여러 예시들을 진술한다. 그러나, 청구된 주제는 여기에 개시된 특정의 상세들의 일부 또는 그 이상이 없이도 실시될 수도 있다는 것이 통상의 기술자에 의해 이해될 것이다. 또한, 일부 상황들에서, 잘 알려진 방법들, 절차들, 시스템들, 컴포넌트들 및/또는 회로들은 청구된 주제를 불필요하게 모호하게 하는 것을 피하기 위해 상세히 기술되지 않았다. The following description sets forth various examples together with specific details in order to provide a thorough understanding of the claimed subject matter. However, it will be understood by those of ordinary skill in the art that the claimed subject matter may be practiced without some or more of the specific details disclosed herein. Moreover, in some instances, well-known methods, procedures, systems, components, and / or circuits have not been described in detail in order to avoid unnecessarily obscuring the claimed subject matter.

다음의 상세한 설명에서, 이 문서의 부분을 형성하는 첨부하는 도면들에 대한 참조를 행한다. 도면들에서, 유사한 기호들은 통상 콘텍스트가 달리 지시하지 않는다면 유사한 컴포넌트들을 식별한다. 상세한 설명, 도면들 및 청구범위에 기술된 예시적인 실시형태들은 제한하는 것을 의미하지 않는다. 다른 실시형태들이 사용될 수도 있고, 다른 변경들이 여기에 제시된 주제의 사상 또는 범위로부터 일탈하지 않고 행해질 수도 있다. 여기에서 일반적으로 기술되고, 도면들에 도시된 바와 같은, 본 개시의 양태들은, 모두가 명시적으로 생각되고 본 개시의 부분을 이루는 광범위한 상이한 구성들로 배열, 대체, 결합 및 설계될 수 있다.In the following detailed description, reference is made to the accompanying drawings which form a part of this document. In the figures, similar symbols generally identify similar components unless context dictates otherwise. The illustrative embodiments set forth in the description, drawings and claims are not meant to be limiting. Other embodiments may be used and other changes may be made without departing from the spirit or scope of the subject matter disclosed herein. As described generally herein and as illustrated in the Figures, aspects of the present disclosure may be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which are expressly contemplated and form part of the present disclosure.

본 개시는 무엇보다도 데이터 센터 서비스들을 전송하기 위한 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 것에 관련된 방법들, 디바이스들, 시스템들 및 컴퓨터 판독가능 매체들에 관한 것이다.This disclosure relates, among other things, to methods, devices, systems, and computer-readable media related to providing an application programming interface testing service for transmitting data center services.

일반적으로, 데이터 센터 고객은 데이터 센터에서 서비스를 사용할 수도 있다. 서비스는 데이터 저장, 통신들, 데이터 센터 기반 애플리케이션들, 호스팅된 애플리케이션들 등과같은 다양한 서브 서비스들을 포함할 수도 있다. 일부 예들에서, 애플리케이션들 또는 그들의 소프트웨어 컴포넌트들은 애플리케이션 프로그래밍 인터페이스 (API) 콜들 및/또는 SOAP (simple object access protocol) 또는 REST (representational state transfer) 와 같은 웹 서비스 프로토콜을 사용할 수도 있다. 일반적으로, API 는 이용가능한 함수들 또는 프로세스들 등을 나타내는 애플리케이션들 또는 애플리케이션 컴포넌트들에 의한 사용을 위한 사양을 제공할 수도 있다. API 콜은 API 에 의해 지원되는 것으로 표시되는 하나 이상의 함수들 또는 프로세스들을 호출할 수도 있는, (인수들 및/또는 다른 관련 데이터를 갖거나 갖지 않는) 커맨드와 같은 콜을 포함할 수도 있다. 일부 예들에서, 웹 서비스 프로토콜은 API 콜들을 포함하는 구조화된 정보를 교환하기 위한 프로토콜을 제공할 수도 있다. Typically, data center customers may use services in the data center. A service may include various subservices such as data storage, communications, data center based applications, hosted applications, and the like. In some instances, the applications or their software components may use application programming interface (API) calls and / or web service protocols such as simple object access protocol (SOAP) or representational state transfer (REST). In general, an API may provide specifications for use by applications or application components that represent available functions or processes, and the like. API calls may include calls such as commands (with or without arguments and / or other related data) that may call one or more functions or processes marked as supported by the API. In some examples, the web service protocol may provide a protocol for exchanging structured information, including API calls.

또, 일부 예들에서, 데이터 센터 고객은 더 낮은 비용 또는 더 양호한 서비스 등을 위해 하나의 데이터 센터로부터 다른 데이터 센터로 이동하기를 추구할 수도 있다. 인정되는 바와 같이, 데이터 센터 고객이 하나의 데이터 센터로부터 다른 것으로 이동하는 경우, 어떤 API 콜들이 오리진 데이터 센터 (즉, 고객의 현재의 데이터 센터) 에서 사용 중에 있을 수도 있는지, 및 또한, 어느 API 콜들이 타겟 데이터 센터 또는 데이터 센터들 (즉, 고객이 이동을 고려하고 있을 수도 있는 데이터 센터 또는 센터들) 에서 지원될 수도 있는지를 예측하는 것은 어려울 수도 있다. 일반적으로, 여기서 논의된 실시형태들은, 데이터 센터 고객이 그들의 서비스에서 사용되는 API 콜들을 결정하고 하나 이상의 타겟 데이터 센터들에서 그러한 API 콜들의 적어도 일부를 테스트하는 테스트 모듈을 생성할 수 있도록, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공할 수도 있다. 일부 예들에서는, 오리진 데이터 센터 또는 제 3 자 컴퓨팅 디바이스가 테스트 모듈을 타겟 데이터 센터로 송신할 수도 있고, 타겟 데이터 센터에서 실행되는 테스트 모듈에 기초하여 테스트 결과들을 수신할 수도 있다. 테스트 결과들에 기초하여, 데이터 센터 고객은 잠재적인 데이터 센터 이동을 더 양호하게 평가할 수도 있고, 잠재적인 타겟 데이터 센터들을 더 양호하게 평가할 수도 있다. 일부 예들에서, 논의된 애플리케이션 프로그래밍 인터페이스 테스팅 서비스는 데이터 센터 서비스들 브로커 등과 같은 제 3 자 서비스 제공자에 의해 수행될 수도 있다. 논의된 애플리케이션 프로그래밍 인터페이스 테스팅 서비스는 데이터 센터 이전에 관한 두려움, 불확실성 또는 의심을 제거할 수도 있는 어느 프로그램들, 애플리케이션들, 또는 다른 서브 서비스들이 목적지 데이터 센터에서 실행할 수도 있는 지에 대한 사용자 확실성을 제공할 수도 있다. 또한, 목적지 데이터 센터에서 완전히 지원되지 않을 수도 있는 프로그램들, 애플리케이션들 또는 다른 서브 서비스들을 사용하여, 고객은 평활한 이전을 보장하기 위해 소프트웨어 업그레이들 등과 같은 우발 (contingency) 플래닝을 채용할 수도 있다. Also, in some instances, a data center customer may seek to move from one data center to another for lower cost, better service, or the like. As will be appreciated, if a datacenter customer moves from one datacenter to another, which API calls may be in use at the origin datacenter (i.e., the customer's current datacenter) It may be difficult to predict whether or not they may be supported in a target data center or data centers (i.e., a data center or centers in which a customer may be considering a move). In general, the embodiments discussed herein are directed to providing a method and system for application programming that enables data center customers to make API calls that are used in their services and to generate test modules that test at least a portion of such API calls in one or more target data centers. It can also provide interface testing services. In some instances, an origin data center or a third party computing device may send a test module to a target data center and receive test results based on a test module running in the target data center. Based on the test results, the data center customer may better evaluate the potential data center movement and may better evaluate the potential target data centers. In some instances, the discussed application programming interface testing service may be performed by a third party service provider, such as a data center services broker or the like. The discussed application programming interface testing services may also provide user confidence in which programs, applications, or other subservices that may eliminate fear, uncertainty or suspicion of data center migration may be performed at the destination data center have. In addition, using programs, applications, or other subservices that may not be fully supported in the destination data center, the customer may employ contingency planning, such as software upgrades, to ensure smooth migration.

도 1 은 본 개시의 적어도 일부 실시형태들에 따라 배열된, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 예시의 방법 (100) 의 흐름도를 도시한다. 일반적으로, 방법 (100) 은 여기서 논의된 것들과 같은 임의의 적합한 디바이스, 디바이스들, 또는 시스템들에 의해 수행될 수도 있다. 일부 예들에서, 방법 (100) 은 데이터 센터에 의해 수행될 수도 있다. 일부 예들에서, 방법 (100) 은 데이터 센터 자원 또는 자원들에 의해 수행될 수도 있다. 일부 예들에서, 방법 (100) 은 가상 머신, 데이터 센터 클러스터, 하나 이상의 네트워크 프로세서들, 하나 이상의 라우터들, 게이트웨이 시스템들, 데이터 손실 방지 시스템들 등에 의해 수행될 수도 있다. 일부 예들에서, 방법 (100) 은 데이터 센터의 가상 머신에 의해 수행될 수도 있다. 일부 예들에서, 방법 (100) 은 제 3 자 컴퓨팅 디바이스 등과 같은 제 3 자 자원에 의해 수행될 수도 있다. 1 illustrates a flow diagram of an exemplary method 100 for providing an application programming interface testing service arranged in accordance with at least some embodiments of the present disclosure. In general, the method 100 may be performed by any suitable device, devices, or systems, such as those discussed herein. In some instances, the method 100 may be performed by a data center. In some instances, the method 100 may be performed by data center resources or resources. In some instances, the method 100 may be performed by a virtual machine, a data center cluster, one or more network processors, one or more routers, gateway systems, data loss prevention systems, and the like. In some instances, the method 100 may be performed by a virtual machine in the data center. In some instances, the method 100 may be performed by a third party resource, such as a third party computing device.

방법 (100) 은 하드웨어, 소프트웨어, 및/또는 펌웨어에 의해 수행될 수도 있는 프로세싱 단계들, 기능적 동자들, 이벤트들 및/또는 액트들 등으로서 기술될 수도 있는 여러 기능적 블록들 또는 액션들을 진술한다. 도 1 에 도시된 기능적 블록들에 대한 수 많은 대안들이 여러 구현들에서 실시될 수도 있다. 예를 들어, 청구된 주제의 범위로부터 일탈하지 않고 도시되지 않은 개재하는 액션들 및/또는 도시되지 않은 추가적인 액션들이 채용될 수도 있고, 및/또는 도시된 액션들의 일부가 제거될 수도 있다. 방법 (100) 은 하나 이상의 블록들 (105, 110, 115, 120, 125, 130, 135, 140, 및/또는 145) 에 의해 나타낸 하나 이상의 기능적 동작들을 포함할 수도 있다. 방법 (100) 의 프로세스는 블록 (105) 에서 시작할 수도 있다. The method 100 describes various functional blocks or actions that may be described as processing steps, functional objects, events and / or acts, etc., that may be performed by hardware, software, and / or firmware. Numerous alternatives to the functional blocks shown in Figure 1 may be implemented in various implementations. For example, intervening actions not shown and / or additional actions not shown may be employed, and / or some of the actions shown may be eliminated without departing from the scope of the claimed subject matter. The method 100 may include one or more functional operations represented by one or more blocks 105, 110, 115, 120, 125, 130, 135, 140, and / The process of method 100 may begin at block 105.

블록 (105), "오리진 데이터 센터에 의해 사용된 애플리케이션 프로그래밍 인터페이스 콜들을 결정" 에서, 오리진 데이터 센터 서비스에 의해 사용된 하나 또는 다수의 애플리케이션 프로그래밍 인터페이스 콜들이 결정될 수도 있다. 일반적으로, 오리진 데이터 센터에서 서비스에 의해 사용되는 하나 또는 다수의 애플리케이션 프로그래밍 인터페이스 콜들은 임의의 적합한 기법 또는 기법들을 사용하여 결정될 수도 있다. 일부 예들에서, 오리진 데이터 센터에 의해 사용된 하나 또는 다수의 애플리케이션 프로그래밍 인터페이스 콜들은 도 2 에 대하여 그리고 여기의 다른 곳에서 더욱 논의되는 바와 같이 네트워크 프로세서들에서 캡쳐된 메시지들로부터 애플리케이션 인터페이스 콜들을 추출함으로써 결정될 수도 있다. 일부 예들에서, 오리진 데이터 센터에 의해 사용된 하나 또는 다수의 애플리케이션 프로그래밍 인터페이스 콜들은 도 3 에 대하여 그리고 여기의 다른 곳에서 더욱 논의되는 바와 같이 애플리케이션 프로그래밍 인터페이스 콜들을 검출하기 위해 코드 리포지토리를 평가함으로써 결정될 수도 있다. At block 105, "Determining application programming interface calls used by the origin data center," one or more application programming interface calls used by the originating datacenter service may be determined. In general, one or more application programming interface calls used by a service in an origin data center may be determined using any suitable technique or techniques. In some instances, one or more application programming interface calls used by the origin data center may be generated by extracting application interface calls from messages captured at network processors as discussed further with respect to FIG. 2 and elsewhere herein May be determined. In some instances, one or more application programming interface calls used by the origin data center may be determined by evaluating the code repository to detect application programming interface calls as discussed further with respect to FIG. 3 and elsewhere herein have.

일반적으로, 애플리케이션 프로그래밍 인터페이스 콜들은 임의의 애플리케이션 프로그래밍 인터페이스 콜들을 포함할 수도 있다. 논의된 바와 같이, 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜은 애플리케이션 프로그래밍 인터페이스에 의해 지원되는 것으로 표시되는 하나 이상의 함수들 또는 프로세스들을 호출할 수도 있는, (인수들 및/또는 다른 관련 데이터를 갖거나 갖지 않는) 커맨드와 같은 콜을 포함할 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜들은 하이퍼텍스트 전송 프로토콜 겟 (get) 요청, 하이퍼텍스트 전송 프로토콜 풋 (put) 요청, 키-값 저장 커맨드, 메시징 콜, 큐잉 콜, 원격 저장 콜, 컨텐츠 전달 (delivery) 네트워크로의 전달 요청, 컨텐츠 전달 네트워크로의 관리 커맨드 등을 포함할 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜은 단순 오브젝트 액세스 프로토콜 (simple object access protocol: SOAP) 을 사용하여 구현될 수도 있다. 일반적으로, 단순 오브젝트 액세스 프로토콜은 정보를 교환하기 위한 구조를 제공할 수도 있고, 그의 메시지 포맷에 대해 XML (extensible markup language) 또는 JSON (JavaScript Object Notation) 등에 의존할 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜은 분포된 시스템들에 대한 소프트웨어 아키텍쳐를 제공할 수도 있는 REST (representational state transfer) 를 사용하여 구현될 수도 있다. In general, application programming interface calls may include any application programming interface calls. As discussed, in some examples, an application programming interface call may invoke one or more functions or processes indicated as supported by the application programming interface (such as having arguments and / or other associated data ) ≪ / RTI > command. In some instances, the application programming interface calls may include a hypertext transfer protocol get request, a hypertext transfer protocol put request, a key-value save command, a messaging call, a queuing call, a remote save call, a content delivery, Delivery requests to the network, management commands to the content delivery network, and the like. In some instances, an application programming interface call may be implemented using a simple object access protocol (SOAP). In general, a simple object access protocol may provide a structure for exchanging information, and may depend on extensible markup language (XML) or JavaScript Object Notation (JSON) for its message format. In some instances, application programming interface calls may be implemented using representational state transfer (REST), which may provide a software architecture for distributed systems.

일반적으로, 임의의 수의 애플리케이션 프로그래밍 인터페이스 콜들이 데이터 센터에서 고객 서비스에 의해 사용될 수도 있다. 일부 예들에서, 고객 서비스에 의해 사용된 애플리케이션 프로그래밍 인터페이스 콜들의 수는 약 100 내지 약 1,000 의 범위에 있을 수도 있다. 일부 예들에서, 고객 서비스에 의해 사용된 애플리케이션 프로그래밍 인터페이스 콜들의 수는 약 1,000 내지 약 10,000 의 범위에 있을 수도 있다. 오리진 데이터 센터에서 사용된 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것은 고객의 서비스의 사용중인 애플리케이션들에 의해 활용된 애플리케이션 프로그래밍 인터페이스 콜들의 혼합 (mix) 의 리스트 또는 데이터베이스를 제공할 수도 있다. 일부 예들에서, 고객 서비스의 셋업 시에 알려져 있을지라도, 사용 중의 애플리케이션들에 의해 활용된 애플리케이션 프로그래밍 인터페이스 콜들의 혼합은 시간의 경과에 따라 새로운 애플리케이션들, 프로그램들, 또는 서브 서비스들이 추가될 수도 있기 때문에 시간의 경과에 따라 변할 수도 있다. In general, any number of application programming interface calls may be used by customer service in the data center. In some instances, the number of application programming interface calls used by the customer service may range from about 100 to about 1,000. In some instances, the number of application programming interface calls used by the customer service may range from about 1,000 to about 10,000. Determining the application programming interface calls used in the origin data center may provide a database or a list of mixes of application programming interface calls utilized by the applications in use of the customer's service. In some instances, a mix of application programming interface calls utilized by applications in use may be added to new applications, programs, or subservices over time, even if known at set-up of customer service It may change over time.

일반적으로, 오리진 데이터 센터에서의 서비스는 임의의 적합한 고객 서비스 또는 서비스들을 포함할 수도 있고, 단일의 서비스, 다양한 서브 서비스들, 하나 이상의 가상 머신들 등을 포함할 수도 있다. 일부 예들에서, 서비스는 사용 중인 애플리케이션을 포함할 수도 있다. 일부 예들에서, 서비스는 하나 이상의 데이터 센터 기반 애플리케이션들, 하나 이상의 호스팅된 애플리케이션들, 하나 이상의 데이터 저장 서비스들, 하나 이상의 통신 서비스들 등을 포함할 수도 있다. 일부 예들에서, 데이터 센터에서의 고객 서비스는 고객 디플로이먼트 (deployment), 데이터 센터 디플로이먼트, 클라우드 컴퓨팅 디플로이먼트 등으로 고려될 수도 있다. 방법 (100) 의 프로세스는 블록 (110) 에서 계속될 수도 있다. In general, a service at an origin data center may include any suitable customer service or services, and may include a single service, various subservices, one or more virtual machines, and the like. In some instances, the service may include an application in use. In some instances, a service may include one or more data center-based applications, one or more hosted applications, one or more data storage services, one or more communication services, and the like. In some instances, customer service in the data center may be considered for customer deployment, data center deployment, cloud computing deployment, and the like. The process of method 100 may continue at block 110.

블록 (110), "애플리케이션 프로그래밍 인터페이스 콜들을 테스트 세그먼트들로 변환" 에서, 하나 이상의 애플리케이션 프로그래밍 인터페이스 콜들들은 테스트 세그먼트들로 변환될 수도 있다. 일부 예들에서, 다수의 애플리케이션 프로그래밍 인터페이스 콜들 각각은 다수의 테스트 세그먼트들을 생성하도록 테스트 세그먼트로 변환될 수도 있다. 일부 예들에서, 일부 애플리케이션 프로그래밍 인터페이스 콜들은 단일의 테스트 세그먼트로 결합될 수도 있다. 일부 예들에서, 하나의 애플리케이션 프로그래밍 인터페이스 콜은 2 이상의 테스트 세그먼트들로 분리될 수도 있다. 여기서 더욱 논의되는 바와 같이, 일부 예들에서, 중복된 애플리케이션 프로그래밍 인터페이스 콜들은 폐기될 수도 있고, 테스트 세그먼트들은 실질적으로 고유한 애플리케이션 프로그래밍 인터페이스 콜들에 대해서만 생성될 수도 있다. 일반적으로, 테스트 세그먼트들은 임의의 적합한 테스트 세그먼트들을 포함할 수도 있다. 일부 예들에서, 테스트 세그먼트는 애플리케이션 프로그래밍 인터페이스 셋업 콜을 포함할 수도 있다. 일부 예들에서, 테스트 세그먼트는 애플리케이션 프로그래밍 인터페이스 콜이 정확하게 실행했는지 또는 에러를 리턴했는지를 기록하도록 구성된 에러 검출 루프 내에 애플리케이션 프로그래밍 인터페이스 콜을 포함할 수도 있다. 일부 예들에서, 에러 검출 루프가 애플리케이션 프로그래밍 인터페이스 콜이 정확하게 실행했는지 또는 에러를 리턴했는지를 기록하도록 구성될 수 있도록, 테스트 세그먼트는 헤더 및/또는 풋터 (footer) 를 포함하는 에러 검출 루프 내에 애플리케이션 프로그래밍 인터페이스 콜을 포함할 수도 있다. In block 110, "Converting Application Programming Interface Calls to Test Segments ", one or more application programming interface calls may be converted into test segments. In some examples, each of the plurality of application programming interface calls may be transformed into a test segment to generate a plurality of test segments. In some instances, some application programming interface calls may be combined into a single test segment. In some instances, one application programming interface call may be split into two or more test segments. As discussed further herein, in some instances, duplicate application programming interface calls may be discarded and test segments may be generated only for substantially unique application programming interface calls. In general, test segments may include any suitable test segments. In some instances, the test segment may include an application programming interface setup call. In some examples, the test segment may include an application programming interface call in an error detection loop configured to record whether the application programming interface call correctly executed or returned an error. In some examples, the test segment may include an application programming interface (API) in an error detection loop that includes a header and / or a footer so that the error detection loop can be configured to record whether the application programming interface call correctly executed or returned an error. It may also include a call.

논의된 바와 같이, 일부 예들에서, 테스트 세그먼트는, 애플리케이션 프로그래밍 인터페이스 콜이 정확하게 실행했는지, 에러를 리턴했는지, 또는 어떤 식으로든 확인 (confirmation) 을 리턴하지 않는지 등을 기록할 수도 있는 코드의 에러 정정 루프 내에서 호출함으로써 테스트 세그먼트로 변환되는 애플리케이션 프로그래밍 인터페이스 콜을 포함할 수도 있다. 일부 예들에서, 테스트 세그먼트는 헤드 또는 풋터를 포함할 수도 있거나, 타겟 데이터 센터에 특정한 에러 검출 코드를 활용할 수도 있다. 아래의 샘플 코드 (1) 는 콘솔에 테스트 결과들을 기록할 수도 있는 예시의 테스트 세그먼트를 도시한다 (실제로, 테스트 결과는 예를 들어 보고 파일에 기입될 수도 있다).As discussed, in some examples, the test segment may include an error correction loop in the code, which may record the application programming interface call correctly executed, returned an error, or in some way not returning a confirmation, Lt; RTI ID = 0.0 > a < / RTI > test segment. In some instances, the test segment may include a head or footer, or may utilize a specific error detection code in the target data center. The following sample code (1) illustrates an exemplary test segment that may record test results on the console (in practice, the test results may be written to a report file, for example).

Figure 112014095161786-pct00001
Figure 112014095161786-pct00001

일부 예들에서, 성공적인 애플리케이션 프로그래밍 인터페이스 콜들을 위해, 오리진 데이터 센트와 타겟 데이터 센터 사이의 직접적인 비교들이 행해질 수 있도록, 테스트 세그먼트는 실행에 걸리는 경과 시간 등과 같은 추가의 정보를 캡쳐할 수도 있다. 방법 (100) 의 프로세스는 블록 (115) 에서 계속될 수도 있다. In some instances, for successful application programming interface calls, the test segment may capture additional information, such as the elapsed time to execute, so that direct comparisons between the origin data center and the target data center can be made. The process of method 100 may continue at block 115.

블록 (115), "애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성" 에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈이 테스트 세그먼트들에 기초하여 형성될 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 임의의 적합한 기법 또는 기법들을 사용하여 형성될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 상술된 다수의테스트 세그먼트들 각각을 포함할 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 여기에 더 논의되는 바와 같이 하나 이상의 타겟 데이터 센터들에 대해 의도될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 호환성 테스트 프로그램, 호환성 테스트 모듈 등으로 고려될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 하나 이상의 타겟 데이터 센터들의 실질적으로 빠른 테스팅을 제공할 수도 있다. 샘플 의사-코드 (2) 는 테스트 모듈의 예시의 부분을 도시한다.
In block 115, "forming an application programming interface test module, " an application programming interface test module may be formed based on test segments. In general, the application programming interface test module may be formed using any suitable technique or techniques. In some instances, the application programming interface test module may include each of the plurality of test segments described above. In some instances, an application programming interface test module may be intended for one or more target data centers as discussed further herein. In some instances, an application programming interface test module may be considered as a compatibility test program, a compatibility test module, and the like. In some instances, an application programming interface test module may provide substantially faster testing of one or more target data centers. The sample pseudo-code (2) shows an example part of the test module.

for each (APIs_to_test) for each (APIs_to_test)

{ {

Record API under test in report;  Record API under test in report;

Send API test message;  Send API test message;

Wait a reasonable time if no response is received;  Wait a reasonable time if no response is received;

Catch any errors [e.g., code (1) shown above] or record functional response;  Catch any errors [e.g., code (1) shown above] or record functional response;

Record end of API test in report;  Record end of API test in report;

Get next API to test;  Get next API to test;

} }

(2)
(2)

논의된 바와 같이, 일부 예들에서, 의사-코드 (2) 또는 유사한 것이 테스트 모듈을 형성하는데 활용될 수도 있다. 블록 (120) 에 대해 이하에 논의되는 바와 같이, 일부 예들에서, 테스트 모듈은 테스트 모듈을 테스팅하기 위해 전체가 송신될 수도 있다. 다른 예들에서, 각각의 테스트 세그먼트는 테스팅을 위해 타겟 데이터 센터로 송신될 수도 있다. 일부 예들에서, 테스트 세그먼트들은 단순 오브젝트 액세스 프로토콜 메시지들로서 송신될 수도 있다. 일부 예들에서, 테스트 모듈들의 그룹 또는 서브셋트는 테스팅을 위해 타겟 데이터 센터로 송신될 수도 있다. 방법 (100) 의 프로세스는 블록 (120) 에서 계속될 수도 있다. As discussed, in some instances, pseudo-code 2 or the like may be utilized to form a test module. As discussed below with respect to block 120, in some instances, a test module may be transmitted entirely to test a test module. In other examples, each test segment may be sent to a target data center for testing. In some instances, test segments may be transmitted as simple object access protocol messages. In some instances, a group or subset of test modules may be sent to the target data center for testing. The process of method 100 may continue at block 120.

블록 (120), "애플리케이션 프로그래밍 인터페이스 테스트 모듈을 타겟 데이터 센터로 송신" 에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 하나 이상의 타켓 데이터 센터들에서의 실행을 위해 하나 이상의 타겟 데이터 센터들로 송신될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 단일의 타겟 데이터 센터로 송신될 수도 있다. 일부 예들에서, 블록 (130) 에 대해 이하에 그리고 여기의 다른 곳에서 더욱 논의되는 바와 같이, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 타겟 데이터 센터들이 비교될 수 있도록 다수의 타겟 데이터 센터들로 송신될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 다수의 타겟 데이터 센터들로 동시에 또는 실질적으로 동시에 송신될 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 임의의 적합한 통신 채널을 사용하여 임의의 적합 기법 또는 기법들을 사용하여 송신될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 인터넷을 통해 송신될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 가상 사설 네트워크 (virtual private network: VPN) 를 통해 송신될 수도 있다. 논의된 바와 같이, 일부 예들에서, 테스트 세그먼트들 또는 테스트 세그먼트들의 그룹들은 테스팅을 위해 하나 이상의 타겟 데이터 센터들로 개별적으로 송신될 수도 있다. 방법 (100) 의 프로세스는 블록 (125) 에서 계속될 수도 있다. In block 120, "Send application programming interface test module to target data center ", an application programming interface test module may be transmitted to one or more target data centers for execution in one or more target data centers. In some instances, the application programming interface test module may be transmitted to a single target data center. In some instances, an application programming interface test module may be transmitted to multiple target data centers so that target data centers can be compared, as discussed further below and elsewhere herein for block 130. In some instances, the application programming interface test module may be transmitted simultaneously or substantially concurrently to multiple target data centers. In general, the application programming interface test module may be transmitted using any suitable technique or techniques using any suitable communication channel. In some instances, the application programming interface test module may be transmitted over the Internet. In some instances, the application programming interface test module may be transmitted via a virtual private network (VPN). As discussed, in some examples, test segments or groups of test segments may be sent individually to one or more target data centers for testing. The process of method 100 may continue at block 125.

블록 (125), "테스트 결과들을 수신" 에서, 하나 이상의 테스트 결과들이 수신될 수도 있다. 일부 예들에서, 하나 이상의 테스트 결과들은 타겟 데이터 센터에서 실행되는 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 수신될 수도 있다. 일부 예들에서, 하나 이상의 테스트 결과들은 애플리케이션 프로그래밍 인터페이스 테스트 모듈이 하나 이상의 타겟 데이터 센터들에서 실행한 후 수신될 수도 있다. 일반적으로, 하나 이상의 테스트 결과들은 임의의 적합한 기법 또는 기법들을 사용하여 그리고 임의의 적합한 통신 채널을 통해 수신될 수도 있다. 일부 예들에서, 하나 이상의 테스트 결과들은 인터넷 또는 가상 사설 네트워크 등을 통해 수신될 수도 있다. 일반적으로, 하나 이상의 테스트 결과들은 임의의 적합한 포맷으로 테스트 결과들을 포함할 수도 있다. 일부 예들에서, 테스트 결과들은 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 구성할 수도 있는 다수의 테스트 세그먼트들에 대응하는 다수의 테스트 결과들을 포함할 수도 있다. 일부 예들에서, 테스트 결과들은 테스트 보고를 포함할 수도 있다. 일부 예들에서, 테스트 보고는 다수의 테스트 세그먼트들 각각에 대한 테스트 결과를 포함할 수도 있다. 일반적으로, 테스트 결과들은 논의된 테스트 세그먼트들에 대한 임의의 적합한 테스트 결과들을 포함할 수도 있다. 일부 예들에서, 테스트 결과들은 테스트 세그먼트가 성공적으로 실행되었는지 여부를 나타낼 수도 있다. 일부 예들에서, 테스트 결과들은 테스트 세그먼트가 실했는지 여부를 나타낼 수도 있다. 일부 예들에서, 테스트 결과들은 테스트 세그먼트가 에러를 리턴했는지 여부를 나타낼 수도 있다. 논의된 바와 같이, 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 하이퍼텍스트 전송 프로토콜 겟 요청을 포함할 수도 있다. 그러한 예들에서, 테스트 결과들은 하이퍼텍스트 전송 프로토콜 겟 요청이 성공적이었는지 여부를 나타내는 표시를 포함할 수도 있다. 방법 (100) 의 프로세스는 결정 블록 (130) 에서 계속될 수도 있다. At block 125, Receive Test Results, one or more test results may be received. In some instances, the one or more test results may be received based at least in part on an application programming interface test module executing in the target data center. In some instances, one or more test results may be received after the application programming interface test module executes at one or more target data centers. In general, one or more test results may be received using any suitable technique or techniques and on any suitable communication channel. In some instances, one or more test results may be received via the Internet or a virtual private network. In general, one or more test results may include test results in any suitable format. In some instances, the test results may include a plurality of test results corresponding to a plurality of test segments that may constitute an application programming interface test module. In some instances, the test results may include a test report. In some instances, a test report may include test results for each of a plurality of test segments. In general, test results may include any suitable test results for the discussed test segments. In some instances, the test results may indicate whether the test segment was successfully executed. In some instances, the test results may indicate whether the test segment has failed. In some instances, the test results may indicate whether the test segment returned an error. As discussed, in some examples, the application programming interface test module may include a hypertext transfer protocol get request. In such instances, the test results may include an indication of whether the hypertext transfer protocol get request was successful. The process of method 100 may continue at decision block 130.

결정 블록 (130), "다른 타겟 데이터 센터들?" 에서, 다른 타겟 데이터 센터들이 애플리케이션 프로그래밍 인터페이스 테스트 모듈로 테스트되는지 여부가 결정될 수도 있다. 다른 타겟 데이터 센터들이 테스트되지 않는 경우 (즉, 하나의 타겟 데이터 센터 만이 테스트되고 있는 경우), 방법 (100) 의 프로세스는 블록 (135), "종료" 에서 도시된 바와 같이 종료될 수도 있다. 다른 타겟 데이터 센터들이 테스트되는 경우, 방법 (100) 의 프로세스는 결정 블록 (140) 에서 계속될 수도 있다. Decision block 130, "other target data centers? , It may be determined whether other target data centers are tested with the application programming interface test module. If other target data centers are not being tested (i.e., only one target data center is being tested), the process of method 100 may end at block 135, as shown at "end". If other target data centers are to be tested, the process of method 100 may continue at decision block 140.

결정 블록 (140), "모든 타겟들이 테스트되었는가?" 에서, 타겟 데이터 센터들의 모두가 테스트되었는지 여부가 결정될 수도 있다. 타겟 데이터 센터들의 모두가 테스트되지 않은 경우, 방법 (100) 의 프로세스는 블록 (120) 에서 계속될 수도 있고, 프로세스는 테스트되는 각각의 타겟 데이터 센터가 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 수신하고 실행하며, 각각의 타겟 데이터 센터의 테스트 결과들이 수신될 수 있도록 테스트되는 타겟 데이터 센터들의 모두가 테스팅을 완료할 때까지 다시 기술된 바와 같이 계속될 수도 있다. 타겟 데이터 센터들의 모두가 테스트되지 않은 경우, 방법 (100) 의 프로세스는 블록 (145) 에서 계속될 수도 있다. Decision block 140, "Are all targets tested?" , It may be determined whether all of the target data centers have been tested. If not all of the target data centers have been tested, the process of method 100 may continue at block 120, where the process receives and executes application programming interface test modules for each target datacenter being tested, All of the target data centers that are being tested so that the test results of the target data center of the target data center may be received may continue as described again until completion of the testing. If not all of the target data centers have been tested, the process of method 100 may continue at block 145.

블록 (145), "타겟 데이터 센터들을 비교" 에서, 테스트된 타겟 데이터 센터들이 비교될 수도 있다. 일반적으로, 테스트된 타겟 데이터 센터들은 임의의 적합한 기법 또는 기법들을 사용하여 비교될 수도 있다. 일부 예들에서, 테스트된 타겟 데이터 센터들은 어느 데이터 센터가 애플리케이션 프로그래밍 인터페이스 콜들의 가장 큰 수를 지원할 수 있는지를 결정할기 위해 비교될 수도 있다. 일부 예들에서, 테스트된 타겟 데이터 센터들은 어느 데이터 센터가 우선순위 애플리케이션 프로그래밍 인터페이스 콜들의 임의의 수를 지원할 수 있는지를 결정하기 위해 비교될 수도 있다. At block 145, "Compare target data centers," the tested target data centers may be compared. In general, the tested target data centers may be compared using any suitable technique or techniques. In some instances, the tested target data centers may be compared to determine which data center can support the largest number of application programming interface calls. In some instances, the tested target data centers may be compared to determine which data center can support any number of priority application programming interface calls.

논의된 바와 같이, 방법 (100) 의 프로세스는 임의의 수의 타겟 데이터 센터들을 테스트 및 비교하기 위해 활용될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 제 1 타겟 데이터 센터에서의 실행을 위해 제 1 타겟 데이터 센터로 송신될 수도 있고, 제 1 테스트 결과들은 제 1 타겟 데이터 센터에서 실행되는 송신된 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 기초하여 수신될 수도 있으며, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 제 2 타겟 데이터 센터에서의 실행을 위해 제 2 타겟 데이터 센터로 송신될 수도 있고, 및/또는 제 2 테스트 결과들은 제 2 타겟 데이터 센터에서 실행되는 송신된 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 기초하여 수신될 수도 있다. 유사한 방식으로, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 임의의 수의 타겟 데이터 센터들로 실행을 위해 송신될 수도 있고, 임의의 수의 테스트 결과들이 비교를 위해 타겟 데이터 센터들로부터 수신될 수도 있다. As discussed, the process of method 100 may be utilized to test and compare any number of target data centers. In some instances, the application programming interface test module may be transmitted to a first target data center for execution in a first target data center, and the first test results may be transmitted to a first target data center using a transmitted application programming interface test Module, and the application programming interface test module may be transmitted to the second target data center for execution in the second target data center, and / or the second test results may be received in the second target data center May be received based on the transmitted application programming interface test module to be executed. In a similar manner, the application programming interface test module may be transmitted for execution to any number of target data centers, and any number of test results may be received from the target data centers for comparison.

논의된 바와 같이, 방법 (100) 의 프로세스는 하나 이상의 타겟 데이터 센터들로부터 테스트 결과들을 리턴할 수도 있다. 일부 예들에서, 테스트 결과들은 여러 애플리케이션 프로그래밍 인터페이스 콜들이 성공적으로 실행되었는지, 실패했는지, 또는 에러들을 보고했는지 등을 나타낼 수도 있다. 일부 예들에서, 임의의 보고된 에러들은 에러에 대한 더 많은 상세를 결정하기 위해 더 조사 또는 검사될 수도 있다. 일부 예들에서, 에러는 애플리케이션 프로그래밍 인터페이스 콜이 지원되지 않을 수도 있다는 것을 나타낼 수도 있다. 일부 예들에서, 에러는 애플리케이션 프로그래밍 인터페이스 콜이 지원되지만, 하나의 데이터가 애플리케이션 프로그래밍 인터페이스 콜에 의해 정확하게 전달되지 않을 수도 있다는 것을 나타낼 수도 있다. 일부 예들에서, 에러는 애플리케이션 프로그래밍 인터페이스 콜이 지원되지만, 하나의 데이터가 목적지 데이터 센터에서 이용가능하지 않을 수도 있다는 것을 나타낼 수도 있다. 그러한 추가의 상세들 및 평가는 하나 이상의 애플리케이션 프로그래밍 인터페이스 콜들에 대한 지원, 및 코드가 단지 업데이트될 필요가 있을 수도 있다는 것, 또는 필요한 데이터가 데이터 센터에 제공될 필요가 있을 수도 있다는 것 등을 나타낼 수도 있다. As discussed, the process of method 100 may return test results from one or more target data centers. In some instances, the test results may indicate whether the various application programming interface calls were successfully executed, failed, reported errors, and so on. In some instances, any reported errors may be further investigated or checked to determine more detail about the error. In some instances, the error may indicate that the application programming interface call may not be supported. In some instances, the error may indicate that an application programming interface call is supported, but one piece of data may not be delivered correctly by the application programming interface call. In some instances, the error may indicate that an application programming interface call is supported, but one piece of data may not be available at the destination data center. Such additional details and evaluation may indicate support for one or more application programming interface calls and that the code may only need to be updated, or that necessary data may need to be provided to the data center, have.

도 2 는 본 개시의 적어도 일부 실시형태들에 따라 배열된, 오리진 데이터 센터에서 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 예시의 방법 (200) 의 흐름도를 도시한다. 일반적으로, 방법 (200) 은 여기서 논의된 것들과 같은 임의의 적합한 디바이스, 디바이스들, 또는 시스템들에 의해 수행될 수도 있다. 일부 예들에서, 방법 (200) 은 데이터 센터에 의해 수행될 수도 있다. 일부 예들에서, 방법 (200) 은 데이터 센터 자원 또는 자원들에 의해 수행될 수도 있다. 일부 예들에서, 방법 (200) 또는 방법 (200) 의 부분들은 가상 머신, 데이터 센터 클러스터, 하나 이상의 네트워크 프로세서들, 하나 이상의 라우터들, 게이트웨이 시스템들, 데이터 손실 방지 시스템들 등에 의해 수행될 수도 있다. 일부 예들에서, 방법 (200) 은 데이터 센터의 가상 머신에의해 수행될 수도 있다. 일부 예들에서, 방법 (200) 은 오리진 데이터 센터에 의해 수행될 수도 있다. 2 illustrates a flow diagram of an example method 200 for determining application programming interface calls used by a service in an origin data center, arranged in accordance with at least some embodiments of the present disclosure. In general, the method 200 may be performed by any suitable device, devices, or systems, such as those discussed herein. In some instances, the method 200 may be performed by a data center. In some instances, the method 200 may be performed by data center resources or resources. In some instances, portions of method 200 or method 200 may be performed by a virtual machine, a data center cluster, one or more network processors, one or more routers, gateway systems, data loss prevention systems, and the like. In some instances, the method 200 may be performed by a virtual machine in the data center. In some instances, the method 200 may be performed by an origin data center.

방법 (200) 은 하드웨어, 소프트웨어, 및/또는 펌웨어에 의해 수행될 수도 있는, 프로세싱 단계들, 기능적 동작들, 이벤트들 및/또는 액트들 등으로서 기술될 수도 있는 여러 기능적 블록들 또는 액션들을 진술한다. 도 2 에 도시된 기능적 블록들에 대한 다수의 대안들은 여러 구현들에서 실시될 수도 있다. 예를 들어, 청구된 주제의 범위로부터 일탈하지 않고, 도시되지 않은 개재하는 액션들 및/또는 도시되지 않은 추가적인 액션들이 채용될 수도 있고, 및/또는 도시된 액션들의 일부가 제거될 수도 있다. 방법 (200) 은 하나 이상의 블록들 (210, 220, 230, 240, 및/또는 250) 에 의해 나타낸 바와 같은 하나 이상의 기능적 동작들을 포함할 수도 있다. 방법 (200) 의 프로세스는 블록 (210) 에서 시작할 수도 있다. The method 200 states various functional blocks or actions that may be described as processing steps, functional operations, events and / or acts, etc., which may be performed by hardware, software, and / . A number of alternatives to the functional blocks shown in FIG. 2 may be implemented in various implementations. For example, intervening actions not shown and / or additional actions not shown may be employed, and / or some of the actions shown may be eliminated without departing from the scope of the claimed subject matter. The method 200 may include one or more functional operations as indicated by one or more blocks 210, 220, 230, 240, and / or 250. The process of method 200 may begin at block 210.

블록 (210), "네트워크 프로세서에서 메시지들을 캡쳐" 에서, 다수의 메시지들이 네트워크 프로세서에서 캡쳐될 수도 있다. 일반적으로, 임의의 적합한 메시지들이 네트워크 프로세서에서 캡쳐될 수도 있다. 일부 예들에서, 캡쳐된 메시지들은 동작 중 (in-operation) 네트워크 메시지를 포함할 수도 있다. 일부 예들에서, 캡쳐된 메시지들은 SOAP (simple object access protocol) 메시지를 포함할 수도 있다. 일부 예들에서, 캡쳐된 메시지들은 REST (representational state transfer) 메시지를 포함할 수도 있다. 일반적으로, 메시지들은 임의의 적합한 기법 또는 기법들을 사용하여 캡쳐될 수도 있다. 일부 예들에서, 네트워크 메시지들은 네트워크 메시지가 애플리케이션 프로그래밍 인터페이스 콜을 가질 수도 있는지 여부를 검출하기 위해 스누프 (snoop) 될 수도 있다. 일부 예들에서, 네트워크 메시지들은 풀 선 속력으로 평가될 수도 있다. 일부 예들에서, 네트워크 메시지들은 직렬로 또는 배치 (batch) 들로 메시지들을 평가할 수도 있는, 부가된 서비스 핸들러 등에 의해 핸들링될 수도 있다. 일반적으로, 네트워크 메시지들은 애플리케이션 프로그래밍 인터페이스 콜들을 수집하기 위한 임의의 시간 프레임에 대해 평가될 수도 있다. 일부 예들에서, 네트워크 메시지들은 일들, 주들, 달들에 대해 평가될 수도 있다. 일반적으로, 네트워크 메시지들은 통상적으로 사용된 및 드믈게 사용된 애플리케이션 프로그래밍 인터페이스 콜들을 캡쳐하는데 필요한 만큼의 사용을 캡쳐할 수도 있는 지속기간에 대해 평가될 수도 있다. 논의된 바와 같이, 일부 예들에서, 메시지들은 하나 이상의 네트워크 프로세서들에서 캡쳐될 수도 있다. 일부 예들에서, 메시지들은 라우터에서, 전용 하드웨어에서, 게이트웨이 시스템에서, 또는 데이터 손실 방지 시스템에서 등등에서 캡쳐될 수도 있다. 방법 (200) 의 프로세스는 블록 (220) 에서 계속될 수도 있다. At block 210, "Capture Messages at Network Processor, " multiple messages may be captured at the network processor. In general, any suitable messages may be captured at the network processor. In some instances, the captured messages may include network messages in-operation. In some instances, the captured messages may include a simple object access protocol (SOAP) message. In some instances, the captured messages may include a representational state transfer (REST) message. In general, messages may be captured using any suitable technique or techniques. In some instances, network messages may be snooped to detect whether a network message may have an application programming interface call. In some instances, network messages may be evaluated at full line speed. In some instances, network messages may be handled by an attached service handler, which may evaluate messages in series or in batches. In general, network messages may be evaluated for any time frame for collecting application programming interface calls. In some instances, network messages may be evaluated for jobs, weeks, or months. In general, network messages may be evaluated for a duration that may capture as much usage as is necessary to capture commonly used and rarely used application programming interface calls. As discussed, in some instances, messages may be captured in one or more network processors. In some instances, the messages may be captured in a router, in dedicated hardware, in a gateway system, or in a data loss prevention system, and so on. The process of method 200 may continue at block 220.

블록 (220), "애플리케이션 프로그래밍 인터페이스 콜들을 추출" 에서, 애플리케이션 프로그래밍 인터페이스 콜들은 캡쳐된 메시지들로부터 추출될 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 콜들은 임의의 적합한 기법 또는 기법들을 사용하여 추출될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜들은 단순 오브젝트 액세스 프로토콜 메시지로부터 추출될 수도 있다. 일부 예들에서, 이하에 더욱 논의되는 바와 같이, 애플리케이션 프로그래밍 인터페이스 콜들은 고객의 서비스에 의해 사용된 애플리케이션 프로그래밍 인터페이스 콜들의 리스트에의 포함을 위해 또는 애플리케이션 프로그래밍 인터페이스 콜들이 이전에 고객의 서비스에 의해 사용된 애플리케이션 프로그래밍 인터페이스 콜들의 리스트 내에 포함되었는지 여부에 대한 결정을 위해, 추출되고, 카피되며, 다른 프로세스로 전달될 수도 있다. 방법 (200) 의 프로세스는 결정 블록 (230) 에서 계속될 수도 있다. At block 220, "Extract application programming interface calls," application programming interface calls may be extracted from the captured messages. In general, application programming interface calls may be extracted using any suitable technique or techniques. In some instances, application programming interface calls may be extracted from a simple object access protocol message. In some instances, as discussed further below, application programming interface calls may be used for inclusion in a list of application programming interface calls used by a customer's service, or for application programming interface calls previously used by a customer's service Copied, and delivered to other processes for determination as to whether or not they are included in the list of application programming interface calls. The process of method 200 may continue at decision block 230.

결정 블록 (230), "애플리케이션 프로그래밍 인터페이스 콜이 이전에 캡쳐된 콜과 유사한가?" 에서, 추출된 애플리케이션 프로그래밍 인터페이스 콜이 이미 캡쳐된 및/또는 추출된 애플리케이션 프로그래밍 인터페이스 콜과 실질적으로 유사하거나 동일할 수도 있는지 여부가 결정될 수도 있다. 일반적으로, 임의의 적합한 기법 또는 기법들에 의해, 추출된 애플리케이션 프로그래밍 인터페이스 콜이 이미 캡쳐된 및/또는 추출된 애플리케이션 프로그래밍 인터페이스 콜과 실질적으로 유사하거나 동일할 수도 있는지 여부가 결정될 수도 있다. 일부 예들에서, 유사성은 이미 캡쳐된 및/또는 추출된 콜들의 리스트 또는 데이터베이스에 대한 애플리케이션 프로그래밍 인터페이스 콜의 비교에 기초할 수도 있다. 일부 예들에서, 유사성은 캡쳐된 및/또는 추출된 애플리케이션 프로그래밍 인터페이스 콜들의 프로그래밍 코드의 비교에 기초할 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 콜이 이전의 애플리케이션 프로그래밍 인터페이스 콜과 유사한지에 대한 결정은 애플리케이션 프로그래밍 인터페이스 콜들을 포함하는 것에 치우칠 수도 있다. 애플리케이션 프로그래밍 인터페이스 콜이 이전에 캡쳐된 및/또는 추출된 콜과 실질적으로 유사하거나 동일하다고 결정되는 경우, 애플리케이션 프로그래밍 인터페이스 콜이 폐기될 수 있도록, 방법 (200) 의 프로세스는 블록 (250), "애플리케이션 프로그래밍 인터페이스 콜을 폐기" 에서 계속될 수도 있다. 애플리케이션 프로그래밍 인터페이스 콜이 이전에 캡쳐된 및/또는 추출된 콜과 실질적으로 유사하거나 동일하지 않다고 결정되는 경우, 방법 (200) 의 프로세스는 블록 (240) 에서 계속될 수도 있다. Decision block 230, "Is the application programming interface call similar to a previously captured call? , It may be determined whether the extracted application programming interface call may be substantially similar or identical to an already captured and / or extracted application programming interface call. In general, by any suitable technique or techniques, it may be determined whether the extracted application programming interface call may be substantially similar or identical to an already captured and / or extracted application programming interface call. In some instances, the similarity may be based on a comparison of already captured and / or extracted calls or application programming interface calls to the database. In some instances, the similarity may be based on a comparison of the programming code of the captured and / or extracted application programming interface calls. In general, the determination of whether an application programming interface call is similar to a previous application programming interface call may be biased towards including application programming interface calls. If the application programming interface call is determined to be substantially similar or identical to a previously captured and / or extracted call, then the process of the method 200 may proceed to block 250, Discard the programming interface call ". If it is determined that the application programming interface call is not substantially similar or identical to a previously captured and / or extracted call, the process of method 200 may continue at block 240.

블록 (240), "애플리케이션 프로그래밍 인터페이스 콜을 포함시킴" 에서, 추출된 애플리케이션 프로그래밍 인터페이스 콜들은 오리진 데이터 센터에서 사용된 애플리케이션 프로그래밍 인터페이스 콜들에 포함될 수도 있다. 일부 예들에서, 사용된 애플리케이션 프로그래밍 인터페이스 콜들은 여기서 논의되는 바와같이 오리진 데이터 센터에서 서비스를 갖는 고객에 의해 사용될 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 콜들은 임의의 적합한 기법 또는 기법들을 사용하여 사용된 애플리케이션 프로그래밍 인터페이스 콜들에 포함될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜들은 애플리케이션 프로그래밍 인터페이스 콜들의 리스트, 애플리케이션 프로그래밍 인터페이스 콜들의 데이터베이스 등에 추가될 수도 있다. At block 240, "Include Application Programming Interface Calls," the extracted application programming interface calls may be included in the application programming interface calls used at the originating data center. In some instances, the application programming interface calls used may be used by customers having services in the origin data center as discussed herein. In general, application programming interface calls may be included in application programming interface calls used using any suitable technique or techniques. In some instances, application programming interface calls may be added to a list of application programming interface calls, a database of application programming interface calls, and so on.

논의된 바와 같이, 방법 (200) 의 프로세스는 이전에 캡쳐된 및/또는 추출된 애플리케이션 프로그래밍 인터페이스 콜들에 대한 캡쳐된 및/또는 추출된 애플리케이션 프로그래밍 인터페이스 콜들의 비교를 포함한다. 일부 예들에서, 모든 캡쳐된 및/또는 추출된 애플리케이션 프로그래밍 인터페이스 콜들이 블록 (240) 에 대해 논의된 바와 같이 포함될 수 있도록 그러한 비교는 생략될 수도 있다. 일부 예들에서, 모든 캡쳐된 및/또는 추출된 애플리케이션 프로그래밍 인터페이스 콜들의 리스트는 중복들 (duplicates) 을 제거하기 위해 후속적으로 제거될 수도 있다. As discussed, the process of method 200 includes a comparison of captured and / or extracted application programming interface calls to previously captured and / or extracted application programming interface calls. In some instances, such comparisons may be omitted so that all captured and / or extracted application programming interface calls may be included as discussed for block 240. [ In some instances, a list of all captured and / or extracted application programming interface calls may be subsequently removed to eliminate duplicates.

도 3 은 본 개시의 적어도 일부 실시형태들에 따라 배열된, 오리진 데이터 센터에서 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 예시의 방법 (300) 의 흐름도를 도시한다. 일반적으로, 방법 (300) 은 여기서 논의된 것들과 같은 임의의 적합한 디바이스, 디바이스들, 또는 시스템들에 의해 수행될 수도 있다. 일부 예들에서, 방법 (300) 은 데이터 센터에 이해 수행될 수도 있다. 일부 예들에서, 방법 (300) 은 데이터 센터 자원 또는 자원들에 의해 수행될 수도 있다. 일부 예들에서, 방법 (300) 은 가상 머신, 데이터 센터 클러스터, 하나 이상의 네트워크 프로세서들, 하나 이상의 라우터들, 게이트웨이 시스템들, 데이터 손실 방지 시스템들 등에 의해 수행될 수도 있다. 일부 예들에서, 방법 (100) 은 데이터 센터의 가상 머신에 의해 수행될 수도 있다. 일부 예들에서, 방법 (100) 은 오리진 데이터 센터에 의해 수행될 수도 있다. FIG. 3 shows a flow diagram of an exemplary method 300 for determining application programming interface calls used by a service in an origin data center, arranged in accordance with at least some embodiments of the present disclosure. In general, the method 300 may be performed by any suitable device, devices, or systems, such as those discussed herein. In some instances, the method 300 may be performed in an understanding of the data center. In some instances, the method 300 may be performed by data center resources or resources. In some instances, the method 300 may be performed by a virtual machine, a data center cluster, one or more network processors, one or more routers, gateway systems, data loss prevention systems, and the like. In some instances, the method 100 may be performed by a virtual machine in the data center. In some instances, the method 100 may be performed by an origin data center.

방법 (300) 은 하드웨어, 소프트웨어, 및/또는 펌웨어에 의해 수행될 수도 있는, 프로세싱 단계들, 기능적 동작들, 이벤트들 및/또는 액트들 등으로서 기술될 수도 있는 여러 기능적 블록들 또는 액션들을 진술한다. 도 3 에 도시된 기능적 블록들에 대한 다수의 대안들은 여러 구현들에서 실시될 수도 있다. 예를 들어, 청구된 주제의 범위로부터 일탈하지 않고, 도시되지 않은 개재하는 액션들 및/또는 도시되지 않은 추가적인 액션들이 채용될 수도 있고, 및/또는 도시된 액션들의 일부가 제거될 수도 있다. 방법 (300) 은 하나 이상의 블록들 (310 및/또는 320) 에 의해 나타낸 바와 같은 하나 이상의 기능적 동작들을 포함할 수도 있다. 방법 (300) 의 프로세스는 블록 (310) 에서 시작할 수도 있다. The method 300 states various functional blocks or actions that may be described as processing steps, functional operations, events and / or acts, etc., which may be performed by hardware, software, and / . Many alternatives to the functional blocks shown in FIG. 3 may be implemented in various implementations. For example, intervening actions not shown and / or additional actions not shown may be employed, and / or some of the actions shown may be eliminated without departing from the scope of the claimed subject matter. The method 300 may include one or more functional operations as indicated by one or more blocks 310 and / or 320. The process of method 300 may begin at block 310.

블록 (310), "코드-레벨 애플리케이션 프로그래밍 인터페이스 콜들을 검출하기 위해 코드 레포지토리를 평가" 에서, 코드 레포지토리가 코드-레벨 애플리케이션 프로그래밍 인터페이스 콜들을 검출하기 위해 평가될 수도 있다. 일반적으로, 코드 레포지토리는 임의의 적합한 기법 또는 기법들을 사용하여 코드-레벨 애플리케이션 프로그래밍 인터페이스 콜들을 검출하기 위해 평가될 수도 있다. 일부 예들에서, 코드 레포지토리를 평가하는 것은 애플리케이션 프로그래밍 인터페이스 콜들에 대한 코드 레포지토리 또는 애플리케이션 프로그래밍 인터페이스 콜들을 나타내는 코드 등에 대한 본문 (textual) 검색을 포함할 수도 있다. 방법 (300) 의 프로세스는 블록 (320) 에서 계속될 수도 있다. At block 310, "Evaluate code repositories to detect code-level application programming interface calls", a code repository may be evaluated to detect code-level application programming interface calls. In general, a code repository may be evaluated to detect code-level application programming interface calls using any suitable technique or techniques. In some instances, evaluating a code repository may include textual searches for code, such as code repositories for application programming interface calls or code representing application programming interface calls. The process of method 300 may continue at block 320.

블록 (320), "코드-레벨 애플리케이션 프로그래밍 인터페이스 콜들을 포함시킴" 에서, 코드-레벨 애플리케이션 프로그래밍 인터페이스 콜들은 오리진 데이터 센터에서 사용된 애플리케이션 프로그래밍 인터페이스 콜들에 포함될 수도 있다. 일부 예들에서, 사용된 애플리케이션 프로그래밍 인터페이스 콜들은 여기서 논의된 바와 같이 오리진 데이터 센터에서 서비스를 갖는 고객에 의해 사용될 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 콜들은 임의의 적합한 기법 또는 기법들을 사용하여 사용된 애플리케이션 프로그래밍 인터페이스 콜들에 포함될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜들은 애플리케이션 프로그래밍 인터페이스 콜들의 리스트, 애플리케이션 프로그래밍 인터페이스 콜들의 데이터베이스 등에 추가될 수도 있다. At block 320, "Including code-level application programming interface calls," code-level application programming interface calls may be included in application programming interface calls used in the originating data center. In some instances, the application programming interface calls used may be used by customers having services in the origin data center as discussed herein. In general, application programming interface calls may be included in application programming interface calls used using any suitable technique or techniques. In some instances, application programming interface calls may be added to a list of application programming interface calls, a database of application programming interface calls, and so on.

논의된 바와 같이, 방법 (200) 은 애플리케이션 프로그래밍 인터페이스 콜들을 캡쳐하는 것 및/또는 추출하는 것을 포함할 수도 있고, 방법 (300) 은 애플리케이션 프로그래밍 인터페이스 콜들을 검출하기 위해 코드 레포지토리를 평가하는 것을 포함할 수도 있다. 일부 예들에서, 방법 (200) 및 방법 (300) 의 프로세스들은 데이터 센터에서 고객의 서비스에 의해 사용된 애플리케이션 프로그래밍 인터페이스 콜들 결정하기 위해 결합될 수도 있다. 일부 예들에서, 방법 (200) 의 프로세스는 먼저 수행될 수도 있다. 일부 예들에서는, 방법 (300) 의 프로세스가 먼저 수행될 수도 있다. 일부 예들에서, 프로세스들은 동시에 또는 실질적으로 동시에 수행될 수도 있다. 방법 (200) 에 대해 논의된 바와 같이, 일부 예들에서, 중복 애플리케이션 프로그래밍 인터페이스 콜들은 고객의 서비스에 의해 사용되는 사용중 애플리케이션 프로그래밍 인터페이스 콜들의 리스트로부터 제거될 수도 있다. As discussed, the method 200 may include capturing and / or extracting application programming interface calls, and the method 300 may include evaluating a code repository to detect application programming interface calls It is possible. In some instances, the processes of method 200 and method 300 may be combined to determine the application programming interface calls used by the customer's service in the data center. In some instances, the process of method 200 may be performed first. In some instances, the process of method 300 may be performed first. In some instances, the processes may be performed simultaneously or substantially concurrently. As discussed for method 200, in some instances, duplicate application programming interface calls may be removed from the list of in-use application programming interface calls used by the customer's service.

상기 기법들은 데이터 센터에서 고객의 서비스에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들을 결정하기 위한 방법들을 기술한다. 일부 예들에서, 기술된 기법들은, 각각의 데이터 센터에 대한 프로그래밍 라이브러리들 또는 맞춤 코드가 요구되지 않도록, 일반 애플리케이션 프로그래밍 인터페이스 콜들을 결정하기 위해 메시지 중복 및 저레벨 액세스를 사용할 수도 있다. 그러한 기법들은 낮은 비용, 속력, 및 확장성 (scalability) 이 이점들을 제공할 수도 있다. 또한, 데이터 센터에서 고객의 서비스 (또는 다수의 고객들의 서비스들) 에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들의 결정된 리스트는, 예를 들어 다른 데이터 센터들에 대한 소스로서 그들이 널리 사용된 애플리케이션 프로그래밍 인터페이스 콜들을 지원하는지를 체크하기 위한 것, 널리 사용된 애플리케이션 프로그래밍 인터페이스 콜들의 선능에 대한 지원시 개선하기 위한 것 등과 같은 다양한 목적들에 유용할 수도 있다. The techniques describe methods for determining application programming interface calls used by a customer's service in a data center. In some instances, the techniques described may use message redundancy and low-level access to determine common application programming interface calls so that programming libraries or custom code for each data center is not required. Such techniques may provide advantages at low cost, speed, and scalability. In addition, a determined list of application programming interface calls used by a customer's service (or services of multiple customers) in the data center may be used as a source for other data centers, for example, For example, to check if the application is supported, to improve support for the ability of widely used application programming interface calls, and the like.

도 4 는 본 개시의 적어도 일부 실시형태들에 따라 배열된, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 예시의 시스템 (400) 의 블록도를 도시한다. 도시된 바와 같이, 시스템 (400) 은 애플리케이션 프로그래밍 인터페이스 콜들 (414) 을 포함하는 서비스 (412) 를 갖는 오리진 데이터 센터 (410) 를 포함할 수도 있다. 시스템 (400) 은 또한 연결 (430) 에 의해 오리진 데이터 센터 (410) 와 통신하는 타겟 데이터 센터 (420) 를 포함할 수도 있다. FIG. 4 illustrates a block diagram of an exemplary system 400 for providing application programming interface testing services arranged in accordance with at least some embodiments of the present disclosure. As shown, the system 400 may include an origin data center 410 having a service 412 that includes application programming interface calls 414. The system 400 may also include a target data center 420 in communication with the origin data center 410 via a connection 430.

일반적으로, 오리진 데이터 센터 (410) 는 고객을 위한 서비스 (412), 또는 하나 이상의 고객들을 위한 다수의 서비스들을 갖는 임의의 적합한 데이터 센터를 포함할 수도 있다. 일부 예들에서, 오리진 데이터 센터 (410) 는 컴퓨터들, 서버들, 서버 시스템들, 데이터 저장 시스템들, 통신 시스템들, 컴퓨팅 클러스터들, 및/또는 부수적인 주변 시스템들 등을 포함할 수도 있다. 일부 예들에서, 데이터 센터 (410) 는 클라우드 컴퓨팅 환경에서 구현될 수도 있다. 일부 예들에서, 데이터 센터 (410) 는 하나 이상의 네트워크 프로세서들, 하나 이상의 라우터들, 게이트웨이 시스템들, 데이터 손실 방지 시스템들 등을 포함할 수도 있다. 일부 예들에서, 데이터 센터 (410) 는 서비스 (412) 와 연관된 코드 레포지토리를 위한 레포지토리로서 작용할 수도 있는 데이터베이스 또는 데이터베이스들을 포함할 수도 있다. 일반적으로, 서비스 (412) 는 임의의 적합한 방식으로 데이터 센터 (410) 에서 구현될 수도 있다. 인정되는 바와 같이, 오리진 데이터 센터 (410) 는 오리진 데이터 센터 (410) 에 의해 서비스되는 임의의 수의 고객들에 대응하는 임의의 수의 서비스들 (412) 을 포함할 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 콜들 (414) 은 여기서 논의된 바와 같은 임의의 애플리케이션 프로그래밍 인터페이스 콜들을 포함할 수도 있다. In general, the origin data center 410 may include a service 412 for a customer, or any suitable data center having multiple services for one or more customers. In some instances, the origin data center 410 may include computers, servers, server systems, data storage systems, communication systems, computing clusters, and / or incidental peripheral systems. In some instances, data center 410 may be implemented in a cloud computing environment. In some instances, data center 410 may include one or more network processors, one or more routers, gateway systems, data loss prevention systems, and the like. In some instances, data center 410 may include databases or databases that may serve as repositories for code repositories associated with services 412. In general, the services 412 may be implemented in the data center 410 in any suitable manner. As will be appreciated, the origin data center 410 may include any number of services 412 corresponding to any number of customers serviced by the origin data center 410. In general, application programming interface calls 414 may include any application programming interface calls as discussed herein.

일반적으로, 타겟 데이터 센터 (420) 는 여기서 논의된 바와 같은 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 실행할 수도 있는 임의의 적합한 데이터 센터를 포함할 수도 있다. 일부 예들에서, 타겟 데이터 센터 (420) 는 컴퓨터들, 서버들, 서버 시스템들, 데이터 저장 시스템들, 통신 시스템들, 컴퓨팅 클러스터들, 네트워크 프로세서들, 데이터베이스들, 및/또는 부수적인 주변 시스템들 등을 포함할 수도 있다. 일부 예들에서, 타겟 데이터 센터 (420) 는 클라우드 컴퓨팅 환경에서 구현될 수도 있다. 일반적으로, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 임의의 적합한 방식으로 타겟 데이터 센터 (420) 에서 실행될 수도 있다. 도시된 바와 같이, 일부 예들에서, 시스템 (400) 은 하나의 타겟 데이터 센터를 포함할 수도 있다. 일부 예들에서, 시스템 (400) 은 여기서 논의된 바와 같이 테스팅을 위해 다수의 타겟 데이터 센터들을 포함할 수도 있다. In general, target data center 420 may include any suitable data center that may execute application programming interface test modules as discussed herein. In some instances, the target data center 420 may be a computer system, such as computers, servers, server systems, data storage systems, communication systems, computing clusters, network processors, databases, and / . In some instances, the target data center 420 may be implemented in a cloud computing environment. In general, the application programming interface test module may be executed in the target data center 420 in any suitable manner. As shown, in some examples, the system 400 may include one target data center. In some instances, the system 400 may include multiple target data centers for testing as discussed herein.

도시된 바와 같이, 오리진 데이터 센터 (410) 및 타겟 데이터 센터 (420) 는 연결 (430) 을 통해 통신 중에 있을 수도 있다. 일반적으로, 연결 (430) 은 임의의 적합한 통신 연결을 포함할 수도 있다. 일부 예들에서, 통신 연결은 가상 사설 네트워크 (VPN) 터널을 포함할 수도 있다. 일부 예들에서, 통신 연결은 관리 연결을 포함할 수도 있다. 일부 예들에서, 통신 연결은 인터넷을 통하는 것일 수도 있다.As shown, the origin data center 410 and the target data center 420 may be in communication via the connection 430. [ In general, connection 430 may include any suitable communication connection. In some instances, the communication connection may comprise a virtual private network (VPN) tunnel. In some instances, the communication connection may comprise a management connection. In some instances, the communication connection may be through the Internet.

여기서 논의된 바와 같이, 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스가 제공될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스는 오리진 데이터 센터에 의해 제공될 수도 있다. 예를 들어, 서비스 (412) 에 의해 사용되는 애플리케이션 프로그래밍 인터페이스 콜들 (414) 은 예를 들어 (도 2 에 대해 논의된 바와 같은) 네트워크 프로세서에서의 캡쳐된 메시지들로부터의 추출 및/또는 (도 3 에 대해 논의된 바와 같이) 코드 레포지토리를 평가하는 것에 의해서와 같은, 여기서 논의된 임의의 기법들을 사용하여 오리진 데이터 센터 (410) 에서 결정될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜들은 테스트 세그먼트들로 변환될 수도 있고, 애플리케이션 프로그래밍 인터페이스 테스트 모듈이 형성될 수도 있으며, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 송신될 수도 있고, 테스트 결과들이 오리진 데이터 센터 (410) 에서 수신될 수도 있다. 일부 예들에서, 타겟 데이터 센터 (420) 는 여기서 논의된 바와 같이 애플리케이션 프로그래밍 인터페이스 테스트 모듈 또는 테스트 세그먼트들을 수신하고 실행할 수도 있다. As discussed herein, in some instances, an application programming interface testing service may be provided. In some instances, the application programming interface testing service may be provided by the origin data center. For example, the application programming interface calls 414 used by the service 412 may include, for example, extracting from the captured messages at the network processor (as discussed with respect to FIG. 2) and / May be determined at the origin data center 410 using any of the techniques discussed herein, such as by evaluating a code repository (as discussed above). In some instances, the application programming interface calls may be transformed into test segments, an application programming interface test module may be formed, an application programming interface test module may be sent, and test results may be sent to the origin data center 410 Lt; / RTI > In some instances, target data center 420 may receive and execute application programming interface test modules or test segments as discussed herein.

도 5 는 본 개시의 적어도 일부 실시형태들에 따라 배열된, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 예시의 시스템 (500) 의 블록도를 도시한다. 도시된 바와 같이, 시스템 (500) 은 도 4 에 대해 그리고 여기의 다른 곳에서 논의된 바와 같이 애플리케이션 프로그래밍 인터페이스 콜들 (414) 을 포함하는 서비스 (412) 를 갖는 오리진 데이터 센터 (410) 를 포함할 수도 있다. 시스템 (500) 은 또한 도 4 에 대해 그리고 여기의 다른 곳에서 논의된 바와 같이, 타겟 데이터 센터 (420) 를 포함할 수도 있다. 시스템 (500) 은 또한 연결 (520) 에 의해 오리진 데이터 센터 (410) 와 통신 중이고 연결 (530) 에 의해 타겟 데이터 센터 (420) 와 통신 중인 제 3 자 자원 (510) 을 포함할 수도 있다. FIG. 5 illustrates a block diagram of an exemplary system 500 for providing application programming interface testing services arranged in accordance with at least some embodiments of the present disclosure. As shown, the system 500 may include an origin data center 410 having a service 412 that includes application programming interface calls 414 as discussed with respect to FIG. 4 and elsewhere herein. have. The system 500 may also include a target data center 420, as discussed with respect to FIG. 4 and elsewhere herein. The system 500 may also include a third party resource 510 that is in communication with the target data center 420 by a connection 530 in communication with the origin data center 410 by a connection 520.

일반적으로, 제 3 자 자원 (510) 은 임의의 적합한 컴퓨팅 디바이스 또는 디바이스들을 포함할 수도 있다. 일부 예들에서, 제 3 자 자원 (510) 은 컴퓨터들, 서버들, 서버 시스템들, 데이터 저장 시스템들, 통신 시스템들, 컴퓨팅 클러스터들, 및/또는 부수적인 주변 시스템들 등을 포함할 수도 있다. 도시된 바와 같이, 제 3 자 자원 (510) 은 연결 (520) 에 의해 오리진 데이터 센터 (410) 와 통신 중이고 연결 (530) 에 의해 타겟 데이터 센터 (420) 와 통신 중일 수도 있다. 일반적으로, 연결들 (520, 530) 은 임의의 적합한 통신 연결들을 포함할 수도 있다. 일부 예들에서, 하나 또는 양 통신 연결들은 가상 사설 네트워크 (VPN) 터널을 포함할 수도 있다. 일부 예들에서, 하나 또는 양 통신 연결들은 관리 연결을 포함할 수도 있다. 일부 예들에서, 하나 또는 양 통신 연결들은 인터넷을 통해서 일 수도 있다. In general, the third party resource 510 may include any suitable computing device or devices. In some instances, third party resources 510 may include computers, servers, server systems, data storage systems, communication systems, computing clusters, and / or incidental peripheral systems, and the like. As shown, the third party resource 510 may be communicating with the originating data center 410 by connection 520 and communicating with the target data center 420 by connection 530. In general, connections 520 and 530 may include any suitable communication connections. In some instances, one or both communication connections may include a virtual private network (VPN) tunnel. In some instances, one or both communication connections may include a management connection. In some instances, one or both communication connections may be through the Internet.

여기서 논의된 바와 같이, 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스가 제공될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스는 제 3 자 자원 (510) 에 의해 제공될 수도 있다. 예를 들어, 서비스 (412) 에 의해 사용된 애플리케이션 프로그래밍 인터페이스 콜들 (414) 은 제 3 자 자원 (510) 에 의해 제공된 소프트웨어 또는 커맨드들을 통해 그리고 예를 들어 (도 2 에 대해 논의된 바와 같은) 네트워크 프로세서에서의 캡쳐된 메시지들로부터의 추출 및/또는 (도 3 에 대해 논의된 바와 같이) 코드 레포지토리를 평가하는 것에 의해서와 같은, 여기서 논의된 임의의 기법들을 사용하여 오리진 데이터 센터 (410) 에서 결정될 수도 있다. 일부 예들에서, 애플리케이션 프로그래밍 인터페이스 콜들은 테스트 세그먼트들로 변환될 수도 있고, 애플리케이션 프로그래밍 인터페이스 테스트 모듈이 형성될 수도 있으며, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 송신될 수도 있고, 테스트 결과들이 제 3 자 자원 (510) 에서 수신될 수도 있다. 일부 예들에서, 제 3 자 자원 (510) 은 고객들이 데이터 센터들 사이를 이전하기 위한 정보 또는 지원 등을 제공하는 당사자에 의해 관리되고/관리되거나 동작될 수도 있다. 일부 예들에서, 제 3 자 자원 (510) 은 데이터 센터 또는 클라우드 서비스들 브로커 등에 의해 관리되고 및/또는 동작될 수도 있다. As discussed herein, in some instances, an application programming interface testing service may be provided. In some instances, the application programming interface testing service may be provided by the third party resource 510. For example, the application programming interface calls 414 used by the service 412 may be communicated via the software or commands provided by the third party resource 510 and via a network (e. G., As discussed with respect to FIG. 2) As determined at the origin data center 410 using any of the techniques discussed herein, such as by extracting from the captured messages at the processor and / or evaluating the code repository (as discussed with respect to FIG. 3) It is possible. In some instances, the application programming interface calls may be transformed into test segments, an application programming interface test module may be formed, an application programming interface test module may be sent, Lt; / RTI > In some instances, third party resources 510 may be managed / managed or operated by a party providing information or assistance, etc., for customers to migrate between data centers. In some instances, the third party resource 510 may be managed and / or operated by a data center or a cloud services broker.

도 6 은 본 개시의 적어도 일부 실시형태들에 따라 배열된, 예시의 컴퓨터 프로그램 제품 (600) 을 도시한다. 컴퓨터 프로그램 제품 (600) 은 실행될 때, 머신으로 하여금 여기에 논의된 프로세스들 및 방법들에 따라 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 복수의 명령들을 저장한 머신 판독가능 비일시적 매체를 포함할 수도 있다. 컴퓨터 프로그램 제품 (600) 은 신호 베어링 매체 (602) 를 포함할 수도 있다. 신호 베어링 매체 (602) 는 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 디바이스가 여기에 기술된 기능성을 제공하는 것을 동작적으로 가능하게 할 수도 있는 하나 이상의 머신 판독가능 명령들 (604) 을 포함할 수도 있다. 여러 예들에서, 머신 판독가능 명령들의 일부 또는 전부는 여기에 논의된 디바이스들에 의해 사용될 수도 있다. Figure 6 illustrates an example computer program product 600 arranged in accordance with at least some embodiments of the present disclosure. The computer program product 600, when executed, may include a machine-readable non-volatile medium storing a plurality of instructions that cause the machine to provide an application programming interface testing service in accordance with the processes and methods discussed herein . The computer program product 600 may include a signal bearing medium 602. The signal bearing medium 602 may include one or more machine-readable instructions 604 that, when executed by one or more processors, may enable the computing device to operatively provide the functionality described herein, have. In various instances, some or all of the machine-readable instructions may be used by the devices discussed herein.

일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 오리진 데이터 센터에서 서비스에 의해 사용된 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정함으로써 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. 일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 복수의 애플리케이션 프로그래밍 인터페이스 콜들 각각을 테스트 세그먼트로 변환하여 복수의 테스트 세그먼트들을 생성하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. 일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 타겟 데이터 센터에 대한 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것으로서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 복수의 테스트 세그먼트들 각각을 포함하는, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. 일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 타겟 데이터 센터에서의 실행을 위해 타겟 데이터 센터로 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 송신하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. 일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 타겟 데이터 센터에서 실행되는 송신된 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 테스트 결과들을 수신하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. 일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 타겟 데이터 센터에서의 실행을 위해 타겟 데이터 센터로 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 송신하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. 일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 타겟 데이터 센터에서 실행되는 송신된 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 테스트 결과들을 수신하는 것으로서, 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 하이퍼텍스트 전송 프로토콜 풋 (put) 요청을 포함하고, 하나 이상의 테스트 결과들은 하이퍼텍스트 전송 프로토콜 겟 요청이 성공적이었다는 표시를 포함하는, 상기 하나 이상의 테스트 결과들을 수신하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. 일부 예들에서, 머신 판독가능 명령들 (604) 은, 실행될 때, 디바이스로 하여금, 하나 이상의 테스트 결과들을 제 2 타겟 데이터 센터로부터 수신된 하나 이상의 제 2 테스트 결과들과 비교하는 것에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 포함할 수도 있다. In some instances, machine-readable instructions 604 include instructions that, when executed, cause the device to provide instructions for providing an application programming interface testing service by determining a plurality of application programming interface calls used by the service in the originating datacenter . In some instances, machine-readable instructions 604, when executed, cause the device to provide an application programming interface testing service by converting each of a plurality of application programming interface calls into test segments to generate a plurality of test segments ≪ / RTI > In some examples, machine-readable instructions 604, when executed, cause the device to form an application programming interface test module for a target data center, wherein the application programming interface test module includes each of a plurality of test segments And providing the application programming interface testing service by forming the application programming interface test module. In some instances, the machine-readable instructions 604, when executed, provide the application programming interface testing service by sending the application programming interface test module to the target data center for execution on the target data center ≪ / RTI > In some instances, the machine-readable instructions 604, when executed, cause the device to perform one or more of the following steps, by receiving one or more test results based at least in part on a transmitted application programming interface test module, And may include instructions to provide a programming interface testing service. In some instances, the machine-readable instructions 604, when executed, provide the application programming interface testing service by sending the application programming interface test module to the target data center for execution on the target data center ≪ / RTI > In some instances, the machine-readable instructions 604, when executed, cause the device to receive one or more test results based, at least in part, on a transmitted application programming interface test module executed in the target data center, Wherein the programming interface test module includes a hypertext transfer protocol put request and wherein the one or more test results include an indication that the hypertext transfer protocol get request was successful, And may include instructions to provide a testing service. In some instances, the machine-readable instructions 604, when executed, cause the device to perform one or more of the application programming interface testing by comparing the one or more test results to one or more second test results received from the second target data center Services to provide the service.

일부 구현들에서, 신호 베어링 매체 (602) 는 하드 디스크 드라이브, 콤팩 디스크 (CD), DVD (Digital Versatile Disk), 디지털 테이프, 메모리 등과 같지만 이들에 제한되지 않는 컴퓨터 판독가능 매체 (606) 를 포함할 수도 있다. 일부 구현들에서, 신호 베어링 매체 (602) 는 메모리, 리드/라이트 (R/W) CD 들, R/W DVD 들 등과 같지만 이들에 제한되지 않는 기록가능 매체 (608) 를 포함할 수도 있다. 일부 구현들에서, 신호 베어링 매체 (602) 는 디지털 및/또는 아날로그 통신 매체 (예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같지만 이들에 제한되지 않는 통신 매체 (610) 를 포함할 수도 있다. 일부 예들에서, 신호 베어링 매체 (602) 는 머신 판독가능 비일시적 매체를 포함할 수도 있다. In some implementations, the signal bearing medium 602 includes a computer readable medium 606 such as but not limited to a hard disk drive, a compact disk (CD), a digital versatile disk (DVD), a digital tape, It is possible. In some implementations, the signal bearing medium 602 may include a recordable medium 608 such as but not limited to memory, read / write (R / W) CDs, R / W DVDs, In some implementations, the signal bearing media 602 may include communication media 610, such as but not limited to digital and / or analog communication media (e.g., fiber optic cables, waveguides, wired communication links, . ≪ / RTI > In some instances, the signal bearing medium 602 may comprise a machine readable non-volatile medium.

도 7 은 본 개시의 적어도 일부 실시형태들에 따라 배열된, 예시의 컴퓨팅 디바이스 (700) 의 블록도를 도시한다. 여러 예들에서, 컴퓨팅 디바이스 (700) 는 여기서 논의된 애플리케이션 프로그래밍 인터페이스 테스팅 서비스들을 제공하도록 구성될 수도 있다. 하나의 예시의 기본 구성 (701) 에서, 컴퓨팅 디바이스 (700) 는 하나 이상의 프로세서들 (710) 및 시스템 메모리 (720) 를 포함할 수도 있다. 메모리 버스 (730) 는 프로세서 (710) 및 시스템 메모리 (720) 사이에 통신하기 위해 사용될 수 있다. FIG. 7 illustrates a block diagram of an exemplary computing device 700, arranged in accordance with at least some embodiments of the present disclosure. In various instances, the computing device 700 may be configured to provide the application programming interface testing services discussed herein. In one example basic configuration 701, computing device 700 may include one or more processors 710 and system memory 720. Memory bus 730 may be used to communicate between processor 710 and system memory 720.

원하는 구성에 따라, 프로세서 (710) 는 마이크로프로세서 (μP), 마이크로제어기 (μC), 디지털 신호 프로세서 (DSP), 또는 이들의 임의의 조합을 포함하지만 이들에 제한되지 않는 임의의 타입일 수도 있다. 프로세서 (710) 는 레벨 1 캐시 (711) 및 레벨 2 캐시 (712) 와 같은 캐싱의 하나 이상의 레벨들, 프로세서 코어 (713), 및 레지스터들 (714) 을 포함할 수 있다. 프로세서 코어 (713) 는 산술 논리 유닛 (ALU), 플로팅 포인트 유닛 (FPU), 디지털 신호 프로세싱 코어 (DSP 코어), 또는 이들의 임의의 조합을 포함할 수 있다. 메모리 제어기 (715) 는 또한 프로세서 (710) 와 함께 사용될 수 있거나, 일부 구현들에서 메모리 제어기 (715) 는 프로세서 (710) 의 내부 부분일 수 있다.Depending on the desired configuration, the processor 710 may be of any type including, but not limited to, a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. Processor 710 may include one or more levels of caching, such as a level 1 cache 711 and a level 2 cache 712, a processor core 713, and registers 714. The processor core 713 may comprise an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. The memory controller 715 may also be used with the processor 710 or, in some implementations, the memory controller 715 may be an internal portion of the processor 710. [

원하는 구성에 따라, 시스템 메모리 (720) 는 (RAM 과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 이들의 임의의 조합을 포함하지만 이들에 제한되지 않는 임의의 타입일 수도 있다. 시스템 메모리 (720) 는 운영 시스템 (721), 하나 이상의 애플리케이션들 (722), 및 프로그램 데이터 (724) 를 포함할 수도 있다. 애플리케이션 (722) 은 여기에 기술된 기능적 블록들, 액션들, 및/또는 동작들을 포함하여 여기에 기술된 기능들, 액션들, 및/또는 동작들을 수행하도록 배열될 수 있는 API 테스팅 애플리케이션 (723) 을 포함할 수도 있다. 프로그램 데이터 (724) 는 API 테스팅 애플리케이션 (723) 과 함께 사용을 위한 API 테스팅 데이터 (725) 를 포함할 수도 있다. 일부 예시의 실시형태들에서, 애플리케이션 (722) 은 운영 시스템 (721) 상에서 프로그램 데이터 (724) 와 함께 동작하도록 배열될 수도 있다. 이 기술된 기본 구성은 점선 (701) 내의 이들 컴포넌트들에 의해 도 7 에 도시된다. Depending on the desired configuration, the system memory 720 may be any type including, but not limited to, volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) have. The system memory 720 may include an operating system 721, one or more applications 722, and program data 724. The application 722 may include an API testing application 723 that may be arranged to perform the functions, actions, and / or actions described herein, including the functional blocks, actions, and / . The program data 724 may include API testing data 725 for use with the API testing application 723. In some example embodiments, the application 722 may be arranged to operate with the program data 724 on the operating system 721. This described basic configuration is shown in Fig. 7 by these components in dotted line 701.

컴퓨팅 디바이스 (700) 는 추가적인 특징들 또는 기능성, 및 기본 구성 (701) 과 임의의 요구된 디바이스들 및 인터페이스들 사이의 통신을 용이하게 하는 추가적인 인터페이스들을 가질 수도 있다. 예를 들어, 버스/인터페이스 제어기 (740) 는 저장 인터페이스 버스 (741) 를 통해 기본 구성 (701) 과 하나 이상의 데이터 저장 디바이스들 (750) 사이의 통신을 용이하게 하는데 사용될 수도 있다. 데이터 저장 디바이스들 (750) 은 착탈가능한 저장 디바이스들 (751), 비착탈가능 저장 디바이스들 (752), 또는 이들의 조합일 수도 있다. 착탈가능 저장 디바이스 및 비착탈가능 저장 디바이스의 예들은 몇가지만 열거하면 유연성 디스크 드라이브들 및 하드 디스크 드라이브 (HDD) 와 같은 자기 디스크 디바이들, 콤팩 디스크 (CD) 드라이브들 또는 DVD (digital versatile disk) 드라이브들과 같은 광디스크 드라이브들, 고체 상태 드라이브들 (SSD), 및 테이프 드리이브들을 포함한다. 예시의 컴퓨터 저장 매체는 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈가능 및 비착탈가능 매체를 포함할 수도 있다. The computing device 700 may have additional features or functionality and additional interfaces that facilitate communication between the basic configuration 701 and any desired devices and interfaces. For example, the bus / interface controller 740 may be used to facilitate communication between the base configuration 701 and the one or more data storage devices 750 via the storage interface bus 741. The data storage devices 750 may be removable storage devices 751, non-removable storage devices 752, or a combination thereof. Examples of removable and non-removable storage devices include, but are not limited to, flexible disk drives and magnetic disk devices such as hard disk drives (HDD), compact disk (CD) drives, or digital versatile disk , Solid state drives (SSD), and tape drives. Illustrative computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. . ≪ / RTI >

시스템 메모리 (720), 착탈가능 기억장치 (751) 및 비착탈가능 기억장치 (752) 는 모두 컴퓨터 저장 매체의 예시들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD (digital versatile disk) 또는 다른 광학 기억장치, 자기 카세트들, 자기 테이프, 자기 디스크 기억장치 또는 다른 자기 저장 디바이스들, 또는 컴퓨팅 디바이스 (700) 에 의해 액세스될 수도 있고 원하는 정보를 저장하는데 사용될 수도 있는 임의의 다른 매체를 포함하지만 이들에 제한되지 않는다. 임의의 그러한 컴퓨터 저장 매체는 디바이스 (700) 의 일부일 수도 있다.The system memory 720, the removable storage device 751, and the non-removable storage device 752 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices , Or any other medium that may be accessed by computing device 700 and used to store the desired information. Any such computer storage media may be part of device 700.

컴퓨팅 디바이스 (700) 는 또한 버스/인터페이스 제어기 (740) 를 통해 여러 인터페이스 디바이스들 (예를 들어, 출력 인터페이스들, 주변 인터페이스들, 및 통신 인터페이스들) 로부터 기본 구성 (701) 으로의 통신을 용이하게 하는 인터페이스 버스 (742) 를 포함할 수도 있다. 예시의 출력 인터페이스들 (760) 은 하나 이상의 A/V 포트들 (763) 을 통해 디스플레이 또는 스피커들과 같은 여러 외부 디바이스들로 통신하도록 구성될 수도 있는 그래픽 프로세싱 유닛 (761) 및 오디오 프로세싱 유닛 (762) 을 포함할 수도 있다. 예시의 주변 인터페이스들 (770) 은 하나 이상의 I/O 포트들 (773) 을 통해 입력 디바이스들 (예를 들어, 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등) 또는 다른 주변 디바이스들 (예를 들어, 프린트, 스캐너 등) 과 같은 외부 디바이스들과 통신하도록 구성될 수도 있는 직렬 인터페이스 제어기 (771) 또는 병렬 인터페이스 제어기 (772) 를 포함할 수도 있다. 예시의 통신 인터페이스 (780) 는 하나 이상의 통신 포트들 (782) 을 통해 네트워크 통신을 통한 하나 이상의 다른 컴퓨팅 디바이스들 (783) 과의 통신을 용이하게 하도록 배열될 수도 있는 네트워크 제어기 (781) 를 포함한다. 통신 연결은 통신 매체의 하나의 예이다. 통신 매체는 통상 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 다른 데이터에 의해 구현될 수도 있고, 임의의 정보 전달 매체를 포함할 수도 있다. "변조된 데이터 신호" 는 신호 내에 정보를 인코딩하는 방식으로 설정되거나 변화된 그의 특징들 세트 중 하나 이상을 갖는 신호일 수도 있다. 제한이 아닌 예로써, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체, 및 음파, 무선 주파수 (RF), 적외선 (IR) 및 다른 무선 매체와 같은 무선 매체를 포함할 수도 있다. 여기서 사용된 용어 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체 양자 모두를 포함할 수도 있다. The computing device 700 also facilitates communication from the various interface devices (e.g., output interfaces, peripheral interfaces, and communication interfaces) to the base configuration 701 via the bus / interface controller 740 And an interface bus 742 for interfacing with an external device. Exemplary output interfaces 760 include a graphics processing unit 761 and an audio processing unit 762, which may be configured to communicate with various external devices, such as a display or speakers, via one or more A / V ports 763. [ ). Exemplary peripheral interfaces 770 may include input devices (e.g., a keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices A serial interface controller 771 or a parallel interface controller 772, which may be configured to communicate with external devices such as, for example, a printer, a scanner, and the like. The example communication interface 780 includes a network controller 781 that may be arranged to facilitate communication with one or more other computing devices 783 via network communication via one or more communication ports 782 . A communication connection is one example of a communication medium. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media . A "modulated data signal" may be a signal having one or more of its set of features set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared (IR), and other wireless media. The term computer-readable media as used herein may include both storage media and communication media.

컴퓨팅 디바이스 (700) 는 셀 폰, 이동 전화, 태블릿 디바이스, 랩톱 컴퓨터, 개인용 휴대정보단말 (PDA), 개인용 미디어 플레이어 디바이스, 무선 웹-워치 디바이스, 개인용 핸드셋 디바이스, 애플리케이션 특정 디바이스, 또는 상기 기능들의 임의의 것을 포함하는 하이브리드 디바이스와 같은 소형 폼팩터 휴대용 (또는 이동) 전자 디바이스의 부분으로서 구현될 수도 있다. 컴퓨팅 디바이스 (700) 는 또한 랩톱 컴퓨터 및 비랩톱 컴퓨터 구성들을 포함하는 개인용 컴퓨터로서 구현될 수도 있다. 또, 컴퓨팅 디바이스 (700) 는 무선 기지국 또는 다른 무선 시스템 또는 디바이스의 부분으로서 구현될 수도 있다. The computing device 700 may be a cellular phone, a mobile phone, a tablet device, a laptop computer, a personal digital assistant (PDA), a personal media player device, a wireless web- (Or mobile) electronic device, such as a hybrid device, including a < RTI ID = 0.0 > The computing device 700 may also be implemented as a personal computer, including laptop computers and non-laptop computer configurations. The computing device 700 may also be implemented as part of a wireless base station or other wireless system or device.

상술된 상세한 설명의 일부 부분들은 컴퓨터 메모리와 같은 컴퓨팅 시스템 메모리 내에 저장된 데이터 비트들 또는 이진 디지털 신호들에 대한 동작들의 알고리즘들 또는 심볼 표현들에 의해 제시된다. 이들 알고리즘 설명들 또는 표현들은 데이터 프로세싱 기술들에서의 통상의 기술자들에 의해 본 기술의 다른 통상의 기술자에게 그들의 적업의 본질을 전달하기 위해 사용되는 기법들의 예들이다. 알고리즘은, 여기서 그리고 일반적으로 원하는 결과를 야기하는 동작들의 일관성 있는 시퀀스 또는 유사한 프로세싱인 것으로 고려된다. 이러한 정황에서, 동작들 또는 프로세싱은 물리적 양들의 물리적 조작을 수반한다. 통상, 반드시는 아니지만, 그러한 양들은 저장되거나, 전송되거나, 결합되거나, 비교되거나 또는 다르게는 조작될 수 있는 전기 또는 자기 신호들의 형태를 취할 수도 있다. 그러한 신호들을 비트들, 데이터, 값들, 엘리먼트들, 심볼들, 문자들, 용어들, 숫자들, 번호들 등으로서 지칭하는 것은 부로 통상의 사용의 이유들로 때때로 편리하다고 증명되었다. 그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되어야 하고 단지 편리한 라벨들이라는 것이 이해되어야 한다. 특별히 달리 언급되지 않는다면, 다음의 논의로부터 명백한 바와 같이, 본 명세서에 걸쳐 "프로세싱", "컴퓨팅", "계산", "결정" 등과 같은 용어들을 활용하는 논의들은 메모리들, 레지스터들, 또는 다른 정보 저장 디바이스들, 전송 디바이스들 또는 컴퓨팅 디바이스의 디스플레이 디바이스들 내의 물리적 전자적 또는 자기적 양들로서 표현된 데이터를 조작 또는 변환하는 컴퓨팅 디바이스의 액션들 또는 프로세스들을 지칭한다. Some portions of the above detailed description are presented by algorithms or symbolic representations of operations on data bits or binary digital signals stored in a computing system memory, such as a computer memory. These algorithmic descriptions or representations are examples of techniques that are used by ordinary artisans in data processing techniques to convey the nature of their work to other conventional artisans of the art. The algorithm is considered here to be a consistent sequence or similar processing of the operations that result here and generally in the desired result. In this context, operations or processing involves physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical or magnetic signals that may be stored, transmitted, combined, compared, or otherwise manipulated. It has proven convenient sometimes to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numbers, etc., for reasons of normal use. It should be understood, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, discussions utilizing terms such as "processing", "computing", "computing", "decision" Refers to actions or processes of a computing device that manipulates or transforms data represented as physical electronic or magnetic quantities within storage devices, transmission devices, or display devices of a computing device.

상기한 상세한 설명은 블록도들, 흐름도들 및/또는 예시들을 사용하여 디바이스들 및/또는 프로세스들의 여러 실시형태들을 진술하였다. 그러한 블록도들, 흐름도들, 및/또는 예시들이 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 그러한 블록도들, 흐름도들, 또는 예시들 내의 각각의 기능 및/또는 동작은 광범위한 하드웨어, 소프트웨어, 펌웨어 또는 실제로 이들의 임의의 결합에 의해 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 본 기술 내의 통상의 기술자에 의해 이해될 것이다. 일부 실시형태들에서, 여기에 기술된 주제의 수개의 부분들은 주문자 반도체들 (ASICs), 필드 프로그래머블 게이트 어레이들 (FPGAs), 디지털 신호 프로세서들 (DSPs), 또는 다른 집적된 포맷들을 통해 구현될 수도 있다. 그러나, 통상의 기술자들은, 여기에 개시된 실시형태들의 일부 양태들이, 전체적으로 또는 부분적으로, 하나 이상의 컴퓨터들 상에서 실행하는 하나 이상의 컴퓨터 프로그램들로서 (예를 들어, 하나 이상의 컴퓨터 시스템들 상에서 실행하는 하나 이상의 프로그램들로서), 하나 이상의 프로세서들 상에서 실행하는 하나 이상의 프로그램들로서 (예를 들어, 하나 이상의 마이크로프로세서들 상에서 실행하는 하나 이상의 프로그램들로서), 펌웨어로서, 또는 실제로 이들의 임의의 결합으로서 집적회로들 내에서 등가적으로 구현될 수 있다는 것과, 회로를 설계하는 것 및/또는 소프트웨어 및 또는 펌웨어에 대한 코드를 기입하는 것은 본 개시에 비추어 통상의 기술자의 스킬 (skill) 내에 있다는 것을 인식할 것이다. 또, 통상의 기술자는 여기에 기술된 주제의 메커니즘들이 다양한 형태들로 프로그램 제품으로서 배포될 수 있다는 것, 및 여기에 기술된 주제의 예시적인 구현은 그 배포를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정의 타입에 관계없이 적용된다는 것을 인정할 것이다. 신호 베어링 매체의 예들은 다음을 포함하지만 이들에 제한되지 않는다: 유연성 디스크, 하드 디스크 드라이브 (HDD), 콤팩 디스크 (CD), DVD (Digital Versatile Disk), 디지털 테이프, 컴퓨터 메모리 등과 같은 기록가능 타입 매체; 및 디지털 및/또는 아날로그 통신 매체 (예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은 송신 타입 매체.The foregoing detailed description has described various embodiments of devices and / or processes using block diagrams, flowcharts and / or illustrations. Each such function and / or operation in such block diagrams, flowcharts, or illustrations, as long as such block diagrams, flowcharts, and / or illustrations contain one or more functions and / , Firmware, or virtually any combination thereof, as will be appreciated by those of ordinary skill in the art. In some embodiments, several portions of the subject matter described herein may be implemented through custom semiconductors (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), or other integrated formats have. However, those of ordinary skill in the art will appreciate that some aspects of the embodiments disclosed herein may be embodied in whole or in part as one or more computer programs running on one or more computers (e.g., As one or more programs executing on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or indeed any combination thereof, in an integrated circuit It will be appreciated that the invention can be implemented in a manner that is well within the skill of the ordinary artisan in view of this disclosure in designing the circuit and / or writing the code for the software and / or firmware. It will also be appreciated by those of ordinary skill in the art that the mechanisms of the subject matter described herein may be deployed as a program product in a variety of forms and that exemplary implementations of the subject matter described herein may be embodied in a signal bearing medium But will apply regardless of the particular type. Examples of signal bearing media include, but are not limited to, a recordable type medium such as a flexible disk, a hard disk drive (HDD), a compact disk (CD), a digital versatile disk (DVD) ; And digital and / or analog communication media (e.g., fiber optic cables, waveguides, wired communication links, wireless communication links, etc.).

여기에 기술된 주제는 때때로 상이한 다른 컴포넌트들 내에 포함되거나 연결된 상이한 컴포넌트들을 예시한다. 그러한 묘사된 아키텍쳐들은 단지 예들이라는 것과, 사실상 동일한 기능성을 달성하는 많은 다른 아키텍쳐들이 구현될 수 있다는 것이 이해되어야 한다. 개념적인 면에서, 동일한 기능성을 달성하는 컴포넌트들의 임의의 배열은 원하는 기능성이 달성되도록 효과적으로 "연관된"다. 이리하여, 특정의 기능성을 달성하도록 결합된 여기의 임의의 2 개의 컴포넌트들은, 원하는 기능성이 아키텍쳐들 또는 개재된 컴포넌트들에 관계없이 달성되도록 서로"와 연관된" 것으로서 보일 수 있다. 마찬가지로, 그렇게 연관된 임의의 2 개의 컴포넌트들은 또한 원하는 기능성을 달성하기 위해 서로에 "동작가능하게 연결되는", 또는 "동작가능하게 커플링되는" 것으로서 보여질 수 있고, 그렇게 연관될 수 있는 임의의 2 개의 컴포넌트들은 또한 원하는 기능성을 달성하기 위해 서로에 "동작가능하게 커플링가능한" 것으로서 보여질 수 있다. 동작가능하게 커플링가능한 것의 특정의 예들은 물리적으로 짝지을 수 있는 및/또는 물리적으로 상호작용하는 컴포넌트들 및/또는 무선으로 상호작용가능한 및/또는 무선으로 상호작용하는 컴포넌트들 및/또는 논리적으로 상호작요하는 및/또는 논리적으로 상호작용가능한 컴포넌트들을 포함하지만 이들에 제한되지 않는다. The subject matter described herein sometimes illustrates different components that are included or linked in different different components. It should be understood that such depicted architectures are merely examples and that many other architectures that achieve substantially the same functionality can be implemented. In conceptual terms, any arrangement of components that achieve the same functionality is effectively "related " to achieve the desired functionality. Thus, any two components herein coupled to achieve a particular functionality may be viewed as being "associated " with each other so that the desired functionality is achieved regardless of architectures or intervening components. Likewise, any two components so associated may also be viewed as being "operably linked" or "operably coupled" to each other to achieve the desired functionality, and any two The two components may also be viewed as " operably coupleable "to one another to achieve the desired functionality. Specific examples of operably coupleable include, but are not limited to, components that are physically paired and / or physically interact and / or components that interact wirelessly and / or interact wirelessly and / ≪ / RTI > and / or logically interactable components.

실질적으로 임의의 복수 및/또는 단수 용어들의 여기의 사용에 대해서, 통상의 기술자는 정황 및/또는 적용에 적절한 대로 복수로부터 단수로 및/또는 단수로부터 복수로 변환할 수 있다. 여러 단수/복수 치환들은 명확성을 위해 여기에서 명확히 진술될 수도 있다. For use herein of substantially any plural and / or singular terms, ordinary descriptors may be converted from plural to singular and / or singular to plural as appropriate to the context and / or application. Multiple singular / plural substitutions may be expressly stated herein for clarity.

일반적으로, 여기에, 그리고 특히 첨부된 청구항들 (예를 들어, 첨부된 청구항들의 본문들) 에서 사용된 용어들은 일반적으로 "개방된" 용어들로서 의도된다는 것이 통상의 기술자에 의해 이해될 것이다 (예를 들어, 용어 "포함하는" 은 "포함하지만 제한되지 않는" 으로서 해석되어야 하고, 용어 "갖는" 은 "적어도 갖는" 으로서 해석되어야 하며, 용어 "포함한다" 는 "포함하지만 제한되지 않는" 으로서 해석되어야 하는 등이다). 도입된 청구항 기재의 특정의 수가 의도되는 경우, 그러한 의도는 청구항에서 명시적으로 기재될 것이고, 그러한 기재가 없으면 그러한 의도는 존재하지 않는다는 것이 당업자에게 이해될 것이다. 예를 들어, 이해에 대한 도움으로서, 다음의 첨부된 청구항들은 청구항 기재들을 도입하기 위해 도입적 어구들 "적어도 하나의" 및 "하나 이상의" 의 사용을 포함할 수도 있다. 그러나, 그러한 어구들의 사용은, 부정 관사 "a" 또는 "an" 에 의한 청구항 기재의 도입이, 동일한 청구항이 도입적 어구들 "하나 이상의" 또는 "적어도 하나의" 및 "a" 또는 "an" 과 같은 부정 관사들을 포함할 때에도 (예를 들어, "a" 및/또는 "an" 은 통상 "적어도 하나의" 또는 "하나 이상의" 를 의미하도록 해석되어야 한다), 그러한 도입된 청구항 기재를 포함하는 임의의 특정의 청구항을 단지 하나의 그러한 기재를 포함하는 청구된 주제로 제한하는 것을 암시하는 것으로 해석되지 않아야 한다; 동일한 것이 청구항 기재들을 도입하는 데 사용된 정관사들의 사용에 대해 사실이다. 또, 도입된 청구항 기재의 특정의 수가 명시적으로 기재되는 경우에도, 당업자는 그러한 기재가 통상 적어도 기재된 수를 의미하는 것으로 해석된다는 것을 인식할 것이다 (예를 들어, 다른 수식어 없는 "2 개의 기재들" 의 가장 기본적인 기재는 통상 적어도 2 개의 기재들, 또는 2 개 이상의 기재들을 의미한다). 또, "A, B, 및 C 등 중 적어도 하나" 와 유사한 관례가 사용되는 이들 예들에서, 일반적으로 그러한 구성은 당업자가 그 관례를 이해하는 의미에서 의도된다 (예를 들어, "A, B, 및 C 중 적어도 하나를 갖는 시스템은 A 만, B 만, C 만, A 및 B 함께, A 및 C 함께, B 및 C 함께, 및/또는 A, B, 및 C 함께 등을 갖는 시스템들을 포함하지만 이들에 제한되지 않을 것이다). "A, B, 및 C 등 중 적어도 하나" 와 유사한 관례가 사용되는 이들 경우들에서, 일반적으로 그러한 구성은 당업자가 그 관례를 이해하는 의미에서 의도된다 (예를 들어, "A, B, 및 C 중 적어도 하나를 갖는 시스템은 A 만, B 만, C 만, A 및 B 함께, A 및 C 함께, B 및 C 함께, 및/또는 A, B, 및 C 함께 등을 갖는 시스템들을 포함하지만 이들에 제한되지 않을 것이다). 2 이상의 대안적인 항들을 나타내는 실제로 임의의 이접적인 단어 및/또는 어구는, 상세한 설명, 청구범위, 또는 도면에서에 관계없이, 항들 중 하나, 항들 중 어느 하나, 또는 양자 모두의 항들을 포함하는 가능성들을 고려하는 것으로 이해되어야 한다는 것이 당업자에 의해 이해될 것이다. 예를 들어, 어구 "A 또는 B" 는 "A" 또는 "B" 또는 "A 및 B" 의 가능성들을 포함하는 것으로 이해될 것이다.In general, it will be understood by those of ordinary skill in the art that the terms used herein, and in particular in the appended claims (e.g., in the text of the appended claims), are generally intended to be "open" , The word "comprising" should be interpreted as "including but not limited to", and the term "having" should be interpreted as "having at least" and the term "comprising" Etc.). It will be understood by those skilled in the art that the intent is to be expressly set forth in the claims, if a particular number of the recited claims is intended, and that such intent is not without such statements. For example, as an aid to understanding, the following appended claims may include the use of the introductory phrases "at least one" and "one or more" The use of such phrases, however, is not intended to be exhaustive or to limit the scope of the present invention to the broader context of the present invention, (E.g., "a" and / or "an" should normally be interpreted to mean "at least one" or "one or more"), and the inclusion of such introduced claim entries And should not be construed to imply that the invention is limited to any claimed subject matter, including only one such claim; The same is true of the use of the definite articles used to introduce claim claims. It will also be appreciated by those skilled in the art that, even if a specific number of the claimed claims is explicitly recited, those skilled in the art will recognize that such description is usually construed to mean at least the stated number (e.g., Quot ;, usually means at least two descriptions, or two or more descriptions). Also, in those instances where a convention similar to "at least one of A, B, and C, etc." is used, such a configuration is generally intended in the sense of those skilled in the art to understand the convention (e.g., And C include systems having only A, B, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together In those cases where a convention similar to "at least one of A, B, and C" is used, such a configuration is generally intended in the sense that those skilled in the art understand the convention (eg, For example, a system having at least one of A, B, and C may be combined with A only, B only, C only, A and B together, A and C together, B and C together, and / or A, ≪ / RTI > and the like). Indeed any arbitrary disjunctive words and / or phrases that represent two or more alternative terms are intended to encompass possibilities to include any of the terms, either, either or both terms, irrespective of the description, the claims, As will be understood by those skilled in the art. For example, the phrase "A or B" will be understood to include the possibilities of "A" or "B" or "A and B".

소정의 예시의 기법들이 여러 방법들 및 시스템들을 사용하여 여기서 기술되고 도시되었지만, 청구된 주제로부터 일탈하지 않고 여러 다른 변형들이 행해질 수도 있고, 등가물들이 치환될 수도 있다는 것이 당업자에 의해 이해되어야 한다. 또, 여기에 기재된 중심 개념으로부터 일탈하지 않고 청구된 주제의 교시들에 특정의 상황을 적응시키기 위해 많은 변형들이 행해질 수도 있다. 따라서, 청구된 주제는 개시된 특정의 예들로 제한되지 않고, 그러한 청구된 주제는 또한 첨부된 청구범위 및 이것의 등가물들의 범위 내에 있는 모든 구현들을 포함할 수도 있다는 것이 의도된다. Although certain example techniques have been described and illustrated herein using various methods and systems, it should be understood by those skilled in the art that various other modifications may be made without departing from the claimed subject matter, and equivalents may be substituted. In addition, many modifications may be made to adapt a particular situation to the teachings of the claimed subject matter without departing from the central concept set forth herein. It is therefore intended that the claimed subject matter is not limited to the specific examples disclosed, and that the claimed subject matter may also include all implementations falling within the scope of the appended claims and their equivalents.

Claims (31)

애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법으로서,
오리진 (origin) 데이터 센터에서 서비스에 의해 사용되는 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것;
상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들 각각을 테스트 세그먼트로 변환하여 복수의 테스트 세그먼트들을 생성하는 것;
복수의 타겟 데이터 센터들에 대한 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것으로서, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 상기 복수의 테스트 세그먼트들 각각을 포함하는, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것;
통신 네트워크를 통해, 상기 복수의 타겟 데이터 센터들에서의 실행을 위해 상기 오리진 데이터 센터로부터 상기 타겟 데이터 센터로 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 송신하는 것;
상기 복수의 타겟 데이터 센터들에서 실행되는 송신된 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 테스트 결과들을 수신하는 것; 및
상기 오리진 데이터 센터로부터의 상기 애플리케이션 프로그래밍 인터페이스 콜들 중 어느 것이 상기 복수의 타겟 데이터 센터들과 호환가능한지를 나타내는 상기 하나 이상의 테스트 결과들에 기초하여 보고를 생성하는 것을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
A method of providing an application programming interface testing service,
Determining a plurality of application programming interface calls used by a service in an origin data center;
Converting each of the plurality of application programming interface calls into a test segment to generate a plurality of test segments;
Forming an application programming interface test module for a plurality of target data centers, wherein the application programming interface test module comprises each of the plurality of test segments;
Transmitting the application programming interface test module from the origin data center to the target data center for execution on the plurality of target data centers over a communication network;
Receiving one or more test results based at least in part on the transmitted application programming interface test module executing on the plurality of target data centers; And
And generating a report based on the one or more test results indicating which of the application programming interface calls from the origin data center is compatible with the plurality of target data centers. How to.
삭제delete 제 1 항에 있어서,
상기 복수의 타겟 데이터 센터들에서 실행되는 송신된 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 상기 복수의 테스트 세그먼트들 각각에 대한 테스트 결과를 포함하는 테스트 보고를 수신하는 것을 더 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Further comprising receiving a test report comprising test results for each of the plurality of test segments based at least in part on the transmitted application programming interface test module executing on the plurality of target data centers, How to provide interface testing services.
제 1 항에 있어서,
상기 복수의 타겟 데이터 센터들에서 실행되는 송신된 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 테스트 결과들을 수신하는 것으로서, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 하이퍼텍스트 전송 프로토콜 겟 (get) 요청을 포함하고, 상기 하나 이상의 테스트 결과들은 상기 하이퍼텍스트 전송 프로토콜 겟 요청이 성공적이었다는 표시를 포함하는, 상기 하나 이상의 테스트 결과들을 수신하는 것을 더 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Receiving one or more test results based at least in part on sent application programming interface test modules executed in the plurality of target data centers, wherein the application programming interface test module receives a hypertext transfer protocol get request Wherein the one or more test results further comprises receiving the one or more test results, the indication including an indication that the hypertext transfer protocol get request was successful.
제 1 항에 있어서,
상기 복수의 타겟 데이터 센터들에서 실행되는 송신된 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 제 1 테스트 결과들을 수신하는 것;
통신 네트워크를 통해, 제 2 복수의 타겟 데이터 센터들에서의 실행을 위해 상기 오리진 데이터 센터로부터 상기 제 2 복수의 타겟 데이터 센터들로 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 송신하는 것;
상기 제 2 복수의 타겟 데이터 센터들에서 실행되는 송신된 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 제 2 테스트 결과들을 수신하는 것; 및
상기 하나 이상의 제 1 테스트 결과들과 상기 하나 이상의 제 2 테스트 결과들을 비교하는 것을 더 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Receiving one or more first test results based at least in part on the transmitted application programming interface test module executing on the plurality of target data centers;
Transmitting the application programming interface test module from the origin data center to the second plurality of target data centers for execution in a second plurality of target data centers over a communication network;
Receiving one or more second test results based at least in part on the transmitted application programming interface test module executing on the second plurality of target data centers; And
And comparing the one or more second test results to the one or more second test results.
제 1 항에 있어서,
상기 오리진 데이터 센터에서 상기 서비스에 의해 사용되는 상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것은,
상기 오리진 데이터 센터의 네트워크 프로세서에서 제 1 동작 중 (in-operation) 네트워크 메시지를 캡쳐하는 것;
상기 제 1 동작 중 네트워크 메시지로부터 제 1 애플리케이션 프로그래밍 인터페이스 콜을 추출하는 것; 및
상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들 내에 상기 제 1 애플리케이션 프로그래밍 인터페이스 콜을 포함시키는 것을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein determining the plurality of application programming interface calls used by the service at the origin data center comprises:
Capturing a first in-operation network message at a network processor of the origin data center;
Extracting a first application programming interface call from the network message during the first operation; And
And including the first application programming interface call in the plurality of application programming interface calls.
제 1 항에 있어서,
상기 오리진 데이터 센터에서 상기 서비스에 의해 사용되는 상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것은,
상기 오리진 데이터 센터의 네트워크 프로세서에서 제 1 단순 오브젝트 액세스 프로토콜 메시지를 캡쳐하는 것;
상기 제 1 단순 오브젝트 액세스 프로토콜 메시지로부터 제 1 애플리케이션 프로그래밍 인터페이스 콜을 추출하는 것; 및
상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들 내에 상기 제 1 애플리케이션 프로그래밍 인터페이스 콜을 포함시키는 것을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein determining the plurality of application programming interface calls used by the service at the origin data center comprises:
Capturing a first simple object access protocol message at a network processor of the origin data center;
Extracting a first application programming interface call from the first simple object access protocol message; And
And including the first application programming interface call in the plurality of application programming interface calls.
제 1 항에 있어서,
상기 오리진 데이터 센터에서 상기 서비스에 의해 사용되는 상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것은,
제 1 애플리케이션 프로그래밍 인터페이스 콜을 갖는 제 1 메시지 및 제 2 애플리케이션 프로그래밍 인터페이스 콜을 갖는 제 2 메시지를 검출하기 위해 상기 오리진 데이터 센터의 네트워크 프로세서에서 애플리케이션 프로그래밍 인터페이스 콜들에 대한 네트워크 메시지들을 스누프하는 것;
상기 제 1 애플리케이션 프로그래밍 인터페이스 콜 및 상기 제 2 애플리케이션 프로그래밍 인터페이스 콜이 실질적으로 유사한지 여부를 결정하는 것; 및
상기 제 1 애플리케이션 프로그래밍 인터페이스 콜 및 상기 제 2 애플리케이션 프로그래밍 인터페이스 콜이 실질적으로 유사한 경우, 상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들 내에 상기 제 1 애플리케이션 프로그래밍 인터페이스 콜을 포함시키는 것을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein determining the plurality of application programming interface calls used by the service at the origin data center comprises:
Snooping network messages for application programming interface calls at a network processor of the origin data center to detect a first message having a first application programming interface call and a second message having a second application programming interface call;
Determining whether the first application programming interface call and the second application programming interface call are substantially similar; And
The method comprising: if the first application programming interface call and the second application programming interface call are substantially similar, including the first application programming interface call in the plurality of application programming interface calls How to.
제 8 항에 있어서,
상기 제 2 애플리케이션 프로그래밍 인터페이스 콜을 폐기하는 것을 더 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
9. The method of claim 8,
And discarding the second application programming interface call. ≪ Desc / Clms Page number 21 >
제 1 항에 있어서,
상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들은 하이퍼텍스트 전송 프로토콜 겟 요청, 하이퍼텍스트 전송 프로토콜 풋 요청, 키-값 저장 커맨드, 메시징 콜, 큐잉 콜, 원격 저장 콜, 컨텐츠 전달 (delivery) 네트워크로의 전달 요청, 또는 컨텐츠 전달 네트워크로의 관리 커맨드 중 적어도 하나를 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
The plurality of application programming interface calls may include a hypertext transfer protocol get request, a hypertext transfer protocol put request, a key-value save command, a messaging call, a queuing call, a remote save call, a delivery request to a content delivery network, And an administrative command to the content delivery network. ≪ Desc / Clms Page number 21 >
제 1 항에 있어서,
상기 오리진 데이터 센터에서의 상기 서비스는 사용 중 (in-use) 애플리케이션을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein the service at the origin data center comprises an in-use application.
제 1 항에 있어서,
상기 복수의 테스트 세그먼트들은 애플리케이션 프로그래밍 인터페이스 셋업 콜을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein the plurality of test segments comprises an application programming interface setup call.
제 1 항에 있어서,
상기 복수의 테스트 세그먼트들은, 상기 애플리케이션 프로그래밍 인터페이스 콜이 정확하게 실행했는지 또는 에러를 리턴했는지 여부를 기록하도록 구성된 에러 검출 루프 내의 애플리케이션 프로그래밍 인터페이스 콜을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein the plurality of test segments comprises an application programming interface call in an error detection loop configured to record whether the application programming interface call correctly executed or returned an error.
제 1 항에 있어서,
상기 복수의 테스트 세그먼트들은, 상기 애플리케이션 프로그래밍 인터페이스 콜이 정확하게 실행했는지 또는 에러를 리턴했는지 여부를 기록하도록 구성된 에러 검출 루프 내의 애플리케이션 프로그래밍 인터페이스 콜을 포함하고,
상기 에러 검출 루프는 헤더 또는 풋터 (footer) 중 적어도 하나를 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
The plurality of test segments comprising an application programming interface call in an error detection loop configured to record whether the application programming interface call correctly executed or returned an error,
Wherein the error detection loop comprises at least one of a header or a footer.
제 1 항에 있어서,
상기 오리진 데이터 센터에서 상기 서비스에 의해 사용되는 상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것은,
코드 레벨 애플리케이션 프로그래밍 인터페이스 콜을 검출하기 위해 코드 레포지토리를 평가하는 것; 및
상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들 내에 상기 코드 레벨 애플리케이션 프로그래밍 인터페이스 콜을 포함시키는 것을 포함하는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein determining the plurality of application programming interface calls used by the service at the origin data center comprises:
Evaluating the code repository to detect code level application programming interface calls; And
And including the code level application programming interface call in the plurality of application programming interface calls.
제 1 항에 있어서,
상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 상기 복수의 타겟 데이터 센터들에서 상기 복수의 테스트 세그먼트들 각각을 통해 순환하도록 구성되는, 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하는 방법.
The method according to claim 1,
Wherein the application programming interface test module is configured to cycle through each of the plurality of test segments at the plurality of target data centers.
명령들을 저장한 머신 판독가능 비일시적 매체로서,
상기 명령들은, 실행될 때, 디바이스로 하여금,
오리진 (origin) 데이터 센터에서 서비스에 의해 사용되는 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것;
상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들 각각을 테스트 세그먼트로 변환하여 복수의 테스트 세그먼트들을 생성하는 것;
복수의 타겟 데이터 센터들에 대한 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것으로서, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 상기 복수의 테스트 세그먼트들 각각을 포함하는, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것;
통신 네트워크를 통해, 상기 복수의 타겟 데이터 센터들에서의 실행을 위해 상기 오리진 데이터 센터로부터 상기 복수의 타겟 데이터 센터들로 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 송신하는 것;
상기 복수의 타겟 데이터 센터들에서 실행되는 송신된 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 테스트 결과들을 수신하는 것; 및
상기 오리진 데이터 센터로부터의 상기 애플리케이션 프로그래밍 인터페이스 콜들 중 어느 것이 상기 복수의 타겟 데이터 센터들과 호환가능한지를 나타내는 상기 하나 이상의 테스트 결과들에 기초하여 보고를 생성하는 것
에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는, 머신 판독가능 비일시적 매체.
A machine-readable non-volatile medium storing instructions,
Wherein the instructions, when executed, cause the device to:
Determining a plurality of application programming interface calls used by a service in an origin data center;
Converting each of the plurality of application programming interface calls into a test segment to generate a plurality of test segments;
Forming an application programming interface test module for a plurality of target data centers, wherein the application programming interface test module comprises each of the plurality of test segments;
Transmitting the application programming interface test module from the origin data center to the plurality of target data centers for execution on the plurality of target data centers via a communication network;
Receiving one or more test results based at least in part on the transmitted application programming interface test module executing on the plurality of target data centers; And
Generating a report based on the one or more test results indicating which of the application programming interface calls from the origin data center is compatible with the plurality of target data centers
To provide an application programming interface testing service.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 디바이스로서,
실행될 때, 상기 디바이스로 하여금,
오리진 (origin) 데이터 센터에서 서비스에 의해 사용되는 복수의 애플리케이션 프로그래밍 인터페이스 콜들을 결정하는 것;
상기 복수의 애플리케이션 프로그래밍 인터페이스 콜들 각각을 테스트 세그먼트로 변환하여 복수의 테스트 세그먼트들을 생성하는 것;
복수의 타겟 데이터 센터들에 대한 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것으로서, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈은 상기 복수의 테스트 세그먼트들 각각을 포함하는, 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 형성하는 것;
통신 네트워크를 통해, 상기 복수의 타겟 데이터 센터들에서의 실행을 위해 상기 오리진 데이터 센터로부터 상기 복수의 타겟 데이터 센터들로 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈을 송신하는 것;
상기 복수의 타겟 데이터 센터들에서 실행되는 송신된 상기 애플리케이션 프로그래밍 인터페이스 테스트 모듈에 적어도 부분적으로 기초하여 하나 이상의 테스트 결과들을 수신하는 것; 및
상기 오리진 데이터 센터로부터의 상기 애플리케이션 프로그래밍 인터페이스 콜들 중 어느 것이 상기 복수의 타겟 데이터 센터들과 호환가능한지를 나타내는 상기 하나 이상의 테스트 결과들에 기초하여 보고를 생성하는 것
에 의해 애플리케이션 프로그래밍 인터페이스 테스팅 서비스를 제공하게 하는 명령들을 저장한 머신 판독가능 매체; 및
상기 머신 판독가능 매체에 커플링되어 상기 명령들을 실행하는 프로세서를 포함하는, 디바이스.
As a device,
When executed, cause the device to:
Determining a plurality of application programming interface calls used by a service in an origin data center;
Converting each of the plurality of application programming interface calls into a test segment to generate a plurality of test segments;
Forming an application programming interface test module for a plurality of target data centers, wherein the application programming interface test module comprises each of the plurality of test segments;
Transmitting the application programming interface test module from the origin data center to the plurality of target data centers for execution on the plurality of target data centers via a communication network;
Receiving one or more test results based at least in part on the transmitted application programming interface test module executing on the plurality of target data centers; And
Generating a report based on the one or more test results indicating which of the application programming interface calls from the origin data center is compatible with the plurality of target data centers
A machine readable medium having stored thereon instructions for providing an application programming interface testing service; And
And a processor coupled to the machine readable medium to execute the instructions.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020147028083A 2012-04-25 2012-04-25 Application programming interface testing services KR101579029B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/035042 WO2013162554A1 (en) 2012-04-25 2012-04-25 Application programming interface testing services

Publications (2)

Publication Number Publication Date
KR20140131590A KR20140131590A (en) 2014-11-13
KR101579029B1 true KR101579029B1 (en) 2015-12-28

Family

ID=49478515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147028083A KR101579029B1 (en) 2012-04-25 2012-04-25 Application programming interface testing services

Country Status (4)

Country Link
US (2) US9600402B2 (en)
KR (1) KR101579029B1 (en)
CN (1) CN104246759B (en)
WO (1) WO2013162554A1 (en)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI461907B (en) * 2012-10-11 2014-11-21 Mstar Semiconductor Inc Integrating system and testing system for incorporating plural application programs
EP3063652B1 (en) * 2013-10-30 2020-04-29 Hewlett-Packard Enterprise Development LP Application programable interface (api) discovery
US9471405B1 (en) * 2014-01-13 2016-10-18 OpenLegacy Technologies LTD Methods and systems for access to legacy programs using non-legacy interfaces
WO2020227702A2 (en) 2019-05-09 2020-11-12 View, Inc. Antenna systems for controlled coverage in buildings
EP3192238A4 (en) * 2014-09-09 2018-05-02 Cyara Solutions Corp. Call recording test suite
US10210075B2 (en) * 2015-05-08 2019-02-19 Mastercard International Incorporated Systems and methods for automating test scripts for applications that interface to payment networks
CN107122290B (en) * 2016-02-25 2020-06-09 阿里巴巴集团控股有限公司 Method and device for recording log information
US10069869B2 (en) 2016-05-17 2018-09-04 Amazon Technologies, Inc. Versatile autoscaling
US10002069B2 (en) * 2016-09-23 2018-06-19 International Business Machines Corporation Automated testing of application program interface
US10412022B1 (en) * 2016-10-19 2019-09-10 Amazon Technologies, Inc. On-premises scaling using a versatile scaling service and an application programming interface management service
US10409642B1 (en) 2016-11-22 2019-09-10 Amazon Technologies, Inc. Customer resource monitoring for versatile scaling service scaling policy recommendations
US10409711B2 (en) 2017-06-12 2019-09-10 International Business Machines Corporation Automatically running tests against WEB APIs based on specifications
US10489225B2 (en) 2017-08-10 2019-11-26 Bank Of America Corporation Automatic resource dependency tracking and structure for maintenance of resource fault propagation
CN108509337A (en) * 2018-03-15 2018-09-07 链家网(北京)科技有限公司 The dynamic testing method and device called based on interface
CN109165127B (en) * 2018-08-29 2022-09-02 北京奇艺世纪科技有限公司 Problem interface positioning method and device and electronic equipment
CN109408398A (en) * 2018-11-13 2019-03-01 郑州云海信息技术有限公司 A kind of interface automatic test device and method
US11138098B2 (en) 2019-03-27 2021-10-05 At&T Intellectual Property I, L.P. Disk image selection in virtualized network environments
US10936384B1 (en) * 2019-10-23 2021-03-02 Sap Se Performance testing of OData APIs
CN111405051B (en) * 2020-03-20 2022-04-22 北京百度网讯科技有限公司 Processing method, device and equipment of Application Programming Interface (API) information
CN111597020B (en) * 2020-04-24 2024-03-22 五八有限公司 Application programming interface API debugging method and debugging terminal
WO2021223214A1 (en) * 2020-05-08 2021-11-11 深圳市欢太科技有限公司 Interface performance test method and apparatus, and server and computer-readable storage medium
US10824549B1 (en) * 2020-05-19 2020-11-03 Mesh Dynamics, Inc System and method for regression testing of an application programming interface
US11822435B2 (en) 2020-07-06 2023-11-21 Bank Of America Corporation Consolidated data restoration framework
US11924029B2 (en) * 2022-01-07 2024-03-05 Dell Products L.P. System for scoring data center application program interfaces
US11842179B2 (en) * 2022-01-07 2023-12-12 Dell Products L.P. System for automatically generating customer specific data center application program interfaces
US11922229B2 (en) 2022-01-10 2024-03-05 Dell Products L.P. System for determining data center application program interface readiness
US11848835B2 (en) 2022-01-20 2023-12-19 Dell Products L.P. System for quantifying data center infrastructure utilization units
US20230421519A1 (en) * 2022-06-27 2023-12-28 Twilio Inc. Transferring messaging conversations between user accounts using a software as a service platform
US11822438B1 (en) 2022-07-11 2023-11-21 Bank Of America Corporation Multi-computer system for application recovery following application programming interface failure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050187930A1 (en) * 2004-02-19 2005-08-25 Oracle International Corporation Integration functionality for a test tool for application programming interfaces
US20110078674A1 (en) * 2009-09-29 2011-03-31 Ershov Mikhail K API Backward Compatibility Checking

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662217B1 (en) * 1999-01-19 2003-12-09 Microsoft Corporation Distributed and automated test administration system for administering automated tests on server computers over the internet
EP1273137B1 (en) 2000-04-04 2005-02-23 Koninklijke Philips Electronics N.V. Accessing an in home network through the internet
US7543188B2 (en) * 2005-06-29 2009-06-02 Oracle International Corp. Browser based remote control of functional testing tool
US7694181B2 (en) 2005-12-12 2010-04-06 Archivas, Inc. Automated software testing framework
US7743090B1 (en) 2006-02-08 2010-06-22 Federal Home Loan Mortgage Corporation (Freddie Mac) Systems and methods for infrastructure validation
US7743244B2 (en) 2006-10-31 2010-06-22 Hewlett-Packard Development Company, L.P. Computer system model generation with tracking of actual computer system configuration
US8089869B2 (en) * 2008-03-09 2012-01-03 Fluke Corporation Method and apparatus of duplicate packet detection and discard
US9015532B2 (en) 2008-10-31 2015-04-21 Ebay Inc. System and method to test executable instructions
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
US8423963B2 (en) 2009-03-12 2013-04-16 International Buysiness Machines Corporation Computer implemented API management mechanism for generating upgrade risk level handling
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8862950B1 (en) * 2011-09-22 2014-10-14 Amazon Technologies, Inc. Testing the operation of an application programming interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050187930A1 (en) * 2004-02-19 2005-08-25 Oracle International Corporation Integration functionality for a test tool for application programming interfaces
US20110078674A1 (en) * 2009-09-29 2011-03-31 Ershov Mikhail K API Backward Compatibility Checking

Also Published As

Publication number Publication date
KR20140131590A (en) 2014-11-13
US20130290932A1 (en) 2013-10-31
WO2013162554A1 (en) 2013-10-31
US20170192881A1 (en) 2017-07-06
CN104246759A (en) 2014-12-24
US10169211B2 (en) 2019-01-01
CN104246759B (en) 2018-01-02
US9600402B2 (en) 2017-03-21

Similar Documents

Publication Publication Date Title
KR101579029B1 (en) Application programming interface testing services
US8935573B2 (en) Reliable unit testing through cached mocking
AU2013308885B2 (en) Graph query logic
US10067741B1 (en) Systems and methods for I/O device logging
US20160373327A1 (en) Communication between independent containers
AU2017200892A1 (en) API version testing based on query schema
US8839044B2 (en) Debugging of adapters with stateful offload connections
US8402319B2 (en) Method and system to extract a navigation model for analysis of a web application
US20120102462A1 (en) Parallel test execution
US20150106827A1 (en) Rpc acceleration based on previously memorized flows
WO2019168715A1 (en) Event to serverless function workflow instance mapping mechanism
US20190170819A1 (en) Jtag support over a broadcast bus in a distributed memory buffer system
US8738755B2 (en) Providing external access to service versions via a bundle framework
US9398041B2 (en) Identifying stored vulnerabilities in a web service
JP7189952B2 (en) Methods, computer programs, data processing systems, and error-handling components for error handling
US9384074B1 (en) Redirecting service calls using endpoint overrides
US10127132B2 (en) Optimizing automated interactions with web applications
US10171288B2 (en) Diagnosing faults in stateless distributed computing platforms
US10216562B2 (en) Generating diagnostic data
US9921887B2 (en) Accomodating synchronous operations in an asynchronous system
CN110764995A (en) Method, device, medium and electronic equipment for detecting file access abnormity
US10419306B2 (en) Determining the causation of events across multiple nodes using message properties
JP2019219755A (en) Monitoring program, monitoring method, and parallel processing device
CN111782410B (en) Lock jam monitoring method and device, electronic equipment and computer readable medium
US20240134979A1 (en) Systems and Methods for API Security Integration

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20181129

Year of fee payment: 4