Microsoft的 .NET 策略(2)
2024-07-10 12:59:47
供稿:网友
.net 描述了两种编程模型
在技术层面上,.net平台的基础包括:扩展置标语言,也就是我们熟悉的xml;简单对象操作协议(simple object access protocol ,soap);以及将未来的internet 视为面向各种设备的服务的观念。这些高层次的描述主要是面向这个新的模型中最明显的方面——也就是实现web服务的部分。
然而,在内部,.net平台建筑于.net架构之上,.net架构提供了实现这些概念的api的底层机制。.net架构也经历了.net本身的问题——就是它被用于描述太多的事情了。特别是,.net 描述了两种新的不同的编程模型,他们构成了概念的基础:这就是web服务编程模型(web services programming model )以及系统编程模型(system programming model)。
企业一定要认识到,组成.net的是两个相互独立的编程模型。web服务编程模型与底层的系统编程模型是相互独立的。这些编程模型可以也应该分别使用。
.net web服务编程模型
.netweb服务编程模型大体上就是通过internet的各种标准来实现各种接口。这是一组以internet标准为基础的松散的模型,使用http和其它的协议作为主要的通讯机制,同时,使用了xml,soap,web服务描述语言(web services description language,wsdl),以及通用描述,发现,集成(universal description, discovery, and integration , 简称uddi)。最初,多数这种编程模型的使用将采取请求/应答的模式。
在2003年,web服务的主要形式将是组件调用以及信息推送,这些在所有web服务中占到75%以上。更长远的未来,我们认为“协调组织”了的工作流或者服务将成为web服务的主力,很多这些编程模型已经出现了,比如soap和其它一些出现在.net以前的技术,而且这些技术现在就是可用的,在正式的.net产品以前就有了。
作为日益增多的web服务体系的一种,.net架构提供了与底层的系统api以及组件模型无关的编程模型。这也体现了microsoft和其它一些公司在上个世纪90年代对分布式计算的看法,并且通过一个简单的方法借助internet得到了实现。服务以服务器上的程序的方式来实现,这些程序使用标准的协议与调用的程序进行对话。
如果需要在一个系统中的一个进程中进行跨组件通讯,或者是跨越.net架构系统或多个进程进行跨组件通讯,.net架构可以使用soap或者或者是二进制协议进行通讯。如果进行跨系统环境(比如,和非.net架构系统)进行组件通讯,.net架构可以只使用soap。在一个系统上运行的程序和服务仍然使用com,不过以后慢慢将会变成使用.net中的新类。
理论上,这些程序还可以是在unix上实现的enterprise javabeans ,不过microsoft没有为此提供什么帮助。但是要记住.net web服务编程模型是不依赖.net 系统编程模型的。
.net 系统编程模型
作为.net平台的一部分,microsoft也建立了新的系统编程模型,同样在.net架构上得到了实现。.net 系统编程模型在长远看将最终取代com以及windows api,这个现在还没有定名的模型使用了新的基础类。
.net 架构(.net framework )包含了microsft 新的通用语言运行时(common language runtime , clr),可以支持新的编程模型,并且首次将真正的面向对象的类结构作为了运行时环境的一部分。com的界面为开发者提供的功能在.net 架构中也是可用的。
.net 系统编程模型是microsoft私有的,虽然有些部分被开放,这要归结于欧洲计算机制造商联合会(european computer manufacturers association , ecma) 在c#标准化方面的努力。.net 系统编程模型还包含了一些类和机制,可以将现存的程序转化为web服务,这样可以简化web服务的开发,虽然这样的设置并不是十分有必要。
microsoft的主席bill gates 将这种向.net平台的迁移比作和从dos到windows一样意义重大。不过我们觉得更加准确的比较应该是这种迁移类似于win16向win32 的迁移。在向windows的迁移中,dos下的程序立刻成为了过去,而win16的应用则在很大程度上和win32兼容。
另一个比较好的比较是把.net比作当初mirosoft实现自己的java时的情况,当时microsoft将java类和组件包装为com组件,microsoft了解到了将两种模型相互映射的好处,现在microsoft开始发展这个还没有名字的新的组件模型,他们再次将新旧模型进行了映射和包装,旧模型就是com,microsoft在这里的真正意图之一是去掉对java的需求。