人们对于美国微软在经过精心策划后于6月宣布的“microsoft.net”的设想是见仁见智。在传媒中“目前还很难说”的反应居多。实际上,由于具体产品开始出笼还是2~3年以后的事,现在说三道四确实为时尚早。
这里有一把可以用来快速理解microsoft.net的钥匙。那就是先了解java技术。这是因为微软自己就说过,“只要知道java就可以更快地理解microsoft.net”。
microsoft.net有几个关键点。其中最重要的一点是改革商务模型。微软公司感觉到只靠销售软件包的商务模型没有什么前途,该公司打算今后将中心转移到可以在网络上使用的“服务”型商务。
这样,首要的问题就是解决网络上用来开发并执行“服务”的平台,这就是microsoft.net。这一平台应该是一个继承了目前的windows资产,同时又是一个不比与其竞争的技术(即java技术)逊色的现代化的东西。
新的平台试图提高开发生产效率(再也不想为内存溢出错误(memory leak error)而烦恼了!),并且试图使应用软件的发布更为容易(再也不想因为dll版本不同而烦恼,希望不用重新启动电脑就能够安装应用软件)。为此,就需要将平台升级为现代化的内容。而且,microsoft.net的蓝图与java十分相似。
microsoft.net平台将推动程序执行环境的虚拟化进程。使用编程语言编写的代码,首先转换成中间代码“il”后,在虚拟机“common language runtime”上执行。在执行时利用“jit(just in time)编译器”,通过将中间代码转换为本地代码(native code)来提高执行速度。此外,还配备实现内存管理自动化的gc(垃圾收集器,garbage collector)以及验证中间代码的机制。此外还有可以在虚拟机环境中利用的共同层次程序库(class liblaory)“microsoft.net framework”
所有这些特征与java平台惊人地相似。均具有提高开发生产效率,容易发布软件(安装时只需单纯复制即可)等特征。这些都与java技术一致。
当然,java与microsoft.net除了相似之处还有很多不同的地方。通过这些区别,就可以发现这两个技术在今后角逐时的力学关系。以下是主要的区别。
(1)java技术目前就可以利用。microsoft.net的登台还要等2~3年。
(2)java是采用一种语言(java语言)开发的。而microsoft.net则可以接受利用visual basic和新的语言c#,以及所有的编程语言开发软件。
(3)java对应多个os。而microsoft.net虽从原理上讲可以对应多个os,不过估计目前暂时只以windows环境为对象。
(4)在xml方案方面微软的构思领先。为了实现对应网络的“服务”,采用了基于xml的远隔工程(project)调入协议soap。对应xml的协议,原则上不能局限于特定的平台。这一点其他竞争公司也给与很高的评价。
基于java技术且对应网络、用来提供服务的协议还有jini。不过,jini是以java为前提的技术,很难说它是用来分布不同种类的技术。
微软公司有若干他所不擅长的领域。尤其是在高端服务器os、高端数据库、大规模web应用软件服务器以及transaction中间软件领域中,已经难以同美国sun microsystems、美国ibm、美国oracle以及美国bea systems等竞争对手一争高低。而另一方面,在桌面领域中微软依然占有压倒性的市场占有率。该公司所擅长的领域,说到底还是以visual basic为代表的容易使用的开发工具群,和以office为代表的桌面环境。
只要在桌面环境中的膨大用户支持该公司,就可以在网络中占有一方领地。如果应用java的某个大规模web网站提供优秀的服务,则只要开发出将其整合,便于使用即可。
其结果,微软公司为了继续生存的最有效战略,是将桌面环境中的优势运用到网络时代--这便是听了microsoft.net说明后使人感受到的。
不过话又说回来,要想开发既继承现有环境,又支持多个语言的microsoft.net,其难度将比开发java技术要大。而另一方面,java技术的开发正在稳步前进。展现在微软公司前面的路,的确是很不平坦
闽公网安备 35060202000074号