SyncML Sync Protocol Spec. 동기화 타입

Download Report

Transcript SyncML Sync Protocol Spec. 동기화 타입

이번 시간에는...
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
지난 시간에는 모바일 응용 프로토콜의 두번째 시간으로, VoIP 정의와 특징 및 구성 및 H.323
표준 프로토콜과 SIP의 특징, SIP 통신 방식, SIP 구성 및 플로우, 그리고 SIP로 가능한 서비스
에 대해 알아보았습니다.
이번 시간에는 모바일 응용 프로토콜, 그 세번째 시간으로 SyncML에 대하여 학습해 보도록 하
겠습니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
학습 목표
31 회차 강의에서 다루게 되는 내용은 다음과 같습니다.
모바일 응용 프로토콜 – III
SyncML
이번 장의 학습 목표
1)
데이터 동기화 및 SyncML 동기화 프로토콜에 대해 알 수 있다.
2)
SyncML의 동기화에 사용하는 메시지 구조 상호 운용 방식인 XML
Representation에 대해 알 수 있다.
3)
SyncML의 동기화에 사용하는 프로세서 상호 운용 방식인 SynML Sync 프로토
콜에 대해 알 수 있다.
4)
한국산업기술대학교
SyncML의 서버와 클라이언트 구성 예에 대해 알 수 있다.
온라인 기술교육 교재 개발
데이터 동기화
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
 데이터 동기화 란?
 네트워크에 존재하는 둘 이상의 논리적 장치간 특정 데이터를 일치시켜주는 기술

Local : 시리얼 포트, USB, IrDA(적외선), SISC, Fibre Channel 등

Remote : HTTP, TCP/IP, WSP, NAS(분산 스토리지 표준) 등
 데이터 동기화 필드 활용

PDA OS : Active Sync (MS), Hot Sync (Plam)

DB : DB2 Anywhere (IBM), Oracle Lite (Oracle)

Device 제조사 : DataSync2000 (삼성)

Web 포탈 : 각종 PIMS Service (한미르, 라이코스, MSDN등)

Enterprise Data : DR 시스템, 자동 프로그램 배포프로그램
데이터 일치성
보장 기술
 동기화 대상이 되는 데이터

PIMS : Mobile Device의 개인정보로 대표되는 일정, 주소록, 메일, 쪽지등

핸드폰/PDA : 각종 설치파일, 이모티콘등

DB : Table, DML, User권한
 백업과의 차이점

백업 : 한쪽에 존재하는 블록 데이터를 목적지 장치에 일괄 복사 (덮어쓰기 미러링)

동기화 : 동기화 모드에 따라 원시 데이터와 목적 데이타간의 데이터 일치

Two-way : 서로간 변경된 데이터를 상대방 데이터에 반영

One-way : 백업과 같은 방식, 한쪽의 데이터 변경을 다른 한쪽에 반영하는 방식
 관련기술

데이터 핸들링기술 (File, DBMS, Memory등)

네트워킹 핸들링 기술 (Socket, Send/Receive Stream, 3(4)-Tier 핸들링)

메시지 핸들링 기술 (메시지 ENC/DEC)

장애및 오류제어 기술 (분산환경에러, DB 핸들링에러 – Rollback, re-Try, Log save)
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
데이터 동기화
 모바일 업계의 SyncML 등장
 데이터 동기화 – 모바일 디바이스에 쏟아지는 관심
 일반 개인 사용자의 PDA 보유율이 높음
 이동성/휴대성이 높은 PDA를 기업에서 활발히 도입 (기업용 모바일 오피스)
 휴대폰의 컴퓨팅 기능 발전  핸드폰이 일정 정도 데이터 리소스 보유 디바이스로 변신
 다중 장치간 데이터 동기화 요구 폭증
 개인 PC/PDA/핸드폰/웹 PIMS 서비스 간 동기화 요구
 특히 활용도가 높은 PIMS 정보를 중심으로 벤더사 개발 툴킷 발표
 Active Sync SDK, HotSync Coduit SDK, 심비안 SDK등
 대부분의 모바일 벤더가 ‘자사표준’의 스펙으로 구현
 벤더 표준 동기화 문제점 발생
 타사 동기화 엔진과는 호환이 안됨
 PIMS 서비스 업체 입장에서는 자사 동기화 엔진을 모바일 디바이스에 설치해야 하는 부담
 대부분 Local 네트워크 동기화 방식(PC와 PDA/휴대폰간 동기화)에 의존
 PIMS 이외의 애플리케이션에 활용 불가능
 기존 벤더 표준의 토양 위에서 새로운 ‘상호 운용성이 보장되는 동기화 표준’ 요구
