0
点赞
收藏
分享

微信扫一扫

关于在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小时。即使得出的选择是目前觉得不好的,也不要停留过久,因为你有机会回过头来修复完善它,但如果你一直停止不前,就有可能永远也无法完成整个项目,所以,别让任何一个问题点把你绊住,因为你有颗活跃的心。

举报

相关推荐

0 条评论