Microsoft.NET initiative介绍
常年累月,我们使用计算机的方式在变。今天,每个人都看到因特网的价值,并且,我们使用计算机的方式在变得越来越依靠网络提供的服务。就我而论,我喜欢通过因特网买东西,获取交通信息,比较产品,买票,读产品评论。
不过,我发现在今天,因特网上还有许多我想做的事情不能实现。例如,我想在我的社区找到一个对菜肴风味有详细介绍的餐馆。此外,我想知道这个餐馆今晚7点是否还有空位。
或者,如果我在做生意,我会希望知道卖方商品的详细资料。如果有多个的卖方能向我提供资料,我想知道哪个卖方的货最便宜,或者是哪个卖方能最快交付。
今天还不能存在象这样的服务,主要有两个原因。第一个原因是, 没有合适的标准来描述全部信息类型。第二个原因是,今天的商家用自己的方式告诉别人他们在卖什么。XML的出现,提供了描述全部信息类型的标准。第二的理由可以归结为:为了提供这样的服务而必须进行的开发工作具有难度。
微软公司预见到出售服务将是未来之路。换句话说,公司将提供服务,并且被服务的用户将支付服务的费用。很多的服务将免费,还有一些服务将按月收费或按用户个数收费。当写这篇文章时,个人和商业公司如何对这些服务支付的费用细节尚不清楚;我们必须先看一看这种业务将会如何开展。你能把服务看作一些商业抽象概念的实现。这里是一些简单的服务例子:
将邮政编码转换为经纬位置;
验证信用卡的购买力;
找到从某地到达另一地的方法;
找一家需要的餐馆;
管理一个在线像册;
控制一个在线日历;
我可以继续设想一个公司应实现的服务。
毫不怀疑地,微软公司将在不远的将来, 提供一些这类的服务。其它的公司将提供其它的服务,并且,他们能完全参加(甚至和微软公司一起)到一个自由的市场。
那么,我们怎样从今天这样的环境,到达轻松实现那些服务的未来世界呢?并且,我们如何利用与结合服务的观念,制作出真正具有丰富特性的应用程序(这种应用会基于HTML 或其他方式)呢?例如,如果所有餐馆都提供列出菜单的服务,那么就可以制作这样一个应用,它可以查找到用户希望就餐的餐馆。通过查询每个餐馆的菜单,找到具有用户需要的烹调风味或菜肴的,并且就在用户附近的餐馆。
为了制作象这样的应用,服务提供者必须为他们的商务服务提供程序上的逻辑接口。这种编程上的接口必须可以通过网络由远端调用,比如因特网。这就是Microsoft.NET initiative。
让我这样解释它:计算机与外围设备(内存,显示器,数字照相机,扫描仪,以及其他等等)连接。操作系统(象视窗)提供的开发平台,使应用程序可以抽象存取这些外围设备。按这种方式,你可以把这些外围设备看作服务。在新的世界里,服务(或者外围设备)将被连接在因特网上。
开发者想得到访问这些服务的简单的方法。Microsoft.NET initiative提供了这样的开发平台。
可以确定的是,微软并没有拥有任何涉及到未来将实际发生的事件的标准。在因特网上,应用和服务之间的通讯,通过HTTP包完成。在HTTP包的内部是需要服务的的 XML数据,之后服务端通过把XML数据回送给客户,就完成了应答。XML数据具有正式的标准。这标准被叫做简单对象访问协议(SOAP)。微软公司帮助定义这些标准,但是不拥有这些标准。
以下的图形显示了彼此通过SOAP协议发送XML数据来通讯的的Web服务群。图形也显示了客户可以通过SOAP(XML)方式,经由Web服务器和其他的客户交流。另外,图形显示客户从Web服务器获得的HTML形式的服务结果。当然,也许需要客户填写了一个送给Web服务器的Web表格。Web服务器处理了客户的要求(包括与其他的Web服务器的通信),并且,结果将通过标准的HTML页最终被回送给客户。
另外,在提供服务的计算机上必须运行可以接受这些SOAP要求的操作系统。这操作系统可能是视窗操作系统,但也不是必须。任何能在Socket端口接收请求并能读写端口上数据的操作系统都可以。在不远的将来,蜂窝式电话,呼机,汽车,微波炉,电冰箱,手表,立体音响,游戏控制台和各种其他的装置将能参加到这个新的世界。
在客户或应用一方,运行的操作系统必须能读/写到 Socket端口,这样才可以发出服务要求。另外, 客户计算机上运行的操作系统必须能支持终端用户应用程序的任何要求。如果终端用户的应用程序想制作窗口或菜单,操作系统必须提供这项功能,或者,这个应用程序的开发者必须用手动实现它。
当然,微软公司希望人们利用视窗的丰富特点来编制应用程序。但是,这不一定是必要条件。我努力去说的是无论是否微软公司参与,新的变化都将发生。微软公司的技术并不能造成这些变化的发生。Microsot.NET做的是,使开发者轻而易举地的制作这些服务并访问这些服务。今天,如果我们需要,我们完全可以去制作我们自己的的操作系统。但是它真的很难,并且将花去长的时间。我们能编写Web服务,并编写接收和处理SOAP需求的程序。但同样也很难。
微软公司为了生产Microsoft.NET已经为我们完成了全部艰难的工作。它使这些工作变得简单。现在,象我们这样的应用开发者,可以集中我们的精力在我们自己关心的商业抽象概念和服务上。至于通讯协议和构建都交给微软公司。(这也许是微软公司拥有许多喜欢它的开发者的真正原因)。
附作者来信:
好久没联系了,一切都顺利吗?
我在CodeGuru上看到了Jeffrey Richter关于.net的一篇评论。我很喜欢他写的《Programming Application for Microsoft Windows》,所以就把它简单翻译了一下。
现在讨论.Net的人挺多,希望这篇简短的介绍可以抛砖引玉,让更多有识之士来发表看法。