KR101408323B1 - 로컬 쇼핑 및 재고 - Google Patents

로컬 쇼핑 및 재고 Download PDF

Info

Publication number
KR101408323B1
KR101408323B1 KR1020137003590A KR20137003590A KR101408323B1 KR 101408323 B1 KR101408323 B1 KR 101408323B1 KR 1020137003590 A KR1020137003590 A KR 1020137003590A KR 20137003590 A KR20137003590 A KR 20137003590A KR 101408323 B1 KR101408323 B1 KR 101408323B1
Authority
KR
South Korea
Prior art keywords
product
computer
data
time
field
Prior art date
Application number
KR1020137003590A
Other languages
English (en)
Other versions
KR20130114641A (ko
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
Priority claimed from US12/859,022 external-priority patent/US20120016856A1/en
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20130114641A publication Critical patent/KR20130114641A/ko
Application granted granted Critical
Publication of KR101408323B1 publication Critical patent/KR101408323B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Abstract

제품 재고를 추정하는 것은 제품에 대한 판매 이벤트 속도와 제품에 대한 이전 제품 가용성 추정 이래로 경과된 시간의 길이를 결정하는 것을 포함한다. 그 후, 제품에 대한 새로운 제품 가용성 추정치가 제품에 대한 판매 이벤트 속도를 기초로 결정된다. 제품에 대한 판매 이벤트 속도는 상인으로부터의 제품 데이터 피드 또는 그 밖의 다른 판매 데이터를 기초로 결정될 수 있다.

Description

로컬 쇼핑 및 재고{LOCAL SHOPPING AND INVENTORY}
본원은 일반적으로 제품 판매 및 제품을 판매하는 사업체와 관련된 데이터를 수집하는 것, 그리고 수집된 데이터를 기초로 재고 추정을 제공하는 것과 관련된다.
컴퓨터 네트워크, 가령, 인터넷은 매우 다양한 정보의 송신과 수신을 가능하게 한다. 예를 들어, 최근, 일부 상업 소매 상점이 제품 재고 정보 및 제품 판매와 관련된 그 밖의 다른 데이터가 인터넷을 통해 고객에 의해 이용 가능해지도록 시도한 바 있다. 그러나 이러한 정보의 대부분은 레거시 시스템(legacy system)에 저장되며, 상기 레거시 시스템으로부터 정보를 얻는 것은 시간 소모적이며 비싸다. 결과적으로 개인 소매상에 의해 제공되는 온라인 정보 중 많은 것이 부정확하다. 마찬가지로, 많은 제3자 사업체가 (가령, 제품 정보 등을 노출하는 웹사이트 또는 그 밖의 다른 시스템을 스크랩함으로써) 복수의 소매상들 간의 로컬 제품 정보를 조직하고, 인터넷을 통해 상기 정보를 제공하려 시도한 바 있다. 이러한 시도도 역시, 마찬가지로, 제품, 소매상, 및 위치를 잘 지원하면서 신뢰할만한 데이터를 액세스하는 어려움 때문에, 성공하지 못했다. 덧붙여, 재고 데이터가 획득되는 경우, 종종 상기 데이터는 제3자에게 도달할 때쯤에 낡은 것이며, 따라서 재고 데이터는 정확하지 않을 수 있다.
따라서 해당 분야에서, 고객에게 복수의 제품, 소매상, 및 위치를 지원하는 정확한 로컬 제품 정보를 제공하는 시스템이 요구된다.
제품 재고를 추정하는 것은 제품에 대한 판매 이벤트 속도(rate of sales event)와 제품에 대한 이전 제품 가용성 추정 이래로 경과된 시간 길이를 결정하는 것을 포함한다. 그 후, 제품에 대한 새로운 제품 가용성 추정치는 제품에 대한 판매 이벤트 속도를 기초로 결정된다. 제품에 대한 판매 이벤트 속도는 상인으로부터의 제품 데이터 피드 또는 그 밖의 다른 판매 데이터를 기초로 결정될 수 있다.
하나의 양태에 따르면, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법은 POS(point of sale, 판매시점관리) 데이터를 수신하는 것을 포함한다. POS 데이터는 판매된 제품, 제품이 판매된 상점, 및 제품이 판매된 시점에 대응하는 타임스탬프를 식별한다. 제품과 상점에 대응하는 데이터 객체가 검색된다. 데이터 객체는 제품에 대한 판매 이벤트들 간의 평균 시간을 가리키는 속도 필드(<t>), 제품 가용성 지시자가 "제한됨(limited)"으로 전환되어야 할 시점을 가리키는 제한 시점 필드, 제품 가용성 지시자가 "재고 없음"으로 전화되어야 할 시점을 가리키는 재고 없음 시점 필드, 및 제품의 마지막 판매 시점에 대응하는 타임스탬프 필드(T마지막_판매)를 포함한다. 제 1 타임스탬프, 속도 필드, 타임스탬프 필드, 및 제 1 확률 임계치(p1)를 적어도 기초로 하여 새로운 제한 시점이 결정된다. 새로운 재고 없음 시점은 제 1 타임스탬프, 속도 필드, 타임스탬프 필드, 및 제 2 확률 임계치(p2)를 적어도 기초로 하여 결정된다. 제한 시점 필드가 새로운 제한 시점으로 대체된다. 재고 없음 시점 필드가 새로운 재고 없음 시점으로 대체된다. 데이터 객체가 저장된다. 제품 가용성 지시자가 데이터 객체에 저장된 데이터를 적어도 기초로 하여 제공된다.
도 1은 특정 예시적 실시예에 따르는 POS 데이터를 수집하기 위한 시스템을 도시한다.
도 2는 특정 예시적 실시예에 따르는 POS 데이터를 수집하기 위한 시스템을 도시한다.
도 3은 특정 예시적 실시예에 따르는 POS 데이터 수집기의 블록도를 도시한다.
도 4는 특정 예시적 실시예에 따르는 POS 데이터를 수집하기 위한 방법을 도시하는 블록 흐름도이다.
도 5는 특정 예시적 실시예에 따라, 데이터를 추출하기 위한 시스템을 도시한다.
도 6은 특정 예시적 실시예에 따라 데이터를 추출하기 위한 시스템을 도시한다.
도 7은 특정 예시적 실시예에 따라 데이터를 추출하기 위한 시스템을 도시한다.
도 8은 특정 예시적 실시예에 따라, 데이터를 추출하기 위한 방법을 도시하는 블록 흐름도이다.
도 9는 특정 예시적 실시예에 따르는 제품 가용성을 추정하기 위한 시스템을 도시한다.
도 10은 특정 예시적 실시예에 따르는 제품 가용성을 추정하기 위한 방법을 도시하는 블록 흐름도이다.
도 11은 특정 예시적 실시예에 따르는 제품 가용성을 추정하기 위한 방법을 도시하는 블록 흐름도이다.
도 12는 특정 예시적 실시예에 따르는 제품 가용성을 추정하기 위한 방법을 도시하는 블록 흐름도이다.
도 13은 특정 예시적 실시예에 따르는 데이터 객체의 블록도이다.
본원에 기재되는 방법 및 시스템은 제품 가용성(product availability)의 정확한 추정과, 세계의 로컬 POS(point of sale, 판매시점관리) 데이터 및 제품 판매 및 제품을 판매하는 사업체와 관련된 그 밖의 다른 정보의 수집을 가능하게 한다.
특정 예시적 실시예에 따르면, POS 데이터 수집 시스템은 하드웨어 장치 및/또는 소프트웨어로 구현되는 POS 데이터 수집기를 포함할 수 있다. 어댑터(adapter)가 소매 상점의 판매시점관리기에 설치될 수 있는데, 예를 들어, 바코드 스캐너와 POS 애플리케이션이 실행되는 POS 단말기(가령, 금전 등록기) 사이에 설치될 수 있다. 제품이 판매시점관리기에서 스캔될 때, 바코드가 바코드 스캐너에서 POS 애플리케이션으로 전송될 때 어댑터가 바코드를 가로챌(intercept) 수 있다. 바코드를 가로챈 후, 어댑터는 표준 사업 프로세스를 방해하지 않기 위해, 알아차릴 만한 딜레이 없이, 바코드를 POS 애플리케이션으로 전송할 수 있다. 덧붙이자면, 어댑터는 네트워크 연결을 통해 바코드를 원격 서버로 전송할 수 있다. 이러한 방식으로, 원격 서버는 상당한 개수의 제품, 소매상, 및 위치를 지원하는 POS 데이터를 수집할 수 있다.
이와 동일한, 또는 추가적인 실시예에서, 데이터 수집 시스템은 소프트웨어로 구현되는 콘텐츠 추출기를 포함할 수 있다. 상기 콘텐츠 추출기는 상업 소매상의 로컬 컴퓨터 시스템에 설치될 수 있고, 제품 판매 및/또는 상업 소매상 자체와 관련된 정보를 추출하도록 사용될 수 있다. 예를 들어, 많은 상업 소매상이 제품 재고 정보, 판매시점관리 데이터, 상점 목록(가령, 둘 이상의 위치를 갖는 사업체), 제품 목록(예를 들어, 판매되는 모든 제품), 가격-수량 데이터(가령, 상점별, 제품 가격별), 상점 지도, 판매권유장(circular), 쿠폰 등을 저장하는 로컬 컴퓨터 시스템을 가진다. 이러한 데이터 및 제품 판매 및 제품을 판매하는 사업체와 관련된 그 밖의 다른 데이터가 상업 소매상의 로컬 컴퓨터 시스템에 저장될 수 있다.
이 데이터는 상용화된 데이터베이스 포맷(가령, MySQL, 오라클(Oracle), MS SQL 서버(MS SQL Server) 등)으로 저장되거나, 그 밖의 다른 공지된 방법(가령, 제품 재고/판매 소프트웨어, 단층 파일(flat file), 스프레드시트 등)에 따라 저장될 수 있다. 특정 예시적 실시예에 따르면, 데이터가 추출되고 네트워크 연결을 통해 원격 컴퓨터로 전송될 수 있도록, 콘텐츠 추출기는 이러한 데이터베이스에 저장된(또는 그 밖의 다른 공지된 포맷의) 정보와 쉽고 직관적으로 인터페이싱하도록 사용될 수 있다. 예를 들어, 콘텐츠 추출기는 기존 데이터베이스 속성을 원격 컴퓨터에 의해 예상되는 속성에 쉽고 직관적으로 매핑(map)하고, 추출된 데이터의 원격 컴퓨터로의 일회성, 주기성, 및/또는 실시간 전송을 쉽고 직관적으로 스케줄링하기 위한 사용자 인터페이스를 제공할 수 있다. 이러한 방식으로, 원격 컴퓨터는 상당한 개수의 제품, 소매상, 및 위치를 지원하는 정보를 수집할 수 있다.
이와 동일한, 또는 추가적인 실시예에서, 제품 가용성 추정 시스템이 상업적 소매상의 컴퓨터 시스템의 일부로서, 또는 제3자 컴퓨터 시스템의 일부로서 구현될 수 있다. 제품 가용성 추정 시스템은 상업적 소매상이 판매를 위해 제안하는 임의의 특정 제품의 가용성을 추정하도록 사용될 수 있다. 이러한 제품 추정은 임의의 개수의 입력, 가령, POS 데이터, 주기적 재고 피드(inventory feed), 바코드 스캔, GPS(global positioning system) 데이터, 영수증 분석(사용자나 회사로부터 수신된 것, 가령, 영수증의 이미지의 광학적 문자 판독(optical character recognition)), 제3자 집계자(aggregator)로부터의 데이터와 같은 그 밖의 다른 "비-상인(non-merchant)" 데이터, 및 그 밖의 다른 적합한 정보를 기초로 할 수 있다. 예시적 실시예에 따르면, 제품 가용성 추정은 특정 제품의 판매 이벤트 속도를 결정하는 것을 기초로 할 수 있다. 또 다른 예시적 실시예에서, 제품 가용성 추정은 특정 제품의 판매 속도를 결정하는 것을 기초로 할 수 있다. 이들 예시적 실시예 모두, 앞서 기재된 입력을 이용할 수 있고, 상기 입력은 실시간으로(예를 들면, 네트워크/통신/시스템 대기시간(latency)을 고려하여 가능한 빨리), 또는 주기적으로(가령, 1시간마다, 8시간마다, 1일마다, 또는 그 밖의 다른 적합한 시간 주기로 스케줄링된 소매상으로부터의 일괄 업데이트(batch update)) 이용 가능할 수 있다. 예시적 실시예에서, 예를 들어, 잠재적 구매자가 제품에 대하여 인터넷 검색을 실시할 때 제품 가용성 추정 시스템은 잠재적 구매자에게 가용성 추정치를 제공할 수 있다.
본 발명의 하나 이상의 양태는 본원에 기재되고 예로 든 기능을 구현하는 컴퓨터 프로그램을 포함할 수 있다. 그러나 본 발명을 컴퓨터 프로그래밍으로 구현하는 여러 다른 방식들이 존재할 수 있고, 본 발명은 컴퓨터 프로그램 명령의 임의의 하나의 세트로 국한되는 것으로 해석되어서는 안 된다. 덧붙여, 숙련된 프로그래머라면 첨부된 흐름도 및 출원문 중 관련 기재를 기초로 하여, 연계된 개시된 발명의 실시예를 구현하기 위한 이러한 컴퓨터 프로그램을 작성할 수 있을 것이다. 따라서 프로그램 코드 명령의 특정 세트에 대한 개시는 본 발명을 만들고 사용하는 방식에 대한 적절한 이해를 위해 반드시 고려될 것은 아니다. 본 발명의 독창적인 기능은 이하의 기재에서 더 구체적으로 설명될 것이며, 프로그램 흐름을 도시하는 도면과 함께 읽힐 것이다.
도면 전체에 걸쳐 유사한 숫자가 유사한 요소를 가리키는 도면과 관련지어, 본 발명의 예시적 실시예가 상세히 기재된다.
도 1은 특정 예시적 실시예에 따라 POS 데이터를 수집하기 위한 시스템(100)을 도시한다. 도 1에 도시된 것처럼, 시스템(100)은 POS 데이터 수집(105), POS 스캐너(110), POS 단말기(115), 및 원격 시스템(150)을 포함할 수 있다. POS 데이터 수집기(105)는 연결(120)을 통해 POS 스캐너(110)로 연결될 수 있고, 연결(125)을 통해 POS 단말기(115)로 연결될 수 있다. POS 데이터 수집기(105)는 임의의 표준적 또는 사설 저장장치 및/또는 통신 프로토콜, 비-제한적 예를 들면, 전역 직렬 버스(USB: universal serial bus), RS-232, 및/또는 이들의 임의의 조합을 이용해, POS 스캐너(110) 및 POS 단말기(115)와 통신할 수 있다. 그리고 도 1의 실시예가 유선 연결(120 및 125)을 도시하지만, 또 다른 특정 예시적 실시예에 따르면, 이들 연결 중 어느 하나 또는 둘 모두가 무선 통신 링크(예를 들어, Wi-Fi, MiFi, 블루투스(Bluetooth) 등)로 대체될 수 있다. 덧붙여, POS 데이터 수집기(105)가 도 1 및 2에서 자립형 하드웨어 장치(standalone hardware device)로 도시되지만, 대안적 예시적 실시예에 따르면, POS 데이터 수집기(105)의 하나 이상이 POS 스캐너(110) 및 POS 단말기(115) 중 하나 또는 둘 모두와 일체 구성될 수 있다.
도 1에 도시된 것처럼, 특정 예시적 실시예에 따라, POS 스캐너(110)는 전통적인 유선 연결형이며 일반적으로 고정형인 바코드 스캐너일 수 있다. 도 2는 POS 스캐너가 POS 무선 바코드 스캐너(212)와 POS 무선 기지국(210)을 포함하는 하나의 대안적 실시예에 따르는 시스템(200)을 도시한다. 이러한 대안적 실시예에서, 도 1의 POS 데이터 수집기(105)가 POS 스캐너(110)와 통신하는 것과 동일한 방식으로 POS 데이터 수집기(105)가 POS 무선 기지국(210)과 통신할 수 있다. 도 1 및 2는 여러 다른 예시적 실시예를 도시하지만, POS 데이터 수집기(105)는 도 1 및 2에 도시된 것과 다를 수 있는 하드웨어를 포함하는 POS 시스템에서도 유사하게 사용될 수 있음을 알아야 한다.
예시적 실시예에 따르면, POS 스캐너(110)는 바코드 스캐너일 수 있고, 임의의 개수의 바코드 포맷, 비-제한적 예를 들면, UPC, EAN, JAN, 등을 판독하도록 구성될 수 있다. 또 다른 예시적 실시예에 따르면, POS 스캐너(110)는 RFID 판독기 또는 POS 시스템에서 제품 식별자 정보를 판독할 수 있는 그 밖의 다른 임의의 장치일 수 있다.
도 1에 추가 도시된 것처럼, POS 데이터 수집기(105)는 네트워크(140)를 통해 원격 시스템(150)과 통신 가능하게 연결될 수 있다. 네트워크(140)는 저장장치 영역 네트워크(SAN: storage area network), 개인 영역 네트워크(PAN: personal area network), 로컬 영역 네트워크(LAN: local area network), 도시권 네트워크(MAN: metropolitan area network), 광역 네트워크(WAN: wide area network), 무선 로컬 영역 네트워크(WLAN: wireless local area network), 가상 사설 네트워크(VPN: virtual private network), 인트라넷, 인터넷, 또는 신호, 데이터, 및/또는 메시지(전체적으로 데이터라고 지칭됨)의 통신을 촉진하는 그 밖의 다른 임의의 적절한 아키텍처 또는 시스템으로서, 또는 이들의 일부로서 구현될 수 있다. POS 데이터 수집기(105)는 연결(135)을 통해 네트워크(140)로 연결될 수 있다. 예시적 실시예에 따르면, 연결(135)은 전용 셀룰러 모뎀 연결일 수 있다. 하나의 대안적 실시예에서, 연결(135)은 유/무선 인터넷 연결(가령, MiFi), 또는 네트워크(140)와 신호를 통신하기에 적합한 그 밖의 다른 임의의 유선 또는 무선 연결을 갖는 핫스팟으로의 유선 이더넷 연결, Wi-Fi 또는 블루투스(Bluetooth) 연결일 수 있다.
도 3은 특정 예시적 실시예에 따르는 POS 데이터 수집기(105)의 블록도를 도시한다. POS 데이터 수집기(105)의 구성요소는, 비-제한적 예를 들어, 프로세서(360), 저장 자원(362), 네트워크 모듈(364), 입/출력(I/O) 모듈(366), 클록 모듈(368), GPS 모듈(370), 및 에러 지시기(error indicator)(130)(에러 지시기(130)는 도 1 및 2에도 도시되어 있음)를 포함할 수 있다. 도시된 프로세서(360)는 POS 데이터 수집기(105)의 그 밖의 다른 구성요소 각각과 통신 가능하게 연결될 수 있다.
프로세서(360)는 프로그램 명령을 해석 및/또는 실행, 및/또는 소프트웨어 모듈(380)과 연계된 데이터를 프로세싱하도록 기능하는 임의의 시스템, 디바이스(device), 또는 장치(apparatus)를 포함할 수 있고, 마이크로제어기, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC: application specific integrated circuit), 또는 프로그램 명령을 해석 및/또는 실행, 및/또는 데이터를 프로세싱하도록 구성된 그 밖의 다른 임의의 디지털 또는 아날로그 회로를 포함할 수 있지만, 이에 제한되지는 않는다. 일부 실시예에서, 프로세서(360)는 프로그램 명령을 해석 및/또는 실행, 및/또는 로컬 저장된 데이터(가령, 저장 자원(362)의 것)를 프로세싱할 수 있다. 이와 동일하거나 대안적인 실시예에서, 프로세서(360)는 프로그램 명령을 해석 및/또는 실행, 및/또는 원격 저장된 데이터(가령, 도 1 및 2의 네트워크(140)의 네트워크 저장 자원(도시되지 않음)의 것)를 프로세싱할 수 있다.
로컬 저장 자원(362)은 컴퓨터-판독형 매체(예를 들어, 하드 디스크 드라이브, 플로피 디스크 드라이브, CD-ROM, 및/또는 그 밖의 다른 유형의 회전식 저장 매체, 플래시 메모리, EEPROM, 및/또는 그 밖의 다른 유형의 고체 상태 저장 매체)를 포함하고, 데이터를 저장하도록 일반적으로 기능할 수 있다.
네트워크 모듈(364)은 정보 POS 데이터 수집기(105)와 네트워크(140)(도 1 및 2) 간의 인터페이스로서 기능하는 임의의 적합한 시스템, 장치, 또는 디바이스일 수 있다. 네트워크 모듈(364)은, 임의의 적합한 전송 프로토콜 및/또는 표준, 비-제한적 예를 들면, 네트워크(140) 및 연결(135)에 대한 설명과 관련하여 앞서 열거된 모든 전송 프로토콜 및/또는 표준을 이용해, 정보 POS 데이터 수집기(105)가 네트워크(140)를 통해 통신하도록 할 수 있다.
I/O 모듈(366)은 정보 POS 데이터 수집기(105)로/로부터/내에서 데이터를 수신 및/또는 송신하도록 일반적으로 기능하는 임의의 시스템, 디바이스, 또는 장치일 수 있다. I/O 모듈(366)은, 예를 들어, 임의의 개수의 통신 인터페이스, 비-제한적 예를 들면, USB 인터페이스 및/또는 RS-232 인터페이스를 포함할 수 있다.
클록 모듈(368)은 내부 클록(internal clock)을 유지관리하도록 일반적으로 기능하는 임의의 시스템, 디바이스, 또는 장치일 수 있다. 특정 예시적 실시예에 따르면, 클록 모듈(368)은 협정세계시(UTC: coordinated universal time)와 동기화될 수 있다. 덧붙여, (가령, 독립적인 배터리 전원을 통한) POS 데이터 수집기(105)로의 전력이 제거될 때, 클록 모듈(368)은 정확한 내부 클록을 유지하도록 구성될 수 있다.
GPS 모듈(370)은 세계 위치파악 위성(global positioning satellite) 신호를 기초로 하여, 또는 그 밖의 다른 유사한 방법을 기초로 하여(가령, 네트워크 모듈(364)에 의해 수신된 위치 정보를 통해), POS 데이터 수집기(105)의 위치를 결정하고 제공하도록 일반적으로 기능하는 임의의 시스템, 디바이스, 또는 장치일 수 있다.
에러 지시기(130)는 POS 데이터 수집기(105) 근방의 사람이 시각적 또는 청각적으로 검출할 수 있는 지시자(indication)를 제공하도록 일반적으로 기능하는 임의의 시스템, 디바이스, 또는 장치일 수 있다. 예를 들어, 특정 예시적 실시예에 따르면, 에러 지시기(130)는 가시적 LED 광일 수 있다. 이와 동일한, 또는 대안적 실시예에서, 에러 지시기는 가청 노이즈를 발생시킬 수 있는 가청 스피커일 수 있다.
도 4는 특정 예시적 실시예에 따라 POS 데이터를 수집하기 위한 방법(400)을 도시하는 블록 흐름도이다. 상기 방법(400)은 도 1-3에 도시된 구성요소를 참조하여 설명된다.
블록(405)에서, POS 데이터 수집기(105)의 소프트웨어 모듈(380)은 구매되는 중인 제품과 연계된 제품 식별자를 획득하기를 기다릴 수 있다. 예를 들어, POS 스캐너(110)는 구매되는 중인 제품의 바코드를 스캔하도록 사용된다. 스캔 후, POS 스캐너(110)는 POS 단말기(115) 상에서 실행되는 POS 애플리케이션에 의해 처리되도록 제품 식별자를 전송한다. POS 데이터 수집기(105)는 POS 스캐너(110)와 POS 단말기(115) 사이에 통신 가능하게 연결되기 때문에, POS 데이터 수집기(105)는, 식별자가 POS 단말기(115)로 전송될 때, 구매되는 제품과 연계된 제품 식별자를 획득할 수 있다.
블록(410)에서, 소프트웨어 모듈(380)은 미수정 버전의 제품 식별자를 POS 단말기(115)로 전송할 수 있다. 특정 예시적 실시예에 따르면, POS 시스템(100)에 POS 데이터 수집기(105)를 추가하는 것이 보통의 사업 흐름을 방해하지 않도록, 이 전송은 알아차릴 만한 딜레이 없이 수행될 수 있다. 다시 말하면, POS 단말기(115)에서 실행되는 POS 애플리케이션은 구매 거래를 진행할 수 있고, POS 시스템(100)에 POS 데이터 수집기(105)를 추가하는 것에 의해 알아차릴 정도로 딜레이되지 않을 것이다.
블록(415)에서, 소프트웨어 모듈(380)은 네트워크 모듈(364)과 네트워크(140)를 통해 원격 시스템(150)과의 연결을 확립할 수 있다. 하나의 예시적 실시예에 따르면, 소프트웨어 모듈(380)은, DNS 또는 그 밖의 다른 프로토콜을 통해 호스트 이름 및/또는 주소를 분해하고, 뒤 이어, 원격 시스템(150)과 통신하여 연결을 확립함으로써, 이 연결을 확립할 수 있다. 연결이 성공적으로 확립된 경우(블록(420)), 소프트웨어 모듈(380)은 블록(425)으로 진행하고, 제품 식별자를 원격 호스트(150)로 전송할 수 있다. 특정 예시적 실시예에 따르면, 이 전송은 HTTPS 프로토콜, 또는 네트워크(140)를 통해 원격 시스템(150)으로 데이터를 통신하기에 적합한 그 밖의 다른 임의의 프로토콜을 통한 것일 수 있다. HTTPS 프로토콜을 이용한 예시적 실시예에 따르면, 소프트웨어 모듈(380)은 SSL 인증서의 유효성을 검증할 수 있고, 유효성이 밝혀지지 않은 경우 데이터를 전송하지 않을 수 있다.
예시적 실시예에 따르면, 블록(425)에서의 데이터 전송은 제품 식별자만 포함할 수 있다. 또 다른 실시예에서, 소프트웨어 모듈(380)은 원격 서버(150)로 추가 데이터를 전송할 수 있다. 두 경우 모두, 그리고 예시적 실시예에서 사용되는 HTTPS 프로토콜에 따르면, 전송된 데이터는 HTTPS을 통해 POST 요청의 바디(body)로서 전송될 수 있다. 따라서 제품 식별자만 전송될 때, POST 요청의 바디는 다음의 필드(field)를 포함할 수 있다:
scan:<제품_식별자>
대안적 실시예에서, 소프트웨어 모듈(380)은 다음 중 하나 이상을 포함하는 추가 데이터를 제공할 수 있지만 이에 국한되는 것은 아니다: 상인 식별자, (예를 들어, 둘 이상의 상점을 갖는 상인을 위한) 상점 식별자, 스캔된 제품 카운트, 현재시 스탬프, 장치 식별자(예를 들어, 제조업체-발행 일련 번호), (예를 들어, 보안 통신용) 보안 키, 소프트웨어 버전 번호, 가격, 및 장치 GPS 좌표. 이 대안적 실시예에 따르면, POST 요청의 바디는 다음의 필드 중 하나 이상을 포함할 수 있다:
serial:<장치_식별자>
key:<보안 키>
version:<소프트웨어 버전>
currenttime:<현재_시점>
sequence:<스캔된_제품_카운트>
store:<상점_식별자>
gps:<gps_좌표>
scan:<제품_식별자>
또 다른 예시적 실시예에서, 소프트웨어 모듈(380)은 POS 스캐너에 의해 제품 식별자가 스캔된 때를 가리키는 타임 스탬프를 제공할 수 있다. 이 실시예에 따르면, 앞서 묘사된 POST 요청의 바디는 다음과 같이 수정될 수 있다:
scan:<제품_식별자>:<타임스탬프>
블록(445)에서, 소프트웨어 모듈(380)은 전송이 성공적이었는지 여부를 결정할 수 있다. 예를 들어, HTTPS를 통한 전송에 따라, 전송이 성공적일 때, 소프트웨어 모듈(380)은 빈 바디와 함께 HTTP 200/OK 응답을 수신할 수 있다. 또는, 전송이 성공적이지 않을 경우, 소프트웨어 모듈(380)은 4xx 또는 5xx HTTP 에러를 수신할 수 있다.
데이터 전송이 성공적이지 않은 경우(블록(445)), 소프트웨어 모듈(380)은 블록(450)으로 진행하며, 여기서, 지정된 재시도 카운트가 초과됐는지 여부를 판단할 수 있다. 재시도 카운트가 초과되지 않은 경우, 소프트웨어 모듈(380)은 재시도 카운트를 증분(increment)하고, 블록(425)으로 다시 진행하며, 여기서, 제품 식별자(및 앞서 기재된 그 밖의 다른 임의의 데이터)를 원격 시스템(150)으로 전송하기를 다시 시도할 수 있다. 예시적 실시예에 따르면, 소프트웨어 모듈(380)은 즉시 블록(425)으로 진행할 수 있다. 또 다른 실시예에서, 전송을 재시도하기 전에, 소프트웨어 모듈(380)이 지정 길이의 시간(가령, 1, 5, 10분 등) 동안 대기할 수 있다. 또 다른 예시적 실시예에서, 소프트웨어 모듈(380)은 재시도하기 전에 1분 동안("타임아웃 간격") 기다릴 수 있으며, 다음번에 시도되는 전송이 성공적이지 않은 경우, 타임아웃 간격은 두 배가 된다. 이 실시예에서, 소프트웨어 모듈(380)은 연속적으로 실패한 전송 시도 각각에 대해 타임아웃 간격이 32분이 될 때까지 타임아웃 간격을 계속 두 배로 만들 수 있고, 타임아웃 간격이 32분이 될 때, 소프트웨어 모듈(380)은 매 32분마다 데이터를 전송하려 계속 시도할 수 있다.
블록(450)에서 전송 시도의 횟수가 지정 재시도 카운트를 초과하는 경우, 소프트웨어 모듈은 블록(440)으로 진행하고 에러 지시기(130)를 활성화할 수 있다. 이러한 방식으로, 소매 상점의 고용인은 POS 데이터 수집기에서 에러가 발생했음을 통지받을 수 있다.
마찬가지로, 연결이 성공적으로 확립되지 않은 경우(블록(420)), 소프트웨어 모듈(380)은 블록(435)으로 진행하며, 여기서, 지정된 재시도 카운트가 초과됐는지 여부를 판단할 수 있다. 재시도 카운트가 초과되지 않은 경우, 소프트웨어 모듈(380)은 재시도 카운트를 증분하고, 블록(415)으로 다시 진행하며, 여기서, 원격 시스템(150)과의 연결을 확립하기를 다시 시도할 수 있다. 이때, 앞서 기재된 것과 유사한 타임아웃 간격 알고리즘이 사용될 수 있다. 블록(435)에서 연결 시도의 횟수가 지정된 재시도 카운트를 초과하는 경우, 소프트웨어 모듈은 블록(440)으로 진행하고, 에러 지시기(130)를 활성화할 수 있다. 이러한 방식으로, 소매 상점의 고용인은 POS 데이터 수집기에 에러가 발생했음을 통지받을 수 있다.
에러 지시기가 활성화된 경우, 소프트웨어 모듈(380)은 다시 블록(405)으로 진행하며, 여기서, 구매되는 중인 추가 제품과 연계된 다음 제품 식별자를 획득하기를 기다릴 수 있다. 따라서 에러 상태에도 불구하고 소프트웨어 모듈(380)은 계속 동작할 수 있다. 이러한 방식으로, 에러 상태가 사업 작업을 방해하지 않도록, POS 데이터 수집기(105)는 스캔된 제품 식별자를 POS 단말기로 적어도 계속 전송할 수 있다(블록(410)). 예시적 실시예(도시되지 않음)에 따르면, 소프트웨어 모듈(380)은, 이러한 경우, 원격 시스템(150)과 연결을 확립하거나 데이터를 원격 시스템(150)으로 전송하려는 다음번 시도가 성공적인 경우 에러 지시기를 비활성화할 수 있다.
따라서 도 4의 예시적 실시예에 따르면, POS 데이터 수집기(105)는, 각각의 제품이 스캔될 때 각각의 제품 식별자를 실질적으로 실시간으로 그리고 유의미한 딜레이 없이(즉, 도 4의 방법 단계들이 수행되기 위해 필요한 딜레이외에 추가적인 딜레이 없이) 전송할 수 있다.
예시적 실시예에 따라 그리고 POS 데이터를 실시간으로 전송하는 것의 대안예로서, POS 데이터 수집기(105)는 POS 데이터를 축적하고, 축적된 데이터를 원격 시스템(150)으로 주기적으로 전송할 수 있다. 예를 들어, 소프트웨어 모듈(380)은 축적된 제품 식별자를, 이들이 원격 시스템(150)으로 전송되기 전까지, 저장 자원(362)에 저장할 수 있다. 하나의 실시예에서, 예를 들어, 소프트웨어 모듈(380)은 데이터를 원격 서버(150)로 전송하기 전에 지정 길이의 시간(예를 들어, 5, 15, 30분 등) 동안 제품 식별자를 축적할 수 있다. 또 다른 실시예에서, 소프트웨어 모듈(380)은 제품 식별자를 축적하고, 지정 개수(가령, 5, 100, 1000개 등)의 식별자가 축적된 후, 데이터를 원격 서버(150)로 전송할 수 있다.
또 다른 실시예에서, 소프트웨어 모듈(380)은 POS 데이터를 축적할 수 있고, 데이터를 원격 시스템(150)으로 전송할 때를 결정하기 위해 시간 주기와 지정된 제품 식별자 카운트를 모두 사용할 수 있다. 이러한 예시적 실시예에 따라, 소프트웨어 모듈(380)은 지정 길이의 시간 동안, 또는 지정 양의 제품 식별자가 축적될 때까지(어느 것이든 먼저 도달하는 때), 제품 식별자를 버퍼링할 수 있다. 또 다른 실시예에서, 지정 양(가령, 1kB, 1MB, 등)의 데이터가 축적될 때까지 소프트웨어 모듈(380)은 POS 데이터를 축적할 수 있다. 따라서 업데이트를 합리적인 빈도로 여전히 전송하면서, 데이터 전송이 트래픽을 최소화하도록 최적화될 수 있다.
따라서 예시적 실시예에 따라, 소프트웨어 모듈(380)은 축적된 제품 식별자만 전송할 수 있다. 이러한 경우, HTTPS 요청의 바디가 다음과 같이 포맷팅될 수 있다:
scan:<제품_식별자>:<타임스탬프>
scan:<제품_식별자>:<타임스탬프>
. . .
소프트웨어 모듈(380)이 제품 식별자에 추가로 데이터를 제공하는 실시예에서, POST 요청의 바디가 다음의 필드 중 하나 이상을 포함할 수 있다:
serial:<장치_식별자>
key:<보안 키>
version:<소프트웨어 버전>
currenttime:<현재_시점>
sequence:<스캔된_제품_카운트>
store:<상점_식별자>
gps:<gps_좌표>
scan:<제품_식별자>:<타임스탬프>
scan:<제품_식별자>:<타임스탬프>
. . .
앞서 기재된 예시적 실시예에서, 네트워크 모듈(364)과 네트워크(140)를 통한 원격 시스템(150)으로의 연결은 개방 상태를 유지하거나, 전송들 사이에 폐쇄될 수 있다.
하나의 예시적 실시예에 따라, POS 데이터 수집기(105)는 원격 시스템(150)으로 살아 있음 지시자(alive indicator)를 전송할 수 있다. 예를 들어, 임의의 제품이 스캔되는지 여부에 무관하게, 소프트웨어 모듈(380)은 주기적으로(가령, 4, 6, 8시간 등마다) 원격 시스템(150)으로 살아 있음 지시자를 전송할 수 있다. 소프트웨어 모듈(380)은 앞서 도 4에서 기재된 단계를 이용해 살아 있음 지시자를 전송할 수 있다. 예를 들어, 소프트웨어 모듈(380)은 원격 시스템(150)과의 연결을 확립하려 시도할 때와 살아 있음 지시자를 전송하려 시도할 때, 동일한 재시도/에러 알고리즘을 수행할 수 있다.
전송을 위해 HTTPS 프로토콜을 이용하는 예시적 실시예에 따르면, 살아 있음 지시자에 대한 HTTPS 전송이, 제품 식별자(들)를 전송하기 위해 사용되는 URL과 상이한 URL로 향해질 수 있다. 덧붙여, 살아 있음 지시자 POST 요청의 바디는 다음의 필드 중 하나 이상을 포함할 수 있다:
serial:<장치_식별자>
key:<보안 키>
version:<소프트웨어 버전>
currenttime:<현재_시점>
sequence:<스캔된_제품_카운트>
따라서, 원격 시스템(150)은 살아 있음 지시자 전송을 이용하여, 에러를 찾기 위해 POS 데이터 수집기(105)를 모니터링할 수 있다. 다시 말하면, 원격 시스템(150)은 지정된 주기적 스케줄에 따라 살아 있음 지시자를 수신하지 않는다면 POS 데이터 수집기(105)가 작동하고 있지 않는다고 판단할 수 있다. 따라서 POS 데이터 수집 시스템 제공자는 POS 데이터 수집기(105)가 올바르게 작동하는 것을 멈춘 경우 이를 장애 처리하도록 배열될 수 있다.
도 5는 특정 예시적 실시예에 따라, 데이터를 추출하기 위한 시스템(500)을 도시한다. 도 5에 도시된 바와 같이, 시스템(500)은 로컬 컴퓨터(502), 원격 저장 자원(508), 원격 컴퓨터(510), 및 원격 데이터베이스(516)를 포함할 수 있다. 로컬 컴퓨터(502)는 소매상의 본사에 위치하는 상업적 소매상의 중앙 서버이거나, 지역 서버, 또는 상점 특정적 서버일 수 있다. 데이터베이스(504)는 로컬 컴퓨터(502)에 위치하거나 원격 데이터베이스 서버(도면상 도시되지 않음)상에 위치할 수 있고, 소매점 제품 및/또는 제품을 판매하는 사업체와 관련된 데이터를 포함할 수 있다. 예를 들어, 로컬 컴퓨터(502)는 상업적 소매상에 의해 소유될 수 있고, 데이터베이스(504)는 소매상의 제품 재고, 소매상의 상점(가령, 둘 이상의 위치를 갖는 사업체), 판매시점관리 거래, 제품 목록, 가격-수량 데이터(예를 들어, 상점별, 제품 가격별), 판매권유장(circular), 쿠폰 등과 관련된 데이터를 포함할 수 있다. 예시적 실시예에 따르면, 데이터베이스(504)가 상용화된 데이터베이스 프로그램(예를 들어, MySQL, 오라클(Oracle), MS SQL 서버(MS SQL Server) 등)일 수 있다. 대안적 실시예에서, 데이터베이스(504)는 상용화된 제품 재고/판매 소프트웨어, 단층 데이터 파일, 스프레드시트 등의 일부일 수 있다. 마찬가지로, 원격 데이터베이스(516)는 임의의 유형을 가질 수 있지만, 로컬 컴퓨터(502)의 원격에 위치할 수 있다.
예시적 실시예에 따라, 콘텐츠 추출기(506)는 로컬 컴퓨터(512)에 위치할 수 있다. 콘텐츠 추출기는 데이터베이스(504)로부터 데이터를 추출하고, 추출된 데이터를 프로세싱하며, 데이터를 원격 저장장치(508) 및/또는 원격 컴퓨터(510)로 전송하도록 일반적으로 기능하는 소프트웨어일 수 있다. 도시된 바와 같이, 콘텐츠 추출기(506)는 구성 파일(configuration file)(514)을 포함할 수 있다. 구성 파일(514)은 임의의 포맷, 가령, 이진, 클리어 텍스트(clear text), 데이터베이스, 또는 그 밖의 다른 적합한 포맷일 수 있다. 구성 파일(514)은 데이터베이스(504), 원격 저장장치(508), 및/또는 원격 컴퓨터(510)와 관련된 연결 및 매핑 설정을 포함할 수 있다. 콘텐츠 추출기(506) 및 구성 파일(514)은 이하에서 도 6-8을 참조하여 상세히 설명된다.
원격 저장장치(508)는 로컬 컴퓨터(502)와 원격 컴퓨터(510) 모두에 액세스 가능한 임의의 저장 설비일 수 있다. 예시적 실시예에 따르면, 원격 저장장치(508)는 디스크 기반의 저장 자원, 가령, 자기 저장장치, 광자기 저장장치, 또는 그 밖의 다른 임의의 유형의 디스크 기반 저장장치를 포함할 수 있다. 도 5에 도시된 것처럼, 원격 저장장치는 예를 들어, 자립형 네트워크 부속형 저장(network attached storage) 솔루션, 클라우드 저장 솔루션, 등으로서, 로컬 컴퓨터(502) 및 원격 컴퓨터(510)와 분리될 수 있다. 또는, 원격 저장장치(508)는, 예를 들어, 원격 컴퓨터(510) 상에 위치하는 저장 자원(또는 저장 자원의 어레이)으로서, 원격 컴퓨터(510)와 일체되는 부분을 형성할 수 있다.
원격 컴퓨터(510)는 사업용, 과학용, 제어용, 엔터테인먼트용, 또는 그 밖의 다른 목적의 임의의 형태의 정보, 지능, 또는 데이터를 연산, 분류, 프로세싱, 송신, 수신, 검색(retrieve), 창안, 교환, 저장, 디스플레이, 나타내기, 검출, 기록, 재생, 취급, 또는 이용하도록 기능하는 임의의 도구 또는 도구들의 집합체일 수 있다. 예를 들어, 원격 컴퓨터(510)는 메인프레임 컴퓨터, 네트워크 서버, 개인용 컴퓨터, PDA, 소비자 전자 장치, 네트워크 저장 장치, 또는 그 밖의 다른 임의의 적합한 장치일 수 있고, 크기, 형태, 성능, 기능, 및 가격이 다를 수 있다. 원격 컴퓨터(510)는 메모리, 하나 이상의 프로세싱 자원, 가령, 중앙 처리 유닛(CPU), 또는 하드웨어 또는 소프트웨어 제어 로직을 포함할 수 있다. 추가 구성요소 또는 원격 컴퓨터(510)가 하나 이상의 저장 장치, 외부 장치뿐 아니라 다양한 입력 및 출력(I/O) 장치, 가령, 키보드, 마우스, 및 비디오 디스플레이와 통신하기 위한 하나 이상의 통신 포트를 포함할 수 있다. 원격 컴퓨터(510)는 또한, 다양한 하드웨어 구성요소들 간에 통신을 전송하도록 기능하는 하나 이상의 버스를 포함할 수 있다.
도 5에 더 도시된 것처럼, 로컬 컴퓨터(502)는 네트워크(512)를 통해 원격 저장장치(508)(제공된 경우)와 원격 컴퓨터(510)에 통신 가능하게 연결될 수 있다. 네트워크(512)는 저장장치 영역 네트워크(SAN: storage area network), 개인 영역 네트워크(PAN: personal area network), 로컬 영역 네트워크(LAN: local area network), 도시권 네트워크(MAN: metropolitan area network), 광역 네트워크(WAN: wide area network), 무선 로컬 영역 네트워크(WLAN: wireless local area network), 가상 사설 네트워크(VPN: virtual private network), 인트라넷, 인터넷, 또는 신호, 데이터, 및/또는 메시지(전체적으로 데이터라고 지칭됨)의 통신을 촉진하는 그 밖의 다른 임의의 적절한 아키텍처 또는 시스템으로서, 또는 이들의 일부로서 구현될 수 있다. 예시적 실시예에 따르면, 로컬 컴퓨터(502)는 전용 셀룰러 모뎀 연결을 통해 네트워크(512)로 연결될 수 있다. 대안적 실시예에서, 로컬 컴퓨터(502)는 유/무선 인터넷 연결(가령, MiFi) 또는 네트워크(512)를 통해 신호를 통신하기에 적합한 그 밖의 다른 임의의 유선 또는 무선 연결을 갖는 핫스팟으로의 유선 이더넷 연결, Wi-Fi 또는 블루투스(Bluetooth) 연결을 통해 네트워크(512)로 연결될 수 있다.
도 6은 특정 예시적 실시예에 따르는 데이터를 교환하기 위한 시스템(600)을 도시한다. 도 6에 도시된 것처럼, 시스템(600)은 구성 대화(configuration dialogue)(601)를 포함할 수 있다. 구성 대화(601)는 콘텐츠 추출기(506)에 의해 로컬 컴퓨터(502)의 사용자에게 제시되고, 사용자로부터의 입력을 수락하도록 일반적으로 기능할 수 있다. 예를 들어, 구성 대화(601)는 데이터베이스 유형 메뉴(602)를 포함할 수 있다. 특정 예시적 실시예에 따르면, 데이터베이스 유형 메뉴(602)는 콘텐츠 추출기(506)와 호환가능한 데이터베이스 유형에 대한 사전구성된 선택항목(selection)을 갖는 드롭-다운(drop-down) 메뉴일 수 있다. 예를 들어, 데이터베이스 유형 메뉴(602)는 상용화된 데이터베이스 프로그램(가령, MySQL, 오라클(Oracle), MS SQL 서버(MS SQL Server), 등), 상용화된 제품 재고/판매 소프트웨어(가령, POSlog, 등), 단층 데이터 파일, 스프레드시트 등에 대한 항목을 포함할 수 있다. 따라서 로컬 컴퓨터(502)의 사용자는 데이터베이스 유형 메뉴(602)에서, 데이터베이스(504)에 대응하는 적절한 항목을 선택할 수 있다.
특정 예시적 실시예에 따르면, 구성 대화(601)는 (선택사항적 포트 번호를 갖는) 데이터베이스 호스트 입력(604), 데이터베이스 이름 입력(606), DB 사용자 이름 입력(608), 및 DB 패스워드 입력(610)을 더 포함할 수 있다. 따라서, 로컬 컴퓨터(502)의 사용자는 데이터베이스(504)에 특정적인 연결 파라미터를 특정할 수 있어서, 콘텐츠 추출기(506)는 데이터베이스에 포함된 데이터를 액세스할 수 있다. 입력(602-610)이 도 6에 명시적으로 도시되어 있지만, 구성 대화(601)는 이러한 구체적 실시예로 한정되지 않는다. 예를 들어, 데이터베이스(504)를 액세스하는 것과 관련된 추가 입력이 제공될 수 있다. 또는, 도시된 입력 중 일부는, 로컬 컴퓨터(502)와 데이터베이스(504)의 특정 구성에 따라, 데이터베이스(504)를 액세스할 필요가 없을 수 있다.
바로 앞서 기재된 데이터베이스 구성 파라미터에 추가로, 구성 대화(601)는 원격 컴퓨터 및/또는 원격 저장장치 구성 파라미터를 수락할 수 있다. 예를 들어, 일부 실시예에서, 구성 대화(601)는 원격 사용자 이름 입력(612), 원격 패스워드 입력(614), 빈도 스케줄링 메뉴(616), 시 스케줄링 입력(618), 및 요일 스케줄링 메뉴(619)를 포함할 수 있다. 특정 예시적 실시예에 따르면, 빈도 스케줄링 메뉴(616)는 콘텐츠 추출기(506)와 호환 가능한 빈도 유형에 대한 사전 구성된 선택항목을 갖는 드롭-다운 메뉴일 수 있다.
도시된 실시예에 따르면, 빈도 스케줄링 메뉴(616)는, 일주일마다, 가령, (시 스케줄링 입력(618) 및 요일 스케줄링 메뉴(619)에 의해 특정되는 바와 같이) 매 토요일 7:00PM에, 콘텐츠 추출기(506)가 데이터베이스(504)로부터 데이터를 추출하고, 상기 데이터를 원격 저장장치(508) 및/또는 원격 컴퓨터(510)로 전송해야 함을 나타내는 "주마다(weekly)" 빈도 유형을 포함한다. 또 다른 예시적 실시예에서, 빈도 스케줄링 메뉴(616)는 다른 주기적 추출 빈도에 대한 항목, 가령, "월마다(monthly)", "일마다(daily)", "시간마다(hourly)" 등을 포함할 수 있다.
또 다른 실시예에서, 빈도 스케줄링 메뉴(616)는 "즉시(instant)" 또는 "수동(manual)" 추출을 위한 항목을 포함할 수 있다. 이들 실시예에 따르면, 사용자가 저장 버튼(622)을 클릭하자마자, 콘텐츠 추출기(506)가 데이터베이스(504)로부터 데이터를 추출하고 상기 데이터를 원격 저장장치(508) 및/또는 원격 컴퓨터(510)로 전송할 수 있다.
또 다른 예시적 실시예에 따르면, 빈도 스케줄링 메뉴(616)는 "실시간" 추출을 위한 항목을 포함할 수 있다. 이 실시예에 따르면, 콘텐츠 추출기(506)는 실시간으로 데이터베이스(504)로부터 데이터를 추출하고, 상기 데이터를 원격 저장장치(508) 및/또는 원격 컴퓨터(510)로 전송한다. 예를 들어, 실시간 추출은 데이터베이스(504) 내 데이터베이스 테이블이 업데이트되는 것에 응답하여 발생할 수 있다. 예를 들어, 이는 제품 가격책정의 변화, 상점 폐쇄, 프로모션, 지역 이벤트, 제품 판매(가령, 최근 판매 정보를 반영하는 품목명(line item) 데이터), 또는 제품 판매 및/또는 제품을 판매하는 사업체나 상점과 관련된 그 밖의 다른 변화를 반영하기 위해 유용할 수 있다. 또 다른 예시적 실시예에서, 실시간 추출은 데이터베이스(504) 외부의 그 밖의 다른 지정 이벤트(예를 들어, 로컬 컴퓨터가 원격 저장장치(508) 및/또는 원격 컴퓨터(510)와의 연결을 확립하는 것, 콘텐츠 추출기가 데이터베이스(504)로의 연결을 확립하는 것, 등)에 응답하여 발생할 수 있다. 이러한 이벤트와, 실시간 추출을 트리거하는 그 밖의 다른 이벤트가 구성 파일(514)에 제공될 수 있다.
따라서 파라미터(612-619)를 제공함으로써, 로컬 컴퓨터(502)의 사용자는 원격 저장장치(508) 및/또는 원격 컴퓨터(510)에 특정적인 연결 파라미터를 특정하여, 콘텐츠 추출기(506)가 그곳으로 데이터를 연결 및 전송할 수 있도록 할 수 있다. 입력(612-619)이 도 6에 명시적으로 도시되지만, 구성 대화(601)는 이러한 특정 실시예에 국한되지 않는다. 예를 들어, 원격 저장장치(508) 및/또는 원격 컴퓨터(510)를 액세스하는 것과 관련된 추가 입력이 제공될 수 있다. 또는, 도시된 입력 중 일부는, 로컬 컴퓨터(502), 원격 저장장치(508), 및 원격 컴퓨터(510)의 특정 구성에 따라, 반드시 원격 저장장치(508) 및/또는 원격 컴퓨터(510)를 액세스할 필요가 없을 수 있다.
예시적 실시예에 따르면, 구성 대화(601)는 각각의 라벨에 의해 나타내어지는 기능을 제공할 수 있는 연결 테스트 버튼(620), 저장 버튼, 및 취소 버튼(624)을 포함할 수 있다. 예를 들어, 연결 테스트 버튼(620)은 데이터베이스(504), 원격 저장장치(508), 및/또는 원격 컴퓨터(510)로의 유효한 연결에 대해 테스트하기 위해 사용자-제공 입력(user-supplied input) 파라미터를 이용할 수 있다. 저장 버튼(622)은 구성 파일(514)로 사용자-제공 입력 파라미터를 저장할 수 있다. 취소 버튼(624)은 입력 필드가 공란이도록 및/또는 선택되지 않도록, 모든 사용자-제공 입력을 취소할 수 있다.
도 7은 특정 예시적 실시예에 따라 데이터를 추출하기 위한 시스템(700)을 도시한다. 도 7에 도시된 것처럼, 시스템(700)은 테이블 매핑(table mapping) 대화(702)를 포함할 수 있다. 테이블 매핑 대화(702)는 콘텐츠 추출기(506)에 의해 로컬 컴퓨터(502)의 사용자에게 제시될 수 있고, 사용자로부터의 입력을 수락하도록 일반적으로 기능할 수 있으며, 여기서 상기 입력은 데이터베이스(504) 내 테이블 속성(가령, 테이블 필드)을 콘텐츠 추출기(506) 내 지정 속성으로 매핑하는 것을 보조한다. 특정 예시적 실시예에서, 테이블 매핑 대화(702)는 특정 유형의 정보 또는 테이블에 특정적일 수 있다. 예를 들어, 도 7은 상점 정보에 특정적인 테이블 매핑 대화(702)를 도시한다. 이 실시예에 따르면, 사용자는 (예를 들어, 하나 또는 복수의 상점을 갖는 소매상에 대한) 상점 정보와 관련된 테이블 속성의 매핑을 제공할 수 있다. 또 다른 예시적 실시예에서, 테이블 매핑 대화(702)는 제품 정보(예를 들어, 특정 소매상이 판매하는 모든 제품과 관련된 데이터)에 특정적일 수 있다. 또 다른 예시적 실시예에서, 테이블 매핑 대화(702)는 가격-수량 정보(예를 들어, 상점별, 제품별 재고 및 가격책정 정보)에 특정적일 수 있다. 제품 판매 및 제품을 판매하는 사업체와 관련된 그 밖의 다른 데이터가 수집될 수 있도록, 테이블 매핑 대화(702)의 또 다른 실시예가 제공될 수 있다.
특정 예시적 실시예에 따르면, 테이블 매핑 대화(702)가 드롭-다운 메뉴 유형의 테이블 메뉴(704)를 포함할 수 있다. 테이블 메뉴(704)에서 이용 가능한 항목은 구성 파일(514)에 저장된 연결 파라미터를 이용해 데이터베이스(504)에서 이용 가능한 테이블을 기초로 제공될 수 있다. 사용자가 테이블 메뉴(704)를 이용해 테이블을 선택할 때, 선택된 테이블의 속성은 테이블 속성 필드(706)에서 나타날 수 있다. 도시된 예시에서, 선택된 테이블 "상점"은 3개의 속성, 즉, 이름, 주소, 및 아이디(id)를 가진다. 테이블 매핑 대화(702)는 또한 상점 속성 필드(708)를 포함할 수 있다. 상점 속성 필드(708)는 콘텐츠 추출기(506)의 지정 속성을 포함할 수 있다. 이러한 도시된 실시예에서, 이 필드는 "상점 속성(Store Attributes)"이라고 라벨링되는데, 앞서 언급된 것처럼, 테이블 매핑 대화(702)는 상점 정보에 특정적이기 때문이다. 또 다른 실시예에서, 테이블 매핑 대화(702)의 이 필드는 여러 다른 라벨(가령, "제품 속성(Product Attributes)", "가격-수량 속성(Price-Quantity Attributes)" 등)을 가질 수 있다.
따라서, 로컬 컴퓨터(502)의 사용자는 테이블 속성(테이블 속성 필드(706)에서 나타나는 것)과 콘텐츠 추출기(506)의 지정 속성(가령, 상점 속성 필드(708)에서 나타나는 것) 간의 매핑을 제공할 수 있다. 예를 들어, 사용자는 테이블 속성 필드(706)로부터 "이름"을 선택하고, 상점 속성 필드(708)로부터 "이름"을 선택하며, 맵 저장(Save Map) 버튼(712)을 누를 수 있다. 동일한 방식으로, 사용자는 "주소 라인 1"로 "주소"를 매핑하고, "상점 코드"로 "아이디(id)"를 매핑할 수 있다. 이 예시적 매핑의 결과가 도 7의 테이블 매핑 대화(720)에 도시되어 있다. 특히, 매핑은 매핑된 값(Mapped Values) 필드(726)에 나타난 방식으로 사용자에게 제공될 수 있다. 예시적 실시예에 따르면, 그리고 매핑 대화(720)에 도시된 것처럼, 테이블 속성은 매핑되면, 테이블 속성 필드(706)에서 제거될 수 있다. 마찬가지로, 상점 속성은 매핑되면, 상점 속성 필드(706)에서 제거될 수 있다.
예시적 실시예에 따라, 테이블 매핑 대화(702)는 각각의 라벨에 의해 나타내어지는 기능을 제공할 수 있는 생성 버튼(714), 저장 버튼(716), 및 취소 버튼(718)을 포함할 수 있다. 예를 들어, 생성 버튼(714)은 콘텐츠 추출기(506)가 원격 저장장치(508) 및/또는 원격 컴퓨터(510)로 전송할 데이터를 나타내는 파일을 생성하기 위해 사용자-제공 입력 파라미터를 이용할 수 있다. 이는, 예를 들어, 사용자-제공 매핑이 정확함을 보장하는 데 유용할 수 있다. 저장 버튼(716)은 사용자-제공 입력 파라미터를 구성 파일(514) 또는 별도의 매핑 파일(mapping file)(도면에 도시되지 않음)에 저장할 수 있다. 입력 필드가 공란이도록, 및/또는 그들의 초기 상태로 되돌아가도록 취소 버튼(624)은 모든 사용자-제공 입력을 취소할 수 있다.
앞서 기재된 예시적 실시예의 특징에 따르면, 로컬 컴퓨터(502)의 사용자는 기존의 레거시 데이터베이스 시스템의 테이블 속성의 콘텐츠 추출기(506)에 의해 희망되는 지정 속성으로의 매핑을 쉽게 제공할 수 있다.
도 8은 특정 예시적 실시예에 따라, 데이터를 추출하기 위한 방법(800)을 도시하는 블록 흐름도이다. 상기 방법(800)은 도 5-7에서 도시된 구성요소를 참조하여 설명된다. 도 8은 또한 특정 예시적 실시예에 따라 데이터를 추출하기 위한 수단을 도시한다.
블록(802)에서, 콘텐츠 추출기(506)는 트리거 조건(trigger condition)을 기다릴 수 있다. 예를 들어, 구성 대화(601)의 사용자-제공 파라미터(616-619)에 따라 이러한 트리거 조건이 제공될 수 있다. 앞서 기재된 것처럼, 트리거 조건은 주기적 설정, 즉시 설정, 또는 실시간 설정을 기초로 할 수 있다. 구성된 트리거 이벤트가 발생하면, 콘텐츠 추출기(506)는 블록(804)으로 진행할 수 있다.
블록(804)에서, 구성 대화(601)의 사용자-제공 파라미터(602-610)에 따라, 콘텐츠 추출기(506)는 데이터베이스 연결 파라미터를 획득하기 위해 구성 파일(514)을 판독할 수 있다. 또한 콘텐츠 추출기(506)는 테이블 매핑 대화(702)에 제공된 사용자-제공 매핑에 따라 테이블 매핑 파라미터를 획득할 수 있다. 블록(806)에서, 콘텐츠 추출기(506)는 획득된 데이터베이스 연결 파라미터를 이용해 데이터베이스(504)로의 연결을 시도할 수 있다. 연결 시도가 성공적인 경우, 콘텐츠 추출기(506)는 블록(808)으로 진행할 수 있다.
블록(808)에서, 콘텐츠 추출기(506)는 데이터베이스(504)에 위치하는 하나 이상의 데이터베이스 테이블로부터 데이터를 추출할 수 있다. 예를 들어, 콘텐츠 추출기(506)는 블록(804)에서 획득된 속성 매핑을 이용하여, 특정된 테이블 필드로부터 데이터를 추출할 수 있다. 덧붙여, 콘텐츠 추출기(506)는 원격 데이터베이스(516)에 위치하는 하나 이상의 데이터베이스 테이블로부터 데이터를 추출할 수 있다. 이러한 방식으로, 콘텐츠 추출기(506)는 동일하거나 상이한 위치에 위치하는 복수의 데이터베이스로부터 데이터를 수신할 수 있다. 예를 들어, 하나의 소매상이 각각 판매 데이터를 저장하는 복수의 상점을 운영할 수 있다. 콘텐츠 추출기(506)는 각각의 데이터베이스(504, 516)로부터의 데이터를 수신하여, 소매상의 분산된 판매 데이터 모두(또는 임의의 특정 부분)에 대한 데이터 소스를 제공할 수 있다.
블록(810)에서, 콘텐츠 추출기(506)는 추출된 데이터를 프로세싱할 수 있다. 예를 들어, 콘텐츠 추출기(506)는 추출된 데이터의 포맷이 예상 포맷에 일치함(예를 들어, 주소 데이터, 신택스(syntax) 등의 균일성(uniformity))을 검증할 수 있다. 특정 실시예에서, 추출된 데이터의 포맷이 예상 포맷에 일치하지 않은 경우 콘텐츠 추출기(506)는 추출된 데이터를 재포맷팅(reformat)할 수 있고, 추출된 데이터의 포맷이 예상 포맷에 일치하는 경우, 재포맷팅하지 않을 수 있다.
이와 동일한, 또는 또 다른 실시예에서, 블록(810)에서 콘텐츠 추출기는 추출된 데이터를 기초로 하여 데이터를 자동-생성할 수 있다. 예를 들어, 일부 실시예에서, 콘텐츠 추출기(506)는 특정 상점 위치에 대한 위도 및 경도 정보를 원할 수 있다. 이 정보는 데이터베이스(504)에서 이용 가능하지 않을 수 있다. 따라서, 주소 정보가 데이터베이스(504)에서 이용가능하고 매핑 대화(702)를 이용해 적절하게 매핑된 경우, 콘텐츠 추출기(506)는 상점 위치의 주소를 기초로 위도 및 경도 정보를 생성하도록 구성될 수 있다. 앞서 바로 기재된 것처럼, 블록(810)은 예시적 실시예에 따라 추출된 데이터를 프로세싱하기 위한 수단을 도시할 수 있다.
블록(812)에서, 콘텐츠 추출기(506)는, 예를 들어, 블록(804)에서 획득된 원격 저장장치 및/또는 원격 컴퓨터 연결 파라미터를 이용해 원격 저장장치(508) 및/또는 원격 컴퓨터(510)로 연결하기를 시도할 수 있다. 연결 시도가 성공적인 경우, 콘텐츠 추출기(506)가 블록(814)으로 진행하며, 여기서, 콘텐츠 추출기(506)가 데이터(즉, 블록(810)에서 수행된 추가/수정을 갖고 추출된 데이터)를 원격 저장장치(508) 및/또는 원격 컴퓨터(510)로 전송할 수 있다. 데이터가 전송된 후, 콘텐츠 추출기(506)는 블록(802)으로 되돌아 가서, 다음번 트리거 조건을 기다린다.
도 9는 특정 예시적 실시예에 따라, 제품 가용성을 추정하기 위한 시스템(900)을 도시한다. 도 9에 도시된 것처럼, 시스템(900)은 컴퓨터(910)를 포함할 수 있다. 컴퓨터(910)는 사업용, 과학용, 제어용, 엔터테인먼트용, 또는 그 밖의 다른 목적의 임의의 형태의 정보, 지능, 또는 데이터를 연산, 분류, 프로세싱, 송신, 수신, 검색(retrieve), 창안, 교환, 저장, 디스플레이, 나타내기, 검출, 기록, 재생, 취급, 또는 이용하도록 기능하는 임의의 도구 또는 도구들의 집합체일 수 있다. 예를 들어, 컴퓨터(910)는 메인프레임 컴퓨터, 네트워크 서버, 개인용 컴퓨터, PDA, 소비자 전자 장치, 네트워크 저장 장치, 또는 그 밖의 다른 임의의 적합한 장치일 수 있고, 크기, 형태, 성능, 기능, 및 가격이 다양할 수 있다.
컴퓨터(910)는 하나 이상의 프로세싱 자원(예를 들어, 프로세서(901))을 포함할 수 있다. 예를 들어, 프로세서(901)는 프로그램 명령을 해석 및/또는 실행, 소프트웨어 모듈(950)과 연계된 데이터를 프로세싱하도록 기능하는 임의의 시스템, 디바이스, 또는 장치를 포함할 수 있고, 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC: application specific integrated circuit), 또는 프로그램 명령을 해석 및/또는 실행, 및/또는 데이터를 프로세싱하도록 구성된 그 밖의 다른 임의의 디지털 또는 아날로그 회로를 포함할 수 있지만, 이에 한정되지는 않는다. 일부 실시예에서, 프로세서(901)는 프로그램 명령을 해석 및/또는 실행, 로컬 저장된 데이터를 프로세싱할 수 있다. 이와 동일한, 또는 대안적인 실시예에서, 프로세서(901)는 프로그램 명령을 해석 및/또는 실행, 및/또는 원격 저장된 데이터를 프로세싱할 수 있다.
컴퓨터(910)의 추가적인 구성요소는 하나 이상의 저장 자원을 포함할 수 있다. 예를 들어, 컴퓨터(910)는, 로컬 저장 자원(예를 들어, 도 3의 로컬 저장 자원(362)과 관련해 기재된 것) 또는 원격 저장 자원(예를 들어, 도 5의 원격 저장장치(508)와 관련해 기재된 것)일 수 있는 저장 자원(970)을 포함할 수 있다. 또한 컴퓨터(910)는 외부 장치와 통신하기 위한 하나 이상의 통신 포트(가령, 네트워크 I/F(902), I/O(903) 등)뿐 아니라, 다양한 입출력(I/O) 장치, 가령, 키보드, 마우스, 및 비디오 디스플레이까지 포함할 수 있다. 또한 컴퓨터(910)는 다양한 하드웨어 구성요소들 간에 통신을 전송하도록 기능하는 하나 이상의 버스를 포함할 수 있다.
특정 예시적 실시예에 따르면, 컴퓨터(910)는, 예를 들어, 소매상의 본사, 지점, 또는 특정 소매 상점에 위치하는 상업적 소매상의 컴퓨터 시스템의 일부로서 구현될 수 있다. 또 다른 예시적 실시예에서, 컴퓨터(910)는 예를 들어 원격으로 제3자의 사업장에 위치하거나, (제3자에 의해 소유/운영되면서) 소매상의 본사, 지점, 소매 상점 등에 위치하는 제3자 컴퓨터 시스템의 일부로서 구현될 수 있다. 컴퓨터(910)는 입력(920)을 수신하도록 구성될 수 있다. 특정 예시적 실시예에 따르면, 입력(920)은, 예를 들어, POS 데이터, 재고 피드(inventory feed), 바코드 스캔, GPS(global positioning system) 데이터, (사용자 또는 회사로부터의) 영수증 데이터, 그 밖의 다른 "비-상인" 데이터, 가령, 제3자 집계자, 및 그 밖의 다른 데이터를 포함한다. 입력(920)은 실시간으로(예를 들어, 네트워크/통신/시스템 대기시간(latency)을 고려해, 즉시), 또는 주기적으로(예를 들어, 1분마다, 1시간마다, 8시간마다, 1일마다, 또는 그 밖의 다른 적합한 시간 주기로 스케줄링된 소매상으로부터의 일괄 업데이트) 이용 가능해질 수 있다.
컴퓨터(910)는 제품 가용성 추정 출력(930)을 제공하도록 구성될 수 있다. 특정 예시적 실시예에 따르면, 출력(930)은 잠재적 구매자(가령, 소비자)에게 제품 가용성 추정치를 제공하도록 사용될 수 있다. 예를 들어, 컴퓨터(910)는 인터넷 검색 엔진/웹 서버로서 구성될 수 있다. 이 실시예에서, 소비자는 특정 제품에 대한 인터넷 검색을 실시할 수 있다. 소비자의 검색 요청에 응답하여, 컴퓨터(910)는 검색 결과, 가령, 제품 가용성 추정 출력(930)을 제공할 수 있다. 검색 결과는 제품을 지니는 근방의 상업적 소매상뿐 아니라, 근방의 소매 상점 각각에 대해 제품이 판매 가능한지 여부를 나타내기 위한 이들 소매상 각각에 대한 제품 가용성 추정 출력(930)까지 포함할 수 있다. 대안적으로, 예를 들어, 출력(930)이 인터넷 검색 엔진/웹 서버로 통신 가능하게 연결되도록, 컴퓨터(910)는 자립형 제품 가용성 추정 시스템으로서 구성될 수 있다. 특정 제품에 대한 인터넷 검색에 응답하여, 웹 서버와 컴퓨터(910)가 개별 하드웨어인 것을 제외하고, 이 대안적 실시예는 바로 앞서 기재된 것처럼 동작할 수 있다. 따라서 웹 서버가 컴퓨터(910)에게 (상점 단위로) 제품 가용성 추정 출력(930)을 획득하기 위한 질의를 하여, 이 정보가 검색 결과와 함께 제공될 수 있도록 한다.
또 다른 예시적 실시예에서, 출력(930)은 제품 가용성 추정치를 상업적 소매상에게 제공하도록 사용될 수 있다. 이 실시예에서, 컴퓨터(910)는 상업적 소매상의 상점에 위치하는 단말기(예를 들어, POS 단말기, 재고실 단말기, 또는 그 밖의 다른 단말기) 또는 이러한 단말기로 (로컬하게 또는 원격으로) 연결된 자립형 시스템일 수 있다. 이 실시예에 따르면, 특정 제품의 추정된 가용성은, 예를 들어, 단말기를 사용하는 상점 고용인에 의해 획득될 수 있다. 특정 제품의 가용성에 대하여 컴퓨터(910)가 질의 받을 때, 추정된 제품 가용성이 출력(930)으로 제공되도록(가령, 추정된 제품 가용성이 단말기의 모니터에 디스플레이될 수 있도록), 이 실시예에서 단말기는 앞서 기재된 인터넷 검색 엔진/웹 서버와 유사하게 동작할 것이다.
특정 예시적 실시예에 따라, 컴퓨터(910)는 소프트웨어 모듈(950)을 포함할 수 있다. 소프트웨어 모듈(950)은 제품의 판매 이벤트 속도를 기초로 하여 특정 제품의 가용성을 추정할 수 있다(즉, 출력(930)을 생성할 수 있다). 예를 들어, 판매 이벤트 속도(re)는 수학식
re = Ne/T
에 의해 표현될 수 있고, 여기서, Ne는 시간 주기 T 동안의 판매 횟수이다. 특정 예시적 실시예에 따르면, re는 판매 이벤트들 사이의 평균 시간(<t>)으로부터 추정될 수 있다. 예를 들어, re는 수학식
Figure 112013012634071-pct00001
으로 표현될 수 있다.
i개의 판매 이벤트를 관측한 후, <t>가
Figure 112013012634071-pct00002
와 같이 회귀 추정될 수 있으며, 여기서 ti는 판매 이벤트 i와 i-1 사이의 시간이고, k는 어떤 상수이다(0 < k < 1). 따라서 최근의 이벤트일수록 과거의 이벤트보다 더 많은 가중치를 가질 수 있도록(즉, 과거 이벤트의 가중치는 지수 감소할 수 있음), 판매 이벤트 속도(re)는 지수 이동 평균으로 표현될 수 있다.
특정 예시적 실시예에 따르면, 제품 가용성을 추정할 때, 소프트웨어 모듈(950)은 일반적인 업무 시간을 고려하기 위해 시간 값을 조절할 수 있다. 예를 들어, 상점이 5:00pm에 폐장하고 다음날 아침 9:00am에 개장하고, 특정 제품의 마지막 두 번의 판매가 4:58pm과 다음날 아침 9:02am에 발생한 경우, 소프트웨어(950)는 판매 이벤트들 사이의 시간을 4분이라고 판단할 수 있다.
표 1은 특정 예시적 실시예에 따르는 판매 이벤트 속도(re)를 추정하기 위한 예시적 데이터를 제공한다.
Figure 112013012634071-pct00003
표 1의 예시적 판매 데이터에 따르면, 판매 이벤트의 절대 속도는 8/25 = 0.32 이벤트/분이다(25분 동안 8번의 이벤트, 첫 번째 이벤트는 카운트되지 않음). 시간 주기의 종료가 마지막 판매 이벤트와 일치하도록 임의로 선택되기 때문에, 이 속도는 대략적이다. 이 예시적 판매 데이터를 이용해, <t>8이 회귀 추정될 수 있다:
Figure 112013012634071-pct00004
역시, k는 0과 1 사이의 상수 값일 수 있다. 예를 들어, k가 0.1이라고 가정하면, 상기의 수학식은 다음과 같이 풀릴 수 있다:
Figure 112013012634071-pct00005
re=1/<t>이기 때문에, 예시적 데이터는 다음을 도출한다:
Figure 112013012634071-pct00006
따라서 k가 0.1이라고 가정하면, 추정된 판매 이벤트 속도 re는 예시적 데이터에 대해, 0.42 이벤트/분이다. 작은 k일수록 과거 이벤트에 더 많은 가중치를 부여할 수 있으며, 반면에, 큰 k일수록 더 최근 이벤트에 더 많은 가중치를 부여할 수 있다. k의 선택된 값의 영향이 표 2에 도시되어 있으며, 표 2는 여러 다른 k 값을 가정할 때 표 1의 예시적 데이터에 대해 추정된 판매 이벤트 속도(re)를 제공한다.
Figure 112013012634071-pct00007
특정 예시적 실시예에 따르면, 마지막 10-30건의 판매에 대한 추정된 판매 이벤트 속도의 평균이 합리적인 가정을 제공할 수 있다. 따라서 k는 0.03≤k≤0.1일 수 있다.
특정 예시적 실시예에 따르면, 추정된 판매 이벤트 속도가 제품의 가용성을 추정하기 위해 사용될 수 있다. 예를 들어, 컴퓨터(910)의 소프트웨어 모듈(950)이 품목명 데이터를 포함하는 POS 데이터(예를 들어, 입력(920) 중 일부 또는 전부)를 수신할 수 있다. 단일 품목명은 특정 제품의 하나 이상의 인스턴스가 특정 상점 위치에서 특정 시점에서 판매된 판매 이벤트를 나타낼 수 있다. 예시적 실시예에 따라, 소프트웨어 모듈(950)은 판매 이벤트가 포아송 분포(Poisson distribution)(균등하거나, 균등하지 않을 수 있음)를 따름을 가정할 수 있다. 따라서 추정된 판매 이벤트 속도 re가 주어지면, 소프트웨어 모듈(950)은 지속시간 t 동안 어떠한 판매 이벤트도 보지 않을 확률을 exp(-re*t)로 근사할 수 있다.
예를 들어, 판매 이벤트 속도가 re = 0.04 이벤트/분(2.4 이벤트/시)라고 가정할 때, 판매 이벤트들 사이의 평균 시간은 1/2.4
Figure 112013012634071-pct00008
0.42시간
Figure 112013012634071-pct00009
25분일 것이다. 이 예시에서, 마지막 판매가 12:00pm에서 발생한 경우, 1시간의 지속시간 동안(즉, 1:00pm까지) 어떠한 판매 이벤트도 보지 않을 확률은 exp(-2.4 * 1) = 0.091로 근사될 수 있다. 마찬가지로, 5시간의 지속시간 동안(즉, 5:00pm까지) 어떠한 판매 이벤트도 보지 않을 확률은 exp(-2.4 * 5) = 6.14e-6로 근사될 수 있다.
특정 예시적 실시예에 따르면, 소프트웨어 모듈(950)은 다음의 속성을 갖는 확률 p1과 p2(여기서 p1 > p2)를 정의할 수 있다:
· (exp(-r * t0) > p1)를 만족하는 지속시간 t0 동안 0건의 이벤트가 발생한 경우, 추정 제품 가용성은 "재고 있음(in stock)"으로 리스팅되고,
· (p1 > exp(-r * t1) > p2)를 만족하는 지속시간 t1 동안 0건의 이벤트가 발생한 경우, 추정 제품 가용성은 "미지(unknown)"로 리스팅되며,
· (exp(-r * t2) < p2)를 만족하는 지속시간 t2 동안 0건의 이벤트가 발생한 경우, 추정 제품 가용성은 "재고 없음(out of stock)"으로 리스팅된다.
예시적 실시예에 따르면, 확률 p1 및 p2는 모든 제품에 대해 일관될 수 있다. 예를 들어, 모든 제품은 p1=0.1 및 p2=0.01를 가질 수 있다. 대안적 실시예에 따르면, 확률 p1 및 p2는 제품별로 일관될 수 있다. 예를 들어, 제품 A가 p1=0.1 및 p2=0.01을 가질 수 있고, 제품 B는 p1=0.2 및 p2=0.03을 가질 수 있는 등이다. 일부 실시예에서, 확률 p1 및 p2는 비교적 정적(static)일 수 있다. 또 다른 실시예에서, 확률 p1 및 p2는 시간에 따라 가변적일 수 있는데, 가령, 제품 추정 시스템(900)의 성능의 피드백/분석을 기초로 하는 조절의 대상이 될 수 있다.
또 다른 실시예에서, "미지" 조건이 충족될 수 없도록(즉, "재고 있음"과 "재고 없음" 지시자만 제공될 수 있도록), 확률 p1 및 p2는 동일할 수 있다.
도 9의 컴퓨터(910)는 데이터 객체(940)를 포함할 수 있다. 특정 예시적 실시예에 따르면, 데이터 객체(940)는 저장 자원(970) 내에 위치하고, 제품 가용성 추정 출력(930)을 결정하는 데 사용될 수 있다. 데이터 객체(940)는 다음의 데이터 필드를 포함할 수 있다: 제품 ID(941), 상점 ID(942), 마지막 판매 타임스탬프(943)(T마지막_판매), 판매 이벤트 속도(944)(re), 확률(945)(p1), 확률(946)(p2), 미지 전환 시점(947)(T미지) 및 재고 없음 전환 시점(947)(T재고 없음). 예시적 실시예에 따르면, 컴퓨터(910)는 각각의 제품-상점 조합(product-store combination)에 대해 개별적인 데이터 객체(940)를 포함할 수 있다. 다시 말하면, 컴퓨터(910)는 특정 상점에서 판매된 제품 각각에 대해 하나씩의 데이터 객체(940)를 가질 수 있다. 따라서 제품 ID(941)는 특정 제품에 대응할 수 있고, 상점 ID(942)는 상기 특정 제품이 판매된 특정 상점에 대응할 수 있다. 마지막 판매 타임스탬프(933)는 식별된 상점에서 식별된 제품의 마지막 판매의 시점에 대응할 수 있다. 특정 예시적 실시예에 따르면, 컴퓨터(910)의 소프트웨어 모듈(950)은 각각의 제품 ID(941), 상점 ID(942), 및 마지막 판매 타임스탬프(933)를, 품목명 데이터를 포함한 POS 데이터(예를 들어, 입력(920)의 일부 또는 전부)로서 수신할 수 있다.
특정 실시예에서, POS 데이터를 수신하면 소프트웨어 모듈(950)은 판매 이벤트 속도(944)(re)를 결정할 수 있다. 예를 들어, 품목명 데이터를 포함한 POS 데이터를 수신한 후, 소프트웨어 모듈(950)은 수신된 품목명 데이터 내 제품 ID와 상점 ID를 이용하여 (예를 들어, 데이터베이스, 단층 파일, 또는 그 밖의 다른 소스로부터) 데이터 객체(940)를 검색할 수 있다. 검색된 데이터 객체(940)는 (예를 들어, 수신된 품목명 데이터 내 제품 ID와 상점 ID에 대응하는 제품의 첫 번째 판매가 아닌 경우) 판매 이벤트 속도(944)에 대해 널이 아닌(non-NULL) 값을 이미 포함할 수 있다. 그럼에도, 새로운 판매 이벤트 속도(944)는 소프트웨어 모듈(950)이 새로운 품목명 데이터를 수신할 때마다 지수 이동 평균으로서 결정될 수 있다. 앞서 기재된 것처럼, 소프트웨어 모듈(950)은 새로운 판매 이벤트 속도(944)를 결정하기 위해 다음의 공식을 사용할 수 있다:
Figure 112013012634071-pct00010
따라서 소프트웨어 모듈(950)이 새로운 품목명 데이터를 수신할 때마다, 소프트웨어 모듈(950)은 데이터 객체(940)의 판매 이벤트 속도(944)를 새롭게 결정된 판매 이벤트 속도로 대체할 수 있다.
특정 예시적 실시예에서, 소프트웨어 모듈(950)은 품목명 데이터를 포함한 POS 데이터를 수신하면, 마지막 판매 타임스탬프(943)(T마지막_판매), 미지 시점(947)(T미지), 및 재고 없음 전환 시점(947)(T재고 없음)을 결정할 수 있다. 예를 들어, 마지막 판매 타임스탬프(943)는 수신된 품목명 데이터(예를 들어, 도 4와 관련하여 앞서 기재된 POS 데이터)의 일부일 수 있다. 이러한 경우, 소프트웨어 모듈(950)은 품목명 데이터의 타임스탬프를 데이터 객체(940)의 마지막 판매 타임스탬프(943) 필드로 복사(copy)할 수 있다. 또 다른 실시예에서, 소프트웨어 모듈(950)은 POS 데이터의 실제 수신 시점을 데이터 객체(940)의 마지막 판매 타임스탬프(943)로 저장할 수 있다. 새로운 판매 이벤트 속도(944)를 결정한 후, 소프트웨어 모듈(950)은 다음에 따라 미지 시점(947)(T미지)과 재고 없음 전환 시점(947)(T재고 없음)을 결정할 수 있다:
T미지 = T마지막_판매 - log(p1)/re
T재고 없음 = T마지막_판매 - log(p2)/re
예를 들어, 품목명 데이터를 포함한 POS 데이터를 수신한 후, 데이터 객체(940)는 다음의 값을 포함할 수 있다:
제품_아이디:45
상점_아이디:178
판매_이벤트_속도: 0.04 (이벤트/분)
마지막_판매:12:00pm
p1:0.1
p2:0.01
이 예시적 데이터에 따르면,
T미지 = T마지막_판매 - log(p1)/re = 12:00pm - log(0.1)/0.04 = 12:25pm
T재고 없음 = T마지막_판매 - log(p2)/re = 12:00pm - log(0.01)/0.04 = 12:50pm
이 예시에서, 소프트웨어 모듈(950)은 T미지의 계산된 값(12:25pm)과 T재고 없음의 계산된 값(12:50pm)을 데이터 객체(940)의 미지 시점(947) 필드와 재고 없음 전환 시점(947) 필드로 저장할 수 있다. 따라서 제품_아이디:45 및 상점_아이디:178에 대해 어떠한 추가적인 POS 데이터도 수신되지 않는다고 가정할 때, 컴퓨터(910)의 소프트웨어 모듈(950)은 제품 가용성을 12:00pm과 12:25pm 사이에서 "재고 있음"으로 추정하고, 12:25pm과 12:50pm 사이에서 "미지"로 추정하며, 12:50pm 이후에 "재고 없음"으로 추정할 수 있다. 소프트웨어 모듈(950)은 이러한 추정치를 제품 가용성 추정 출력(930)으로 제공할 수 있다.
도 10은 특정 예시적 실시예에 따라 제품 가용성을 추정하기 위한 방법(1000)을 도시하는 블록 흐름도를 도시한다. 상기 방법(1000)은 도 1 및 9에서 도시된 구성요소를 참조하여 기재된다.
블록(1010)에서, 컴퓨터(910)의 소프트웨어 모듈(950)은 POS 데이터를 수신하기를 기다릴 수 있다. 특정 예시적 실시예에 따르면, POS 시스템(100)은 POS 데이터 수집기(105)를 통해 POS 데이터를 수집하고, POS 데이터를 입력(920) 중 일부 또는 전부를 통해 품목명 데이터로서 컴퓨터(910)로 전달할 것이다. POS 데이터를 수신한 후, 소프트웨어 모듈(950)은 블록(1020)으로 진행할 것이고, POS 데이터에서 수신된 제품_아이디와 상점_아이디에 대응하는 데이터 객체(예를 들어, 데이터 객체(940))를 검색하기를 시도할 것이다. 이러한 데이터 객체가 존재하지 않는 경우, 소프트웨어 모듈(950)은 블록(1030)으로 진행하고, POS 데이터에 수신된 제품_아이디와 상점_아이디에 대응하는 새로운 데이터 객체를 생성할 수 있다.
블록(1030)에서 새로운 데이터 객체를 생성한 후, 소프트웨어 모듈(950)은 블록(1040)으로 진행하고, 새로운 데이터 객체의 p1 및 p2 확률 필드를 업데이트할 수 있다. 특정 실시예에서, 제품에 무관하게, 모든 새로운 데이터 객체가 동일한 p1 및 p2 값으로 초기화되도록 p1 및 p2의 값은 지정될 수 있다. 또 다른 실시예에서, p1 및 p2의 값은 지정될 수 있지만, 제품 또는 제품 카테고리에 특정적일 수 있다. 이 후자의 실시예에서, 예를 들면, 컴퓨터(910)는 확률 테이블(980)을 포함할 수 있어서, 소프트웨어 모듈(950)이 수신된 제품_아이디를 이용하는 조사(look-up)를 수행할 수 있다. 또 다른 실시예에서, 확률 p1 및 p2는 시스템별로 고정되서, 이들 필드를 데이터 객체(940)의 일부로서 포함할 필요가 없을 수 있다. 또 다른 실시예에서, 이들 확률은 앞서 설명된 것처럼 얻어질 수 있다.
소프트웨어 모듈(950)은 기존의 데이터 객체를 검색하거나(즉, 블록(1020)) 새로운 데이터 객체를 생성하면(즉, 블록(1030, 1040)), 블록(1050)으로 진행할 수 있다. 블록(1050)에서, 소프트웨어 모듈(950)은 T마지막_ 판매 값을 업데이트할 수 있다. 앞서 기재된 것처럼, 소프트웨어 모듈(950)은 수신된 POS 데이터 내 타임스탬프로부터 T마지막_판매를 직접 복사하거나, 현재 시점(current time)으로 T마지막_판매를 업데이트할 수 있다. 블록(1060)에서, 소프트웨어 모듈(950)은 앞서 기재된 것처럼 re 필드(판매 이벤트 속도)를 업데이트할 수 있다. 블록(1070)에서, 소프트웨어 모듈(950)은 앞서 기재된 것처럼 T미지 및 T재고 없음 필드를 업데이트할 수 있다.
도 11은 특정 예시적 실시예에 따라, 제품 가용성을 추정하기 위한 방법(1100)을 도시하는 블록 흐름도를 도시한다. 방법(1100)은 도 1 및 9에 도시된 구성요소를 참조하여 설명된다.
블록(1110)에서, 컴퓨터(910)의 소프트웨어 모듈(950)은 제품 가용성 추정치에 대한 요청을 수신하도록 기다릴 수 있다. 특정 실시예에서, 컴퓨터(910)는 인터넷 검색 엔진/웹 서버로서 구성될 수 있다. 이 실시예에서, 소비자가 특정 제품에 대해 인터넷 검색을 실시할 수 있다. 검색 결과로서, 컴퓨터(910)는 하나 이상의 소매 상점이 판매용으로 특정 제품을 제안했다고 결정할 수 있다. 따라서 소프트웨어 모듈(950)이 제품이 하나 이상의 소매 상점에서 이용 가능한지 여부를 가리킬 수 있도록, 소비자의 검색이 제품 가용성 추정치에 대한 요청을 개시한다. 또 다른 실시예에 따르면, 컴퓨터(910)는 자립형 제품 가용성 추정 시스템으로서 구성될 수 있다. 이 실시예에 따르면, 제품 가용성 추정에 대한 요청은 입력(920) 중 하나 이상을 통해 도착할 수 있다.
블록(1110)에서 요청을 수신한 후, 소프트웨어 모듈(950)은 블록(1120)으로 진행하고, 블록(1110)에서 수신된 요청 내 특정된 제품_아이디 및 상점_아이디에 대응하는 데이터 객체(예를 들어, 데이터 객체(940))를 검색하기를 시도할 수 있다. 이러한 데이터 객체가 존재하지 않은 경우, 소프트웨어 모듈(950)은 블록(1130)으로 진행할 수 있다. 일부 실시예에서, 요청에 대응하는 데이터가 존재하지 않기 때문에 소프트웨어 모듈(950)은 블록(1130)에서 제품 가용성 추정 출력(930)을 "미정(undefined)"이라고 설정할 수 있다. 이 경우에서, 제품 가용성 출력(930)은, 재고 수준이 검증되어야 함을 나타내도록, "가용성 요청(call for availability)" 또는 "제한됨(limited)"으로 설정될 수 있다.
소프트웨어 모듈(950)이 블록(1120)에서 기존 데이터 객체를 검색하면, 소프트웨어 모듈(950)은 블록(1140)으로 진행할 수 있다. 블록(1140)에서, 소프트웨어 모듈(950)은 현재 시점을, 검색된 데이터 객체의 T미지 필드에 저장된 시점과 비교할 수 있다. 현재 시점이 T미지보다 이른 경우, 소프트웨어 모듈(950)은 블록(1150)으로 진행하고, 제품 가용성 추정 출력(930)을 "재고 있음"으로 설정할 수 있다. 현재 시점이 T미지보다 늦은 경우, 소프트웨어 모듈(950)은 블록(1160)으로 진행할 수 있다.
블록(1160)에서, 소프트웨어 모듈(950)은 현재 시점이 검색된 데이터 객체의 T재고 없음 필드에 저장된 시점보다 이른지 여부를 판단할 수 있다. 이른 경우, 소프트웨어 모듈(950)은 블록(1170)으로 진행하고 제품 가용성 추정 출력(930)을 "미지"로 설정할 수 있다. 대안적으로, 현재 시점이 T재고 없음 필드에 저장된 시점보다 늦은 경우, 소프트웨어 모듈(950)은 블록(1180)으로 진행하고, 제품 가용성 추정 출력(930)을 "재고 없음"으로 설정할 수 있다. 특정 예시적 실시예에서, 소프트웨어 모듈(950)은 "재고 있음" 및 "재고 없음" 옵션만 갖고 동작할 수 있다.
특정 예시적 실시예에 따르면, 소프트웨어 모듈(950)은 (앞서 기재된 바와 같이 판매 이벤트 속도와 달리) 특정 제품의 판매 속도를 기초로 하여, 상기 특정 제품의 가용성을 추정할 수 있다(즉, 출력(930)을 생성할 수 있다). 이 실시예에서, 거래(transaction)에서 아이템의 수는 판매 이벤트의 타이밍에 독립적인 것으로 가정될 수 있다. 따라서 판매 속도(rs)는 re로부터, 수학식
rs = re * <u>
에 의해 추정될 수 있고, <u>는 한 판매 이벤트에서의 평균 단위 수이다. 여기서, <u>는 <t>와 동일한 방식으로 다음과 같이 계산될 수 있고:
<u>i = (1-k)*<u>i-1 + k*ui
여기서 ui는 판매 이벤트 i 동안 팔린 단위 수이며, k는 (0 < k < 1)인 어떤 상수이다. 따라서 최근 판매일수록 과거의 판매보다 더 많은 가중치를 가질 수 있도록(즉, 과거 판매의 가중치는 지수 감소할 수 있도록), 판매 속도(rs)는 지수 이동 평균에 의해 표현될 수 있다.
표 1의 예시적 판매 데이터에 따르면, 판매 이벤트의 절대 속도는 25/9 = 2.78 단위/판매이다. 이 예시적 판매 데이터를 이용해, <u>9는 회귀 추정될 수 있다:
Figure 112013012634071-pct00011
역시, k는 0과 1 사이의 상수일 수 있다. 예를 들어, k가 0.1이라고 가정하면, 상기의 수학식은 다음과 같이 풀릴 수 있다:
Figure 112013012634071-pct00012
rs = re * <u>이기 때문에, 예시적 데이터는 다음의 추정 판매 속도를 도출한다:
rs = 0.42 이벤트/분 * 2.2 단위 = 0.924 단위/분
따라서, k가 0.1이라고 가정하면, 예시적 데이터에 대한 추정 판매 속도 rs는 0.924 단위/분이다. 작은 k일수록 과거의 이벤트에 더 많은 가중치를 줄 수 있고, 큰 k일수록 더 최근의 이벤트에 더 많은 가중치를 줄 수 있다. 따라서, re에 대한 k의 선택과 유사하게, rs에 대한 k는 0.03≤k≤0.1일 수 있다.
특정 예시적 실시예에 따르면, 추정 판매 속도(rs)는 제품의 가용성을 추정하도록 사용될 수 있다. 예를 들어, 컴퓨터(910)의 소프트웨어 모듈(950)은 특정 상점으로부터 제품별, 상점별로 재고 수량(Q피드)을 나타내는 재고 스냅샷(inventory snapshot)을 수신할 수 있다. 이 스냅샷은 예를 들어, 콘텐츠 추출기(506)에 의해 제공되는 주기적 재고 피드(inventory feed)로서 입력(920)에 의해 제공될 수 있다.
하나의 실시예에서, 재고 스냅샷이 취해지고 약간의 시간 후에, 컴퓨터(910)의 소프트웨어 모듈(950)이 재고 피드를 수신하도록, 주기적 재고 피드가 콘텐츠 추출기(506)에 의해 제공될 수 있다. 딜레이가 어느 정도의 확신을 갖고 알려질 수 있고, 예를 들어, 다음과 같이 표현될 수 있으며:
T피드 = T업로드 - (ΔT*δ)
여기서, T피드는 상점/상인에 의해 재고 피드가 생성된 때일 수 있고, T업로드는 피드가 컴퓨터(910)의 소프트웨어 모듈(950)에 의해 이용 가능해지는 때일 수 있고, δ는 (δ>0, <δ>=1)을 만족하는 확률 변수(stochastic variable)일 수 있다. 일부 실시예에서, ΔT는 예를 들어 주기적 재고 피드 내 전송되는 데이터의 일부로서 상점/상인에 의해 보고될 수 있다. 이의 대안으로, 또는 이에 추가로, 상인 또는 소매상 판매용 물품 레벨 정보의 그 밖의 다른 적합한 소스가 사용될 수 있으며, 한 가지 대표적인 예로는 이러한 정보의 제3자 집계자가 있다. 일부 실시예에서, 소프트웨어 모듈(950)은 실제 데이터로부터 (가령, 복수의 주기적 인벤토리 피드 업데이트 등을 기초로) δ 통계를 계산할 수 있다. 또 다른 실시예에서, 소프트웨어 모듈(950)은 δ는 모든 상점/상인에게 동일한 약간의 고정된 σ를 갖는 대수 정규 분포된 랜덤 값일 수 있음을 가정할 수 있다.
특정 예시적 실시예에 따르면, 소프트웨어 모듈(950)은
Figure 112013012634071-pct00013
라고 가정할 수 있고, 이는 딜레이 계산을 다음과 같이 단순화시킬 수 있다:
T피드 = T업로드 - ΔT
일부 실시예에서, 소프트웨어 모듈(950)은 연속하는 주기적 재고 피드들 사이의 판매 이벤트의 목록을 저장하고, 재고 피드가 컴퓨터(910)의 소프트웨어 모듈(950)로 업로드되는 때(즉, 시점 T업로드)에, 재고, Q업로드를 계산하기 위해 재고 피드, Q피드와 함께 이들 저장된 판매 이벤트로부터의 데이터를 사용할 수 있다. 예를 들어, Q업로드는 다음의 수학식에 따라 계산될 수 있고:
Figure 112013012634071-pct00014
여기서, U는 특정 판매에서의 물품의 수량이다. 특정 예시적 실시예에 따라, 소프트웨어 모듈(950)은 다음의 의사-코드에 대응하는 명령을 이용해 상기의 함수를 구현할 수 있다.
CalculateQupload (product_id, q_feed, t_feed, sales_events) {
// product_id: q_upload가 계산되어야 할 제품
// q_feed: 스냅샷이 취해진 때에서의 재고
// t_feed: 스냅샷이 취해진 때
// sales_events: 특정 상점에 대한 모든 판매 데이터의 배열
q_upload = q_feed;
t_upload = current_time();
foreach (event in sales_events) {
if ((event.product_id == product_id) &&
(event.timestamp < t_upload) &&
(event.timestamp > t_feed)) {
q_upload = q_upload - event.quantity;
}
// 특정 실시예에서, sales_events 배열로부터
// 데이터가 제거되어,
// 예를 들어, t_feed보다 오래된 임의의 데이터를 삭제함으로써,
// 요구되는 필수 저장소 크기가 감소될 수 있다
if ((event.product_id == product_id) &&
(event.timestamp < t_feed)) {
delete(event);
}
}
return q_upload;
}
특정 예시적 실시예에 따르면, 소프트웨어 모듈(950)은 재고 피드가 업로드될 때의 재고, Q업로드를 추정할 수 있다. 예를 들어, 소프트웨어 모듈(950)은 다음의 수학식에 따라 재고를 추정할 수 있다:
Q업로드 = Q피드 - (rs * ΔT)
이 추정은 현재 재고, Q업로드가 재고 스냅샷이 취해진 때의 재고에서 판매 속도 곱하기 ΔT를 뺀 것과 유사한 수치일 수 있다는 점에 의존할 수 있으며, 즉, ΔT는 스냅샷이 찍힌 때와 데이터가 컴퓨터(910)의 소프트웨어 모듈(950)로 업로드된 때의 시간 차이일 수 있다(T업로드 - T피드).
소프트웨어 모듈(950)은 주기 ΔT 내에 판매된 물품의 개수, N을 확률을 이용해 분포시킬 수 있다. 예를 들어, 다음의 확률에 따른다:
Figure 112013012634071-pct00015
여기서, (x=rsΔT)이고, 상기의 수학식은 다음과 같이 단순화될 수 있다:
Figure 112013012634071-pct00016
따라서 소프트웨어 모듈(950)은 예를 들어 다음과 같은 누적 분포 함수에 따르는 임의의 특정 제품의 N 또는 그 이하 단위를 팔 확률을 결정할 수 있다:
Figure 112013012634071-pct00017
다음의 예시적 데이터는 하나의 예를 제공한다:
Q피드 = 22 (즉, 재고 스냅샷이 취해졌을 때의 재고 수량)
ΔT = 1 (즉, 스냅샷은 업로드되기 1시간 전에 생성되었다.)
rs = 10/시 (즉, 현재 판매 속도는 시간당 10개 물품이다.)
Q판매 = 7 (즉, 스냅샷이 업로드된 후, 7개 물품이 판매되었다.)
이 예시적 데이터를 이용해, 소프트웨어 모듈(950)은 재고에 남은 물품의 현재 개수, Q현재를 다음과 같이 추정할 수 있다:
Q현재 = Q피드 - Q판매 - (rs * ΔT)
= 22 - 7 - (10 * 1)
= 5
따라서, 소프트웨어 모듈(950)은 Q현재 = 5임을 결정하고, (출력(930)을 통해) 제품이 "재고 있음"임을 나타낼 수 있다. 상점이 시간 ΔT 내에 10개 이상 또는 그 이하의 물품을 판매했을 수 있기 때문에 이러한 Q현재의 값은 근사값이다.
이에 추가로, 또는 이를 대신하여, 일부 실시예에서, 소프트웨어 모듈(950)은 제품의 가용성을 추정하기 위해 확률을 이용할 수 있다. 상기 예시적 데이터가 주어지면, 소프트웨어 모듈(950)은 시간 ΔT 동안 14개 이하의 물품이 팔렸을 높은 확률이 존재할 경우 제품이 재고 있음이라고 결정할 수 있다. (Q피드-Q판매=15이기 때문에, ΔT 동안 최대 14개의 물품이 팔릴 수 있으며, 재고에 물품이 하나 더 있을 것이기 때문에, 출력(930)에서 "재고 있음"을 여전히 나타낼 수 있다.) 앞서 기재된 것처럼, 소프트웨어 모듈(950)은 14개 이하의 물품이 판매됐을 확률을 다음과 같이 결정할 수 있다:
Figure 112013012634071-pct00018
Figure 112013012634071-pct00019
(수치 계산됨)
따라서 소프트웨어 모듈(950)은 물품이 "재고 있음"일 91%의 확률과, 제품이 "매진"일 9%의 확률이 있다고 판단할 수 있다.
특정 예시적 실시예에 따르면, 소프트웨어 모듈(950)은 제품의 가용성이 "재고 있음"인지, 또는 "미지"인지, 또는 "재고 없음"인지를 추정하기 위한 확률 임계치를 정의할 수 있다. 예를 들어, 소프트웨어 모듈(950)은, 재고 있는 물품을 가질 확률이 0.5 초과일 때, 제품의 가용성이 "재고 있음"이라고 추정하고, 재고 있는 물품을 가질 확률이 0.5보다 낮을 때 "미지"라고 추정할 수 있다. 마찬가지로, 소프트웨어 모듈(950)은 재고 있는 물품을 가질 확률이 0.1 미만으로 떨어질 때 제품의 가용성이 "재고 없음"이라고 추정할 수 있다. 일부 실시예에서, 이들 확률 임계치는 모든 제품에 걸쳐 일정할 수 있다. 예를 들어, 모든 제품이 "미지" 추정치에 대해 0.5를 이용하고, "재고 없음" 추정치에 대해 0.1을 이용할 수 있다. 대안적 실시예에 따르면, 확률 임계치는 제품별로 일정할 수 있다. 예를 들어, 제품 A는 "미지" 추정치에 대해 0.5를 가질 수 있고, "재고 없음" 추정치에 대해 0.1을 가질 수 있으며, 제품 B는 "미지" 추정치에 대해 0.3을 가질 수 있고, "재고 없음" 추정치에 대해 0.05를 가질 수 있는 등이다. 일부 실시예에서, 확률 임계치는 비교적 정적일 수 있다. 또 다른 실시예에서, 확률 임계치는 시간의 흐름에 따라 변할 수 있고, 예를 들어, 제품 추정 시스템(900)의 성능의 피드백/분석을 기초로 하는 조정의 대상이 될 수 있다(예를 들어, 소프트웨어(950)는 수용할만한 위양성율(false positives rate)로부터 확률 임계치를 추출할 수 있다).
특정 예시적 실시예에 따르면, 소프트웨어 모듈(950)은 제품의 가용성이 "재고 있음"인지 또는 "재고 없음"인지를 추정하기 위한 하나의 확률 임계치를 정의할 수 있다. 예를 들어, 소프트웨어 모듈(950)은, 재고 있는 물품을 가질 확률이 0.5보다 높을 때 제품의 가용성이 "재고 있음"이라고 추정하고, 재고 있는 물품을 가질 확률이 0.5 미만일 때 "재고 없음"이라고 추정할 수 있다.
도 12는 특정 예시적 실시예에 따라 제품 가용성을 추정하기 위한 방법(1200)을 도시하는 블록 흐름도를 도시한다. 상기 방법(1200)은 도 1, 9 및 13에서 도시된 구성요소를 참조하여 기재된다.
블록(1210)에서, 컴퓨터(910)의 소프트웨어 모듈(950)이 제품 가용성 추정치에 대한 요청을 수신하기를 기다릴 수 있다. 특정 실시예에서, 컴퓨터(910)는 인터넷 검색 엔진/웹 서버로서 구성될 수 있다. 이 실시예에서, 소비자는 특정 제품에 대한 인터넷 검색을 실시할 수 있다. 검색의 결과로서, 컴퓨터(910)는 하나 이상의 소매 상점이 판매된 특정 제품을 제시한다고 판단할 수 있다. 따라서 소비자의 검색이 제품 가용성 추정치에 대한 요청을 개시하여, 소프트웨어 모듈(950)이 제품이 하나 이상의 소매 상점에서 이용 가능한지 여부를 가리킬 수 있도록 한다. 또 다른 실시예에 따르면, 컴퓨터(910)는 자립형 제품 가용성 추정 시스템으로서 구성될 수 있다. 이 실시예에 따르면, 제품 가용성 추정치에 대한 요청은 입력(920) 중 하나 이상을 통해 도착할 수 있다.
블록(1210)에서 요청을 수신한 후, 소프트웨어 모듈(950)은 블록(1220)으로 진행할 수 있고, 블록(1210)에서 수신된 요청 내 특정된 제품_아이디 및 상점_아이디에 대응하는 데이터 객체(예를 들어, 데이터 객체(1300))를 검색하기를 시도할 수 있다. 이러한 데이터 객체가 존재하지 않는 경우, 소프트웨어 모듈(950)은 블록(1230)으로 진행할 수 있다. 일부 실시예에서, 소프트웨어 모듈(950)은, 요청에 대응하는 데이터가 없기 때문에, 블록(1230)에서 제품 가용성 추정 출력(930)을 "미정"이라고 설정할 수 있다. 이 경우, 제품 가용성 출력(930)은 재고 수준이 검증되어야 함을 나타내도록 "가용성 요구", 또는 "제한됨"이라고 설정될 수 있다.
소프트웨어 모듈(950)이 블록(1220)에서 기존 데이터 객체를 검색하면, 소프트웨어 모듈(950)은 블록(1235)으로 진행할 수 있다. 블록(1235)에서, 소프트웨어 모듈(950)은 앞서 기재된 바와 같이, Q현재의 값 및/또는 확률 Pr()을 결정할 수 있다. 예시적 실시예에서, 이러한 추정을 할 때, 확률 Pr()만 사용될 수 있다. 대안적 실시예에서, Q현재가 이 추정에서 사용될 수 있고 Pr()이 Q현재를 이용해 얻어진 결과를 검증하도록 사용될 수 있다. 블록(1240)에서 소프트웨어 모듈(950)은 "미지" 추정치에 대해 설정된 확률 임계치에 확률 Pr()을 비교할 수 있다. 확률 Pr()이 "미지" 임계치보다 큰 경우, 소프트웨어 모듈(950)은 블록(1250)으로 진행하고, 제품 가용성 추정 출력(930)을 "재고 있음"으로 설정할 수 있다. 확률 Pr()이 "미지" 임계치보다 낮은 경우, 소프트웨어 모듈(950)은 블록(1260)으로 진행할 수 있다.
블록(1260)에서, 소프트웨어 모듈(950)은 확률 Pr()이 "재고 없음" 임계치보다 큰지 여부를 결정할 수 있다. 클 경우, 소프트웨어 모듈(950)은 블록(1270)으로 진행하고, 제품 가용성 추정 출력(930)을 "미지"로 설정할 수 있다. 또는, 확률 Pr()이 "재고 없음" 임계치보다 낮은 경우, 소프트웨어 모듈(950)은 블록(1280)으로 진행하고, 제품 가용성 추정 출력(930)을 "재고 없음"으로 설정할 수 있다.
도 13은 특정 예시적 실시예에 따르는 데이터 객체(1300)의 블록도를 도시한다. 컴퓨터(910)는 데이터 객체(1300)를 포함할 수 있다. 예를 들어, 소프트웨어 모듈(950)은 저장 자원(970)에 데이터 객체(1300)를 저장할 수 있다. 일부 실시예에서, 도 9-12를 참조하여 앞서 기재된 것처럼, 소프트웨어 모듈(950)은 데이터 객체(1300)에 저장된 데이터를 이용하여, 제품 가용성 추정치를 제공할 수 있다. 통상적으로, 컴퓨터(910)는 제품-상점 쌍(product-store pair)마다 하나씩의 데이터 객체(1300)를 포함할 수 있다.
판매 이벤트 속도를 기초로 하여 제품 가용성을 추정하는 동안, 데이터 객체(1300)는 다음의 필드를 포함할 수 있다: T마지막_판매(1310)(즉, 마지막 판매 타임스탬프), <t>(1320)(즉, 판매 이벤트들 간 이동 평균 시간), 및 <u>(1330)(즉, 판매 이벤트당 이동 평균 단위 수). 소프트웨어 모듈(950)은 POS 데이터를 수신하면 도 9와 관련해 기재된 바와 같이 T마지막_판매(1310), <t>(1320), 및 <u>(1330)를 결정할 수 있다.
판매 속도를 기초로 제품 가용성을 추정하는 동안, 데이터 객체(1300)의 특정 실시예가 다음의 필드를 추가로 포함할 수 있다: ΔT(1340)(즉, T피드와 T업로드 사이의 시간), 및 Q현재(1350)(재고 스냅샷이 시점 T업로드에서 업로드된 후 판매된 물품의 개수). ΔT(1340)는 상점/상인에 의해, 예를 들어, 주기적 재고 피드 내에서 송신되는 데이터의 일부로서 보고될 수 있다. 이를 대신하여, 또는 이에 추가하여, (사용자 또는 회사로부터의) 영수증 분석 및 그 밖의 다른 "비-상인(non-merchant)" 데이터, 가령, 제3자 집계자로부터의 데이터에 의해, 판매 데이터가 제공될 수 있다. 소프트웨어 모듈(950)은 시점 T업로드 이후에 수신된 모든 POS 데이터에 응답하여, Q판매(1350)를 결정/저장할 수 있다. 그 밖의 다른 실시예에서, 데이터 객체(1300)는, Pr()을 계산할 때, rs를 대신하여 사용될 수 있는 데이터 필드 rs -업로드(1360)(즉, 시점 T업로드에서의 rs의 값)를 더 포함할 수 있다. 특정 실시예에서, 데이터 객체(1300)에 저장된 데이터에 의해, 입력(920)으로 POS 데이터를 통해 수신된 모든 품목명 데이터를 저장할 필요 없이, 소프트웨어 모듈(950)이 제품 가용성 추정치(예를 들어, 출력(930))을 제공할 수 있다.
특정 예시적 실시예에서, 제품 가용성은 품목명 판매 데이터를 기초로 판단될 수 있다. 예를 들어, 아이템이 현재 "미지" 또는 "재고 없음"이라고 리스팅되는 경우, 특정 제품의 판매를 포함하는 새로운 판매 데이터의 수신을 기초로 제품 가용성은 "재고 있음"으로 업데이트될 수 있다. 상점이 제품을 판매하는 중인 경우, 상기 제품은 재고 있음이다. 이 예시적 실시예에서, 상점에 대한 실제 재고를 알 필요 없이 제품 가용성이 추정될 수 있다.
앞서 제시된 실시예에서 기재된 예시적 방법 및 시스템은 예시적인 것이며, 대안적 실시예에서, 본 발명의 범위와 사상 내에서, 특정 구성요소/단계들은 상이한 순서로, 서로 병렬로, 전체적으로 생략되어, 및/또는 상이한 예시적 방법들 간에 조합되어 수행되고, 및/또는 특정 추가적 구성요소/단계가 수행될 수 있다. 따라서 이러한 대안적 실시예는 본원에 기재된 발명에 포함되는 것이다.
본 발명은 앞서 기재된 방법 및 처리 기능을 수행하는 컴퓨터 하드웨어 및 소프트웨어와 함께 사용될 수 있다. 해당업계 종사자라면 알겠지만, 본원에 기재된 시스템, 방법, 및 절차는 프로그램가능한 컴퓨터, 컴퓨터 실행형 소프트웨어, 또는 디지털 회로로 구현될 수 있다. 상기 소프트웨어는 컴퓨터 판독형 매체에 저장될 수 있다. 예를 들어, 컴퓨터 판독형 매체는 플로피 디스크, RAM, ROM, 하드 디스크, 탈착식 매체, 플래시 메모리, 메모리 스틱, 광학 매체, 자기-광학 매체, CD-ROM, 등을 포함할 수 있다. 디지털 회로는 집적 회로, 게이트 어레이, 빌딩 블록 로직(building block logic), 필드 프로그램 가능한 게이트 어레이(FPGA: field programmable gate array) 등을 포함할 수 있다. 본원에 기재된 시스템 및 방법은 기계-판독형 매체에 저장된 명령과 상기 명령을 실행하는 프로세서를 포함하는 적어도 하나의 컴퓨터 시스템에서 동작하는 하나 이상의 소프트웨어 모듈에 의해 구현될 수 있다.
앞서 본 발명의 특정 실시예가 상세히 기재되었어도, 이러한 기재는 예시를 위한 것에 불과하다. 앞서 기재된 것에 추가로, 예시적 실시예의 개시된 형태의 다양한 변형 및 균등 블록이, 이하의 특허청구범위에서 정의되는 발명의 사상과 범위 내에서, 해당업계 종사자에 의해 만들어질 수 있으며, 이러한 변형 및 균등 구조를 포함하기 위해 이하의 특허청구범위의 범위는 가장 넓은 해석에 따를 것이다.

