,论文题目:(下附署名)要求准确,简练,醒目,新颖.
2,目录
目录是论文中主要段落的简表.(短篇论文不必列目录)
3,摘要
是文章主要内容的摘录,要求短,精,完整.字数少可几十字,多不超过三百字为宜.
4,关键词或主题词
关键词是从论文的题名,提要和正文中选取出来的,是对表述论文的中心内容有实质意义的词汇.关键词是用作计算机系统标引论文内容特征的词语,便于信息系统汇集,以供读者检索. 每篇论文一般选取3-8个词汇作为关键词,另起一行,排在"提要"的左下方.
主题词是经过规范化的词,在确定主题词时,要对论文进行主题分析,依照标引和组配规则转换成主题词表中的规范词语.(参见《汉语主题词表》和《世界汉语主题词表》).
学位论文的标准格式二
5,论文正文
(1)引言:引言又称前言,序言和导言,用在论文的开头. 引言一般要概括地写出作者意图,说明选题的目的和意义, 并指出论文写作的范围.引言要短小精悍,紧扣主题.
(2)论文正文:正文是论文的主体,正文应包括论点,论据, 论证过程和结论.主体部分包括以下内容:
a.提出问题-论点;
b.分析问题-论据和论证;
c.解决问题-论证方法与步骤;
d.结论.
6,参考文献
一篇论文的参考文献是将论文在研究和写作中可参考或引证的主要文献资料,列于论文的末尾.参考文献应另起一页,标注方式按《GB7714-87文后参考文献著录规则》进行.
中文:标题--作者--出版物信息(版地,版者,版期)
英文:作者--标题--出版物信息
所列参考文献的要求是:
(1)所列参考文献应是正式出版物,以便读者考证.
(2)所列举的参考文献要标明序号,著作或文章的标题,作者,出版物信息.
如何选题
获取最佳论文选题的途径
1,选择你有浓厚兴趣,而且在某方面较有专长的课题.
2,在不了解和了解不详的领域中寻找课题.
3,要善于独辟蹊径,选择富有新意的课题.
4,选择能够找得到足够参考资料的课题.
5,征询导师和专家的意见.
6,善于利用图书馆; 图书馆的自动化,网络化为读者选题提供了便利条件.
学位论文
学位论文是研究生从事科研工作取得的创造性成果或新的见解,作为申请授予相应学位时评审用的学术论文.
学位论文应是一篇(或一组)系统完整的论文,可以得到指导和帮助或在他人基础上继续研究完成,但应注明,不能照抄他人成果.论文学术观点应明确,逻辑严谨,文字通顺.
上海交大本科:工程设计类的毕业设计(论文)书写字数,正文的字数不得少于1.5万字;研究类论文的毕业设计(论文)字数不得少于2万.硕士论文一般为30000字以上,博士论文为50000字以上
学士论文
学士论文是合格的本科毕业生撰写的论文.毕业论文应反映出作者能够准确地掌握大学阶段所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面或一个难点,选择题目还应避免过小,过旧和过长.
硕士论文
硕士学位论文要注意在基础学科或应用学科中选择有价值的课题,对所研究的课题有新的见解,并能表明作者的本门学科上掌握了坚实的基础理论和系统的专门知识,具有从事科学工作或独立担负专门技术工作的能力.
硕士学位论文工作在完成培养计划所规定的课程学习后开始,一般应包括文献阅读,开题报告,拟定工作计划,科研调查,实验研究,理论分析和文字总结等工作环节.硕士学位论文必须有一定的工作量.在论文题目确定后,用于论文工作的时间一般2年.
博士论文
博士学位论文要选择在属于学科前沿的课题或对国家经济建设和社会发展有重要意义的课题,要突出论文在科学和专门技术上的创新性和先进性,并能表明作者在本门学科上掌握了坚实宽广的基础理论和系统深入的专门知识,具有独立从事科学研究工作的能力.
学位论文工作是培养博士学位研究生的最重要的环节,其工作时间不应少于两年.博士研究生入学后,要在导师指导下确定科研方向,收集资料,阅读文献,进行调研,选择研究课题.一般在第二学期通过开题报告并制定论文工作计划,根据计划分阶段报告论文进展情况.
学位论文题目
论文题目名可适当长一点,好题目能看到2点
P2P网络文件高速下载技术的研究与实现
对等网络拓扑可视化技术研究与实现
对等网络多关键字检索技术研究与实现
P2P网络中安全即时通信技术的研究与实现
研究切入点
核心工作
+
学位论文题目
论文题目应具有先进性和鲜明性,既不能太宽,(博士)也不能太小
P2P计算(wrong!)
P2P系统设计(wrong!)
学位论文摘要
论文摘要应概括地反映出原论文的主要内容,主要说明本论文的研究目的,内容,方法,成果和结论.要突出本论文的创造性成果或新见解,不要与引言相混淆.
摘要语言力求精练准确,上海交大本科学位论文摘要(中,英对照)字数严格控制在(300-500字数).�(一般学校规定硕士论文摘要约1000字,博士论文约3000字)英文摘要内容要与中文摘要内容一致.
绪论(综述)
一, 概述
作者研究此项工作目的,范围
国内外进展情况,前人成果
本人设想,研究方法概述
论文安排
二,基本理论
介绍现有的基本理论
正文
正文为学位论文的核心部分,包括
论文观点的理论分析(基本理论可放在综述部分)
(仿真分析)
系统实验方案及实验结果
本人的论点及讨论等
附有各种有关的图表,照片,公式等.
要求理论正确,公式推导和计算结果无误,实验数据真实可靠.文中若有与指导教师或他人共同研究的成果或引用他人的结论,必须注明,并与参考文献一致.
结论
是对正文的最终结论,应准确,完整,精炼.包括三部分
本论文主要研究内容和结论,意义,地位
本论文主要创新点(博士论文必须有)
存在的问题,不足或进一步工作的设想
结论部分是全文高度概括和总结,也是评委重点审查之处,内容文字语句均须反复推敲,认真写好.
学位论文的创新
博士论文必须有创新点,硕士论文也应有新见解和新的进展;
创新点切忌太多,一般学士有1点,一般硕士有1-3点,博士论文有4 - 5点就可以了,不超过6点;
要实事求是把创新点提炼出来,其核心是新和实,而不是大和空,但可以把工作推广.
学位论文的创新例举
提出新原理(公式),技术,方案(方法),新的P2P负载平衡算法
学位论文的创新例举
移植其他领域原理
经济学理论应用于Grid,P2P
利用现有原理构成新系统
BT思想利用于FTP
学位论文的创新例举
新原理在原系统中应用
将博弈用于负载均衡
将遗传算法用于P2P的拓扑进化
学位论文与一般科技论文差别
学位论文包含一般科技论文要求,但又更加系统全面.反映研究生的理论基础,学术水平,独立工作能力,创新和贡献以及写作水平等.
国内外进展应详细说明,基础理论也应介绍.
创新(自己工作)论述详细,包括理论分析实验系统和实验结果.
结论中要有比较详细的总结并明确自己的贡献
学位论文与一般科技论文差别
一篇(博士)学位论文可以包括2-3部分工作
学位论文内容可以发表成若干篇科技论文,而且学习期间必须发表文章.
导师在学位论文中在导师栏署名,在科技论文中是在作者栏署名.
学位论文如何优秀(必要条件)
题目有意义-反映宽广知识面
充分了解国内外情况(文献),扎实的基础理论,提出问题,确定论文的方向和题目.
内容要充实-反映扎实的专业知识和能力
掌握深入的专业知识,找到可行创新途径,理论分析深透,掌握较强的实验技术和独立工作能力.
结果有水平-反映明确的贡献
分析和实验结果准确可靠,结论可信,论文才有水平有价值有贡献.
学位论文如何优秀(充分条件)
逻辑上注意论文结构和内容的完整与呼应
层次清晰逻辑严谨,仔细安排全文章节,做到结构完整,即综述,正文和结论完整;内容呼应,即理论和实验呼应,问题,创新和解决方法及结果呼应.
文字上注意规范流畅
文字流畅书写规范,注意论文和摘要的书写格式,正确使用专业术语,量纲和单位以及标点符号,不能太晦涩也不能太口语化;
准备清晰明了的幻灯报告
课题来源意义,主要(创新)论点,分析和实验系统及结果,结论
上海交通大学本科毕业论文要求
1.学生在参加毕业设计(论文)答辩前必须写出一份300—500个词左右的论文摘要(中,英对照),并提交25000以上印刷符号的专业翻译文章
2.毕业论文约30页,A4张.工程设计类的毕业设计(论文)书写字数,正文的字数不得少于1.5万字;研究类论文的毕业设计(论文)字数不得少于2万.
3.基本内容:绪论/概述 正文 结论
4.规范的格式:采用三级目录,第一级"2",第二级"2.1","2.2","2.3"等,第三级为"2.2.1","2.2.2","2.2.3"
5.标题为三号黑体字居中,内容为五号字体,首行缩进二个字
注意写作格式
1.公式单独一行写,应另起一行写在稿纸中央
2.表格:注意序号,题目在表格上,按章节顺序编号.每个表格应有自已的表题和表序,表题应写在表格上方正中,表序写在表题左方不加标点,
3. 插图:注意序号,图题在图下正中,图中坐标应标注单位 ,按章节顺序编号.全文插图可以统一编序,也可以逐章单独编序,不管采用哪种方式,图序必须连续,不得重复或跳缺.由若干分图组成的插图,分图用a,b,c…标序,分图的图名以及图中各种代号的意义,以图注形式写在图题下方,
二,科技论文写作
科技论文
对创造性成果进行的理论分析,实验验证以及科学总结,并通过公开发表或通过答辩的科技写作文章.
科技论文必须完整回答为什么研究(why),怎么样研究(how)和结果是什么(what).
研究工作或实验总结与科技论文不同,总结在内容上可能更详细,但也不一定有创造性,也不一定发表,格式也不十分严格统一.
论文强调科学性,创造性,逻辑性和有效性.
科技论文四性
科学性- 内容可靠,数据准确,实验可重复.
创造性-原则上是不能重复别人工作,可以改进,但不能照抄.
逻辑性-思路清晰,结构严谨,推导合理和编排规范.
有效性-公开发表或经同行答辩.
学术性-对事务进行抽象概括和论证,描述事务本质,表现内容的专业性和系统性.不同于科技报道和科普文章,要用书面语言论述精练.
科技论文分类
发现发明型
分析计算型(仿真分析)
科技报告型
论证型
综述
论文的核心
不同的问题,有不同的写法,一般一篇论文论述一个核心问题(综述除外)
论文的核心是作者根据国内外发展和自己工作梳理出来的,可以从多个方面着手
元部件和系统,理论分析和实验,系统特性和测试,方案设计和实现等;
新思想,新概念,新理论,新途径,新方案,新进展,不同看法.
文章结构和长度
结构
题目,摘要和关键词
引言
正文
结论和致谢(结束语)
参考文献,附录等
文章长度并无明确规定,一般科技期刊文章在4000-8000字(含图表),根据杂志和文章类别而定.综述文章多由编辑部门邀请权威撰写,涉及历史的回顾和未来的展望,内容广泛,可以较长.
科技论文的篇名
用简洁恰当的词组反映文章的特定内容,明确无误
篇名简短,不超过20个字
少用研究和空洞应用之类字
避免用不熟悉的简称,缩写和公式等
关键词
4-6个反映文章特征内容,通用性比较强的词组
第一个为本文主要工作或内容,或二级学科
第二个为本文主要成果名称或若干成果类别名称
第三个为本文采用的科学研究方法名称,综述或评论性文章应为"综述"或"评论"
第四个为本文采用的研究对象的事或物质名称
避免使用分析,特性等普通词组
引言
主要回答为什么研究(why)
介绍论文背景,相关领域研究历史与现状,本文目的
一般不要出现图表
正文
论文核心,主要回答怎么研究(how),
一般正文应有下述几个部分组成
本文观点,理论或原理分析
实现方法或方案(根据内容而定)
数值计算,仿真分析或实验结果(根据内容而定)
讨论,主要根据理论分析,仿真或实验结果讨论不同参数产生的变化,理论分析与实验相符的程度以及可能出现的问题等
结论
文章的总结,要回答研究出什么(what)
以正文为依据,简洁指出
由研究结果所揭示的原理及其普遍性
研究中有无例外或本论文尚难以解决的问题
与以前已经发表的论文异同
在理论与实际上的意义
对近一步研究的建议
致谢
对给予本文研究的选题,构思,实验或撰写等方面给以指导,帮助或建议的人员致以谢意;
由于论文作者不能太多,所以部分次要参加者可不列入作者,表示致谢;
一般资助单位应在文章首页下脚加注,一般不再致谢.
参考文献
文章中引用他人成果或文章内容应注明参考文献
参考文献规格应按国标或出版社编辑部格式
作者,文献题名,刊名,年,卷(期),起止页码
附录
附录不是文章的必要组成部分,但可为深入了解本文人员提供参考
主要提供论文有关公式推导,演算以及不宜列入正文的数据和图表等
注意事项-缩写词,外文字母
摘要和正文中的缩写词第一次出现都必须写出全称
外文字母必须分清大小写,正斜体和上,下角
正体:计量单位(cm, kg)
斜体:物理量,坐标,函数符号 R,L,C
注意事项-量和单位
使用国际标准和国家法定计量单位
一篇文章不要用一个符号表示两个或多个物理量,如用C同时表示常数和电容
首次出现(公式)的符号应在其后说明物理意义
量的符号一般为单个字母,如阈值电压
(Threshold Voltage) 不能用TV ,应当用 Vt
组合单位的斜线不能多于1个,W/m2/k应为
W/( m2· k)或W·m-2·k -1
注意事项-图,表
图表内容及含义,坐标名称量纲清楚
图和表内容不应重复,一种数据用图或表一个表示
应按顺序连续编号 Fig. 1, Fig. 2, Table 1…
图框宜细,曲线应粗
表格应用三线表
基本入手途径(一)
1.选题最关键
一定要选择具有一定理论深度的题目,可拓展性强的领域
要尽可能选择研究学科交叉点
不要盲目追随研究热点,强调独立选择.
2.创新之路
提出自然的,很简单的,具有直觉性的解决方法,做深下去
考虑自己感兴趣的,具有实际意义的点做下去
要广泛粗看,少量精看
基本入手途径(二)
3.提高论文写作能力
背诵科技英文段落及常用句式
由浅入深,勤于动笔
向国外投稿,得到反馈
科技论文的摘要
简明扼要, 200字左右,无废话;
用第三人称写,说明文章目的,方法,结果和结论,不应出现"本文","我们","作者"字眼,也不要有"首先" , "最后" , "简单" , "主要"和"次要"等修饰词;
文摘可单独发表,应有独立性和自明性,不得使用文章中的章节号,图号和表号等;
第一句不要重复文章篇名或已表述过的信息;
不能写常识性内容,过去情况和未来的计划,只写最新进展.
三,关于英文文摘
英文摘要(Abstract)
SCI,ISTP和EI等索引主要是根据英文题名和文摘选录
文摘长度一般为100-200 words.
内容要求与中文大体相同,主要讲目的,过程,方法和结果.内容要精练,不要将结论译成英文作摘要.
文章题目第一词切不可用冠词The,A,An和And(单位名称也不用The Institute …)
英文摘要(Abstract)
各大索引题名与文摘是连排的,所以文摘第一句话一定不要与文章题名重复.
题名少用缩写词,必要时需在括号中注明全称,也尽量少用特殊字母和希腊字母,因摘要排版要快,尽量简单.
英文文摘(Abstract)
叙述用第三人称(被动语态),不得用第一人称作主语.
文摘尽量简单,不用长句,尽量用简单句:
at a temperature of 250o C to 300o C
at 250o C - 300o C
用事实开头,避免用从句开头;用过去时叙述工作,用现在时态说明作者结论
The corresponding changes was detected …
The pointing accuracy is 0.1 arc-seconds.
不宜使用口语省略式词 does'nt, should'nt 等
英文文摘(Abstract)
不用不常见的词汇,主语与动词应尽量靠近
可用动词的情况不要用动词的名词形式,如
"Thickness of plastic sheets was measured "
"Measurement of thickness of plastic sheet was made."
注意冠词用法,a 是泛指,the是专指
"Pressure is a function of temperature."
"Pressure is a function of the temperature."
Abstract 例句
"A fiber Bragg grating (FBG) sensor for detection of ultrasonic waves is investigated… "
" A multiview connection technique for 360-deg three-dimensional (3-D) measurement is presented… "
下句形式不用
"This paper introduce… "
" We present a theoretical analysis of a HBT…"
四,怎样读文章
怎样读文章(一)
在读文章前,确信它是值得的.
先看题目,然后是摘要,如果没有完全失望,继续看介绍和结论(title->abstract->introduction->conclusions)在掌握所有细节之前,浏览整个文章,尽量找到那些关键点(the most implortant points).如果还觉得它是有关和值得的,就回去继续看(当然如果是老板要你看的重要文章,跳过前面的内容,直接读就行了).
高的效率
从结论开始,浏览图示和表,看看他的引用.
只在你觉得相关或者你觉得能给你不同的观点的时候才读其他部分.
跳过你已经知道的部分(比如背景和动机).
怎样读文章(二)
积极主动的思考
作者怎么想出这个念头的
这件工作到底完成了什么
它和这个领域的其他工作有什么关系 其中重要的引用文献是哪些
在这个工作的基础上合理的下一步工作是什么
相关领域的什么想法和这个主题相关 有什么不同
这些想法怎样帮助解决自己的研究问题
怎样读文章(三)
总结所读的每个主题
关键问题key problems
所描述问题的不同表达形式
不同方法之间的关系
替代的方法
读完以后,看一下表述的问题
什么使得这篇文章易读
文章解决了哪个级别的细节问题
什么例子用来阐述重要的概念
什么问题没有解决
结果能够一般化(推广)吗
怎样读文章(四)
良好的组织习惯
一个有用的方法是,用笔记录自己读过和听过的东西.写下自己的想法(speculations),感兴趣的难题,可能的解决方法,要查看的参考数目,笔记,文章的概要,有趣的印证.阶段性的复习可以发现这些思想是不是开始走在一起(fit together).即使那些笔记没有用,也会帮助我们集中精力,找到重点和进行总结.
(You may find yourself spending over half of your time reading, especially at the beginning. This is normal.)
怎样读文章(五)
发展自己的IDEA
确认所描述的思想真的有用(而不是仅仅理论上成立,或者是一些不重要的例子上面成立)
真正理解文章,就要懂得问题的动机,解决方法的可能选择,解决方法基于的假设.这些假设是不是现实,它们是不是可以在使方法有效的情况下移除,进一步的研究方向,实际完成或者实现的工作,理论判定或者实验验证的有效性,扩充和延伸算法的潜力.
保存读过的文章,建立在线的参考书目.增加关键字的的域,文章的位置和感兴趣的文章的总结.这对以后写文章以及给其他的研究生很有用.
怎样读文章(六)
阅读,思考,再阅读,再思考
每周留一定的时间看看是不是可以想出研究想法
每周至少到图书馆看一下相关领域前面杂志的摘要.选择一两篇仔细阅读并且批判.
每周进行一次调查,利用电子资源或者图书馆寻找领域相关的技术报告,选择性批判性的阅读.
参加一个研讨会或者讨论组,批判性的听取.
了解研究的进展
要注意你清楚这个领域的所有文献,如果你不经常复习一个月以前的文献,你可能发现自己对别人的思想不清楚了.另外一方面,也不要让别人的想法限制了你的创造力.
要注意避免的方面
主动(活跃)的听和读需要被当作贯穿你整个事业的"不间断教育".不要愚蠢的认为在你开始研究前应当读完所有的文献,而应该选择性的阅读.一开始从经典的文章(询问你的老师或者同学从而得到一些最有用的杂志和会议)和最近几年的杂志和会议开始.
五,开始写作
开始写作(一)
读一些最新的论文,尤其是那些发表了的.学习它们的内容和表达,注意它们里面的-进一步工作.(future work)
仔细的记笔记.记下每一个新的结果,即使没有重要的和有帮助的东西.
写出一个纲要,它以后会经常改变,经常在头脑中保持一个新的构想对以后平滑的过渡很有好处.
开始写作(二)
第一章:导言
问题是什么
为什么重要
别人做了什么工作
自己方法的主要思想是什么
文章的其他部分是怎样组织的
第二章:问题
问题定义
术语介绍
基本属性讨论
第三章:主要想法1
……
第k+2章:主要想法k
第k+3章:结论
重述完成的工作
讨论进一步的工作
开始写作(三)
不要总认为文章必须从第一页写.直接写主要想法big idea,记录怎样和其他部分组织在一起.
一个组织各章的方法是展现给你的实验室同学(fellow students),如果你能够将它们组织成连贯的"一小时报告",那就表明你可以写你的文章了.
开始写作(四)
无休止的修改格式而不是内容也是常犯的错误.要避免这种情况
清楚自己想说什么.
这是写清楚要的最难最重要的因素.如果你写出笨拙的东西,不断的修补,就表明不清楚自己想说什么.确信你的文章真的有思想(ideas).要说清楚为什么,不仅仅是怎么样.
从每一段到整个文章都应该把最引人入胜的东西放在前面.
让读者容易看到你写的东西(Make it easy for the reader to find out what you've done).注意处理摘要(carefully craft the abstract).确定(be sure)说出了你的好思想是什么.确定你自己知道这个思想是什么,然后想想怎么用几句话写出来.
开始写作(五)
不要大肆夸耀你自己做的事情.
得到反馈
如果你加入讨论组,会收到很多别人的文章,他们请你评论.知道别人对论文的意见很重要.你给别人帮助,别人会在你需要的时候帮助你.而且,自己也能提高.为文章写有用的评论是一门艺术.你应当读上两遍,第一遍了解其思想(IDEAS),第二遍看表达.
如何减少写论文的痛苦
写下自己的想法是完善它的好方法.你可能发现自己的想法在纸上会变成一团糟. 慢慢 地你也发觉它清晰起来.
记住你写得草稿很可能要全部推翻.
着重于内容而不是格式
不要追求完美
记住:写作是一个不断完善的过程.当你发现所写的不是你开始想写的,写下粗稿,以后再修补.写粗稿可以理出自己的思想,渐渐进入状态.如果写不出全部内容,就写纲要,在容易写具体的内容时再补充.如果写不出来,就把想到的东西全部写出来,即使你觉得是垃圾.当你写出足够的内容,再编辑它们,转化成有意义的东西.另一个原因是想把所有的东西都有序的写出来(in order).次序是不一定的.你可能要从正文写起,最后在你知道你写的到底是什么的时候再写简介.写作是很痛苦的事情,有时候一天只能写上一页.追求完美也可能导致对已经完美的文章无休止的修改润饰.这不过是浪费时间罢了.把写作当作和人说话就行了.
积极的动力
积极的反馈
定下每天,每周,每月的目标是一个很好的主意
尽可能让自己获得成就感
及时的交流
要与人分享你的想法或者给别人以建议
分而治之
在写论文时,不是写整个的文章,而是一节,一段,一章的写.一次实现一个部分,找出那些一个小时里可以解决的问题,如果不确信,不要让它们阻止你完成一些东西——一天一次.记住:你完成的每一步工作都使你接近完成.
六,论文写作辅助工具
1.Word-论文模板
2.Origin绘图工具的使用
3.MathType公式编辑器
4.Linux实验
七,一个例子及常见问题
学士论文例子
基于对等网络的即时消息系统
在写之前把目录做好
终点就是起点.以终为始,以始为终.
学士论文常见问题
1.论文格式不合要求或字数不够
2.第一章改为: "绪论"或"概述"或许要好一些,这一单应分为几个小节.概述最好写到4页以上.,概述写清背景,动机以及本文的工作安排.也可以把本文的贡献放上去,
3.对于论文的实验结果,应给出实验结果的详细分析,而不应是仅仅罗列一些结果.
4.有的论文描述算法时给出了算法的代码,最好不要大段地拷贝代码,而尽量用流程图或伪代码.并对代码给出分析.
5.论文尽量少用或不用"我,我们"之类的词,尤其尽量不要用"我"这一字眼
当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。网络可以构造地区性的网络、企事业内部网络、局域网网络,甚至家庭网络和个人网络。网络的根本特征并不一定是它的规模,而是资源共享,消除资源孤岛。 网络技术具有很大的应用潜力,能同时调动数百万台计算机完成某一个计算任务,能汇集数千科学家之力共同完成同一项科学试验,还可以让分布在各地的人们在虚拟环境中实现面对面交流。 发展历程 网络研究起源于过去十年美国政府资助的高性能计算科研项目。这项研究的目标是将跨地域的多台高性能计算机、大型数据库、大型的科研设备、通信设备、可视化设备和各种传感器等整合成一个巨大的超级计算机系统,以支持科学计算和科学研究。 微软公司把开发力量集中在数据网络上,关注使用网络共享信息,而不是网络的计算能力,这反映了学术和研究领域内的分歧。事实上,很多用于学术领域的网络技术都能够成为商业应用。 Argonne Globus是美国阿贡(Argonne)国家实验室的网络技术研发项目,全美12所大学和研究机构参与了该项目。Globus对资源管理、安全、信息服务及数据管理等网络计算的关键理论进行研究,开发能在各种平台上运行的网络计算工具软件,帮助规划和组建大型的网络试验平台,开发适合大型网络系统运行的大型应用程序。 目前,Globus技术已在美国航天局网络、欧洲数据网络、美国国家技术网络等8个项目中得到应用。2005年8月,美国国际商用机器公司(IBM)宣布投入数十亿美元研发网络计算,与Globus合作开发开放的网络计算标准,并宣称网络的价值不仅仅限于科学计算,商业应用也有很好的前景。网络计算和Globus从开始幕后走到前台,受到前所未有的关注。 中国非常重视发展网络技术,由863计划“高性能计算机及其核心软件”重大专项支持建设的中国国家网络项目在高性能计算机、网络软件、网络环境和应用等方面取得了创新性成果。具有18万亿次聚合计算能力、支持网络研究和网络应用的网络试验床——中国国家网络,已于2005年12月21日正式开通运行。这意味着通过网络技术,中国已能有效整合全国范围内大型计算机的计算资源,形成一个强大的计算平台,帮助科研单位和科技工作者等实现计算资源共享、数据共享和协同合作。 关键技术 网络的关键技术有网络结点、宽带网络系统、资源管理和任务调度工具、应用层的可视化工具。网络结点是网络计算资源的提供者,包括高端服务器、集群系统、MPP系统大型存储设备、数据库等。宽带网络系统是在网络计算环境中,提供高性能通信的必要手段。资源管理和任务调度工具用来解决资源的描述、组织和管理等关键问题。任务调度工具根据当前系统的负载情况,对系统内的任务进行动态调度,提高系统的运行效率。网络计算主要是科学计算,它往往伴随着海量数据。如果把计算结果转换成直观的图形信息,就能帮助研究人员摆脱理解数据的困难。这需要开发能在网络计算中传输和读取,并提供友好用户界面的可视化工具。 研究现状 网络计算通常着眼于大型应用项目,按照Globus技术,大型应用项目应由许多组织协同完成,它们形成一个“虚拟组织”,各组织拥有的计算资源在虚拟组织里共享,协同完成项目。对于共享而言,有价值的不是设备本身而是实体的接口或界面。 从技术角度看,共享是资源或实体间的互操作。Globus技术设定,网络环境下的互操作意味着需要开发一套通用协议,用于描述消息的格式和消息交换的规则。在协议之上则需要开发一系列服务,这与建立在TCP/IP(传输控制协议/网际协议)上的万维网服务原理相同。在服务中先定义应用编程接口,基于这些接口再构建软件开发工具。 Globus网络计算协议建立在网际协议之上,以网际协议中的通信、路由、名字解析等功能为基础。Globus协议分为构造层、连接层、资源层、汇集层和应用层五层。每层都有各自的服务、应用编程接口和软件开发工具、上层协议调用下层协议的服务。网络内的全局应用都需通过协议提供的服务调用操作系统。 构造层功能是向上提供网络中可供共享的资源,是物理或逻辑实体。常用的共享资源包括处理能力、存储系统、目录、网络资源、分布式文件系统、分布式计算机池、计算机集群等。连接层是网络中网络事务处理通信与授权控制的核心协议。构造层提交的各资源间的数据交换都在这一层控制下实现的。各资源间的授权验证、安全控制也在此实现。资源层的作用是对单个资源实施控制,与可用资源进行安全握手、对资源做初始化、监测资源运行状况、统计与付费有关的资源使用数据。 汇集层的作用是将资源层提交的受控资源汇集在一起,供虚拟组织的应用程序共享、调用。为了对来自应用的共享进行管理和控制,汇集层提供目录服务、资源分配、日程安排、资源代理、资源监测诊断、网络启动、负荷控制、账户管理等多种功能。应用层是网络上用户的应用程序,它先通过各层的应用编程接口调用相应的服务,再通过服务调用网络上的资源来完成任务。应用程序的开发涉及大量库函数。为便于网络应用程序的开发,需要构建支持网络计算的库函数。 目前,Globus体系结构已为一些大型网络所采用。研究人员已经在天气预报、高能物理实验、航空器研究等领域开发了一些基于Globus网络计算的应用程序。虽然这些应用仍属试验性质,但它证明了网络计算可以完成不少超级计算机难以胜任的大型应用任务。可以预见,网络技术将很快掀起下一波互联网浪潮。面对即将到来的第三代互联网应用,很多发达国家都投入了大量研究资金,希望能抓住机遇,掌握未来的命运。 中国也加强了网络方面的投入。中科院计算所为自己的网络起名为“织女星网络”(Vega Grid),目标是具有大规模数据处理、高性能计算、资源共享和提高资源利用率的能力。与国内外其他网络研究项目相比,织女星网络的最大特点是“服务网络”。中国许多行业,如能源、交通、气象、水利、农林、教育、环保等对高性能计算网络即信息网络的需求非常巨大。预计在最近两三年内,就能看到更多的网络技术应用实例。 应用领域 网络技术的应用领域很广,主要有以下几方面。 分布式超级计算 分布式超级计算将分布在不同地点的超级计算机用高速网络连接起来,并用网络中间件软件“粘合”起来,形成比单台超级计算机强大得多的计算平台。 分布式仪器系统 分布式仪器系统使用网络管理分布在各地的贵重仪器系统,提供远程访问仪器设备的手段,提高仪器的利用率,方便用户的使用。 数据密集型计算并行计算技术往往是由一些计算密集型应用推动的,特别是一些带有巨大挑战性质的应用,大大促进了对高性能并行体系结构、编程环境、大规模可视化等领域的研究。数据密集型计算的应用比计算密集型的应用多得多,它对应的数据网络更侧重于数据的存储、传输和处理,计算网络则更侧重于计算能力的提高。在这个领域独占鳌头的项目是欧洲核子中心开展的数据网络(DataGrid)项目,其目标是处理2005年建成的大型强子对撞机源源不断产生的PB/s量级实验数据。 远程沉浸 这是一种特殊的网络化虚拟现实环境。它是对现实或历史的逼真反映,对高性能计算结果或数据库可视化。“沉浸”是指人可以完全融入其中:各地的参与者通过网络聚集在同一个虚拟空间里,既可以随意漫游,又可以相互沟通,还可以与虚拟环境交互,使之发生改变。目前,已经开发出几十个远程沉浸应用,包括虚拟历史博物馆、协同学习环境等。远程沉浸可以广泛应用于交互式科学可视化、教育、训练、艺术、娱乐、工业设计、信息可视化等许多领域。 信息集成 网络最初是以集成异构计算平台的身份出现,接着进入分布式海量数据处理领域。信息网络通过统一的信息交换架构和大量的中间件,向用户提供“信息随手可得”式的服务。网络信息集成将更多应用在商业上,分布在世界各地的应用程序和各种信息通过网络能进行无缝融合和沟通,从而形成崭新的商业机会。 信息集成如信息网络、服务网络、知识网络等,是近几年网络流行起来的应用方向。2002年,Globus联盟和IBM在全球网络论坛上发布了开放性网络服务架构及其详细规范,把Globus标准与支持商用的万维网服务标准结合起来。2004年,Globus联盟、IBM和惠普(HP)等又联合发布了新的网络标准草案,把开放性网络服务架构详细规范I转换成6个用于扩展万维网服务的规范,网络服务已与万维网服务彻底融为一体,标志着网络商用化时代的来临。 网络技术的发展,标准是关键。就像TCP/IP协议是因特网的核心一样,构建网络计算也需要对核心——标准协议和服务进行定义。目前,一些标准化团体正在积极行动。迄今为止,网络计算虽还没有正式的标准,但在核心技术上,相关机构与企业已达成一致,由美国阿贡国家实验室与南加州大学信息科学学院合作开发的Globus 计算工具软件已成为网络计算实际的标准,已有12家著名计算机和软件厂商宣布将采用Globus 计算工具软件。作为一种开放架构和开放标准基础设施,Globus 计算工具软件提供了构建网络应用所需的很多基本服务,如安全、资源发现、资源管理、数据访问等。目前所有重大的网络项目都是基于Globus 计算工具软件提供的协议与服务的。 除了标准以外,安全和可管理性、人才的缺乏也是网络计算亟待解决的一个问题,否则它将无法成为企业的商业架构。在真正实现商业应用之前,还需要解决许多问题。即便如此,构建全球网络的前景仍是无法抗拒的。 主要功能 一般来说,计算机网络可以提供以下一些主要功能: 资源共享 网络的出现使资源共享变得很简单,交流的双方可以跨越时空的障碍,随时随地传递信息。 信息传输与集中处理 数据是通过网络传递到服务器中,由服务器集中处理后再回送到终端。 负载均衡与分布处理 负载均衡同样是网络的一大特长。举个典型的例子:一个大型ICP(Internet内容提供商)为了支持更多的用户访问他的网站,在全世界多个地方放置了相同内容的WWW服务器;通过一定技巧使不同地域的用户看到放置在离他最近的服务器上的相同页面,这样来实现各服务器的负荷均衡,同时用户也省了不少冤枉路。 综合信息服务 网络的一大发展趋势是多维化,即在一套系统上提供集成的信息服务,包括来自政治、经济、等各方面资源,甚至同时还提供多媒体信息,如图象、语音、动画等。在多维化发展的趋势下,许多网络应用的新形式不断涌现,如: ① 电子邮件――这应该是大家都得心应手的网络交流方式之一。发邮件时收件人不一定要在网上,但他只要在以后任意时候打开邮箱,都能看到属于自己的来信。 ② 网上交易――就是通过网络做生意。其中有一些是要通过网络直接结算,这就要求网络的安全性要比较高。 ③ 视频点播――这是一项新兴的娱乐或学习项目,在智能小区、酒店或学校应用较多。它的形式跟电视选台有些相似,不同的是节目内容是通过网络传递的。 ④ 联机会议――也称视频会议,顾名思义就是通过网络开会。它与视频点播的不同在于所有参与者都需主动向外发送图像,为实现数据、图像、声音实时同传,它对网络的处理速度提出了最高的要求。 分类及组成 网络依据什么划分,又是如何组成的呢? 计算机网络的类型有很多,而且有不同的分类依据。网络按交换技术可分为:线 路交换网、分组交换网;按传输技术可分为:广播网、非广播多路访问网、点到点网; 按拓朴结构可分为总线型、星型、环形、树形、全网状和部分网状网络;按传输介质又 可分为同轴电缆、双纽线、光纤或卫星等所连成的网络。这里我们主要讲述的是根据网 络分布规模来划分的网络:局域网、城域网、广域网和网间网。
四层负责均衡:主要是指通过判断报文的IP地址和端口并通过一定的负载均衡算法来决定转发到哪个指定目标,主要工作在OSI模型的第四层。四层负载均衡对数据包只是起一个数据转发的作用,并不会干预客户端与服务器之间应用层的通信(如:三次握手等)。所以能对数据所进行的操作也就很少,但相对于七层负载均衡来讲效率会高上很多
七层负载均衡:也被称为“内容交换”,指的是负载均衡设备通过报文中的应用层信息(URL、HTTP头部等信息)和负载均衡算法,选择到达目的的内部服务器。七层负载均衡可以“智能化”地筛选报文中 应用层信息,然后根据不同的信息进行特定的负载均衡调度。这种方式提升了应用系统在网络层上的灵活性,另外也在一定程度上提升了后端系统的安全性。因为像网络常见的DoS攻击,这些攻击在七层负载均衡的环境下通常都在负载均衡设备上就截止了,不会影响到后台服务器的正常运行。
前网络中常见的负载均衡主要分为硬件负载均衡和软件负载均衡。硬件负载均衡比较知名的产品有F5 Big-IP、Cirtix Netscaler等等。而软件负载均衡就有着众多的开源项目,常见的有Haproxy、nginx、lvs等。
Haproxy:
lvs:
nginx:
Haproxy可以做代理服务相对于nginx而言有很多相同之处,统一可以基于mode tcp进行四层代理也可以基于mode http进行七层代理,但不同的是其无法使用location和if等进行匹配判断。突出优势在于有会话绑定,web管理界面,状态统计非常详细。官方推荐只启用一个进程,相对于nginx多进程架构工作并不理想,更多的线程可能会受到系统内存的一些限制。
程序环境:
主程序:/usr/sbin/haproxy
主配置文件:/etc/haproxy/haproxy.cfg
Unit file:/usr/lib/systemd/system/haproxy.service
查看配置文件
重要的几个参数,及性能调优,多数无需修改
发现日志发送给本机rsyslog的local2的facility,而本机的rsyslog里并没有定义,需要我们自己去配置
所以vim /etc/rsyslog.conf添加一段将local2的所有信息记录在对应日志文件中
由于HAProxy可以工作在七层模型下,因此,要实现HAProxy的强大功能,一定要使用强大灵活的ACL规则,通过ACL规则可以实现基于HAProxy的智能负载均衡系统。HAProxy通过ACL规则完成两种主要的功能,分别是:
1)通过设置的ACL规则检查客户端请求是否合法。如果符合ACL规则要求,那么将放行;如果不符合规则,则直接中断请求。
2)符合ACL规则要求的请求将被提交到后端的backend服务器集群,进而实现基于ACL规则的负载均衡。HAProxy中的ACL规则经常使用在frontend段中,使用方法如下:
acl 自定义的acl 名称 acl 方法 -i [ 匹配的路径或文件] 其中:
·acl:是一个关键字,表示定义ACL规则的开始。后面需要跟上自定义的ACL名称。
·acl方法:这个字段用来定义实现ACL的方法,HAProxy定义了很多ACL方法,经常使用的方法有hdr_reg(host)、hdr_dom(host)、hdr_beg(host)、url_sub、url_dir、path_beg、path_end等。
·-i:表示不区分大小写,后面需要跟上匹配的路径或文件或正则表达式。与ACL规则一起使用的HAProxy参数还有use_backend,use_backend后面需要跟上一个backend实例名,表示在满足ACL规则后去请求哪个backend实例,与use_backend对应的还有default_backend参数,它表示在没有满足ACL条件的时候默认使用哪个后端
这些例子定义了www_policy、bbs_policy、url_policy三个ACL规则,第一条规则表示如果客户端以 或 z.cn 开头的域名发送请求时,则此规则返回true,同理第二条规则表示如果客户端通过 bbs.z.cn 域名发送请求时,则此规则返回true,而第三条规则表示如果客户端在请求的URL中包含“buy_sid=”字符串时,则此规则返回true。
第四、第五、第六条规则定义了当www_policy、bbs_policy、url_policy三个ACL规则返回true时要调度到哪个后端backend,例如,当用户的请求满足www_policy规则时,那么HAProxy会将用户的请求直接发往名为server_www的后端backend,其他以此类推。而当用户的请求不满足任何一个ACL规则时,HAProxy就会把请求发往由default_backend选项指定的server_cache这个后端backend。
与上面的例子类似,本例中也定义了url_static、host_www和host_static三个ACL规则,其中,第一条规则通过path_end参数定义了如果客户端在请求的URL中以.gif、.png、.jpg、.css或.js结尾时返回true,第二条规则通过hdr_beg(host)参数定义了如果客户端以www开头的域名发送请求时则返回true,同理,第三条规则也是通过hdr_beg(host)参数定义了如果客户端以img.、video.、download.或ftp.开头的域名发送请求时则返回true。
第四、第五条规则定义了当满足ACL规则后要调度到哪个后端backend,例如,当用户的请求同时满足host_static规则与url_static规则,或同时满足host_www和url_static规则时,那么会将用户请求直接发往名为static的后端backend,如果用户请求满足host_www规则,那么请求将被调度到名为www的后端backend,如果不满足所有规则,那么将用户请求默认调度到名为server_cache的这个后端backend。
log:全局的日志配置,local0是日志设备,info表示日志级别。其中日志级别有err、warning、info、debug4种可选。这个配置表示使用127.0.0.1上的rsyslog服务中的local0日志设备,记录日志等级为info。
maxconn:设定每个HAProxy进程可接受的最大并发连接数,此选项等同于Linux命令行选项“ulimit -n”。
user/group:设置运行HAProxy进程的用户和组,也可使用用户和组的uid和gid值来替代。
daemon:设置HAProxy进程进入后台运行。这是推荐的运行模式。
nbproc:设置HAProxy启动时可创建的进程数,此参数要求将HAProxy运行模式设置为daemon,默认只启动一个进程。该值的设置应该小于服务器的CPU核数。创建多个进程,能够减少每个进程的任务队列,但是过多的进程可能会导致进程崩溃。
pidfile:指定HAProxy进程的pid文件。启动进程的用户必须有访问此文件的权限。
mode:设置HAProxy实例默认的运行模式,有tcp、http、health三个可选值。
retries:设置连接后端服务器的失败重试次数,如果连接失败的次数超过这里设置的值,HAProxy会将对应的后端服务器标记为不可用。此参数也可在后面部分进行设置。
timeout connect:设置成功连接到一台服务器的最长等待时间,默认单位是毫秒,但也可以使用其他的时间单位后缀。
timeout client:设置连接客户端发送数据时最长等待时间,默认单位是毫秒,也可以使用其他的时间单位后缀。
timeout server:设置服务器端回应客户端数据发送的最长等待时间,默认单位是毫秒,也可以使用其他的时间单位后缀。
timeout check:设置对后端服务器的检测超时时间,默认单位是毫秒,也可以使用其他的时间单位后缀。
bind:此选项只能在frontend和listen部分进行定义,用于定义一个或几个监听的套接字。bind的使用格式为: bind [<address>:<port_range>] interface <interface>其可以为主机名或IP地址,如果将其设置为“*”或“0.0.0.0”,将监听当前系统的所有IPv4地址。port_range可以是一个特定的TCP端口,也可是一个端口范围,小于1024的端口需要有特定权限的用户才能使用。interface为可选选项,用来指定网络接口的名称,只能在Linux系统上使用。
option httplog:在默认情况下,HAProxy日志是不记录HTTP请求的,这样很不方便HAProxy问题的排查与监控。通过此选项可以启用日志记录HTTP请求。
option forwardfor:如果后端服务器需要获得客户端的真实IP,就需要配置此参数。由于HAProxy工作于反向代理模式,因此发往后端真实服务器的请求中的客户端IP均为HAProxy主机的IP,而非真正访问客户端的地址,这就导致真实服务器端无法记录客户端真正请求来源的IP,而X-Forwarded-For则可用于解决此问题。通过使用forwardfor选项,HAProxy就可以向每个发往后端真实服务器的请求添加X-Forwarded-For记录,这样后端真实服务器日志可以通过“X-Forwarded-For”信息来记录客户端来源IP。
option httpclose:此选项表示在客户端和服务器端完成一次连接请求后,HAProxy将主动关闭此TCP连接。这是对性能非常有帮助的一个参数。
log global:表示使用全局的日志配置,这里的global表示引用在HAProxy配置文件global部分中定义的log选项配置格式。
default_backend:指定默认的后端服务器池,也就是指定一组后端真实服务器,而这些真实服务器组将在backend段进行定义。这里的htmpool就是一个后端服务器组。
option redispatch:此参数用于cookie保持的环境中。在默认情况下,HAProxy会将其请求的后端服务器的serverID插入cookie中,以保证会话的session持久性。而如果后端的服务器出现故障,客户端的cookie是不会刷新的,这就会出现问题。此时,如果设置此参数,就会将客户的请求强制定向到另外一台健康的后端服务器上,以保证服务正常。
option abortonclose:如果设置了此参数,可以在服务器负载很高的情况下,自动结束当前队列中处理时间比较长的连接。
-balance:此关键字用来定义负载均衡算法。目前HAProxy支持多种负载均衡算法,常用的有如下几种:
cookie:表示允许向cookie插入SERVERID,每台服务器的SERVERID可在下面的server关键字中使用cookie关键字定义。
option httpchk:此选项表示启用HTTP的服务状态检测功能。HAProxy作为一个专业的负载均衡器,它支持对backend部分指定的后端服务节点的健康检查,以保证在后端backend中某个节点不能服务时,把从frotend端进来的客户端请求分配至backend中其他健康节点上,从而保证整体服务的可用性。
option httpchk的用法如下: option httpchk <method> <uri> <version> 其中,各个参数的含义如下:
check:表示启用对此后端服务器执行健康状态检查。
inter:设置健康状态检查的时间间隔,单位为毫秒。
rise:设置从故障状态转换至正常状态需要成功检查的次数,例如,“rise 2”表示2次检查正确就认为此服务器可用。
fall:设置后端服务器从正常状态转换为不可用状态需要检查的次数,例如,“fall 3”表示3次检查失败就认为此服务器不可用。
cookie:为指定的后端服务器设定cookie值,此处指定的值将在请求入站时被检查,第一次为此值挑选的后端服务器将在后续的请求中一直被选中,其目的在于实现持久连接的功能。上面的“cookie server1”表示web1的serverid为server1。同理,“cookie server2”表示web2的serverid为server2。
weight:设置后端真实服务器的权重,默认为1,最大值为256。设置为0表示不参与负载均衡。
backup:设置后端真实服务器的备份服务器,仅仅在后端所有真实服务器均不可用的情况下才启用。
用nginx反代后端的两台tomcat主机,做动静分离,如果是jsp结尾的就发往后端,否则就交给nginx处理。
在两台tomcat主机上创建应用
nginx配置
则动静分离就实现了,并且我们还基于uri实现了会话粘性
主要是负载均衡技术,可以研究一下 lvs 和 nginx 的原理
1、下面的架构就是我们今天的演示结构,后端有两台服务器,分别是node1和node2,前端是一台web服务器,然后在web服务器上做负载均衡,将前端的访问流量导到后端的两个节点服务器上。三个服务器的IP地址分别是:web:192.168.1.210node1:192.168.1.211node2:192.168.1.212
2、按照这样的架构,在后端的node1和node2节点上分配配置好需要访问的网站,然后为了方便测试,我们将两个网站的主页分别改成下面的内容。便于区分访问的节点。
3、后端两个节点配置好以后,我们再来配置web服务器里的负载均衡配置,首先使用默认配置,先打开/etc/nginx/nginx.conf配置文件,在http区块里添加upstream块内容,及配置了两个后端服务器,后端负载均衡集群的名称是backend,记下这个名称。
4、然后再打开/etc/nginx/conf.d/default.conf这个配置文件,在server区块里,把location里面的内容改成图中所示内容。即将所有访问192.168.1.210的流量代理到后端的backend集群里。
5、配置文件配置好以后,使用nginx-t命令测试一下配置文件,保证配置文件是ok状态,然后执行nginx命令启动nginx服务器。
6、启动后在浏览器上输入前端web服务器的ip地址192.168.1.210,然后可以看到第一次是node1响应的,然后刷新一下以后,又变成了node2响应的。就这样实现了负载均衡的效果。由两个服务器分别响应,是因为默认的负载均衡算法是轮询算法,即两个节点轮流来。
7、然后我们还可以尝试一下加权轮询算法,即给不同的节点配置不同的权重,权重高一点的服务器,响应的多一些,权重第一点的响应少一些。加权轮询算法配置,在后端服务器后面加上权重值weight即可。配置好以后,执行nginx-t命令检测配置文件,确认无误后,执行nginx-sreload命令重新加载配置文件。
8、通过加权轮询的方式,我们无法通过手动一次次点击,最后来统计次数。但是我们可以使用自动化工具来统计。使用的工具是一款叫做httpd-tools的软件,安装好以后,提供了一个ab命令
9、然后我们来执行ab命令进行测试,常用的格式是:ab-n1000-c50这个命令是在210服务器上执行的。表示一共执行1000次访问,每次发送50个请求。
10、然后我们登录到后端的node1服务器上,打开nginx的访问日志,从中可以看到ab命令测试的访问信息里,访问来源都是ApacheBench,因此可以通过可以来源来统计nginx响应的次数。命令是:grepApacheBenchaccess.log|wcnode1和node2节点上的统计结果分别是714和286,如下面图中所示,虽然没有达到5:2的权重比例,但是也非常接近了。说明这个配置生效了。