Windows Server 2003的新特性体验

 撰文/郭红俊
关键词  .Net Frameworks   IIS  服务器 
本文介绍了Windows Server 2003最为引人注目的几个新特性,.NET Framework 1.1的集成,IIS6的功能增强,以及其它许多改进之处。


当你见到这篇文章时,Windows Server 2003已经正式发布了。作为微软继Windows 2000之后向企业级计算领域的又一次尝试。微软试图凭借这款更具伸缩性、更加可靠的服务器操作系统向上蚕食传统UNIX的份额,向下抵御Linux的猛烈进攻。在这篇文章中,我们将站在开发者的角度看看Windows Server 2003到底给我们带来一些什么样的变化。
 
. Net Framework 1.1的紧密集成
对于开发者来说,毫无疑问最重要的是Windows Server 2003对于.Net Framework 1.1的紧密集成。作为.Net战略的核心,微软所有的开发工具都将针对.Net Framework 1.1展开,这就意味今后绝大部分应用程序都将基于此运行环境运行。而Windows Server 2003集成.Net Framework 1.1后,也就无需再为程序的发布而苦恼了。

.NET框架是整个.NET平台的基础架构。这个框架结合了通用语言运行期(CLR)和一组统一的类库,包括Windows表格、ADO.NET、ASP.NET及其它能力。
Windows Server 2003 默认安装的.Net Framework是1.1而不是1.0,.Net Framework 1.1版本是在1.0版本基础之上增加了一些新功能、增强了现有功能。主要新(增强)功能如下:
并列(Side By Side)执行
.Net Framework所支持的并列执行将使系统管理员能够在同一机器上存储并执行应用(或组件)的多个版本。这就意味着你能够在同一机器上同一时间内就像多个版本的应用程序(或者组件)一样,拥有多个版本的.Net Framework分发包。
支持Internet中WinForm的Assemblies的调用
Assemblies在internet区域内的调用.例如:WinForm控件被内嵌于网页或者WinForm的Assemblies存在于一台Internet服务器上,他能同时从浏览器与System.Reflection.Assembly.LoadFrom()方法中调用.现在这种使用方式可以通过以部分信任(semi-trusted)方式以充足的权限得以执行.默认的安全策略已经修改,以使由CLR分配的Assembly有能力访问Internet区域的代码集。而在.Net Framework 1.0 SP1与SP2中,这样的应用程序不会有权限这么做。
注意:当我们使用此种方式时,默认的情况下客户机是不会给予完全的权限的。默认情况下,由于代码访问的安全设置,这些代码是以受限的方式运行的,他们只有很少的权限来保证代码安全的正常运行。这种代码不能破坏你的数据或者系统,同时也不能偷取你的个人隐私。
支持ODBC与Oracle数据库的访问


现在我们就能直接在.net中象操作ODBC方便的使用Oracle数据库了。以前在.net中使用ODBC,我们使用ODBC还必须下载ODBC.NET,现在.net中已经为我们提供了System.Data.Odbc这个命名空间,现在我们就不用愁了。
同样的现在.net也给我们提供了System.Data                .OracleClient这个命名空间,它使用OCI(Oracle Call Interface)来实现数据的访问.(如图1)
统一编程模型
.Net Compact Framework提供了CLR,WINFORM控件以及其它一些特性,专为一些小型的设备使用,并且.Net Compact Framework还支持大多数.Net Framework的类库,并将其优化,以适应小型设备。
支持的设备包括Pocket PC 2000、Pocket PC 2002等运行Windows CE.Net 4.1的设备,注意这以前的版本的CE是不支持的:
Compact CLR很好的利用了控制代码(比如内存管理)的益处来适应小型设备。
Internet Information Services (IIS) 6.0
IIS现在在微软的战略中的重要地位是不言而喻的。作为运行Web和今后更加重要Web Service的平台,IIS的表现至关重要。和IIS5.0相比,IIS6.0的变化是巨大的,重新设计的体系结构和运行模式,使得IIS无论是在性能、可靠性还是安全性都有显著的进步。下面是IIS6.0的具体改进。