Claims (42)

  1. 제품 가용성(product availability) 지시자를 제공하기 위한 컴퓨터 실행형 방법에 있어서, 상기 방법은
    컴퓨터에서 POS(point of sale, 판매시점관리) 데이터를 수신하는 단계로서, 상기 POS 데이터는 판매된 제품을 식별하는 제 1 제품 식별자, 상기 제품이 판매된 상점을 식별하는 제 1 상점 식별자, 및 제품이 판매된 제 1 시점(t1)에 대응하는 타임스탬프를 포함하는 단계,
    상기 컴퓨터에 의해, 수신된 상기 POS 데이터를 적어도 기초로 하여 상기 상점에서의 상기 제품에 대한 판매 이벤트 속도(re)를 결정하는 단계로서, 상기 판매 이벤트 속도는 기설정된 시간 기간 동안의 판매 이벤트 개수를 상기 기설정된 시간 기간으로 나눈 값인 단계,
    상기 컴퓨터에 의해, 웹 서버로부터 제 2 시점(t2)에서 제품에 대한 제품 가용성의 지시자를 얻기 위한 질의를 수신하는 단계로서, 상기 제 2 시점은 상기 제 1 시점보다 늦은 단계,
    상기 컴퓨터에 의해, 상기 판매 이벤트 속도(re)를 적어도 기초로 하여, 상기 제 2 시점에서 상기 제 1 시점을 뺀 것(t2-t1)에 대응하는 지속시간(t3) 동안 어떠한 판매 이벤트도 없을 확률을 결정하는 단계, 및
    상기 컴퓨터에 의해, 상기 질의에 응답하여 상기 상점에서의 상기 제품에 대한 상기 제품 가용성의 지시자를 상기 웹 서버로 제공하는 단계
    를 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  2. 청구항 1에 있어서, POS 데이터는 제품이 판매된 상점이 아닌 다른 소스(source)로부터의 데이터를 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  3. 청구항 1에 있어서, 제품 가용성의 지시자는, 확률이 제 1 확률 임계치보다 클 때 "재고 있음(in stock)" 지시자를 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  4. 청구항 3에 있어서, 제품 가용성의 지시자는,
    확률이 제 1 확률 임계치보다 작고, 제 2 확률 임계치보다 큰 경우 "제한됨(limited)" 지시자, 또는
    확률이 제 2 확률 임계치보다 작은 경우 "재고 없음(out of stock)" 지시자
    를 포함하며,
    상기 제 1 확률 임계치 및 상기 제 2 확률 임계치는 제품 가용성을 추정하기 위해 기설정된 확률 임계값들인, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  5. 청구항 1에 있어서, 제품과 상점에 대응하는 데이터 객체에 re와 타임스탬프를 저장하는 단계를 더 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  6. 청구항 1에 있어서, 지속시간(t3) 동안 어떠한 판매 이벤트도 없을 확률은 수학식 exp(-re * t3)에 따라 결정되는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  7. 청구항 1에 있어서, 판매 이벤트 속도(re)는 지수 이동 평균(exponential moving average)에 따라 결정되는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  8. 청구항 7에 있어서, 판매 이벤트 속도(re)는 수학식 1/<t>에 따라 결정되고, <t>는,
    <t>i = (1-k)*<t>i-1 + k*ti
    에 따라 회귀적으로 결정되어, ti는 판매 이벤트 i와 i-1 사이의 시간 주기이고, k는 0<k<1인 상수이고 i는 상기 판매 이벤트들의 순차적 순서인, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  9. 청구항 8에 있어서, k는 0.02≤k≤0.5인, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  10. 청구항 8에 있어서, k는 0.03≤k≤0.1인, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  11. 청구항 4에 있어서, 상기 제 1 확률 임계치와 상기 제 2 확률 임계치는 상점에서 판매된 모든 제품에 대해 일관된, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  12. 청구항 4에 있어서, 상기 제 1 확률 임계치와 상기 제 2 확률 임계치는 정적(static)인, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  13. 청구항 4에 있어서, 상기 제 1 확률 임계치와 상기 제 2 확률 임계치는 서로 동일한, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  14. 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법에 있어서, 상기 방법은
    컴퓨터에 의해, POS(point of sale, 판매시점관리) 데이터를 수신하는 단계로서, POS 데이터는 판매된 제품, 제품이 판매된 상점, 및 제품이 판매된 시점에 대응하는 타임스탬프를 식별하는 단계,
    컴퓨터에 의해, 제품과 상점에 대응하는 데이터 객체를 검색(retrieving)하는 단계로서, 상기 데이터 객체는 제품에 대한 판매 이벤트들 간 평균 시간을 가리키는 속도 필드(rate field)(<t>), 제품 가용성 지시자가 "제한됨(limited)"으로 전환되어야 하는 시점을 가리키는 제한 시점(limited time) 필드, 제품 가용성 지시자가 "재고 없음"으로 전환되어야 할 시점을 가리키는 재고 없음 시점 필드, 및 제품의 마지막 판매의 시점에 대응하는 타임스탬프 필드(T마지막_판매)를 포함하는 단계,
    컴퓨터에 의해, 제 1 타임스탬프, 속도 필드, 타임스탬프 필드, 및 제 1 확률 임계치(p1)를 적어도 기초로 하여 새로운 제한 시점을 결정하는 단계로서, 상기 제 1 확률 임계치(p1)는 제품 가용성을 추정하기 위해 기설정된 확률 임계값인 단계,
    컴퓨터에 의해, 제 1 타임스탬프, 속도 필드, 타임스탬프 필드, 및 제 2 확률 임계치(p2)를 적어도 기초로 하여 새로운 재고 없음 시점을 결정하는 단계로서, 상기 제 2 확률 임계치(p1)는 제품 가용성을 추정하기 위해 기설정된 확률 임계값인 단계,
    컴퓨터에 의해, 제한 시점 필드를 새로운 제한 시점으로 대체하는 단계,
    컴퓨터에 의해, 재고 없음 시점 필드를 새로운 재고 없음 시점으로 대체하는 단계,
    컴퓨터에 의해, 데이터 객체를 저장하는 단계, 및
    컴퓨터에 의해, 데이터 객체에 저장되는 데이터를 적어도 기초로 하여 제품 가용성 지시자를 제공하는 단계
    를 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  15. 청구항 14에 있어서,
    상기 상점에서의 상기 제품에 대한 제품 가용성 요청을 수신하는 단계
    를 더 포함하며, 제품 가용성 지시자를 제공하는 단계는, 제품 가용성 요청이 수신된 시점을, 제한 시점 필드와 재고 없음 시점 필드 중 적어도 한 가지와 비교하는 단계를 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  16. 청구항 14에 있어서,
    re=1/<t>이도록 상기 상점에서의 상기 제품에 대한 판매 이벤트 속도(re)를 결정하는 단계
    를 더 포함하며, 상기 판매 이벤트 속도는 기설정된 시간 기간 동안의 판매 이벤트 개수를 상기 기설정된 시간 기간으로 나눈 값이고
    새로운 제한 시점은 수학식(새로운_제한_시점 = T마지막_판매 - log(p1)/re)에 따라 결정되고,
    새로운 재고 없음 시점은 수학식(새로운_재고 없음_시점 = T마지막_판매 - log(p2)/re)에 따라 결정되는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  17. 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법에 있어서, 상기 방법은
    컴퓨터에 의해, POS(point of sale, 판매시점관리) 데이터를 수신하는 단계로서, POS 데이터는 판매된 제품, 제품이 판매된 상점, 및 제품이 판매된 시점에 대응하는 제 1 타임스탬프를 식별하는 단계,
    컴퓨터에 의해, 제품 및 상점에 대응하는 데이터 객체를 검색(retrieving)하는 단계로서, 상기 데이터 객체는 상기 제품에 대한 판매 이벤트에서 판매된 수량들의 평균 개수를 나타내는 제 1 속도(rate) 필드, 상기 제품에 대한 판매 이벤트들 사이의 평균 시간을 나타내는 제 2 속도(rate) 필드, 및 상기 제품의 마지막 판매 시점에 대응하는 타임스탬프 필드, 수량 필드 및 ΔT 필드를 포함하는 단계,
    컴퓨터에 의해, 상기 제 1 속도 필드 및 상기 제품의 상기 판매된 수량을 적어도 기초로 하여 판매된 수량의 새로운 평균 개수를 결정하는 단계;
    상기 컴퓨터에 의해, 상기 제 2 속도 필드, 상기 타임스탬프 필드, 및 상기 제 1 타임스탬프를 적어도 기초로 하여 판매 이벤트들 간의 새로운 평균 시간을 결정하는 단계,
    컴퓨터에 의해, 상기 제 1 속도 필드를 상기 판매된 수량의 새로운 평균 개수로 대체하는 단계;
    컴퓨터에 의해, 상기 제 2 속도 필드를 상기 판매 이벤트들 간의 상기 새로운 평균 시간으로 대체하는 단계,
    컴퓨터에 의해, 상기 타임스탬프 필드를 상기 제 1 타임스탬프로 대체하는 단계,
    컴퓨터에 의해, 상기 데이터 객체를 저장하는 단계, 및
    컴퓨터에 의해, 상기 데이터 객체에 저장된 상기 데이터를 적어도 기초로 하여 상기 제품 가용성 지시자를 제공하는 단계를 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  18. 청구항 17에 있어서,
    상기 컴퓨터에 의해, 재고 스냅샷(inventory snapshot)을 수신하는 단계로서, 상기 재고 스냅샷은 제 1 시점(T1)에서 상점에서의 제품의 재고(Q)를 반영하고, 상기 재고 스냅샷의 수신은 상기 제 1 시점 이후의 제 2 시점(T2)에서 발생하는 단계,
    상기 수량 필드를 상기 재고(Q)로 대체하는 단계, 및
    상기 ΔT 필드를 값(T2-T1)으로 대체하는 단계
    를 더 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  19. 청구항 18에 있어서, 데이터 객체는 rs-업로드 필드를 더 포함하며, 상기 방법은
    rs-업로드 필드를, 제 2 속도 필드로 나뉜 제 1 속도 필드의 값으로 대체하는 단계
    를 더 포함하는, 제품 가용성 지시자를 제공하기 위한 컴퓨터 실행형 방법.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
