Internet 的应用正在不断地扩大,但我们的 Internet 编程方式还处于石器时代。Internet 用户就像老式主机的分时终端上的用户一样,他们从一个受保护的资源请求信息,然后等待回应。你从正在浏览的 Internet 站点上接收的信息由它希望提供给你的、基于 HTML 的信息组成的。
但是,同远程 Web 站点进行交互式操作是不是更有趣?如果我们能用某种方法访问远程站点提供的计算能力并利用它的服务,而不仅仅是利用它的发布能力,会不会更好?这就是 .NET 将要提供的精华。
.NET 将远程 服务器 所提供的计算能力和允许用户交互操作所必需的通讯结合在一起。明确地说,.NET 是为你-Internet 开发者-所设计的,它帮助你创建可扩充的新能力。你的 Internet 站点不应该成为带宽海洋中的孤岛,相反,你能以这样的 方式建立你的站点:通过合作和互操作能力,使它融入 Internet 之中。
所有这些的关键,当然是合作的能力。要具有互操作性,要以高速数据传输率来共享数据。如何做到这些?为什么 .NET 发生在今天而不是五年以前?
当然一部分答案就在我们今天身在其中的网络技术之中。从来没有现在那么多的人拥有高速带宽连接,并且在不久的将来还会有更多的人加入进来。想像一下人人拥有 DSL、Cable Modem 或宽带无线连接的时代 ...... 我们将很难回忆起 300 波特 Modem 的时代
在过去的几年里,两个最关键的进展就是引入了 XML 及其在 SOAP 中的应用。这些技术都是 .NET 的核心。要成为 .NET 开发世界中的佼佼者,就必须理解 XML 和 SOAP。
.NET 技术
你可能已经阅读了一些关于 .NET 是什么和由什么东西组成的文章。.NET 允许我们在服务的层次上而不是在发布的层次上来共享信息并交互。Microsoft 的支持 .NET 的产品和许多来自第三方的组件、内容和功能拥有 .NET 的内部结构。但自然地会提出一个问题:“是什么使 .NET 能够工作?”
这些都从 XML 开始。
用 XML 实现数据编码
要想理解 .NET ,就需要理解 XML 。像我们在自己的交流中所说和写的语言一样, XML ,eXtensible Markup Language,可扩展标记语言,是 .NET 的基础。也许我们有伟大的思想和信息可以分享,但如果我们不能以一种别人可以理解的方式来表述我们的思想和信息,我们的艰苦工作和想法就只能躺在那里睡大 觉。 XML 是 .NET 的灵魂,是所有 .NET 现在和将来的基础。 数据库 将通过 XML 中的纪录集来读写,Web 浏览器将接受 XML 并将其和伴随它的样式表一起显示,Visual Studio 甚至会产生 XML 代码!不理解 XML 和与之相关的技术,你就不能同支持 .NET 的资源交流,无论是站点还是人!
对于今天的 Web 服务器 而言, XML 差不多无所不在了。几乎所有的计算平台都能分析 XML ,因而也就能获得 XML 文档中的内容。Windows 能, Linux 能,当然 MVS 和 VMS 也能。甚至蜂窝式移动电话也能!所以,如果我们能找到一种方式从远程系统获得 XML 文档,问题就剩下如何理解文档中包含的数据了。这时,我们通过 SOAP 搭载 XML 文档。
用SOAP实现数据通讯
长期以来我们使用超文本传输协议 HTTP 来提供 Web 页面以及往来的内容。但当我们将 HTTP 或一些其它 Internet 传输协议 同 XML 结合起来,并指定 XML 文档自身的格式时,你得到了简单对象访问协议 SOAP。至少在开始构想它时,SOAP是被设计为从本地系统向远程系统传递远端方法调用的。基于 SOAP 的结构与同时代的其它远程结构—DCOM、CORBA 和 RMI 等等—所不同的,SOAP 协议可以穿越任何团体的 防火墙 ,并且 SOAP 数据包中包含着以 XML 编码的数据。而且,它们易于分析和使用。SOAP 还有很好的伸缩性,这使得我们能同时为非常多的用户服务。
SOAP 模型最初的构想是使用请求-响应模型,同我们今天所用的 Internet 计算模型很相似。随后,SOAP 发展到包含了消息模型。两者的不同之处是 SOAP 在对远端系统上的方法参数进行编码时,有获得结果的特殊目的。它并不请求 Web 站点提供一个感兴趣的数据表格,相反,比如说,在同样的系统上我能调用一个假想称为 CalculatePayment() 的远程调用,并收到一个个人付款数值。是的,今天你能用一个表单做到这些,但关键是在调用服务和提交表单之间存在着差别。服务调用是功能更强的概念。
.NET:数据共享平台
给我一种语言 XML 和一种通讯方式 SOAP,我就能建立允许我们交互和合作的系统。这就是 .NET。最初,Microsoft 将建立这种强大的共享,然后他们需要一些时间将最初的版本放到公共领域。如果 .NET 像预期的那样工作,它将改变我们的计算习惯和业务实践,就像在过去的二十年里 DOS 和 Windows 所做的那样。可以预见,鼓励用户进行交互并为 Web 消费者提供服务的站点将繁荣昌盛。这些站点不会遇到麻烦甚至消亡,因为 Internet 消费者正在更多地意识到他们需要得到增强的服务。
胖客户机计算并没有消亡,但瘦客户机计算正在市场上变得更加流行。作为一个开发者或项目经理,应该有责任学习最新的概念和技术,并把它们应用到业务实践之中。记住达尔文的圣言:进化在产生,但自然选择也在进行。