SyncML.org
자사표준
한국산업기술대학교
산업계표준
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
SyncML 동기화 프로토콜
 SyncML 스팩 Review
 SyncML  동기화 마크업 언어 (Synchronization Makrup Language)
SyncML 스펙
카테고리
Content
DB
File
PIMS
XML
Representation
SyncML
Protocol
Transport
Binding
한국산업기술대학교
- 동기화 데이터 인식(고민의 원천!!!)을 위해 존재
- SyncML은 기본적으로 PIMS 데이터의 상호운용성을 확보해줌
vCard, vCalandar등의 외부 스팩을 통해 공통 데이터 ENC/DEC
이외의 다른 데이터 포멧은 <Meta> 엘리먼트를 이용해 기술
(단지 기술일뿐 상대방인 인식(!) 할수 있다는 보장은 없음)
- XML base 3개의 스팩으로 구성
SyncML Representation, Meta Info, Device Info
- SyncML 메시지의 Elements 설명
Command, 컨테이너/컨테인드 설명
각 엘리먼트 값의 의미 설명
MetaInfo : Data String을 인식하기 위한 방법을 표준화, Anchor
Device Info : 리소스정보, DB 메타정보
- 동기화 메시지의 상호운용성 확보
- 1개의 스팩으로 구성
- 데이터 동기화에 대한 기본 규칙(처리 프로세서)을 정의
동기모드별 교환 Command 명시 (7가지 타입)
에러발생시 처리개념, 인증 처리 명시
Anchor, Changelog, Map Table 개념 명시
라우팅(Device, DB) 개념 설명
- 최소한의 동기화 운영 규칙 상호운영성 확보
-
3개의 스팩으로 구성 (HTTP, WSP, OBEX)
프로토콜 스트럭쳐의 세팅값 설명
프로토콜 스트럭쳐의 처리를 위한 프로세서 설명
메시지 수신 및 송신을 위한 상호운용성 확보
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
SyncML 동기화 프로토콜
 SyncML Architecture
 SyncML 구조  상호 운용성 점검
 모바일 기기에 SyncML 클라이언트 Module과 SyncML 애플리케이션 서버간 통신
 일반 Transport Layer (예: WAP의 WSP, 유선 웹의 HTTP) 위에 SyncML 프로토콜 스택 구현
Transport
Binding
SyncML
Protocol
XML
Representation
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
메시지 구조 상호운용성 – XML Representation
 SyncML Representation Protocol Spec.
 SyncML 메시지 자체의 구조와 각 요소가 가지는 값의 의미를 설명
 SyncML 메시지 구성요소
 메시지와 패키지로 구성  하나의 SyncML 세션은 다수의 패키지로 이루
어지고 하나의 패키지는 하나 이상의 메시지로 존재
 SyncML Header  동기화 상대방의 Device 정보 (Device 라우팅 정보)를
담고 있음 : 인증에 관련된 정보와 SyncML 버전 정보, Session 및
Message ID에 대한 정보
 SyncML Body  각 패키지 마다 다수의 Command를 담는 컨테이너
 SyncML Command
 데이터 조작의 단위가 되는 Command 
단일 Command 안에는 다수의 Item이 존
재해 다수의 레코드 처리가 가능
 중요 Command
라우팅 정보의
역활
한국산업기술대학교
어느 장치?
SyncHeader/locURI
어떤 데이터?
Sync/locURI
어떤레코드?
주소록
Item/locURI
Pkey:3
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
메시지 구조 상호운용성 – XML Representation
 SyncML Meta Information Spec.
 동기화 메시지가 아닌 동기화에 사용되는 ‘Data’에 관심
 SyncML Message의 개별 요소로 사용, 해당 ‘Data’를 식별(!) 할수 있는 공통의 스트럭쳐를 포함
 SyncML 동기화 데이터 예
