您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 分布式系统实验指导书
《分布式系统》实验指导书余腊生信息科学与工程学院2017年11月目录(选做2-4题)实验一数据包socket应用.......................................................................................1实验二流式socket应用.......................................................................................4实验三客户/服务器应用开发..................................................................................6实验四RMIAPI.........................................................................................................8实验五Internet应用...............................................................................................10实验六实现一个基本的Web服务器程序..........................................................12实验六:实现一个简单的Web应用程序(2)..........................................................14实验七(1)安装Xen熟悉常用命令.........................................................................20实验七(2)基于Xen虚拟机实现tomcatcluster.....................23实验八GFS的安装与配置24实验九XAMPP的安装与使用.........................................27实验十虚拟机的使用与Linux系统的安装............................30实验十一Hadoop的安装与部署...............................................................................32开放式实验课题341实验一数据包socket应用实验目的1.理解数据包socket的应用2.实现数据包socket通信3.了解Java并行编程的基本方法预习与实验要求1.预习实验指导书及教材的有关内容,了解数据包socket的通信原理;2.熟悉一种javaIDE和程序开发过程;3.了解下列JavaAPI:Thread、Runnable;4.尽可能独立思考并完成实验。实验环境a)独立计算机或计算机网络;b)Windows操作系统。c)Jdk工具包d)JCreatororothers实验原理1.分布式计算的核心是进程通信。操作系统、网卡驱动程序等应用从不同抽象层面提供了对进程通信的支持,例如Winsock、java.net.*。SocketAPI是一种作为IPC提供对系统低层抽象的机制。尽管应用人员很少需要在该层编写代码,但理解socketAPI非常重要,因为:1,高层设施是构建于socketAPI之上的,即他们是利用socketAPI提供的操作来实现;2,对于以响应时间要求较高或运行于有限资源平台上的应用来说,socketAPI可能是最适合的。在Internet网络协议体系结构中,传输层上有UDP和TCP两种主要协议,UDP允许在传送层使用无连接通信传送,被传输报文称为数据包。(是否存在面向连接的数据包socket?)因此数据包socket是基于UDP的不可靠IPC。Java为数据包socketAPI提供两个类:(1)针对socket的datagramSocket类(2)针对数据包交换的datagramPacket类希望使用该API发送和接收数据的进程须实例化一个datagramSocket对象,每个socekt被绑定到该进程所在及其的某个UDP端口上。为了向其他进程发送数据包,进程必须创建2一个代表数据包本身的对象。该对象通过实例化一个datagramsocket对象创建。在接收者进程中,datagramPacket对象也必须被实例化并绑定到一个本地端口上,该端口必须与发送者数据包的定义一致。接收进程创建一个指向字节数组的DatagramPacket,并调用datagramSocket对象的receive方法,将DatagramPacket对象指针作为参数定义。2.并行编程(以Java为例1)一个线程是比进程更小的执行粒度。Java虚拟机允许应用程序有多个执行线程同时运行。有两种方法来创建一个新线程的执行。一个是声明一个类是一个线程的子类。这个子类应重写Thread类的run方法。一个子类的实例可以被分配和启动。另一种方法创建一个线程,并同时声明一个类实现了Runnable接口(这个类要实现run方法)。一个类的实例可以被分配并作为参数传递给创建的线程,并启动线程。例如:创建一个类是Thread的子类:classSomeThreadextendsThread{SomeThread(){}publicvoidrun(){...}}SomeThreadp=newSomeThread();p.start();创建一个实现Runnable接口的类并传递给线程:classSomeRunimplementsRunnable{SomeRun(){}publicvoidrun(){...}}SomeRunp=newSomeRun(143);newThread(p).start();当一个实现Runnable接口的类被执行时,可以没有子类。实例化一个Thread实例,并通过自身作为目标线程。在大多数情况下,如果你只打算重写的run()方法,并没有其它1java.sun.com3的线程方法,应使用Runnable接口。因为类不应该被继承,除非程序员有意修改或增强类的基本行为。实验内容1.构建客户端程序(1)构建datagramSocket对象实例(2)构建DatagramPacket对象实例,并包含接收者主机地址、接收端口号等信息(3)调用datagramSocket对象实例的send方法,将DatagramPacket对象实例作为参数发送。2.构建服务器端程序(1)构建datagramSocket对象实例,指定接收的端口号。(2)构建DatagramPacket对象实例,用于重组接收到的消息。(3)调用datagramSocket对象实例大家receive方法,进行消息接收,并将DatagramPacket对象实例作为参数。实验报告1.客户端和服务器端程序的伪代码;2.试验过程中的问题和解决途径;3.写实验报告。思考题1.如何避免数据包丢失而造成的无限等待问题?2.如何实现全双工的数据包通信?4connectionsocketdatasocket实验二流式socket应用实验目的1.理解流式socket的原理2.实现流式socket通信预习与实验要求3.预习实验指导书及教材的有关内容,了解流式socket的通信原理;4.熟悉java环境和程序开发过程;5.尽可能独立思考并完成实验。实验环境a)独立计算机;b)Windows操作系统;c)Jdk工具包实验原理SocketAPI是一种作为IPC提供低层抽象的机制。尽管应用人员很少需要在该层编写代码,但理解socketAPI非常重要,因为:1,高层设施是构建于socketAPI之上的,即他们是利用socketAPI提供的操作来实现;2,对于以响应时间要求较高或运行于有限资源平台上的应用来说,socketAPI可能是最适合的。在Internet网络协议体系结构中,传输层上有UDP和TCP两种主要协议,UDP允许使用无连接通信传送,被传输报文称为数据包。而TCP则允许面向连接的可靠通信,这种IPC称为流式socket。Java为流式socketAPI提供两类socket(1)式用于连接的连接socket(2)式用于数据交换的数据socket。Aserverusestwosockets:oneforacceptingconnections,anotherforsend/receiveclient1serverclient2connectionoperationsend/receiveoperaton实验内容51.构建客户端程序和服务器端程序都需要的MystreamSocket类,定义继承自javaSocket的sendMessage和receiveMessage方法2.构建客户端程序(1)创建一个MyStreamsocket的实例对象,并将其指定接收服务器和端口号(2)调用该socket的receiveMessage方法读取从服务器端获得的消息3.构建服务器端程序(1)构建连接socket实例,并与指定的端口号绑定,该连接socket随时侦听客户端的连接请求(2)创建一个MyStreamsocket的实例对象(3)调用MyStreamsocket的实例对象的sendMessage方法,进行消息反馈。实验报告1.应用程序的结构图,说明程序之间的关系;2.程序的伪代码。思考题1.如何实现全双工的流式socket通信?2.如何实现安全socketAPI?3.如何实现1对多的并发?6实验三客户/服务器应用开发实验目的1.验证daytime和echo程序,2.实现包socket支撑的C/S模式IPC机制3.实现流式socket支撑的C/S模式IPC机制预习与实验要求1.预习实验指导书及教材的有关内容,了解daytime和echo要提供的具体服务内容;2.复习包socket和流式socket的实现原理;3.实验前认真听讲,服从安排。尽可能独立思考并完成实验。实验环境a)独立计算机;b)Windows操作系统。c)Jdk工具包实验原理C/S模式是主要的分布式应用范型,其设计的目的是提供网络服务。网络服务指如daytime、telnet、ftp和之类的允许网络用户共享资源的服务。要构建C/S范型的应用就必须解决以下一些关键问题:(1)如何通过会话实现多个用户的并发问题(2)如何定义客户和服务器在服务会话期间必须遵守的协议(3)服务定位问题(4)进程间通信和事件同步问题:语法、语义和响应(5)数据表示问题在解决了这些问题的基础上,C/S范型必须遵从3层结构的软件体系结构:(1)表示层,提供与客户端进行交互的界面(2)应用逻辑层,定义服务器和客户端要处理的主要事务的业务逻辑(3)服务层,定义应用逻辑层所需要的底层支持技术,例如定义其IPC机制里的receive方法和send方法等。实验内容71.构建用数据包socket实现的daytime客户端程序(1)构建表示层程序DaytimeClient1.java(2)构建应用逻辑层程序DaytimeHelper1.java(3)构建服务层程序MyClientDatagramSocket.java2.构建用数据包socket实现的daytime服务器端程序(1)构建表示层和应用逻辑层程序DaytimeServer1.java(2)构建服务层程序MyServerDatagramSocket.java(3)构建服务层程序MyServerDatagramSocket.java所需要的下层程序DatagramMessage.java(它封装了客户端的消息和地址)3.构建用流式socket实现的daytime应用程序包4.构建用数据包socket实现的echo应用程序包5.构建用流式socket实现的echo应用程序包实验报告1.用数据
本文标题:分布式系统实验指导书
链接地址:https://www.777doc.com/doc-4512248 .html