KR20240021077A - 상호 배타적인 그룹에 실험 구성을 선택적으로 배치하기 위한 시스템 및 방법 - Google Patents

상호 배타적인 그룹에 실험 구성을 선택적으로 배치하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20240021077A
KR20240021077A KR1020220124705A KR20220124705A KR20240021077A KR 20240021077 A KR20240021077 A KR 20240021077A KR 1020220124705 A KR1020220124705 A KR 1020220124705A KR 20220124705 A KR20220124705 A KR 20220124705A KR 20240021077 A KR20240021077 A KR 20240021077A
Authority
KR
South Korea
Prior art keywords
bucket
traffic
subset
configurations
incoming traffic
Prior art date
Application number
KR1020220124705A
Other languages
English (en)
Inventor
알디 자하디
자오핑 얀
응옥-란 이사벨 판
장-밥티스트 리우
Original Assignee
쿠팡 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Publication of KR20240021077A publication Critical patent/KR20240021077A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • 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/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템 및 방법이 개시된다. 시스템 및 방법은 복수의 구성을 포함하는 웹페이지를 배치하고 - 복수의 구성은 상이한 동작을 나타냄 -; 사용자 입력에 기초하여 제1 버킷 및 제2 버킷을 포함하는 트래픽 컨테이너를 구성하고; 사용자 입력에 기초하여 트래픽 컨테이너에 하나 이상의 실험을 할당하고 - 하나 이상의 실험은 제1 버킷 및 제2 버킷에 대한 적절한 구성을 결정함 -; 웹 페이지에 액세스하기 위해 들어오는 트래픽을 수락하고; 들어오는 트래픽의 제1 서브세트를 제1 버킷에 무작위로 할당하고 들어오는 트래픽의 제2 서브세트를 제2 버킷에 무작위로 할당하고; 무작위 할당에 기초하여 적절한 구성으로 웹 페이지를 전송하고; 그리고 적절한 구성의 상대적 성능을 나타내는 하나 이상의 측정치를 획득하는 단계를 수행하는 것을 포함할 수 있다.

Description

