云计算的关键技术有哪些
云计算近年来特别受欢迎,今天的编辑谈云计算的重要技术
云计算系统运用了很多技术,其中编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术是最重要的
(1)编程模型
MapReduce是Google开发的java、Python、Chop编程模型,是简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(1TB以上)的并行运算严格的编程模型使云计算环境下的编程非常简单MapReduce模式的思想是将要执行的问题分解为Map(映射)和Reduce(简化)的方式,首先通过Map程序将数据切割成不相关的块,分配(调度)进行大量的计算机处理,达到分布式运算的效果,然后通过Reduce程序将结果汇总输出
(2)大量数据分布存储技术
云计算系统由大量的服务器成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,并通过冗余存储的方式保证数据的可靠性云计算系统中广泛使用的数据存储系统是谷歌GFS和Hadoop团队开发的GFS开源实现HDFS
GFS即谷歌文件系统
System)是一种可扩展的分布式文件系统,用于大型、分布式、访问大量数据GFS的设计思想与传统的文件系统不同,是为了大规模的数据处理和谷歌的应用特性而设计的运行在廉价的普通硬件上,但可以提供容错功能可以为广大用户提供整体性能较高的服务
一个GFS集群由一个主服务器和大量的区块服务器组成,并被许多客户访问主服务器存储文件系统的元数据包括姓名空间、访问控制信息、从文件到块的映射和块的当前位置也控制系统范围的活动,如块租赁(lease)管理、孤儿块垃圾收集、块服务器之间的块转移主服务器定期通过HeartBeat信息与各个块服务器通信,向块服务器发出指令,收集其状态GFS中的文件分为64MB块,用冗馀存储,每个数据在系统中存储3个以上的备份
客户与主服务器的更换仅限于元数据的操作,所有数据方面的通信都直接与区块服务器联系,这大大提高了系统的效率,防止主服务器负载过重
(3)大量数据管理技术
云计算需要处理和分析分布的大量数据,因此数据管理技术必须能够有效地管理大量数据云计算系统中的数据管理技术主要是谷歌BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase
一虚拟网技术
虚拟网技术主要基于近年发展的局域网交换技术(ATM和以太网交换)。交换技术将传统的基于广播的局域网技术发展为面向连接的技术。因此,网管系统有能力限制局域网通讯的范围而无需通过开销很大的路由器。
由以上运行机制带来的网络安全的好处是显而易见的:信息只到达应该到达的地点。因此、防止了大部分基于网络监听的入侵手段。通过虚拟网设置的访问控制,使在虚拟网外的网络节点不能直接访问虚拟网内节点。但是,虚拟网技术也带来了新的安全问题:
执行虚拟网交换的设备越来越复杂,从而成为被攻击的对象。
基于网络广播原理的入侵监控技术在高速交换网络内需要特殊的设置。
基于MAC的VLAN不能防止MAC欺骗攻击。
以太网从本质上基于广播机制,但应用了交换器和VLAN技术后,实际上转变为点到点通讯,除非设置了监听口,信息交换也不会存在监听和插入(改变)问题。
但是,采用基于MAC的VLAN划分将面临假冒MAC地址的攻击。因此,VLAN的划分最好基于交换机端口。但这要求整个网络桌面使用交换端口或每个交换端口所在的网段机器均属于相同的VLAN。
网络层通讯可以跨越路由器,因此攻击可以从远方发起。IP协议族各厂家实现的不完善,因此,在网络层发现的安全漏洞相对更多,如IP sweep, teardrop, sync-flood, IP spoofing攻击等。
二防火墙枝术
网络防火墙技术是一种用来加强网络之间访问控制,防止外部网络用户以非法手段通过外部网络进入内部网络,访问内部网络资源,保护内部网络操作环境的特殊网络互联设备它对两个或多个网络之间传输的数据包如链接方式按照一定的安全策略来实施检查,以决定网络之间的通信是否被允许,并监视网络运行状态
防火墙产品主要有堡垒主机,包过滤路由器,应用层网关(代理服务器)以及电路层网关,屏蔽主机防火墙,双宿主机等类型
虽然防火墙是保护网络免遭黑客袭击的有效手段,但也有明显不足:无法防范通过防火墙以外的其它途径的攻击,不能防止来自内部变节者和不经心的用户们带来的威胁,也不能完全防止传送已感染病毒的软件或文件,以及无法防范数据驱动型的攻击
自从1986年美国Digital公司在Internet上安装了全球第一个商用防火墙系统,提出了防火墙概念后,防火墙技术得到了飞速的发展国内外已有数十家公司推出了功能各不相同的防火墙产品系列
防火墙处于5层网络安全体系中的最底层,属于网络层安全技术范畴在这一层上,企业对安全系统提出的问题是:所有的IP是否都能访问到企业的内部网络系统如果答案是"是",则说明企业内部网还没有在网络层采取相应的防范措施
作为内部网络与外部公共网络之间的第一道屏障,防火墙是最先受到人们重视的网络安全产品之一虽然从理论上看,防火墙处于网络安全的最底层,负责网络间的安全认证与传输,但随着网络安全技术的整体发展和网络应用的不断变化,现代防火墙技术已经逐步走向网络层之外的其他安全层次,不仅要完成传统防火墙的过滤任务,同时还能为各种网络应用提供相应的安全服务另外还有多种防火墙产品正朝着数据安全与用户认证,防止病毒与黑客侵入等方向发展
1、使用Firewall的益处
保护脆弱的服务
通过过滤不安全的服务,Firewall可以极大地提高网络安全和减少子网中主机的风险。
例如,Firewall可以禁止NIS、NFS服务通过,Firewall同时可以拒绝源路由和ICMP重定向封包。
控制对系统的访问
Firewall可以提供对系统的访问控制。如允许从外部访问某些主机,同时禁止访问另外的主机。例如,Firewall允许外部访问特定的Mail Server和Web Server。
集中的安全管理
Firewall对企业内部网实现集中的安全管理,在Firewall定义的安全规则可以运用于整个内部网络系统,而无须在内部网每台机器上分别设立安全策略。如在Firewall可以定义不同的认证方法,而不需在每台机器上分别安装特定的认证软件。外部用户也只需要经过—次认证即可访问内部网。
增强的保密性
使用Firewall可以阻止攻击者获取攻击网络系统的有用信息,如Finger和DNS。
记录和统计网络利用数据以及非法使用数据
Firewall可以记录和统计通过Firewall的网络通讯,提供关于网络使用的统计数据,并且,Firewall可以提供统计数据,来判断可能的攻击和探测。
策略执行
Firewall提供了制定和执行网络安全策略的手段。未设置Firewall时,网络安全取决于每台主机的用户。
2、 设置Firewall的要素
网络策略
影响Firewall系统设计、安装和使用的网络策略可分为两级,高级的网络策略定义允许和禁止的服务以及如何使用服务,低级的网络策略描述Firewall如何限制和过滤在高级策略中定义的服务。
服务访问策略
服务访问策略集中在Internet访问服务以及外部网络访问(如拨入策略、SLIP/PPP连接等)。
服务访问策略必须是可行的和合理的。可行的策略必须在阻止己知的网络风险和提供用户服务之间获得平衡。典型的服务访问策略是:允许通过增强认证的用户在必要的情况下从Internet访问某些内部主机和服务;允许内部用户访问指定的Internet主机和服务。
Firewall设计策略
Firewall设计策略基于特定的firewall,定义完成服务访问策略的规则。通常有两种基本的设计策略:
允许任何服务除非被明确禁止;
禁止任何服务除非被明确允许。
通常采用第二种类型的设计策略。
3、 Firewall的基本分类
包过滤型
包过滤型产品是防火墙的初级产品,其技术依据是网络中的分包传输技术网络上的数据都是以"包"为单位进行传输的,数据被分割成为一定大小的数据包,每一个数据包中都会包含一些特定信息,如数据的源地址,目标地址,TCP/UDP源端口和目标端口等防火墙通过读取数据包中的地址信息来判断这些"包"是否来自可信任的安全站点 ,一旦发现来自危险站点的数据包,防火墙便会将这些数据拒之门外系统管理员也可以根据实际情况灵活制订判断规则
包过滤技术的优点是简单实用,实现成本较低,在应用环境比较简单的情况下,能够以较小的代价在一定程度上保证系统的安全
但包过滤技术的缺陷也是明显的包过滤技术是一种完全基于网络层的安全技术,只能根据数据包的来源,目标和端口等网络信息进行判断,无法识别基于应用层的恶意侵入,如恶意的Java小程序以及电子邮件中附带的病毒有经验的黑客很容易伪造IP地址,骗过包过滤型防火墙
网络地址转换(NAT)
是一种用于把IP地址转换成临时的,外部的,注册的IP地址标准它允许具有私有IP地址的内部网络访问因特网它还意味着用户不许要为其网络中每一台机器取得注册的IP地址
在内部网络通过安全网卡访问外部网络时,将产生一个映射记录系统将外出的源地址和源端口映射为一个伪装的地址和端口,让这个伪装的地址和端口通过非安全网卡与外部网络连接,这样对外就隐藏了真实的内部网络地址在外部网络通过非安全网卡访问内部网络时,它并不知道内部网络的连接情况,而只是通过一个开放的IP地址和端口来请求访问OLM防火墙根据预先定义好的映射规则来判断这个访问是否安全当符合规则时,防火墙认为访问是安全的,可以接受访问请求,也可以将连接请求映射到不同的内部计算机中当不符合规则时,防火墙认为该访问是不安全的,不能被接受,防火墙将屏蔽外部的连接请求网络地址转换的过程对于用户来说是透明的,不需要用户进行设置,用户只要进行常规操作即可
代理型
代理型防火墙也可以被称为代理服务器,它的安全性要高于包过滤型产品,并已经开始向应用层发展代理服务器位于客户机与服务器之间,完全阻挡了二者间的数据交流从客户机来看,代理服务器相当于一台真正的服务器;而从服务器来看,代理服务器又是一台真正的客户机当客户机需要使用服务器上的数据时,首先将数据请求发给代理服务器,代理服务器再根据这一请求向服务器索取数据,然后再由代理服务器将数据传输给客户机由于外部系统与内部服务器之间没有直接的数据通道,外部的恶意侵害也就很难伤害到企业内部网络系统
代理型防火墙的优点是安全性较高,可以针对应用层进行侦测和扫描,对付基于应用层的侵入和病毒都十分有效其缺点是对系统的整体性能有较大的影响,而且代理服务器必须针对客户机可能产生的所有应用类型逐一进行设置,大大增加了系统管理的复杂性。
监测型监测型
防火墙是新一代的产品,这一技术实际已经超越了最初的防火墙定义监测型防火墙能够对各层的数据进行主动的,实时的监测,在对这些数据加以分析的基础上,监测型防火墙能够有效地判断出各层中的非法侵入同时,这种检测型防火墙产品一般还带有分布式探测器,这些探测器安置在各种应用服务器和其他网络的节点之中,不仅能够检测来自网络外部的攻击,同时对来自内部的恶意破坏也有极强的防范作用据权威机构统计,在针对网络系统的攻击中,有相当比例的攻击来自网络内部因此,监测型防火墙不仅超越了传统防火墙的定义,而且在安全性上也超越了前两代产品
虽然监测型防火墙安全性上已超越了包过滤型和代理服务器型防火墙,但由于监测型防火墙技术的实现成本较高,也不易管理,所以在实用中的防火墙产品仍然以第二代代理型产品为主,但在某些方面也已经开始使用监测型防火墙基于对系统成本与安全技术成本的综合考虑,用户可以选择性地使用某些监测型技术这样既能够保证网络系统的安全性需求,同时也能有效地控制安全系统的总拥有成本
实际上,作为当前防火墙产品的主流趋势,大多数代理服务器(也称应用网关)也集成了包过滤技术,这两种技术的混合应用显然比单独使用具有更大的优势由于这种产品是基于应用的,应用网关能提供对协议的过滤例如,它可以过滤掉FTP连接中的PUT命令,而且通过代理应用,应用网关能够有效地避免内部网络的信息外泄正是由于应用网关的这些特点,使得应用过程中的矛盾主要集中在对多种网络应用协议的有效支持和对网络整体性能的影响上。
4、 建设Firewall的原则
分析安全和服务需求
以下问题有助于分析安全和服务需求:
√ 计划使用哪些Internet服务(如http,ftp,gopher),从何处使用Internet服务(本地网,拨号,远程办公室)。
√ 增加的需要,如加密或拔号接入支持。
√ 提供以上服务和访问的风险。
√ 提供网络安全控制的同时,对系统应用服务牺牲的代价。
策略的灵活性
Internet相关的网络安全策略总的来说,应该保持一定的灵活性,主要有以下原因:
√ Internet自身发展非常快,机构可能需要不断使用Internet提供的新服务开展业务。新的协议和服务大量涌现带来新的安全问题,安全策略必须能反应和处理这些问题。
√ 机构面临的风险并非是静态的,机构职能转变、网络设置改变都有可能改变风险。
远程用户认证策略
√ 远程用户不能通过放置于Firewall后的未经认证的Modem访问系统。
√ PPP/SLIP连接必须通过Firewall认证。
√ 对远程用户进行认证方法培训。
拨入/拨出策略
√ 拨入/拨出能力必须在设计Firewall时进行考虑和集成。
√ 外部拨入用户必须通过Firewall的认证。
Information Server策略
√ 公共信息服务器的安全必须集成到Firewall中。
√ 必须对公共信息服务器进行严格的安全控制,否则将成为系统安全的缺口。
√ 为Information server定义折中的安全策略允许提供公共服务。
√ 对公共信息服务和商业信息(如email)讲行安全策略区分。
Firewall系统的基本特征
√ Firewall必须支持.“禁止任何服务除非被明确允许”的设计策略。
√ Firewall必须支持实际的安全政策,而非改变安全策略适应Firewall。
√ Firewall必须是灵活的,以适应新的服务和机构智能改变带来的安全策略的改变。
√ Firewall必须支持增强的认证机制。
√ Firewall应该使用过滤技术以允许或拒绝对特定主机的访问。
√ IP过滤描述语言应该灵活,界面友好,并支持源IP和目的IP,协议类型,源和目的TCP/UDP口,以及到达和离开界面。
√ Firewall应该为FTP、TELNET提供代理服务,以提供增强和集中的认证管理机制。如果提供其它的服务(如NNTP,http等)也必须通过代理服务器。
√ Firewall应该支持集中的SMTP处理,减少内部网和远程系统的直接连接。
√ Firewall应该支持对公共Information server的访问,支持对公共Information server的保护,并且将Information server同内部网隔离。
√ Firewall可支持对拨号接入的集中管理和过滤。
√ Firewall应支持对交通、可疑活动的日志记录。
√ 如果Firewall需要通用的操作系统,必须保证使用的操作系统安装了所有己知的安全漏洞Patch。
√ Firewall的设计应该是可理解和管理的。
√ Firewall依赖的操作系统应及时地升级以弥补安全漏洞。
5、选择防火墙的要点
(1) 安全性:即是否通过了严格的入侵测试。
(2) 抗攻击能力:对典型攻击的防御能力
(3) 性能:是否能够提供足够的网络吞吐能力
(4) 自我完备能力:自身的安全性,Fail-close
(5) 可管理能力:是否支持SNMP网管
(6) ***支持
(7) 认证和加密特性
(8) 服务的类型和原理
(9)网络地址转换能力
三病毒防护技术
病毒历来是信息系统安全的主要问题之一。由于网络的广泛互联,病毒的传播途径和速度大大加快。
我们将病毒的途径分为:
(1 ) 通过FTP,电子邮件传播。
(2) 通过软盘、光盘、磁带传播。
(3) 通过Web游览传播,主要是恶意的Java控件网站。
(4) 通过群件系统传播。
病毒防护的主要技术如下:
(1) 阻止病毒的传播。
在防火墙、代理服务器、SMTP服务器、网络服务器、群件服务器上安装病毒过滤软件。在桌面PC安装病毒监控软件。
(2) 检查和清除病毒。
使用防病毒软件检查和清除病毒。
(3) 病毒数据库的升级。
病毒数据库应不断更新,并下发到桌面系统。
(4) 在防火墙、代理服务器及PC上安装Java及ActiveX控制扫描软件,禁止未经许可的控件下载和安装。
四入侵检测技术
利用防火墙技术,经过仔细的配置,通常能够在内外网之间提供安全的网络保护,降低了网络安全风险。但是,仅仅使用防火墙、网络安全还远远不够:
(1) 入侵者可寻找防火墙背后可能敞开的后门。
(2) 入侵者可能就在防火墙内。
(3) 由于性能的限制,防火焰通常不能提供实时的入侵检测能力。
入侵检测系统是近年出现的新型网络安全技术,目的是提供实时的入侵检测及采取相应的防护手段,如记录证据用于跟踪和恢复、断开网络连接等。
实时入侵检测能力之所以重要首先它能够对付来自内部网络的攻击,其次它能够缩短hacker入侵的时间。
入侵检测系统可分为两类:
√ 基于主机
√ 基于网络
基于主机的入侵检测系统用于保护关键应用的服务器,实时监视可疑的连接、系统日志检查,非法访问的闯入等,并且提供对典型应用的监视如Web服务器应用。
基于网络的入侵检测系统用于实时监控网络关键路径的信息,其基本模型如右图示:
上述模型由四个部分组成:
(1) Passive protocol Analyzer网络数据包的协议分析器、将结果送给模式匹配部分并根据需要保存。
(2) Pattern-Matching Signature Analysis根据协议分析器的结果匹配入侵特征,结果传送给Countermeasure部分。
(3) countermeasure执行规定的动作。
(4) Storage保存分析结果及相关数据。
基于主机的安全监控系统具备如下特点:
(1) 精确,可以精确地判断入侵事件。
(2) 高级,可以判断应用层的入侵事件。
(3) 对入侵时间立即进行反应。
(4) 针对不同操作系统特点。
(5) 占用主机宝贵资源。
基于网络的安全监控系统具备如下特点:
(1) 能够监视经过本网段的任何活动。
(2) 实时网络监视。
(3) 监视粒度更细致。
(4) 精确度较差。
(5) 防入侵欺骗的能力较差。
(6) 交换网络环境难于配置。
基于主机及网络的入侵监控系统通常均可配置为分布式模式:
(1) 在需要监视的服务器上安装监视模块(agent),分别向管理服务器报告及上传证据,提供跨平台的入侵监视解决方案。
(2) 在需要监视的网络路径上,放置监视模块(sensor),分别向管理服务器报告及上传证据,提供跨网络的入侵监视解决方案。
选择入侵监视系统的要点是:
(1) 协议分析及检测能力。
(2) 解码效率(速度)。
(3) 自身安全的完备性。
(4) 精确度及完整度,防欺骗能力。
(5) 模式更新速度。
五安全扫描技术
网络安全技术中,另一类重要技术为安全扫描技术。安全扫描技术与防火墙、安全监控系统互相配合能够提供很高安全性的网络。
安全扫描工具源于Hacker在入侵网络系统时采用的工具。商品化的安全扫描工具为网络安全漏洞的发现提供了强大的支持。
安全扫描工具通常也分为基于服务器和基于网络的扫描器。
基于服务器的扫描器主要扫描服务器相关的安全漏洞,如password文件,目录和文件权限,共享文件系统,敏感服务,软件,系统漏洞等,并给出相应的解决办法建议。通常与相应的服务器操作系统紧密相关。
基于网络的安全扫描主要扫描设定网络内的服务器、路由器、网桥、变换机、访问服务器、防火墙等设备的安全漏洞,并可设定模拟攻击,以测试系统的防御能力。通常该类扫描器限制使用范围(IP地址或路由器跳数)。网络安全扫描的主要性能应该考虑以下方面:
(1) 速度。在网络内进行安全扫描非常耗时。
(2) 网络拓扑。通过GUI的图形界面,可迭择一步或某些区域的设备。
(3) 能够发现的漏洞数量。
(4) 是否支持可定制的攻击方法。通常提供强大的工具构造特定的攻击方法。因为网络内服务器及其它设备对相同协议的实现存在差别,所以预制的扫描方法肯定不能满足客户的需求。
(5) 报告,扫描器应该能够给出清楚的安全漏洞报告。
(6) 更新周期。提供该项产品的厂商应尽快给出新发现的安生漏洞扫描特性升级,并给出相应的改进建议。
安全扫描器不能实时监视网络上的入侵,但是能够测试和评价系统的安全性,并及时发现安全漏洞。
六 认证和数宇签名技术
认证技术主要解决网络通讯过程中通讯双方的身份认可,数字签名作为身份认证技术中的一种具体技术,同时数字签名还可用于通信过程中的不可抵赖要求的实现。
认证技术将应用到企业网络中的以下方面:
(1) 路由器认证,路由器和交换机之间的认证。
(2) 操作系统认证。操作系统对用户的认证。
(3) 网管系统对网管设备之间的认证。
(4) ***网关设备之间的认证。
(5) 拨号访问服务器与客户间的认证。
(6) 应用服务器(如Web Server)与客户的认证。
(7) 电子邮件通讯双方的认证。
数字签名技术主要用于:
(1) 基于PKI认证体系的认证过程。
(2) 基于PKI的电子邮件及交易(通过Web进行的交易)的不可抵赖记录。
认证过程通常涉及到加密和密钥交换。通常,加密可使用对称加密、不对称加密及两种加密方法的混合。
UserName/Password认证
该种认证方式是最常用的一种认证方式,用于操作系统登录、telnet、rlogin等,但由于此种认证方式过程不加密,即password容易被监听和解密。
使用摘要算法的认证
Radius(拨号认证协议)、路由协议(OSPF)、SNMP Security Protocol等均使用共享的Security Key,加上摘要算法(MD5)进行认证,由于摘要算法是一个不可逆的过程,因此,在认证过程中,由摘要信息不能计算出共享的security key,敏感信息不在网络上传输。市场上主要采用的摘要算法有MD5和SHA-1。
基于PKI的认证
使用公开密钥体系进行认证和加密。该种方法安全程度较高,综合采用了摘要算法、不对称加密、对称加密、数字签名等技术,很好地将安全性和高效率结合起来。后面描述了基于PKI认证的基本原理。这种认证方法目前应用在电子邮件、应用服务器访问、客户认证、防火墙验证等领域。
该种认证方法安全程度很高,但是涉及到比较繁重的证书管理任务。
云计算关键技术
云计算是分布式处理、并行计算和网格计算等概念的发展和商业实现,其技术实质是计算、存储、服务器、应用软件等IT软硬件资源的虚拟化,云计算在虚拟化、数据存储、数据管理、编程模式等方面具有自身独特的技术。云计算的关键技术包括以下几个方向:
虚拟机技术
虚拟机,即服务器虚拟化是云计算底层架构的重要基石。在服务器虚拟化中,虚拟化软件需要实现对硬件的抽象,资源的分配、调度和管理,虚拟机与宿主操作系统及多个虚拟机间的隔离等功能,目前典型的实现(基本成为事实标准)有Citrix
Xen、VMware
ESX
Server
和Microsoft
Hype-V等。
数据存储技术
云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有分布式、高吞吐率和高传输率的特点。目前数据存储技术主要有Google的GFS(Google
File
System,非开源)以及HDFS(Hadoop
Distributed
File
System,开源),目前这两种技术已经成为事实标准。
数据管理技术
云计算的特点是对海量的数据存储、读取后进行大量的分析,如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。云计算的数据管理技术最著名的是谷歌的BigTable数据管理技术,同时Hadoop开发团队正在开发类似BigTable的开源数据管理模块。
分布式编程与计算
为了使用户能更轻松的享受云计算带来的服务,让用户能利用该编程模型编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单。必须保证后台复杂的并行执行和任务调度向用户和编程人员透明。当前各IT厂商提出的“云”计划的编程工具均基于Map-Reduce的编程模型。
我是从IT号外知道的。
云计算关键技术主要包括数据储存技术和数据管理技术以及编程模式。
数据储存技术
云计算一般都是通过分布式储存的手段来近进行数据储存,同时在冗余式储存的支持下,能够提高数据保存的可靠性,这样就能让数据同时存在多个储存副本,更加提高了数据的安全性。在现有的云计算数据存储中主要是通过两种技术来进行数据储存即为Google File system(非开源的GFS)和Had00p Distributed File System(开源的HDFS)。以上技术实质上是大型的分布式文件系统,在计算机组的支持下向客户提供所需要的服务。
数据管理技术
由于云平台承载了大量的用户信息,这就对云平台的数据管理功能提出了很高的要求。在云计算的支持下,云平台在大量数据储存的过程中同时还能够进行规模性的数据计算和分析。其代表性技术为Big Table数据管理技术,通过列存储的方式来对用户数据进行管理。
编程模式
在现有的云计算中主要是通过Map-Reduce编程模式来进行编程。以Map-Reduce编程模式编写出来的程序具有很好的兼容性同时也具备很强的容错性,一旦服务器工作节点出现问题,可以直接将出现问题的节点进行屏蔽,同时将正在运行的程序转移到其他服务器上运行,这样就能够保证数据处理工作的正常进行。
云计算是一种新型的计算模式,其主要特点是在互联网存在的基础上通过动态可伸缩的虚拟化资源来进行计算。随者云计算的兴起,世界着名的IT企业如Microsoft(微软)、Google(谷歌)等公司都加入到了云计算的开发当中,这对云计算的发展带来了重大的促进作用。近些年来我国也对云计算技术的开发也越来越重视,比如清华大学与谷歌公司进行合作提出了云计算学术合作计划,这项计划将能够为云计算带来更大的使用范围,同时也促进了我国云计算技术的发展。据有关数据显示,在未来云计算所占IT成本的比例将会超过30%,在各大IT公司的大力推动下,云计算将会有更加广阔的发展空间。
云计算技术目前还处于发展阶段,在现有的基础上对其进行不断地改良将会为其提供更加广阔的发展空间。当然目前的云计算技术还存在着一些问题,特别是云计算数据中心由于处理数据规模较大,很容易造成设备发热从而对设备带来一定的影响,另外云计算接口也存在着不同的标准,还需要进一步统一。总之,云计算技术为我们的生活带来了极大的便利,也为各行各业提供了良好的技术支持,发展云计算技术将会成为IT信息技术的主流趋势。
1分层开发
在前些年的软件开发中,两层结构占有很重要的位置。两层的体系结构一直到现在还广泛存在,但是两层结构却有着很多的缺点,例如,客户端的维护成本高、难以实现分布式处理。随着在两层结构的终端用户和后端服务间加入更多的层次,多层的结构出现了。
经典的三层理论将应用划分为三个层次,见图2-63。
表示层(Presentation Layer),用于处理人机交互。目前最主流的两种表示层是Windows格式和WebBrowser格式。它主要的责任是处理用户请求,例如,鼠标点击、输入、HTTP请求等。
逻辑层(Domain Logic Layer),模拟了企业中的实际活动,也可以认为是企业活动的模型。
数据层(Data source Layer),处理数据库、消息系统、事务系统。
在实际的应用中,三层结构有一些变化。例如,在Windows的。NET系统中,把应用分为三个层次:表示层(Presentation Layer)、业务层(Business Layer)、数据访问层(Data Access Layer),分别对应于经典的三层理论中的三个层次。值得一提的是,NET系统中表示层可以直接访问数据访问层,即记录集技术。在ADONET中,这项技术已经非常成熟,并通过表示层中的某些数据感知组件,实现非常友好的功能。这种越层访问的技术通常被认为是不被允许的,因为它可能会破坏层之间的依赖关系。而在Windows平台中,严格遵守准则就意味着需要大量额外的工作量。因此,我们看到准则也不是一成不变的。
本系统中,数据访问层须进一步划分,分为基础数据访问层与业务数据访问。前者主要完成数据库访问与事物处理,后者针对数据库中的表继承基础数据访问的对象,实现自身的数据访问要求。由于本系统涉及到图形配置及接口数据交互,表示层采用了桌面方式与IE器方式相结合,业务操作主要在IE进行,而工作流配置及与P3(或MS Project)数据接口主要在桌面方式上完成。
图6-63 分层开发示意图
2面向服务架构
SOA(service-oriented architecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
本系统采用面向服务架构,组件内部高内聚,组件之间低藕和,提高了系统的可维护性、扩展性和可移植性。
3采用面向对象的设计方法
本系统采用面向对象的程序设计方法。面向对象软件开发的主要目的是:采用可复用软件技术加快问题求解,缩短开发时间和减少软件开发费用;当软件功能变更时,只需修改一个或多个类的实现方法,这样可使软件功能变更的影响局部化,从而降低软件维护的费用。面向对象软件设计的主要挑战是将软件系统分解为基本数据类型或者类和子类,以及对每个基本类和子类特性的定义。具体实现中,我们将设计中具有共性的部分规范化,并编制为父类。在父类中定义公用的数据和处理,其他的子类由父类继承而来,并根据特殊要求进行适当扩展。
在具体的实现过程中,我们采取了以下方法:
(1)使用对象的封装性:对基本的类库,我们对其代码实行了严格的封装,类库的变更及升级不会对使用该类库的程序造成影响,提高了程序的可维护性。
(2)使用多重继承:我们将常用的功能,如数据的插入、删除、修改、保存,数据的排序、过滤、查找、替换,表格的打印。
(3)使用多态性:多态性为程序设计带来了极大的灵活性。我们使用多态性,为不同环境下的相近功能提供了统一的访问界面,增强了程序的可读性。
4分布式计算技术
分布式技术有很多种,CORBAR、COM+等,在NET平台,有WEB服务、Net Remoting技术。Web服务是一种新的分布式计算技术,它可以跨越应用系统的组件模型、操作系统编程语言的界限,供客户端或其他服务器调用。
Web服务是利用SOAP在HTTP上执行远程方法调用的一种新方法。过去这个问题一直非常棘手,因为过去使用DCOM(分布式COM),在实例化远程服务器的对象、条用方法和获取结果上都是非常麻烦,而且在进行必要的配置时,需要具有很高的技巧。
系统采用Web服务实现分布式结构,分布式事务则采用Net Enterprise Service实现。
►隐式分布式事务实现:
隐式分布式事务最大的优点是无需手工去控制事务,通过代码块申明一个事务范围,在该范围内的操作会自动进入事务。此类事务方式通过Net Enterprise Service中的transactionscope对象实现。
►显示分布式事务实现:
显示分布式事务手工从DTC得到一个事务,把事务与需要进入该事务的连接关联在一起,手工提交或回滚。此类事务方式通过Net Enterprise Service中的Committable Transaction对象实现。
5与工作流引擎集成
本系统中采用的工作流系统,综合了计算机通信技术、组件技术、图形技术,其实用性、先进性、可靠性都达到国内领先水平。
6利用VML技术在浏览器中绘制进度计划图
在浏览器上绘图,一直以来是很多软件公司难以迈进的台阶。系统中采用VML技术,为用
图6-64 工作流系统示意图
户提供了直接在浏览器中绘制进度计划图的功能,并可以对进度计划图进行跟踪,如图6-64。
系统中的进度计划图有单代号、双代号两种表现形式,并可以相互转换。
7和Microsoft 0ffice软件的完美结合和紧密集成
Microsoft Office是常用的办公软件,工程管理过程中的许多文件,如工作联系单,设计变更单等文件大多采用Word格式,而一些报表采用Excel格式,所以要求系统能Microsoft Office套件无缝连接。强调和 Microsoft Office的集成,既方便用户的使用,又可以最大程度地保护用户在Microsoft Office上的投资。
8与电子签章及手写技术的集成
随着工程项目管理中对文档的安全性、真实性的要求不断提高,特别是针对手写签名、电子印章的要求更加严格,要求在Word/Excel文档上签名、盖章,需要实现多人会签、签章可验证、可认证、防抵赖等功能。东方思维根据实际情况,采用第三方软件iSignature(该技术通过了公安部安全性检测)手写签名电子印章软件管理方案。该方案采用信息加密和数据压缩处理技术,可靠性好,扩展性强,在政府、企业中应用广泛。
iSignature手写签名电子印章软件由签章钥匙盘和软件构成,签章钥匙盘自带CPU、快速存储器和加密处理机制,用于存放单位或个人数字证书、印章信息或签名信息。签章钥匙盘通过USB接口和计算机连接。软件自动嵌入到Word/Excel里,用来实现印章或签名。
9与短信猫的集成
采用与第三方产品GSM-SMModem短信猫进行集成,以实现短信的收发功能,及时提醒待处理的任务或发送通知通告等。
10OWC技术
OWC,即Office Web Components,是组件对象模型(COM)控件的集合,可用于将电子表格、图表和数据库发布到网站上。它们也可用来查看已发布的这些项目以及数据访问页。利用“表格模板标签“技术实现表格与数据库数据的交换和存储,解决了在不同高速公路项目中因表格不同(一般每个项目400张左右)而需在每张表格上重复修改程序的问题。
系统采用微软的OWC技术,界面直观,操作简单。系统中操作的各种表格,与在Excel表格中的操作方式是一致的,符合用户的习惯。提高了表格数据填写的效率。方便报表格式的定制和输出。
11与Biztalk Server能方便集成
Biztalk是一种基于XML的数据交换标准,Biztalk Server是微软的企业应用集成服务器,之间数据交换的标准就是Biztalk。
系统通过Biztalk Server能方便地与OA等系统集成,包括流程。
12单点登陆技术
单点登录采用基于数字证书的加密和数字签名技术,对用户实行集中统一的管理和身份认证,并作为本系统和其它应用系统的统一登录入口,同时为通过身份认证的合法用户签发针对各个应用系统的登录票据,从而实现“一点登录、多点漫游”。
13手持设备(PDA)移动操作
图6-65 手持设备移动操作
系统采用智能客户端技术(SmartClient),提供了手持设备(PDA)移动操作功能。如质量验评,可直接通过PDA进行现场检验数据采集,再通过同步机制与服务器数据同步。
14多线程技术
一个应用进程中默认的只有一个线程在执行任务,但系统中常常执行到如压缩文件、数据传输等很耗CPU的任务,如果采用单一线程,系统地整体性能就会下降。
本系统中采用多线程技术,对于复杂任务启用新线程来执行,从而保证了系统的性能。
15Enterprise Library 20的应用
Enterprise Library是微软为企业开发提供的一套基础组件,完全实现XML配置使用,包括数据访问、安全、日志、异常、加/解密等方面的服务。Enterprise Library 20较10作了较大的改动,功能更为完善,使用更为简单。系统采用Enterprise Library 20,并进行了二次开发,使得更符合本系统的应用。
16Ajax技术
Ajax用一组技术,它使浏览器可以为用户提供更为自然的浏览体验。在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步。Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的。
系统广泛采用了Ajax技术,提高了系统的效率,增强了用户的体验。
一、 Linux的主要特点 1符合POSIX 10031标准POSIX 10031标准定义了一个最小的Unix操作系统接口,任何操作系统只有符合这一标准,才有可能运 行Unix程序。考虑到Unix具有丰富的应用程序,当今绝大多数操作系统都把满足POSIX 10031标准作为实现 目标,Linux也不例外,它完全支持POSIX 10031标准。另外,为了使Unix System V和BSD上的程序能直接在 Linux上运行, Linux还增加了部分System V和BSD的系统接口,使Linux成为一个完善的Unix程序开发系统。 CT6itug
CT6itug
2支持多用户访问和多任务编程Linux是一个多用户操作系统,它允许多个用户同时访问系统而不会造成用户之间的相互干扰。另外, Linux还支持真正的多用户编程,一个用户可以创建多个进程,并使各个进程协同工作来完成用户的需求 CT6itug
CT6itug
3采用页式存储管理 页式存储管理使Linux能更有效地利用物理存储空间,页面的换入换出为用户提供了更大的存储空间。 CT6itug
CT6itug
4支持动态链接用户程序的执行往往离不开标准库的支持,一般的系统往往采用静态链接方式--即在装配阶段就已将 用户程序和标准库链接好,这样,当多个进程运行时,可能会出现库代码在内存中有多个副本而浪费存储 空间的情况。Linux 支持动态链接方式,当运行时才进行库链接,如果所需要的库已被其它进程装入内存, 则不必再装入,否则才从硬盘中将库调入。这样能保证内存中的库程序代码是唯一的。 CT6itug
CT6itug
5支持多种文件系统 Linux能支持多种文件系统。目前支持的文件系统有:EXT2、EXT、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、 PROC、NFS、SYSV、MINIX、SMB、UFS、NCP、VFAT、AFFS。Linux最常用的文件系统是EXT2,它的文件名长度可 达255字符,并且还有许多特有的功能,使它比常规的Unix文件系统更加安全。 CT6itug
CT6itug
6支持TCP/IP、SLIP和PPP在Linux中,用户可以使用所有的网络服务,如网络文件系统、远程登录等。SLIP和PPP能支持串行线上的 TCP/IP协议的使用,这意味着用户可用一个高速Modem通过电话线连入Internet网中。 CT6itug
CT6itug
除了上述基本特征外,Linux还具有其独有的特色: CT6itug
CT6itug
1支持硬盘的动态Cache 这一功能与MS DOS中的Smartdrive相似。所不同的是,Linux能动态调整所用的 Cache存储器的大小,以适合当前存储器的使用情况,当某一时刻没有更多的存储空间可用时,Cache将被减少, 以增加空闲的存储空间,一旦存储空间不再紧张,Cache的大小又将增加。2支持不同格式的可执行文件 Linux具有多种模拟器,这使它能运行不同格式的目标文件。其中,DOS和 MS Windows正在开发之中,iBCS2模拟器能运行SCO Unix的目标程序。(iBCS2 模拟器不是Linux标准核心的 一部分,但可从ftpinformatikhu berlinde:/pub/os/linux下载) CT6itug
CT6itug
二、 Linux的主要构成 CT6itug
CT6itug
Linux采用页式存储管理机制,每个页面的大小随处理机芯片而异。例如,Intel 386处理机页面大小 可为4KB和2MB两种,而Alpha处理机页面大小可为8KB、16KB、32KB和64KB。页面大小的选择对地址变换算 法和页表结构会有一定的影响,如Alpha的虚地址和物理地址的有效长度随页面尺寸的变化而变化,这种变 化必将在地址变换和页表项中有所反映。在Linux中,每一个进程都有一个比实际物理空间大得多的进程虚拟空间,为了建立虚拟空间和物理空 间之间的映射,每个进程还保留一张页表,用于将本进程空间中的虚地址变换成物理地址。页表还对物理页 的访问权限作出了规定,定义了哪些页可读写,哪些页是只读页,在进行虚实变换时,Linux将根据页表中规 定的访问权限来判定进程对物理地址的访问是否合法,从而达到存储保护的目的。 Linux存储空间分配遵循的是不到有实际需要的时候决不分配物理空间的原则。当一个程序加载执行时, Linux只为它分配了虚空间,只有访问某一虚地址而发生了缺页中断时,才为它分配物理空间,这样就可能 出现某些程序运行完成后,其中的一些页从来就没有装进过内存。这种存储分配策略带来的好处是显而易见的,因为它最大限度地利用了物理存储器。尽管Linux对物理存储器资源的使用十分谨慎,但还是经常出现物理存储器资源短缺的情况。Linux有一 个名为kswapd的守护进程专门负责页面的换出,当系统中的空闲页面小于一定的数目时,kswapd将按照一定的淘 汰算法选出某些页面,或者直接丢弃(页面未作修改),或者将其写回硬盘(页面已被修改)。这种换出方式不 同于较旧版本Unix的换出方式,它是将一个进程的所有页全部写回硬盘。相比之下,Linux的效率更高。 CT6itug
CT6itug
2进程管理在Linux中,进程是资源分配的基镜ノ唬 凶试炊际且越 涛 韵罄唇 蟹峙涞摹在一个进程的生 命期内,它会用到许多系统资源,会用CPU运行其指令,用存储器存储其指令和数据,它也会打开和使用文件 系统中的文件,直接或间接用到系统中的物理设备,因此,Linux设计了一系列的数据结构,它们能准确地描 述进程的状态和其资源使用情况,以便能公平有效地使用系统资源。Linux的调度算法能确保不出现某些进程 过度占用系统资源而导致另一些进程无休止地等待的情况。 CT6itug
CT6itug
进程的创建是一个十分复杂的过程,通常的做法需为子进程重新分配物理空间,并把父进程空间的内容全 盘复制到子进程空间中,其开销非常大。为了降低进程创建的开销,Linux采用了Copy on write技术,即不 拷贝父进程的空间,而是拷贝父进程的页表,使父进程和子进程共享物理空间,并将这个共享空间的访问权限 置为只读。当父进程和子进程的某一方进行写操作时,Linux检测到一个非法操作,这时才将要写的页进行复制 。这一做法免除了只读页的复制,从而降低了开销。Linux目前尚未提供用户级线程,但提供了核心级线程,核心线程的创建是在进程创建的基础上稍做修改, 使创建的子进程与父进程共享虚存空间。从这一意义上讲,核心线程更像一个共享进程组。CT6itug
CT6itug
3文件系统Linux最重要的特征之一就是支持多个不同的文件系统,前面我们已经看到,Linux目前支持的文件系统 多达十余种,随着时间的推移,这一数目还在不断增加。在Linux中,一个分离的文件系统不是通过设备标识 (如驱动器号或驱动器名)来访问,而是 把它合到一个单一的目录树结构中,通过目录来访问,这一点与Unix十分相似。Linux用 安装命令将一个新的文件系统安装到系统单一目录树的某一目录下,一旦安装成功,该目录下的所有内容将 被新安装的文件系统所覆盖,当文件系统被卸下后,安装目录下的文件将会被重新恢复。CT6itug
CT6itug
Linux最初的文件系统是Minix。该文件系统对文件限制过多,并且性能低下,如文件名长度不能超过14 个字符、文件大小不能超过64MB。为了解决这些问题,Linux的开发者们设计了一个Linux专用的文件系统EXT。 EXT对文件的要求放松了许多,但在性能上并没有大的改观,于是就有了后面的EXT2文件系统。EXT2文件系统 是一个非常成功的文件系统,它无论是对文件的限制还是在性能方面都大大优于EXT文件系统,所以,EXT2自 从推出就一直是Linux最常用的文件系统。为了支持多种文件系统,Linux用一个被称为虚拟文件系统(VFS)的接口层将真正的文件系统同操作系统及 系统服务分离开。VFS掩盖了不同文件系统之间的差异,使所有文件系统在操作系统和用户程序看来都是等同的。VFS允许用户同时透明地安装多个不同的文件系统。 CT6itug
CT6itug
4进程间通信Linux提供了多种进程间的通信机制,其中,信号和管道是最基本的两种。除此以外,Linux也提供 System V的进程间通信机制,包括消息队列、信号灯及共享内存。为了支持不同机器之间的进程通信, Linux还引入了BSD的Socket机制。 CT6itug
CT6itug
三、 Linux的不足及发展趋势Linux从出现到现今只经历了短短七年的时间,但其发展速度是惊人的,这与它的开放性和优良的性能 是密不可分的。不过我们应该看到,作为一个由学生开发的系统,Linux还有许多先天不足,它的设计思想 过多地受到传统操作系统的约束,没有体现出当今操作系统的发展潮流,具体表现在以下几个方面: CT6itug
CT6itug
不是一个微内核操作系统;是一个分布式操作系统;不是一个安全的操作系统;没有用户线程;不支持实时处理; CT6itug
CT6itug
代码是用C而不是C++这样的现代程序设计语言编写的。尽管Linux有这样和那样的不足,但其发展潜力不容低估,其发展的动力就是遍布全球、为数众多的 Linux热心者。今后Linux将会朝着完善功能、提高效率的方向发展,包括允许用户创建线程、增加实时处 理功能、开发适合多处理机体系结构的版本。我们相信,Linux、Unix及NT三足鼎立的时代将为期不远。 Linux主要由存储管理、进程管理、文件系统、进程间通信等几部分组成,在许多算法及实现策略上, Linux借鉴了Unix的成功经验,但也不乏自己的特色。 CT6itug
CT6itug
1存储管理 作为一个操作系统,Linux几乎满足当今Unix操作系统的所有要求,因此,它具有Unix操作系统的基本特征。
0条评论