分布式与云计算技术探究与安全瓶颈的研究

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

分布式与云计算技术探究与安全瓶颈的研究分布式与云计算技术探究(一)RPC概述RPC原理RPC应用RPC概述背景•问题•对策RPC•定义•优势结构•架构演变•架构图分析1.访问量逐年攀升服务器数不断增加2.业务不断发展应用规模日趋庞大3.对性能可靠性的要求越来越高问题对策拆分对巨型系统进行梳理垂直拆分成多个独立的Web系统剥离抽取共用的服务提供远程调用接口与应用共存集群甄别核心的服务独立搭建集群提供专门服务均衡减少专业负载均衡设备使用,应用自行支持分布式•分布式程序设计•在单台机器上构建并测试应用程序,然后将程序划分为两个或多个程序片,加入通信协议以允许每片程序在单独的计算机上运行。•从一个程序片调用另一个程序片的过程称为远程过程调用,即RPC。•RPC是一个Client/Server模型,调用程序片(本地程序)称为rpcclient,被调用程序片(远程程序)称为rpcserverRPC(RemoteProcedureCall)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。什么是RPC?•RPC使用client/server模型。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。•RPC作为普遍的C/S开发方法,开发效率高效,可靠高。RPC的优势分布式服务架构Allinone垂直应用架构流动计算架构单一应用架构VerticalApplicationDistributedServiceElasticComputing。。。。。applicationservice1~1010~10001000~1000010000+PV(万)架构演变过程架构图前端负载+缓存(lvs+nginx)webwebwebwebwebserveruseruserproductproductorderorder消息中间件统一配置平台分布式缓存DAL(分库分表、读写分离)dbdbdbdbdbdbDbcluster统一监控平台使用RPC通信:同步/异步调用client负载均衡…….orderwebloginweborderdistributedserverLogicserverLayerBaseserverLayerRPC原理•原理•操作流程•参数传递•RPC的基本思想:允许程序调用位于其他机器上的进程(代码迁移)•客户存根(clientstub):服务器过程的代理•服务器存根(serverstub):客户过程的代理RPC原理1.客户端进程正常调用客户存根2.客户存根将参数生成消息,并调用本地操作系统,接着挂起3.本地操作系统将消息发送给服务器4.服务器(处于接收状态)的操作系统将收到的消息传给服务器存根5.服务器存根将参数提取出来,并调用服务器上的进程6.服务器执行完操作,将结果返还给服务器存根7.服务器存根将结果打包成消息,并调用服务器操作系统8.服务器操作系统将消息发给客户端9.客户端操作系统将消息传给客户端存根10.客户存根将结果去除返还给客户进程RPC的基本操作流程RPC的基本操作流程•不同的机器数据编码格式不一样,参数解码出错•指针和引用的传递•解决方法:•约定双方遵守的协议,消息结构,数据结构的表示•存根中加入接口进行转化•用复制——还原调用代替引用调用参数传递的问题RPC应用•在网络中的应用•在嵌入式系统中的应用•在三层分布系统中的应用•为何需要RPC?现今企业大多数的信息系统解决方案是在局域网上实现的,而且主要是面向部门级应用的。一方面,企业内部各组织机构开发的各种单项应用以及多途径引入的应用软件,造成普遍存在的异构信息孤岛问题,使得数据难以共享、集成。另一方面,随着Internet/Intranet技术的飞速发展,企业对数据共享和深层次的应用的要求(例如基于数据仓库的OLAP和数据采掘等决策支持应用)越来越迫切。不但需要集成分布在网络中多个数据库服务器上的数据,而且需要访问分布在网络上的电子邮件、HTML文档、电子表格以及其它非数据库数据源。要集成的不但包括本企业局域网上的数据,而且包括处于Internet环境下企业外部的相关数据。RPC在网络中的应用在这种情况下,要求建立一个分布、异构的计算环境,在此环境下实现系统的互操作。要解决分布、异构的数据访问和互操作问题,一种有效的手段是利用RPC。使用RPC使软件开发人员能够透明的调用网络另一端机器提供的服务而不用管对方机器的体系结构。RPC的原理是将一个服务的请求和执行在客户和服务器之间进行分布。客户在请求一个服务之前,要知道服务的接口名和调用参数,然后它通过网络向服务器发出RPC请求。服务器收到请求后,调用本地的服务实现之,然后将结果传回客户。RPC在网络中的应用2000年5月W3C提出的SOAP技术是一种新的对象远程过程调用(ORPC)技术,有助于实现大量异构程序和平台之间的互操作性,实现异构数据源数据的访问和集成,从而使存在的应用能够被广泛的用户所访问。SOAP是把成熟的基于HTTP的WEB技术与XML的灵活性和可扩展性组合在一起。它在一定范围内能够克服已存在技术(如CORBA和DCOM)的一些缺陷,提供一种新的进行异构数据集成的手段。RPC在网络中的应用•什么是SOAP?SOAP即简单对象访问协议,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。作为WebService三要素:SOAP、WSDL、UDDI之一,SOAP用来传递信息的格式,WSDL用来描述如何访问具体的接口,UDDI用来管理、分发、查询WebService。SOAP可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。RPC在网络中的应用•SOAP中的RPCSOAP最常用的应用是作为一个RPC协议。SOAP采用的是将已有的XML技术和HTTP技术结合起来,用XML作为其编码模式,用HTTP作为其RPC的传输协议。在一个SOAP环境,WEB服务器就是SOAP的ORB(对象请求代理),而后台服务器可以是基于任何已有的RPC技术的服务提供者,当然也可以是WEB服务器。SOAPRPC工作方式的全过程:首先从客户端开始,客户发出远程过程调用请求,这常表现为点击浏览器页面上的某个链接,当用户点击后,SOAPRequest就由客户端发出。这个SOAPRequest按照SOAP协议的要求,以XML的格式封装在一个HTTPPost请求中,并加上相关的请求头信息向服务器发送。RPC在网络中的应用然后服务器收到HTTPPost请求,由于是作为HTTP请求传输的,服务器查看HTTP请求(这里实际上是SOAP请求)的是哪个服务器上的哪个服务,处理该请求的服务器将请求中以XML形式携带的数据传递给该请求中要求调用的应用程序。在处理了请求之后,HTTP服务器发回一个HTTP响应到客户端。响应包括用一个状态代码来表示请求的结果。响应也可以包含任意的体信息,比如调用的返回值。RPC在网络中的应用•举一个SOAP请求的实例:在这里,除去SOAP元素,实际要发出的远程调用方法名是getReverse,而调用参数是Hello,World。这个SOAP请求的目的就是:调用getReverse,取得输入参数的逆序。RPC在网络中的应用•用SOAP进行RPC的好处:1.SOAP调用的数据和方法名传输是基于XML的。利用XML在信息交换上的强大能力,可使数据和数据的表现形式分离,从而实现分布的应用程序之间的透明信息交换而不需关心信息的具体编码格式。2.SOAP协议是基于文本的协议,因此它是完全与平台无关的协议,能够接受文本信息的一切系统都可以发出和接收SOAP消息,而且Server在接受了消息以后,可以任意选择使用本地的可执行程序,或是COM组件,或是一段脚本等等来处理SOAP消息。RPC在网络中的应用3.SOAP用HTTP作为RPC协议,它简单、配置广泛,且对防火墙比其它协议更容易发挥作用。像IIS和Apache这样的Web服务器就可对RPC进行处理。而且在客户和服务器被防火墙或代理服务器分隔的情况下,使用HTTP协议进行RPC比使用DCOM或CORBA这类协议容易,这是因为现有的Internet连接技术对遵循HTTP协议的信息有很好的处理技术。RPC在网络中的应用RPC应用在嵌入式系统•在嵌入式环境下,节点间的通信往往是通过显式地发送和接收消息进行的,网络的开发者需要了解网络接口及使用方式,通信过程对开发者来说不是透明的。•这样做的优点是:通信效率高,可以针对发送的数据类型和语义进行优化,资源占用少,响应速度快。但是它的缺点也很明显,增加了开发的复杂性。•为了提高节点间通信层次,隐藏通信细节,提高开发效率,提出了将RPC应用于嵌入式环境下。RPC应用在嵌入式系统•例:在采用ARM7(PhilipsLPC2210)为处理器,μC/OS-II为底层操作系统,以太网和TCP/IP协议栈为网络环境。由于在嵌入式环境下,节点间通信的数据量比较小,对实时性有一定的要求,因此设计中是以低延时作为主要目标。RPC应用在嵌入式系统•在ARM平台上用C语言描述的RPC请求报头和服务器存根注册列表:RPC应用在嵌入式系统•从测试结果可以看出,RPC相关操作对调用时间的影响极低,基本实现了低延时的设计目标。RPC在三层分布系统中的应用•越来越多的数据库应用系统使用三层分布架构,即在原有的客户机/服务器体系结构之间加人了一层或多层应用服务程序这种程序称为应用服务器。RPC在三层分布系统中的应用•该系统在技术上主要采用RPC来实现客户端与服务器的通信,而在服务器与数据库之间则采用OCI(OracleCallInterface)接口来实现通信。终端通过RPC客户端(Stub)调用应用服务器提供的远程过程终端只需将调用接口所需要的参数传递给应用服务器,而程序的运行实际上是在应用服务器上完成的。服务器处理传来的信息,通过OCI接口访问Oracle服务器,将从终端传来的数据传输给Oracle数据库,对数据库中的表进行查询、插、删、改等操作。•主要应用:处理居民身份证信息,高考成绩等数据量较大的系统。仿真:一个处理成绩的RPC应用程序•基于VC++6.0创建一个简单的客户机——服务器的分布式应用程序,实现客户应用程序在一个远程过程调用中,可以添加或查看存于服务器的学生成绩。仿真:一个处理成绩的RPC应用程序•服务器端的开发流程score.idlMIDLCompilerscore.hscore_s.cServerStubscores.cscorep.cCCompilerLinkerImportLibraryscore.exescore.acf仿真:一个处理成绩的RPC应用程序•客户端的开发流程score.idlscore.hscore_c.cClientStubscorec.cCCompilerLinkerImportLibraryMIDLCompilerscore.acfscorec.exe仿真:一个处理成绩的RPC应用程序•score.idl中接口的定义•属性配置文件score.acf仿真:一个处理成绩的RPC应用程序•添加新成员成绩函数add_member()和查询成绩函数check_score()仿真:一个处理成绩的RPC应用程序•运行结果:将附件中的两个可执行文件拷到某一目录下,打开两个命令行窗口,一个模拟表示服务器端,另一个模拟表示客户端。1.运行服务器端仿真:一个处理成绩的RPC应用程序2.运行客户端仿真:一个处理成绩的RPC应用程序3.运行客户端后服务器变为:•根据云安全联盟(CSA)的调查,大部分的受访者会存在对自己在云端的敏感数据可能会被破坏或者窃取的担心,因而并没有把敏感数据存储在云中。安全性是现阶段云计算的研究热点。•如何在保证数据安全的情况下,对数据进行

1 / 54
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功