《06410124P2P软件开发技术大学高校课程教学大纲.docx》由会员分享,可在线阅读,更多相关《06410124P2P软件开发技术大学高校课程教学大纲.docx(14页珍藏版)》请在课桌文档上搜索。
1、P2P软件开发技术(Peer-to-PeerSoftwareDevelopmentTechnology)课程编号:06310360学分:2.0学时:30(其中:讲课学时:22实验学时:0上机学时:8课程实践学时:0)先修课程:操作系统、数据结构、面向对象程序设计语言、计算机网络适用专业:计算机科学与技术教材:P2P技术揭秘一一P2P网络技术原理与典型系统开发,管磊,清华大学出版社,2011年1月第1版开课学院:计算机科学与通信工程学院一、课程性质与课程目标(一)课程性质P2P软件开发技术是计算机科学与技术专业中的一门前沿课程,它是建立在操作系统、数据结构、计算机网络、面向对象程序设计语言等课程
2、知识的基础上,为计算机科学与技术及其相关专业的学生提供接触前沿课题,提高动手实践的机会。本课程是计算机科学与技术和软件工程专业中具有前沿性质的选修课。课程展示了从P2P初步入门到应用实践的学习之路。从理论到实践,从基础到项目,循序渐进地讲解了P2P技术的基本知识体系。该课程培养了学生的抽象思维、分析问题和解决问题的能力,从而为今后从事分布式应用软件和系统的研发打下理论和实践基础。(二)课程目标1 .知识方面1.1 掌握P2P的基本概念;1.2 理解并掌握各类P2P网络拓扑构造技术;1.3 掌握P2P网络搜索技术;1.4 掌握P2P网络安全技术,包括P2P网络的认证、访问控制和病毒防御等;1.5
3、 理解并掌握P2P文件共享、P2P即使通信及P2P流媒体的开发流程。2 .能力与素质方面2.1 能够熟练使用一种程序开发工具;2.2 能够运用软件工程方法学,进行系统设计,包括概要设计和详细设计等;2.3 分别掌握P2P文件共享、P2P即使通信及P2P流媒体的实现方法;2.4 理解分布式系统与集中式系统开发的差别与联系;2.5 培养学生的逻辑思维和系统开发能力。(三)课程目标与专业毕业要求指标点的对应关系本课程支持的毕业要求指标点如下:毕业要求指标点5.1:具备对计算机领域复杂工程问题进行识别和有效分解的能力。毕业要求指标点7.2:能够对计算机领域复杂工程问题进行分析和求解,获得有效结论。要求
4、指点课程目标毕业要求指标点5.1毕业要求指标点7.2课程目标Ll课程目标1.2课程目标L3课程目标1.4课程目标1.5课程目标2.1课程目标2.2课程目标2.3课程目标2.4课程目标2.5二、课程的内容及要求第一章走进P2P世界本章支持课程目标:1.1掌握P2P的基本概念;2.4理解分布式系统与集中式系统开发的差别与联系。(一)教学内容与教学方法1. 横空出世的P2P;(讲授)2. P2P与Web的对比与较量;(讲授+自学)3. P2P的发展实例;(讲授+案例)4. P2P的研发与未来。(讲授)(二)知识、能力与素质等方面的基本要求1. 了解本课程的性质、研究对象与方法、任务;2 .理解P2P
5、的概念;3 .了解P2P网络分类和特点。(三)重点与难点1 .重点理解P2P的概念,掌握P2P网络分类和特点,了解P2P未来的发展趋势。2 .难点理解P2P的概念,P2P比Web具有的优势。第二章P2P网络拓扑结构本章支持课程目标:1.2理解并掌握各类P2P网络拓扑构造技术;2.4理解分布式系统与集中式系统开发的差别与联系;2.5培养学生的逻辑思维和系统开发能力。(一)教学内容与教学方法1 .网络拓扑技术;(讲授+案例)2 .集中式的P2P网络拓扑;(讲授+案例)3 .全分布式结构化的P2P网络拓扑;(讲授+案例+练习)4 .全分布式非结构化的P2P网络拓扑;(讲授+案例+练习)5 .混合式P
6、2P网络拓扑结构。(讲授+案例+练习)(二)知识、能力与素质等方面的基本要求1 .理解网络拓扑的概念;2 .理解集中式的P2P网络拓扑的概念、特点和原理;3 .理解分布式P2P网络拓扑的概念、特点和原理;4 .理解混合式P2P网络拓扑的概念、特点和原理。(三)重点与难点1 .重点理解网络拓扑的概念,理解集中式、分布式和混合式的P2P网络拓扑。2 .难点理解网络拓扑的概念,理解集中式、分布式和混合式三种P2P网络拓扑结构的异同。第三章P2P网络搜索技术本章支持课程目标:1.3掌握P2P网络搜索技术;2.1能够熟练使用一种程序开发工具;2.4理解分布式系统与集中式系统开发的差别与联系;2.5培养学
7、生的逻辑思维和系统开发能力。(一)教学内容与教学方法1 .P2P搜索与Web搜索的异同;(讲授+案例)2 .集中式的P2P网络搜索技术;(讲授+案例+练习)3 .结构化的P2P网络搜索方法;(讲授+案例)4 .非结构化的P2P网络搜索方法;(讲授+案例+练习)5 .混合式P2P网络搜索方法。(讲授+案例+练习)(二)知识、能力与素质等方面的基本要求1 .理解Web搜索与P2P搜索的异同;2 .了解P2P搜索技术的评价标准;3 .掌握P2P搜索技术的内容。(三)重点与难点1 .重点理解Web搜索与P2P搜索的异同;了解P2P搜索技术的评价标准;P2P搜索技术的内容2 .难点理解Web搜索与P2P
8、搜索的异同,掌握P2P搜索技术的内容。第四章P2P的关键技术及其应用本章支持课程目标:1.4掌握P2P网络安全技术,包括P2P网络的认证、访问控制和病毒防御等;1.5理解并掌握P2P文件共享、P2P即使通信及P2P流媒体的开发流程;2.5培养学生的逻辑思维和系统开发能力。(一)教学内容与教学方法1. P2P的内容存储技术;(讲授+案例)2. 内容查询技术;(讲授+案例)3. 内容传输技术;(讲授+案例)4. P2P系统的安全技术;(讲授+案例+练习)5. P2P应用所存在的问题。(讲授+案例+练习)(二)知识、能力与素质等方面的基本要求1 .理解P2P所涵盖的主要技术体系,如体系结构技术、内容
9、存储技术、内容查询技术等;2 .理解P2P技术在当前IntenIet中应用,如文件共享与下载、内容分发、分布式计算等方面;3 .了解P2P技术带来的问题,解决方案。(三)重点与难点1 .重点理解P2P所涵盖的主要技术体系;理解P2P技术在当前Internet中应用并了解P2P技术带来的问题与解决方案。2 .难点掌握P2P所涵盖的主要技术体系,了解P2P技术带来的问题与解决方案。第五章P2P流媒体技术本章支持课程目标:1.5理解并掌握P2P文件共享、P2P即使通信及P2P流媒体的开发流程;2.3分别掌握P2P文件共享、P2P即使通信及P2P流媒体的实现方法;2.4理解分布式系统与集中式系统开发的
10、差别与联系;2.5培养学生的逻辑思维和系统开发能力。(一)教学内容与教学方法1. 初识流媒体;(讲授)2. P2P与流媒体的结合;(讲授+案例+练习)3. P2P流媒体的关键技术;(讲授+案例+练习)4. P2P流媒体的应用及典型的应用系统(二)知识、能力与素质等方面的基本要求1 .理解P2P与流媒体结合的原理;2 .掌握P2P流媒体所涉及的关键技术。(三)重点与难点1 .重点理解P2P与流媒体结合的原理,掌握P2P流媒体所涉及的关键技术。2 .难点掌握P2P流媒体所涉及的关键技术。三、本课程开设的实验项目编号实验项目名称学时类型要求支撑的课程目标1基于Java的P2P开发平台搭建2验证必做1
11、.21.31.52.12.22.32基于P2P的语音实时通信系统设计与实现6综合性必做1.21.31.52.12.2232.42.5注:1.类型指验证性、综合性、设计性等。2.要求指必做、选做。实验一1 .题目基于JaVa的P2P开发平台搭建2 .目的了解ECliPSe的安装、熟悉SkyPe环境搭建、熟悉SkyPe客户端安装与注册、理解其代码,并能成功实现应用程序的测试。3 .要求SkyPe4Java开发工具包,是一个在JaVa平台上开发SkyPe相关应用的类库。通过Skype4Java中提供的接口和方法,可以实现一系列操作Skype客户端的功能。本实验内容主要包括ECIiPSe安装,SkyP
12、e环境搭建,SkyPe客户端安装与注册,以及Skype网络中应用程序之间的通信程序的编写与测试。4 .结果测试在两台主机上进行测试,SkyPe客户端开启以后,类似于腾讯QQ,俩人互相加为好友,AP2AP程序编写完毕,然后运行AP2APo在程序第一次运行的时候,Java程序会在内容与SkyPe客户端进行通信,这是SkyPe会有一个提示,是否允许此通信过程,选择允许访问。在应用程序运行之后,如果另一个客户端没有对应的启动此应用程序,那么控制台会显示如下图所示信息。ProblemsiMXOC0Console次jDeclMtionXDl09C4tAP2APuvApplication)Pr09rmFiI
13、CVvaW八&CVaVamd2015515下午10:11:14)-CONNSTATUSONLINE-CURRENTUSERHANDIEHve:ChMajiangSU2015此处应显示你的好友名称-USERSTATUSONUNEAMS2AP CONNECTABLENAMESkype4JavaPROTOCOL9999 -PROTOCOL8CREATEAPPLICATIONcom.skyp.devP2KPHOGETAPPLICATIONcom.skype.dev.AP2APS -0APPLICATIONcom.skpe.dev.AP2APMlGETAPPLICATIONcom.skvpe.echol
14、23 )1APPUCAT1。,com.处加APPAPCONNECTABLEechol23,devAP2APCONNECTechol23-ALTERAPPLICATIONcom.skype.dev.AP2APCONNECTechol23 -APPLICATIONcom.skype.dev.AP2APCONNECTINGechol23 -APPUCATIONcom.skype.dev.AP2APCONNECTINGM2GETAPPLICATIONcom.skype.fev.AP2APSTREAMS -#2APPUCATIONcom.skype.dev.AP2APSTREAMS当在另一个Skype客
15、户端启动此AP2AP的应用程序执行时,双方就开始进行通信了。交互的消息刚好就是在程序中设定的消息,如下图所示。KjPrleM.Jv,DclarattnQ)Cm1HAP2AF(JvD5rlsJv*jr*Xjv*x(2010-T18:2)*p.dv.AP3APCONNECT: -appcatxowcom.skpe.v.apapCCNMECTXHGchoi23corxficd:coat,kyp.dv.AP2AP-workp2p_vta:1 -APPLICATIONccm.kype.dv.AP2APSTREAMSworlcp2p_vm:1t2GETAPPLICATIONcom.Akype.dev.AP
16、2APSTREAMS- -2pplxcatxohce.kyp4.v.PaAPstmeamsworkpp_v:1t3ALTERAPPLICATIONcom.skypc.dev.AP2APWRITE%2p-vm1a -3alterAfflxcatxonccm.9kype.v.ap2apwxreWeXkP2p二Vm -APPLICATIONcom.kype.dev.AP2AP5EKDXHG%rorkp2p-v; -APPLlCAT工OMcom.Skype.dev.P2PSEMDNGALTERAF9LXCATXONcom.alryp.dv.P7A9WMXTCworkp2pawvm:1tb -4ALTE
17、RAPPLICATIONcom.Skype.dev.AP2APWRITEgkp2p二VnHl -APPLICATIONcom.alcyp.dv.P2AF3EXDXNOworkp2pvm:l-4-Applzcatxoncom.c*p.dv.paapSKXDXtfGtsALTERAPPLICATIONoon.9kype.d*v.AP2APWRITE%4orkp2p.vm!1OGO -sALTfRApplxcatxonUom*ypsvAP22wrxtk二 -APPLICATIONcom.kyp.dv.AP2APSENDINGworp2p-vm1-S- -APPLICATIONeoo.kyp.dv.A
18、P2P3EHDNQCALTXRAPPLICATIONc.kp*.dv.AP7APt11TKvoFkp2p_vm:1Oddd -talterApplicatzomcoo.skyp.v.ap2apwriteWOtkP2p二VnIldv.AP2XP311DXNGworkp2p-vm:X-5.实验思路和步骤(仅供参考)(1) Eclipse安装:ECIiPSe下载、安装以及配置ECIiPSe;(2) SkyPe环境搭建:新建JaVa工程、导入SkyPe4Java的源代码;(3) SkyPe客户端安装与注册;(4)测试:代码实现、结果测试;(5)测试结果验证。实验二1 .题目基于P2P的语音实时通信系统
19、设计与实现2 .目的了解应用程序与SkyPe客户端联系原理、能够熟练创建一个工具菜单、掌握SkyPe命令测试工具SkypeTrace开发、掌握用Skype4java进行应用程序开发的基本步骤、掌握SkyPe的基本业务功能开发,理解其代码实现;掌握用SkyPe4java进行应用程序开发的基本步骤。3 .要求能够实现语音呼叫功能、信息发送功能、自动应答功能、呼叫转移功能、呼叫终止功能。4 .程序输入/输出显示示例SkypeAppTest类运行示意图cazy1989 call connect回 221850003964一端应用程序运行的情况图ChenCraZy一端应用程序运行的情况5 .实验思路和流
20、程(仅供参考)(1)语音呼叫:Call()方法的核心代码如下,此代码参见SkyPe源代码包中com.skype包下的Skypejava类里的Call()方法。(源码目录:Skype_dev_eg/src/com/skype/Skype.java);(2)信息发送:在Skype类中,提供了一个ChatO方法来实现应用程序向SkyPe客户端发送聊天消息。ChatO与CaIlO方法一样,接收一个String类型的SkypelD参数,返回一个ChatO方法中主要的代码进行说明,详细的代码请参考Skype类中的Chat()方法部分。(源码目录:skype_dev_eg/src/com/skype/Sky
21、pe.java);(3)自动应答:实现SkyPe客户端的自动应答的原理很简单,就是监听来自客户端所有的消息,然后针对每一条消息都进行自动回复。所以,首先要做的就是添加一个监听器,然后在监听收到消息后,进行自动回复;(4)呼叫转移:通过一个CaIlForwarderjava类,来实现Skype的呼叫转接功能,关于CallForwarder类中主要方法说明。(源码目录:skype_dev_eg/src/com/skype/dev/CallForwarder.java)(5)呼叫终止:在SkyPe_dev_eg工程的Com.skype.dev包中新建一个类,类名为ShIltdOWnCalLjava,
22、用于终止在应用程序所在SkyPe客户端的所有呼叫,以下是关于ShuldownCalLjava类的主要方法说明。(源码目录:skype_dev_eg/src/com/skype/dev/ShutdoWnCalljava)四、学时分配及教学方法及对指标点的支撑(按序填写)学时分配主要教学方法支撑的课程目标讲课灾验上机课外第一章走进P2P世界2讲授、自学、案例1.11.21.31.52.12.2第二章P2P网络拓扑结构4讲授、自学、案例、练习1.21.31.52.12.22.3第三章P2P网络搜索技术4讲授、自学、案例、练习1.21.31.52.12.22.4第四章P2P的关键技术及其应用42讲授、
23、案例、练习、实验1.31.41.52.12.22.5第五章P2P流媒体技术86讲授、案例、练习、实验1.52.12.22.32.42.5合计228五、课程考核()考核方式考核方式或途径考核要求考核权重对指标点支持平时作业和测验按照作业和测验题目进行评分,计算作业和测验平均分10%5.1(100%)课堂和实验考勤缺勤一次扣4分(满分100分)5%实验完成实验报告15%5.1(100%)期末考试课程报告70%7.2(100%)注:1.考核方式或途径主要包括课堂表现、平时作业、阶段测试、期中考试、期末考试等。2 .考核要求包括作业次数、考试方式(开卷、闭卷)等。3 .实验考核要求包括实验操作、实验报
24、告等,实验报告要求参见附录1,实验报告评分细则参见附录2。4 .考核权重指该考核方式或途径在总成绩中所占比重。(一)本课程毕业要求达成度计算毕岐求指标点达成度n。E对应指标点在总评中所占分费1说明:课程指标点达成度为对应指标点部分的所有得分除以对应指标点在总评成绩的所占的总分数,对应指标点的得分包括试卷成绩部分、平时成绩部分、教师考核部分等,其中n为总评成绩合格的学生数。六、参考书目及学习资料1 .对等(P2P)网络安全技术,王汝传等著,科学出版社,2012.42 .P2P对等网络原理与应用,蔡康编等著,科学出版社,2011.63 .P2P流媒体系统关键技术,廖丹等著,国防工业出版社,2014
25、.8七、大纲说明1 .课程采用多媒体教学手段,配合案例的讲解及适当的思考题,保证讲课进度的同时,注意学生的掌握程度和课堂的气氛;2 .根据各章节的具体情况,课后可布置适当的书面作业或思考题,以便帮助学生理解并掌握教学内容;3 .本课程有8个学时的实验,具体实验内容任课教师亦可以根据实际教学情况适当调整。制定人:李致远审定人:杨鹤标批准人:毛启容2017年8月附录1实验报告要求实验报告中应包含以下内容:1.问题分析:描述本次实验的任务和程序的功能。2 .设计:描述设计思路,要求书写规范、完整。3 .程序结构描述:函数调用格式、参数含义、返回值描述、函数功能;函数之间的调用关系图、程序流程图等。4
26、 .实验过程记录:程序的输入、输出、出错的情况及解决办法。5 .实验总结:编程花费时间多少?多少时间在纸上设计?多少时间上机输入和调试?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?附录2实验报告书写规范1.封面页:学院、专业班级、学生学号、学生姓名、指导教师用小三号宋体。6 .正文:采用小四号宋体字,L5倍行距。7 .标题:每章标题(如实验一、实验二)三号黑体,段前、段后间距为1行,居中;“章”下空一行为“条”(如1.题目),以小四号黑体字左起打印。8 .图:报告中所有的图应编排序号,序号一律用阿拉伯数字分别依序连续编排。如图1、图2o每一图应有简短
27、确切的题名,连同图号置于图下。图的序号及题名采用五号宋体字。报告中所有的图应使用绘图工具绘制(推荐使用MiCrOSoftViSi0)。5.表:报告中所有的表应编排序号,序号一律用阿拉伯数字分别依序连续编排。如表1、表2。每一表应有简短确切的题名,连同表号置于表上。表的序号及题名采用五号宋体字。必要时,应将表中的符号、标记、代码以及需要说明事项,以最简练的文字,横排于表题下,作为表注,也可以附注于表下。表内同一栏的数字必须上下对齐。表内不能用“同上”、“同左”和类似词,一律填入具体的数字或文字。9 .报告中各章、各节内的标题及段落格式(含顶格或缩进)要一致。附录3实验评分细则项目优秀(100-9
28、0)良好(80-89)中等(70-79)及格(60-69)不及格(60以下)问题分析15%能够理解本次实验任务,功能描述完整、准确。能够理解本次实验任务,功能描述比较完整、准确。能够理解本次实验任务,功能描述准确。能够理解本次实验任务,功能描述基本正确。不能理解本次实验任务,功能描述有错误。设计20%设计思路合理;设计描述完整;书写规范。设计思路合理;设计描述比较完整;书写规范。设计思路合理;设计描述基本完整;书写规范。设计思路合理;设计描述基本完整;书写基本符合规范。设计思路不合理;设计描述不完整;书写不规范。实现(根据实验过程、实验报告打分)45%能够记录实验过程,数据准确;程序结构描述完
29、整,书写规范。能够记录实验过程,数据准确;程序结构描述比较完整,书写规范。能够记录实验过程,数据准确;程序结构描述基本完整,书写规范。能够记录实验过程,数据基本正确;程序结构描述基本完整,书写基本符合规范。不能记录实验过程;程序结构描述不完整,书写不规范。实验总结10%问题完整,回答清楚。问题完整,回答清楚。问题完整,回答清楚。问题完整,个别问题回答不清楚。问题不完整,回答不清楚。时间10%在规定的时间内完成实验任务;在规定的时间内提交报告。在规定的时间内完成实验任务;在规定的时间内提交报告。在规定的时间内完成实验任务;在规定的时间内提交报告。完成实验任务;在规定的时间内提交报告。未完成实验任务;或未提交报告。