路由器是工作在网络层的设备,也就是说,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。
在这一点上,路由器和三层交换机是一样的。
除此之外,路由器还具备交换机所不具备的两个基本功能:
(1)能够连接不同类型的网络。
(2)能够选择数据传输的路径。
1. 路由器能连接不同类型的网络
交换机一般都是用于连接以太网的,但是如果将两种网络类型连接起来,比如以太网与ATM网,交换机就派不上用场了。
路由器能够连接不同类型的局域网和广域网,如以太网、ATM网、FDDI网、令牌环网等。
不同类型的网络,其传送的数据单元:一帧(Frame)的格式和大小是不同的。
打个比方,公路运输是汽车为单位装载货物,而铁路运输是以车皮为单位装载货物一样,从汽车运输改为铁路运输,必须把货物从汽车上放到火车车皮上。
网络中的数据也是如此,数据从一种类型的网络传输至另一种类型的网络,必须进行帧格式转换。
实际上,我们所说的“互联网”,就是由各种路由器连接起来的,因为互联网上存在各种不同类型的网络,交换机无法胜任这个任务,所以必须由路由器来担当这个角色。
2. 路由器具有路径选择能力
在互联网中,从一个节点到另一个节点,可能有许多路径,路由器可以选择通畅快捷的近路,会大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,这也是二层交换机所不具备的。
参考文献:
1. http://www.360doc.com/content/06/0721/11/0_161305.shtml
2013年8月26日星期一
Cloud_017:交换机基础知识 (整理)
1. 从HUB谈起
刚参加工作时,交换机接触的不多,主要用的是HUB集线器。
HUB是工作在物理层的设备,不具备任何智能处理能力。
HUB本身不能识别目的地址,当同一局域网内的主机A给主机B传输数据时,数据包是以广播的方式传输到HUB的每个端口,
由每一台终端通过验证数据包头的地址信息来确定是否接收。
也就是说,在这种工作方式下,同一时刻网络上只能传输一组数据帧的通讯,如果发生碰撞还得重试。这种方式就是共享网络带宽。
2. 交换机工作原理
与HUB广播方式传输数据不同,交换机把主机的网卡的硬件地址(MAC)连接在哪个端口的信息记录在一张“地址表”上。
这样,当同一局域网内的主机A给主机B传输数据时,数据包是直接发送给主机B所在的端口上。
具体流程如下:
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的。
(2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口。
(3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上。
(4)如表中找不到相应的端口则把数据包广播到所有端口上。
当目的机器对源机器回应时,交换机又可以记录这一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
通过不断的循环这个过程,全网的MAC地址信息都可以用这种方式“学习”到,交换机就是这样建立和维护它自己的地址表。
与HUB另外一个不同点是,交换机在同一时刻可进行多个端口对之间的数据传输,每个端口上连接的网络设备独享全部的带宽。
比如,当节点A向节点D发送数据时,节点B可同时向节点C发送数据。
假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。
3. 二层交换机
二层交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。
上面介绍的就是二层交换机的基本工作原理,二层交换机是工作在数据链路层的设备。
4. 三层交换机
三层交换机具有路由功能,使用IP协议进行数据交换,因此,三层交换机是工作在网络层和链路层的设备。
当主机A给主机B传输数据时,具体流程如下:
(1)已知目的主机B的IP,那么主机A就用子网掩码取得网络地址,判断主机B的IP是否与自己在同一网段。
(2)如果在同一网段,但不知道主机B的MAC地址,主机A就发送一个ARP请求,主机B返回其MAC地址。
(3)主机A用此MAC地址封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。
(4)如果主机A和主机B不在同一网段,把第一个数据包发送给缺省网关,在“地址表”首先存放的就是缺省网关的MAC地址。
(5)三层模块接收到此数据包,查询路由表以确定到达主机B的路由,并构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。
(6)通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后主机A发送给主机B的数据包,就直接交由二层交换模块完成。
因此,如果主机A和主机B不在同一网段,要经过一次路由多次转发,路由由三层模块负责,转发由二层模块负责。
下图是一个交换机的典型拓扑图。
其中每个局域网中使用二层交换机,然后通过三层交换机进行跨局域网的信息传递。
5. 四层交换机
四层交换机依据TCP/UDP协议以及端口号传输数据包,因此,四层交换机是工作在传输层、网络层和链路层的设备。
当请求发出时,四层交换机根据源和目的IP地址、TCP/UDP、端口号来决定发送到哪里。
四层交换机会为提供相同服务的一组服务器设立虚拟IP,经过一套算法,来选择组中最好的服务器(找到该服务器的实际IP地址)来响应请求。
参考文献:
1. http://network.51cto.com/art/201107/278931.htm
2. http://network.51cto.com/art/201107/278943.htm
3. http://zhidao.baidu.com/question/29002608.html
4. http://www.360doc.com/content/06/0721/11/0_161305.shtml
刚参加工作时,交换机接触的不多,主要用的是HUB集线器。
HUB是工作在物理层的设备,不具备任何智能处理能力。
HUB本身不能识别目的地址,当同一局域网内的主机A给主机B传输数据时,数据包是以广播的方式传输到HUB的每个端口,
由每一台终端通过验证数据包头的地址信息来确定是否接收。
也就是说,在这种工作方式下,同一时刻网络上只能传输一组数据帧的通讯,如果发生碰撞还得重试。这种方式就是共享网络带宽。
2. 交换机工作原理
与HUB广播方式传输数据不同,交换机把主机的网卡的硬件地址(MAC)连接在哪个端口的信息记录在一张“地址表”上。
这样,当同一局域网内的主机A给主机B传输数据时,数据包是直接发送给主机B所在的端口上。
具体流程如下:
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的。
(2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口。
(3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上。
(4)如表中找不到相应的端口则把数据包广播到所有端口上。
当目的机器对源机器回应时,交换机又可以记录这一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
通过不断的循环这个过程,全网的MAC地址信息都可以用这种方式“学习”到,交换机就是这样建立和维护它自己的地址表。
与HUB另外一个不同点是,交换机在同一时刻可进行多个端口对之间的数据传输,每个端口上连接的网络设备独享全部的带宽。
比如,当节点A向节点D发送数据时,节点B可同时向节点C发送数据。
假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。
3. 二层交换机
二层交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。
上面介绍的就是二层交换机的基本工作原理,二层交换机是工作在数据链路层的设备。
4. 三层交换机
三层交换机具有路由功能,使用IP协议进行数据交换,因此,三层交换机是工作在网络层和链路层的设备。
当主机A给主机B传输数据时,具体流程如下:
(1)已知目的主机B的IP,那么主机A就用子网掩码取得网络地址,判断主机B的IP是否与自己在同一网段。
(2)如果在同一网段,但不知道主机B的MAC地址,主机A就发送一个ARP请求,主机B返回其MAC地址。
(3)主机A用此MAC地址封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。
(4)如果主机A和主机B不在同一网段,把第一个数据包发送给缺省网关,在“地址表”首先存放的就是缺省网关的MAC地址。
(5)三层模块接收到此数据包,查询路由表以确定到达主机B的路由,并构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。
(6)通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后主机A发送给主机B的数据包,就直接交由二层交换模块完成。
因此,如果主机A和主机B不在同一网段,要经过一次路由多次转发,路由由三层模块负责,转发由二层模块负责。
下图是一个交换机的典型拓扑图。
其中每个局域网中使用二层交换机,然后通过三层交换机进行跨局域网的信息传递。
5. 四层交换机
四层交换机依据TCP/UDP协议以及端口号传输数据包,因此,四层交换机是工作在传输层、网络层和链路层的设备。
当请求发出时,四层交换机根据源和目的IP地址、TCP/UDP、端口号来决定发送到哪里。
四层交换机会为提供相同服务的一组服务器设立虚拟IP,经过一套算法,来选择组中最好的服务器(找到该服务器的实际IP地址)来响应请求。
参考文献:
1. http://network.51cto.com/art/201107/278931.htm
2. http://network.51cto.com/art/201107/278943.htm
3. http://zhidao.baidu.com/question/29002608.html
4. http://www.360doc.com/content/06/0721/11/0_161305.shtml
Cloud_016:OSI 七层模型 (整理)
最近在看虚拟化的东东,感觉有必要重温一下微软当年提出的 OSI(Open System Interconnection,开放式系统互联)七层模型。
微软认为,任何两个系统之间要传输数据,必须经过七层模型:
微软认为,任何两个系统之间要传输数据,必须经过七层模型:
1.物理层(Physical Layer)
OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
2.数据链路层(Data Link Layer)
它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
3. 网络层(Network Layer)
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
4. 传输层(Transport Layer)
这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
5. 会话层(Session Layer)
它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
6. 表示层(Presentation Layer)
这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
7. 应用层(Application Layer)
与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,NFS,SMTP等。
可以看出,各个层所涵盖的功能和协议都不相同,具体如下图所示:
其中,1-3层是面向网络的,一般由网络管理员管理;4-7层是面向用户的,一般由开发人员经常可以写程序调用的。
更详细的7层功能和协议图如下:
参考文献:
1. http://blog.163.com/quan2006@126/blog/static/1702286352013117850256/
2. http://baike.baidu.com/view/547338.htm
Cloud_015:服务器硬件体系架构类型
相对于普通PC机来说,服务器在稳定性、安全性、性能等方面都要求更高,因此CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。
按照硬件体系架构来区分,服务器主要分为两类:
1. x86服务器
使用CISC(Complex Instruction Set Computer,复杂指令集)处理器的服务器。
即通常所说的PC服务器,基于PC机体系结构,
之所以叫x86服务器,是因为其CPU是Intel生产的x86系列(Intel命名的CPU的一种命名规范),后来也有其它厂商(比如AMD,VIA)生产的兼容x86的CPU。
CISC型CPU一般都是32位的结构,所以我们也把它称为IA-32(Intel Architecture)CPU。
x86服务器使用的操作系统主要是Linux。
x86服务器的价格便宜,兼容性好,但是稳定性差、不安全,主要用在中小企业和非关键业务中。
2. 非x86服务器
使用RISC(Reduced Instruction Set Computer,精简指令集)处理器的服务器。
大型机和小型机使用的基本都是RISC或EPIC处理器,EPIC处理器是Intel研发的安腾处理器。
相对于CISC型CPU ,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,在同等频率下,采用RISC架构的CPU比CISC架构的CPU性能高很多。
RISC型CPU与CISC型CPU在软件和硬件上都不兼容。
非x86服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统中。
2.1 大型机
目前生产大型机的企业主要有两家:IBM和UNISYS。
IBM大型机是其Z系列服务器,使用专用的处理器指令集、操作系统和应用软件。
2.2 小型机
即业内人士常说的Unix服务器,这里的Unix指的是服务器使用的操作系统,实际上,各大IT厂商都有自己的处理器和Unix操作系统。
(1)IBM:Power处理器,AIX操作系统。
(2)Sun:SPARC处理器,Solaris操作系统。
(3)HP:PA-RISC处理器或安腾处理器,HP-UX操作系统。
各个厂商的Unix操作系统都是和硬件绑定的,并且代码是有专利的,这也就是为什么Unix服务器价格动辄几十万,而高端的PC服务器也不过十万。
参考文献:
1. http://server.zol.com.cn/298/2984572.html
按照硬件体系架构来区分,服务器主要分为两类:
1. x86服务器
使用CISC(Complex Instruction Set Computer,复杂指令集)处理器的服务器。
即通常所说的PC服务器,基于PC机体系结构,
之所以叫x86服务器,是因为其CPU是Intel生产的x86系列(Intel命名的CPU的一种命名规范),后来也有其它厂商(比如AMD,VIA)生产的兼容x86的CPU。
CISC型CPU一般都是32位的结构,所以我们也把它称为IA-32(Intel Architecture)CPU。
x86服务器使用的操作系统主要是Linux。
x86服务器的价格便宜,兼容性好,但是稳定性差、不安全,主要用在中小企业和非关键业务中。
2. 非x86服务器
使用RISC(Reduced Instruction Set Computer,精简指令集)处理器的服务器。
大型机和小型机使用的基本都是RISC或EPIC处理器,EPIC处理器是Intel研发的安腾处理器。
相对于CISC型CPU ,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,在同等频率下,采用RISC架构的CPU比CISC架构的CPU性能高很多。
RISC型CPU与CISC型CPU在软件和硬件上都不兼容。
非x86服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统中。
2.1 大型机
目前生产大型机的企业主要有两家:IBM和UNISYS。
IBM大型机是其Z系列服务器,使用专用的处理器指令集、操作系统和应用软件。
2.2 小型机
即业内人士常说的Unix服务器,这里的Unix指的是服务器使用的操作系统,实际上,各大IT厂商都有自己的处理器和Unix操作系统。
(1)IBM:Power处理器,AIX操作系统。
(2)Sun:SPARC处理器,Solaris操作系统。
(3)HP:PA-RISC处理器或安腾处理器,HP-UX操作系统。
各个厂商的Unix操作系统都是和硬件绑定的,并且代码是有专利的,这也就是为什么Unix服务器价格动辄几十万,而高端的PC服务器也不过十万。
参考文献:
1. http://server.zol.com.cn/298/2984572.html
2013年8月7日星期三
Cloud_014:Windows Azure 介绍 (8)Media
8. Media
今天,视频已经成为网络上最大的信息数据,用户对视频的需求有增无减。
如果你也想创建一个视频网站,但是又不懂那些视频的专业知识,比如流数据、编码器和解码器,分辨率等等,那么可以考虑使用Windows Azure假设你的视频网站,因为Windows Azure把这些问题都给你解决了。
Media Services提供的服务如下图所示:
(1)Media Ingest:用于视频的上传,文件被保存在Blobs中。
(2)Encoding:用于视频的各种格式的转换。
(3)Content Protection:提供数字版权的保护和管理。
(4)Ad Insertion:负责在视频中插入广告。
(5)Streaming:提供与流数据相关的功能。
(6)Partner Components:供微软的Partner添加自己的组件。
以上的这些服务都提供了REST API。
今天,视频已经成为网络上最大的信息数据,用户对视频的需求有增无减。
如果你也想创建一个视频网站,但是又不懂那些视频的专业知识,比如流数据、编码器和解码器,分辨率等等,那么可以考虑使用Windows Azure假设你的视频网站,因为Windows Azure把这些问题都给你解决了。
Media Services提供的服务如下图所示:
(1)Media Ingest:用于视频的上传,文件被保存在Blobs中。
(2)Encoding:用于视频的各种格式的转换。
(3)Content Protection:提供数字版权的保护和管理。
(4)Ad Insertion:负责在视频中插入广告。
(5)Streaming:提供与流数据相关的功能。
(6)Partner Components:供微软的Partner添加自己的组件。
以上的这些服务都提供了REST API。
Cloud_013:Windows Azure 介绍 (7)Identity
7. Identity
Windows Azure Active Directory负责用户的身份认证与授权。
值得注意的是,Windows Azure Active Directory是为运行在云中的应用服务的,比如Office 365。
如果你只是在本地使用,应该使用Windows Server Active Directory,将其安装到VM上,并且Virtual Network一起使用。
Windows Azure Active Directory 提供了REST API:Windows Azure Active Directory Graph,供应用获取用户的认证与授权信息。
Windows Azure Active Directory 可以与运行在本地的Windows Server Active Directory同步,虽然二者的数据格式不尽相同。
Windows Azure Active Directory Access Control可以使用诸如Facebook, Google,Windows Live ID,作为身份认证的提供者。
Windows Azure Active Directory负责用户的身份认证与授权。
值得注意的是,Windows Azure Active Directory是为运行在云中的应用服务的,比如Office 365。
如果你只是在本地使用,应该使用Windows Server Active Directory,将其安装到VM上,并且Virtual Network一起使用。
Windows Azure Active Directory 提供了REST API:Windows Azure Active Directory Graph,供应用获取用户的认证与授权信息。
Windows Azure Active Directory 可以与运行在本地的Windows Server Active Directory同步,虽然二者的数据格式不尽相同。
Windows Azure Active Directory Access Control可以使用诸如Facebook, Google,Windows Live ID,作为身份认证的提供者。
Cloud_012:Windows Azure 介绍 (6)Caching
6. Caching
提高数据访问速度的最有效的方法无外乎以下两种:
(1)把数据放到内存之中。
(2)把数据放到离使用者最近的地方。
基于此原理,Windows Azure提供了两种方式:Caching和 Content Delivery Network(CDN)。
6.1 Caching
在Windows Azure中,Cache可以分布式的保存在多个VM中。
Cache可以与应用共用同一个VM,也可以独占一个VM。
6.2 CDN
想象一下在你的数据中心中有一些访问量非常大的视频,为了满足世界各地的用户访问需求,你需要把这些视频部署到世界各地的各个数据中心。但是这就够了吗?
想要进一步提高本地用户的访问速度,你需要使用CDN。
Windows Azure在世界各地有很多CDN站点,当用户首次访问该视频时,该文件会从数据中心复制到离用户最近的CDN站点。
提高数据访问速度的最有效的方法无外乎以下两种:
(1)把数据放到内存之中。
(2)把数据放到离使用者最近的地方。
基于此原理,Windows Azure提供了两种方式:Caching和 Content Delivery Network(CDN)。
6.1 Caching
在Windows Azure中,Cache可以分布式的保存在多个VM中。
Cache可以与应用共用同一个VM,也可以独占一个VM。
6.2 CDN
想象一下在你的数据中心中有一些访问量非常大的视频,为了满足世界各地的用户访问需求,你需要把这些视频部署到世界各地的各个数据中心。但是这就够了吗?
想要进一步提高本地用户的访问速度,你需要使用CDN。
Windows Azure在世界各地有很多CDN站点,当用户首次访问该视频时,该文件会从数据中心复制到离用户最近的CDN站点。
Cloud_011:Windows Azure 介绍 (5)Messaging
5. Messaging
Windows Azure提供了两种方式用于信息传递:Queues和Service Bus。
5.1 Queues
最典型的使用Queues场景是:使用Cloud Services创建一个Web 应用,其中的Web Role通过Queue与Work Role通信。
比如你想开发一个视频共享的应用,使用PHP开发Web应用,运行在多个Web Role实例上,允许用户上传和观看视频;
使用C#开发后台视频格式转换程序,运行在多个Work Role实例上。
当用户上传一个新视频后,Web Role会向Queue中发一条消息,告诉Work Role从哪里得到该视频文件,然后在后台进行转换。
由于通信是异步的,Web Role和Work Role各干各的,互不影响。
同时,用户也可以非常简单地横向扩展应用,只要根据需要增加Web Role或Work Role的实例就好了。
5.2 Service Bus
如果想实现更复杂的通信,比如云中的应用彼此之间的通信以及云中应用和云外应用的通信,那么就要考虑使用Service Bus了。
Service Bus提供了Queue(One-to-One)和 Publish-and-Subscribe(One-to-Many)两种通信方式。
并且,云中的应用还可以通过Relay的方式穿过防火墙直接通信。
典型场景:航空公司订票系统。
订票服务运行在企业自建的数据中心中,暴露出一些公共的服务给各种各样的客户端:网站,机场自助终端,智能手机,机票代理公司。
使用Service Bus可以松耦合地实现这些应用之间的信息交互。
Windows Azure提供了两种方式用于信息传递:Queues和Service Bus。
5.1 Queues
最典型的使用Queues场景是:使用Cloud Services创建一个Web 应用,其中的Web Role通过Queue与Work Role通信。
比如你想开发一个视频共享的应用,使用PHP开发Web应用,运行在多个Web Role实例上,允许用户上传和观看视频;
使用C#开发后台视频格式转换程序,运行在多个Work Role实例上。
当用户上传一个新视频后,Web Role会向Queue中发一条消息,告诉Work Role从哪里得到该视频文件,然后在后台进行转换。
由于通信是异步的,Web Role和Work Role各干各的,互不影响。
同时,用户也可以非常简单地横向扩展应用,只要根据需要增加Web Role或Work Role的实例就好了。
5.2 Service Bus
如果想实现更复杂的通信,比如云中的应用彼此之间的通信以及云中应用和云外应用的通信,那么就要考虑使用Service Bus了。
Service Bus提供了Queue(One-to-One)和 Publish-and-Subscribe(One-to-Many)两种通信方式。
并且,云中的应用还可以通过Relay的方式穿过防火墙直接通信。
典型场景:航空公司订票系统。
订票服务运行在企业自建的数据中心中,暴露出一些公共的服务给各种各样的客户端:网站,机场自助终端,智能手机,机票代理公司。
使用Service Bus可以松耦合地实现这些应用之间的信息交互。
2013年8月6日星期二
Cloud_010:Windows Azure 介绍 (4)Business Analytics
4. Business Analytics
数据分析是云计算中必不可少的一项功能。
Windows Azure提供了两种方式分析数据:SQL Reporting和HDInsight(Hadoop)。
4.1 SQL Reporting
SQL Reporting用于分析关系型数据库中数据,即Windows Azure提供的SQL Database数据存储服务。
当然,你也可以使用其它的基于关系数据库的数据分析工具。
4.2 HDInsight(Hadoop)
Hadoop是分析海量非结构化数据的利器,它使用Hadoop Distributed File System(HDFS)存储数据,开发人员使用MapReduce Job分析数据,HDFS把数据分布到多个Server上,而MapReduce Job在这些Server上并行运行,分析和处理数据。
HDInsight是Windows Azure提供的基于Hadoop技术的数据分析服务。
HDInsight把数据分布在多个VM上,这些VM组成一个集群,MapReduce Job也并行地运行在这些VM上。
HDInsight支持其它基于Hadoop的衍生软件,比如Hive和Pig。
数据分析是云计算中必不可少的一项功能。
Windows Azure提供了两种方式分析数据:SQL Reporting和HDInsight(Hadoop)。
4.1 SQL Reporting
SQL Reporting用于分析关系型数据库中数据,即Windows Azure提供的SQL Database数据存储服务。
当然,你也可以使用其它的基于关系数据库的数据分析工具。
4.2 HDInsight(Hadoop)
Hadoop是分析海量非结构化数据的利器,它使用Hadoop Distributed File System(HDFS)存储数据,开发人员使用MapReduce Job分析数据,HDFS把数据分布到多个Server上,而MapReduce Job在这些Server上并行运行,分析和处理数据。
HDInsight是Windows Azure提供的基于Hadoop技术的数据分析服务。
HDInsight把数据分布在多个VM上,这些VM组成一个集群,MapReduce Job也并行地运行在这些VM上。
HDInsight支持其它基于Hadoop的衍生软件,比如Hive和Pig。
Cloud_009:Windows Azure 介绍 (3)Networking
3. Networking
微软在美洲、欧洲、亚洲都建立了数据中心,当你的应用需要存储数据时,可以使用这些数据中心。Windows Azure提供了两种方式连接到数据中心:Virtual Network和Traffic Manager。
3.1 Virtual Network
使用Virtural Network可以把企业自建的局域网通过一个VPN(Virtual Private Network)网关连接到云中的VM。
比如我们可以这样使用Virtual Network:
(1)使用Virtual Machines服务,创建多个VM,然后在VM上安装需要的软件,比如:Sharepoint,Active Directory,等等。
(2)使用Virtual Network 连接(1)创建好的VM,与企业自建的局域网看起来就像在同一个网段,应用看起来就像在本地运行一样。
3.2 Traffic Manager
如果你的应用跨多个数据中心,可以使用Traffic Manager“智能地”路由用户的请求到不同的数据中心。
这里的“智能”指的是Traffic Manager会考虑到以下因素:
(1)把用户的请求路由到离用户最近的数据中心,这样显然可以提高响应速度。
(2)如果某个数据中心过载了或宕了,把用户的请求路由到其它的数据中心,保证负载均衡和容错。
(3)如果规则比较复杂,可以在Traffic Manager上定义规则:比如当某个数据中心的响应超过某个阀值时,就不再给该数据中心新的请求了。
微软在美洲、欧洲、亚洲都建立了数据中心,当你的应用需要存储数据时,可以使用这些数据中心。Windows Azure提供了两种方式连接到数据中心:Virtual Network和Traffic Manager。
3.1 Virtual Network
使用Virtural Network可以把企业自建的局域网通过一个VPN(Virtual Private Network)网关连接到云中的VM。
比如我们可以这样使用Virtual Network:
(1)使用Virtual Machines服务,创建多个VM,然后在VM上安装需要的软件,比如:Sharepoint,Active Directory,等等。
(2)使用Virtual Network 连接(1)创建好的VM,与企业自建的局域网看起来就像在同一个网段,应用看起来就像在本地运行一样。
3.2 Traffic Manager
如果你的应用跨多个数据中心,可以使用Traffic Manager“智能地”路由用户的请求到不同的数据中心。
这里的“智能”指的是Traffic Manager会考虑到以下因素:
(1)把用户的请求路由到离用户最近的数据中心,这样显然可以提高响应速度。
(2)如果某个数据中心过载了或宕了,把用户的请求路由到其它的数据中心,保证负载均衡和容错。
(3)如果规则比较复杂,可以在Traffic Manager上定义规则:比如当某个数据中心的响应超过某个阀值时,就不再给该数据中心新的请求了。
2013年8月5日星期一
Cloud_008:Windows Azure 介绍 (2)Data Management
2. Data Management
针对数据管理部分,Windows Azure提供了三种数据存储方式:关系数据库,NoSQL的表存储,以及存储非结构化数据的BLOB存储。
无论是哪一种方式,Windows Azure 数据中心都会自动复制三份数据在三台不同的机器上,以保证数据的高可用性。
访问数据的应用既可以是部署在云中的应用,也可以是云外的应用,比如企业自建的数据中心。
2.1 SQL Database
针对关系型数据,Windows Azure提供了SQL Database,即之前的SQL Azure。
你可以使用SQL Server或其它关系型数据库,并且和以前一样,可以使用ADO.NET和JDBC访问数据。
但是SQL Database并不是简单地在云中提供的一个DBMS的PAAS服务,除了基本的访问功能之外,SQL Database还可以帮你自动管理基础硬件以及软件升级。
当数据量很大时,SQL Database可以提供把数据分布在多个Server上(federation option),这样可以大大提高性能。
小结:SQL Database适合关系型数据的存储,数据类型相对比较复杂。
尤其适合把现有的数据库导入到云中,或从云中导出。
2.2 Tables
Tables在这里指的不是数据库中的表,而是一中NoSQL的表存储,使用的Key/Value机制。
一个Table可以存储一个Terabyte的数据。
小结:Tables适合存储海量的简单类型的数据,比如存储客户信息,它的访问速度要比传统的关系型数据库快很多。
2.3 Blobs
Blobs用于存储海量的非结构化数据,比如视频。
一个Blob可以存储一个Terabyte的数据。
针对数据管理部分,Windows Azure提供了三种数据存储方式:关系数据库,NoSQL的表存储,以及存储非结构化数据的BLOB存储。
无论是哪一种方式,Windows Azure 数据中心都会自动复制三份数据在三台不同的机器上,以保证数据的高可用性。
访问数据的应用既可以是部署在云中的应用,也可以是云外的应用,比如企业自建的数据中心。
针对关系型数据,Windows Azure提供了SQL Database,即之前的SQL Azure。
你可以使用SQL Server或其它关系型数据库,并且和以前一样,可以使用ADO.NET和JDBC访问数据。
但是SQL Database并不是简单地在云中提供的一个DBMS的PAAS服务,除了基本的访问功能之外,SQL Database还可以帮你自动管理基础硬件以及软件升级。
当数据量很大时,SQL Database可以提供把数据分布在多个Server上(federation option),这样可以大大提高性能。
小结:SQL Database适合关系型数据的存储,数据类型相对比较复杂。
尤其适合把现有的数据库导入到云中,或从云中导出。
2.2 Tables
Tables在这里指的不是数据库中的表,而是一中NoSQL的表存储,使用的Key/Value机制。
一个Table可以存储一个Terabyte的数据。
小结:Tables适合存储海量的简单类型的数据,比如存储客户信息,它的访问速度要比传统的关系型数据库快很多。
2.3 Blobs
Blobs用于存储海量的非结构化数据,比如视频。
一个Blob可以存储一个Terabyte的数据。
Cloud_007:Windows Azure 介绍 (1)Execution Models
Windows Azure是微软的公有云应用平台。你可以使用该平台做很多事情,比如:
(1)你可以使用该平台创建Web应用,运行Web应用,把数据存储到Windows Azure DataCenter中。
(2)使用Windows Azure存储数据,应用运行在企业内部自建的系统中,即在公有云之外。
(3)创建VM用于开发和测试
(4)创建VM运行SharePoint或其它应用。
(5)创建支持海量用户的高可扩展应用,Windows Azure提供了很多服务用来保证这一点。
那么,Windows Azure的架构是怎样的,都有哪些组件,这些组件的作用是什么呢?
1. Execution Models (执行模型)
云平台最重要的功能就是提供可执行的应用(服务)。
Windows Azure提供了四种服务:Virtual Machines, Web Sites, Cloud Services 以及 Mobile Services。
你可以单独使用其中一个服务,也可以组合使用多个服务。
1.1 Virtual Machines
从标准的Image或者你自己定制的Image创建VM,此服务即IAAS。
微软提供的Images格式是VHD,微软提供的标准的VHD有如下:
Windows Server 2008 R2, Windows Server 2012, and Windows Server 2008 R2 with SQL Server。
微软合作伙伴提供的标准的VHD有:Linux,你也可以创建和定制自己的VHD。
你也可以把VHD复制出来,在本地运行,把VHD映射到一个本地盘符,然后增加一个启动项,指向该VHD,即从该VHD启动机器。
创建VM时,需要指定VHD,以及VM的大小,只有当VM运行时,你才需要付费。
在VM运行时,你也可以持久化所有的更改到VHD,这样下次你可以根据保存的VHD,创建一个新的VM。
Virtual Machines 主要使用场景:
(1)创建开发和测试环境。
(2)创建并运行自己的应用,安装必要的库,创建和使用关系数据库。
1.2 Web Sites
参考文献:
1. http://www.windowsazure.com/en-us/develop/net/fundamentals/intro-to-windows-azure/?fb=zh-cn
(1)你可以使用该平台创建Web应用,运行Web应用,把数据存储到Windows Azure DataCenter中。
(2)使用Windows Azure存储数据,应用运行在企业内部自建的系统中,即在公有云之外。
(3)创建VM用于开发和测试
(4)创建VM运行SharePoint或其它应用。
(5)创建支持海量用户的高可扩展应用,Windows Azure提供了很多服务用来保证这一点。
那么,Windows Azure的架构是怎样的,都有哪些组件,这些组件的作用是什么呢?
1. Execution Models (执行模型)
云平台最重要的功能就是提供可执行的应用(服务)。
Windows Azure提供了四种服务:Virtual Machines, Web Sites, Cloud Services 以及 Mobile Services。
你可以单独使用其中一个服务,也可以组合使用多个服务。
1.1 Virtual Machines
从标准的Image或者你自己定制的Image创建VM,此服务即IAAS。
微软提供的Images格式是VHD,微软提供的标准的VHD有如下:
Windows Server 2008 R2, Windows Server 2012, and Windows Server 2008 R2 with SQL Server。
微软合作伙伴提供的标准的VHD有:Linux,你也可以创建和定制自己的VHD。
你也可以把VHD复制出来,在本地运行,把VHD映射到一个本地盘符,然后增加一个启动项,指向该VHD,即从该VHD启动机器。
创建VM时,需要指定VHD,以及VM的大小,只有当VM运行时,你才需要付费。
在VM运行时,你也可以持久化所有的更改到VHD,这样下次你可以根据保存的VHD,创建一个新的VM。
Virtual Machines 主要使用场景:
(1)创建开发和测试环境。
(2)创建并运行自己的应用,安装必要的库,创建和使用关系数据库。
在VM上可以创建Web应用,但是需要用户自己管理VM。如果你希望创建Web应用,但是由别人来帮你负责管理工作,那么Web Sites服务就是你所需要的。
你可以把已有的Web应用放到云中,也可以在云中创建新的Web应用。
当Web Site运行时,你可以根据负载情况动态地增加或减少运行实例。
你的Web Site可以选择与其它Web Site共享一个VM,或者选择独占一个VM,如果是独占,你还可以增加VM的性能。
Web Sites支持的开发语言有:.NET,PHP,Node.js,Python。
支持的数据库有:数据库:SQL Database MySQL。
支持内置的应用:WordPress,Joomla,Drupal。
总之,Web Sites 用于创建和运行低消费、可伸缩的、运行在公有云上的Web应用。
1.3 Cloud Services
一个可以支持大量并发用户的Web 应用,不需要太多的管理,并且“永不宕机”?
如果你想要这样的Web应用,那么Cloud Sites服务就是你所需要的。此服务即SAAS。
Web Sites服务虽然也能创建Web 应用,但是没有管理权限,不能安装自己的软件包。
Virtual Machines提供了管理权限,但是你需要自己处理诸如可靠性的问题。
Cloud Services提供了必要的管理权限,同时又把大多数的管理工作帮你做了。
总之,Cloud Services 用于创建和运行可伸缩的、高可靠性,低管理的、运行在公有云上的Web应用。
你可以把已有的Web应用放到云中,也可以在云中创建新的Web应用。
当Web Site运行时,你可以根据负载情况动态地增加或减少运行实例。
你的Web Site可以选择与其它Web Site共享一个VM,或者选择独占一个VM,如果是独占,你还可以增加VM的性能。
Web Sites支持的开发语言有:.NET,PHP,Node.js,Python。
支持的数据库有:数据库:SQL Database MySQL。
支持内置的应用:WordPress,Joomla,Drupal。
总之,Web Sites 用于创建和运行低消费、可伸缩的、运行在公有云上的Web应用。
1.3 Cloud Services
一个可以支持大量并发用户的Web 应用,不需要太多的管理,并且“永不宕机”?
如果你想要这样的Web应用,那么Cloud Sites服务就是你所需要的。此服务即SAAS。
Web Sites服务虽然也能创建Web 应用,但是没有管理权限,不能安装自己的软件包。
Virtual Machines提供了管理权限,但是你需要自己处理诸如可靠性的问题。
Cloud Services提供了必要的管理权限,同时又把大多数的管理工作帮你做了。
总之,Cloud Services 用于创建和运行可伸缩的、高可靠性,低管理的、运行在公有云上的Web应用。
在Cloud Services中的VM与Virtual Machines中的VM不同,你不用自己管理操作系统的升级和打Patch,并且Windows Azure会监控这些VM,如果VM宕了,会自动重启。
因此,使用Cloud Services,你不能把状态信息保存在VM中,因为VM不由你控制,应该把状态信息放到数据管理层。
Cloud Services包括面向Internet的Web Role和运行后台任务的Work Role。
Web Role可以将计算任务直接或间接地(通过消息队列)下发到Work Role。
Web Role和Work Role都可以访问数据存储或其它服务。
1.4 Mobile Services
Mobile Services 支持的移动操作系统有Windows Phone 8,Android,iOS。
提供的移动后端服务有:数据存储(其中数据存储在云端),用户身份验证(支持使用Facebook,Twitter,Microsoft 或者Google account作为Identity Provider),通知推送。
后端的这些服务都提供了REST API。
Mobile Services 支持的移动操作系统有Windows Phone 8,Android,iOS。
提供的移动后端服务有:数据存储(其中数据存储在云端),用户身份验证(支持使用Facebook,Twitter,Microsoft 或者Google account作为Identity Provider),通知推送。
后端的这些服务都提供了REST API。
参考文献:
1. http://www.windowsazure.com/en-us/develop/net/fundamentals/intro-to-windows-azure/?fb=zh-cn
Cloud_006:关于“On-premises”的含义
学习云计算知识时,经常遇到“On-premises”这个词,感觉似懂非懂的。
来自WIKI的英文解释是这样的:
On-premises software (often abbreviated as on-prem software, and also often incorrectly called “on-premise” software) is installed and run on computers on the premises (in the building) of the person or organisation using the software, rather than at a remote facility, such as at a server farm or cloud somewhere on the internet.
On-premises software is sometimes referred to as “shrinkwrap” software, and off-premises software is commonly called “software as a service” or “computing in the cloud”.
仔细研读后,得出如下结论:
(1)premises不是premise的复数形式,正确拼法就是“On-premises”,而不是“On-premise”。
(2)premises是经营场所的意思,On-premises指的是用户或组织所在的经营场所。
(3)与 On-premises Software相对的概念应该是 Software as a Service, 或者Computing in the Cloud。即软件或者计算是安装并运行在远端的Cloud/Internet/Network中的。
所以On-premises Software指的是运行在企业本地自建环境中的软件,On-premises Solution指的是运行在企业本地自建环境中的解决方案。
参考文献:
1. http://en.wikipedia.org/wiki/On-premise_software
2. http://dipplum.com/2008/10/10/on-premise/
来自WIKI的英文解释是这样的:
On-premises software (often abbreviated as on-prem software, and also often incorrectly called “on-premise” software) is installed and run on computers on the premises (in the building) of the person or organisation using the software, rather than at a remote facility, such as at a server farm or cloud somewhere on the internet.
On-premises software is sometimes referred to as “shrinkwrap” software, and off-premises software is commonly called “software as a service” or “computing in the cloud”.
仔细研读后,得出如下结论:
(1)premises不是premise的复数形式,正确拼法就是“On-premises”,而不是“On-premise”。
(2)premises是经营场所的意思,On-premises指的是用户或组织所在的经营场所。
(3)与 On-premises Software相对的概念应该是 Software as a Service, 或者Computing in the Cloud。即软件或者计算是安装并运行在远端的Cloud/Internet/Network中的。
所以On-premises Software指的是运行在企业本地自建环境中的软件,On-premises Solution指的是运行在企业本地自建环境中的解决方案。
参考文献:
1. http://en.wikipedia.org/wiki/On-premise_software
2. http://dipplum.com/2008/10/10/on-premise/
2013年8月2日星期五
ADF_238:ADF 12.1.2新特性
ADF 12.1.2 与WebLogic 12.1.2 同时发布,这个版本包含很多激动人心的新特性。
1.ADF View
1.1 新增的特性
(1)支持 JSF 2.0: Facelets,Ajax,Get,合成组件,带批注的Managed Beans,新的变量范围,条件导航,直接在页面中显示EL表达式内容,EL表达式中的方法可以带参数,系统事件等等。
(2)新组件:Treemap,使用不同颜色、不同大小的矩形方块表示数据的层级关系。
(3)新组件:Sunburst,使用放射状的布局显示数据的层级关系。
(4)新组件:Timeline,一个交互式的可视化组件,允许用户按照时间顺序查看事件。
1. http://www.oracle.com/technetwork/developer-tools/jdev/documentation/1212-nf-1964675.html
1.ADF View
1.1 新增的特性
(1)支持 JSF 2.0: Facelets,Ajax,Get,合成组件,带批注的Managed Beans,新的变量范围,条件导航,直接在页面中显示EL表达式内容,EL表达式中的方法可以带参数,系统事件等等。
(2)新组件:Treemap,使用不同颜色、不同大小的矩形方块表示数据的层级关系。
(3)新组件:Sunburst,使用放射状的布局显示数据的层级关系。
(4)新组件:Timeline,一个交互式的可视化组件,允许用户按照时间顺序查看事件。
1.2 增强的特性
(1)Hierarchy Viewer 组件:支持拖放。
(2)Pivot Table 和 Gantt 组件:支持分页。
(3)新增皮肤:Skyros Skin。新组件:Sunburst,使用放射状的布局显示数据的层级关系。
(4)运行时可以修改皮肤。
(2)Pivot Table 和 Gantt 组件:支持分页。
(3)新增皮肤:Skyros Skin。新组件:Sunburst,使用放射状的布局显示数据的层级关系。
(4)运行时可以修改皮肤。
(5)Table 组件:支持从右向左冻结列,支持分页。
(6)Calendar 组件:支持时长15分钟的任务。
(6)Calendar 组件:支持时长15分钟的任务。
4.ADF Business Components
(1)支持离线数据库。
(2)支持RowFinder特性。
(3)支持为一个View Object创建多个必须的View Criteria。
参考文献:(1)支持离线数据库。
(2)支持RowFinder特性。
(3)支持为一个View Object创建多个必须的View Criteria。
1. http://www.oracle.com/technetwork/developer-tools/jdev/documentation/1212-nf-1964675.html
订阅:
博文 (Atom)