一个超大型购物网站的服务器集群架构是什么样的?最好有架构示意图
服务器集群:
服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
服务器负载均衡:
负载均衡 (Load Balancing) 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
分布式服务器:
所谓分布式资源共享服务器就是指数据和程序可以不位于一个服务器上,而是分散到多个服务器,以网络上分散分布的地理信息数据及受其影响的数据库操作为研究对象的一种理论计算模型服务器形式。分布式有利于任务在整个计算机系统上进行分配与优化,克服了传统集中式系统会导致中心主机资源紧张与响应瓶颈的缺陷,解决了网络GIS 中存在的数据异构、数据共享、运算复杂等问题,是地理信息系统技术的一大进步。
这个三种架构都是常见的服务器架构,集群的主要是IT公司在做,可以保障重要数据安全;负载均衡主要是为了分担访问量,避免临时的网络堵塞,主要用于电子商务类型的网站;分布式服务器主要是解决跨区域,多个单个节点达到高速访问的目前,一般是类似CDN的用途的话,会采用分布式服务器。
天互数据 为您解答,希望能帮到你
大数据数量庞大,格式多样化。大量数据由家庭、制造工厂和办公场所的各种设备、互联网事务交易、社交网络的活动、自动化传感器、移动设备以及科研仪器等生成。它的爆炸式增长已超出了传统IT基础架构的处理能力,给企业和社会带来严峻的数据管理问题。因此必须开发新的数据架构,围绕“数据收集、数据管理、数据分析、知识形成、智慧行动”的全过程,开发使用这些数据,释放出更多数据的隐藏价值。
一、大数据建设思路
1)数据的获得
大数据产生的根本原因在于感知式系统的广泛使用。随着技术的发展,人们已经有能力制造极其微小的带有处理功能的传感器,并开始将这些设备广泛的布置于社会的各个角落,通过这些设备来对整个社会的运转进行监控。这些设备会源源不断的产生新数据,这种数据的产生方式是自动的。因此在数据收集方面,要对来自网络包括物联网、社交网络和机构信息系统的数据附上时空标志,去伪存真,尽可能收集异源甚至是异构的数据,必要时还可与历史数据对照,多角度验证数据的全面性和可信性。
2)数据的汇集和存储
互联网是个神奇的大网,大数据开发和软件定制也是一种模式,这里提供最详细的报价,如果你真的想做,可以来这里,这个手机的开始数字是一八七中间的是三儿零最后的是一四二五零,按照顺序组合起来就可以找到,我想说的是,除非你想做或者了解这方面的内容,如果只是凑热闹的话,就不要来了
数据只有不断流动和充分共享,才有生命力。应在各专用数据库建设的基础上,通过数据集成,实现各级各类信息系统的数据交换和数据共享。 数据存储要达到低成本、低能耗、高可靠性目标,通常要用到冗余配置、分布化和云计算技术,在存储时要按照一定规则对数据进行分类,通过过滤和去重,减少存储量,同时加入便于日后检索的标签。
3)数据的管理
大数据管理的技术也层出不穷。在众多技术中,有6种数据管理技术普遍被关注,即分布式存储与计算、内存数据库技术、列式数据库技术、云数据库、非关系型的数据库、移动数据库技术。其中分布式存储与计算受关注度最高。上图是一个图书数据管理系统。
4)数据的分析
数据分析处理:有些行业的数据涉及上百个参数,其复杂性不仅体现在数据样本本身,更体现在多源异构、多实体和多空间之间的交互动态性,难以用传统的方法描述与度量,处理的复杂度很大,需要将高维图像等多媒体数据降维后度量与处理,利用上下文关联进行语义分析,从大量动态而且可能是模棱两可的数据中综合信息,并导出可理解的内容。大数据的处理类型很多,主要的处理模式可以分为流处理和批处理两种。批处理是先存储后处理,而流处理则是直接处理数据。挖掘的任务主要是关联分析、聚类分析、分类、预测、时序模式和偏差分析等。
5)大数据的价值:决策支持系统
大数据的神奇之处就是通过对过去和现在的数据进行分析,它能够精确预测未来;通过对组织内部的和外部的数据整合,它能够洞察事物之间的相关关系;通过对海量数据的挖掘,它能够代替人脑,承担起企业和社会管理的职责。
6)数据的使用
大数据有三层内涵:一是数据量巨大、来源多样和类型多样的数据集;二是新型的数据处理和分析技术;三是运用数据分析形成价值。大数据对科学研究、经济建设、社会发展和文化生活等各个领域正在产生革命性的影响。大数据应用的关键,也是其必要条件,就在于"IT"与"经营"的融合,当然,这里的经营的内涵可以非常广泛,小至一个零售门店的经营,大至一个城市的经营。
二、大数据基本架构
基于上述大数据的特征,通过传统IT技术存储和处理大数据成本高昂。一个企业要大力发展大数据应用首先需要解决两个问题:一是低成本、快速地对海量、多类别的数据进行抽取和存储;二是使用新的技术对数据进行分析和挖掘,为企业创造价值。因此,大数据的存储和处理与云计算技术密不可分,在当前的技术条件下,基于廉价硬件的分布式系统(如Hadoop等)被认为是最适合处理大数据的技术平台。
Hadoop是一个分布式的基础架构,能够让用户方便高效地利用运算资源和处理海量数据,目前已在很多大型互联网企业得到了广泛应用,如亚马逊、Facebook和Yahoo等。其是一个开放式的架构,架构成员也在不断扩充完善中,通常架构如图2所示:
Hadoop体系架构
(1)Hadoop最底层是一个HDFS(Hadoop Distributed File System,分布式文件系统),存储在HDFS中的文件先被分成块,然后再将这些块复制到多个主机中(DataNode,数据节点)。
(2)Hadoop的核心是MapReduce(映射和化简编程模型)引擎,Map意为将单个任务分解为多个,而Reduce则意为将分解后的多任务结果汇总,该引擎由JobTrackers(工作追踪,对应命名节点)和TaskTrackers(任务追踪,对应数据节点)组成。当处理大数据查询时,MapReduce会将任务分解在多个节点处理,从而提高了数据处理的效率,避免了单机性能瓶颈限制。
(3)Hive是Hadoop架构中的数据仓库,主要用于静态的结构以及需要经常分析的工作。Hbase主要作为面向列的数据库运行在HDFS上,可存储PB级的数据。Hbase利用MapReduce来处理内部的海量数据,并能在海量数据中定位所需的数据且访问它。
(4)Sqoop是为数据的互操作性而设计,可以从关系数据库导入数据到Hadoop,并能直接导入到HDFS或Hive。
(5)Zookeeper在Hadoop架构中负责应用程序的协调工作,以保持Hadoop集群内的同步工作。
(6)Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发,最初由Facebook开发,是构建在各种编程语言间无缝结合的、高效的服务。
Hadoop核心设计
Hbase——分布式数据存储系统
Client:使用HBase RPC机制与HMaster和HRegionServer进行通信
Zookeeper:协同服务管理,HMaster通过Zookeepe可以随时感知各个HRegionServer的健康状况
HMaster: 管理用户对表的增删改查操作
HRegionServer:HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据
HRegion:Hbase中分布式存储的最小单元,可以理解成一个Table
HStore:HBase存储的核心。由MemStore和StoreFile组成。
HLog:每次用户操作写入Memstore的同时,也会写一份数据到HLog文件
结合上述Hadoop架构功能,大数据平台系统功能建议如图所示:
应用系统:对于大多数企业而言,运营领域的应用是大数据最核心的应用,之前企业主要使用来自生产经营中的各种报表数据,但随着大数据时代的到来,来自于互联网、物联网、各种传感器的海量数据扑面而至。于是,一些企业开始挖掘和利用这些数据,来推动运营效率的提升。
数据平台:借助大数据平台,未来的互联网络将可以让商家更了解消费者的使用惯,从而改进使用体验。基于大数据基础上的相应分析,能够更有针对性的改进用户体验,同时挖掘新的商业机会。
数据源:数据源是指数据库应用程序所使用的数据库或者数据库服务器。丰富的数据源是大数据产业发展的前提。数据源在不断拓展,越来越多样化。如:智能汽车可以把动态行驶过程变成数据,嵌入到生产设备里的物联网可以把生产过程和设备动态状况变成数据。对数据源的不断拓展不仅能带来采集设备的发展,而且可以通过控制新的数据源更好地控制数据的价值。然而我国数字化的数据资源总量远远低于美欧,就已有有限的数据资源来说,还存在标准化、准确性、完整性低,利用价值不高的情况,这降低了数据的价值。
三、大数据的目标效果
通过大数据的引入和部署,可以达到如下效果:
1)数据整合
·统一数据模型:承载企业数据模型,促进企业各域数据逻辑模型的统一;
·统一数据标准:统一建立标准的数据编码目录,实现企业数据的标准化与统一存储;
·统一数据视图:实现统一数据视图,使企业在客户、产品和资源等视角获取到一致的信息。
2)数据质量管控
·数据质量校验:根据规则对所存储的数据进行一致性、完整性和准确性的校验,保证数据的一致性、完整性和准确性;
·数据质量管控:通过建立企业数据的质量标准、数据管控的组织、数据管控的流程,对数据质量进行统一管控,以达到数据质量逐步完善。
3)数据共享
·消除网状接口,建立大数据共享中心,为各业务系统提供共享数据,降低接口复杂度,提高系统间接口效率与质量;
·以实时或准实时的方式将整合或计算好的数据向外系统提供。
4)数据应用
·查询应用:平台实现条件不固定、不可预见、格式灵活的按需查询功能;
·固定报表应用:视统计维度和指标固定的分析结果的展示,可根据业务系统的需求,分析产生各种业务报表数据等;
·动态分析应用:按关心的维度和指标对数据进行主题性的分析,动态分析应用中维度和指标不固定。
四、总结
基于分布式技术构建的大数据平台能够有效降低数据存储成本,提升数据分析处理效率,并具备海量数据、高并发场景的支撑能力,可大幅缩短数据查询响应时间,满足企业各上层应用的数据需求。
1、简单说client直接访问DBserver为两层结构。
client通过中间件等应用服务器访问DBserver为三层结构。
三层结构比两层结构安全。
2、可以这样理解:客户端程序访问服务器的结构叫两层结构。中间加一个事务逻辑处理封装的中间件作为沟通就是三层结构,这样可以均衡数据负载!
3、拷贝一些基础知识你看一下。(没有)
附:相关知识
现代社会的软件开发体系结构简单概括就是N层体系结构,这里的N大于等于1。换而言之就是:单机体系(N=1)、Client/Server结构体系(N=2)、多层体系结构(N>2)。下面我们就对这几种体系结构进行简单的介绍和比较。
单机体系:这种软件适用于单机状态,一般情况下是针对某一种单一的应用,如字典软件、翻译软件等等。这种开发方式不适用于综合管理系统的开发。
C/S结构:c/s结构是在局域网上发展起来的,它具有数据集中管理的能力,在出现之初确实解决了很多计算机发展的难题,同时随着4GL语言的发展,用户的界面也比较丰富,在CLIENT端的事物处理能力也使整个系统的性能得到全面的提高,并使管理信息系统(MIS:Management Information System)得到快速的发展。其大概的图例见图1。
我们根据两层结构体系的概念来分解C/S结构的话,可以将他分为表现层(也叫表达层)和数据层。数据层提供数据存放的载体,而表现层则通过一定技术将数据层中数据取出,进行一定的分析并以某一种格式向用户进行显示。在两层体系结构中,表现层对数据库进行直接操作,且大部分的商业处理逻辑(Business Logic,数据之间的关系规则)也在表现层中实现.
图1:Client/Server 体系结构示例
三层体系结构:三层体系结构是N层体系结构的典型,所谓的三层体系结构就是将原来在两层体系结构中的商业逻辑部分从数据层和表现层中提炼出来,形成中间件服务器,所以三层就是:表现层、商业逻辑层(Business Logic)、数据层。在此之外,还有一种系统结构就是分布式系统,其结构系统图见图2。
图2:分布式系统的结构示意图
在分布式系统中,其介于客户端和数据端之间的仅仅是一个应用服务器,它管理客户端的软件,但不做性能调整,比如每一个客户端调用时均产生一个新的数据库连接,而不能够将连接保持形成一个连接缓冲池。虽然在分布式应用中已经结合了一些商业处理逻辑,但是并没有真正改变原来的C/S体系结构。
在三层体系结构中,表现层将主要提供与客户的交互功能,数据层提供系统中的所有的数据保存载体,而商业逻辑层将整个系统中的商业处理逻辑整和在一起,形成中间件,在三层中。中间件起了承前启后的作用,表现层将客户端的请求通过IDL调用中间件,中间件在将其转化成数据处理原则,并从数据库中获得相应的数据,返回给客户端的软件,转换成客户要求的方式显示。关于三层体系结构的示意图见图3。
图3:三层体系结构示意图
我们已经简单的介绍了C/S结构和三层体系结构,有关的优点已经昭然若揭,为了更好的让您了解两者的区别,我们将两者进行一些比较。
C/S结构的缺点:
缺乏有效的集权控制:在众多的C/S软件中我们不难看出,所有的构件不能够在一个地点(如一台机器)进行统一的管理,而不得不将他们分化在各个CLIENT的应用中,使得维护和安全保密均很困难。
缺乏安全性:在分散的计算机系统中,控制信息的访问安全是非常困难的,由于客户端经常需要对一些敏感的数据进行分析导致安全漏洞很容易发生。
客户端工作量重:当将一个应用中的所有的商业逻辑全部在各个客户端来实现的时候,仅仅是使用桌面电脑的客户端资源将发生不堪负载的情况。
软件的重用性差:由于C/S结构下的应用软件一般均是根据操作系统进行定制,且开发工具也是有一定的限定,一旦需要改变某一个要素的话,很可能只能重做,例如原来用C语言来开发,现在需要转向PB进行开发,那么,原来的所有工作都需要重新来过。
随着应用的不断复杂,桌面电脑将需要不断的升级以适应系统的性能需求,甚至有时侯会完全超出桌面系统能够承受的限度。例如:诸如多线程和对称多重处理技术等先进操作系统的特性可能不能在标准桌面电脑系统中提供,不通过访问具有这些技术的服务器,客户端的桌面系统将可能永远不能获得这些新的技术的性能。
针对这些问题,三层体系结构给予了很好的解决方案。
在三层体系结构中,提供在客户端和服务器端进行应用功能的分割,系统通过应用将用户定义的界面系统从商业处理逻辑中分割出去。通过将商业处理逻辑集中在中间件服务器中,将能够减小客户端的工作量并使敏感数据访问控制变得简单。
在三层结构中,客户端将与服务器端的数据变化隔离,简单的说,商业处理逻辑不受客户端的用户界面的改变而影响。三层体系中有一个非常重要的特性就是系统具有良好的组件重用性,例如在PB中开发的组件,可以在VC中进行使用。
该数字商业根服务器系统是一个复杂的系统,涉及到多个模块和技术。以下是一些主要的组成部分:
1、域名解析:根服务器负责互联网最顶级的域名解析,被称为互联网的“中枢神经”。
2、IPv6技术:中国的根服务器系统采用了IPv6技术,这是一个全新的技术框架,可以打破现有国际互联网13个根服务器的数量限制,克服根服务器在拓展性、安全性等技术方面的缺陷。
3、全球布局:中国的根服务器系统已经完成全球布局,其中中国部署了其中的4台,一举打破了中国过去没有根服务器的困境。
4、开源社区:中国的根服务器系统依赖于上游社区的基于开源模式的分工与合作,例如OpenAnolis。
5、云计算和AI技术:未来的服务器操作系统将与云计算和AI进行深度融合,服务器操作系统的发展也将迈入新纪元。
服务器机柜由框架和盖板(门)组成,一般具有长方体的外形,落地放置。它为电子设备正常工作提供相适应的环境和安全防护。这是仅次于系统级的一级组装。不具备封闭结构的机柜称为机架。
早期所用的服务器机柜大都是用铸件或角钢经螺钉、铆钉连接或焊接成机柜框架,再加由薄钢板制成的盖板(门)而成。这种机柜的体积大、笨重、外形简陋,已被淘汰。随着晶体管、集成电路的使用和各种元件、器件的超小型化,机柜的结构也向小型化、积木化方向发展。
服务器机柜已由过去的整面板结构发展成为具有一定尺寸系列的插箱、插件结构。插箱、插件的组装排列方式分水平排列和垂直排列两类。服务器机柜材料普遍采用薄钢板、各种断面形状的钢型材、铝型材及各种工程塑料等。服务器机柜的框架除用焊接、螺钉连接外,还采用粘接工艺。
云服务的高可用性 (HA) 体系结构通常包括以下组件:
负载均衡器:这些负载均衡器在多个服务器或实例之间分配传入流量,以确保工作负载均衡,并且即使一个或多个服务器发生故障,服务也保持可用。
容错存储:这可确保以冗余且高可用性的方式存储数据,以便即使一个或多个存储节点发生故障也可以访问数据。这可能包括数据复制、快照和灾难恢复等功能。
灾难恢复解决方案:这些解决方案提供了从重大中断或灾难(例如整个数据中心丢失)中恢复的机制。这可能包括备份和还原功能,以及在发生灾难性事件时故障转移到辅助站点或区域的能力。
监视和警报:这有助于检测服务问题并通知相应的团队,以便他们可以采取措施解决问题。这可能包括实时监控关键指标和日志,以及自动警报和通知。
这些组件中的每一个在确保云服务的可用性和可靠性方面都起着关键作用。负载均衡器分配传入流量,并确保即使某些服务器发生故障,服务也保持可用。容错存储可确保数据受到保护,即使某些存储节点发生故障也可以访问。灾难恢复解决方案提供了从重大中断或灾难中恢复的机制。监控和警报系统有助于检测和响应服务问题。这些组件共同构成了云服务高可用性体系结构的核心。
回答不易望请采纳
NET框架包括三个主要组成部分:
公共语言运行时(CLR:CommonLanguageRuntime)、服务框架(ServicesFramework)和上层的两类应用模板——传统的Windows应用程序模板(WinFowwwzdyancomrms)和基于ASPNET的面向Web的网络应用程序模板(WebForms和WebServices)。
NET框架(Framework)是一个开发、部署和运行NET应用的环境,包括了ASPNET、公共语言运行时环境(CLR)以及NET框架类
NET开发框架的几个主要组成部分:首先是整个开发框架的基础,即通用语言运行时以及它所提供的一组基础类库;在开发技术方面,NET提供了全新的数据库访问技术ADONET,以及网络应用开发技术ASPNET和Windows编程技术WinForms;在开发语言方面,NET提供了VB,VC++,C#,Jscript等多种语言支持;而VisualStudioNET则是全面支持NET的开发工具。下面就让我们来一步步的来了解它们:通用语言运行时,即CommonLanguageRuntime。MicrosoftNET给开发人员带来了一种全新的开发框架,而通用语言运行时则处于这个框架的最低层,是这个框架的基础。开发人员对于所谓的C运行时、VB运行时、Jave虚拟机这些概念已经非常熟悉了,而通用语言运行时则为多种语言提供了一种统一的运行环境。另外它还提供了更多的功能和特性,比如统一和简化的编程模型,用户不必迷惑于Win32API和COM;避免了DLL的版本和更新问题(常称为DLL地狱),从而大大简化了应用程序的发布和升级;多种语言之间的交互,例如我们甚至可以在VB中使用C++编写的类;自动的内存和资源管理等等。MicrosoftNET正是基于通用语言运行时,实现了这些开发人员梦寐以求的功能。基于通用语言运行时开发的代码称为受控代码,它的运行步骤大体如下:首先使用一种通用语言运行时支持的编程语言编写源代码,然后使用针对通用语言运行时的编译器生成独立于机器的微软中间语言(MicrosoftIntermediateLanguage),同时产生运行所需的元数据,在代码运行时再使用即时编译器(JustInTimeCompiler)生成相应的机器代码来执行。当然对于开发者而言,他们除了关心通用语言运行时提供那么多新特性外,它究竟给开发者提供了什么样的编程接口,这就是基础类库(BaseClassLibrary)。这组基础类库包括了从输入输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口。它使用一种点号分隔的方法,使得查找和使用类库非常容易。例如基础类库中的根,它的命名空间是System,提供数据访问的类库的命名空间是SystemData。在使用时,开发者只需在自己的应用中添加所需的基础类库的引用,然后就可以使用这个类库中的所有方法、属性等等。跟传统的Windows编程相比,使用和扩展基础类库都非常容易,这使得开发者能够高效、快速的构建基于下一代互联网的网络应用。几乎所有的应用程序都需要访问从简单的文本文件到大型的关系型数据库等各种不同类型的数据。在MicrosoftNET中访问数据库的技术是ADONET。ADONET提供了一组用来连接到数据库,运行命令,返回记录集的类库,与从前的ADO(ActiveXDataObject)相比,Connection和Command对象很类似,而ADONET的革新主要体现在如下几个方面:首先,ADONET提供了对XML的强大支持,这也是ADONET的一个主要设计目标。在ADONET中通过XMLReader,XMLWriter,XMLNavigator,XMLDocument等可以方便的创建和使用XML数据,并且支持W3C的XSLT、DTD、XDR等标准。ADONET对XML的支持也为XML成为MicrosoftNET中数据交换的统一格式提供了基础。其次,ADONET引入了DataSet的概念,这是一个驻于内存的数据缓冲区,它提供了数据的关系型视图。不管数据来源于一个关系型的数据库,还是来源于一个XML文档,我们都可以用一个统一的编程模型来创建和使用它。它替代了原有的Recordset的对象,提高了程序的交互性和可扩展性,尤其适合于分布式的应用场合。另外,ADONET中还引入了一些新的对象,例如DataReader可以用来高效率的读取数据,产生一个只读的记录集等等。简而言之,ADONET通过一系列新的对象和编程模型,并与XML紧密结合,使得在MicrosoftNET中的数据操作十分方便和高效。ASPNET是MicrosoftNET中的网络编程结构,它使得建造、运行和发布网络应用非常方便和高效。我们可以从以下几个方面来了解ASPNET:
1ASPNET网络表单ASPNET网络表单的设计目的就是使得开发者能够非常容易的创建网络表单,它把VB中的快速开发模型引入到网络开发中来,从而大大简化了网络应用的开发。具体的说:在ASPNET中可以支持多种语言,不仅仅支持脚本语言,通用语言运行时支持的所有语言在ASPNET中都可以使用;代码和内容分开,在现在的ASP(ActiveServerPages)开发中,内容和脚本交错,维护和升级很困难,将他们分开可以使得开发人员和设计人员能够更好的分工合作,提高开发效率;另外在ASPNET中通过引入服务器端控件,将类似VB的快速开发应用到了网络开发中来,这样大大提高了构建网络表单效率,并且服务器端控件是可扩展的,开发者可以建造自己需要的的服务器端控件。
2ASPNET网络服务网络服务(WebService)是下一代可编程网络的核心,它实际上就是一个可命名的网络资源,可用来在Internet范围内方便的表现和使用对象,就像使用今天的COM对象一样,不同的是使用和表现网络服务是通过SOAP(简单对象访问协议)甚至HTTP来实现的。在ASPNET中,建造和使用网络服务都非常方便:在ASPNET中建造网络服务就是编写一个后缀为ASMX的文件,在这个文件中加入想要表现出来的方法就可以了,网络服务的建造者不需要了解SOAP,XML的细节,只需要把精力集中在自己的服务本身,这也为独立软件服务开发商提供了很好的机会;使用网络服务最简单的方式就是使用HTTP协议(HTTPGET或HTTPPOST),用户只需要直接访问网络服务(ASMX文件)的URL即可;当然用户还可以通过SOAP在自己的应用中更灵活的使用网络服务。
3ASPNET应用框架ASPNET应用不再是解释脚本,而是编译运行,再加上灵活的缓冲技术,从根本上提高了性能;由于ASPNET的应用框架基于通用语言运行时,发布一个网络应用,仅仅是一个拷贝文件的过程,即使是组件的发布也是如此,更新和删除网络应用,可以直接替换/删除文件;开发者可以将应用的配置信息存放XML格式的文件中,管理员和开发者对应用程序的管理可以分开进行;提供了更多样的认证和安全管理方式;在可靠性等多方面都有很大提高。传统的基于Windows的应用(WinForms),它仍然是MicrosoftNET战略中不可或缺的一部分。在MicrosoftNET中开发传统的基于Windows的应用程序时,除了可以利用现有的技术例如ActiveX控件以及丰富的Windows接口外,还可以基于通用语言运行时开发,可以使用ADONET、网络服务等,这样也可以实现诸如避免DLL地狱、多语言支持等NET的新特性。从上面的介绍中我们已经知道MicrosoftNET开发框架支持多种语言,在目前的测试版中已经支持VB,C++,C#和Jscript四种语言以及它们之间的深层次交互。而且微软支持第三方生产针对MicrosoftNET的编译器和开发工具,这也就是说几乎所有市场上的编程语言都有可能应用于MicrosoftNET开发框架。这样开发者可以任意选择自己喜爱的语言,这种开放和交互的特性正是开发者所热爱的。需要特别指出的是,微软在MicrosoftNET中推出了全新的C#语言,这种全新的面向对象的语言使得开发者可以快速的构建从底层系统级到高层商业组件的不同应用。C#在保证了强大的功能和灵活性的同时,给C和C++带来了类似于VB的快速开发,并且它还针对NET作了特别设计,比如C#允许XML数据直接映射为它的数据类型等等,这些特性结合起来使得C#成为优秀的下一代网络编程语言。与此同时MicrosoftNET对原有的VB和C++也做了很大的改进,使得它们更加适应MicrosoftNET开发框架的需求。例如在VisualBasicNET中增加了继承等面向对象的特性,结构化的出错处理等等;可管理的C++扩展,大大提高了利用C++来开发MicrosoftNET应用的效率等。VisualStudioNET作为微软的下一代开发工具,它和NET开发框架紧密结合,是构建下一代互联网应用的优秀工具,目前已经有Beta测试版面世。VisualStudioNET通过提供一个统一的集成开发环境及工具,大大提高了开发者的效率;集成了多种语言支持;简化了服务器端的开发;提供了高效地创建和使用网络服务的方法等等。NET框架的一个主要目的是使COM开发变得更加容易。COM开发过程中最难的一件事是处理COM基本结构。因此,为了简化COM开发,NET框架实际上已自动处理了所有在开发人员看来是与“COM”紧密相关的任务,包括引用计算、接口描述以及注册。必须认识到,这并不意味着NET框架组件不是COM组件。事实上,使用VisualStudio60的COM开发人员可以调用NET框架组件,并且在他们看来,后者更像是拥有iUnknown数据的COM组件。相反,使用VisualStudioNET的NET框架开发人员则将COM组件视作NET框架组件。为了避免引起误解,这里需对这种关系加以特别说明:COM开发人员必须手动去做大多数NET框架开发人员可以在运行时自动执行的事情。例如,必须手写COM组件的安全性模块,且无法自动管理模块占用的内存,而在安装COM组件时,注册条目必须放进Windows注册表中。对NET框架而言,运行时实现了这些功能的自动化。例如,组件本身是自我描述型的,因而无需注册到Windows注册表中便能安装。当把COM与Microsoft事务服务器(MTS)和分布式COM(DCOM)结合在一起时,就变成了COM+。COM+提供了一组面向中间层的服务。特别是COM+提供了进程管理功能和数据库与对象连接池处理功能。在将来的版本中,它还将提供一种称为分区的功能——专门为应用程序服务提供商设计的更强大的进程隔离功能。COM+服务主要面向中间层应用程序开发,并主要为大型分布式应用程序提供可靠性和可扩展性。这些服务是对NET框架所提供服务的补充;通过NET框架类,可以直接访问这些服务。NET框架有几个要素值得一提。首先是它的安全系统和配置系统。这两个系统协同工作,有力地遏止了运行不安全代码的可能性,并大幅度减少了号称“DLLHell”的对应用程序进行配置时所面临的挑战。安全系统是一个高度细化、基于事实的系统,它赋予开发人员和管理员多种代码处理权限(而不仅仅是“on”或“off”)。将来,还会根据代码本身的核心要素来决定如何实施上述权限。例如,当NET框架应用程序被下载到某一系统中时,它会申请一组权限(诸如对临时目录的写入权限)。运行时将收集有关应用程序的事实信息(诸如:它是从何处下载的、是否用了有效签名、甚至它访问系统的准确程度),并按管理策略决定是否允许应用程序运行。运行时甚至还可告之应用程序它无法授权申请的所有权限,并允许应用程序自行决定是否继续运行。有这种安全系统作保障,许多应用程序配置问题便会迎刃而解。开发人员和管理员(最终是用户)所面临的最大挑战之一是版本的管理问题。如果在您新装了某个应用程序之后,一切都限于瘫痪状态,而在这之前系统一直运行得非常良好,那么最大的可能是新安装的应用程序重写了一些共享库,并极有可能修正了现有应用程序正使用的程序错误。这种情况出现的频率很高,以致人们将它称为:“DLLHell”。NET框架拥有的几项高级功能可以彻底消除“DLLHell”现象。首先,它有一个非常强大的内部命名系统,能够有效地防止两个库因互相重名而被错当为对方的情况发生。除此之外,它还提供一项被称作“并行”配置的新功能。如果前例中新安装的应用程序确实重写了共享库,现有应用程序可对该库进行修复。等现有应用程序再次启动时,它会检查所有的共享文件。如果发现文件被更改,同时这些更改又是不兼容的,则它可以请求运行时提取一个它可以使用的版本。得益于强大的安全系统,运行时可以安全地执行该操作,这样应用程序就完成了本身的修复工作。总之,MicrosoftNET开发框架在通用语言运行时的基础上,给开发者提供了完善的基础类库、下一代的数据库访问技术ADONET、网络开发技术ASPNET,开发者可以使用多种语言及VisualStudioNET来快速构建下一代的网络应用。随着相关的互联网标准及技术的普及,可以预言将会有越来越多的开发者采用这种开发结构,开发出丰富多样的下一代互联网应用来。
0条评论