前言
.NET与J2EE已经成为企业建设核心信息系统时选择的两大主流技术体系。企业到底选择哪种平台,取决于许多因素。其中有技术方面的因素,也有商务方面的因素。为了降低技术依赖的风险,一个企业可能采取两种技术体系并行的策略。为了快速抢占市场,一个企业可能选择能够快速开发产品的技术体系。一个系统如果更强调稳定性,而可以牺牲一些性能,企业可以选择合适这种系统的技术。
下面我希望从技术的各个方面,评估一下.NET与J2EE两大技术体系。
1.稳定性 (Stability)
从NT4.0到Windows 2000服务器,到Windows Server 2003, Windows操作系统在稳定性方面有非常大的提高。系统隔离机制保证应用程序不会干扰底层的系统内核,应用程序与应用程序之间也不会相互干扰。新的IIS6.0 Web服务器通过多进程机制很好的隔离了运行于同一台服务器的不同Web应用,使它们不相互影响。
Windows提供系统资源分配工具,系统管理员可以用来给应用程序分配系统资源,如CPU和内存。这样,一个应用程序不会占用所有的CPU或内存而导致其它应用程序无法运行。
另一类影响系统稳定性的因素就是厂商的设备驱动程序,Windows操作系统通过改善驱动程序检验工具,提高了设备驱动程序的质量,从而大大减少了蓝屏,提高了系统的稳定性。
2.可用性 (Availability)
Windows 服务器操作系统内置群集功能,可以支持最多达到8个节点的故障转移群集,对用户来说,8个节点的群集好像就是一台单一的服务器。如果群集中的一个节点发生故障,其他节点会接管正在进行的服务,这就是故障转移,它保证了系统内不存在单点故障。
从灾难恢复机制来说,即使在极端情况遇到故障时,也可以通过文件系统保护机制,恢复控制台,卷影副本等技术快速对于系统进行恢复,将对生产造成的影响降低到最小。
另外,通过微软的数据中心计划,更可以实现由微软,硬件厂商,和服务提供商共同为客户提供从评估,安装,管理维护,到支持的一系列服务,为客户提供24x7x365的可靠性保障,获得99.999%的系统可靠性指标,即平均每年的停机时间小于5分钟。
3.安全性 (Security)
信息系统的安全性不局限于操作系统平台的安全性。微软认为信息安全问题跨越了技术保障的层次,涉及安全策略和制度、人员管理和培训等诸多方面。
结合给其他国内外客户安全体系设计的经验,微软认为客户的安全架构应该包含以下部分,如下图:
具体来说,微软希望在四个方面为客户提供经验:
A. 战略层面。从系统体系架构设计开始,进行风险分析,建立概念性的安全模型,该模型将从战略的角度提供整个业务系统的安全策略和实施原则,为未来的安全方面的举措提供指导。
B. 技术层面。围绕从网络、操作系统、应用等各个技术层面,建立全方位的技术支持体系,特别地,微软可为客户的关键业务提供最快速的技术支持。如:对于突发的安全事件,微软将提供多种不同级别的支持,如:对A级(最高级别)的突发事件,微软保证立即响应;对C级事件(对当前的生产环境无严重影响的事件)保证在4小时内响应。
C. 流程层面。提供了微软在IT运维管理方面积累了大量的经验,总结出了完善的安全管理、系统运维方法论和策略,如:MOF,MSM等。
D. 人员层面。微软将为客户的关键用户提供全方位的安全培训。
同时,我们注意到,不同客户在技术支持层面上有一些具体的技术问题,我们就该问题中涉及的关键安全环节一一的解决:
在操作系统安全性方面,Windows Server本身就集成了大量的安全技术,如:PKI、IPSec、Kerberos、AD等,覆盖了从网络传输、数据加密、身份认证等各环节;在系统的实际部署过程中,微软将为客户提供了一整套系统安全加固基准策略,针对数据库、Web、核心服务等应用进行度身定制,进一步提高系统安全性;同时,微软还提供系统安全漏洞扫描技术,让系统维护人员能在数秒内快速扫描系统,及时发现并排除潜在的安全隐患,做到防患于未然。
对于客户关心的病毒防护问题,微软建议从如下方面进行安全防护:首先,通过对应用层防火墙(如:ISA Server等)的功能扩展,构筑病毒网关过滤,将病毒、恶意应用程序“拒之门外”;其次,对核心应用服务器的进行功能扩展,实现应用层的病毒防护,重点实现对垃圾、病毒邮件的过滤和处理;同时,微软也保持与国际专业机构、业界病毒防护专业厂商紧密配合,为客户提供完善的基于网络/主机的病毒防护体系。
在桌面管理方面,微软建议的解决方案是建立集中的权限管理中心,实现对设备、人员、应用系统的访问控制权限进行统一管理;最终实现对“什么设备上能部署什么软件”、“什么人能登录什么设备、能访问什么资源”等进行全面监控和管理;通过权限管理中心,可能实现对文档访问权限(如:读取、编辑、加密、复制、转发、打印等)的严格管理;并实现系统的“单点登录功能”。
对于系统升级管理,微软将为客户提供一套完善的解决方案,包括:建立安全的网络边界防护,屏蔽不必要的外界病毒、黑客干扰;在企业内部,实现用户权限的集中、统一管理;借助SMS 2003管理平台,实现完善的企业软/硬件资产管理、自动软件分发、远程系统维护等功能;并以此为基础,逐步建立、健全集中式的企业运维管理模式。例如,在“冲击波”等病毒肆虐全球的时候,部分国内的大金融机构能做到安然无恙,依靠的就是这样一套系统升级管理机制。
4.扩展性 (Scalability)
可扩展性是指通过增加更多资源的方式提高系统处理能力的特性。从技术角度讲,主要存在两种不同的扩展模式,向上扩展和向外扩展。
向上扩展是指向服务器添加额外硬件(添加内存或使用速度更快的CPU)或升级到配置更高的服务器。在这方面,对于 32 位的X86架构,Windows Server 2003可支持 32 颗处理器和 64 GB 的内存,对于 64 位的安腾架构,64位Windows Server 2003可支持 64 颗处理器和 512 GB 的内存。例如HP的Superdome系列(64 颗安腾2处理器),可运行64位Windows Server 2003和64位SQL Server 2000数据库服务器。
向外扩展是通过向服务器组中添加更多服务器的方式来实现的,这种扩展模式能够通过在多台计算机上平均分配工作负载的方式提供应用扩展能力。微软提供网络负载平衡,组件负载平衡及服务器群集等技术来为应用程序提供多层次可扩展的伸缩性保证。
通过近几年的TPC评测数据可以看出,无论是基于工业的基准测试,还是基于应用程序的基准测试,微软平台都有着优异的性能和高可扩展性。例如,HP的Superdome TPCC值超过了100万TPMC,即每分钟100万次交易量(据最新的www.tpc.org数据)。
5.技术成熟 (Maturity)
.NET平台建立在微软平台以往的技术之上,是Windows DNA(分布式网络架构)体系架构的发展。其中的企业级应用特性,比如分布式事务处理,组件池,等等,均是基于DNA架构中的MTS(事务服务)和COM+技术。而这些技术早在1996年就实现了,远远早于第一个J2EE服务器出现的1999年。
.NET已经应用于大容量的、高可靠的企业级系统中,例如伦敦证券交易所,花旗银行,路透社,纳斯达克,纽约银行,等等。
另外,对于代表未来信息技术趋势的先进技术,比如XML和Web Services,.NET平台的支持是非常强的,.NET在这方面的技术成熟度要远远超过J2EE。
6.效能 (Performance)
在相似的硬件上,无论是Web应用的比较,还是Web服务的比较,.NET的性能至少是J2EE的两倍(与两种主流的商用J2EE服务器比较)。这表现在峰值的吞吐量上和最大并发用户数上。许多公开的第三方评测机构的基准测试结果都证明了这一点。
究其原因,有以下几点:
A. 微软提倡“集成创新”。Windows与.NET都是集成的典范。Windows操作系统集成了企业级应用的执行支撑环境,本身就是一个应用服务器。并不像J2EE那样,在操作系统之上另外需要一个的企业级应用的执行支撑系统。 Windows和.NET平台各个模块之间,由于集成性好,性能自然很高。
B. 同时,微软的其它服务器产品,比如SQL Server数据库、BizTalk Server应用集成服务器、SharePoint Portal Server 门户服务器,等等,设计时就非常注重与底层系统平台的紧密集成。所以,许多评测都表明,当方案为纯微软系统时,该方案的性能往往是最好的。
C. 另外,微软的一贯方针,任何产品在设计时就把性能放在非常重要的地位。.NET也不例外。比如对XML文档的处理模块,其性能被优化的非常高。由于现在处理XML文档渐渐成为应用的计算核心部分,.NET应用的性能要优于J2EE,也得益于这个先进的XML处理引擎。
D. 不得不指出的是,.NET设计得十分简洁,而J2EE则相对繁复。要完成同样的工作,.NET需要的步骤要少于J2EE。这样性能优势就显示出来了。
7.相互操控能力 (Inter-operability)
互连互通是.NET的设计出发点,因此,这也是.NET平台最自豪的特点之一。互操作性也可称为连接性。连接性可以分为网络层、数据层、应用层、架构层等各个层面的连接性。对各种外围设备的支持也可以算作连接性的范畴。下面我们就各个层面一一阐述。
首先,在网络层,Windows/.NET平台支持TCP/IP网络协议。大多数系统和网络都支持TCP/IP,所以.NET与其连接进行通讯没有任何问题。对于SNA系统,需要一个SAN网关来连接两个网络。微软的Host Integration Server 服务器可以用作SAN网关,把基于PC的局域网连接到IBM OS/390大型机和AS/400系统。
银行的许多系统使用IBM的MQSeries作为消息中间件,而微软的MSMQ是支持Windows平台的消息中间件。Host Integration Server 服务器包含了MSMQ-MQSeries桥,它集成了这两种消息平台,使消息能在两平台间进行传递,从而支持在Windows和主机消息系统间的跨平台的消息管理。
在数据层,大部分储存在OS/390, AS/400和 RS/6000计算机上的数据都通过关系型数据库管理系统访问,例如 Sybase, DB2, Oracle, 等等。.NET支持几种流行的访问远程数据库的方法,其中包括工业标准的ODBC。由于Sybase等数据库都支持ODBC,.NET应用远程访问这些数据库没有任何问题。
对于非关系型主机数据,例如主机上的VSAM文件,.NET应用可以通过Host Integration Server 服务器提供的组件来访问。
在应用层,一个分布式的应用程序通常要与多个系统交互。用CICS 或 IMS开发的应用程序中,前端通讯程序通常从后端数据库中获得数据,并对之更新。.NET应用程序使用Windows的MTS服务(微软交易服务)来执行交易和并保证数据库的完整性。微软的Host Integration Server 服务器提供了COMTI技术(事务集成器),使大型机CICS和IMS程序能参与.NET应用的事务中。
Web Service和面向服务的架构逐渐成为新一代分布式应用所采用的技术。Web Service的先进性在于其松耦合性、与平台无关性和与开发语言无关性。不论是基于.NET平台,J2EE平台,还是主机系统,它们基于面向服务的设计思想,大都提供Web Service接口。其它平台的应用就可以通过Web Service接口来调用这些应用提供的服务。这样,各平台的应用可通过Web Service来连接。
最后,Windows系统对各种外围设备的支持是最广泛的。各种银行专用打印机、磁卡机、POS机等等,设备厂商均提供Windows系统上的驱动。
总之,.NET平台在各个层次上提供了与其它系统的良好的连接性和互操作性。
8.功能 (Functionality)
微软的产品线是非常完备的,这些软件产品提供了一个完备的应用程序平台。Windows Server 操作系统提供了应用程序的运行平台。SUS/SMS/MOM和ISA Server提供了系统管理和安全方面的一整套工具。SQL Server 数据库提供了数据存储。BizTalk Server 提供了一个业务流程整合和应用整合的平台。Windows 98, Windows XP, 以及Office办公软件,组成了一个具有友好用户界面的、功能丰富的桌面系统。另外,在开发方面,Visual Studio.NET集成开发环境提供了快速的项目开发。
9.技术支援 (Technical Support)
微软公司全球技术支持中心(GTEC)设立在上海,拥有600余名技术支持工程师,可以做到源代码级的技术支持。另外,微软公司华南区可以为客户提供大客户技术服务(Premier Support Service)。
对于突发的事件,微软将提供多种不同级别的支持,如:对A级(最高级别)的突发事件,微软保证立即响应;对C级事件(对当前的生产环境无严重影响的事件)微软保证在4小时内响应。
10.技术获得的普遍性 (Skills Availability)
微软平台有最广泛的技术资源。国内市场上有充足的、低廉的.NET开发人员。绝大多数开发商和集成商都熟悉.NET平台的开发。网管人员也大多熟悉Windows平台。
11.技术发展的远景 (Vision)
信息技术的未来是XML, Web Services,无线计算,和智能设备。.NET的远景就是互联互通的世界,.NET软件实现信息,人员,系统和设备的互连。而.NET的核心就是XML和Web Services。由此说明.NET技术的远景是符合信息技术的远景的。
12.技术上的管理 (Manageability)
微软有全面的管理解决方案,包括客户端管理、软件更新、远程支持、服务器监控的集中管理解决方案。其中许多功能,比如软件更新、远程支持,都已经集成到操作系统中了。管理方面的软件产品包括SMS,ACS和MOM。微软操作系统还具有集成第三方管理解决方案的开放接口及标准。
13.整体运行成本 (Total Cost of Ownership)
微软的理念是低成本,大集成,高性能。.NET方案的投入支出,包括硬件、软件、开发和维护的总支出要远远低于其它方案。这在许多第三方的评测报告中多有证明。特别是Giga Research公司在2003年9月针对大企业使用Windows/.NET平台或J2EE/Linux平台在5年时间内的一个整体运行成本的估算,J2EE/Linux平台比Windows/.NET贵大约25%到28%。.NET的客户选用.NET平台主要原因之一就是其TCO比其它方案要低。
.NET的TCO低,总结原因有以下几点:
A. .NET架构在廉价的Intel硬件平台之上。
B. .NET的编程人员相对比Java的编程人员廉价。
C. .NET平台是免费的,而且本身就是一个应用服务器,不需要另在操作系统平台之上再采购专用的应用服务器软件(例如J2EE应用服务器),而这些应用服务器软件都是非常昂贵的。
D. .NET平台的扩展性好和性能高,所以达到同样的设计要求所需要的硬件设备就少,所需要的系统管理维护的人员就少。
E. .NET应用程序编程模式 .NET Framework非常简洁,提供的基础类库非常丰富,开发工具Visual Studio.NET开发和调试的功能非常强,集成性好。所以开发相似的应用,采用.NET体系比采用J2EE体系开发效率高,项目完成周期快,项目质量高。从而需要更少的开发成本。
F. .NET应用采用先进的开发业界标准如XML和Web Services,使得基于.NET的应用程序更加灵活,更加容易根据市场的变化或客户的需求变化进行改进和升级。从而应用程序的生命周期更长,重用率高,其维护升级的成本更低。
14.开放性(Openness)
开放性有几层含义。
A. 系统平台是一个开放平台。
众所周知,Windows平台是一个很好的开放系统,其系统层的API非常丰富,开发工具非常完善。正因为这一点,Windows平台上的应用非常之多,对平台支持的厂商很多,平台的普及性也就最广泛。
另外,微软致力于开放的工业标准和平台的互操作性。Windows操作系统和.NET平台支持最广泛的工业标准,比如TCP/IP, SNMP, SMTP, HTTP, DHCP, 802.1x, LDAP, L2TP, IPSec, SSL, VPN, PKI, DNS, IPX, PEAP, EAP, RADIUS, SIP,等等。对代表未来技术趋势的工业标准,比如XML, SOAP, WSDL, UDDI,等等,.NET平台的支持走在同行业的最前面的。
通常,微软都是这许多开放标准的参与制定者和积极推广者。比如金融行业的IFX (Interactive Financial eXchange,交互式金融交易)标准,微软是组织发起者之一,并是其中 Web services 工作组的主要成员。对于XBRL (eXtensible Business Reporting Language,可扩展业务报表语言)标准,微软参与了标准制定并技术实现了此标准。微软积极参与的许多标准组织包括IEEEE, W3C, OASIS, IETF,和WS-I等。
.NET平台的核心组成部分Common Language Infrastructure (CLI, 公共语言基础架构),以及专门为.NET平台设计的编程语言C#, 已被ISO和ECMA组织定为国际标准。这意味着任何人都可以在任何平台来实现它们。
B. 系统平台的源代码是开放的。
微软是一家商业软件公司,它的知识产权就是它的所有资本,而它的软件的源代码就是它的知识产权。所以公司的源代码是不对公众开放的。但为了让各国政府能更好的了解微软操作系统的工作原理,特别是安全方面的工作机制,微软与各国政府签署“政府源代码备案计划”。2003年2月,微软与中国政府签署了该计划。根据该计划,中国政府及其指定备案单位可以可控的方式查看微软操作系统的源代码以及相关的技术信息。
C. 系统平台是开放源代码软件(Open Source Software, OSS)
“开源运动”提倡所有软件的源代码都开放,并可以随意修改。许多开放源代码软件使用的GPL协议容易导致一个软件出现许多互不相容的版本。最著名的开放源代码软件要算Linux了,Linux现在就出现了多种不兼容的版本。这对用户来说是非常不愿看到的,不同的版本导致了系统维护与升级、软件迁移与兼容等许多令人头痛的问题。
Sun公司一直拥有Java的版权和源代码。Sun因为版本担忧兼容性问题,不愿意将Java开源化。日前,Sun公司负责软件业务的执行副总裁
斯库瓦兹说,“Java不能出现多个版本,必须实现兼容性。Java的兼容性是至关重要的。Sun不愿意看到Java象Linux那样出现多种不兼容的版本。我们不能重犯过去的老错误。”
另外,许多人有一个误解,认为开放源代码就更安全。但事实并不是这么回事。从发布补丁的数量来看,Windows平台比流行的Linux操作系统要少,说明Windows平台的漏洞比Linux要少。从发布补丁的数量的趋势来看,Windows发布的补丁越来越少,而Linux发布的补丁越来越多,说明在提高安全性方面,微软做得比Linux要好。
http://netadmin.77169.com/HTML/20050623015424.html