目前我主要的兴趣是通过 web 提供分布式计算,从这个角度来看,我发现 .NET 有几个令人激动的思想,它们是:Web 服务、SOAP/XML 和 CLR (Common Language Runtime:通用语言运行环境)。
Web 服务
Web 服务可以看作由 XML 通过 HTTP 协议来调度的远程过程调用 (RPC)。我看 .NET 基本上就是一个创建、分配、使用、支持 Web 服务,并为它提供开发环境的框架。Web 服务许诺:每个应用程序都能以一个 Internet 上的服务出现。Web 服务将成为一个关键技术,因为它是基于每天都使用的、并且是经过检验的机制。
HTTP 传输是一个制定得很好的通道,即使穿越企业的防火墙也能很好地工作。SSL 广泛地用来为 HTTP 提供安全性。任何语言、组件模型和操作系统都可以使用或提供 Web 服务。注意看看下一代 Visual Studio 工具,它们承诺可以 更容易地创建 Web 服务。
SOAP
SOAP/XML 实际上是 Web 服务的生命线,它使用通用语言 XML 和协议 SOAP 来描述数据的含义。分布式计算的世界里充满了大量的事务和消息,当我们为此使用 COM/DCOM、CORBA 和 EJB 时,今天的 Web 应用程序很大程度上是依靠手工技巧的,或者使用复杂的机制在不同的技术阵营之间进行通讯。
对于所有应用程序而言,SOAP 的确并非最佳解决办法。例如,如果你的应用程序之间需要紧密的同步耦合,总应该 考虑像 COM 和 RMI 这样的技术。
HTTP 并不是性能最佳的传输协议,而且 XML 也很冗长,因而会造成额外的传输负荷。有些情况下,需要在应用程序之间进行效率更高的纯二进制数据流传输。但是,如果你能将应用程序设计成通过松散的异步调用进行耦合的 Web 服务,那么就会产生易于集成的好处,这使得付出的代价非常值得。