동기화 데이터는 Item 엘리먼트에 String으로 캡슐화
<Item><Source>…<Data>PIMS 데이터들</Data></Item>
---------------------------------------------------SyncML 메시지 실 예
<Item>
스트링으로 Formatting 한 결과
<Source>1</Source>
<Data>한국싱크엠엘3456-7890서울시 서초구… </Data>
</Item>
데이터
Pkey
1
한국
싱크엠엘
솔루션
3456-7890
한국,싱크엠엘,솔루션,3460-0772,서울시 서초
한국/싱크엠엘/솔루션/3460-0772/서울시 서초
<name>한국 </name><company name>싱크엠엘
</name>;한국,companyname;싱크엠엘…
서울시 서초구 …
…
다양한 포맷이 존재
(서로 다른 포맷을 적용한
Application 간의
동기화 불가능)
String으로 만들 때 Formatting에 사용된 메타 데이터 (DTD) 식별 필요
Meta Information Spec의 메타 데이터 식별 기능
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
메시지 구조 상호운용성 – XML Representation
 SyncML Device Information Spec.
 동기화에 참여하는 서로간 장치 정보의 교환
 Man, Mod, OEM, DevType등
 예: <Man>HIS, Ltd.</Man><FwV>2.1a</FwV><DevTyp>PDA Type A</DevTyp>..
 데이터 Formatting 방식 결정
 DataStore, RX, TX등
 예 <DataStore>..<CTType>text/x-vard</CTType><VerCT>2.1</VerCT>.. </DataStore>
 메타 데이터 필드 결정
 장치와 리소스 제한에 따라 vCard (DTD) 를 구성하는 모든 엘리먼트를 사용하지 않음
 현실적으로도 각 벤더사 마다 서로 다른 Table 구조를 가지고 있음
 비슷하기는 하지만 동일 (!) 한 것은 아님.
 Client가 Server측 장치로 동기화에 사용되는 Formatting 필드를 명시해서 전달
Server측 스키마
Pkey
1
이름
회사명
전화번호1
각 장치간
메타데이터가
다름
전화번호2
FAX 번호
…
vCard(데이터 포멧 스키마) 필드
1
고객명
직장명
핸드폰번호
Client측 스키마
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
메시지 프로세서 상호운용성 – SyncML Sync Protocol
 SyncML Sync Protocol Spec.
 SyncML 내부 동작을 위해 사용되는 정보, 인증, 동기화 방법에 대한 표준
 Sync Client / Sync Server 로 구성되며 클라이언트 서버간 ChangeLog, Anchor, Map Table을 이용하
