应用像Visual Studio.NET(VS.NET)这样的高级开发环境的一个好处就是能够对应用和网络服务快速的发展和部署。开发应该保持干净的并且使用有文献证明的模式为你的用户和顾客保证一种可靠的生产环境。
对待某些开发技术的常用方法就是认识了解它们,这是因为有些东西能够用VS.NET实现,但这并不意味着这些都是必须实现的。这样的一个例子就是嵌套网络服务。
在这篇文章中,我们来看看嵌套网络服务的一些基本原理,并总结一下执行它们的时候会得到什么结果。
嵌套网络服务就是调用了其他网络服务的网络服务。我们用到“嵌套”是因为次级的网络服务是在父类网络服务中调用的。如果一个父类网络服务引用了多个外部网络服务,这样就会出现一个树节点层次模型,其中那个父亲就是位于这棵树最顶端的父节点。
用VS.NET为了使这个模型更形象化,建立两个简单的ASP.NET应用程序,并对每个程序添加一个网络服务。然后我们规定父类应用程序为WS1,而那个嵌套在其中的程序为WS2。
虽然这个例子中的两个应用程序是以一台计算机作为主机的,但是我们要认为它们是在完全不同的公司中执行处理的相互独立的两部分,这两个公司是物理上分开的,只通过互联网交流通信,记住这一点是很重要的。
在一个嵌套网络服务中,最少有三部分组成:客户,WS1,WS2。其中一些可能发生的问题是:
考虑一下多重嵌套网络服务的可能性。在WS2中再轮流调用其他网络服务,然后这个服务有调用其他的服务,如此循环下去是完全可能的。不用多久,这个调用链就难以控制管理了,这是就需要将他们分成一个个小部分,而这样很可能导致失败。
虽然应用嵌套网络服务会有所不利之处,但是在某些场合下这种方法还是有用的——提供了一种弥补潜在问题的设计模式。如果一个公司关在多个域中管理不同的应用程序,问题并不大,因为设计小组清楚地知道每个服务的特殊要求。
同样的,如果两个公司有着密切的联系,他们各自的特殊要求能够通过多重服务得到满足,那么失败的几率也会减少,这种情况下用嵌套方式也是可行的。
你也可以在设计你的网络服务器的时候拒绝用户自定义类,只提供使用到.NET框架中的对象的方法标志,保证你的客户能够对临时类有所了解。