소비자 POS(Point of Sale) 응용 프로그램

소비자 POS(Point of Sale) 응용 프로그램에는 판매 시점에 소비자에게 직접 또는 간접적으로 노출되는 응용 프로그램이 포함됩니다. 예를 들어 출납원이 사용하는 단말기, ATM기, 상점 내 키오스크 등이 있습니다. 이러한 응용 프로그램은 원격 사이트에서 데이터를 수집하여 본사 또는 데이터 센터와 같은 중앙 위치로 전송합니다. 일반적으로 이러한 응용 프로그램에서는 대개 소비자 또는 판매 직원과 같은 단일 원격 사용자가 특정 데이터를 업데이트하기 때문에 주로 판매 시점에서 데이터가 수집된 후 충돌 없이 본사로 업로드됩니다.

다음 다이어그램에서는 중앙 사이트와 원격 위치 간 양방향 데이터 흐름이 있는 일반적인 시나리오를 보여 줍니다.

매장에서 본사로 데이터 복제

Adventure Works Cycles 예

Adventure Works Cycles는 데이터베이스 개념 및 시나리오를 설명하는 데 사용되는 가상 제조 회사입니다. 자세한 내용은 AdventureWorks2008R2 예제 데이터베이스를 참조하십시오.

Adventure Works Cycles 제품을 판매하는 소매점은 대부분 중앙 사이트에서 데이터를 받고 중앙 사이트로 데이터를 전송하는 POS 시스템을 사용합니다. 일반적으로 읽기 전용 제품 가격 및 창고 재고 데이터는 업데이트될 때마다 소매점으로 전송됩니다. 고객 구매 정보는 각 소매점에서 중앙 사이트로 전송됩니다.

이 시나리오의 일반적인 요구 사항

일반적으로 POS 응용 프로그램에는 다음과 같은 특징이 있으므로 해당 복제 솔루션에서도 이러한 특징을 고려해야 합니다.

  • 대부분 데이터가 원격 사이트에서 입력 및 업데이트됩니다.

  • 원격 사용자는 중앙 사이트에 연결하지 않고도 독립적으로 업데이트할 수 있어야 합니다.

  • 원격 사이트에서 업데이트되는 데이터는 다른 사이트에서 업데이트되지 않습니다. 따라서 충돌은 발생하지 않습니다.

  • 제품 설명 테이블의 데이터 같은 일부 데이터는 중앙 사이트에서만 업데이트해야 합니다.

  • 사용자는 업무 종료 시와 같은 예약된 시간에 데이터를 동기화합니다.

  • 응용 프로그램에서 원격 사이트가 동기화되지 않은 상태로 유지될 기간을 제어해야 합니다.

  • 일부 테이블을 필터링하여 각 상점에서 하나 이상의 테이블에 대해 서로 다른 데이터를 받도록 해야 합니다. 예를 들어 각 상점은 해당 재고 제품에 대한 정보만 받습니다.

  • 응용 프로그램에 데이터 동기화 시 실행될 사용자 지정 비즈니스 논리가 필요할 수 있습니다.

  • 응용 프로그램에 전용 연결이 아닌 인터넷을 통한 데이터 동기화가 필요할 수 있습니다.

다음 다이어그램에서는 이 시나리오와 연결된 필터링을 보여 줍니다.

POS 응용 프로그램의 필터링

이 시나리오에 사용할 복제 유형

Microsoft SQL Server에서는 복제 시스템의 구성 요소를 기술하는 데 게시 관련 산업의 메타포를 사용합니다. 구성 요소에는 게시자, 구독자, 게시 및 아티클과 구독이 포함됩니다. 위의 다이어그램에서 중앙 사이트는 게시자입니다. 중앙 사이트의 데이터는 게시이며 데이터의 각 테이블은 아티클입니다. 아티클은 저장 프로시저와 같은 다른 데이터베이스 개체일 수도 있습니다. 각 POS 단말기는 스키마와 데이터를 구독으로 받는 게시의 구독자입니다. 시스템 구성 요소에 대한 자세한 내용은 복제 게시 모델 개요를 참조하십시오.

SQL Server는 다양한 응용 프로그램 요구 사항을 위해 스냅숏 복제, 트랜잭션 복제 및 병합 복제와 같은 여러 복제 유형을 제공합니다. 이 시나리오는 이전 섹션에서 설명한 요구 사항을 해결하기에 가장 적합한 병합 복제를 통해 최적으로 구현됩니다. 병합 복제에 대한 자세한 내용은 병합 복제 개요병합 복제 작동 방법을 참조하십시오.

이 시나리오와 관련된 병합 복제 옵션