여 동기화 최초 동기화 메시지를 보내는 쪽이 Sync Client (Pkg#1)
 ChangeLog
 ChangeLog은 데이터의 변경에 대한 사항을 기록  향후 동기화 할 때 동기화된 데이터인지 아
직 하지 않아서 이번에 동기화 해야 할 데이터인지를 판단하는 판단 근거
 구현 방법
 Dirty bits :
변경된 데이터에 더티 비트 세팅, 동기화 이후 Clear
N:M 싱크 불가능, 단일 장치와 동기화 할 경우 사용
 Change time :
데이터 변경 시간을 기록, 동기화 시간 이후 변경된 데이터만을 동기화
컴퓨터의 시간을 변경하는 경우 데이터 정합성 보장 못함
 Change Counter : 변경시마다 변경 카운터를 1씩 증가, 동기화 카운터 이후 변경된 데이터만을 동기화
카운터를 얻기 위한 카운터 분배기/Data Lock 개념 구현 어려움
Change Time
Dirty bits
한국산업기술대학교
Change Counter
UID
Data
UID
Data
ChangeTime
UID
Type
Change Counter
1
Mis. Ha
1
Mis. Ha
20000521T081812Z
1
U
12
2
Mr. Kim
2
Mr. Kim
20000521T121300Z
2
U
13
3
'deleted'
3
'deleted'
20000522T093232Z
3
D
14
4
Mr. Lee
4
Mr. Lee
20000522T131212Z
4
U
15
온라인 기술교육 교재 개발
메시지 프로세서 상호운용성 – SyncML Sync Protocol
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
 SyncML Sync Protocol Spec.
 Anchor  SyncML 동기화 때 처음 오가는 메시지(Alert Command)에 Anchor 정보 탑재하여 교환
Anchor를 쉽게 표현하여 ‘암호 맞추기’
 Map Table  동기화할 데이터의 식별자가 동일하지 않을 경우 필요, 서버 쪽에 존재하여 서버(GUID)
와 클라이언트(LUID)간 식별자를 매핑시켜주는 매핑 테이블
 SyncML Sync 동기화 시나리오
동기화 전/후
update
Insert
한국산업기술대학교
온라인 기술교육 교재 개발
메시지 프로세서 상호운용성 – SyncML Sync Protocol
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
 SyncML Sync Protocol Spec. 동기화 타입
 Two-Way Sync

자신의 데이터 변경을 상대방에게 적용하는 타입

클라이언트, 서버가 서로의 데이터 사항을 메시지로 전송

충돌 문제 발생


서버와 클라이언트가 동일한 데이터의 추가/변경을 요구하는 경우 발생하며,
정책 설정을 통한 ‘Win 정책’ 필요
가장 일반적이며 다른 동기화 타입(One-Way from ** Only)은 Two-way Sync의 서브셋
 Slow Sync

Two-Way Sync시 Achor 불일치, 기타 내부정보의 손상으로 동기화 초기화가 필요할때 발생

클라이언트의 모든 정보를 서버쪽에서 ‘Field-by-Field’ 검토하여 동일하지 않은 부분을 검토
따라서 엄청난 시간과 자원이 소모

오류시 일어나는 다른 동기화 타입(Refresh Sync From ** Only)은 Slow Sync의 서브셋
 One-Way Sync from Server/Client Only

단방향 동기화
 Refresh Sync from Server/Client Only

One-Way Sync from Server/Client Only시 Achor 불일치, 기타 내부정보의 손상으로 동기화,
초기화가 필요할때 발생
 Server Alerted Sync

7가지 동기화 타입중 Server가 Client에게 최초 메시지를 보내는 동기화 타입

서버가 클라이언트에게 ‘어떤 정보’를 알람

사용 예 : 서버가 자신과 관련된 모든 클라이언트에게 특정 동기화 타입으로 동기화 하자고 할 때
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
SyncML 구현 예
 SyncML 시스템 구성
 HTTP를 이용한 Two-Way 싱크 및 TCP/IP 방식 싱크 구현 가능
Server
RDBMS
DesktopPC
SyncML Impl.
Two-Way 싱크
(HTTP)
Two-Way 싱크
(TCP/IP.. 아직 스펙 없음)
SyncML Impl.
RMS
임베디드
DB
PDA
핸드폰
Client 1
한국산업기술대학교
SyncML Impl.
Client 2
온라인 기술교육 교재 개발
SyncML 구현 예
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
 SyncML 소프트웨어 구성
 휴대폰 단말기 내, VM 애플리케이션으로 구현 가능
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
요약 정리
이번 시간에 소개했던 내용을 정리해 봅시다.
1)
데이터 동기화 및 SyncML 동기화 프로토콜에 대해 알아보았습니다.
2)
SyncML의 동기화에 사용하는 메시지 구조 상호 운용 방식인 XML
Representation에 대해 알아보았습니다.
3)
SyncML의 동기화에 사용하는 프로세서 상호 운용 방식인 SynML Sync 프로토
콜에 대해 알아보았습니다.
4)
SyncML의 서버와 클라이언트 구성에 대해 알아보았습니다.
다음 시간에는 모바일 보안 기술에 대하여 학습하시게 될 것입니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
평가 하기
문제1
SyncML 데이터 동기화에 대해 말해 보시오
정답은 다음과 같습니다.
네트워크 상에 존재하는 다른 두개 이상의 기기간 특정 데이터 일치를 위한 Markup
언어 기반 모바일 동기화 기술
해설내용: SyncML은 네트워크 상에 존재하는 둘 이상의 기기에 저장된 특정 데이터를 일치시
켜주는 기술로, Synchronization Markup Language 입니다.
문제2
SyncML 을 구성하는 세가지 컴포넌트는 무엇입니까?
정답은 다음과 같습니다.
SyncML Protocol, XML Representation, Transport Binding XML Representation
해설내용: SyncML의 구조는 상호 운용성 점검을 위한 SyncML Protocol, Transport
Binding, XML Representation 컴포넌트로 구성됩니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
31. 모바일 응용 프로토콜 - III
SyncML
평가 하기
문제3
SyncML로 수행할 수 있는 동기화 타입을 말해 보시오
정답은 다음과 같습니다.
Two-Way Sync, Slow Sync, One-Way Sync from Server/Client Only, Refresh
Sync from Server/Client Only, One-Way Sync from Server/Client Only, Server
Alerted Sync
해설내용: SyncML 동기화 타입에는 클라이언트 서버간 데이터 변경 사항에 대한 동기화를
맞추는 Two-Way 동기화,
내부 정보 손상으로 동기화 초기화가 필요할 때 사용하는 Slow 동기화, 클라이언트 서버간 동기화
를 수행할 한쪽의 데이터를 무시하고 다른 한쪽의 데이터로만 업데이트하는 One-Way 동기화,
데이터 초기화를 위한 Refresh 동기화, 그리고 Alerted Sync 가 있습니다.
한국산업기술대학교
온라인 기술교육 교재 개발