Nhóm 4:
Nguy n H u Phi – 09CD65038ễ ữ
Nguy n Đình Chinh – 09CD65058ễ
Lâm Hu Tr ng – 09CD65050ệ ườ
Vũ Hùng S n – 09CD65121 ơ
Đ Tài:ề
Microsoft Sync
Framework Developer
Center
Tai Microsoft có m t công ngh đ ng b hóa d li u offline và các ộ ệ ồ ộ ữ ệ
gi i pháp h p tác. Các công ngh ch ch t bao g m:ả ợ ệ ủ ố ồ
*
Microsoft Sync Framework thành ph n c t lõi ầ ố
*
Microsoft Sync Framework c s d li u đ ng b hóa các nhà ơ ở ữ ệ ồ ộ
cung c p ấ
*
H p nh t nhân r ng (ợ ấ ộ Merge replication)
M t lĩnh v c c a s nh m l n, chúng tôi nghe đ c t khách hàng v iộ ự ủ ự ầ ẫ ượ ừ ớ Microsoft
Sync Framework.
T s đ d i đây, b n có th th y r ng ừ ơ ồ ướ ạ ể ấ ằ Microsoft Sync Framework gia đình bao
g m m t s công ngh h tr các k ch b n ngo i tuy n và h p tác bao g m: ồ ộ ố ệ ỗ ợ ị ả ạ ế ợ ồ
*
Nhà cung c p d ch v đ ng b hóa c s d li u (ấ ị ụ ồ ộ ơ ở ữ ệ Database synchronization
providers): Đ ng b hóa các ngu n d li u cho phép ồ ộ ồ ữ ệ ADO.NET
*
Web đ ng b hóa các thành ph nồ ộ ầ (Web synchronization components:): Đ ng b ồ ộ
hóa cho FeedSync ngu n c p d li u nh ồ ấ ữ ệ ư RSS và ATOM ngu n c p d li u ồ ấ ữ ệ
*
Nhà cung c p d ch v đ ng b hóa file(ấ ị ụ ồ ộ File synchronization provider): Đ ng b ồ ộ
hóa cho các t p tin và th m cậ ư ụ
*
Sync Framework thành ph n c t lõi (ầ ố Sync Framework core components): các
thành ph n đ ng b hóa cho phép t o ra nhà cung c p d ch v tùy ch nh ầ ồ ộ ạ ấ ị ụ ỉ
C s d li u đ ng b hóa. (ơ ở ữ ệ ồ ộ Database Synchronization
Providers)
Sync Framwork là c s d li u nhà cung c p d ch v đ ng b hóa ơ ở ữ ệ ấ ị ụ ồ ộ
đ c xây d ng đ cho phép các nhà phát tri n nh ng ng i đã quen ượ ự ể ể ữ ườ
thu c v i các khái ni m v ộ ớ ệ ề ADO.NET đ áp d ng ki n th c đó đ ể ụ ế ứ ể
đ ng b d li u thông qua m t thi t l p r t t ng t nh các ồ ộ ữ ệ ộ ế ậ ấ ươ ự ư API
c a ủ ADO.NET.
Các nhà cung c p cũng h tr đ ng b hóa các d ch v , ch ng ấ ỗ ợ ồ ộ ị ụ ẳ
h n nh ạ ư Windows Communication Foundation (WCF). C th , ụ ể Sync
Framework m c tiêu c a k ch b n sau đây: ụ ủ ị ả
*
Tuy n c s d li u đ ng b hóa (ế ơ ở ữ ệ ồ ộ Offline Database
Synchronization):
*
H p tác gi a các c s dợ ữ ơ ở ữ li uệ (Collaboration Between
Databases):
Tuy n c s d li u đ ng b hóa (Offline Database ế ơ ở ữ ệ ồ ộ
Synchronization): V i ớ Sync Framework, b n có th đ xây d ng ạ ể ể ự
m t gi i pháp mà nhi u khách hàng t xa k t n i và đ ng b hóa ộ ả ề ừ ế ố ồ ộ
v i m t c s d li u trung tâm ớ ộ ơ ở ữ ệ ADO.NET trong m t ộ Hub-Spoke-
c u hìnấ h. Đi u này cho phép thi t b k t n i đ nh kỳ k t n i và ề ế ị ế ố ị ế ố
đ ng b hóa các thay đ i v i m t máy ch trung tâm c s d ồ ộ ổ ớ ộ ủ ơ ở ữ
li u ệ ADO.NET. C u trúc liên k t này là m t gi i pháp chung cho ấ ế ộ ả
công nhân t xa nh đ i di n bán hàng ho c nhân viên lĩnh v c ừ ư ạ ệ ặ ự
d ch v . ị ụ
H p tác gi a các c s d li u (Collaboration Between ợ ữ ơ ở ữ ệ
Databases): Sync Framework cũng bao g m kh năng ồ ả Peer-to-
Peer. Thông qua m t nhà cung c p d ch v Peer tùy ch nh, s h p ộ ấ ị ụ ỉ ự ợ
tác gi a hai ho c nhi u c s d li u ữ ặ ề ơ ở ữ ệ SQL Server có th x y ra. ể ả
Không gi ng nh ki n trúc ố ư ế Hub và Spoke, nhà cung c p d ch v ấ ị ụ
này cho phép m t c s d li u ộ ơ ở ữ ệ SQL Server đ giao ti p và trao ể ế
đ i thông tin v i b t kỳ c s d li u ổ ớ ấ ơ ở ữ ệ SQL Server khác. Đây là
lo i k ch b n r t h u ích trong các tình hu ng nhóm ng i s ạ ị ả ấ ữ ố ườ ử
d ng (ch ng h n nh ki m toán viên) c n ph i c p nh t thông ụ ẳ ạ ư ể ầ ả ậ ậ
tin và sau đó c ng tác v i nh ng thay đ i v i các thành viên khác ộ ớ ữ ổ ớ
trong nhóm.
*
Sync Framework thành ph n c t lõi (ầ ố Sync Framework Core
Components)
Sync Framework là thành ph n c t lõi t ng t nh các nhà cung c p ầ ố ươ ự ư ấ
d ch v đ ng b hóa c s d li u mà h cho phép ph i h p gi a các ị ụ ồ ộ ơ ở ữ ệ ọ ố ợ ữ
ngu n d li u. S khác bi t chính gi a hai công ngh là thành ph n c t ồ ữ ệ ự ệ ữ ệ ầ ố
lõi Sync Framework cho phép xây d ng các tùy ch nh có kh năng trao ự ỉ ả
đ i thông tin v i b t kỳ l u tr d li u, và không ch các c s d li u ổ ớ ấ ư ữ ữ ệ ỉ ơ ở ữ ệ
SQL Server. Ngoài ra, thành ph n c t lõi ầ ố Sync Framework có h tr ỗ ợ
cho qu n lý cũng nh mã ngu n g c cho s linh ho t l n h n m t nhà ả ư ồ ố ự ạ ớ ơ ộ
phát tri n t góc đ phát tri nể ừ ộ ể
*
Merge Replication
Không gi ng nh ố ư Sync Framework, đó là m c tiêu h ng t i phát tri n ụ ướ ớ ể
và các ISVs, Merge replication là nh m m c tiêu và các qu n tr viên ắ ụ ả ị
c s d li u tìm ki m hoàn t t ra kh i đ ng b hóa ơ ở ữ ệ ế ấ ỏ ồ ộ out-of-the-box
gi i pháp d dàng cho phép h đ đ ng b hóa c s d li u trung tâm ả ễ ọ ể ồ ộ ơ ở ữ ệ
SQL Server v i phía khách hàng ( đôi khi k t n i) ớ ế ố SQL Server và c s ơ ở
d li u ữ ệ SQL Server nh g n trong m t c u trúc liên k t ỏ ọ ộ ấ ế Hub-và-Spoke.
Thông qua trình thu t, th t c l u tr , và ậ ủ ụ ư ữ APIs riêng c a nó, ủ Merge
Replication có th d dàng c u hình và tri n khai. ể ễ ấ ể
I) Gi i thi u Microsoft Sync Framework.ớ ệ
(Introduction Microsoft Sync Framework)
Microsoft Sync Framework là m t n n ộ ề
t ng đ ng b hóa toàn di n t o đi u ả ồ ộ ệ ạ ề
ki n cho s h p tác và offline cho các ệ ự ợ
ng d ng, d ch v và các thi t b .ứ ụ ị ụ ế ị
M t khía c nh quan tr ng c a ộ ạ ọ ủ Sync
Framework là kh năng đ t o ra các ả ể ạ
tùy ch nh. Các nhà cung c p cho phép ỉ ấ
b t kỳ ngu n d li u đ tham gia trong ấ ồ ữ ệ ể
quá trình đ ng b hóa ồ ộ Sync Framework,
cho phép peer-to-peer đ ng b hóa x y ồ ộ ả
ra.
M t s nhà cung c p đ c bao g m b i ộ ố ấ ượ ồ ở Sync Framework h tr nhi u ngu n d li u ỗ ợ ề ồ ữ ệ
ph bi n. M c dù h không c n thi t, đ gi m thi u s phát tri n đó là khuy n cáo mà ổ ế ặ ọ ầ ế ể ả ể ự ể ế
các nhà phát tri n s d ng các nhà cung c p b t c n i nào có th . Sau đây là các nhà ể ử ụ ấ ấ ứ ơ ể
cung c p bao g m: ấ ồ
*
Nhà cung c p d ch v đ ng b hóa c s d li u: (ấ ị ụ ồ ộ ơ ở ữ ệ Database synchronization provider)
*
Nhà cung c p d ch v đ ng b hóa file: (ấ ị ụ ồ ộ File synchronization provider)
*
Web đ ng b hóa các thành ph n: (ồ ộ ầ Web synchronization components)
Phát tri n cu i cùng có th s d ng b t kỳ c a các ể ố ể ử ụ ấ ủ out-of-the-box nhà cung c p d ch ấ ị
v ho c có th t o ra các nhà cung c p tuỳ ch nh đ trao đ i thông tin gi a các thi t b ụ ặ ể ạ ấ ỉ ể ổ ữ ế ị
và các ng d ng. ứ ụ
2) Tham gia (Participant)
Lo i tham gia :ạ (Participant Types)
Căn c vào kh năng c a thi t b , cách mà m t nhà cung c p tích h p đ ng b hóa s thay đ iứ ả ủ ế ị ộ ấ ợ ồ ộ ẽ ổ
Cu i cùng, nh ng gì c n ph i đ c xác đ nh là n u thi t b có th : ố ữ ầ ả ượ ị ế ế ị ể
•
Kích ho t tính năng thông tin đ c l u tr và thao tác trên thi t b hi n có ho c trong l u tr d ạ ượ ư ữ ế ị ệ ặ ư ữ ữ
li u hi n t i. ệ ệ ạ
•
Cho phép các ng d ng (trong tr ng h p c a chúng tôi m t nhà cung c p d ch v đ ng b hóa) ứ ụ ườ ợ ủ ộ ấ ị ụ ồ ộ
đ đ c th c hi n tr c ti p t thi t b . ể ượ ự ệ ự ế ừ ế ị
Tham gia đ y đ ầ ủ (Full Participants)
Tham gia đ y đ các thi t b cho phép các nhà phát tri n đ t o ra các ng d ng và d li u m i ầ ủ ế ị ể ể ạ ứ ụ ữ ệ ớ
các c a hàng tr c ti p trên thi t bử ự ế ế ị
M t ph n tham gia (ộ ầ Partial Participants)
*
Tham gia m t ph n là các thi t b có kh năng l u tr d li u trong l u ộ ầ ế ị ả ư ữ ữ ệ ư
tr d li u hi n hành ho c l u tr d li u khác trên thi t b . Các thi t ữ ữ ệ ệ ặ ư ữ ữ ệ ế ị ế
b này, tuy nhiên, không có kh năng đ kh i đ ng th c thi tr c ti p t ị ả ể ở ộ ự ự ế ừ
thi t b . M t s ví d c a nh ng ng i tham gia là đĩa USB ho c th ế ị ộ ố ụ ủ ữ ườ ổ ặ ẻ
SD. Các thi t b này ho t đ ng gi ng nh m t c ng thông tin có th ế ị ạ ộ ố ư ộ ổ ứ ể
đ c t o ra, c p nh t ho c xóa. Tuy nhiên, h th ng không đ a ra ượ ạ ậ ậ ặ ọ ườ ư
m t giao di n cho phép các ng d ng đ c th c thi trên tr c ti p. ộ ệ ứ ụ ượ ự ự ế
2) Tham gia (Participant)
Đ n gi n tham gia ơ ả (Simple Participants)
Tham gia đ n gi n là các thi t b ch có kh năng cung ơ ả ế ị ỉ ả
c p thông tin khi có yêu c u. Các thi t b này không th ấ ầ ế ị ể
l u tr ho c thao tác d li u m i và không th đ h ư ữ ặ ữ ệ ớ ể ể ỗ
tr vi c t o ra các ng d ng m i. ợ ệ ạ ứ ụ ớ RSS Feeds và các
d ch v web đ c cung c p b i m t t ch c bên ngoài ị ụ ượ ấ ở ộ ổ ứ
nh ư Amazon hay eBay là c hai ví d c a nh ng ng i ả ụ ủ ữ ườ
tham gia đ n gi n. ơ ả
Đ a nó T t c cùng nhauư ấ ả (Bringing it All Together)
Cu i cùng, m c tiêu c a ố ụ ủ Microsoft Sync Framework là
cho phép b t kỳ ngu n d li u đ c tích h p b t k ấ ồ ữ ệ ượ ợ ấ ể
lo i tham gia. Vì lý do này, ng i tham gia m t ph n có ạ ườ ộ ầ
th đ ng b hóa thông tin v i s tham gia đ y đ và có ể ồ ộ ớ ự ầ ủ
th đ ng b hóa thông tin đ n gi n. Ít nh t c n có m t ể ồ ộ ơ ả ấ ầ ộ
ng i tham gia có kh năng l u tr thông tin và kh i ườ ả ư ữ ở
ch y quá trình đ ng b hóa. ạ ồ ộ
2) Tham gia (Participant)
3.Microsoft Synchronization Framework
Thành ph n c t lõi (Core Components)ầ ố
*
Tr c khi th c hi n đ ng b hóa b ng cách s d ng ướ ự ệ ồ ộ ằ ử ụ Sync Frame,
chúng ta c n ph i hi u các thành ph n chính c a m t nhà cung ầ ả ể ầ ủ ộ
c p. S đ d i đây cho th y làm th nào m t nhà cung c p đ c ấ ơ ồ ướ ấ ế ộ ấ ượ
xây d ng b ng cách s d ng ự ằ ử ụ Sync Framework giao ti p v i m t ế ớ ộ
ngu n d li u và l y thông tin tr ng thái t m t c a hàng siêu d ồ ữ ệ ấ ạ ừ ộ ử ữ
li u. Các nhà cung c p l n l t liên l c v i các nhà cung c p d ch ệ ấ ầ ượ ạ ớ ấ ị
v khác thông qua m t phiên đ ng b hóa. ụ ộ ồ ộ
Ngu n d li u (ồ ữ ệ Data Source)
*
Các ngu n d li u t i v trí n i mà t t c các thông tin c n ph i ồ ữ ệ ạ ị ơ ấ ả ầ ả
đ c đ ng b hóa đ c l u tr . ượ ồ ộ ượ ư ữ
Siêu d li uữ ệ (Metadata)
*
Các siêu d li u cho m t l u tr d li u có th đ c chia thành ữ ệ ộ ư ữ ữ ệ ể ượ
năm thành ph n chính: ầ
•
Versions
•
Knowledge
•
Tick count
•
Replica ID
•
Tombstones
3.Microsoft Synchronization Framework
Đ ng b hóa dòng ồ ộ
(Synchronization
Flow)
B n sao đ c b t ả ượ ắ
đ u đ ng b hóa ầ ồ ộ
đ c g i là ngu n ượ ọ ồ
g c và b n sao k t ố ả ế
n i đ c g i là đi m ố ượ ọ ể
đ n. Các ph n sau ế ầ
đây phác th o các ả
dòng ch y c a đ ng ả ủ ồ
b hóa đ c mô t ộ ượ ả
trong s đ sau đây. ơ ồ
3.Microsoft Synchronization Framework
o
Đ ng b hóa phiên kh i x ng v i Đi m đ nồ ộ ở ướ ớ ể ế (Synchronization Session Initiated with Destination)
o
Đi m đ n chu n b và G i Ki n th cể ế ẩ ị ử ế ứ (Destination Prepares and Sends Knowledge)
o
Đi m đ n ki n th c s d ng Xác đ nh Thay đ i ph i đ c g iể ế ế ứ ử ụ ị ổ ả ượ ử (Destination Knowledge used to Determine
Changes to be sent)
o
Phiên b n thay đ i và ki n th c Ngu n g i đ n Đi m đ nả ổ ế ứ ồ ử ế ể ế (Change Versions and Source Knowledge sent to
Destination)
o
Phiên b n hi n t i l y m c thay đ i và so sánh so v i phiên b n mã ngu n vàả ệ ạ ấ ụ ổ ớ ả ồ ki n th cế ứ (Local Version
Retrieved for Change Items and Compared against Source Version and Knowledge)
o
Xung đ t đ c phát hi n và quy t tâm ho c hoãn l iộ ượ ệ ế ặ ạ (Conflicts are Detected and Resolved or Deferred)
•
Source Wins::Thay đ i c a b n sao đ a ph ng luôn luôn giành chi n th ng trong tr ng h p c a m t cu c xung đ t. ổ ủ ả ị ươ ế ắ ườ ợ ủ ộ ộ ộ
•
Destination Wins: b n sao t xa luôn luôn chi n th ng ả ừ ế ắ
•
Specified Replica ID Always Wins: Không có v n đ thay đ i m t m c, b n sao v i ID đ c ch đ nh luôn chi n th ng. ấ ề ổ ộ ụ ả ớ ượ ỉ ị ế ắ
•
Last-Writer Wins: D a trên gi đ nh r ng t t c các b n sao đ c tin c y đ thay đ i và đ ng h treo t ng đ c đ ng ự ả ị ằ ấ ả ả ượ ậ ể ổ ồ ồ ườ ượ ồ
b hóa, cho phép các nhà văn cu i cùng đ giành chi n th ng. ộ ố ể ế ắ
•
Merge (H p nh tợ ấ ): Trong tr ng h p c a hai b n sao b n ghi trong cu c xung đ t, h p nh t các thông tin t m t thành ườ ợ ủ ả ả ộ ộ ợ ấ ừ ộ
khác.
•
Log Conflict: Ch n ch c n đăng nh p ho c trì hoãn các cu c xung đ t. ọ ỉ ầ ậ ặ ộ ộ
o
Đi m đ n yêu c u kho n d li u ngu n (ể ế ầ ả ữ ệ ồ Destination Requests Item Data from Source)
o
Chu n b ngu n và G i d li u m cẩ ị ồ ử ữ ệ ụ (Source Prepares and Sends Item Data)
o
Tìm đ c áp d ng t i Đi mượ ụ ạ ể đ nế (Items are applied at Destination)
3.Microsoft Synchronization Framework
Đ ng b hóa Ví d (ồ ộ ụ Synchronization Example)
Ví d , hãy t ng t ng chúng tôi mu n đ đ ng b hóa các t p ụ ưở ượ ố ể ồ ộ ậ
tin gi a hai b n sao. M t t p tin trong m t th m c s đ c các ữ ả ộ ậ ộ ư ụ ẽ ượ
m c đó s đ c theo dõi và đ c mô t m t In (ví d , I 1, I 2, I ụ ẽ ượ ượ ả ộ ụ
3 ...).
Khi m t t p tin m i (I 1) đ c t o ra, các siêu d li u liên quan ộ ậ ớ ượ ạ ữ ệ
đ n t p tin đó cũng c n đ c c p nh t nh sau: ế ậ ầ ượ ậ ậ ư
3.Microsoft Synchronization Framework
M cụ
(Item)
C p nh t ậ ậ
Đánh d u ấ
Đ m (ế Update
Tick Count)
C p nh t ậ ậ
B n sao ả
ID(Update
Replica ID)
Sáng t o ạ
Đánh d u ấ
Đ m(ế Creation
Tick Count)
Sáng t o ạ
B n sao ID(ả Creation
Replica ID)
I 1 1 A 1 A
N u t p tin đó đã đ c c p nh t m t l n n a, b ng phiên b n có th trông nh sau: ế ậ ượ ậ ậ ộ ầ ữ ả ả ể ư
M cụ
(Item)
C p nh t ậ ậ
Đánh d u Đ m ấ ế
(Update
Tick Count)
C p nh t ậ ậ
B n sao ID(ả Update
Replica ID)
Sáng t o ạ
Đánh d u ấ
Đ m(ế Creation
Tick Count)
Sáng t o ạ
B n sao ID(ả Creation
Replica ID)
I 1 5 A 1 A
Sync Framework không yêu c u phiên b n c p nh t tr c đó đ c ầ ả ậ ậ ướ ượ
l u tr . Nó ch c n bi t phiên b n c p nh t g n đây nh t. ư ữ ỉ ầ ế ả ậ ậ ầ ấ
3.Microsoft Synchronization Framework
Đ ng b hóa Ví d (ồ ộ ụ Synchronization Example)
M cụ
(Item)
C p nh t ậ ậ
Đánh d u Đ m ấ ế
(Update
Tick Count)
C p nh t ậ ậ
B n sao ID(ả Update
Replica ID)
Sáng t o ạ
Đánh d u Đ m(ấ ế Creation
Tick Count)
Sáng t o ạ
B n sao ID(ả Creation
Replica ID)
I 2 3 A 2 A
I 3 4 A 4 A
I 1 5 A 1 A
N u chúng ta l y tr ng thái hi n t i c a các m c cho b n sao này, chúng tôi s đ i di n cho ế ấ ạ ệ ạ ủ ụ ả ẽ ạ ệ
ki n th c c a ế ứ ủ Replica A nh ư
Replica A Knowledge = A 5
A là ID Replica và 5 là s đánh d u vào hi n t i mà b n sao này bi t thay đ i . ố ấ ệ ạ ả ế ổ
Replica B, cũng có th là m t s t p tin. ể ộ ố ậ Replica này trông nh sau: ư
Replica B
M cụ
(Item)
C p nh t ậ ậ
Đánh d u Đ m (ấ ế Update
Tick Count)
C p nh t ậ ậ
B n sao ID(ả Update
Replica ID)
Sáng t o ạ
Đánh d u ấ
Đ m(ế Creation
Tick Count)
Sáng t o ạ
B n sao ID(ả Creation
Replica ID)
I104 2 B 1 B
I105 4 B 3 B