南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务宋斌宋斌 计算机学院计算机学院 电话:电话:1381401775613814017756 邮箱:邮箱:bin_bin_分分 布布 式式 系系 统统南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务课程参考书分布式操作系统分布式操作系统 陆丽娜等译陆丽娜等译 电子工业出版社电子工业出版社分布式系统设计分布式系统设计 高传善译高传善译 机械工业出版社机械工业出版社分布计算系统分布计算系统 徐高潮等译徐高潮等译 高等教育出版社高等教育出版社WEBWEB技术导论技术导论 郝兴伟编郝兴伟编 清华大学出版社清华大学出版社WEBWEB服务实用技术教程服务实用技术教程 励志编励志编 清华大学出版社清华大学出版社WEBWEB工程理论与实践工程理论与实践 霍秋艳编霍秋艳编 清华大学出版社清华大学出版社CORBACORBA企业解决方案企业解决方案 李师贤译李师贤译 机械工业出版社机械工业出版社CORBACORBA原理及应用原理及应用 朱其亮编朱其亮编 北京邮电大学出版社北京邮电大学出版社南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务第一章第一章 概概 述述 南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务11 什么是分布式系统什么是分布式系统分分布布式式系系统统是是由由多多个个相相互互连连接接的的处处理理资资源源组组成成的的计计算算机机系系统统,这这些些资资源源可可以以合合作作执执行行一一个个共共同同的的任任务务,最最少少依依赖赖于于集中的程序、数据和硬件等资源。
集中的程序、数据和硬件等资源其具有以下特点:其具有以下特点:(1)(1)分布式系统是由多个处理机或多个计算机组成分布式系统是由多个处理机或多个计算机组成 (2)(2)这些计算机或处理机可以物理相邻,也可在地理上分散,这些计算机或处理机可以物理相邻,也可在地理上分散,用计算机网络互连用计算机网络互连3)(3)这些计算机或处理机组成一个整体,对用户是透明的这些计算机或处理机组成一个整体,对用户是透明的 (4)(4)一个程序可分散到多个计算机或处理机上运行一个程序可分散到多个计算机或处理机上运行 (5)(5)系统的表现与单一系统一样系统的表现与单一系统一样南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务分布式系统的发展简史系统名称系统名称组织机构组织机构网络要求网络要求计算机计算机研制日期研制日期CM*CM*卡内基卡内基.梅隆梅隆大学大学层次总线层次总线PDPPDP19751975Cambridge DCSCambridge DCS剑桥大学剑桥大学剑桥环剑桥环LSI-4LSI-419791979LocusLocus加州大学加州大学洛杉矶分校洛杉矶分校以太网以太网PCPC19801980V SystemV System斯坦佛大学斯坦佛大学以太网以太网SunSun19821982MachMach卡内基卡内基.梅隆梅隆大学大学以太网以太网Sun,PCSun,PC19851985CORBACORBAOMGOMG互联网互联网任何机器任何机器19901990DistributedDistributedCOMCOM微软公司微软公司互联网互联网PCPC19961996JINIJINISunSunMicrosystemsMicrosystems互联网互联网任何机器任何机器20002000南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务12 硬件观点硬件观点 1 1按体系结构分类:按体系结构分类:1)单单指指令令流流多多数数据据流流(SIMD)SIMD):它它由由一一个个指指令令部部件件取取得得指指令令,然后将指令同时发往多个数据操作部件并行操作然后将指令同时发往多个数据操作部件并行操作.典型的结构典型的结构:阵列处理机阵列处理机2)多多指指令令流流多多数数据据流流(MIMD)(MIMD):由由独独立立的的处处理理机机执执行行各各自自得得到到的指令对各自的数据进行操作。
的指令对各自的数据进行操作我我们们讨讨论论的的分分布布式式系系统统均均属属于于此此类类系系统统(MIMD)(MIMD),其其又又分分为紧耦合系统和松耦合系统为紧耦合系统和松耦合系统.其其中中:紧紧耦耦合合是是主主要要为为共共享享主主存存;松松耦耦合合相相反反主主要要通通过过通通信信和和协调协调南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务并行与分布计算机并行与分布计算机(MIMD)多计算机多计算机(分布主存分布主存)多处理机多处理机(共享主存共享主存)基于总线基于总线基于交换基于交换基于总线基于总线基于交换基于交换紧耦合紧耦合松耦合松耦合分布式计算机系统的分类分布式计算机系统的分类南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 3)3)两类分布式系统又分为基于总线的结构和基于交换的结构两类分布式系统又分为基于总线的结构和基于交换的结构总线总线:有共享的总线有共享的总线;交换交换:CPU:CPU之间有专用的数据通路之间有专用的数据通路4)具体有四种形式具体有四种形式基于总线的多处理机基于总线的多处理机:每个每个CPUCPU都与总线直接相连都与总线直接相连;存储器也是如此存储器也是如此基于交换的多处理机基于交换的多处理机:采用不同的组织方法来连接采用不同的组织方法来连接CPUCPU和存储器和存储器基于总线的多计算机基于总线的多计算机:通过局域网互连通过局域网互连基于交换的多计算机基于交换的多计算机:要保持要保持CPUCPU只与特定的局部存储器相连只与特定的局部存储器相连南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务CUPCUPCACHECACHECUPCUPCACHECACHECUPCUPCACHECACHECUPCUPCACHECACHE基于总线的多处理机基于总线的多处理机南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务M MM MM MM MC CC CC CC C交叉开关交叉开关M MM MM MM MC CC CC CC C 2222开关开关(A)(A)交叉开关交叉开关(B)Omegea(B)Omegea开关网络开关网络基于交换的多处理机基于交换的多处理机南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务局部存储器局部存储器CPUCPUCPUCPUCPUCPUCPUCPU局部存储器局部存储器局部存储器局部存储器局部存储器局部存储器工作站工作站工作站工作站工作站工作站工作站工作站网络网络由局域网和工作站组成的多计算机由局域网和工作站组成的多计算机南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务(A)(A)栅格结构栅格结构(B)(B)超立方体结构超立方体结构基于交换的多计算机基于交换的多计算机南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务13 软件观点软件观点 软件观点分两类软件观点分两类:紧耦合的软件系统紧耦合的软件系统:独立工作独立工作松耦合的软件系统松耦合的软件系统:合作完成任务合作完成任务 理论上软硬结合共有八种系统理论上软硬结合共有八种系统,但只有四种有实际意义但只有四种有实际意义,因因为为多多处处理理机机硬硬件件无无论论使使用用总总线线还还是是交交换换开开关关都都只只能能配配备紧耦合的软件系统备紧耦合的软件系统.南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务常见的软硬件的组织形式常见的软硬件的组织形式:1 1网络操作系统网络操作系统是是一一种种典典型型的的松松耦耦合合的的软软件件与与松松耦耦合合的的硬硬件件相相结结合合形形成成的的系系统统。
网网络络操操作作系系统统的的特特点点就就是是系系统统中中的的每每台台机机器器高高度自治它给用户的支持是最低级它给用户的支持是最低级.2 2分布式操作系统分布式操作系统可可提提供供进进程程间间的的通通信信机机理理;要要具具有有全全局局性性的的保保护护机机制制,进进程程管管理理;文文件件系系统统表表现现一一致致;各各机机器器间间必必需需保保持持相相同同的的操作顺序操作顺序.建立统一的视图建立统一的视图南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 3 3处理机分时系统处理机分时系统是是一一种种典典型型的的紧紧耦耦合合的的软软件件与与紧紧耦耦合合的的硬硬件件相相结结合合形形成成的的系系统统其其主主要要特特征征是是存存在在一一个个运运行行队队列列,表表示示系系统统中中的一组逻辑上无阻塞的,准备运行的进程的一组逻辑上无阻塞的,准备运行的进程它与前面两种系统的主要不同在于文件系统的组织它与前面两种系统的主要不同在于文件系统的组织进程进程A A运行运行CACHECACHECUPCUP3 3CACHECACHECACHECACHE进程进程B B运行运行进程进程C C运行运行CUPCUP1 1CUPCUP2 2 E(E(就绪就绪)D(D(就绪就绪)C(C(就绪就绪)B(B(就绪就绪)A(A(就绪就绪)运行队列运行队列(D,E)(D,E)操作系统操作系统磁盘磁盘拥有一个运行队列的多处理机系统拥有一个运行队列的多处理机系统南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务14 关键特征关键特征 注注意意:不不一一定定每每个个分分步步式式系系统统都都具具有有以以下下特特征征,它它们们只只是是评评价价系系统统大大依依据据,是是分分布布式式系系统统追追求求的的目目标标.部部件件的的分分布布是是分分布布式式系系统统的的内在特征内在特征 通常按以下五个方面讨论分布式系统的主要特征:通常按以下五个方面讨论分布式系统的主要特征:1)1)资源共享资源共享两种方法:两种方法:A)客户客户/服务器模型,服务器模型,注意注意:客户机和服务器本身并不一定需是计算客户机和服务器本身并不一定需是计算机机,可为各种处理进程可为各种处理进程B)面向对象模型面向对象模型,注意注意:将独立存在的资源作为对象处理将独立存在的资源作为对象处理.南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务2)2)开放性开放性可伸缩性可伸缩性:删除系统中的某些软件或硬件单元删除系统中的某些软件或硬件单元,系统仍可正常工作系统仍可正常工作.可移植性可移植性:软件上可用多种版本软件上可用多种版本,硬件即插即用硬件即插即用.互操作性互操作性:数据格式可互换数据格式可互换.3)3)并发性并发性并发性和并行性在分布式系统中是并发性和并行性在分布式系统中是一种内在的特征一种内在的特征。
4)4)容错性容错性 容容错错的的基基本本方方法法为为:硬硬件件冗冗余余和和软软件件恢恢复复.表表现现为为故故障障不不显显性性,分分布布式式系系统的冗余颗粒较小统的冗余颗粒较小,不必进行大系统的备份不必进行大系统的备份 注注意意:分分布布式式系系统统的的基基础础是是网网络络,但但网网络络是是没没有有冗冗余余,因因而而系系统统必必须须有有等等待故障的修复待故障的修复.南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 5)5)透明性透明性 美国国家标准协会美国国家标准协会(ANSA)(ANSA)定义了八种透明性:定义了八种透明性:访问透明性访问透明性 位置透明性位置透明性 并发透明性并发透明性 副本透明性副本透明性 故障透明性故障透明性 迁移透明性迁移透明性 性能透明性性能透明性 规模透明性规模透明性 其其中中最最重重要要的的是是访访问问透透明明和和位位置置透透明明,直直接接影影响响到到分分布布式式系系统统的的表表现现,前前述述网网络络操操作作系系统统就就没没有有支支持持这这两两种种透透明明性性电电子子邮邮件件系系统统支支持持这这两两种透明性种透明性南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务15 用户需求用户需求 1)1)功能:功能:不不仅仅要要完完成成集集中中式式系系统统的的功功能能,还还必必须须能能完完成成一一些些分分布布式式的的功功能能。
可可通通过过鉴鉴定定改改造造,革革新新和和演演变变来来实实现现从从集集中中式式系系统统到分布式系统到分布式系统2)2)可重构性:可重构性:主要有两种重构需求,一是短期调整,一是中长期改动主要有两种重构需求,一是短期调整,一是中长期改动3)3)服务质量与传统的评价不同服务质量与传统的评价不同,分布式系统从以下角度分布式系统从以下角度:性能性能 可靠性和可用性可靠性和可用性 安全性安全性 一致性一致性南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务16 分布式系统的优缺点分布式系统的优缺点 与集中式系统相比主要具有一下几方面优点与集中式系统相比主要具有一下几方面优点1)经济经济 :具有较高的性价比与大型机相比具有较高的性价比与大型机相比 2)速度速度 :较快的平均响应时间较快的平均响应时间,3)3)内在的分布式:内在的分布式:支持新型应用支持新型应用,如计算机协同工作如计算机协同工作 (CSCW)(CSCW)4)4)可扩充性:可扩充性:5)5)系统的可靠性系统的可靠性南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务与分散的工作站和个人机相比具有一下几方面优点:与分散的工作站和个人机相比具有一下几方面优点:1)资源共享:资源共享:分布式系统的目标分布式系统的目标2)通信得到加强通信得到加强 :合作方便合作方便3)可扩充能力:可扩充能力:提高运行效率提高运行效率主要具有一下几方面缺点:主要具有一下几方面缺点:1)1)分配处理和存储资源时灵活性不足分配处理和存储资源时灵活性不足,2)2)性能和可靠性依赖于网络性能和可靠性依赖于网络 3)3)安全保密性不足安全保密性不足 4)4)软件不足软件不足南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务以计算为主的问题以计算为主的问题 (分布式计算)(分布式计算):数数学学计计算算,环环境境模模拟拟,生生物物和和仿仿生生,经经济济和和财财政政模模型,气象预报,动画制作,型,气象预报,动画制作,以数据为主的问题以数据为主的问题(分布式数据):(分布式数据):数据挖掘数据挖掘,信息检索,保险分析,图像处理,信息检索,保险分析,图像处理,以通信为主的问题以通信为主的问题(网络应用):(网络应用):事务处理,电子商务,远程文件交换,电子信件,事务处理,电子商务,远程文件交换,电子信件,17分布式系统的应用分布式系统的应用 南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务第二章第二章RPC与组通信与组通信南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务分布式系统和单处理机系统的最重要的区别是分布式系统和单处理机系统的最重要的区别是进程间的通信,单处理机系统的通信可利用共享进程间的通信,单处理机系统的通信可利用共享存储器存储器当然要完成进程间通信就必须遵循规则即当然要完成进程间通信就必须遵循规则即协协议议协议的发展协议的发展:OSI模型模型、ATM模式、客户模式、客户-服服务器模型、务器模型、RPC(远程过程调用)、(远程过程调用)、WEB服务服务南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务分布模型分布模型南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务表达逻辑 表表达达逻逻辑辑是是应应用用中中直直接接面面向向用用户户的的部部分分,主主要要完完成成应应用用的的前前端端界界面面的的处处理理,如如屏屏幕幕格格式式、对对话话管管理理、窗窗口口管管理等涉及人机交互的工作理等涉及人机交互的工作。
表达功能的划分存在两种风格:表达功能的划分存在两种风格:1)分布表达:)分布表达:应用代码的表达部分在两个或多个网应用代码的表达部分在两个或多个网络节点之间被划分,由前端和后端组成络节点之间被划分,由前端和后端组成南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务2)远程表达:)远程表达:应用代码的表达部分被完整地放在一应用代码的表达部分被完整地放在一节点上,而应用的其余部分位于另一节点上时,则称此表节点上,而应用的其余部分位于另一节点上时,则称此表达为远程表达远程表达处理是各表达功能和其他应用功达为远程表达远程表达处理是各表达功能和其他应用功能之间的合作处理,通过能之间的合作处理,通过RPC(Remote Procedure Call)进行南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务21 概概 述述 尽尽管管客客户户-服服务务器器模模式式为为分分布布式式系系统统提提供供了了一一种种便便利利的的方方法法,但但它它存存在在无无法法克克服服的的缺缺陷陷:其其所所有有的的通通信信是是建建立立的的基基础都是输入础都是输入/输出,输出,以它为基础构建分布式会产生应用问题。
以它为基础构建分布式会产生应用问题RPC RPC(Remote Procedure Call)是是一一种种分分布布式式系系统统的的构构造造技技术术,RPCRPC操操作作一一般般在在本本地地进进程程进进行行过过程程调调用用,而而在在异异地地计计算算机机上上执执行行调调用用采采用用RPCRPC技技术术简简化化了了分分布布式式程程序序的的设设计计,设设计计者者可可不不必必考考虑虑程程序序间间的的通通信信问问题题,只只须须考考虑虑程程序序单单元元间间的同步和出错等问题的同步和出错等问题南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务22 RPC的设计问题的设计问题 RPCRPC的基本原理为:的基本原理为:让让本本地地计计算算机机中中的的某某个个过过程程调调用用远远地地计计算算机机的的另另外外一一个个过程过程.其执行过程是:其执行过程是:本本地地过过程程通通过过消消息息传传递递机机制制将将过过程程调调用用请请求求消消息息传传送送到到远远程程的的一一个个进进程程,该该过过程程收收到到此此调调用用消消息息,执执行行被被调调用用过过程,然后通过程,然后通过应答消息返回应答消息返回执行结果给调用过程。
执行结果给调用过程与与传传统统的的过过程程调调用用不不同同的的是是参参数数调调用用;原原因因是是两两台台机机器器的操作系统管理自己不同的地址空间的操作系统管理自己不同的地址空间.见图示见图示南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 客户程序客户程序客户存根客户存根 局部调用绑定请求接收绑定参数集结发送消息接收消息结果还原 返回结果服务器存根服务器存根服务器过程服务器过程 执行过程 返回结果 接收消息 参数还原 局部调用 结果集结 发送结果绑定服务器绑定服务器 接收消息 注册/查询 返回结果(1)(0)(2)(5)(3)(4)(7)(6)(8)RPC远程过程调用远程过程调用南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务计算机计算机A客户机进程度客户机进程度调用过程调用过程(挂起挂起)唤醒唤醒计算机计算机B服务器进程度服务器进程度被调用过程被调用过程(执行执行)返回返回请求消息请求消息应答消息应答消息远程过程调用远程过程调用RPC南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务1)1)RPCRPC的参数传递的参数传递输入参数被放在请求消息中,输出参数置于应答消息中。
输入参数被放在请求消息中,输出参数置于应答消息中2)2)参数与结果的装配参数与结果的装配3)3)动态联接动态联接动态联接的三方面的工作动态联接的三方面的工作:服务器定位服务器定位:客户机须指明执行远程过程所在的服务器客户机须指明执行远程过程所在的服务器 类型一致性检查类型一致性检查:通过使用通用通过使用通用RPCRPC界面解决界面解决 保证版本的一致性保证版本的一致性:因客户机程序和服务器程序是分别因客户机程序和服务器程序是分别编译的编译的处理处理的办法是使用联接器联接器是一个程序的办法是使用联接器联接器是一个程序南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 4)RPC 4)RPC调用的语义调用的语义可能导致可能导致RPCRPC的失败:的失败:服务器找不到服务器找不到 请求消息丢失请求消息丢失应答消息丢失应答消息丢失 服务器崩溃并重新启动服务器崩溃并重新启动 客户机崩溃并重新启动客户机崩溃并重新启动 RPCRPC的目的就是隐藏机器之间的通信的目的就是隐藏机器之间的通信注意注意:至少一次调用语义至少一次调用语义;最多一次调用语义最多一次调用语义追求的目的追求的目的:恰好一次调用语义恰好一次调用语义 南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 5 5)RPCRPC的透明性的透明性 RPCRPC虽虽与与本本地地过过程程调调用用相相似似,但但RPCRPC比比本本地地过过程程调调用用更更易出错。
因此需要透明性易出错因此需要透明性 6)6)异常处理异常处理 其其异异常常处处理理与与传传统统操操作作系系统统中中的的异异常常处处理理是是一一致致的的具有异常处理机制,包括异常产生、异常处理具有异常处理机制,包括异常产生、异常处理南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务2 23 RPC3 RPC界面界面 一一个个RPCRPC界界面面是是客客户户机机可可见见的的由由服服务务器器提提供供过过程程的的特特征征,包包括括过过程程名名及及参参数数类类型型,参参数数需需注注明明输输入入输输出出以以便便使使RPCRPC软软件件将将参参数数装装配配形形成成消消息息既既其其主主要要作作用用就就是是作作为为stubstub生生成成器器(也叫界面编译器也叫界面编译器)的输入1 1RPCRPC界面设计的基本原理界面设计的基本原理 RPCRPC界界面面定定义义的的基基本本原原理理就就是是数数据据抽抽象象在在分分布布式式系系统统的的设设计计过过程程中中,RPCRPC界界面面是是客客户户机机程程序序和和服服务务器器程程序序分分别别编编译译和和连连接接的的基基础础具具体体来来说说:RPCRPC系系统统将将一一个个界界面面语语言言提提供供给给用户(程序员),用户用界面语言来定义服务界面。
用户(程序员),用户用界面语言来定义服务界面南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务提提供供界界面面语语言言,就就需需提提供供语语言言的的编编译译器器,主主要要是是参参数数装配,界面编译器又叫装配,界面编译器又叫STUBSTUB生成器2 2界面定义的处理界面定义的处理 1)1)装配装配 分客户机和服务器两部分,分客户机和服务器两部分,即请求消息和应答消息即请求消息和应答消息 2)2)分发分发 赋于唯一的过程标识符赋于唯一的过程标识符 3)3)输入和输出参数输入和输出参数 服务器程序,界面名是输出型的,客服务器程序,界面名是输出型的,客户机程序,界面名是输入型的户机程序,界面名是输入型的南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 3 3界面编译界面编译(STUBSTUB生成器生成器)stubstub过过程程用用于于将将RPCRPC集集成成到到用用户户的的过过程程中中,其其在在客客户户机机和和服服务务器器程程序序中中处处理理界界面面时时说说明明用用户户程程序序通通过过调调用用stubstub过过程来完成对远程过程的调用。
程来完成对远程过程的调用注注意意:客客户户机机STUBSTUB过过程程的的任任务务是是装装配配参参数数并并打打包包于于请请求求消消息息中中,服服务务器器STUBSTUB过过程程通通过过分分析析请请求求消消息息获获取取输输入入参参数数.南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务24 RPC实现实现 1.1.RPCRPC协议协议选择面向连接协议选择面向连接协议,目的是使通信更容易目的是使通信更容易;用标准的还是专用的用标准的还是专用的目前有两种方案目前有两种方案:A A 使用使用IPIP协议协议 原因原因:1)IP 1)IP协议协议已存在已存在.2)2)已在许多系统中使用已在许多系统中使用.3)3)UNIXUNIX系统支持系统支持.4)4)目前的网络支持目前的网络支持 南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 B B 特定的特定的RPCRPC协议协议 报文和消息的长度报文和消息的长度,尽量的使用大数据量尽量的使用大数据量 2 2RPCRPC的关键路径的关键路径 每每个个RPCRPC执执行行的的指指令令序序列列称称为为关关键键路路径径,其其一一般般是是:客客户户机机stubstub,客客户户机机stubstub自自陷陷进进内内核核,内内核核发发送送消消息息;服服务务器器被被中中断断,内内核核将将消消息息交交服服务务器器stubstub,服服务务器器stubstub将将消消息息交交给给被被调调用用进进程程,然然后后被被调调用用的的服服务务器器进进程程执执行行调调用用并并将将按按相反的路径发送应答消息。
相反的路径发送应答消息注意注意:两个两个RPCRPC操作在时间花费上的不同操作在时间花费上的不同南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务调用调用STUBSTUB过程过程客户客户准备消息缓冲区准备消息缓冲区将调用参数装配到缓冲区将调用参数装配到缓冲区填写消息头填写消息头自陷到内核自陷到内核切换到内核现场切换到内核现场拷贝消息到内核拷贝消息到内核确定目标地址确定目标地址填写消息地址域填写消息地址域建立网络接口建立网络接口启动定时器启动定时器客户机客户机STUBSTUB内核内核服务处理服务处理服务服务调用服务进程调用服务进程在堆栈中建立参数在堆栈中建立参数拆卸参数拆卸参数切换到切换到服务器服务器STUBSTUB现场现场拷贝消息到拷贝消息到服务器服务器STUBSTUB查看查看STUBSTUB是否在等待是否在等待确定交给哪一个确定交给哪一个STUBSTUB检查报文的合法性检查报文的合法性中断处理中断处理服务器服务器STUBSTUB内核内核客户机到服务器的关键路径客户机到服务器的关键路径南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 在密码学中凯撒密码作为一种最为古老的对称加密体制,在密码学中凯撒密码作为一种最为古老的对称加密体制,它是一种代换密码。
据说恺撒是率先使用加密函的古代将领它是一种代换密码据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码最简单且最广为之一,因此这种加密方法被称为恺撒密码最简单且最广为人知的加密技术人知的加密技术基本思想是:基本思想是:通过把字母移动一定的位数来实现加密和通过把字母移动一定的位数来实现加密和解密例如,如果密匙是把明文字母的位数向后移动三位,解密例如,如果密匙是把明文字母的位数向后移动三位,那么明文字母那么明文字母B就变成了密文的就变成了密文的E,依次类推,依次类推,X将变成将变成A,Y变成变成B,Z变成变成C,由此可见,位数就是凯撒密码加密和解密,由此可见,位数就是凯撒密码加密和解密的密钥RPC实例:实例:SUNRPC 南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务/*/*凯撒服务接口凯撒服务接口(XDR)(XDR)定义,文件名:定义,文件名:caesar.x*/caesar.x*/const MAX=100;const MAX=100;typedef struct/*typedef struct/*返回值类型返回值类型*/int len;int len;char codeMAX;char codeMAX;Data;Data;typedef struct/*typedef struct/*参数类型参数类型*/int key;int key;char cipherMAX;char cipherMAX;Args;Args;program CAESAR/*program CAESAR/*凯撒程序凯撒程序*/version VERSION version VERSION Data DECRYPT(Args)=1;/*Data DECRYPT(Args)=1;/*解密过程解密过程*/Data ENCRYPT(Args)=2;/*Data ENCRYPT(Args)=2;/*加密过程加密过程*/=5;=5;=8888;=8888;南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务启动 XDR 编译程序 rpcgen,产生下述文件:q客户存根子程序 q服务器主程序及服务器存根子程序 q客户/服务器所需的参数集结和参数还原过程 q程序头文件,caesar.hcaesar.h。
该文件包含程序的常数、类型、以及远程过程所匹配的C函数原型(function prototype)客户及服务器程序:客户及服务器程序:南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务/*/*客户程序,文件名:客户程序,文件名:client.c*/client.c*/#include#include#include“caesar.h”#include“caesar.h”main()main()CLIENT*cp;CLIENT*cp;char*serverName=“Caesar_server”;char*serverName=“Caesar_server”;Args arg;Args arg;Data*plaintext;Data*plaintext;/*/*创建客户指针创建客户指针*/cp=clnt_create(serverName,CRESAR,VERSION,“udp”);cp=clnt_create(serverName,CRESAR,VERSION,“udp”);if(cp=NULL)exit(1);if(cp=NULL)exit(1);arg.key=1;/*arg.key=1;/*构造调用参数构造调用参数*/arg.cipher=“Buubdl!bu!ebxo”;arg.cipher=“Buubdl!bu!ebxo”;plaintext=decrypt_2(&arg,cp);/*plaintext=decrypt_2(&arg,cp);/*远程过程调用远程过程调用*/*/*其它处理其它处理*/clnt_destroy(cp);/*clnt_destroy(cp);/*删除客户指针删除客户指针*/南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务/*/*服务器程序,文件名:服务器程序,文件名:server.c*/server.c*/#include#include#include“ceasar.h”#include“ceasar.h”Data*decrypt_2(Args*a)/*Data*decrypt_2(Args*a)/*解密函数解密函数*/static Data output;/*static Data output;/*必须静态变量必须静态变量*/char s=a-cipher;/*char s=a-cipher;/*密码指针密码指针*/int i=0;int i=0;while(*s)output.codei=*s-key;i+;s+;while(*s)output.codei=*s-key;i+;s+;output.len=i;output.len=i;return&output;/*return&output;/*返回结果返回结果*/Data*encrypt_2(args*a)/*Data*encrypt_2(args*a)/*加密函数加密函数*/*/*省略省略*/南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务服务器存根程序头文件客户存根服务器过程接口定义客户主程序RPC运行库程序服务器程序客户程序IDL编译器C编译器SUN RPC SUN RPC 流程流程:南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务25 组组 通通 信信组组通通信信:在在这这种种机机制制下下一一个个消消息息可可以以一一次次被被送送到到多多个个接接收者。
收者而而RPCRPC只只涉及客户机与服务器点到点涉及客户机与服务器点到点1.1.引言引言组组是是多多个个进进程程的的集集合合,这这些些进进程程可可共共同同工工作作或或以以专专门门设设计计的的方方式式工工作作主主要要介介绍绍操操作作系系统统(进进程程)组组组组通通信信的的实实现现主要依赖硬件主要依赖硬件例如例如:多路广播多路广播,全广播全广播,单一地址投递单一地址投递南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 2 2设计要点设计要点 封闭组与开放组封闭组与开放组 封闭组封闭组:只有组内成员才能发送消息到本组只有组内成员才能发送消息到本组;开放组开放组:无此限制无此限制.封闭组用于并行处理封闭组用于并行处理,或用来支持下多重服务器或用来支持下多重服务器 封闭组封闭组不是组成不是组成员的进程员的进程开放组开放组不是组成不是组成员的进程员的进程可以访问可以访问不可以访问不可以访问南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 对等组与层次组对等组与层次组 对对等等组组内内的的进进程程是是对对称称的的,不不存存在在单单点点失失效效的的问问题题。
某某个个进进程程失失败败,只只是是组组规规模模变变小小,组组仍仍可可工工作作,但但决决策策过过程程复杂复杂;层次组正好相反层次组正好相反对等组对等组协调员协调员生产者生产者层次组层次组南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务组的成员组的成员 A A 管理的方法是使用组服务器管理的方法是使用组服务器 B B 分布式机制管理分布式机制管理 组寻址组寻址 方法方法:A A 给每个组一个唯一地址给每个组一个唯一地址;B B 发送者保持一份所有目的站点地址清单发送者保持一份所有目的站点地址清单 发送和接收原语发送和接收原语 理理想想的的方方法法是是点点到到点点通通信信和和组组通通信信合合并并具具有有单单一一的的原原语语集合南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务原子性原子性 组组通通信信的的一一个个特特征征是是全全要要或或不不要要(A11(A11ororNothing)Nothing),这这种种A11-or-NothingA11-or-Nothing投递特性叫原子性或称原子广播投递特性叫原子性或称原子广播消息排序消息排序 它它是是组组通通信信的的第第二二个个特特性性,采采用用全全局局时时间间排排序序保保证证传传递递的的正正确确性性.即即按按被被传传送送的的顺顺序序投投递递到到目目的的地地。
绝绝对对的的时时间间顺顺序序并并不不容容易实现易实现.时间时间0 0到到 1 1到到 3 3到到 4 4到到 0 0到到 1 1到到 3 34 4进程进程0 0和和4 4发送的六个发送的六个消息在时间上的交叉消息在时间上的交叉南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 组的重叠组的重叠 问题的解决相对困难需要组间协调,故一般避免组重叠问题的解决相对困难需要组间协调,故一般避免组重叠伸缩性伸缩性 组的规模的改变时算法的工作情况组的规模的改变时算法的工作情况 注意注意:报文风暴报文风暴G1G1G3G3G2G2G4G4LAN1LAN1LAN3LAN3LAN4LAN4LAN2LAN2多路广播多路广播报文风暴图示报文风暴图示南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务 3 3实例:实例:ISISISIS(组合软件调用系统组合软件调用系统)中的组通信)中的组通信 ISISISIS本本身身并并不不是是一一个个完完整整的的操操作作系系统统,而而是是一一组组能能在在UNIXUNIX或其它操作系统之上运行的一个或其它操作系统之上运行的一个程序集合程序集合。
其关键思想是同步其关键思想是同步,采用不同形式的原子广播实现采用不同形式的原子广播实现 最先用于华尔街的股票交易系统最先用于华尔街的股票交易系统4 4ISISISIS中的通信原语中的通信原语 (略略)南京理工大学计算机学院南京理工大学计算机学院分布式系统与分布式系统与WEB服务服务9、静夜四无邻,荒居旧业贫9月-239月-23Thursday,September 14,202310、雨中黄叶树,灯下白头人02:05:5602:05:5602:059/14/2023 2:05:56 AM11、以我独沈久,愧君相见频9月-2302:05:5602:05Sep-2314-Sep-2312、故人江海别,几度隔山川02:05:5602:05:5602:05Thursday,September 14,202313、乍见翻疑梦,相悲各问年9月-239月-2302:05:5602:05:56September 14,202314、他乡生白发,旧国见青山14 九月 20232:05:56 上午02:05:569月-2315、比不了得就不比,得不到的就不要九月 232:05 上午9月-2302:05September 14,202316、行动出成果,工作出财富。
2023/9/14 2:05:5602:05:5614 September 202317、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前2:05:56 上午2:05 上午02:05:569月-239、没有失败,只有暂时停止成功!9月-239月-23Thursday,September 14,202310、很多事情努力了未必有结果,但是不努力却什么改变也没有02:05:5602:05:5602:059/14/2023 2:05:56 AM11、成功就是日复一日那一点点小小努力的积累9月-2302:05:5602:05Sep-2314-Sep-2312、世间成事,不求其绝对圆满,留一份不足,可得无限完美02:05:5602:05:5602:05Thursday,September 14,202313、不知香积寺,数里入云峰9月-239月-2302:05:5602:05:56September 14,202314、意志坚强的人能把世界放在手中像泥块一样任意揉捏14 九月 20232:05:56 上午02:05:569月-2315、楚塞三湘接,荆门九派通九月 232:05 上午9月-2302:05September 14,202316、少年十五二十时,步行夺得胡马骑。
2023/9/14 2:05:5602:05:5614 September 202317、空山新雨后,天气晚来秋2:05:56 上午2:05 上午02:05:569月-239、杨柳散和风,青山澹吾虑9月-239月-23Thursday,September 14,202310、阅读一切好书如同和过去最杰出的人谈话02:05:5602:05:5602:059/14/2023 2:05:56 AM11、越是没有本领的就越加自命不凡9月-2302:05:5602:05Sep-2314-Sep-2312、越是无能的人,越喜欢挑剔别人的错儿02:05:5602:05:5602:05Thursday,September 14,202313、知人者智,自知者明胜人者有力,自胜者强9月-239月-2302:05:5602:05:56September 14,202314、意志坚强的人能把世界放在手中像泥块一样任意揉捏14 九月 20232:05:56 上午02:05:569月-2315、最具挑战性的挑战莫过于提升自我九月 232:05 上午9月-2302:05September 14,202316、业余生活要有意义,不要越轨。
2023/9/14 2:05:5602:05:5614 September 202317、一个人即使已登上顶峰,也仍要自强不息2:05:56 上午2:05 上午02:05:569月-23MOMODA POWERPOINTLorem ipsum dolor sit amet,consectetur adipiscing elit.Fusce id urna blandit,eleifend nulla ac,fringilla purus.Nulla iaculis tempor felis ut cursus.感感 谢谢 您您 的的 下下 载载 观观 看看专家告诉。