티스토리 뷰
Microsoft Sync Framework 에 대한 고찰
POWERUMC 2009. 6. 21. 20:32Microsoft Sync Framework
Microsoft Sync Framework 는 서비스나 어플리케이션을 동기화하기 위한 프레임워크입니다. 대부분 사용자 중심의 어플리케이션에서는 이러한 동기화를 통하여 오프라인 시나리오를 통해 가장 최적화된 서비스를 제공할 수 있습니다. 특히 이러한 동기화 기술은 X-Internet 을 기반으로 한 서비스 또는 인트라넷 등에서 다양한 클라이언트를 지원합니다.
가장 대표적인 기업용 동기화 가능한 어플리케이션은 바로 Outlook 이죠. 이 Outlook 은 데스크탑 어플리케이션은 물론 다양한 모바일 장치를 지원합니다. 저도 최근에 스마트폰으로 Outlook 을 사용하고 있답니다. 각 장치의 어플리케이션은 동기화 엔진을 통해 서버가 제공하는 데이터를 어떤 클라이언트든 상관하지 않고 똑같은 데이터로 동기화 합니다.
이러한 동기화의 가장 주된 목적은 서버의 리소스를 이미 위에서 이야기한 바 오프라인에서 사용 가능하기 위함입니다. 인터넷이 연결이 되지 않는 오프라인에서도 서비스를 제공하며, 인터넷이 연결 가능할 때에 서버와 동기를 합니다.
Microsoft Sync Framework 는 아래와 같은 동기화 방법을 제공합니다.
-
Sync Services for ADO.NET: Synchronization for ADO.NET enabled data sources
ADO.NET Local Database Cache 를 통해 서버의 데이터베이스와 동기화를 합니다. 즉 클라이언트는 마치 서버의 데이터베이스를 연결하여 사용하는 것 처럼 로컬의 데이터베이스 캐시를 사용하는 방법이죠. -
Sync Services for File Systems: Synchronization for files and folders
리소스의 대상이 파일 시스템입니다. 서버의 특정 위치의 파일과 로컬의 파일을 비교하여 동기화를 실시합니다. - Sync Services for FeedSync: Synchronization for RSS and ATOM feeds
RSS 나 ATOM 피드를 통해 동기화를 하죠. 가장 서비스 지향적인 방법임이 느껴지지 않나요? ^^
기본적으로 Microsoft Sync Framework 가 제공하는 세 가지 동기화 방법은 그다지 매력적이지 못합니다.
- ADO.NET 을 이용한 동기화는 클라이언트가 동기화 서버 데이터베이스의 ConnectionString 을 알아야 합니다. 클라이언트가 바로 서버의 데이터베이스에 접속하는 2-Tiers 시나리오는 그다지 구미에 맞지 않네요.
- File Systems 도 마찬가지 입니다. 같은 네트워크, UNC 경로를 통해 파일이 동기화가 되는 것은 인프라의 영향을 너무 많이 받게 됩니다. 그냥 안쓰고 말랍니다.
- FeedSync 는 RSS 나 ATOM 을 이용한 방법인데, 서비스 지향적인 방법이지만 다양한 기능적인 요구사항을 맞추기엔 FeedSync 도 적절하지 않군요.
최초 Microsoft Sync Framework v1.0 버전은 사실 동기화가 된다는 것과 Windows Mobile 을 지원하는 것이 골자입니다. 그리고 Microsoft Sync Framework 1.0 은 Visual Studio 2008 설치 시에 함께 설치가 됩니다. 이 버전에서는 프레임워크가 제공하는 기능을 템플릿처럼 쓰기에는 상당히 유용했었지만 실제 기능을 확장하기 위해서는 한계가 있었습니다.
하지만 조금 번거롭긴 했었지만 v1.0 에서도 충분히 확장 포인트를 제공하고 있기 때문에 마음만 먹으면 활용할 가치가 충분합니다.
현재 Microsoft Sync Framework v2.0 CTP2 는 기존의 기능을 훨씬 뛰어넘는 확장성을 제공해 줍니다. 이 버전의 특징을 간단히 나열만 해봐도 짐작이 되리라 생각합니다.
- New database providers (SqlSyncProvider and SqlCeSyncProvider)
- Custom filters
- Improved conflict handling
- Constraint conflict handling
- Conflict logging
- Last-writer-wins conflict resolution
- Improved simple provider conflict handling
- Data conversion between providers
- Change application service
- Simple Providers
- Change Unit Filtering
- Filter negotiation
음. 그럼 도대체 당신이 원하는것은 뭐야? 라고 물으신다면..
Microsoft Sync Framework 의 연장선의 ADO.NET Data Services
Microsoft Sync Framework 에 대한 자세한 이야기는 여기까지 하고, 더 자세한 내용이 필요한 분은 Microsoft Sync Framework Development Center 에 방문하시기 바랍니다.
ADO.NET Data Services v2 버전에서는 FeedSync 를 이용하여 ADO.NET Data Services 에 오프라인 시나리오가 가능해 졌습니다. 기존의 FeedSync 가 이런 모습으로 발전하는군요.
아직은 모든 것을 구미에 맞추기는 어렵지만, 비전이 있고 꾸준히 발전하는 기술임에는 틀림이 없습니다. 더 자세한 내용은 아래의 링크를 참고하세요.
References |
'Enterprise Architecture > Development Framework' 카테고리의 다른 글
DxEF.Proxy.Dynamic.SoaServices 프레임워크 개발 (0) | 2009.11.19 |
---|---|
DxEF.Proxy.Dynamic 프레임워크 개발 (6) | 2009.11.18 |
- TAG
- Microsoft Sync Framework, MSF, 동기화
- Total
- 2,841,419
- Today
- 40
- Yesterday
- 71
- ***** MY SOCIAL *****
- [SOCIAL] 페이스북
- [SOCIAL] 팀 블로그 트위터
- .
- ***** MY OPEN SOURCE *****
- [GITHUB] POWERUMC
- .
- ***** MY PUBLISH *****
- [MSDN] e-Book 백서
- .
- ***** MY TOOLS *****
- [VSX] VSGesture for VS2005,200…
- [VSX] VSGesture for VS2010,201…
- [VSX] Comment Helper for VS200…
- [VSX] VSExplorer for VS2005,20…
- [VSX] VSCmd for VS2005,2008
- .
- ***** MY FAVORITES *****
- MSDN 포럼
- MSDN 라이브러리
- Mono Project
- STEN
- 일본 ATMARKIT
- C++ 빌더 포럼
- .
- 비주얼 스튜디오 2010
- POWERUMC
- Silverlight
- .NET
- 비주얼 스튜디오
- TFS 2010
- c#
- Team Foundation Server 2010
- Windows 8
- umc
- github
- 팀 파운데이션 서버
- Managed Extensibility Framework
- Visual Studio
- test
- ASP.NET
- ALM
- Visual Studio 2008
- .NET Framework 4.0
- TFS
- monodevelop
- mono
- Visual Studio 2010
- testing
- Team Foundation Server
- 엄준일
- Visual Studio 11
- 땡초
- MEF
- LINQ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
- 2020/05 (1)
- 2019/10 (3)
- 2018/11 (1)
- 2018/08 (2)
- 2017/04 (1)
- 2017/01 (2)
- 2016/11 (2)
- 2016/08 (1)
- 2016/05 (1)
- 2016/04 (2)
- 2016/02 (2)
- 2016/01 (1)
- 2015/05 (1)
- 2015/04 (2)
- 2015/03 (1)
- 2015/02 (1)
- 2015/01 (1)
- 2014/11 (1)
- 2014/09 (2)
- 2014/08 (2)
- 2014/05 (2)
- 2014/04 (3)
- 2014/03 (2)
- 2014/02 (2)
- 2014/01 (4)
- 2013/12 (2)
- 2013/11 (1)
- 2013/10 (2)
- 2013/09 (6)
- 2013/08 (3)