모바일 사용자와 데이터 교환
모바일 사용자에게 데이터를 제공하고 이러한 사용자로부터 데이터를 수집하는 작업은 많은 응용 프로그램의 핵심이라 할 수 있습니다. 모바일 사용자를 지원하는 대부분의 응용 프로그램은 다음 두 개의 범주 중 하나에 해당합니다.
CRM(Customer Relationship Management) 및 SFA(Sales Force Automation)
예를 들어 영업 사원은 고객을 방문하는 동안 SFA 응용 프로그램을 사용하여 주문 데이터를 입력할 수 있습니다. 이 데이터는 본사나 데이터 센터와 같은 중앙 위치로 다시 전송됩니다.
FFA(Field force automation)
예를 들어 배달원, 유지 관리 직원 및 검사관 등의 현장 직원이 핸드헬드 장치에서 FFA 응용 프로그램을 사용하여 원격 위치의 데이터를 수집 및 전송할 수 있습니다. 배달원이 배달 위치에서 포장 배달에 대한 데이터를 입력하면 이 데이터는 중앙 위치로 전송됩니다.
두 가지 응용 프로그램 범주 모두 매우 유사한 복제 기능을 필요로 합니다. 응용 프로그램간 주요 차이점은 데이터가 둘 이상의 사용자에 의해 업데이트되는지 여부입니다. 이 문제는 이 항목의 "이 시나리오의 일반적인 요구 사항" 섹션에서 설명합니다.
다음 다이어그램에서는 데이터를 모바일 사용자에게 배달할 수 있는 두 가지 방법을 보여 줍니다. 첫 번째는 랩톱을 사용하는 것이고 두 번째는 MicrosoftSQL Server Compact 3.5 SP1을 실행하는 다른 장치를 사용하는 것입니다. 첫 번째 방법은 SFA와 CRM 응용 프로그램에서 일반적으로 사용되고 두 번째 방법은 FFA 응용 프로그램에서 일반적으로 사용됩니다. 하지만 응용 프로그램 범주에 상관없이 어느 방법이든 사용할 수 있습니다.
첫 번째 다이어그램은 랩톱을 사용하는 사용자 집합이 중앙 사이트에 직접 연결되어 있는 시나리오를 보여 줍니다.
두 번째 다이어그램은 장치를 사용하는 사용자가 Microsoft Windows 인터넷 정보 서비스(IIS) 서버를 통해 중앙 사이트에 연결하는 시나리오를 보여 줍니다. IIS 서버는 SQL Server Compact 3.5 SP1을 사용할 때 필요합니다.
Adventure Works Cycles 예
Adventure Works Cycles는 데이터베이스 개념 및 시나리오를 설명하는 데 사용되는 가상 제조 회사입니다. 자세한 내용은 AdventureWorks 예제 데이터베이스를 참조하십시오.
Adventure Works Cycles에는 회사의 주요 고객인 독립된 프랜차이즈 자전거 대리점과 직접 거래를 하면서 현장에서 많은 시간을 보내는 영업 사원이 많이 있습니다. 영업팀은 지역별로 할당되며 각 영업 사원은 일반적으로 자신의 고객만을 담당합니다. 하지만 고객 데이터는 영업 사원과 판매 관리자가 공유할 수 있습니다. 영업 사원은 자신의 랩톱에 주문 데이터를 입력한 다음 편리한 시간에 이 데이터를 본사로 전송합니다.
Adventure Works Cycles에서는 자전거나 부품을 배달할 때 A-1 Shipping을 이용합니다. A-1 Shipping의 배달원은 모두 SQL Server Compact 3.5 SP1을 실행하는 장치를 사용합니다. 배달원은 배달이 완료되면 각 배달에 대한 데이터를 입력합니다. 이 데이터는 A-1 Shipping에 복제되고 장치에서는 삭제됩니다. 여기까지 완료되면 Adventure Works Cycles에서 해당 데이터를 고객 익스트라넷을 통해 사용할 수 있습니다.
이 시나리오의 일반적인 요구 사항
일반적으로 CRM, SFA 및 FFA 응용 프로그램에는 다음과 같은 요구 사항을 충족하는 적합한 복제 솔루션이 제공되어야 합니다.
랩톱이나 장치에서 응용 프로그램을 사용자 지정하여 최종 사용자에게 복제 사실을 알리지 않고도 동기화할 수 있도록 데이터 동기화를 프로그래밍할 수 있어야 합니다.
대부분의 모바일 응용 프로그램에서 데이터는 중앙 사이트 및 원격 사이트에서 입력 및 업데이트될 수 있습니다. FFA 응용 프로그램에서는 대부분의 데이터가 원격 사이트에서 입력됩니다.
원격 사용자는 랩톱, 장치 또는 Tablet PC를 사용하여 데이터를 입력하고 업데이트합니다.
원격 사용자는 중앙 사이트에 연결하지 않고도 독립적으로 업데이트할 수 있어야 합니다.
여러 사용자가 동일한 데이터를 개별적으로 업데이트할 수 있으므로 데이터 충돌이 발생할 수 있으며 이러한 충돌을 처리해야 합니다.
제품 가격 테이블의 데이터 같은 일부 데이터는 중앙 사이트에서만 업데이트해야 합니다.
예약된 일정으로도 동기화가 진행되어야 하지만 필요한 경우 사용자가 데이터를 동기화할 수 있어야 합니다.
응용 프로그램에서 원격 사이트가 동기화되지 않은 상태로 유지될 기간을 제어해야 합니다.
테이블 일부를 필터링하여 각 사용자가 하나 이상의 테이블에 대해 서로 다른 데이터를 받도록 해야 합니다. 예를 들어 각 영업 사원은 자신의 고객에 대한 연락처 정보만 받을 수 있습니다.
사이트 간에 전송될 때 하나의 단위로 취급되어야 하는 데이터도 있습니다. 예를 들어 원격 사용자가 중앙 사이트로 주문서를 전달할 경우 주문서 헤더가 주문 세부 사항보다 먼저 확인되어야 합니다.
응용 프로그램에 데이터 동기화 시 실행될 사용자 지정 비즈니스 논리가 필요할 수 있습니다.
응용 프로그램에 VPN이나 IPSEC 전화 접속 연결이 아닌 인터넷을 통한 데이터 동기화가 필요할 수 있습니다.
CRM 및 SFA 응용 프로그램과 FFA 응용 프로그램 간의 주요 복제 차이점은 데이터가 두 명 이상의 사용자에 의해 업데이트되는지 여부입니다. 두 명 이상의 사용자가 업데이트를 수행하면 충돌이 발생할 수 있습니다. 두 명 이상의 사용자에 의해 업데이트되는 데이터의 양은 데이터가 필터링되는 정도에 따라 달라집니다. 예를 들어 모든 사용자가 자신의 데이터 집합만 업데이트하도록 데이터를 필터링하면 사용자 사이에 충돌이 발생하지 않습니다.
CRM과 SFA 응용 프로그램에서는 데이터를 필터링하는 경우가 많지만 일부 데이터는 여전히 두 명 이상의 사용자에 의해 업데이트됩니다. 일부 데이터는 본사에서만 업데이트되는데 이 중 일부 데이터는 단일 원격 사용자에 의해 업데이트되고 다른 일부 데이터는 두 명 이상의 원격 사용자에 의해 업데이트됩니다. 다음 다이어그램에서는 CRM과 SFA의 일반적인 필터링에 대해 설명합니다.
FFA 응용 프로그램에서는 단일 원격 사용자가 지정된 데이터를 업데이트하므로 현장에서 데이터를 수집하여 충돌 없이 본사로 업로드하는 것이 일반적입니다. 다음 다이어그램에서는 FFA 응용 프로그램의 일반적인 필터링을 보여 줍니다.
이 시나리오에 사용할 복제 유형
SQL Server에서는 복제 시스템의 구성 요소를 기술하는 데 게시 관련 산업의 메타포를 사용합니다. 구성 요소에는 게시자, 구독자, 게시 및 아티클과 구독이 포함됩니다. 위의 처음 두 다이어그램에서 중앙 사이트는 게시자입니다. 중앙 사이트의 데이터는 게시이며 데이터의 각 테이블은 아티클입니다. 아티클은 저장 프로시저와 같은 다른 데이터베이스 개체일 수도 있습니다. 각 영업 사원의 랩톱과 배달원의 장치는 게시에 대한 구독자이며 스키마와 데이터를 구독으로 받습니다. 시스템 구성 요소에 대한 자세한 내용은 복제 게시 모델 개요를 참조하십시오.
SQL Server는 다양한 응용 프로그램 요구 사항을 위해 스냅숏 복제, 트랜잭션 복제 및 병합 복제와 같은 여러 복제 유형을 제공합니다. 이 시나리오는 이전 섹션에서 설명한 요구 사항을 해결하기에 가장 적합한 병합 복제를 통해 최적으로 구현됩니다. 병합 복제에 대한 자세한 내용은 병합 복제 개요 및 병합 복제 작동 방법을 참조하십시오.
이 시나리오와 관련된 병합 복제 옵션
병합 복제에서 제공하는 여러 가지 옵션을 통해 이 항목의 앞부분에서 설명한 요구 사항을 해결할 수 있습니다. 다음 목록은 각 요구 사항과 이를 해결하는 병합 복제 옵션을 제시합니다.
데이터 동기화를 프로그래밍할 수 있어야 합니다.
복제는 저장 프로시저와 RMO(복제 관리 개체)를 통해 프로그래밍 기능을 제공합니다. RMO는 일반적으로 모바일 응용 프로그램에 사용됩니다. 복제를 프로그래밍하는 방법은 개발자 가이드(복제) 및 Sales Orders Sample Scenario를 참조하십시오.
대부분의 모바일 응용 프로그램에서 데이터는 중앙 사이트 및 원격 사이트에서 입력 및 업데이트될 수 있습니다. FFA 응용 프로그램에서는 대부분의 데이터가 원격 사이트에서 입력됩니다.
병합 복제는 별도의 옵션을 지정하지 않아도 이 기능을 제공합니다.
원격 사용자는 랩톱, 장치 또는 Tablet PC를 사용하여 데이터를 입력 및 업데이트합니다.
랩톱 및 Tablet PC는 SQL Server Standard 및 기타 버전(SQL Server Compact 3.5 SP1 포함)을 실행할 수 있지만 Pocket PC 장치에는 SQL Server Compact 3.5 SP1가 필요합니다. 병합 복제를 통해 SQL Server Compact 3.5 SP1에서 사용할 수 있는 게시와 구독을 만들 수 있습니다. 자세한 내용은 SQL Server Compact에 데이터 복제를 참조하십시오.
원격 사용자는 중앙 사이트에 연결하지 않고도 독립적으로 업데이트할 수 있어야 합니다.
병합 복제는 별도의 옵션을 지정하지 않아도 이 기능을 제공합니다.
여러 사용자가 동일한 데이터를 개별적으로 업데이트할 수 있으므로 데이터 충돌이 발생할 수 있으며 이러한 충돌을 처리해야 합니다.
병합 복제는 데이터 충돌이 예상되는 경우에 대비하여 충돌 감지 및 해결 기능을 제공합니다. 충돌을 피하도록 응용 프로그램을 디자인하는 것이 가장 좋은 방법이지만 이것이 불가능할 경우 기본 충돌 해결 메커니즘(먼저 나오는 항목 먼저 적용)을 선택하거나 사용자 지정 충돌 해결 방법을 사용할 수 있습니다. 자세한 내용은 병합 복제 충돌 감지 및 해결을 참조하십시오.
제품 가격 테이블의 데이터 같은 일부 데이터는 중앙 사이트에서만 업데이트해야 합니다.
병합 복제는 게시자에서만 업데이트되어야 하는 테이블을 위해 다운로드 전용 아티클을 제공합니다. 자세한 내용은 다운로드 전용 아티클로 병합 복제 성능 최적화를 참조하십시오.
예약된 일정으로도 동기화가 진행되어야 하지만 필요한 경우 사용자가 데이터를 동기화할 수 있어야 합니다.
복제는 밀어넣기 구독과 끌어오기 구독이라는 두 가지 구독 유형을 제공합니다. 끌어오기 구독이 요청 시 동기화에 보다 적합합니다. 구독 유형 및 동기화 예약에 대한 자세한 내용은 게시 구독 및 데이터 동기화를 참조하십시오.
응용 프로그램에서 원격 사이트가 동기화되지 않은 상태로 유지될 기간을 제어해야 합니다.
병합 복제를 사용하면 구독 만료 기간을 설정하여 모든 구독자가 일정 기간 내에 동기화되도록 할 수 있습니다. 자세한 내용은 구독 만료 및 비활성화를 참조하십시오.
테이블 일부를 필터링하여 각 사용자가 하나 이상의 테이블에 대해 서로 다른 데이터를 받도록 해야 합니다. 예를 들어 각 영업 사원은 자신의 고객에 대한 연락처 정보만 받을 수 있습니다.
병합 복제를 사용하면 열 및 행을 필터링할 수 있습니다. 행 필터는 정적 필터 또는 매개 변수가 있는 필터일 수 있습니다. 정적 필터는 게시가 생성될 경우에만 적용되며 하나의 데이터 집합이 생성됩니다. 매개 변수가 있는 필터는 구독자가 동기화할 때마다 적용되며 각 구독자마다 다른 데이터 집합이 생성됩니다. CRM 및 SFA 응용 프로그램은 매개 변수가 있는 필터를 자주 사용하지만 정적 필터도 사용할 수 있습니다. 자세한 내용은 병합 복제의 게시된 데이터 필터링을 참조하십시오.
사이트 간에 전송될 때 하나의 단위로 취급되어야 하는 데이터도 있습니다. 예를 들어 원격 사용자가 중앙 사이트로 주문서를 전달할 경우 주문서 헤더가 주문 세부 사항보다 먼저 확인되어야 합니다.
병합 복제를 사용하면 관련 테이블 집합을 하나의 단위로 처리하도록 지정할 수 있습니다. 이러한 단위를 논리 레코드라고 합니다. 자세한 내용은 논리적 레코드를 사용하여 관련된 행의 변경 내용을 그룹화를 참조하십시오.
응용 프로그램에 데이터 동기화 시 실행될 사용자 지정 비즈니스 논리가 필요할 수 있습니다.
병합 복제를 사용하면 동기화하는 동안 실행될 코드를 지정할 수 있습니다. 이 코드는 광범위한 이벤트에 응답할 수 있으며 동기화 중인 데이터에 액세스할 수 있습니다. 자세한 내용은 병합 동기화 중 비즈니스 논리 실행을 참조하십시오.
응용 프로그램에 전용 연결이 아닌 인터넷을 통한 데이터 동기화가 필요할 수 있습니다.
(SQL Server Compact 3.5 SP1) 사용 시 데이터는 HTTP 또는 HTTPS 연결을 통해 동기화됩니다. 다른 SQL Server 버전에서는 HTTPS가 필요한 웹 동기화를 사용할 수 있습니다. 자세한 내용은 병합 복제에 대한 웹 동기화를 참조하십시오.
이 시나리오 구현을 위한 단계
이 시나리오를 구현하려면 우선 게시와 구독을 생성한 다음 각 구독을 초기화해야 합니다. 각 단계에 대한 자세한 내용을 보려면 아래 링크를 클릭하십시오.
구독이 초기화되고 게시자와 구독자 간 데이터 흐름이 시작된 후 일반적인 관리 및 모니터링 태스크에 대한 정보를 보려면 다음 항목을 참조하십시오.