新请求处理结构
IIS 5.0被设计为只有一个主Web服务器进程——Inetinfo.exe,此进程可用于将请求分配到一个或多个进程间应用程序(dllhost.exe)。与此相比,IIS 6.0被设计成两个新组件,它们使用新的内核模式驱动程序。这就使IIS将Web服务器核心代码与应用程序处理代码分离开来。这两个新组件是内核模式下的HTTP监听器——HTTP.sys和用户模式下的配置与进程管理器——Web管理服务;应用程序处理程序被装入到独立的工作者进程中。这些工作者进程轮流为申请HTTP.sys中应用程序池的请求提供服务。在一台具有8个处理器的服务器上进行的最初测试表明,参照ASP.NET基准所设计ASP可以达到100%的吞吐量。
HTTP.sys——新内核模式驱动程序
HTTP.sys是新内核模式驱动程序,它处理所有到来的(服务器端)HTTP请求。这为HTTP服务器应用程序提供了更高性能的连接。驱动程序位于TCP/IP之上,接收所有来自它所监听的IP/端口组合的连接请求。HTTP.sys还负责所有的连接管理、带宽节制及Web服务器日志。初步测试表明,与IIS5.0相比,对静态内容,性能可提高200%的吞吐量;缓存响应最大可获得165%的吞吐量。
缓存策略和线程管理
IIS 6.0内置了先进的算法,以确定可缓存的、经常被访问的应用程序或站点集。只是因为某项是可缓存的,有时向内存缓冲区中添加一项并没有意义,因为管理该项目及它所使用的内存是需要付出代价的。因此,IIS6.0使用新算法根据特定应用程序接收的请求来确定哪些项应当被缓存。这意味着Web服务器能充分利用服务器上的资源,而同时保持频繁请求的性能,意味着其扩展性提高了。
Web Farm
Web Farm是应用程序池,其中多个进程对路由到该池的请求提供服务。可以对Web Farm中的工作者进程进行配置,使其绑定到多处理器系统中的一组指定CPU上。通过Web Farm,Web应用程序提高其扩展能力,因为一个进行中的软件锁不会阻塞到达该应用程序的所有请求。如果Web Farm中存在4个进程,特定的软件锁一般只会阻塞1/4的请求。
连续的 ASP模板缓存
在IIS 5.0中,ASP代码执行前,ASP引挚将ASP文件编译为ASP模板。这些ASP模板存储在内存中。如果站点包含了很多ASP页,缓存将释放最旧的模板占用的内存,以为新模板提供空间。在IIS 6.0中,这些模板连续保存在磁盘上。如果其中一个ASP文件被再次请求,ASP引挚将装入模板页而不是装入ASP文件、用另外的CPU对其再次编译。初始测试表明,由于连续存储在磁盘缓存中,IIS 6.0和ASP的性能提高了,其吞吐量增加了50%。
默认情况下,IIS是以较低的特权帐号运行的
工作者进程是以NetworkService身份运行的,此内置帐号的特权非常低。以低特权帐号运行是一个很重要的安全原则。如果底层系统中工作者进程具有非常小的权限,那么对潜在安全弱点的攻击可以受到严格限制。
IIS 6.0还提供状态监视功能以发现、恢复和防止Web应用程序故障。在Windows Server 2003上,Microsoft ASP.NET 本地使用新的IIS进程模型。这些高级应用程序状态和检测功能也可用于现有的在Internet Information Server 4.0和IIS 5.0下运行的应用程序,其中大多数应用程序不需要任何修改。
IIS 6.0 故障复原处理模型
IIS 6.0提供了一种体系结构以提高应用软件的隔离程度。管理员可以创建多个应用软件池,并且向这些池中分配应用软件以提供隔离的能力。应用软件池可以被监测和自动再生,以确保应用软件的可用性。
ASP中的COM+ 服务
在IIS 6.0中,IIS和COM+小组从组件中分离了COM+服务,并允许ASP应用程序使用COM+服务。除了存在于Windows 2000  COM+中的服务外,在ASP中还添加了一些新服务,并得到了支持:
聚合支持——通过聚合,ASP应用程序就可以使用特定版本 的系统运行时DLL或典型的COM组件。
分划支持——COM+分划允许管理员为不同用户对单个COM+组件定义不同配置。配置包括安全和版本化信息。关于COM+分划的更多信息,请咨询COM+文档。
ASP.NET: 集成在IIS 6.0中
ASP.NET集成在Internet信息服务(IIS)6.0的处理模型中,能支持多个应用软件池。这意味着个体的ASP.NET应用软件是孤立的,并且直接与核心模式的http侦听者对话。这致使处理过程中的跳跃次数减少,同时允许ASP.NET应用软件支持核心模式的文件缓存。
ASP.NET:高级编译
.NET框架高级编译通过编译而非解释执行网页提供了增强的性能。它既支持预编译的应用软件,也支持在线编译的应用软件。ASP.NET支持更高级的线程模型,这就允许它执行异步I/O,提高了性能和可伸缩性。执行前转换服务器端代码的做法变得没有必要,这样就节约了服务器资源,提高了服务器的性能和可伸缩性。
ASP.NET:智能缓存
ASP.NET编程模型提供了一个缓存API,允许程序员去激活缓存服务,以提高性能。一个输出缓存保存完整的网页,而片断缓存则储存部分网页。提供了相应的类,这样应用软件、HTTP模块和请求处理器能够按照各自的需要在缓存中存储任意对象。