KR1020137003590A 2010-07-15 2011-07-15 로컬 쇼핑 및 재고 KR101408323B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US36478010P 2010-07-15 2010-07-15
US61/364,780 2010-07-15
US12/859,022 US20120016856A1 (en) 2010-07-15 2010-08-18 Content extractor
US12/859,022 2010-08-18
US13/070,344 2011-03-23
US13/070,344 US8392261B2 (en) 2010-07-15 2011-03-23 Local shopping and inventory
PCT/US2011/044220 WO2012009655A2 (en) 2010-07-15 2011-07-15 Local shopping and inventory

Publications (2)

Publication Number Publication Date
KR20130114641A KR20130114641A (ko) 2013-10-17
KR101408323B1 true KR101408323B1 (ko) 2014-06-20

Family

ID=45467680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137003590A KR101408323B1 (ko) 2010-07-15 2011-07-15 로컬 쇼핑 및 재고

Country Status (6)

Country Link
US (2) US8392261B2 (ko)
EP (1) EP2593929A4 (ko)
JP (2) JP5324727B2 (ko)
KR (1) KR101408323B1 (ko)
AU (1) AU2011278975B2 (ko)
WO (1) WO2012009655A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739363B1 (en) * 2003-05-09 2010-06-15 Apple Inc. Configurable offline data store
EP2126815A4 (en) 2006-09-13 2011-09-21 Tdp Inc INTEGRATED SYSTEM AND METHOD FOR MANAGING ELECTRONIC COUPONS
US8606629B2 (en) 2008-06-12 2013-12-10 Google, Inc. Providing coupons with a mobile computer of a merchant
US8392261B2 (en) 2010-07-15 2013-03-05 Google Inc. Local shopping and inventory
US20120016856A1 (en) 2010-07-15 2012-01-19 Google Inc Content extractor
US8401911B1 (en) 2011-03-22 2013-03-19 Google Inc. Display of popular, in-stock products of a merchant
US8566137B1 (en) * 2011-03-22 2013-10-22 Amazon Technologies, Inc. Inventory across multiple marketplaces
US8612356B2 (en) 2011-11-14 2013-12-17 Google Inc. Voucher code redemption via SMS
US20130304553A1 (en) 2012-05-09 2013-11-14 Google Inc. Point of sale offer redemptions
US10423998B2 (en) 2014-01-31 2019-09-24 Paypal, Inc. Product information system
US10528908B2 (en) * 2014-03-12 2020-01-07 Ebay Inc. Automatic location based discovery of extended inventory
KR101673539B1 (ko) * 2014-05-27 2016-11-07 인터테크(주) 단말, 그 제어 방법, 서비스 제공 장치 및 컴퓨터 프로그램이 기록된 기록매체
JP6329840B2 (ja) * 2014-07-30 2018-05-23 東芝テック株式会社 認識辞書管理装置及びプログラム
US10825069B2 (en) 2014-11-14 2020-11-03 The Joan and Irwin Jacobs Technion-Cornell Institute System and method for intuitive content browsing
US10460286B2 (en) 2014-11-14 2019-10-29 The Joan and Irwin Jacobs Technion-Cornell Institute Inventory management system and method thereof
US10062051B2 (en) 2014-12-19 2018-08-28 Curbside, Inc. Estimation of third party inventory
US20160189069A1 (en) * 2014-12-30 2016-06-30 E-Gatematrix, Llc Creating pre-order catalogs based on real-time inventories and carrier-related data
EP3262578A1 (en) * 2015-02-27 2018-01-03 Trendbox Bulut Bilisim Hizmetleri A.S. Data collection system and data transfer device thereof
JP6729553B2 (ja) * 2015-03-16 2020-07-22 日本電気株式会社 システム、画像認識方法、および、プログラム
JP6290149B2 (ja) * 2015-09-25 2018-03-07 東芝テック株式会社 チェックアウトシステム、登録装置、決済装置および制御プログラム
JP6606421B2 (ja) * 2015-12-22 2019-11-13 東芝テック株式会社 チェックアウトシステム及び登録装置
US20170228815A1 (en) * 2016-02-08 2017-08-10 LastMile Retail, Inc. Methods, systems, and media for providing aggregated and uniformly arranged item information
KR101718747B1 (ko) * 2016-09-28 2017-03-23 주식회사 옵티로 실시간 오픈마켓 재고관리서버 및 그 재고관리방법
US20190019239A1 (en) * 2017-07-12 2019-01-17 Somar Concepts Architecture, system and method for users to order items for delivery during travel events
JP6946106B2 (ja) * 2017-08-02 2021-10-06 株式会社平賀 売場情報投稿管理システム及び該システム用プログラム
US11308438B2 (en) 2018-07-12 2022-04-19 Rafael Ramos System and method for user to order items for delivery during travel event
JP6836254B1 (ja) * 2019-10-21 2021-02-24 株式会社Interior Haraguchi 商業施設におけるマーケティングシステムおよびマーケティング方法
US11276109B2 (en) 2020-03-25 2022-03-15 Coupang Corp. Computerized systems and methods for large-scale product listing
US11734749B2 (en) 2021-04-14 2023-08-22 Maplebear Inc. Online shopping system and method for selecting a warehouse for inventory based on predicted availability and predicted replacement machine learning models
US11948154B2 (en) 2021-07-29 2024-04-02 Capital One Services, Llc Computer-based systems configured for post-interaction data provisioning and methods of use thereof
WO2023092193A1 (en) * 2021-11-25 2023-06-01 Innoteck Pty Ltd Organization based information management methods and systems
JP7482200B1 (ja) 2022-12-20 2024-05-13 株式会社Zozo 決定装置、決定方法及び決定プログラム
CN117132361A (zh) * 2023-08-31 2023-11-28 重庆赛力斯新能源汽车设计院有限公司 商品无货标记方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377935B1 (en) 1989-05-01 2002-04-23 Catalina Marketing International, Inc. Method and system for selective incentive point-of-sale marketing in response to customer shopping histories
US20080029597A1 (en) 2006-08-04 2008-02-07 Intermec Ip Corp. Testing automatic data collection devices, such as barcode, rfid and/or magnetic stripe readers
US20100106801A1 (en) 2008-10-22 2010-04-29 Google, Inc. Geocoding Personal Information

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237496A (en) 1988-12-07 1993-08-17 Hitachi, Ltd. Inventory control method and system
JPH02155067A (ja) * 1988-12-07 1990-06-14 Hitachi Ltd 在庫警告方法及びこれを用いた在庫警告システム
US6334108B1 (en) 1989-05-01 2001-12-25 Catalina Marketing International, Inc. Method and system for selective incentive point-of-sale marketing in response to customer shopping histories
US5855007A (en) 1995-11-15 1998-12-29 Jovicic; Neboisa Electronic coupon communication system
US20040243478A1 (en) 1996-09-04 2004-12-02 Walker Jay S. Purchasing, redemption, and settlement systems and methods wherein a buyer takes possession at a retailer of a product purchased using a communication network
US6131811A (en) 1998-05-29 2000-10-17 E-Micro Corporation Wallet consolidator
US20020198791A1 (en) 1999-04-21 2002-12-26 Perkowski Thomas J. Internet-based consumer product brand marketing communication system which enables manufacturers, retailers and their respective agents, and consumers to carry out product-related functions along the demand side of the retail chain in an integrated manner
US7742943B2 (en) 1999-06-23 2010-06-22 Signature Systems Llc Method and system for issuing, aggregating and redeeming merchant loyalty points with an acquiring bank
US7512551B2 (en) 1999-06-23 2009-03-31 Signature Systems Llc Method and system for implementing a search engine with reward components and payment components
US20050071230A1 (en) 1999-07-07 2005-03-31 Mankoff Jeffrey W. Delivery, organization, and redemption of virtual offers from the internet, interactive-TV, wireless devices and other electronic means
US6993498B1 (en) 1999-07-15 2006-01-31 Midnight Blue Remote Access, Llc Point-of-sale server and method
US20030120546A1 (en) 2000-03-07 2003-06-26 Bracewell & Patterson Llp System and method for facilitating real-time web-based point of sale (Pos) transactions and operations
US7240027B2 (en) 2000-04-07 2007-07-03 The Procter & Gamble Company Method and apparatus for monitoring the flow of items through a store or warehouse
FR2810433A1 (fr) 2000-06-15 2001-12-21 Igtech Systeme et procede de couponnage electronique
EP1170685A3 (en) 2000-06-29 2004-03-03 Hitachi, Ltd. IC card, settlement system and method with IC card
JP3527211B2 (ja) 2000-08-01 2004-05-17 日立マクセル株式会社 電子クーポン・システム
US20020138348A1 (en) 2000-10-27 2002-09-26 Sandhya Narayan Electronic coupon system
CA2428518A1 (en) 2000-11-10 2002-12-19 In2M Corporation Methods and systems for electronic coupon issuance transmission and management
JP3931554B2 (ja) 2000-11-15 2007-06-20 株式会社日立製作所 クーポン管理システム及びクーポン管理方法
JP2002169861A (ja) * 2000-12-05 2002-06-14 Matsushita Electric Ind Co Ltd 在庫管理システムおよび在庫管理システムプログラム
US20020070976A1 (en) 2000-12-07 2002-06-13 Tanner Robert G. Selectively disclosing and teaching previously unused features in a multi-function system
JP2002269425A (ja) 2001-03-12 2002-09-20 Nec Corp 電子クーポン方法,電子クーポンシステム,販売サーバ,発注者端末,受注者端末,プログラム
US20020160761A1 (en) 2001-03-13 2002-10-31 Jason Wolfe Apparatus for the wireless delivery and redemption of merchant discount offers
US20020147651A1 (en) 2001-04-06 2002-10-10 Hoar Kevin G. Method of and apparatus for determining item availability
US20040236700A1 (en) 2001-07-10 2004-11-25 American Express Travel Related Services Company, Inc. Method and system for keystroke scan recognition biometrics on a fob
US7860789B2 (en) 2001-07-24 2010-12-28 Jpmorgan Chase Bank, N.A. Multiple account advanced payment card and method of routing card transactions
US8020754B2 (en) 2001-08-13 2011-09-20 Jpmorgan Chase Bank, N.A. System and method for funding a collective account by use of an electronic tag
JP2003242296A (ja) * 2002-02-20 2003-08-29 Miki Uematsu 売筋商品・死筋商品検出方式
US6755344B1 (en) 2002-03-12 2004-06-29 First Data Corporation Systems and methods for determining an authorization threshold
US20030233276A1 (en) 2002-06-18 2003-12-18 Mark Pearlman System and method of using portable electronic devices for electronic coupon and voucher redemption
US7822688B2 (en) 2002-08-08 2010-10-26 Fujitsu Limited Wireless wallet
US7346635B2 (en) 2003-01-21 2008-03-18 Connection Concepts, Inc. System and method for transferring a database from one location to another over a network
US7240843B2 (en) 2003-01-22 2007-07-10 Lobar Code Technologies, Inc. Universal club card and real-time coupon validation
US20050108523A1 (en) 2003-02-22 2005-05-19 Earle West Method and apparatus for collecting remote data
US20040249712A1 (en) 2003-06-06 2004-12-09 Brown Sean D. System, method and computer program product for presenting, redeeming and managing incentives
US8301494B2 (en) 2003-09-11 2012-10-30 Catalina Marketing Corporation Method and system for managing inventory and promotions campaign based on redemption data
US7152074B2 (en) 2003-09-19 2006-12-19 International Business Machines Corporation Extensible framework supporting deposit of heterogenous data sources into a target data repository
US7379890B2 (en) * 2003-10-17 2008-05-27 Makor Issues And Rights Ltd. System and method for profit maximization in retail industry
US20050165651A1 (en) 2004-01-22 2005-07-28 Krishna Mohan Point of sale business transaction data gathering using portable memory device
US20050234771A1 (en) 2004-02-03 2005-10-20 Linwood Register Method and system for providing intelligent in-store couponing
JP4812269B2 (ja) * 2004-03-31 2011-11-09 株式会社日立製作所 需要変動リスク最小生産計画生成方法
NZ551491A (en) 2004-04-27 2009-01-31 Stephen Cooper Macnish Electronic voucher system and associated method
JP2006018777A (ja) * 2004-07-05 2006-01-19 Japan Research Institute Ltd 物品発注量決定方法、物品発注量決定装置、及びコンピュータプログラム
US7661103B2 (en) 2005-04-27 2010-02-09 Jerry Glade Hayward Apparatus, system, and method for decentralized data conversion
US20070016494A1 (en) * 2005-06-27 2007-01-18 3M Innovative Properties Company Methods of adjusting sales plans
US20070061210A1 (en) * 2005-09-09 2007-03-15 Li Chen Methods for reducing retail out-of-stocks using store-level RFID data
US20070067203A1 (en) 2005-09-21 2007-03-22 Sukenik Gil System for data collection from a point of sale
JP2007172307A (ja) 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> 商品の仕入または生産を支援するシステム
US8375063B2 (en) 2006-01-31 2013-02-12 International Business Machines Corporation Method and program product for migrating data from a legacy system
US8028915B2 (en) 2006-04-04 2011-10-04 Symbol Technologies, Inc. Configuration migration for data capture systems
US8027439B2 (en) 2006-09-18 2011-09-27 Fair Isaac Corporation Self-calibrating fraud detection
US8712822B2 (en) 2006-12-07 2014-04-29 Hyperactive Technologies, Inc. Real-time demand prediction in a fast service restaurant environment
US7896244B2 (en) 2006-12-15 2011-03-01 Ziti Technologies Limited Liability Company System and method for managing a collection of stock replenishment systems
US20080228567A1 (en) 2007-03-16 2008-09-18 Microsoft Corporation Online coupon wallet
US7634489B2 (en) 2007-03-28 2009-12-15 Ciena Corporation Methods and systems for a network element database migration service
US8104671B2 (en) 2007-06-12 2012-01-31 Catalina Marketing Corporation Store solutions
US7895116B2 (en) * 2007-07-25 2011-02-22 Mukesh Chatter Seller automated engine architecture and methodology for optimized pricing strategies in automated real-time iterative reverse auctions over the internet and the like for the purchase and sale of goods and services
US20090094126A1 (en) 2007-10-03 2009-04-09 Patrick Killian Dual use point of sale terminal and methods of operating same
US8423414B2 (en) 2008-02-12 2013-04-16 International Business Machines Corporation Method and system for pausing, migrating, and restarting retail point-of-sale transactions
US20100306080A1 (en) * 2008-10-08 2010-12-02 Trandal David S Methods and systems for receipt management and price comparison
US8145681B2 (en) 2009-08-11 2012-03-27 Sap Ag System and methods for generating manufacturing data objects
US20110125565A1 (en) 2009-11-24 2011-05-26 Visa U.S.A. Inc. Systems and Methods for Multi-Channel Offer Redemption
US8548859B2 (en) 2010-01-22 2013-10-01 Spendgo, Inc. Point of sale network router
US9129269B2 (en) 2010-02-02 2015-09-08 Xia Dai Secured point-of-sale transaction system
US8392261B2 (en) 2010-07-15 2013-03-05 Google Inc. Local shopping and inventory
US20120016856A1 (en) 2010-07-15 2012-01-19 Google Inc Content extractor
US20120089467A1 (en) 2010-10-06 2012-04-12 Rt7 Incorporated System and method of capturing point-of-sale data and providing real-time advertising content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377935B1 (en) 1989-05-01 2002-04-23 Catalina Marketing International, Inc. Method and system for selective incentive point-of-sale marketing in response to customer shopping histories
US20080029597A1 (en) 2006-08-04 2008-02-07 Intermec Ip Corp. Testing automatic data collection devices, such as barcode, rfid and/or magnetic stripe readers
US20100106801A1 (en) 2008-10-22 2010-04-29 Google, Inc. Geocoding Personal Information