병합 복제에서 제공하는 여러 가지 옵션을 통해 이 항목의 앞부분에서 설명한 요구 사항을 해결할 수 있습니다. 다음 목록은 각 요구 사항과 이를 해결하는 병합 복제 옵션을 제시합니다.

  • 대부분 데이터가 원격 사이트에서 입력 및 업데이트됩니다.

    병합 복제는 별도의 옵션을 지정하지 않아도 이 기능을 제공합니다.

  • 원격 사용자는 중앙 사이트에 연결하지 않고도 독립적으로 업데이트할 수 있어야 합니다.

    병합 복제는 별도의 옵션을 지정하지 않아도 이 기능을 제공합니다.

  • 원격 사이트에서 업데이트되는 데이터는 다른 사이트에서 업데이트되지 않습니다. 따라서 충돌은 발생하지 않습니다.

    POS 응용 프로그램에서는 단일 사용자가 특정 데이터를 업데이트하기 때문에 충돌이 자주 발생하지 않습니다. 사용자 간에 데이터가 겹치지 않기 때문에 겹치지 않는 파티션 옵션을 사용하여 성능을 최적화할 수 있습니다. 자세한 내용은 매개 변수가 있는 행 필터 항목의 "'partition options' 설정" 섹션을 참조하십시오.

    병합 복제는 데이터 충돌이 예상되는 경우에 대비하여 충돌 감지 및 해결 기능을 제공합니다. 자세한 내용은 병합 복제 충돌 감지 및 해결을 참조하십시오.

  • 제품 가격 테이블의 데이터와 같은 일부 데이터는 중앙 사이트에서만 업데이트해야 합니다.

    병합 복제는 게시자에서만 업데이트되어야 하는 테이블을 위해 다운로드 전용 아티클을 제공합니다. 자세한 내용은 다운로드 전용 아티클로 병합 복제 성능 최적화를 참조하십시오.

  • 예약된 일정으로도 동기화가 진행되어야 하지만 필요한 경우 사용자가 데이터를 동기화할 수 있어야 합니다.

    복제는 밀어넣기 구독과 끌어오기 구독이라는 두 가지 구독 유형을 제공합니다. 끌어오기 구독이 요청 시 동기화에 보다 적합합니다. 구독 유형 및 동기화 예약에 대한 자세한 내용은 게시 구독데이터 동기화를 참조하십시오.

  • 응용 프로그램에서 원격 사이트가 동기화되지 않은 상태로 유지될 기간을 제어해야 합니다.

    병합 복제를 사용하면 구독 만료 기간을 설정하여 모든 구독자가 일정 기간 내에 동기화되도록 할 수 있습니다. 자세한 내용은 구독 만료 및 비활성화를 참조하십시오.

  • 대부분의 테이블을 필터링하여 각 사용자가 하나 이상의 테이블에 대해 서로 다른 데이터를 받도록 해야 합니다.

    병합 복제를 사용하면 열 및 행을 필터링할 수 있습니다. 행 필터는 정적 필터 또는 매개 변수가 있는 필터일 수 있습니다. 정적 필터는 게시가 생성될 경우에만 적용되며 하나의 데이터 집합이 생성됩니다. 매개 변수가 있는 필터는 구독자가 동기화할 때마다 적용되며 각 구독자마다 다른 데이터 집합이 생성됩니다. POS 응용 프로그램은 매개 변수가 있는 필터를 사용하는 경우가 많지만 정적 필터를 사용할 수도 있습니다. 자세한 내용은 병합 복제의 게시된 데이터 필터링을 참조하십시오.

  • 응용 프로그램에 데이터 동기화 시 실행될 사용자 지정 비즈니스 논리가 필요할 수 있습니다.

    병합 복제를 사용하면 동기화하는 동안 실행될 코드를 지정할 수 있습니다. 이 코드는 광범위한 이벤트에 응답할 수 있으며 동기화 중인 데이터에 액세스할 수 있습니다. 자세한 내용은 병합 동기화 중 비즈니스 논리 실행을 참조하십시오.

  • 응용 프로그램에 전용 연결이 아닌 인터넷을 통한 데이터 동기화가 필요할 수 있습니다.

    SQL Server Compact 3.5 SP2 사용 시 데이터는 HTTP 또는 HTTPS 연결을 통해 동기화됩니다. 다른 SQL Server 버전에서는 HTTPS가 필요한 웹 동기화를 사용할 수 있습니다. 자세한 내용은 병합 복제에 대한 웹 동기화를 참조하십시오.

이 시나리오 구현을 위한 단계

이 시나리오를 구현하려면 우선 게시와 구독을 생성한 다음 각 구독을 초기화해야 합니다. 각 단계에 대한 자세한 내용을 보려면 아래 링크를 클릭하십시오.

구독이 초기화되고 게시자와 구독자 간 데이터 흐름이 시작된 후 일반적인 관리 및 모니터링 태스크에 대한 정보를 보려면 다음 항목을 참조하십시오.