상호 배타적인 그룹에 실험 구성을 선택적으로 배치하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR SELECTIVE DEPLOYMENT OF EXPERIMENTAL CONFIGURATIONS TO MUTUALLY EXCLUSIVE GROUPS}
본 개시는 일반적으로 무작위화된 사용자에게 실험 구성을 선택적으로 배치하기 위한 컴퓨터화된 시스템 및 방법에 관한 것이다. 특히, 본 개시의 실시예는 코드리스(codeless) 인터페이스를 이용하여 공용(public) 사용자의 상호 배타적인 그룹에 상이한 웹 구성을 배치하는 능력을 제공하는 독창적이고 비전통적인 시스템에 관한 것이다.
웹 페이지를 수정하는 것은 전통적으로 파괴적인 프로세스였다. 기본 코드가 업데이트되는 동안 공용 액세스를 차단하려면 웹 페이지를 오프라인으로 전환해야 한다. 그러나 웹 페이지는 시대에 뒤떨어지지 않도록 시간이 지남에 따라 조정되어야 한다. 업데이트된 웹 페이지는, 시각적으로 더 매력적이고, 더 효율적이거나 정확한 알고리즘을 가지며, 더 나은 사용자 경험을 제공하는 것과 같은, 많은 이점을 제공한다.
개발자가 웹 페이지에 대한 새로운 알고리즘을 테스트하려고 할 때 또 다른 문제가 발생한다. 기존 서버는 웹 페이지를 방문하는 모든 사용자에게 한 가지 버전의 웹 페이지만 제공할 수 있다. 따라서 개발자는 어떤 알고리즘 또는 조합이 최적의 결과를 산출하는지 비교할 방법 없이, 사용자에게 단일 알고리즘 또는 서로 다른 구성의 단일 조합을 테스트하는 것으로 제한된다. 사용자 기대 또는 트렌드와 같은 제어할 수 없는 변수가 시간이 지남에 따라 변할 수 있으므로, 서로 다른 구성에 대한 사용자 경험의 차이가 구성의 변화에 기인하는지 또는 다른 외부 변수에 기인하는지 여부를 불확실하게 만들기 때문에, 서로 다른 시간에 서로 다른 알고리즘 또는 알고리즘 조합을 제시하는 것은 적절한 솔루션이 아니다.
일부는 이러한 제한을 없애기 위한 솔루션을 제시하여, 다양한 사용자에게 서로 다른 버전의 웹 페이지를 표시할 수 있는 기능을 제공한다. 그러나, 이러한 솔루션을 설정하고 배포하기 위해 코딩에 대한 깊은 지식이 필요하다. 또한 더 많은 구성을 동시에 테스트해야 할수록 솔루션이 기하급수적으로 복잡해진다. 이러한 복잡성 증가는 웹 페이지의 다양한 측면에서 작업하는 여러 팀의 개발자가 있는 대기업의 경우 엄청나게 어려울 수 있으며, 이 경우 솔루션을 구현하는 프로그래머의 수가 제한적일 수 있거나 솔루션을 쉽게 조정할 수 있어야 한다.
따라서, 직관적이고 사용자 친화적인 인터페이스를 이용하여 동시에 상호 배타적인 사용자 그룹에 서로 다른 웹 페이지 구성을 선택적으로 배치할 수 있는 기능을 제공하기 위한 개선된 방법 및 시스템이 필요하다.
본 개시의 일 양상은 실험 구성의 선택적 배치를 위한 방법에 관한 것이다. 이 방법은: 복수의 구성을 포함하는 웹 페이지를 배치하고 - 복수의 구성은 상이한 동작을 나타냄 -; 사용자 입력에 기초하여 제1 버킷 및 제2 버킷을 포함하는 트래픽 컨테이너를 구성하고; 사용자 입력에 기초하여 트래픽 컨테이너에 하나 이상의 실험을 할당하고 - 하나 이상의 실험은 제1 버킷 및 제2 버킷에 대한 적절한 구성을 결정함 -; 웹 페이지에 액세스하기 위한 유입(incoming) 트래픽을 수락하고; 유입 트래픽의 제1 서브세트를 제1 버킷에 무작위로 할당하고 유입 트래픽의 제2 서브세트를 제2 버킷에 무작위로 할당하고; 무작위 할당에 기초하여 적절한 구성으로 웹 페이지를 전송하고; 그리고 적절한 구성의 상대적 성능을 나타내는 하나 이상의 측정치를 획득하는 것을 포함할 수 있다.
본 개시의 다른 양상은 실험 구성의 선택적 배치를 위한 시스템에 관한 것이다. 이 시스템은 명령을 저장하도록 구성된 적어도 하나의 비일시적 컴퓨터-판독 가능한 매체; 및 동작을 수행하기 위한 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함한다. 동작은 복수의 구성을 포함하는 웹 페이지를 배치하고 - 복수의 구성은 상이한 동작을 나타냄 -; 사용자 입력에 기초하여 제1 버킷 및 제2 버킷을 포함하는 트래픽 컨테이너를 구성하고; 사용자 입력에 기초하여 트래픽 컨테이너에 하나 이상의 실험을 할당하고 - 하나 이상의 실험은 제1 버킷 및 제2 버킷에 대한 적절한 구성을 결정함 -; 웹 페이지에 액세스하기 위한 유입 트래픽을 수락하고; 유입 트래픽의 제1 서브세트를 제1 버킷에 무작위로 할당하고 유입 트래픽의 제2 서브세트를 제2 버킷에 무작위로 할당하고; 무작위 할당에 기초하여 적절한 구성으로 웹 페이지를 전송하고; 그리고 적절한 구성의 상대적 성능을 나타내는 하나 이상의 측정치를 획득하는 것을 포함할 수 있다.
본 개시의 또 다른 양상은 실험 구성의 선택적 배치를 위한 또 다른 시스템에 관한 것이다. 이 시스템은 명령을 저장하도록 구성된 적어도 하나의 비일시적 컴퓨터-판독 가능한 매체; 및 동작을 수행하기 위한 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함할 수 있다. 동작은 복수의 구성을 포함하는 웹 페이지를 배치하고 - 복수의 구성은 상이한 동작을 나타냄 -; 웹 페이지에 액세스하기 위한 유입 트래픽을 수락하고; 제1 구성으로 유입 트래픽의 제1 서브세트를, 제2 구성으로 유입 트래픽의 제2 서브세트를, 제3 구성으로 유입 트래픽의 제3 서브세트를, 제4 구성으로 유입 트래픽의 제4 서브세트를, 무작위로 할당하고; 무작위 할당에 기초하여 복수의 구성 중 하나로 웹 페이지를 전송하고 - 제 1 서브세트는 제2 서브세트와 상호 배타적이지만 제3 서브세트와는 상호 배타적이지 않음 -; 그리고 복수의 구성의 상대적인 성능을 나타내는 하나 이상의 측정치를 획득하는 것을 포함할 수 있다.
다른 시스템들, 방법들 및 컴퓨터-판독 가능한 매체도 본 명세서에서 논의된다.
도 1a는 개시된 실시예에 따른, 배송, 운송, 및 물류 운영을 가능하게 하는 통신을 위한 컴퓨터 시스템을 포함하는 네트워크의 예시적인 실시예를 나타낸 개략적인 블록도이다.
도 1b는 개시된 실시예에 따른, 상호 동작 사용자 인터페이스 요소에 따라 검색 요청을 만족시키는 하나 이상의 검색 결과를 포함하는 검색 결과 페이지(SRP; Search Result Page)의 샘플을 나타낸 도면이다.
도 1c는 개시된 실시예에 따른, 상호 동작 사용자 인터페이스 요소에 따라 제품 및 제품에 대한 정보를 포함하는 싱글 상세 페이지(SDP; Single Detail Page)의 샘플을 나타낸 도면이다.
도 1d는 개시된 실시예에 따른, 상호 동작 사용자 인터페이스 요소에 따라 가상의 쇼핑 장바구니에 아이템을 포함하는 장바구니 페이지의 샘플을 나타낸 도면이다.
도 1e는 개시된 실시예에 따른, 상호 동작 사용자 인터페이스 요소에 따라, 가상의 쇼핑 장바구니로부터 구매 및 배송에 관한 정보에 따른 아이템을 포함하는 주문 페이지의 샘플을 나타낸 도면이다.
도 2는 개시된 실시예에 따른, 유입 트래픽을 상이한 구성으로 라우팅하기 위한 컴퓨터화된 시스템의 예시적인 실시예를 도시하는 개략적인 블록도이다.
도 3은 개시된 실시예에 따른, 유입 트래픽을 상이한 구성으로 구성하고 라우팅하기 위한 예시적인 컴퓨터화된 프로세스의 흐름도이다.
도 4는 개시된 실시예에 따른, 유입 트래픽이 상이한 구성에 어떻게 할당되는지를 나타낸 예시적인 도면이다.
도 5a는 개시된 실시예에 따른, 상이한 파일럿 구성을 관리하기 위한 예시적인 컨테이너 관리자 사용자 인터페이스(UI)이다.
도 5b는 개시된 실시예에 따른, 이용 가능한 컨테이너의 목록을 통해 브라우징하기 위한 예시적인 컨테이너 브라우저 UI이다.
도 5c는 개시된 실시예에 따른, 컨테이너를 편집하기 위한 예시적인 컨테이너 편집기 UI이다.
도 5d는 개시된 실시예에 따른, 버킷을 편집하기 위한 예시적인 버킷 편집기 UI이다.
이어서 첨부된 도면을 참조하여 자세하게 설명된다. 가능하면, 다음의 설명에서 같거나 유사한 부분에 대해 참조되도록 도면에서 같은 도면 부호가 사용된다. 여기에 몇몇 예시적인 실시예가 설명되지만, 변경, 조정 및 다른 구현도 가능하다. 예를 들면, 도면 내의 구성 및 스텝에 대해 교체, 추가, 또는 변경이 이루어질 수 있고, 여기에 설명된 예시적인 방법은 개시된 방법에 대해 스텝을 교체, 순서 변경, 제거 또는 추가함으로써 변경될 수 있다. 따라서, 다음의 자세한 설명은 개시된 실시예 및 예시로 제한되는 것은 아니다. 대신에 본 발명의 적절한 범위는 청구범위에 의해 규정된다.
본 개시의 실시예는 직관적이고 사용자 친화적인 인터페이스를 이용하여 동시에 상호 배타적인 사용자 그룹에 서로 다른 웹 구성을 배치하도록 구성된 시스템 및 방법에 관한 것으로, 서로 다른 웹 구성의 조합을 조작하기 위해 프로그래밍 언어 또는 다른 코드를 이해하거나 활용할 필요가 없다.
이러한 시스템 및 방법은, 온라인 쇼핑몰, 뉴스 사이트, 검색 엔진, 블로그 등과 같이, 임의의 목적으로 설계된 임의의 유형의 웹 페이지에 이용될 수 있다. 상이한 검색 알고리즘, 상이한 제품 추천 알고리즘, 상이한 광고 레이아웃, 상이한 장식 요소 등과 같은, 임의의 유형의 구성을 테스트하기 위해 상이한 구성이 설정될 수 있다. 다음 개시는 전자 상거래 웹사이트와 관련하여 작성되고 그러한 웹사이트에 유용한 서로 다른 사용 사례 시나리오의 맥락에서 다른 실시예를 설명하지만, 개시된 시스템 및 방법은 이러한 사용에 제한되도록 의도되지 않는다.
도 1a를 참조하면, 배송, 운송 및 물류 운영을 가능하게 하는 통신을 위한 컴퓨터 시스템을 포함하는 예시적인 시스템의 실시예를 나타낸 개략적인 블록도(100)가 도시되어 있다. 도 1a에 나타낸 바와 같이, 시스템(100)은 다양한 시스템을 포함할 수 있으며, 이들 각각은 하나 이상의 네트워크를 통해 서로 연결될 수 있다. 시스템은 (예를 들어, 케이블을 사용한) 직접 연결을 통해 서로 연결될 수 있다. 도시된 시스템은 배송 기관 기술(shipment authority technology, SAT) 시스템(101), 외부 프론트 엔드 시스템(103), 내부 프론트 엔드 시스템(105), 운송 시스템(107), 모바일 디바이스(107A, 107B, 107C), 판매자 포털(109), 배송 및 주문 트래킹(shipment and order tracking, SOT) 시스템(111), 풀필먼트 최적화(fulfillment optimization, FO) 시스템(113), 풀필먼트 메시징 게이트웨이(fulfillment messaging gateway, FMG)(115), 공급 체인 관리(supply chain management, SCM) 시스템(117), 창고 관리 시스템(119), 모바일 디바이스(119A, 119B, 119C)(일부 실시예에서는, 풀필먼트 센터(fulfillment center)(FC) 내부일 수 있음), 제3자 풀필먼트 시스템(121A, 121B, 121C), 풀필먼트 센터 인증 시스템(fulfillment center authorization system, FC Auth)(123), 및 노동 관리 시스템(labor management system, LMS)(125)을 포함한다.
일부 실시예에서, SAT 시스템(101)은 주문 상태와 배달 상태를 모니터링하는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, SAT 시스템(101)은 주문이 약속된 배달 날짜(Promised Delivery Date, PDD)를 지났는지를 결정할 수 있고, 새로운 주문을 개시시키고, 배달되지 않은 주문의 아이템을 다시 배송하며, 배달되지 않은 주문을 취소하고, 주문 고객과 연락을 시작하는 것 등을 포함하는 적합한 조치를 취할 수 있다. SAT 시스템(101)은 또한, (특정 기간 동안 배송된 패키지의 개수와 같은) 출력, 및 (배송시 사용하기 위해 수신된 빈 카드보드 박스의 개수와 같은) 입력을 포함하는 다른 데이터를 감시할 수 있다. SAT 시스템(101)은 또한, 외부 프론트 엔드 시스템(103) 및 FO 시스템(113)과 같은 장치들 간의 (예를 들면, 저장 전달(store-and-forward) 또는 다른 기술을 사용하는) 통신을 가능하게 하는 시스템(100) 내의 상이한 장치들 사이의 게이트웨이로서 동작할 수 있다.
일부 실시예에서, 외부 프론트 엔드 시스템(103)은 외부 사용자가 시스템(100) 내의 하나 이상의 시스템과 상호 동작할 수 있게 하는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, 시스템(100)이 시스템의 프레젠테이션을 가능하게 하여 사용자가 아이템에 대한 주문을 할 수 있도록 하는 실시예에서, 외부 프론트 엔드 시스템(103)은 검색 요청을 수신하고, 아이템 페이지를 제시하며, 결제 정보를 요청하는 웹 서버로서 구현될 수 있다. 예를 들면, 외부 프론트 엔드 시스템(103)은 Apache HTTP 서버, Microsoft Internet Information Services(IIS), NGINX 등과 같은 소프트웨어를 실행하는 컴퓨터 또는 컴퓨터들로서 구현될 수 있다. 다른 실시예에서, 외부 프론트 엔드 시스템(103)은 외부 디바이스(예를 들어, 모바일 디바이스(102A) 또는 컴퓨터(102B))로부터 요청을 수신 및 처리하고, 이들 요청에 기초하여 데이터베이스 및 다른 데이터 저장 장치로부터 정보를 획득하며, 획득한 정보에 기초하여 수신된 요청에 대한 응답을 제공하도록 설계된 커스텀 웹 서버 소프트웨어를 실행할 수 있다.
일부 실시예에서, 외부 프론트 엔드 시스템(103)은 웹 캐싱 시스템, 데이터베이스, 검색 시스템, 또는 결제 시스템 중 하나 이상을 포함할 수 있다. 일 양상에서, 외부 프론트 엔드 시스템(103)은 이들 시스템 중 하나 이상을 포함할 수 있는 반면, 다른 양상에서는 외부 프론트 엔드 시스템(103)은 이들 시스템 중 하나 이상에 연결된 인터페이스(예를 들면, 서버 대 서버, 데이터베이스 대 데이터베이스, 또는 다른 네트워크 연결)를 포함할 수 있다.
도 1b, 1c, 1d 및 1e에 의해 나타낸 단계들의 예시적인 세트는 외부 프론트 엔드 시스템(103)의 일부 동작을 설명하는 것에 도움이 될 것이다. 외부 프론트 엔드 시스템(103)은 프레젠테이션 및/또는 디스플레이를 위해 시스템(100) 내의 시스템 또는 디바이스로부터 정보를 수신할 수 있다. 예를 들면, 외부 프론트 엔드 시스템(103)은 검색 결과 페이지(Search Result Page, SRP)(예를 들면, 도 1b), 싱글 디테일 페이지(Single Detail Page, SDP)(예를 들면, 도 1c), 장바구니 페이지(Cart page)(예를 들면, 도 1d), 또는 주문 페이지(예를 들면, 도 1e)를 포함하는 하나 이상의 웹페이지를 호스팅하거나 제공할 수 있다. (예를 들면, 모바일 디바이스(102A) 또는 컴퓨터(102B)를 사용하는) 사용자 디바이스는 외부 프론트 엔드 시스템(103)으로 이동하고 검색 박스에 정보를 입력함으로써 검색을 요청할 수 있다. 외부 프론트 엔드 시스템(103)은 시스템(100) 내의 하나 이상의 시스템으로부터 정보를 요청할 수 있다. 예를 들면, 외부 프론트 엔드 시스템(103)은 FO 시스템(113)으로부터 검색 요청을 만족하는 정보를 요청할 수 있다. 외부 프론트 엔드 시스템(103)은 또한, (FO 시스템(113)으로부터) 검색 결과에 포함된 각 제품에 대한 약속된 배달 날짜(Promised Delivery Date) 또는 "PDD"를 요청하고 수신할 수 있다. 일부 실시예에서, PDD는 제품이 들어있는 패키지가 특정 기간 이내, 예를 들면, 하루의 끝(PM 11:59)까지 주문되면 언제 사용자가 원하는 장소에 도착할 것인지에 대한 추정 또는 제품이 사용자가 원하는 장소에 배달될 약속된 날짜를 나타낼 수 있다(PDD는 FO 시스템(113)과 관련하여 이하에서 더 논의된다).
외부 프론트 엔드 시스템(103)은 정보에 기초하여 SRP(예를 들면, 도 1b)를 준비할 수 있다. SRP는 검색 요청을 만족하는 정보를 포함할 수 있다. 예를 들면, 이는 검색 요청을 만족하는 제품의 사진을 포함할 수 있다. SRP는 또한, 각 제품에 대한 각각의 가격, 또는 각 제품, PDD, 무게, 크기, 오퍼(offer), 할인 등에 대한 개선된 배달 옵션에 관한 정보를 포함할 수 있다. 외부 프론트 엔드 시스템(103)은 (예를 들면, 네트워크를 통해) SRP를 요청 사용자 디바이스로 전송할 수 있다.
사용자 디바이스는 SRP에 나타낸 제품을 선택하기 위해, 예를 들면, 사용자 인터페이스를 클릭 또는 탭핑하거나, 다른 입력 디바이스를 사용하여 SRP로부터 제품을 선택할 수 있다. 사용자 디바이스는 선택된 제품에 관한 정보에 대한 요청을 만들어 내고 이를 외부 프론트 엔드 시스템(103)으로 전송할 수 있다. 이에 응답하여, 외부 프론트 엔드 시스템(103)은 선택된 제품에 관한 정보를 요청할 수 있다. 예를 들면, 정보는 각각의 SRP 상에 제품에 대해 제시된 것 이상의 추가 정보를 포함할 수 있다. 이는, 예를 들면, 유통 기한, 원산지, 무게, 크기, 패키지 내의 아이템 개수, 취급 지침, 또는 제품에 대한 다른 정보를 포함할 수 있다. 정보는 또한, (예를 들면, 이 제품 및 적어도 하나의 다른 제품을 구입한 고객의 빅 데이터 및/또는 기계 학습 분석에 기초한) 유사한 제품에 대한 추천, 자주 묻는 질문에 대한 답변, 고객의 후기, 제조 업체 정보, 사진 등을 포함할 수 있다.
외부 프론트 엔드 시스템(103)은 수신된 제품 정보에 기초하여 SDP(Single Detail Page)(예를 들면, 도 1c)를 준비할 수 있다. SDP는 또한, "지금 구매(Buy Now)" 버튼, "장바구니에 추가(Add to Cart)" 버튼, 수량 필드, 아이템 사진 등과 같은 다른 상호 동작 요소를 포함할 수 있다. SDP는 제품을 오퍼하는 판매자의 리스트를 포함할 수 있다. 이 리스트는 최저가로 제품을 판매하는 것으로 오퍼하는 판매자가 리스트의 최상단에 위치하도록, 각 판매자가 오퍼한 가격에 기초하여 순서가 정해질 수 있다. 이 리스트는 또한 최고 순위 판매자가 리스트의 최상단에 위치하도록, 판매자 순위에 기초하여 순서가 정해질 수 있다. 판매자 순위는, 예를 들어, 약속된 PPD를 지켰는지에 대한 판매자의 과거 추적 기록을 포함하는, 복수의 인자에 기초하여 만들어질 수 있다. 외부 프론트 엔드 시스템(103)은 (예를 들면, 네트워크를 통해) SDP를 요청 사용자 디바이스로 전달할 수 있다.
요청 사용자 디바이스는 제품 정보를 나열하는 SDP를 수신할 수 있다. SDP를 수신하면, 사용자 디바이스는 SDP와 상호 동작할 수 있다. 예를 들면, 요청 사용자 디바이스의 사용자는 SDP의 "장바구니에 담기(Place in Cart)" 버튼을 클릭하거나, 이와 상호 동작할 수 있다. 이렇게 하면 사용자와 연계된 쇼핑 장바구니에 제품이 추가된다. 사용자 디바이스는 제품을 쇼핑 장바구니에 추가하기 위해 외부 프론트 엔드 시스템(103)으로 이러한 요청을 전송할 수 있다.
외부 프론트 엔드 시스템(103)은 장바구니 페이지(예를 들면, 도 1d)를 생성할 수 있다. 일부 실시예에서, 장바구니 페이지는 사용자가 가상의 "쇼핑 장바구니(shopping cart)"에 추가한 제품을 나열한다. 사용자 디바이스는 SRP, SDP, 또는 다른 페이지의 아이콘을 클릭하거나, 상호 동작함으로써 장바구니 페이지를 요청할 수 있다. 일부 실시예에서, 장바구니 페이지는 사용자가 장바구니에 추가한 모든 제품 뿐 아니라 각 제품의 수량, 각 제품의 품목당 가격, 관련 수량에 기초한 각 제품의 가격, PDD에 관한 정보, 배달 방법, 배송 비용, 쇼핑 장바구니의 제품을 수정(예를 들면, 수량의 삭제 또는 수정)하기 위한 사용자 인터페이스 요소, 다른 제품의 주문 또는 제품의 정기적인 배달 설정에 대한 옵션, 할부(interest payment) 설정에 대한 옵션, 구매를 진행하기 위한 사용자 인터페이스 요소 등과 같은 장바구니의 제품에 관한 정보를 나열할 수 있다. 사용자 디바이스의 사용자는 쇼핑 장바구니에 있는 제품의 구매를 시작하기 위해 사용자 인터페이스 요소(예를 들면, "지금 구매(Buy Now)"라고 적혀있는 버튼)를 클릭하거나, 이와 상호 동작할 수 있다. 그렇게 하면, 사용자 디바이스는 구매를 시작하기 위해 이러한 요청을 외부 프론트 엔드 시스템(103)으로 전송할 수 있다.
외부 프론트 엔드 시스템(103)은 구매를 시작하는 요청을 수신하는 것에 응답하여 주문 페이지(예를 들면, 도 1e)를 생성할 수 있다. 일부 실시예에서, 주문 페이지는 쇼핑 장바구니로부터의 아이템을 재나열하고, 결제 및 배송 정보의 입력을 요청한다. 예를 들면, 주문 페이지는 쇼핑 장바구니의 아이템 구매자에 관한 정보(예를 들면, 이름, 주소, 이메일 주소, 전화번호), 수령인에 관한 정보(예를 들면, 이름, 주소, 전화번호, 배달 정보), 배송 정보(예를 들면, 배달 및/또는 픽업 속도/방법), 결제 정보(예를 들면, 신용 카드, 은행 송금, 수표, 저장된 크레딧), 현금 영수증을 요청하는 사용자 인터페이스 요소(예를 들면, 세금 목적) 등을 요청하는 섹션을 포함할 수 있다. 외부 프론트 엔드 시스템(103)은 사용자 디바이스에 주문 페이지를 전송할 수 있다.
사용자 디바이스는 주문 페이지에 정보를 입력하고 외부 프론트 엔드 시스템(103)으로 정보를 전송하는 사용자 인터페이스 요소를 클릭하거나, 상호 동작할 수 있다. 그로부터, 외부 프론트 엔드 시스템(103)은 정보를 시스템(100) 내의 다른 시스템으로 전송하여 쇼핑 장바구니의 제품으로 새로운 주문을 생성하고 처리할 수 있도록 한다.
일부 실시예에서, 외부 프론트 엔드 시스템(103)은 판매자가 주문과 관련된 정보를 전송 및 수신할 수 있도록 추가로 구성될 수 있다.
일부 실시예에서, 내부 프론트 엔드 시스템(105)은 내부 사용자(예를 들면, 시스템(100)을 소유, 운영 또는 임대하는 조직의 직원)가 시스템(100) 내의 하나 이상의 시스템과 상호작용할 수 있게 하는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, 시스템(100)이 사용자가 아이템에 대한 주문을 할 수 있게 하는 시스템의 프레젠테이션을 가능하게 하는 실시예에서, 내부 프론트 엔드 시스템(105)은 내부 사용자가 주문에 대한 진단 및 통계 정보를 볼 수 있게 하고, 아이템 정보를 수정하며, 또는 주문에 대한 통계를 검토할 수 있게 하는 웹 서버로서 구현될 수 있다. 예를 들면, 내부 프론트 엔드 시스템(105)은 Apache HTTP 서버, Microsoft Internet Information Services(IIS), NGINX 등과 같은 소프트웨어를 실행하는 컴퓨터 또는 컴퓨터들로서 구현될 수 있다. 다른 실시예에서, 내부 프론트 엔드 시스템(105)은 (도시되지 않은 다른 디바이스뿐 아니라) 시스템(100) 내에 나타낸 시스템 또는 디바이스로부터 요청을 수신 및 처리하고, 그러한 요청에 기초하여 데이터베이스 및 다른 데이터 저장 장치로부터 정보를 획득하며, 획득한 정보에 기초하여 수신된 요청에 대한 응답을 제공하도록 (설계된 커스텀 웹 서버 소프트웨어를 실행)할 수 있다.
일부 실시예에서, 내부 프론트 엔드 시스템(105)은 웹 캐싱 시스템, 데이터베이스, 검색 시스템, 결제 시스템, 분석 시스템, 주문 모니터링 시스템 등 중 하나 이상을 포함할 수 있다. 일 양상에서, 내부 프론트 엔드 시스템(105)은 이들 시스템 중 하나 이상을 포함할 수 있는 반면, 다른 양상에서는 내부 프론트 엔드 시스템(105)은 이들 시스템 중 하나 이상에 연결된 인터페이스(예를 들면, 서버 대 서버, 데이터베이스 대 데이터베이스, 또는 다른 네트워크 연결)를 포함할 수 있다.
일부 실시예에서, 운송 시스템(107)은 시스템(100) 내의 시스템 또는 디바이스와 모바일 디바이스(107A-107C) 간의 통신을 가능하게 하는 컴퓨터 시스템으로서 구현될 수 있다. 일부 실시예에서, 운송 시스템(107)은 하나 이상의 모바일 디바이스(107A-107C)(예를 들면, 휴대 전화, 스마트폰, PDA 등)로부터 정보를 수신할 수 있다. 예를 들면, 일부 실시예에서, 모바일 디바이스(107A-107C)는 배달원에 의해 동작되는 디바이스를 포함할 수 있다. 정규직, 임시적 또는 교대 근무일 수 있는 배달원은 사용자에 의해 주문된 제품들이 들어 있는 패키지의 배달을 위해 모바일 디바이스(107A-107C)를 이용할 수 있다. 예를 들면, 패키지를 배달하기 위해, 배달원은 배달할 패키지와 배달할 위치를 나타내는 모바일 디바이스 상의 알림을 수신할 수 있다. 배달 장소에 도착하면, 배달원은 (예를 들면, 트럭의 뒤나 패키지의 크레이트에) 패키지를 둘 수 있고, 모바일 디바이스를 사용하여 패키지 상의 식별자와 관련된 데이터(예를 들면, 바코드, 이미지, 텍스트 문자열, RFID 태그 등)를 스캔하거나, 캡처하며, (예를 들면, 현관문에 놓거나, 경비원에게 맡기거나, 수령인에게 전달하는 것 등에 의해) 패키지를 배달할 수 있다. 일부 실시예에서, 배달원은 모바일 디바이스를 사용하여 패키지의 사진(들)을 찍거나 및/또는 서명을 받을 수 있다. 모바일 디바이스는, 예를 들면, 시간, 날짜, GPS 위치, 사진(들), 배달원에 관련된 식별자, 모바일 디바이스에 관련된 식별자 등을 포함하는 배달에 관한 정보를 포함하는 정보를 운송 시스템(107)에 전송할 수 있다. 운송 시스템(107)은 시스템(100) 내의 다른 시스템에 의한 접근을 위해 데이터베이스(미도시)에 이러한 정보를 저장할 수 있다. 일부 실시예에서, 운송 시스템(107)은 다른 시스템에 특정 패키지의 위치를 나타내는 트래킹 데이터를 준비 및 전송하기 위해 이러한 정보를 사용할 수 있다.
일부 실시예에서, 특정 사용자는, 한 종류의 모바일 디바이스를 사용할 수 있는 반면(예를 들면, 정규 직원은 바코드 스캐너, 스타일러스 및 다른 장치와 같은 커스텀 하드웨어를 갖는 전문 PDA를 사용할 수 있음), 다른 사용자는 다른 종류의 모바일 디바이스를 사용할 수 있다(예를 들면, 임시 또는 교대 근무 직원이 기성 휴대 전화 및/또는 스마트폰을 사용할 수 있음).
일부 실시예에서, 운송 시스템(107)은 사용자를 각각의 디바이스와 연관시킬 수 있다. 예를 들면, 운송 시스템(107)은 사용자(예를 들면, 사용자 식별자, 직원 식별자, 또는 전화번호에 의해 표현됨)와 모바일 디바이스(예를 들면, International Mobile Equipment Identity(IMEI), International Mobile Subscription Identifier(IMSI), 전화번호, Universal Unique Identifier(UUID), 또는 Globally Unique Identifier(GUID)에 의해 표현됨) 간의 연관성(association)을 저장할 수 있다. 운송 시스템(107)은, 다른 것들 중에 작업자의 위치, 작업자의 효율성, 또는 작업자의 속도를 결정하기 위해 데이터베이스에 저장된 데이터를 분석하기 위해 배달시 수신되는 데이터와 관련하여 이러한 연관성을 사용할 수 있다.
일부 실시예에서, 판매자 포털(109)은 판매자 또는 다른 외부 엔터티(entity)가 시스템(100) 내의 하나 이상의 시스템과 전자 통신할 수 있게 하는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, 판매자는 판매자 포털(109)을 사용하여 시스템(100)을 통해 판매하고자 하는 제품에 대하여, 제품 정보, 주문 정보, 연락처 정보 등을 업로드하거나 제공하는 컴퓨터 시스템(미도시)을 이용할 수 있다.
일부 실시예에서, 배송 및 주문 트래킹 시스템(111)은 고객(예를 들면, 디바이스(102A-102B)를 사용하는 사용자)에 의해 주문된 제품들이 들어 있는 패키지의 위치에 관한 정보를 수신, 저장 및 포워딩하는 컴퓨터 시스템으로서 구현될 수 있다. 일부 실시예에서, 배송 및 주문 트래킹 시스템(111)은 고객에 의해 주문된 제품들이 들어 있는 패키지를 배달하는 배송 회사에 의해 운영되는 웹 서버(미도시)로부터 정보를 요청하거나 저장할 수 있다.
일부 실시예에서, 배송 및 주문 트래킹 시스템(111)은 시스템(100)에 나타낸 시스템들로부터 정보를 요청하고 저장할 수 있다. 예를 들면, 배송 및 주문 트래킹 시스템(111)은 운송 시스템(107)으로부터 정보를 요청할 수 있다. 전술한 바와 같이, 운송 시스템(107)은 사용자(예를 들면, 배달원) 또는 차량(예를 들면, 배달 트럭) 중 하나 이상과 연관된 하나 이상의 모바일 디바이스(107A-107C)(예를 들면, 휴대 전화, 스마트폰, PDA 등)로부터 정보를 수신할 수 있다. 일부 실시예에서, 배송 및 주문 트래킹 시스템(111)은 또한, 풀필먼트 센터 내부의 개별 제품의 위치를 결정하기 위해 창고 관리 시스템(WMS)(119)으로부터 정보를 요청할 수 있다. 배송 및 주문 트래킹 시스템(111)은 운송 시스템(107) 또는 WMS(119) 중 하나 이상으로부터 데이터를 요청하고, 이를 처리하며, 요청시 디바이스(예를 들면, 사용자 디바이스(102A, 102B))로 제공할 수 있다.
일부 실시예에서, 풀필먼트 최적화(FO) 시스템(113)은 다른 시스템(예를 들면, 외부 프론트 엔드 시스템(103) 및/또는 배송 및 주문 트래킹 시스템(111))으로부터의 고객 주문에 대한 정보를 저장하는 컴퓨터 시스템으로서 구현될 수 있다. FO 시스템(113)은 또한, 특정 아이템이 유지 또는 저장되는 곳을 나타내는 정보를 저장할 수 있다. 예를 들면, 소정 아이템은 하나의 풀필먼트 센터에만 저장될 수 있는 반면, 소정 다른 아이템은 다수의 풀필먼트 센터에 저장될 수 있다. 또 다른 실시예에서, 특정 풀필먼트 센터는 아이템의 특정 세트(예를 들면, 신선한 농산물 또는 냉동 제품)만을 저장하도록 구성될 수 있다. FO 시스템(113)은 이러한 정보뿐 아니라 관련 정보(예를 들면, 수량, 크기, 수령 날짜, 유통 기한 등)를 저장한다.
FO 시스템(113)은 또한, 각 제품에 대해 대응하는 PDD(약속된 배달 날짜)를 계산할 수 있다. 일부 실시예에서, PDD는 하나 이상의 요소에 기초할 수 있다. 예를 들면, FO 시스템(113)은 제품에 대한 과거 수요(예를 들면, 그 제품이 일정 기간 동안 얼마나 주문되었는지), 제품에 대한 예측된 수요(예를 들면, 얼마나 많은 고객이 다가오는 기간 동안 제품을 주문할 것으로 예상되는지), 일정 기간 동안 얼마나 많은 제품이 주문되었는지를 나타내는 네트워크 전반의 과거 수요, 다가오는 기간 동안 얼마나 많은 제품이 주문될 것으로 예상되는지를 나타내는 네트워크 전반의 예측된 수요, 각각의 제품을 저장하는 각 풀필먼트 센터에 저장된 제품의 하나 이상의 개수, 그 제품에 대한 예상 또는 현재 주문 등에 기초하여 제품에 대한 PDD를 계산할 수 있다.
일부 실시예에서, FO 시스템(113)은 주기적으로(예를 들면, 시간별로) 각 제품에 대한 PDD를 결정하고, 검색하거나 다른 시스템(예를 들면, 외부 프론트 엔드 시스템(103), SAT 시스템(101), 배송 및 주문 트래킹 시스템(111))으로 전송하기 위해 이를 데이터베이스에 저장할 수 있다. 다른 실시예에서, FO 시스템(113)은 하나 이상의 시스템(예를 들면, 외부 프론트 엔드 시스템(103), SAT 시스템(101), 배송 및 주문 트래킹 시스템(111))으로부터 전자 요청을 수신하고 요구에 따라 PDD를 계산할 수 있다.
일부 실시예에서, 풀필먼트 메시징 게이트웨이(FMG)(115)는 FO 시스템(113)과 같은 시스템(100) 내의 하나 이상의 시스템으로부터 하나의 포맷 또는 프로토콜로 요청 또는 응답을 수신하고, 그것을 다른 포맷 또는 프로토콜로 변환하여, 변환된 포맷 또는 프로토콜로 된 요청 또는 응답을 WMS(119) 또는 제3자 풀필먼트 시스템(121A, 121B, 또는 121C)과 같은 다른 시스템에 포워딩하며, 반대의 경우도 가능한 컴퓨터 시스템으로서 구현될 수 있다.
일부 실시예에서, 공급 체인 관리(SCM) 시스템(117)은 예측 기능을 수행하는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, SCM 시스템(117)은, 예를 들어 제품에 대한 과거 수요, 제품에 대한 예측된 수요, 네트워크 전반의 과거 수요, 네트워크 전반의 예측된 수요, 각각의 풀필먼트 센터에 저장된 제품 개수, 각 제품에 대한 예상 또는 현재 주문 등에 기초하여, 특정 제품에 대한 수요의 수준을 예측할 수 있다. 이러한 예측된 수준과 모든 풀필먼트 센터를 통한 각 제품의 수량에 응답하여, SCM 시스템(117)은 특정 제품에 대한 예측된 수요를 만족시키기에 충분한 양을 구매 및 비축하기 위한 하나 이상의 구매 주문을 생성할 수 있다.
일부 실시예에서, 창고 관리 시스템(WMS)(119)은 작업 흐름을 모니터링하는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, WMS(119)는 개개의 디바이스(예를 들면, 디바이스(107A-107C 또는 119A-119C))로부터 개별 이벤트를 나타내는 이벤트 데이터를 수신할 수 있다. 예를 들면, WMS(119)는 패키지를 스캔하기 위해 이들 디바이스 중 하나를 사용한 것을 나타내는 이벤트 데이터를 수신할 수 있다. 풀필먼트 프로세스 동안, 패키지 식별자(예를 들면, 바코드 또는 RFID 태그 데이터)는 특정 스테이지의 기계(예를 들면, 자동 또는 핸드헬드 바코드 스캐너, RFID 판독기, 고속 카메라, 태블릿(119A), 모바일 디바이스/PDA(119B), 컴퓨터(119C)와 같은 디바이스 등)에 의해 스캔되거나 판독될 수 있다. WMS(119)는 패키지 식별자, 시간, 날짜, 위치, 사용자 식별자, 또는 다른 정보와 함께 대응하는 데이터베이스(미도시)에 패키지 식별자의 스캔 또는 판독을 나타내는 각 이벤트를 저장할 수 있고, 이러한 정보를 다른 시스템(예를 들면, 배송 및 주문 트래킹 시스템(111))에 제공할 수 있다.
일부 실시예에서, WMS(119)는 하나 이상의 디바이스(예를 들면, 디바이스(107A-107C 또는 119A-119C))와 시스템(100)과 연관된 하나 이상의 사용자를 연관시키는 정보를 저장할 수 있다. 예를 들면, 일부 상황에서, (파트 타임 또는 풀 타임 직원과 같은) 사용자는 모바일 디바이스(예를 들면, 모바일 디바이스는 스마트폰임)를 소유한다는 점에서, 모바일 디바이스와 연관될 수 있다. 다른 상황에서, 사용자는 임시로 모바일 디바이스를 보관한다는 점에서(예를 들면, 하루의 시작에서부터 모바일 디바이스를 대여받은 사용자가, 하루 동안 그것을 사용하고, 하루가 끝날 때 그것을 반납할 것임), 모바일 디바이스와 연관될 수 있다.
일부 실시예에서, WMS(119)는 시스템(100)과 연관된 각각의 사용자에 대한 작업 로그를 유지할 수 있다. 예를 들면, WMS(119)는 임의의 할당된 프로세스(예를 들면, 트럭에서 내리기, 픽업 구역에서 아이템을 픽업하기, 리비닝 월(rebin wall) 작업, 아이템 패킹하기), 사용자 식별자, 위치(예를 들면, 풀필먼트 센터의 바닥 또는 구역), 직원에 의해 시스템을 통해 이동된 유닛의 수(예를 들면, 픽업된 아이템의 수, 패킹된 아이템의 수), 디바이스(예를 들면, 디바이스(119A-119C))와 관련된 식별자 등을 포함하는, 각 직원과 관련된 정보를 저장할 수 있다. 일부 실시예에서, WMS(119)는 디바이스(119A-119C)에서 작동되는 계시(timekeeping) 시스템과 같은 계시 시스템으로부터 체크-인 및 체크-아웃 정보를 수신할 수 있다.
일부 실시예에서, 제3자 풀필먼트 (3PL) 시스템(121A-121C)은 물류 및 제품의 제3자 제공자와 관련된 컴퓨터 시스템을 나타낸다. 예를 들면, 일부 제품이 풀필먼트 센터에 저장되는 반면, 다른 제품은 오프-사이트(off-site)에 저장될 수 있거나, 수요에 따라 생산될 수 있으며, 달리 풀필먼트 센터에 저장될 수 없다. 3PL 시스템(121A-121C)은 FO 시스템(113)으로부터 (예를 들면, FMG(115)를 통해) 주문을 수신하도록 구성될 수 있으며, 고객에게 직접 제품 및/또는 서비스(예를 들면, 배달 또는 설치)를 제공할 수 있다. 일부 구현예에서, 하나 이상의 3PL 시스템(121A-121C)은 시스템(100)의 일부일 수 있지만, 다른 구현예에서는, 하나 이상의 3PL 시스템(121A-121C)이 시스템(100)의 외부에 있을 수 있다(예를 들어, 제3자 제공자에 의해 소유 또는 운영됨)일 수 있다.
일부 실시예에서, 풀필먼트 센터 인증 시스템(FC Auth)(123)은 다양한 기능을 갖는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, 일부 실시예에서, FC Auth(123)는 시스템(100) 내의 하나 이상의 다른 시스템에 대한 단일-사인 온(single-sign on, SSO) 서비스로서 작동할 수 있다. 예를 들면, FC Auth(123)는 내부 프론트 엔드 시스템(105)을 통해 사용자가 로그인하게 하고, 사용자가 배송 및 주문 트래킹 시스템(111)에서 리소스에 액세스하기 위해 유사한 권한을 갖고 있다고 결정하며, 두 번째 로그인 프로세스 요구 없이 사용자가 그러한 권한에 액세스할 수 있게 한다. 다른 실시예에서, FC Auth(123)는 사용자(예를 들면, 직원)가 자신을 특정 작업과 연관시킬 수 있게 한다. 예를 들면, 일부 직원은 (디바이스(119A-119C)와 같은) 전자 디바이스를 갖지 않을 수 있으며, 대신 하루 동안 풀필먼트 센터 내에서 작업들 사이 및 구역들 사이에서 이동할 수 있다. FC Auth(123)는 이러한 직원들이 상이한 시간 대에 수행 중인 작업과 속해 있는 구역을 표시할 수 있도록 구성될 수 있다.
일부 실시예에서, 노동 관리 시스템(LMS)(125)은 직원(풀-타임 및 파트-타임 직원을 포함함)에 대한 출근 및 초과 근무 정보를 저장하는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, LMS(125)는 FC Auth(123), WMS(119), 디바이스(119A-119C), 운송 시스템(107), 및/또는 디바이스(107A-107C)로부터 정보를 수신할 수 있다.
도 1a에 나타낸 특정 구성은 단지 예시일 뿐이다. 예를 들면, 도 1a는 FO 시스템(113)에 연결된 FC Auth 시스템(123)을 나타낸 반면, 모든 실시예가 이러한 특정 구성을 필요로 하는 것은 아니다. 실제로, 일부 실시예에서, 시스템(100) 내의 시스템은 인터넷, 인트라넷, WAN(Wide-Area Network), MAN(Metropolitan-Area Network), IEEE 802.11a/b/g/n 표준을 따르는 무선 네트워크, 임대 회선 등을 포함하는 하나 이상의 공공 또는 사설 네트워크를 통해 서로 연결될 수 있다. 일부 실시예에서, 시스템(100) 내의 시스템 중 하나 이상은 데이터 센터, 서버 팜 등에서 구현되는 하나 이상의 가상 서버로서 구현될 수 있다.
도 2는 유입(incoming) 트래픽을 상이한 구성(configuration)으로 라우팅하기 위한 컴퓨터화된 시스템(200)의 예시적인 실시예를 도시하는 개략적인 블록도이다. 컴퓨터화된 시스템(200)은 하나 이상의 구성요소 시스템, 모듈, 소프트웨어 유닛, 또는 이들의 임의의 조합을 포함할 수 있으며, 이들 각각은 하나 이상의 네트워크 또는 전기적 연결을 통해 서로 연결될 수 있다. 개별 구성요소는 하나의 지리적 위치 내에 위치하거나 지리적으로 분산될 수 있다.
일부 실시예에서, 컴퓨터화된 시스템(200)은 트래픽 제어기(201) 및 트래픽 구성기(202)를 포함할 수 있다. 트래픽 제어기(201)는 액세스 클라이언트(210)로부터 유입 트래픽을 수락하고, 하나 이상의 가용 버킷(예를 들어, 버킷 #1(221) 또는 버킷 #2(222))을 할당하고, 대응하는 구성과 연관된 데이터를 다시 액세스 클라이언트(210)로 전송하도록 구성된 임의의 컴퓨터화된 구성요소일 수 있다. 예를 들어, 트래픽 제어기(201)는 외부 디바이스(예를 들어, 모바일 디바이스(102A) 또는 컴퓨터(102B))로부터의 요청에 응답하여 다양한 페이지(예를 들어, SRP 또는 SDP)를 생성하기 때문에 외부 프론트 엔드 시스템(103)의 일부로서 구현될 수 있다. 도 4에 대해 아래에 설명된 바와 같이, 버킷은 상이한 구성을 테스트하기 위해 트래픽 제어기(201)에 의해 마련된 유입 트래픽의 일부를 나타낸다.
일반적인 웹사이트는 웹사이트와 연관된 데이터를 저장하는 호스트 서버(미도시)로 구성된다. 본 명세서에서 사용되는 바와 같이, 웹사이트는 하나 이상의 웹 페이지 모음이며, 각 웹 페이지는 단일의 게시된 구성을 갖는다. 호스트 서버는, 액세스 클라이언트(210)를 이용하여, 액세스 요청(211)을 호스트 서버에 개별적으로 전송하는, 사용자(일반인 또는 선택된 그룹의 사람들)가 액세스할 수 있도록 한다. 그 다음에 호스트 서버는 액세스 요청(211)에 의해 요청된 특정 웹 페이지와 연관된 데이터를 대응하는 액세스 클라이언트(210)로 전송함으로써 응답한다. 본 명세서에서 사용되는 바와 같이, 액세스 요청(211)의 모음을 유입 트래픽이라고 한다. 액세스 클라이언트(210)는 스마트폰, 랩탑, 데스크탑, 태블릿 등과 같은 임의의 인터넷 가능 디바이스일 수 있다.
개시된 실시예에서, 웹사이트는 둘 이상의 파일럿 구성을 갖는 하나 이상의 웹 페이지를 포함할 수 있다. 각 파일럿 구성은 다른 구성과 다른 동작을 보일 수 있다. 다른 동작은, 다른 레이아웃, 다른 알고리즘 또는 다른 콘텐츠와 같은, 웹 페이지의 임의의 측면을 포함할 수 있다. 예를 들어, SRP(예를 들어, 도 1b)는 2개의 파일럿 구성을 포함할 수 있으며, 여기서 하나의 구성은 제품 결과를 관련성 순서로 정렬하고 다른 구성은 제품 결과를 고객 리뷰 수의 순서로 정렬한다. 다른 예에서, SDP(예를 들어, 도 1c)는 3개의 파일럿 구성을 포함할 수 있으며, 여기서 각각의 파일럿 구성은 상이한 레이아웃으로 제품 정보를 제시한다. 일부 실시예에서, 웹 페이지에 대한 파일럿 구성은 독립적인 동작의 상이한 조합을 포함할 수 있으며, 여기서, 예를 들어, 제1 구성은 제1 검색 알고리즘 및 제1 광고 제안 알고리즘을 이용하고, 제2 구성은 제1 검색 알고리즘 및 제2 광고 제안을 이용하고, 제3 구성은 제2 검색 알고리즘 및 제1 광고 제안 알고리즘을 이용하고, 제4 구성은 제2 검색 알고리즘 및 제2 광고 제안 알고리즘을 이용한다. 상이한 파일럿 구성의 수 및 동작의 유형은 예시일 뿐이며, 상이한 동작을 나타내는 임의의 수의 파일럿 구성이 웹 페이지와 연관될 수 있다.
트래픽 제어기(201)로 돌아가면, 트래픽 제어기(201)는 유입 트래픽에 대한 게이트키퍼 역할을 하여 특정 액세스 요청(211)에 어떤 파일럿 구성이 할당되어야 하는지를 결정할 수 있다. 일부 실시예에서, 트래픽 제어기(201)는, 각각이 대응하는 파일럿 구성과 연관된 서로 다른 버킷(예를 들면, 버킷 #1(221) 또는 버킷 #2(222))에 개별 액세스 요청(211)을 무작위로 할당할 수 있다. 그런 다음 트래픽 제어기(201)는 각 액세스 요청(211)에 응답하여 대응하는 파일럿 구성과 연관된 데이터를 전송하기 위해 호스트 서버에 신호를 보낼 수 있다.
트래픽 구성기(202)는, 일부 실시예에서, 트래픽 제어기(201)의 동작을 조정하기 위해 관리자로부터 코드리스 명령을 수신하도록 구성된 하나 이상의 컴퓨팅 디바이스 또는 소프트웨어 프로그램을 포함할 수 있다. 예를 들어, 트래픽 구성기(202)는 외부 프론트 엔드 시스템(103)이 외부 디바이스(예를 들면, 모바일 디바이스(102A) 또는 컴퓨터(102B))로부터의 요청에 응답하여 다양한 페이지(예를 들면, SRP 또는 SDP)를 생성하는 방법을 제어하기 위해 독립형 컴퓨팅 디바이스 또는 내부 프론트 엔드 시스템(105)의 일부로 구현될 수 있다. 액세스 요청(211)에 하나 이상의 구성을 무작위로 할당하도록 트래픽 제어기(201)를 구성하기 위한 프로세스는 도 3과 관련하여 아래에서 더 상세히 설명된다.
이러한 방식으로, 개시된 실시예는 호스트 서버가 웹 페이지의 상이한 파일럿 구성을 상이한 사용자에게 동시에 전송할 수 있게 한다. 이를 통해 웹 페이지의 관리자는 사용자 액세스를 방해하지 않고 다양한 구성을 테스트할 때 변동을 최소화하면서 다양한 구성을 테스트할 수 있다.
도 3은 유입 트래픽을 상이한 구성으로 구성하고 라우팅하기 위한 예시적인 컴퓨터화된 프로세스(300)의 흐름도이다. 일부 실시예에서, 프로세스(300)는 위에서 논의된 바와 같이 트래픽 제어기(201) 및 트래픽 구성기(202)를 포함하는 컴퓨터화된 시스템(200)에 의해 수행될 수 있다. 컴퓨터화된 시스템(200)은 또한 액세스 클라이언트(210)로부터의 요청에 응답하여 웹 페이지를 생성하기 위해 도 1a에 도시된 다른 시스템에 연결될 수 있다.
단계 301에서, 컴퓨터화된 시스템(200)은 복수의 가능한 구성을 포함하는 웹 페이지를 배치할 수 있다. 복수의 구성은 실험적이거나 미래의 한 지점에서 완전한 배치를 위해 사용자 테스트를 거치는 것일 수 있다. 일부 실시예에서, 복수의 구성은 위에서 논의된 바와 같이 상이한 동작을 나타낼 수 있고, 여기서 액세스 클라이언트(210)를 위해 생성된 웹 페이지는 하나 이상의 구성을 포함할 수 있다.
단계 302에서, 컴퓨터화된 시스템(200)은, 트래픽 구성기(202)를 통해, 하나 이상의 버킷을 포함하는 트래픽 컨테이너를 구성할 수 있다. 일부 실시예에서, 트래픽 컨테이너를 구성하는 것은 트래픽 구성기(202)를 이용하여 관리자에게 사용자 인터페이스(UI)를 표시하고, 관리자로부터 코드리드 명령을 수신하고, 코드리스 명령을 컴퓨터 판독 가능한 명령으로 변환하고, 컴퓨터 판독 가능한 명령을 실행하는 것을 포함할 수 있다. 일부 실시예에서, 코드리스 명령은 도 5 및 도 6과 관련하여 아래에서 더 상세히 설명될 다양한 GUI 요소를 조작하는 사용자 입력을 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, 트래픽 컨테이너는 트래픽 컨테이너와 연관된 하나 이상의 실험의 대상이 되는 유입 트래픽의 서브세트를 마련하도록 구성된다. 실험은 웹 페이지의 복수의 파일럿 구성으로 구성된다. 유입 트래픽을 실험에 적용하면 웹 페이지의 관리자가 사용자 경험에 영향을 줄 수 있는 다른 요소(예를 들면, 시간, 사회적 추세 등)가 일정하게 유지되도록 하면서, 웹 페이지를 방문하는 제한된 수의 사용자에게 파일럿 구성을 제시하도록 할 수 있다. 일부 실시예에서, 복수의 파일럿 구성은 일반적으로 모든 사용자에게 아직 공개되지 않은 웹 페이지의 특정 구성 또는 구성의 조합을 포함할 수 있다.
다른 실험에 대한 사용자 경험에 영향을 줄 수 있는 하나 이상의 실험이 있는 일부 실시예에서, 트래픽 구성기(202)는 관리자가 복수의 버킷을 갖는 트래픽 컨테이너를 설정하도록 허용할 수 있다. 본 명세서에서 사용되는 바와 같이, 버킷은 트래픽 컨테이너 내의 서브-컨테이너로 간주될 수 있으며, 여기서 버킷은 트래픽 컨테이너에 할당된 유입 트래픽의 서브세트를 마련하도록 구성된다. 버킷에 할당된 유입 트래픽의 일부는 버킷과 연관된 하나 이상의 실험의 대상이 될 수 있다. 트래픽 컨테이너, 버킷 및 실험 간의 관계는 도 4를 참조하여 아래에서 더 자세히 설명된다.
일부 실시예에서, 컴퓨터화된 시스템(200)은 각각이 하나 이상의 버킷을 포함하는 복수의 트래픽 컨테이너를 생성 및 관리하도록 구성될 수 있다. 각각의 트래픽 컨테이너는, 트래픽 구성기(202)를 통해, 유입 트래픽 중 어느 것이 각 트래픽 컨테이너에 할당되어야 하는지를 결정하기 위한 파라미터 세트가 할당될 수 있다. 파라미터 세트는, 예를 들어, 해당 액세스 클라이언트(210)의 운영 체제(예를 들면, 안드로이드, iOS, 윈도우 또는 맥), 해당 액세스 클라이언트(210)가 위치한 지역, 해당 액세스 클라이언트(210)의 선호 언어, 모든 유입 트래픽의 미리 결정된 백분율, 또는 트래픽 컨테이너에 할당될 액세스 요청(211)의 수를 제한하는 데 이용될 수 있는 임의의 다른 파라미터를 포함할 수 있다. 일부 실시예에서, 상이한 트래픽 컨테이너에 대한 파라미터 세트는 상호 배타적이지 않을 수 있으며, 따라서 일부 액세스 요청(211)이 둘 이상의 트래픽 컨테이너에 할당되는 것을 허용한다. 추가 실시예에서, 임의의 트래픽 컨테이너에 할당된 모든 액세스 요청(211)의 합은 모든 유입 트래픽보다 작을 수 있고(즉, 모든 유입 트래픽에 파일럿 구성이 제시되지는 않음), 또는 합은 모든 유입 트래픽 보다 클 수 있다(즉, 일부 액세스 요청(211)은 하나 이상의 트래픽 컨테이너에 대응하는 파일럿 구성이 제시됨).
트래픽 컨테이너와 대조적으로, 트래픽 컨테이너 내의 한 버킷에 할당된 유입 트래픽의 부분은 동일한 트래픽 컨테이너의 다른 버킷에 할당된 유입 트래픽의 다른 부분과 완전히 다를 수 있다. 이 구성을 통해 관리자는 페이지를 방문하는 사용자 그룹이 한 실험의 대상이 되고 다른 상호 배타적인 실험의 대상이 되지 않는 상호 배타적인 실험을 설정할 수 있다.
단계 303에서, 컴퓨터화된 시스템(200)은, 트래픽 구성기(202)를 통해, 사용자 입력에 기초하여 트래픽 컨테이너에 하나 이상의 실험을 할당할 수 있다. 사용자 입력은 단계 302에서 전술한 것과 유사한 프로세스를 통해 트래픽 구성기(202)에 의해 수신된 코드리스 명령일 수 있다. 이러한 코드리스 명령은 자연어, 텍스트, 의사코드, UI 요소의 조작 등을 포함할 수 있다. 일부 실시예에서, 코드리스 명령은 트래픽 구성기(202)가 트래픽 컨테이너 내에 하나 이상의 버킷을 생성하도록 지시할 수 있으며, 여기서 하나 이상의 버킷 각각은 또한 하나 이상의 실험을 포함할 수 있다.
단계 304에서, 컴퓨터화된 시스템(200)은, 트래픽 제어기(201)를 통해, 웹 페이지에 액세스하기 위한 유입 트래픽을 수락할 수 있다. 그 다음, 단계 305에서, 트래픽 제어기(201)는 유입 트래픽(즉, 액세스 요청(211))의 서브세트를 하나 이상의 트래픽 컨테이너 및 그 안의 하나 이상의 버킷에 무작위로 할당할 수 있다. 일부 실시예에서, 무작위 할당은 트래픽 구성기(202)를 통해 미리 구성된 상이한 파라미터에 기초할 수 있다.
예를 들어, 트래픽 제어기(201)는 유입 트래픽의 단지 10%를 특정 트래픽 컨테이너에 할당할 수 있다. 특정 트래픽 컨테이너가 2개의 버킷을 포함하는 이 예시적인 실시예에서, 트래픽 제어기(201)는 추가로, 예를 들어, 트래픽 컨테이너에 할당된 유입 트래픽의 50%를 제1 버킷에, 다른 50%를 제2 버킷에 랜덤하게 할당할 수 있다. 즉, 제1 및 제2 버킷에는 각각 총 유입 트래픽의 50%가 할당된다. 또한, 트래픽 제어기(201)는 어느 하나의 버킷에 할당된 유입 트래픽의 부분을 해당 버킷과 연관된 실험에 할당할 수 있다. 예를 들어, 예시적인 실시예에서 제1 버킷에 두 개의 서로 다른 파일럿 구성을 갖는 하나의 실험이 있는 경우, 제1 버킷에 할당된 유입 트래픽의 50%에는 두 개의 파일럿 구성 중 하나가 표시되고 다른 50%에는 다른 파일럿 표시된다. 파라미터(예를 들어, 유입 트래픽의 %), 그것들의 값(예를 들어, 50%), 및 위에서 논의된 버킷 및 실험의 수는 예시일 뿐이며, 트래픽 구성기(202)는 버킷, 실험의 임의의 다른 조합을 사용하도록 트래픽 제어기(202)를 구성하거나 구성이 사용될 수 있다.
일부 실시예에서, 트래픽 제어기(201)는, 트래픽 컨테이너에 할당된 유입 트래픽의 부분 중에서, 트래픽 컨테이너와 연관된 실험 또는 버킷에 대한 미리 구성된 파라미터와 호환되지 않는 액세스 요청(211)을 필터링 할 수 있다. 예를 들어, 버킷 또는 실험 각각은 버킷들 또는 실험들과 호환되는 액세스 요청(211)의 특정 세트를 선택하기 위한 파라미터를 가질 수 있다. 위에서 논의된 트래픽 컨테이너에 대한 파라미터와 유사하게, 버킷 및 실험에 대한 파라미터는, 예를 들어, 해당 액세스 클라이언트(210)의 운영 체제(예를 들면, 안드로이드, iOS, 윈도우 또는 맥), 해당 액세스 클라이언트(210)가 위치한 지역, 해당 액세스 클라이언트(210)의 선호 언어 등을 포함할 수 있다.
단계 306에서, 트래픽 컨테이너에 할당된 각각의 액세스 요청(211)에 대해, 컴퓨터화된 시스템(200)은, 트래픽 컨트롤러(201)를 통해, 액세스 요청(211)이 무작위로 할당된 실험에 대응하는 파일럿 구성으로 웹 페이지를 검색 및 전송할 수 있다. 일부 실시예에서, 트래픽 제어기(201)는 특정 액세스 요청(211)이 단계 305에서 필터링된 경우 실험적 특징이 없는 일반 기본 웹 페이지를 전송할 수 있다.
단계 307에서, 컴퓨터화된 시스템(200)은 액세스 요청(211)에 전송된 적절한 파일럿 구성의 상대적인 성능을 나타내는 하나 이상의 측정치를 획득할 수 있다. 일부 실시예에서, 하나 이상의 측정치를 획득하는 것은 액세스 클라이언트(210)의 사용자가 전송된 파일럿 구성과 상호작용함에 따른 액세스 클라이언트(210)로부터의 후속 액세스 요청(211)을 모니터링 하는 것을 포함할 수 있다. 이것은 컴퓨터화된 시스템(200)이, 예를 들어, 사용자가 웹 페이지의 특정 요소(예를 들어, 광고)를 클릭했는지, 사용자가 웹 페이지에 표시된 제품을 구매하게 되었는지, 또는 웹 페이지에 대한 사용자의 참여를 나타내는 임의의 다른 활동을 결정할 수 있게 한다. 하나의 파일럿 구성을 수신한 한 사용자 그룹의 이러한 활동과 다른 파일럿 구성을 수신한 다른 사용자 그룹의 유사한 활동을 비교하면 한 파일럿 구성이, 예를 들어, 새로운 판매 창출, 광고 수익 증대, 더 높은 사용자 관심 유지 또는 관리자가 추적하고자 하는 임의의 다른 바람직한 메트릭 측면에서 다른 파일럿 구성보다 낫다는 것을 시사할 수 있다.
일부 실시예에서, 트래픽 제어기(201)는 액세스 클라이언트(210)로부터의 액세스 요청(211)에 응답하여 전송된 파일럿 구성의 로그를 유지하도록 구성될 수 있다. 트래픽 제어기(201)가 이전에 액세스 요청을 보낸 알려진 액세스 클라이언트(210)로부터 새로운 액세스 요청(211)을 수신했다고 결정하면, 트래픽 제어기(201)는 새로운 액세스 요청(211)에 대해 동일한 트래픽 컨테이너, 버킷 및 실험을 할당하도록 구성될 수 있으며, 이로써 동일한 파일럿 구성이 동일한 액세스 클라이언트(210)로 전송된다. 이는 알려진 액세스 클라이언트(210)의 사용자에 대해 일관된 사용자 경험을 보장할 수 있으며 하나의 실험이 다른 실험에 의해 영향을 받는 것을 방지할 수 있다.
도 4는 유입 트래픽이 상이한 구성에 어떻게 할당될 수 있는지를 나타내는 예시적인 도면이다. 도 3에 대해 위에서 설명된 바와 같이, 트래픽 구성기(202)가 한번에 둘 이상의 트래픽 컨테이너를 설정할 수 있고, 트래픽 제어기(201)가 한번에 둘 이상의 트래픽 컨테이너를 관리할 수 있다. 각각의 트래픽 컨테이너는 차례로 하나 이상의 버킷을 포함할 수 있으며, 각 버킷은 또한 하나 이상의 실험을 포함할 수 있다. 또한, 각 실험은 둘 이상의 구성을 포함할 수 있다. 이러한 기능은 한 실험이 다른 실험에 영향을 미치지 않도록 보장하면서 여러 팀의 사람들이 여러 다른 기능을 테스트하려고 하는 대규모 기업 환경에서 유용할 수 있다.
도 4에 도시된 예시적인 실시예는 두 개의 트래픽 컨테이너, 즉 트래픽 컨테이너 A(400A)와 트래픽 컨테이너 B(400B)를 포함하는 복합 설정을 보여준다. 일부 실시예에서, 트래픽 컨테이너 A(400A) 및 트래픽 컨테이너 B(400B)에 할당된 유입 트래픽의 부분은 상호 배타적이지 않을 수 있으며, 이는 특정 액세스 요청(211)이 A(400A) 및 트래픽 컨테이너 B(400B) 모두에 동시에 할당될 수 있음을 의미한다. 이러한 상황은, 예를 들어, 트래픽 컨테이너 A(400A)와 연관된 파일럿 구성이 웹사이트의 한 웹 페이지에 속하는 반면 트래픽 컨테이너 B(400B)와 연관된 파일럿 구성이 동일한 웹사이트의 다른 웹 페이지에 속하는 경우에 발생할 수 있다.
예시적인 실시예에서, 트래픽 컨테이너 A(400A)는 2개의 버킷, 즉 버킷 A1(410A) 및 버킷 A2(420A)를 포함하며, 이는 트래픽 컨테이너 A(400A)에 할당된 유입 트래픽의 부분을 균등하게 분할한다. 다른 실시예에서, 분할은 균등하지 않거나(예를 들어, 40% 대 60%) 2개보다 많은 버킷이 있을 수 있다(예를 들어, 버킷 B1(410B), 버킷 B2(420B), 및 버킷 B3(430B)).
분할 비율에 관계없이, 트래픽 컨테이너 내의 각 버킷에 할당된 유입 트래픽의 부분은 상호 배타적일 수 있으며, 이는 하나의 버킷에 할당된 특정 액세스 요청(211)이 동일한 트래픽 컨테이너의 다른 버킷에 할당되지 않을 것임을 의미한다. 이러한 상황은 한 버킷과 연관된 파일럿 구성이 다른 버킷과 연관된 다른 파일럿 구성에 대한 사용자 경험에 영향을 미칠 가능성이 있는 경우에 유용할 수 있다. 예를 들어, 버킷 A1(410A)과 연관된 파일럿 구성은 SRP(예를 들어, 도 1b)에 대해 상이한 검색 알고리즘을 적용할 수 있는 반면, 버킷 A2(420A)와 연관된 파일럿 구성은 SRP의 상이한 레이아웃을 적용할 수 있다. SRP의 상이한 검색 알고리즘과 레이아웃은 모두 사용자 동작에 영향을 미칠 수 있으며, 이는 상이한 검색 알고리즘들의 성능을 부정확하게 비교할 수 있다.
다시 예시적인 실시예로 돌아가서, 버킷 A1(410A)은 두 개의 실험, 즉 실험 A1-1(411A) 및 실험 A1-2(412A)를 포함한다. 여기서, 버킷 A1(410)에 할당된 유입 트래픽의 부분은 두 실험 모두에 할당될 수 있으며, 여기서 트래픽 제어기(201)는 2개의 파일럿 구성, 즉 구성 A1-1-A(411A-A) 또는 구성 A1-1-B(411A-B) 중 하나를 제시할 수 있고, 4개의 파일럿 구성, 즉 구성 A1-2-A(412A-A), 구성 A1-2-B(412A-B), 구성 A1-2-A(412A-C) 또는 구성 A1-2-B(412A-D) 중 하나를 제시할 수 있다. 이러한 실험의 조합은 특정 기능을 함께 제시해야 하는 경우 발생할 수 있다.
예를 들어, SRP는 검색 결과를 좁히기 위해 서로 다른 필터들(예를 들어, 카테고리, 가격, 색상)을 지정하기 위해 웹 페이지를 방문하는 사용자를 위한 필터 창을 포함할 수 있다. 한 실험은 드롭다운 목록이나 라디오 버튼을 이용하여 필터 창을 표시하는 두 개의 서로 다른 레이아웃을 비교할 수 있다. SRP의 필터 창에 표시될 다른 필터 세트를 포함하는 다른 실험도 존재할 수 있다. 이 두 실험을 하나의 버킷에 함께 축적하고 트래픽 컨트롤러(201)가 액세스 요청(211)에 파일럿 구성의 다른 조합을 할당하도록 하는 것이, 교대로 실행하거나 다른 버킷에서 실행하는 것보다 더 효율적일 수 있다. 두 실험을 함께 축적하면 관리자는 또한 서로 다른 기능이 어떻게 상호 작용하는지 관찰하고 최적의 기능 조합을 결정할 수 있게 된다.
일부 실시예에서, 하나의 버킷에 함께 축적된 둘 이상의 실험은 부모-자식 관계에 있을 수 있다. 자식 실험은 부모 실험의 기능에 종속될 수 있다. 예를 들어, 부모 실험은 필터 창이 있는 파일럿 구성과 필터 창이 없는 다른 파일럿 구성을 포함할 수 있다. 자식 실험은 필터 창에 드롭다운 목록이 있는 파일럿 구성과 필터 창에 라디오 버튼이 있는 다른 파일럿 구성을 포함할 수 있다. 이 예시적인 실시예에서, 동일한 버킷에 부모 실험을 갖는 것은 자식 실험을 버킷에 추가하기 위한 전제 조건일 수 있다.
일부 실시예에서, 부모-자식 관계로 실험을 설정하면 모듈식 테스팅을 허용할 수 있으며, 여기서 웹 페이지의 상이한 측면을 신속하게 테스트하기 위해 부모-자식 실험의 상이한 조합이 사용될 수 있다. 예를 들어, 부모 실험을 각 자식 실험에 프로그래밍할 필요 없이 하나의 부모 실험을 한 번 만들고 다른 자식 실험과 페어링 할 수 있다. 추가 실시예에서, 부모-자식 관계에 의해 관련된 3세대 이상의 실험이 있는 다단계 패밀리도 이용 가능할 수 있다.
일부 실시예에서, 둘 이상의 실험은 동기화될 수 있다. 동기화된 실험은 여러 독립적인 시스템의 관련 실험 세트를 포함할 수 있으며 유입 트래픽의 동일한 부분이 할당될 수 있다. 이러한 방식으로, 관련 실험에서 동일한 파일럿 구성은 일관성을 위해 동일한 사용자에게 제시될 수 있다. 예를 들어, 제1 실험은 SRP에서 광고를 표시하기 위한 상이한 알고리즘을 테스트하도록 설정될 수 있다. 제2 실험은 동일한 세트의 서로 다른 알고리즘 또는 SDP에서 이전 세트와 관련된 다른 알고리즘 세트를 테스트하기 위해 설정될 수 있다. 두 실험은 동기화된 실험으로 설정될 수 있으므로, SRP에서 하나의 알고리즘에 기초하여 광고를 본 사용자에게 SDP에서 동일하거나 관련된 알고리즘에 기초하여 광고가 표시될 수 있다.
도 4의 예시적인 실시예에 도시된 구성 및 숫자는 단지 개시된 실시예의 특정 측면을 설명하기 위해 제공되며 단지 예로서 역할을 하도록 의도된다. 따라서 어떠한 제한 효과도 의도되지 않는다. 구체적으로, 트래픽 컨테이너의 수, 트래픽 컨테이너 내 버킷의 수, 버킷 내 실험의 수, 실험 내 파일럿 구성의 수, 버킷과 파일럿 구성 간의 백분율 분할은 예시일 뿐이며 숫자는 필요에 따라 자유롭게 조정될 수 있다.
도 5a 내지 도 5d는 트래픽 제어기(201)의 동작을 조정하기 위해 관리자로부터 코드리스 명령을 수신하기 위한 예시적인 UI이다. 일부 실시예에서, 예시적인 UI는 트래픽 구성기(202)에서 구현될 수 있고 외부 프론트 엔드 시스템(103)을 통해 관리자에게 보여질 수 있다. 도 5a-5d에 도시된 다양한 UI 요소, 숫자, 배열 및 레이아웃은 단지 예로서 제공되며, 본 명세서에 설명된 특징 및 기능을 넘어서는 어떠한 제한 효과도 의도되지 않는다.
도 5a는 상이한 파일럿 구성을 관리하기 위한 예시적인 컨테이너 관리자 UI(500A)이다. 컨테이너 관리자 UI(500A)는 관리자가 임의의 특정 컨테이너의 현재 상태를 보고 변경하는 것을 허용할 수 있다. 예를 들어, 컨테이너 관리자 UI(500A)는 컨테이너의 제목, 컨테이너를 생성한 특정 팀 또는 관리자, 생성 또는 수정 날짜와 같은 관리 정보(501)를 제공할 수 있다.
컨테이너 관리자 UI(500A)는 또한 컨테이너에 할당된 하나 이상의 버킷(예를 들어, 버킷 X(502) 및 버킷 Y(503))에 대한 개요와 버킷 편집 버튼(504) 또는 실험 편집 버튼(505)을 사용하여 각 버킷을 변경할 수 있는 옵션을 제공할 수 있다. 예를 들어, 도 5a에 도시된 현재 컨테이너는 도 4에서 트래픽 컨테이너 A(400A)에 대응될 수 있고, 버킷 X(502)는 도 4에서 버킷 A1(410A)에 대응될 수 있다.
또한, 컨테이너 관리자 UI(500A)는 컨테이너에 할당된 유입 트래픽의 세부 내역을 보여주는 요약 그래프(506)를 제공할 수 있다. 일부 실시예에서, 세부 내역은 컨테이너에 할당된 유입 트래픽의 부분에 대한 각 버킷에 할당된 유입 트래픽의 백분율(예를 들면, 버킷 X의 경우 50%) 또는 트래픽 제어기(201)에 의해 수신된 전체 유입 트래픽에 대한 백분율(예를 들면, 컨테이너에 전체 유입 트래픽의 10%가 할당된 경우, 버킷 X의 경우 5%)로 표시될 수 있다. 컨테이너 관리자 UI(500A)는 또한 관리자가 버킷 추가 버튼(507)을 사용하여 추가적인 버킷을 추가하도록 허용할 수 있다.
개별 버킷(예를 들어, 버킷 X(502) 및 버킷 Y(503))의 개요로 돌아가면, 컨테이너 관리자 UI(500A)는 버킷에 할당된, 실험 번호(508)(예를 들어, 실험 15040 531)에 의해 식별되는, 하나 이상의 실험에 대한 정보를 표시할 수 있다. 예를 들어, 실험 15040은 도 4의 실험 A1-2(412A)에 대응할 수 있다.
컨테이너 관리자 UI(500A)는 또한 하나 이상의 미리 구성된 파라미터(509), 하나 이상의 태그(510), 및 버킷 내의 각 실험에 대한 트래픽 분포 다이어그램(511)은 물론 수정 버튼(512)을 사용하여 실험을 복제하거나 제거하는 기능을 표시할 수 있다.
미리 구성된 파라미터(509)는 특정 실험과 호환되는 액세스 클라이언트(210)의 운영 체제 또는 디바이스 유형을 나타낼 수 있다. 예를 들어, 실험 15040은 애플 및 컴퓨터의 아이콘을 표시하며, 실험 15040이 애플에 의해 개발된 운영 체제를 사용하는 액세스 클라이언트(210)에만 할당됨을 나타낸다. 다른 예로서, 실험 15046은 모바일 디바이스의 아이콘을 표시하며, 실험 15046이 모바일 디바이스인 액세스 클라이언트(210)에만 할당됨을 나타낸다.
태그(510)는 해당 실험에 대한 특정 정보를 전달할 수 있다. 예를 들어, 태그(510)는 다음을 포함할 수 있다:
● 템플릿 트래픽 분포(예를 들면, "VO 10/20/30/40"는 실험 15040에 할당된 액세스 요청(211)이 4개의 상이한 파일럿 구성 간에 10:20:30:40으로 분할됨을 나타냄);
● 실험 유형(예를 들면, "A/B 테스트" 또는 "트래픽 제어기");
● 실험 상태(예를 들면, "승인 대기", "생성", "완료", "시작"); 그리고
● 실험 카테고리(예를 들면, '뷰티', '장바구니', '속성').
실험에 대한 다른 태그 또는 정보는 도 5a에 도시된 것에 추가로 또는 대신에 표시될 수 있다.
트래픽 분포 다이어그램(511)은 버킷에 할당된 유입 트래픽의 부분에 실험의 상이한 파일럿 구성이 할당되는 방법을 보여줄 수 있다. 예를 들어, 버킷 Y에 할당된 유입 트래픽 부분의 20% 중, 10%는 파일럿 구성 A에 할당되고, 20%는 파일럿 구성 B에 할당되는 식이다.
일부 실시예에서, 컨테이너 브라우저 UI(500B)는 관리자가 버킷 추가 버튼(507) 또는 버킷 편집 버튼(504)을 각각 사용하여 버킷을 추가하거나 편집할 수 있는 기능을 제공할 수 있다. 이러한 버튼을 클릭하면 버킷을 추가하거나 편집하기 위한 다른 UI가 관리자에게 제시될 수 있다(예를 들면, 제목 지정, 유입 트래픽의 비율 할당 또는 액세스 요청(211)에 대한 트래픽 할당 재설정). 관리자로부터의 입력은 임의의 컴퓨터 프로그래밍 코드의 입력 또는 그에 대한 지식을 포함하지 않는 UI 요소의 조작 또는 텍스트 입력(자연어 또는 의사코드)을 포함할 수 있다. 대신에, 트래픽 구성기(202)는 이러한 코드리스 명령을 트래픽 제어기(201)의 동작을 지시할 수 있는 컴퓨터 판독 가능한 명령으로 변환하도록 구성될 수 있다.
도 5b는 가용 컨테이너(예를 들어, CT228 및 CT229)의 목록을 통해 브라우징 하기 위한 예시적인 컨테이너 브라우저 UI(500B)이다. 컨테이너 브라우저 UI(500B)는 필터 창(521) 및 목록 창(522)을 포함할 수 있다. 필터 창(521)은, 컨테이너를 생성한 팀, 컨테이너의 이름, 컨테이너 ID, 생성 날짜 등과 같이, 목록 창(522)에 표시된 컨테이너의 목록을 좁힐 수 있는 하나 이상의 필터를 포함할 수 있다.
목록 창(522)은 필터 창(521)에 지정된 필터를 충족하는 하나 이상의 컨테이너를 표시할 수 있다. 각 컨테이너에 대해 표시되는 정보는, 예를 들어, 컨테이너 ID(예를 들면, 컨테이너 CT228), 컨테이너 이름(예를 들면, "검색 컨테이너”), 작성자 팀(예를 들면, "서치 및 디스커버리 프론트엔드" 팀), 생성 날짜, 할당 가능한 트래픽의 양, 컨테이너에 할당된 실험 목록(523)을 포함할 수 있다. 일부 실시예에서, 실험(523) 목록의 각 실험은 각 실험이 속하는 컨테이너 내의 버킷을 나타내는 버킷 아이콘(524)으로 라벨링 될 수 있다. 예를 들어, 실험 14987은 컨테이너 CT228의 한 버킷에 속할 수 있고 실험 14984, 14989 및 14985는 컨테이너 CT228의 다른 버킷에 속할 수 있다.
도 5c는 컨테이너를 편집하기 위한 예시적인 컨테이너 편집기 UI(500C)이다. 일부 실시예에서, 컨테이너 편집기 UI(500C)는 컨테이너 관리자 UI(500A) 및 컨테이너 브라우저(500B)에 표시될 수 있는, 컨테이너 이름, 팀 이름 및 설명과 같은, 관리 정보에 대한 정보 창(541)을 표시하도록 구성될 수 있다. 컨테이너 편집기 UI(500C)는 또한 트래픽 할당 창(542)을 통해 새로운 버킷(543)을 생성하기 위한 코드리스 명령을 수신하도록 구성될 수 있다. 일부 실시예에서, 트래픽 할당 창(542)은 버킷 추가 버튼(507)을 누를 때마다 추가적인 버킷(예를 들면, 새로운 버킷(543))을 생성할 수 있다. 코드리스 명령은 현재 컨테이너에 할당된 유입 트래픽의 몇 퍼센트가 각 버킷에 할당되어야 하는지(예를 들어, 새로운 버킷(543)의 경우 20%)에 대한 명령을 포함할 수 있다. 현재 컨테이너의 버킷에 할당된 모든 트래픽의 합계는 100%를 초과할 수 없다.
일부 실시예에서, 각 버킷에 대한 트래픽 할당은 이전에 하나의 버킷에 할당된(따라서 그 안의 파일럿 구성에 노출된) 액세스 요청(211)이 해제되어 다른 버킷에 할당(따라서 다른 파일럿 구성에 노출됨)되지 않도록 하기 위해서만 증가되거나 재설정될 수 있다. 예를 들어, 도 4의 버킷 A1(410A)에 대한 트래픽 할당을 50%에서 25%로 감소시키면 이전에 할당된 액세스 요청(211)(예를 들어, 버킷 A1(410A)에 할당된 하나의 액세스 요청)의 절반이 해제되게 할 수 있다. 해제된 액세스 요청(211)은, 버킷 A2(420A)와 같은, 다른 버킷에 재할당되거나 향후 할당을 위해 할당되지 않은 상태로 남겨질 수 있다. 이는 실험 간에 오염을 유발할 수 있으며 각 버킷을 상호 배타적으로 유지하려는 목적을 달성할 수 없다.
대안적으로, 트래픽 리셋 버튼(544)을 눌러 트래픽 할당을 리셋할 수 있다. 트래픽을 리셋하면 이전에 버킷에 할당된 모든 액세스 요청(211)(따라서 그것들의 대응하는 액세스 클라이언트(210))의 연결이 해제되어, 연결 해제된 액세스 요청(211)이 다른 버킷이나 실험에 할당될 수 있고 새로운 액세스 요청(211)이 리셋된 버킷에 할당될 수 있다. 위에서 설명한 트래픽 할당 감소와 대조적으로, 요청의 서브세트만 다른 버킷에 할당되고 나머지 요청은 이전에 할당된 버킷에 남아있는 것과는 대조적으로, 트래픽을 리셋하는 것은 이전에 할당된 액세스 요청(211)이 모두 연결 해제되고 다시 무작위로 할당되기 때문에 실험을 오염시키지 않는다. 일부 실시예에서, 실험이 의도하지 않게 중단되는 것을 방지하기 위해 실험이 없거나 보관된(즉, 비활성) 실험만 있는 버킷만이 리셋될 수 있다.
도 5d는 버킷을 편집하기 위한 예시적인 버킷 편집기 UI(500D)이다. 버킷 편집기 UI(500D)는 관리자가 실험 선택 목록(561)을 이용하여 버킷에서 실험을 추가하거나 제거하도록 허용할 수 있다. 버킷 편집기 UI(500D)는 수동 텍스트 입력을 통해 또는 드롭다운 버튼(562)을 누르고 목록에서 실험을 선택함으로써 실험 ID 번호를 사용자 입력으로 수신할 수 있다. 일부 실시예에서, 부모 실험이 아닌; 동기화된 테스트가 아닌; 승인 대기 중, 생성 또는 완료된; 그리고 현재 관리자 또는 해당 팀에 속한 실험만이 버킷에 추가될 수 있다. 또한, 버킷 편집기 UI(500D)는 실험 선택 목록(561)에 추가된 실험 중 임의의 것이 현재 다른 버킷에 할당되었는지, 그리고 버킷의 생성 시 현재 버킷으로 전송될 것임을 나타내는 경고 메시지(563)를 표시할 수 있다.
본 개시는 그 특정 실시예를 참조하여 도시되고 설명되었지만, 본 개시는 다른 환경에서, 변경없이, 실시될 수 있음을 이해할 것이다. 전술한 설명은 예시의 목적으로 제시되었다. 그것은 개시된 정확한 형태나 실시예에 대해 총망라된 것이 아니며 이것으로 한정되는 것은 아니다. 개시된 실시예의 설명 및 실시를 고려하는 것으로부터 변경 및 조정이 통상의 기술자에게 명백할 것이다. 추가적으로, 비록 개시된 실시예의 형태가 메모리에 저장되는 것으로서 설명되었지만, 통상의 기술자는 이들 형태가 2차 저장 디바이스, 예를 들면, 하드디스크나 CD ROM, 또는 다른 형태의 RAM이나 ROM, USB 매체, DVD, 블루레이, 또는 다른 광 드라이브 매체와 같이, 다른 형태의 컴퓨터 판독 가능한 매체에 저장될 수도 있는 것을 이해할 것이다.
상술한 설명 및 개시된 방법에 기초한 컴퓨터 프로그램은 숙련된 개발자의 기술 내에 있다. 여러 프로그램 혹은 프로그램 모듈은 통상의 기술자에게 알려진 어느 기술을 이용하여 생성되거나, 또는 기존의 소프트웨어와 연결하여 설계될 수 있다. 예를 들면, 프로그램 섹션 혹은 프로그램 모듈은 닷넷 프레임워크, 닷넷 컴팩트 프레임워크(및 비주얼 베이식, C 등과 같은, 관련 언어), 자바, C++, 오브젝티브 C, HTML, HTML/AJAX 조합, XML, 또는 자바 애플릿이 포함된 HTML 내에서 혹은 그것들에 의해서 설계될 수 있다.
게다가, 여기에서는 예시적인 실시예가 설명되었지만, 본 개시에 기초하여 통상의 기술자가 이해할 수 있는 바와 같이, 일부 또는 모든 실시예의 범위는 동등한 요소, 변경, 생략, 조합(예로써, 여러 실시예에 걸치는 형태의 조합), 조정 및/또는 수정을 가질 수 있다. 청구범위 내의 제한 사항은 그 청구범위 내에 적용된 언어에 기초하여 폭넓게 이해되도록 하는 것이며, 응용의 수행 동안 혹은 본 명세서 내에 설명된 예시로 한정되는 것은 아니다. 그 예시는 비배타적으로 해석되도록 하기 위한 것이다. 추가로, 개시된 방법의 스텝은 어떤 다른 방법으로 변경되거나, 스텝을 재배열 및/또는 스텝을 삽입하거나 삭제하는 것을 포함할 수 있다. 그러므로, 설명 및 예시는 오직 예시적으로 고려되는 것이며, 진정한 범위 및 기술 사상은 다음의 청구범위 및 그 동등한 전체 범위에 의해 나타내지는 것으로 의도된다.

Claims (20)

  1. 복수의 구성(configuration)을 포함하는 웹 페이지를 배치하고 - 상기 복수의 구성은 상이한 동작을 나타냄 -;
    사용자 입력에 기초하여 제1 버킷 및 제2 버킷을 포함하는 트래픽 컨테이너를 구성하고;
    상기 사용자 입력에 기초하여 상기 트래픽 컨테이너에 하나 이상의 실험을 할당하고 - 상기 하나 이상의 실험은 상기 제1 버킷 및 상기 제2 버킷에 대한 적절한 구성을 결정함 -;
    상기 웹 페이지에 액세스하기 위한 유입 트래픽을 수락하고;
    상기 유입 트래픽의 제1 서브세트를 상기 제1 버킷에 무작위로 할당하고 상기 유입 트래픽의 제2 서브세트를 상기 제2 버킷에 무작위로 할당하고;
    상기 무작위 할당에 기초하여 적절한 구성으로 상기 웹 페이지를 전송하고; 그리고
    상기 적절한 구성의 상대적 성능을 나타내는 하나 이상의 측정치를 획득하는 것을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  2. 청구항 1에 있어서, 상기 상이한 동작은 상이한 레이아웃을 제시하는 것, 상이한 알고리즘을 이용하는 것, 및 상이한 콘텐츠를 표시하는 것 중 임의의 하나 또는 조합을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  3. 청구항 1에 있어서, 상기 복수의 구성 각각은 독립적인 동작의 상이한 조합을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  4. 청구항 3에 있어서, 상기 독립적인 동작은 페이지 레이아웃, 검색 알고리즘 및 광고 제안 중 적어도 하나를 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  5. 청구항 1에 있어서, 상기 제1 서브세트 및 상기 제2 서브세트는 상호 배타적인, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  6. 청구항 1에 있어서, 상기 유입 트래픽의 상기 제1 서브세트와 상기 유입 트래픽의 상기 제2 서브세트의 합은 상기 유입 트래픽보다 작은, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  7. 청구항 1에 있어서, 상기 사용자 입력은 상기 트래픽 컨테이너의 적어도 하나의 코드리스 조작을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  8. 청구항 1에 있어서,
    상기 트래픽 컨테이너에 제3 버킷을 추가하고 - 상기 하나 이상의 실험이 상기 제3 버킷에 대한 상기 적절한 구성을 결정함 -;
    상기 유입 트래픽의 제3 서브세트를 상기 제3 버킷에 무작위로 할당하는 것을 더 포함하고,
    상기 제1 서브세트, 상기 제2 서브세트, 및 상기 제3 서브세트는 상기 유입 트래픽의 상이한 비율을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  9. 청구항 1에 있어서, 상기 하나 이상의 실험은 부모-자식 관계를 갖거나 동기화되는 적어도 2개의 실험을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  10. 청구항 1에 있어서, 제1 외부 사용자 디바이스와 연관된 제1 유입 트래픽이 상기 제1 구성에 무작위로 할당된 경우, 상기 제1 외부 사용자 디바이스와 연관된 후속 유입 트래픽이 상기 제1 구성에 할당되는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 방법.
  11. 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템으로서,
    상기 시스템은:
    명령을 저장하도록 구성된 적어도 하나의 비일시적 컴퓨터-판독 가능한 매체; 및
    동작을 수행하기 위한 상기 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 동작은
    복수의 구성을 포함하는 웹 페이지를 배치하고 - 상기 복수의 구성은 상이한 동작을 나타냄 -;
    사용자 입력에 기초하여 제1 버킷 및 제2 버킷을 포함하는 트래픽 컨테이너를 구성하고;
    상기 사용자 입력에 기초하여 상기 트래픽 컨테이너에 하나 이상의 실험을 할당하고 - 상기 하나 이상의 실험은 상기 제1 버킷 및 상기 제2 버킷에 대한 적절한 구성을 결정함 -;
    상기 웹 페이지에 액세스하기 위한 유입 트래픽을 수락하고;
    상기 유입 트래픽의 제1 서브세트를 상기 제1 버킷에 무작위로 할당하고 상기 유입 트래픽의 제2 서브세트를 상기 제2 버킷에 무작위로 할당하고;
    상기 무작위 할당에 기초하여 적절한 구성으로 상기 웹 페이지를 전송하고; 그리고
    상기 적절한 구성의 상대적 성능을 나타내는 하나 이상의 측정치를 획득하는 것을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  12. 청구항 11에 있어서, 상기 상이한 동작은 상이한 레이아웃을 제시하는 것, 상이한 알고리즘을 이용하는 것, 및 상이한 콘텐츠를 표시하는 것 중 임의의 하나 또는 조합을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  13. 청구항 11에 있어서, 상기 복수의 구성 각각은 독립적인 동작의 상이한 조합을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  14. 청구항 11에 있어서, 상기 제1 서브세트 및 상기 제2 서브세트는 상호 배타적인, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  15. 청구항 11에 있어서, 상기 유입 트래픽의 상기 제1 서브세트와 상기 유입 트래픽의 상기 제2 서브세트의 합은 상기 유입 트래픽보다 작은, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  16. 청구항 11에 있어서, 상기 사용자 입력은 상기 트래픽 컨테이너의 적어도 하나의 코드리스 조작을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  17. 청구항 11에 있어서,
    상기 트래픽 컨테이너에 제3 버킷을 추가하고 - 상기 하나 이상의 실험이 상기 제3 버킷에 대한 적절한 구성을 결정함 -;
    상기 유입 트래픽의 제3 서브세트를 상기 제3 버킷에 무작위로 할당하는 것을 더 포함하고,
    상기 제1 서브세트, 상기 제2 서브세트, 및 상기 제3 서브세트는 상기 유입 트래픽의 상이한 비율을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  18. 청구항 11에 있어서, 상기 하나 이상의 실험은 부모-자식 관계를 갖거나 동기화되는 적어도 2개의 실험을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  19. 청구항 11에 있어서, 제1 외부 사용자 디바이스와 연관된 제1 유입 트래픽이 상기 제1 구성에 무작위로 할당된 경우, 상기 제1 외부 사용자 디바이스와 연관된 후속 유입 트래픽이 상기 제1 구성에 할당되는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
  20. 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템으로서,
    상기 시스템은:
    명령을 저장하도록 구성된 적어도 하나의 비일시적 컴퓨터-판독 가능한 매체; 및
    동작을 수행하기 위한 상기 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 동작은
    복수의 구성을 포함하는 웹 페이지를 배치하고 - 상기 복수의 구성은 상이한 동작을 나타냄 -;
    상기 웹 페이지에 액세스하기 위한 유입 트래픽을 수락하고;
    제1 구성으로 상기 유입 트래픽의 제1 서브세트를,
    제2 구성으로 상기 유입 트래픽의 제2 서브세트를,
    제3 구성으로 상기 유입 트래픽의 제3 서브세트를, 그리고
    제4 구성으로 상기 유입 트래픽의 제4 서브세트를,
    무작위로 할당하고;
    상기 무작위 할당에 기초하여 상기 복수의 구성 중 하나로 상기 웹 페이지를 전송하고 - 상기 제1 서브세트는 상기 제2 서브세트와 상호 배타적이지만 상기 제3 서브세트와는 상호 배타적이지 않음 -; 그리고
    상기 복수의 구성의 상대적인 성능을 나타내는 하나 이상의 측정치를 획득하는 것을 포함하는, 실험 구성의 선택적 배치를 위한 컴퓨터-구현 시스템.
KR1020220124705A 2022-08-09 2022-09-29 상호 배타적인 그룹에 실험 구성을 선택적으로 배치하기 위한 시스템 및 방법 KR20240021077A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/883,922 US11909655B1 (en) 2022-08-09 2022-08-09 Systems and methods for selective deployment of experimental configurations to mutually exclusive groups
US17/883,922 2022-08-09

Publications (1)

Publication Number Publication Date
KR20240021077A true KR20240021077A (ko) 2024-02-16

Family

ID=89845686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220124705A KR20240021077A (ko) 2022-08-09 2022-09-29 상호 배타적인 그룹에 실험 구성을 선택적으로 배치하기 위한 시스템 및 방법

Country Status (3)

Country Link
US (1) US11909655B1 (ko)
KR (1) KR20240021077A (ko)
WO (1) WO2024033715A1 (ko)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375297B2 (en) * 2010-08-18 2013-02-12 Accenture Global Services Limited Orthogonal transformation of web pages
US20130030868A1 (en) * 2011-07-25 2013-01-31 Cbs Interactive, Inc. Scheduled Split Testing
CN103324566B (zh) 2012-03-20 2016-04-06 阿里巴巴集团控股有限公司 一种网页产品多版本测试方法及装置
ES2725553T3 (es) * 2012-04-05 2019-09-24 Coremedia Ag Método y sistema de administración de contenido web para pruebas A/B o pruebas multivariable de sitios web en ordenadores conectados a un sistema de administración de contenido web
US9319297B2 (en) * 2013-03-13 2016-04-19 Netflix, Inc. Long term metrics applied to multivariate testing
US10482477B2 (en) * 2013-03-15 2019-11-19 Netflix, Inc. Stratified sampling applied to A/B tests
CN104281611B (zh) 2013-07-08 2018-04-03 阿里巴巴集团控股有限公司 网站测试系统中的用户流量分配方法及装置
US9881318B1 (en) * 2013-09-16 2018-01-30 Amazon Technologies, Inc. Attributing web-based user actions to multivariate test parameters associated with publisher content
WO2015103122A2 (en) * 2013-12-31 2015-07-09 Clicktale Ltd. A method and system for tracking and gathering multivariate testing data
US10630789B2 (en) * 2016-07-13 2020-04-21 Adobe Inc. Facilitating consistent A/B testing assignment
US11226931B2 (en) 2017-08-15 2022-01-18 Verizon Media Inc. Method and system for providing pre-approved A/A data buckets
US11366869B2 (en) * 2018-12-07 2022-06-21 Walmart Apollo, Llc Cache optimization for web sites running A/B test
US11532013B2 (en) 2019-06-17 2022-12-20 Optimizely, Inc. Optimized simultaneous use of content experimentation and content caching
US11586847B1 (en) * 2019-11-26 2023-02-21 Amazon Technologies, Inc. Experiment management service
US11615017B2 (en) * 2021-01-30 2023-03-28 Bby Solutions, Inc. Discovery and aggregation of multivariate test experiments

Also Published As

Publication number Publication date
US11909655B1 (en) 2024-02-20
WO2024033715A1 (en) 2024-02-15
US20240056396A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
KR102373372B1 (ko) 적응형 배달 스케줄링용 그래픽 유저 인터페이스를 생성하기 위한 시스템 및 방법
KR102410341B1 (ko) 중앙 집중식 물류 모니터링을 위한 컴퓨터 구현 시스템 및 방법
JP2021513133A (ja) アプリケーションプログラミングインターフェース情報を管理するためのシステムおよび方法
KR102427453B1 (ko) 개선된 모바일 작업자 추적을 위한 컴퓨터화된 시스템 및 방법
KR20220051131A (ko) 다중 도메인 네트워크에서 중앙 집중식 상태 모니터링
KR20210024944A (ko) 패키지 재배달 촉진을 위한 컴퓨터 시스템 및 방법
KR20200126874A (ko) 배치 프레임워크를 사용하여 재입고 알림을 제공하기 위한 시스템 및 방법
KR20210035012A (ko) 아웃바운드 예측을 위한 시스템 및 방법
KR20220061061A (ko) 풀필먼트 센터 우선순위 값에 기초한 아웃바운드 예측을 위한 시스템 및 방법
KR20210020716A (ko) 패키지 배달 촉진을 위한 컴퓨터 시스템 및 방법
KR102422808B1 (ko) 반환 사기 감지 및 예방을 위한 시스템 및 방법
KR102359352B1 (ko) 실험 플랫폼 엔진
US11909655B1 (en) Systems and methods for selective deployment of experimental configurations to mutually exclusive groups
KR102335147B1 (ko) 크라우드 소싱된 지식 데이터베이스를 이용한 데이터의 수집, 관리, 및 분배를 위한 시스템 및 방법
KR20220029289A (ko) 제품 등록을 위한 메타 데이터 처리 시스템 및 방법
TW202423092A (zh) 用於選擇性部署實驗組態的電腦實行系統以及電腦實行方法
KR102461813B1 (ko) 프로그램 인터페이스 원격 관리 및 프로비저닝
KR102360917B1 (ko) 온라인 환경에서 제한된 자원의 관리를 통해 예산 활용을 최대화하기 위한 시스템 및 방법
KR20220071958A (ko) 사용자 인터페이스에서 서비스 데이터 표시를 사전 활성화하기 위한 시스템 및 방법