Also Published As

Publication number Publication date
US20130179311A1 (en) 2013-07-11
WO2012009655A3 (en) 2012-05-31
US8392261B2 (en) 2013-03-05
WO2012009655A2 (en) 2012-01-19
EP2593929A2 (en) 2013-05-22
EP2593929A4 (en) 2014-02-19
JP5324727B2 (ja) 2013-10-23
AU2011278975B2 (en) 2013-05-23
AU2011278975A1 (en) 2013-02-21
KR20130114641A (ko) 2013-10-17
US20120016780A1 (en) 2012-01-19
JP2013534682A (ja) 2013-09-05
JP2013254504A (ja) 2013-12-19
JP5842200B2 (ja) 2016-01-13

Similar Documents

Publication Publication Date Title
KR101408323B1 (ko) 로컬 쇼핑 및 재고
US8335722B2 (en) Local shopping and inventory
US8401911B1 (en) Display of popular, in-stock products of a merchant
US20240029146A1 (en) Scheduling of order processing for remotely ordered goods
US20090265216A1 (en) Method and apparatus for customer specific based food preparation prediction
US10713638B2 (en) Electronic receipt system, electronic receipt center, clearance prediction information management method, and non-transitory computer readable medium having clearance information management program stored thereon
JP2014186470A (ja) 生産商品受注システム
JP5149958B2 (ja) 商品受注装置、商品受注方法、商品受注プログラム、及びそのプログラムを記録するコンピュータ読取可能な記録媒体
GB2547089A (en) Systems and methods for forecasting on-shelf product availability
AU2013206485A1 (en) Local shopping and inventory
JP2013214177A (ja) 決済処理システム、決済処理装置、決済処理方法、およびプログラム
JP4664847B2 (ja) 過誤発注防止方法
AU2012100063A4 (en) Identifying an unavailable stocked product
JP2002170007A (ja) 生鮮農産物のオーダーシステム
JP2003323542A (ja) 販売日予測による営業支援装置

Legal Events

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

Payment date: 20170530

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 6