關於在Window Service裏提供管理接口的選擇

  上篇文章 ,我提到了WMI提供程序可以宿主在Windows Service裏,作爲管理界面的接口,不錯,這是一種方法,但目前市面上用的人好像不多,介紹大多都是如何用WMI當客戶端的讀CPU資詢的例子,偶爾一天在書店查書時,發現,remoting可以使用單例宿主在Windows Service中,但我從來都沒有這樣用過。

  我從前的想發時,把服務程序放在Windows Service裏,再New一個WMI Provider當作接口,再把Windows Service裏的服務引用在這個WMI Provider裏,WMI Provider內部並不存放實際的代碼,只是一個引用真實服務程序的外端接口提供者。我一直這樣想的,所以思路一直不開闊,因爲從前做的客戶程序調用類庫這種方式的多,而調用系統中唯一一個存活的實例服務的,卻很少(數據庫除外,當然數據庫服務也不是我自己寫的,指是外部調用而已)。換一種思路,可能會好,例如,我把服務程序宿主在WMI Provider裏,再將WMI Provider宿主在Windows Service裏,以組合的形式,也是可以的呀。這個思路,是在我看remoting的時候產生的,那換一種方式想,如果我將服務程序放在remoting裏,然後再將這個remoting放在Windows Service中,這樣的話,我對外提供的管理接口,就是一個remoting的類庫(單例),租期類型無限長。相比remoting與WMI Provider,remoting可以提供dataset(例如,顯示在線用戶列表),但WMI Provider要想表現同樣的功能,就可能會累些(例如,要提供類的集合)。

  所以,如果在前期測試remoting通過的話,我會先選擇remoting來作爲管理接口。雖然WMI Provider看上去更標準一些,因爲網管都可以編寫Script控制它,這是它的強大。但作爲當前項目決策,我覺得remoting更容易實現,而且更容易上手,我會本着在任何技術問題點上,都不會停留過24小時。即使得出的選擇是目前覺得不好的,也不要停留過久,因爲你有機會回過頭來修復完善它,但如果你一直停止不前,就有可能永遠也無法完成整個項目,所以,別讓任何一個問題點把你絆住,因爲你有顆活躍的心。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章