微軟同步框架入門之八 使用WCF同步遠端元資料

2021-09-22 02:49:48 字數 1339 閱讀 1668

在該框架中,提供了用於訪問維護元資料的一些相應工具類,即metadata storage service。它可幫助儲存提供程式的同步元資料,該提供程式表示無法通過其他方式儲存元資料的副本。metadata storage service 使用占用較小記憶體和磁碟空間的輕型資料庫,可以隨提供程式重新分發,並且安全可靠。

其所提供的api  將元資料儲存區與用於訪問元資料儲存區的介面和方法明確區分開,這樣即可實現備用儲存區,且對提供程式稍作變更即可使用備用儲存區。

當然上面是sdk中的一些說法:)

metadata storage service api中有一些類要著重說明一下:      

sqlmetadatastore 類表示通過使用輕型資料庫儲存元資料來實現的元資料儲存區。metadata storage service 提供了 metadata storage service api 的乙個完整的實現,該實現使用輕型資料庫在檔案系統指定位置的乙個資料庫檔案中儲存同步所需的所有元資料。此實現的入口點是 sqlmetadatastore。

replicametadata 類提供對元資料儲存區中的副本元資料和項元資料的訪問。replicametadata 還對刪除檢測和用於實現同步提供程式方法的幫助器提供服務。

這兩個類是今天demo的主角,裡面的大部分方面都在原始碼中的my******syncprovider.cs加以實現。

今天的這個例子,主要是演示了如何使用wcf來同步遠端的元資料。當然這個例子是msf小組公布的一些demo中的乙個。通過它我們就可以大概了解一下如何使用etadata storage service進行維護操作同步元資料以及使用wcf來同步這些修改變更的原資料資訊。

其中的**程式參見如下:

當然上面remoteproviderproxy中的乙個重要屬性:sync101webserviceclient是wcf客戶端的實現**。

當進行同步syncprovider繫結時,會將remoteproviderproxy繫結到remoteprovider屬性上,當然通過上面**,我們會發現,其實最終還是要通過sync101webserviceclient例項了進行遠端元資料同步操作。下面是wcf介面**(isync101webservice.cs):

而最終的實現類sync101webservice:

到這裡服務端的**就全部列舉出來了。當然本文中介紹的是元資料同步,而相應的syncprovider實現是通過my******syncprovider.cs檔案提供的,當然為了不讓我的某些錯誤理解影響大家閱讀原始碼,這裡直接將相應的英文注釋也放在這裡。

最後,我們只要用下列**來繫結相應的類並進行同步即可(參見mytestprogram.cs檔案):

好了,今天的內容就到這裡了,更多的內容參見這個鏈結:)

Disruptor 無鎖同步框架入門

disruptor是乙個高效能的非同步處理框架,或者可以認為是最快的訊息框架 輕量的jms 也可以認為是乙個觀察者模式的實現,或者事件監聽模式的實現。英文 翻譯 1 pojo just think of a pojo author guolei public final class valueeve...

python之unittest框架入門

unittest單元測試框架不僅可以適用於單元測試,還可以適用web自動化測試用例的開發與執行,該測試框架可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。今天筆者就總結下如何使用unittest單元測試框架來進行web自動化測試。1.用import語句引入uni...

unittest框架入門之TestCase類用法

def add a,b return a b defsubtract a,b return a b defmultiply a,b return a b defdivide a,b return a b 1 建立檔案demo27.py 2 建立檔案unittestdemo27.py import u...