其它改进
当然,作为一个耗时多年研发的操作系统,Windows Server 2003的改进还不止这些,其中对开发者会产生影响的地方我罗列在下面。

新的应用编程接口(APIs)
Windows Server 2003引入了大量新的应用编程接口(APIs),使它成为一个更具效率、更灵活的开发平台。这些新的应用编程接口(APIs)包括:
管理IP安全:Windows Server 2003包含了一个本地系统管理API,以控制IP协议安全(IPSec)。

改进的COM+
Windows Server 2003针对组件对象模型做了几个方面的改进,包括:
把应用软件当作服务:对通用对象模型COM+1.x的改进允许你将一个COM+服务器应用软件配置成一个服务,以及把一个服务当作是一个COM+服务器应用软件。这提供了对COM+应用软件启动过程的更多控制。把应用程序当作一个服务去运行意味着组建的动态链接库(DLL)在系统启动时被载入内存中。这将使得一个COM+应用软件高度可用并且允许把它安装在一个集群的服务器上。
应用软件分区:应用软件分区允许在同一台计算机上安装和配置多个版本的COM+应用程序。这将使得服务器应用程序得到更加经济有效的管理。
应用软件进程转储:暂停/禁止应用软件提供了一个新的进程转储功能,可对一个进程的所有状态进行转储,而不需要结束该进程。
组件别名:COM+ 1.x提供了组件别名。这提供了对同一个组件的物理实现进行多次配置的能力。
可配置的隔离级别:COM+ 1.x提供了配置隔离级别的能力,这比以往的任何时候都来得灵活。
低内存激活门限:COM+ 1.x阻止错误路径在服务器上运行。COM+在它创建一个COM+服务器或者是对象时对内存进行检查,而不是被动地等待一部分代码得到内存分配。如果该应用软件可用的虚拟内存百分比降低到一个固定的阈值时,在对象被创建之前,内存的激活操作就会失败。
进程再生:这个改进允许你管理性地通过COM+用户界面或者计划性地通过COM+管理软件开发包(SDK)去配置进程的再生。基于几个标准,进程可被关闭或者是再生,这些标准包括所用时间、内存使用率、调用的次数和激活的次数等。

Internet协议6(IPv6)
IPv6是下一代TCP/IP协议组中的Internet层协议。IPv6解决了目前Internet协议4(IPv4)中关于地址损耗、安全性、自动配置、扩展性等等的问题。
Windows Server 2003 Family 中的IPv6协议改进了常用的TCP/IP工具(包括Ipconfig,、Route、Netstat、 Ping、Tracert 及Pathping),并扩展了API支持(包括Windows Sockets、远程过程调用、IPHelper)。支持IPv6的系统组件包括Internet Explorer、Telnet 客户端、FTP客户端、Internet信息服务(IIS)6.0、文件和打印共享等等。
这并不意味着使用IPv6会引起与IPv4相关的管理能力问题。Windows Server 2003 Family通过一些技术,如6to4和站点内自动通道解析协议(ISATAP),来支持IPv6和IPv4的并存。

命令行管理
Windows Server 2003系列的命令行结构得到了显著增强,使管理员无须使用图形用户界面就能执行绝大多数的管理任务。最重要的是通过使用Windows管理规范 (WMI) 启用的信息存储来执行大多数任务的功能。此WMI命令行 (WMIC) 功能提供简单的命令行界面,与现有的外壳程序和实用工具命令交互操作,并可以很容易地被脚本或其他面向管理的应用程序扩展。比如下面两项新增加的功能:

随时可用
需要很少编码或不需要编码就可随时使用解决方案。所有工具都具有一致的、标准的语法,并能方便地访问命令行文档(/?帮助文本)及全面HTML帮助文件——:“ntcmds.chm”。

远程管理
所有新工具都支持通过/S参数(例如,远程系统名,/S MyServer)进行的远程服务器操作,并且能在Telnet和终端服务下运行,完全实现了远程命令行管理。

小结
Windows Server 2003确实是在可靠性、可扩展性以及安全性等企业级运算所关心的性能指标上有着显著的表现。对于开发者的支持也可以说是非常体贴。对于广大Windows老用户来说,升级是值得的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值