前言:我们精心挑选了数篇优质计算机毕业论文文章,供您阅读参考。期待这些文章能为您带来启发,助您在写作的道路上更上一层楼。
一、本科学生毕业论文的目的和内容
本科学生在毕业之前必须做毕业论文,其目的是通过毕业论文,让学生独立开发一个具体的计算机应用项目,系统地进行分析总结和运用学过的书本知识,以巩固本科阶段所学的专业理论知识,并给予一个理论联系实际的机会。
为了便于实施和管理,规定网络学院计算机相关专业本科学生毕业论文主要以开发一个管理信息系统为毕业实践的课题,每个毕业生通过独立开发一个具体的管理信息系统,掌握开发一个比整完整的管理信息系统的主要步骤,并从中获得一定的实际经验。
二、管理信息系统开发的主要步骤
管理信息系统开发的主要步骤及各步骤的基本内容如下:
1、 系统分析
主要工作内容有以下几项:
确定系统目标
系统可行性分析
2、 系统调查
系统的组织结构、职能结构和业务流程分析。其中系统的组织结构图应画成树状结构。
系统业务流程分析、业务流程图
3、 数据流程分析
数据流程图(系统关联图、顶层图、一层数据流图、二层数据流图)
数据词典
代码设计
4、 管理信息系统的功能设计
系统的功能结构图,每个功能模块的主要工作内容、输入输出要求等。
系统控制结构图
5、 数据库设计
概念模型设计:实体、实体间的联系、e-r图
关系模式设计:e—r图->关系模式的转换规则
关系模式
数据库表设计:数据库表结构
6、 系统物理配置方案
7、 人机界面设计
8、 模块处理概述
9、 系统测试和调试:测试计划、测试用例、测试结果
三、开发工具和注意事项
1、开发工具
开发工具可由学生任选。如delphi、foxpro、vb、access等,这些工具的使用全由学生自学。
2、注意事项
(1)项目开发步骤的完整性(系统需求分析、概念设计、物理设计、系统环境和配置、系统实施以及系统测试和调试等)
(2)每个开发步骤所得结果的正确性(业务流程图、数据流程图、数据词典、hipo图、e-r图、关系模式、人机界面设计及模块处理等的详细分析和说明)
相关推荐:
精品论文:英语毕业论文提纲范文
进入21世纪以来,计算机成了第三次工业革命的重要领域。所以各个学校开设的计算机系或者计算机学院越来越多。当然,开设一个计算机专业,相比其他专业来说,比如机电、比如航空,比如信息,都要简单容易,计算机实验室也投入产出高很多。如何撰写计算机毕业论文,则是众多面临巨大竞争的计算机系学子们要考虑的事情,工科毕业论文不同文科毕业毕业论文,需要逻辑严密并且实验严格。所以,如何更好的撰写计算机毕业论文呢?
1.论文类型
不同的院系,不同的指导教师对本科毕业论文有不同的指导方法,在计算机系,本科毕业论文通常以下面四种类型:
1.1完成一个不太大的实际项目或在某一个较大的项目中设计并完成一个模块(如应用软件、工具软件或自行设计的板卡、接口等等),然后以工程项目总结或科研报告、或已发表的论文的综合扩展等形式完成论文。
1.2对一个即将进行的项目的一部份进行系统分析(需求分析,平台选型,分块,设计部分模块的细化)。例如对一个大中型企业管理信息系统中的财务部分进行调研,分析和设计等,这类工作可以没有具体编程,但应得到有关方面的初步认可,有一定的工作量。例如打印后有30页以上的报告。
1.3对某一项计算机领域的先进技术或成熟软件进行分析、比较,进而能提出自己的评价和有针对性创见。例如XML目前是因特网上新涌现的标记语言,它较HTML有许多无可比拟的优点,其中XML-QL是基于XML提出的一种新型查询语言,分析总结这一新型查询语言并探索它的实现途径是十分有意义的工作。再如对自由软件数据库系统MySQL,分析总结其在Web应用上的特色,并能将有关技术用于自己研制的系统中。这类工作要注意把分析和实验相结合,不要只停留在消化上。消化是前提,吸收和转化才是工作的重点。
1.4对某一个计算机科学中的理论问题有一定见解,接近或达到了在杂志上发表的水平。例如,解决了一个众所周知的问题,纠正了某杂志上理论的错误且提出解决修正方案,或自己提出有意义的模型,定义,且有定理、命题、或性能比较、分析、测试报告等。
一般而言,第四种较难,在若干年指导本科生毕业论文经验中,只有两位学生采用此形式写出了好的论文,据悉,这两位学生都顺利进入了博士生序列。
2.选题
2.1有科研项目的老师通常愿意从项目中选取本科生能完成的模块,交给学生作,然后以第一种形式写成论文。教师熟悉项目,项目有实用背景,一般而言,多数学生经过努力都能完成。但有些科研项目太难,或涉及保密内容,或本科生不容易完成,在这种情况下,教师可能会让已保送为研究生,或确定留校的学生作这类题目。
2.2学生自选题目,有些学生已联系好毕业后的工作单位,工作单位要求学生作某方面的项目,或已交给学生某方面的项目,经过指导教师认可,认为可作出合格的毕业论文,则可作这方面题目。这种方式下,学生积极性高,责任心较强,学以致用,一般论文的质量较好且成文后篇幅较大。
2.3教师根据社会需求,选择题目。例如,院系行政需要教学,科研和研究生信息管理系统,有的教师指导几位学生分别作大学院系行政管理子系统,博士生硕士生学籍管理子系统等等,有可能开始作出的软件还不很完善,但有了雏形,经过修改后,一般是能够应用的。有的系统经过下一届本科生毕业实习的改进,就可以实用了。一些对路的、有用户的软件还有可能进一步发展为产品
3.论文的组织安排
依据上述的论文类型,由于各类工作特点的不同,在搜集整理论文的素材、组织安排论文的结构方面,应有所不同,做到有的放矢。
3.1系统实现型论文:重点收集整理系统体系结构,程序模块调用关系,数据结构,算法,实验或测试等内容,论文结构一般安排如下:
(1)引言或背景(概述题目背景,实现情况,自己开发的内容或模块)一般谈课题意义,综述已有成果,如”谁谁在文献某某中做了什么工作,谁谁在文献某某中有什么突出贡献“,用“但是”一转,分析存在问题,引出自己工作必要性、意义和价值、创新点和主要思想、方法和结果。然后用“本文组织如下:第二节第三节....,第四节....."作为这段结束。
(2)系统体系结构(强调系统的整体性,突出自己工作在整体中的位置)
(3)主要实现功能的描述(包括模块调用关系,数据结构,算法说明,依据内容多少此部分可安排两到三节)
(4)实验或测试
(5)总结
3.2应用开发型论文:重点收集整理应用项目的背景分析,需求分析,平台选型,分块,设计部分模块的细化,使用的开发工具的内容。论文结构一般安排如下:
引言(重点描述应用项目背景,项目开发特色,工作难度等)
我们这篇文章分部分进行讲解:
一、本科学生毕业论文的目的和内容
二、管理信息系统开发的主要步骤
三、计算机专业所选开发工具和注意事项
四、计算机毕业论文撰写格式
五、毕业论文中正文的写法和注意事项
六、结束语的写法
七、参考文献列出毕业论文设计中主要参考书籍
八、附录的写法
九、论文评分的能用标准
一、本科学生毕业论文的目的和内容
本科学生在毕业之前必须做毕业论文,其目的是通过毕业论文,让学生独立开发一个具体的计算机应用项目,系统地进行分析总结和运用学过的书本知识,以巩固本科阶段所学的专业理论知识,并给予一个理论联系实际的机会。
为了便于实施和管理,规定网络学院计算机相关专业本科学生毕业论文主要以开发一个管理信息系统为毕业实践的课题,每个毕业生通过独立开发一个具体的管理信息系统,掌握开发一个比整完整的管理信息系统的主要步骤,并从中获得一定的实际经验。
二、管理信息系统开发的主要步骤
管理信息系统开发的主要步骤及各步骤的基本内容如下:
1、系统分析
主要工作内容有以下几项:确定系统目标,系统可行性分析
2、系统调查
系统的组织结构、职能结构和业务流程分析。其中系统的组织结构图应画成树状结构。
系统业务流程分析、业务流程图
3、数据流程分析
数据流程图(系统关联图、顶层图、一层数据流图、二层数据流图)、数据词典、代码设计
4、管理信息系统的功能设计
系统的功能结构图,每个功能模块的主要工作内容、输入输出要求等。
系统控制结构图
5、数据库设计
概念模型设计:实体、实体间的联系、E-R图
关系模式设计:E—R图->关系模式的转换规则
关系模式
数据库表设计:数据库表结构
6、系统物理配置方案
7、人机界面设计
8、模块处理概述
9、系统测试和调试:测试计划、测试用例、测试结果
三、开发工具和注意事项
1、开发工具
开发工具可由学生任选。如Delphi、FoxPro、VB、Access等,这些工具的使用全由学生自学。
2、注意事项
(1)项目开发步骤的完整性(系统需求分析、概念设计、物理设计、系统环境和配置、系统实施以及系统测试和调试等)
(2)每个开发步骤所得结果的正确性(业务流程图、数据流程图、数据词典、HIPO图、E-R图、关系模式、人机界面设计及模块处理等的详细分析和说明)
(3)论文整体结构的完整性(前言、各个具体步骤的叙述和分析、结语、参考文献和有关附录)
(4)提供软件系统的可执行盘片及操作说明书
(5)参考资料(列出必要的参考资料)
四、毕业论文撰写格式
注意:1.每个步骤都要有文字说明和论述2.各个步骤必须是有机的组合,不可以支离破碎不成一体。
一、封面
二、摘要用约200-400字简要介绍一下论文中阐述的主要内容及创新点
三、主题词用一、二个词点明论文所述内容的性质。(二和三要在同一页面上)
四、目录一般采用三级目录结构。例如第三章系统设计3.1系统概念结构3.1.1概念模型
五、正文
第一章前言
简要介绍:组织机构概况、项目开发背景、信息系统目标、开发方法概述、项目开发计划等。
第二章系统需求分析
本章应包含:
(1)现行业务系统描述
包括业务流程分析,给出业务流程图。
具体要求:业务流程图必须有文字说明,图要完整、一定要有业务传递的流程。
(2)现行系统存在的主要问题分析
指出薄弱环节、指出要解决的问题的实质,确保新系统更好,指出关键的成功因素。
(3)提出可能的解决方案
(4)可行性分析和抉择
包括技术可行性、经济可行性、营运可行性分析和抉择。
第三章新系统逻辑方案
针对用户需求,全面、系统、准确、详细地描述新系统应具备的功能。
(1)数据流程分析
最主要的是给出数据流程图,要求满足以下条件:
A.数据流程图必须包括系统关联图、系统顶层图、第一层分解图和第二层分解图组成。B.系统关联图确定了从外部项到系统的数据流和从系统向外部项的数据流,这些数据流在其它层次的数据流中不允许减少,也不允许增加。各层次内部的数据流不受关联图的限制。C.数据流应有名字。D.外部项和数据存储之间不得出现未经加工的数据流。E.数据流程图的分解中,必须保持每个分层同其上层加工中的外部项和输入输出流相一致。F.各加工之间一般不应出现未经数据存储的数据流。G.数据存储之间不得出现未经加工的数据流。H.数据存储可以分解。I.若有查询处理,应在数据流程图中表达。J.统计和打印报表不在数据流图中表达。
(2)数据词典描述
可采用图表格式或较紧凑的记录格式描述A、若采用图表格式,可只写出数据流、数据元素、加工、数据存储和外部项各一个表。B、若采用紧凑的记录格式,则应列出全部成分。如数据元素:编号名称存在于数据结构备注E1入库数据F1/F3/F11/F15入库单号日期货号数量E2出库数据F1/F3/F11/F15出库单号日期货号数量C、据流程图中系统顶层图的数据加工都必须详尽写出。
(3)基本加工小说明
可采用结构化语言、数学公式等描述各个基本加工。
第四章系统总体结构设计
(1)软件模块结构设计A、系统软件模块结构图,并由此导出功能分解图及层次式菜单结构。B、系统的模块结构应与数据流程图的顶层图的加工一致。
(2)数据库设计A、应按下列次序阐述各个元素:实体、实体的属性、实体间联系、E-R图、转换规则、关系模式。B、在介绍实体的属性时,不应包括联系属性,联系属性直至关系模式中才出现。C、数据流程图中的每个数据存储可隐含于E-R图中的多个实体。D、E-R图中的实体要与数据流程图中的数据存储相对应。每个实体要指出实体的标识码(主码)。对每个实体或联系应列出其应有的属性(用列举的方法)。E、E-R图中至少要有一个多对多的联系。F、必须严格按照转换规则从E-R图产生数据关系模式集,需要时作必要的优化,并说明理由。G、对于一对一的联系,只应把任一个实体的主码放在另一个实体中作为外码。H、一对多联系也可以产生新的关系模式,如要这样做,必须说明理由。I、多对多联系,或三元联系必须产生新的关系模式。J、关系模式的个数和名字要与E-R图中的实体和联系相一致。K.、每个关系模式中要用下横线标出主码,后随的符号“#”标出外码。L、若有代码对照表可在最后列出,需另加说明。
(3)计算机系统配置方案的选择和设计
给出硬件配置,系统软件配置,网络通信系统配置(可选)等内容。
(4)系统总体安全性、可靠性方案与措施。
第五章系统详细设计
(1)代码设计基本数据项的代码格式。
(2)人机界面设计给出人机界面视图(输入输出接口,屏幕格式设计等)
(3)模块处理过程根据软件环境做不同处理。可采用脚本、程序流程图、结构化的PDL语言等。
第六章实施概况
(1)实施环境和工具的比较选择
(2)编程环境、工具、实现与数据准备概况
(3)系统测试概况主要包括测试计划、测试用例、测试记录。
(4)系统转换方案及实现概况
(5)系统运行与维护概况
六、结束语
(1)系统特色、局限与展望
(2)实施中遇到的挫折、创新、体会与致谢
七、参考文献列出毕业论文设计中主要参考书籍
序号、书名或文章名、作者名、出版社或杂志名、出版日期或杂志期号。
八、附录
(1)列出部分有一定代表性的程序代码段
(2)操作说明书
九、论文评分标准
1、A等
系统正确无误,系统功能完善,设计步骤完整正确,实用性强,有一定的创新性,论文结构严谨,表述流畅。
2、B等
系统基本正确,系统功能基本完善,设计步骤基本完整正确,有一定的实用性,论文结构良好,表述基本流畅。
3、C等
系统有少量错误,系统功能不够完善,设计步骤欠完整,基本上没有实用性,论文结构一般,表述基本清楚。
4、不及格
在internet飞速发展的今天,互联网成为人们快速获取、和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
这次我们所设计的课题正是互联网与社会生活之间的紧密关系的体现,现今的社会,人们已经离不开了网络,网络已经成为人与人之间交流的一种形式,他能够把事情的复杂化转为简单化。老干部局网网站的建设不仅能够使该事业单位的工作方式有所改变,也大大地提高了该单位工作人员的办事效率,也增加了该单位的知明度,更重要的是为我们局的老干部们提供了一个网络生活空间,促进了他们对网络知识的进一步地了解。
通过该网站展示了机构设置、政策法规、办事指南、电子刊物、新闻、学习园地、问题集锦、养生保健、生活小常识、旅游简介等系列内容的介绍。同时您也可以利用电子信箱经济而又快捷地与外界进行各种信息沟通。
asp简介
1 什么是a s p microsoft active server pages (asp)实际上是将标准的h t m l文件拓展了一些附加特征, a s p像标准的h t m l文件一样包含h t m l语句并且在一个浏览器上解释并显示。但它为h t m l编写人员提供了在服务器端运行脚本的环境,使h t m l编写人员可以利用v b s c r i p t和j s c r i p t或其他
第三方脚本语言来创建a s p,实现过去需要编写复杂的c g i程序才能实现的有动态内容的网页,如计数器等。一个a s p文件的后缀为. a s p,其中包含实现动态功能的v b s c r i p t或j s c r i p t语句,如果去掉那些v b s c r i p t或j s c r i p t语句,它和标准的h t m l文件没有任何区别。a s p提供了一些内建对象(参见后面关于内建对象的章节)。利用这些内建对象,你可以使你的脚本更加强大;这些
在Internet飞速发展的今天,互联网成为人们快速获取、和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
这次我们所设计的课题正是互联网与社会生活之间的紧密关系的体现,现今的社会,人们已经离不开了网络,网络已经成为人与人之间交流的一种形式,他能够把事情的复杂化转为简单化。老干部局网网站的建设不仅能够使该事业单位的工作方式有所改变,也大大地提高了该单位工作人员的办事效率,也增加了该单位的知明度,更重要的是为我们局的老干部们提供了一个网络生活空间,促进了他们对网络知识的进一步地了解。
通过该网站展示了机构设置、政策法规、办事指南、电子刊物、新闻、学习园地、问题集锦、养生保健、生活小常识、旅游简介等系列内容的介绍。同时您也可以利用电子信箱经济而又快捷地与外界进行各种信息沟通。
ASP简介
1什么是ASPMicrosoftActiveServerPages(ASP)实际上是将标准的HTML文件拓展了一些附加特征,ASP像标准的HTML文件一样包含HTML语句并且在一个浏览器上解释并显示。但它为HTML编写人员提供了在服务器端运行脚本的环境,使HTML编写人员可以利用VBScript和JScript或其他
第三方脚本语言来创建ASP,实现过去需要编写复杂的CGI程序才能实现的有动态内容的网页,如计数器等。一个ASP文件的后缀为.asp,其中包含实现动态功能的VBScript或JScript语句,如果去掉那些VBScript或JScript语句,它和标准的HTML文件没有任何区别。ASP提供了一些内建对象(参见后面关于内建对象的章节)。利用这些内建对象,你可以使你的脚本更加强大;这些
对象会允许您从浏览器中接收和发送信息。例如,利用request对象,你可以接收用户的HTML表单中的信息并加以处理。ASP包含标准的ActiveX组件(参见后面关于组件的章节),这些组件可以实现一些复杂的功能,如使用数据库等。不过,你并不会被此局限,你可以轻松创建属于你自己的附加ActiveX组件。这意味着你可以不加限制地拓展你的ActiveX组件(参见后面关于自制组件的章节)。ASP可以和诸如SQLServer这样的数据库行挂接,在本书后面的章节中,我
们将详细地学习这方面的内容。重要的是,这是ASP一个非常强大的功能所在,在线商务以及在线论坛等各种非常高级的、动态更新的站点都需要数据库的支持,而且需要随数据库内容的更新而自动更新,这样,你就可以利用ASP自己建立很多类似的高级站点。通过上面的描述,我们可以了解到,ASP就是由服务器端脚本、对象以及组件拓展过的标准网页并为其提供了运行的环境。而它的网页并不是在建立初期存在的,而是当某个浏览器向它提出请求时,它才根据需要产生所需要的标准网页,这克服了过去HTML编写的网页的静态缺点,从而使网页上可以有许多动态的信息存在。如:当前的计算机时间、计数器的计数值等。
2ASP的功能
ASP是一套服务器端的脚本运行环境,当用户从浏览器向Web服务器请求.asp文件时,ASP脚本开始运行,然后Web服务器调用ASP,ASP全面读取请求的文件,执行所有的脚本命令,并将标准的Web页传送给浏览器,而并不包含你所写的脚本命令。
2使用ASP与SQLServer网站架设
而ASP的每一个命令都首先被用来生成HTML文件,因此ASP允许生成动态内容。
下载对于Web服务器来说,ASP与HTML有着本质的区别,HTML不经任何处理送回给浏览器另一方面,对于浏览器来说,ASP和HTML几乎是没有区别的,仅仅是后缀为.asp和.htm的区别,当我们在客户端提出对ASP的申请后,我们的浏览器接受的是HTML格式的文件。因此它根据以上特性,我们用ASP可以方便地实现诸如表格信息收集、计数器、留言簿、公告板、ASP还可以轻松地实现对页面内容的动态控制,为不同的浏览者定制不同的页面内容,实现
适用于任何浏览器。
聊天室甚至电子商务等过去必须由CGI才能实现的功能。
个性化的网站。
3使用范围
用ASP实现各功能时几乎没有什么限制,只要网站存在并正常运行,以下是的应用示例列表:
.在你的网站主页顶部添加一个滚动显示的广告栏。
.从HTML的表单中接受信息并且存到数据库中。
.根据不同访问者显示不同内容,创建个性化主页。
.在你的主页中添加点击计数器。
.根据用户浏览器的版本、类型和能力显示不同档次的内容。
.连接多个主页使之容易网际导航。
.跟踪用户网站上的活动信息并且存入日志文件。
.使用基于WindowsNT的Intranet建立你的MIS应用。
用ASP编写出的系统,完全可以达到原来使用Client/Server的网络数据库系统的水平。使用ASP最大的好处是,在你对程序进行升级时,你只需要修改服务器上的ASP文件,而不需要修改客户端程序。
以上只是简单介绍,看完下面章节,你会对利用ASP做的事情有更加全面深入的了解。你会真正学会如何使用ASP建立各种应用。
2.本课题的基本内容
为了树立中国各级政府各部门在网络上的崭新形象,有利于使各级政府由管理型向管理服务型的角色转换,降低办公费用,提高办公效率,促进勤政、廉政建设,提高政府公务员的信息化水平,市委老干部局网站的建立将为办公网络化,自动化、电子化,全面信息的共享所提供了优越的条件
本课题介绍了市老干部局网站建设的做法和具体步骤,给出了老干部局网站建设的方案选择、设备配置。还介绍了老干部局网站建设的运用目的和发展方向以充分实现以上目的。还全面介绍了在Internet上建设和管理网站的技术。内容涉及网站的基础建设,对原始数据进行调查,重点放在新闻更新、办事指南等的事务处理以及站点管理,使用ASP,HTML开发前台程序,完成网站的链接,从相关系统中导入数据,编写相应的存储过程,以便联系老干部局的需要开发出功能强大的网站。
老干部局网站为干部的工作、管理、生活、信息交流个通讯等提供综合的网络环境。网站的使用,使干部的办公、学术研究和管理条件跨上一个新台阶,同时也给老干部局的宣传,发展,提供了一个平台。我们可以充分利用现用计算机资源,实现信息交流和软硬件资源的共享,实现老干部局办公、管理、服务于社会的现代化新形式。
关于建设老干部局网站的一些内容,包括网站的结构,特点以及网站建设的理论知识要点。其最大的特点就是在于对ASP中的每个知识点都精心运用到了实际需要中,通过对理论的研究来联系实际操作,并全面地掌握ASP开发WEB动态网站的思路、技巧和体系。另外,ASP还提供可更简单、更方面的数据库访问方法,使开发基于数据库驱动的WEB应用程序更容易,ASP支持VBScript和Jscript,并能以插件形式支持其他脚本语言,如HTML。
3.本课题的重点和难点
本课题的重点主要是网站素材的选择与框架的搭建,一个好的网站要有许多的主页相互之间链接起来,以及其中添加一些动态、图片、声效等链接。综合地完成网站的建设才能体现主题,才能把浏览者的目光吸引到每一个主页上,内容的及时更新也是网站建设的一个主要实际问题,只有不断得到更新的主页内容才能使浏览者再次访问该网站,没有新鲜的内容素材,没有时代性的哲学理念,远远不能称得为好网站。
新颖的框架结构也能使浏览者的目光更长久地被吸引,再拥有好的素材基础上,框架的搭建也是网站建设所必须考虑到的问题,只有把这两者相结合进行周密地布置,相信建设出来的网站必然是点击率最高的网站。
该网站的建设也牵涉到了动态网页的制作,因此,这必然成了制作过程中的难点,就我个人而言,对动态网页的制作方面还缺少很多的理论与实际操作知识,曾经只是做一些简单的个人主页,仅此而已,而现今,却得必须运用ASP程序进行动态网站的编辑,运用ASP把脚本、HTML、组件和强大的WEB数据库访问功能结合在一起,形成一个能在服务器上运行的应用程序,并把按用户的要求专门制作的HTML页面送给客户端浏览器。此技术的运用使我的工作量大大地提高了几倍,当然这正是我以前没好好学的不好表现,但通过这次设计使我认识提高了,在学好静态网页制作的基础上则不能忽视对动态网页制作的重要性。此后,我将借鉴这次的领悟,认真学习并全面地掌握ASP中的每个知识点,以便今后熟练地运用到实际问题中,充分展现自我价值。为自己以后的生活道路铺上一层更牢固的奠基石!
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发现,这个功能实现起来竟然是如此的简单。OK,FollowMe!
第一步,我们要建立一个名为db_sample.mdb的数据库(本文以Access2000数据库为例),并在其中建立表T_Sample。表T_Sample包括如下字段:
ID自动编号
U_Name文本
U_Info备注
第二步,我们开始设计搜索页面Search.asp。该页面包括一个表单(Frm_Search),表单内包括一个文本框和一个提交按钮。并将表单的method属性设为“get”,action属性设为“Search.asp",即提交给网页自身。代码如下:
<!--Search.asp-->
<formname="frm_Search"method="get"action="Search.asp">
请输入关键字:
<inputtype="text"name="key"size="10">
<inputtype="submit"value="搜索">
</form>
下面,就进入了实现智能搜索的关键部分。
首先,建立数据库连接。在Search.asp的开始处加入如下代码:
<%
4.论文提纲
1.绪论
2.课题任务书
1)设计依据
2)课题总体体会要求
3)设计要求
3.系统规划
1)系统分析
2)系统具体分析
3)功能图
4.主体
1)程序代码
2)结论
5.参考文献
6.个人体会
7.附录
1.本课题的研究意义
在internet飞速发展的今天,互联网成为人们快速获取、和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
这次我们所设计的课题正是互联网与社会生活之间的紧密关系的体现,现今的社会,人们已经离不开了网络,网络已经成为人与人之间交流的一种形式,他能够把事情的复杂化转为简单化。老干部局网网站的建设不仅能够使该事业单位的工作方式有所改变,也大大地提高了该单位工作人员的办事效率,也增加了该单位的知明度,更重要的是为我们局的老干部们提供了一个网络生活空间,促进了他们对网络知识的进一步地了解。
通过该网站展示了机构设置、政策法规、办事指南、电子刊物、新闻、学习园地、问题集锦、养生保健、生活小常识、旅游简介等系列内容的介绍。同时您也可以利用电子信箱经济而又快捷地与外界进行各种信息沟通。
asp简介
1什么是aspmicrosoftactiveserverpages(asp)实际上是将标准的html文件拓展了一些附加特征,asp像标准的html文件一样包含html语句并且在一个浏览器上解释并显示。但它为html编写人员提供了在服务器端运行脚本的环境,使html编写人员可以利用vbscript和jscript或其他
第三方脚本语言来创建asp,实现过去需要编写复杂的cgi程序才能实现的有动态内容的网页,如计数器等。一个asp文件的后缀为.asp,其中包含实现动态功能的vbscript或jscript语句,如果去掉那些vbscript或jscript语句,它和标准的html文件没有任何区别。asp提供了一些内建对象(参见后面关于内建对象的章节)。利用这些内建对象,你可以使你的脚本更加强大;这些
对象会允许您从浏览器中接收和发送信息。例如,利用request对象,你可以接收用户的html表单中的信息并加以处理。asp包含标准的activex组件(参见后面关于组件的章节),这些组件可以实现一些复杂的功能,如使用数据库等。不过,你并不会被此局限,你可以轻松创建属于你自己的附加activex组件。这意味着你可以不加限制地拓展你的activex组件(参见后面关于自制组件的章节)。asp可以和诸如sqlserver这样的数据库行挂接,在本书后面的章节中,我
们将详细地学习这方面的内容。重要的是,这是asp一个非常强大的功能所在,在线商务以及在线论坛等各种非常高级的、动态更新的站点都需要数据库的支持,而且需要随数据库内容的更新而自动更新,这样,你就可以利用asp自己建立很多类似的高级站点。通过上面的描述,我们可以了解到,asp就是由服务器端脚本、对象以及组件拓展过的标准网页并为其提供了运行的环境。而它的网页并不是在建立初期存在的,而是当某个浏览器向它提出请求时,它才根据需要产生所需要的标准网页,这克服了过去html编写的网页的静态缺点,从而使网页上可以有许多动态的信息存在。如:当前的计算机时间、计数器的计数值等。
2asp的功能
asp是一套服务器端的脚本运行环境,当用户从浏览器向web服务器请求.asp文件时,asp脚本开始运行,然后web服务器调用asp,asp全面读取请求的文件,执行所有的脚本命令,并将标准的web页传送给浏览器,而并不包含你所写的脚本命令。
2使用asp与sqlserver网站架设
而asp的每一个命令都首先被用来生成html文件,因此asp允许生成动态内容。
下载对于web服务器来说,asp与html有着本质的区别,html不经任何处理送回给浏览器另一方面,对于浏览器来说,asp和html几乎是没有区别的,仅仅是后缀为.asp和.htm的区别,当我们在客户端提出对asp的申请后,我们的浏览器接受的是html格式的文件。因此它根据以上特性,我们用asp可以方便地实现诸如表格信息收集、计数器、留言簿、公告板、asp还可以轻松地实现对页面内容的动态控制,为不同的浏览者定制不同的页面内容,实现
适用于任何浏览器。
聊天室甚至电子商务等过去必须由cgi才能实现的功能。
个性化的网站。
3使用范围
用asp实现各功能时几乎没有什么限制,只要网站存在并正常运行,以下是的应用示例列表:
.在你的网站主页顶部添加一个滚动显示的广告栏。
.从html的表单中接受信息并且存到数据库中。
.根据不同访问者显示不同内容,创建个性化主页。
.在你的主页中添加点击计数器。
.根据用户浏览器的版本、类型和能力显示不同档次的内容。
.连接多个主页使之容易网际导航。
.跟踪用户网站上的活动信息并且存入日志文件。
.使用基于windowsnt的intranet建立你的mis应用。
用asp编写出的系统,完全可以达到原来使用client/server的网络数据库系统的水平。使用asp最大的好处是,在你对程序进行升级时,你只需要修改服务器上的asp文件,而不需要修改客户端程序。
以上只是简单介绍,看完下面章节,你会对利用asp做的事情有更加全面深入的了解。你会真正学会如何使用asp建立各种应用。
2.本课题的基本内容
为了树立中国各级政府各部门在网络上的崭新形象,有利于使各级政府由管理型向管理服务型的角色转换,降低办公费用,提高办公效率,促进勤政、廉政建设,提高政府公务员的信息化水平,市委老干部局网站的建立将为办公网络化,自动化、电子化,全面信息的共享所提供了优越的条件
本课题介绍了市老干部局网站建设的做法和具体步骤,给出了老干部局网站建设的方案选择、设备配置。还介绍了老干部局网站建设的运用目的和发展方向以充分实现以上目的。还全面介绍了在internet上建设和管理网站的技术。内容涉及网站的基础建设,对原始数据进行调查,重点放在新闻更新、办事指南等的事务处理以及站点管理,使用asp,html开发前台程序,完成网站的链接,从相关系统中导入数据,编写相应的存储过程,以便联系老干部局的需要开发出功能强大的网站。
老干部局网站为干部的工作、管理、生活、信息交流个通讯等提供综合的网络环境。网站的使用,使干部的办公、学术研究和管理条件跨上一个新台阶,同时也给老干部局的宣传,发展,提供了一个平台。我们可以充分利用现用计算机资源,实现信息交流和软硬件资源的共享,实现老干部局办公、管理、服务于社会的现代化新形式。
关于建设老干部局网站的一些内容,包括网站的结构,特点以及网站建设的理论知识要点。其最大的特点就是在于对asp中的每个知识点都精心运用到了实际需要中,通过对理论的研究来联系实际操作,并全面地掌握asp开发web动态网站的思路、技巧和体系。另外,asp还提供可更简单、更方面的数据库访问方法,使开发基于数据库驱动的web应用程序更容易,asp支持vbscript和jscript,并能以插件形式支持其他脚本语言,如html。
3.本课题的重点和难点
本课题的重点主要是网站素材的选择与框架的搭建,一个好的网站要有许多的主页相互
之间链接起来,以及其中添加一些动态、图片、声效等链接。综合地完成网站的建设才能体现主题,才能把浏览者的目光吸引到每一个主页上,内容的及时更新也是网站建设的一个主要实际问题,只有不断得到更新的主页内容才能使浏览者再次访问该网站,没有新鲜的内容素材,没有时代性的哲学理念,远远不能称得为好网站。
新颖的框架结构也能使浏览者的目光更长久地被吸引,再拥有好的素材基础上,框架的搭建也是网站建设所必须考虑到的问题,只有把这两者相结合进行周密地布置,相信建设出来的网站必然是点击率最高的网站。
该网站的建设也牵涉到了动态网页的制作,因此,这必然成了制作过程中的难点,就我个人而言,对动态网页的制作方面还缺少很多的理论与实际操作知识,曾经只是做一些简单的个人主页,仅此而已,而现今,却得必须运用asp程序进行动态网站的编辑,运用asp把脚本、html、组件和强大的web数据库访问功能结合在一起,形成一个能在服务器上运行的应用程序,并把按用户的要求专门制作的html页面送给客户端浏览器。此技术的运用使我的工作量大大地提高了几倍,当然这正是我以前没好好学的不好表现,但通过这次设计使我认识提高了,在学好静态网页制作的基础上则不能忽视对动态网页制作的重要性。此后,我将借鉴这次的领悟,认真学习并全面地掌握asp中的每个知识点,以便今后熟练地运用到实际问题中,充分展现自我价值。为自己以后的生活道路铺上一层更牢固的奠基石!
用asp实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发现,这个功能实现起来竟然是如此的简单。ok,followme!
第一步,我们要建立一个名为db_sample.mdb的数据库(本文以accessxx数据库为例),并在其中建立表t_sample。表t_sample包括如下字段:
id自动编号
u_name文本
1.1分层技术的基本概念
所谓的分层技术其实就是对计算机软件结构中其内部层次所存在依赖关系的阐述,一般来说,计算机软件的开发往往要保证软件运行的过程中有着一定的可靠性和灵活性,并不仅仅局限于单一功能,而要尽可能最大限度地实现软件的多种功能。
1.2分层技术的特点
首先分层技术将计算机软件适当地进行扩展,按照功能的不同分解计算机软件复杂的系统,适当改造和升级计算机软件,从根本上修改系统中某一功能层以及上下层。其次分层技术不仅仅将软件开发的效率有效提升,同时对于软件运行的可靠性同样有着一定的保障。计算机软件在开发的过程中,通过改造原有的计算机系统,一方面将复杂软件开发的时间缩小,另一方面对于新软件产品的质量有着实质性的保障。最后分层技术在计算机软件开发中的应用,便于计算机软件的再次使用,通过对分层模式的利用,进而定义功能层次的接口,实现软件的自行开发,并对标准接口进行利用,其端口的无缝隙对接也就在某种程度上最大限度地实现。
2分层技术在计算机软件开发中的应用
随着时代经济的发展以及网络技术的普及,计算机软件开发备受关注。同时计算机软件开发技术的发展,打破了传统计算机软件单项业务处理模式,进而趋向于多层次计算机软件业务处理。就其实质性而言,目前计算机软件开发中所采用的分层技术由刚开始的二层和三层,逐渐发展为现如今的四层和五层。现本文对其在计算机软件开发中的应用进行分析探讨。
2.1双层技术在计算机软件开发中的应用
计算机软件开发中双层技术的应用不仅仅将软件开发的效率有效提高,同时也使软件开发所需的时间在某种程度上有所缩短。所谓的双层技术主要由客户端和服务器两个端点组成,首先客户端主要是提供界面供用户使用,并将某种状态下出现的相关逻辑关系进行处理;服务器主要是对客户信息的接收,并在某种程度上将用户所需要的信息进行一定的整合,再次传递到客户端。分层技术在计算机软件开发中应用的前提,是要保证计算机的服务器有着较好的效能,同时也要保证用户数量相对较少。一旦用户数量相对较多,计算机软件在实际的运行中,不仅仅出现系统上的错误,同时也在一定程度上使得软件运行速度相对较慢,很难实现用户的真正需求。
2.2三层技术在计算机软件开发中的应用
所谓的三层技术主要是在计算机软件开发中双层技术的基础上进行完善。相对于双层技术,三层技术不仅仅使得应用服务器在某种程度上得到增加,同时对于计算机使用用户数据的存储也有着一定的优势。三层技术的应用,一方面使得计算机信息访问的效率有所提高,同时另一方面从根本上实现了计算机与人之间的信息的真正交互,计算机工作的效益明显提高。三层技术主要有业务处理层次、界面层次以及数据层次三个方面。业务处理层次主要是分析用户的真正需求,并发出一定的请求,对数据进行处理和提取;界面层主要是对用户真正需求进行主要的搜集,通过对信息进行一定的加工,进而将数据搜集的结果传递给业务处理层次;而数据层次主要是对业务处理层的申请进行审核,并对数据库相关信息进行查询,进行科学的分析之后将处理结果传递给业务层。三层技术虽然在一定程度上提高了计算机工作的效率,但是面对复杂的用户环境,很难从根本上科学地分开界面层、业务处理层以及数据库层。
2.3四层技术在计算机软件开发中的应用
四层技术是在三层技术的基础上进行完善的,主要有业务处理层、Web层、数据库层以及存储层。其在软件开发中的应用过程,首先是业务处理层对用户的需求进行分析,进而将数据层处理的结果传递给Web层,通过进行数据的交换和数据访问的代码将数据库与计算机对象之间的关系进行直观地反映。
2.4中间件技术在计算机软件开发中的应用
随着数据通信与计算机网络技术的蓬勃发展,在计算机软件开发过程中,中间件技术相对来说是一种独立性的系统软件,从根本上将异构与分布集成带来的各种复杂技术加以屏蔽,将计算机软件开发过程中技术上的难度有效降低。中间件技术不仅仅将开发的周期缩短,而且可从根本上科学优化操作系统、应用软件以及数据库之间的某种关系,同时对于系统的安全运行以及软件开发风险的降低有一定的保障性作用,真正实现了计算机运行过程中各系统资源的优势互补。
3结语
摘要:软交换技术的出现一方面造就了网络的融合,另一方面软交换采用了开放式应用程序接口(API),方便了第三方应用的开发和新业务的引进。论文主要从软交换提出的必然性、软交换的概念和主要功能、基于软交换的增强型业务框架以及其各层间的协议等方面对软交换技术进行了论述,并对软交换技术在电力通信网中的应用前景作了介绍。
关键词:软交换;网络融合;可编程网络;应用程序接口;电力通信网
0引言
在传统的基于TDM的PSTN网络中,提供给用户的各项功能都直接与交换机有关,业务和控制都是由交换机完成的。交换机的功能与其提供的业务都需要在每个接点完成,并且采用依靠交换机和信令来提供业务,所以必须在交换机的技术标准和信令标准中对开放的每项业务进行详细规范。如要增加新业务,首先需要修订标准,再对交换机进行改造,每提供一项新业务都需要较长的时期。
为满足用户对新业务的需求,网络中出现了公共的业务平台--智能网(IN)。智能网的设计思想就是把呼叫连接和业务提供分开。交换机完成呼叫连接,而智能网完成业务提供,这种方法大大提高了增强业务的能力,缩短了新业务提供的时间。而这种分离仅仅是第一步,随着承载的多样化,必须将呼叫控制和承载连接进一步分离,这正是软交换引入的目的。软交换在未来网络中的位置将被分成接入传送层、媒体层、控制层和业务层,即把控制和业务的提供从媒体层中分离出来。各层的功能如下:
(1)接入和传送层。将用户连接到网络,并将业务量集中后传送到目的地址。
(2)媒体层。将要通过网络传送的业务转换成正确的格式,例如将话音业务打包成ATM信元或IP包。此外,媒体层还可将业务选路到目的地址。
(3)控制层。包含呼叫智能。该层决定用户应该接收那些业务,还控制其他的在较低层的网络单元进行业务流的处理。
(4)业务应用层。在纯呼叫建立之上提供附加的业务。
这种网络拓扑结构与现有网络相比具有如下优点:
(1)可以使用基于包的承载传送,例如IP、ATM,克服了TDM网络中容量不足的缺点;
(2)具有开放式端点的拓扑结构,既能良好的传送话音,也能支持数据业务。
(3)将网络的承载部分与控制部分相分离,允许二者分别演进,有效地打破了单块集成交换的结构;
(4)在各单元之间使用开放的接口,允许运营者为其网络的每一部分购买最理想的产品。
新的网络结构固然有其优势所在,但原有网络近期不会消失,这就产生了新、旧网络融合、互通的问题。如何灵活、有效地使现有的PSTN网络与分组网络实现互通,将PSTN逐步地向IP网络演进,其关键的网络产品就是软交换设备(Soft Switch)。
2软交换技术
(1)软交换的概念
软交换又称为呼叫AGENT、呼叫服务器或媒体网关控制。其最基本的特点和最重要的贡献就是把呼叫控制功能从媒体网关中分离出来,通过服务器或网元上的软件实现基本呼叫控制功能,包括呼叫选路、管理控制、连接控制(建立会话、拆除会话)、信令互通(如从7号信令到IP信令)等。这种分离为控制、交换和软件可编程功能建立分离的平面,使业务提供者可以自由地将传输业务与控制协议结合起来,实现业务转移。这一分离同时意味着呼叫控制和媒体网关之间的开放和标准化,为网络走向开放和可编程创造了条件和基础。
(2)软交换的主要功能
软交换作为新、旧网络融合和关键设备,必须具有以下功能:
1)媒体网关接入功能
该功能可以认为是一种适配功能。它可以连接各种媒体网关,如PSTN/ISDN的IP中继媒体网关、ATM媒体网关、用户媒体网关、无线媒体网关、数据媒体网关等,完成H.248协议功能。同时还可以直接与H.323终端和SIP客户端终端进行连接,提供相应业务。
2)呼叫控制功能
呼叫控制功能是软交换的重要功能之一。它完成基本呼叫的建立、维持和释放,所提供的控制功能包括呼叫处理、连接控制、智能呼叫触发检出和资源控制等。
3)业务提供功能
由于软交换在网络从电路交换向分组交换演进的过程中起着十分重要的作用,因此软交换应能够支持PSTN/ISDN交换机提供的全部业务,包括基本业务和补充业务;同时还应该可以与现有智能网配合,提供现有智能网提供的业务。
4)互联互通功能
目前,存在两种比较流行的IP电话体系结构,一种是ITU-T制定的H.323协议,另一种是IETF制定的SIP协议标准,两者是并列的、不可兼容的体系结构,均可以完成呼叫建立、释放、补充业务、能力交换等功能。软交换可以支持多种协议,当然也可以同时支持这两种协议。
(3)引入软交换的意义
软交换将是下一代话音网络交换的核心。如果说传统的电信网是基于程控交换机的网络,那么下一代分组话音网则是基于软交换的网络。软交换是新、旧网络融合的枢纽。这主要表现在以下几个方面:
1)从经济角度考虑,与电路交换机相比,软交换成本低。软交换由于采用了开放式平台,易于接收革新应用,且软交换利用的是普遍计算机器件,其性价比每年提高80%,远高于电路交换(每年提高20%),可见软交换在经济方面有很大优势。
2)从用户角度考虑,在传统的交换网络中,一个设备厂商往往供应软件、硬件和应用等所有的东西,用户被锁定在供应商那里,没有选择的空间,实现和维护的费用也很高。基于软交换的新型网络彻底打破了这种局面,因为厂商的产品都是基于开放标准的,所以用户可以向多个厂商购买各种层次的产品,可以在每一类产品中选择性价比最好的来构建自己的网络。
3)软交换可以提高网络的可靠性。软交换将以前的电路交换的核心功能进行了分类,将功能以功能软件的形式分配到分组网络的骨干网中。这种分门别类的分布式结构是可编程的,并对服务供应商和第三方特性开发商是开放的。由于所有的功能都以标准的计算机平台为基础,可以很容易地实现网络的可伸缩性和可靠性。
3基于软交换的增强的业务框架及其接口协议
(1)基于软交换的增值业务框架结构
软交换的引入形成了增强的业务框架,其中应用服务器完成增值业务的执行和管理,提供增值业务的开发平台,并处理与软交换间的接口信令;媒体服务器(Media Server)提供特殊业务(如IVR、会议和传真)的资源平台,处理与媒体网关间的承载接口。
(2)软交换体系结构的接口和采用的通信协议
软交换作为一个开放的实体,与外部的接
口必须采用开放的协议。各种接口及其使用的协议如下:
1)媒体网关和软交换间的接口。用于传递软交换和媒体网关间的信令信息。此接口可使用信令控制传输协议(SCTP)或其他类似的协议。
2)软交换间的接口。实现不同软交换间的交互。此接口可以使用会话发起协议SIP-T或BICC(承载无关的呼叫控制)协议。
3)软交换与应用/业务之间的接口协议。提供访问各种数据库、三方应用平台、各种功能服务器等的接口,实现对增值业务、管理业务和三方应用的支持。
如:1、软交换与应用服务器间的接口,可以使用SIP协议或API(如Parlay),提供对三方应用和各种增值业务的支持功能;
2、软交换与策略服务器间的接口,可使用COPS协议,实现对网络设备的工作进行动态干预;
3、软交换与网管中心间的接口,可使用SNMP协议,实现网络管理;
4、软交换与智能网SCP间的接口,可使用INAP协议,实现对现有智能网业务的支持。
4软交换技术在电力系统中的应用
电力通信网是世界上目前分布最广的网络之一,有光纤、微波、载波等多种传输介质。这就形成了光纤网、微波网等多种网络形式,各种网络都有自己的交换设备、复接设备等,这些网络间的互联互通存在较大的困难。如果信息需要在不同介质的网络间传输,将需要更多的转换环节。这不但造成了资源的浪费,而且对整个电力通信网的管理也带来了很大的不便。软交换技术的引入,将可以解决以下几个方面的问题:
(1)电力通信网中网络互通
电力通信网中的电话网是一种交换网络,而且拥有电力系统独有的载波电话网络;同时电力通信网中也存在计算机网络,它们是以IP协议为基础的分组网络。软交换可以提供支持多种信令协议的接口,可以很好的实现电话网和计算机网之间的信令互通及不同网关的互操作问题。这就是使得计算机网可以更方便地对电话网进行管理和支持,电话网也可以和计算机网络配合,更好地提供服务。
(2)目前,电力通信网中传输的信息主要是语音和数据,但随着网络的演进和计算机技术的不断发展,对视频业务和多媒体业务也提出了新的要求。软交换技术不但能很好地支持语音业务,利用新的网络设施可以提供各种增值业务和补充业务,而且软交换提供了开放式的应用程序接口(API),非常便于提供新业务。这对目前比较流行的电力系统呼叫中心(也称客户服务中心)来说,引入软交换技术无疑是一种明智的选择,基于软交换的呼叫中心可以用更低的成本、更短的周期为用户提供更好的服务,更好地树立电力系统的形象。
(3)统一不同介质的网络
电力通信网中存在多种传输介质,且各自较独立,都各有自己的一套设备,若引进了软交换技术,在一台交换服务器上可对多种介质的信息进行交换。这不但在经济方面避免了设备的浪费,而且提高了网络的可靠性,各种介质的网络达到了一定的融合互通,在不同介质的网络中传递信息时也省掉了复杂的转换环节。在管理上也更方便,只需对一个设备进行维护就可实现整个网络的信息交换。
(4)其他方面的功能
软交换具有操作维护功能(主要包括业务统计和告警等)。对业务繁杂的电力系统来说,引入软交换可以对各种业务进行统一的统计。若出现故障还可以及时地发出告警信号。另外,软交换还可以采集详细的清单,实现对用电量和电话费等的计费。
软交换技术是一种新的技术,其应用将不仅限于以上几个方面。在电力通信网中引入软交换将会产生很多方面的效果。
5结束语
关键词:域名地址服务器
当前,在经济全球化和全球信息化大潮中,人们不仅重视信息及其集成的作用,而且更加重视信息使用者对信息集成的反应和运用。互联网上的域名已为越来越多的人们所关注,因此,了解域名及其对应的IP地址的关系,正确地配置域名服务器,就成为设立网站、使自己在Internet上注册的域名得到体现的关键。
1.IP地址
IP(InternetProtocol)地址就是网络协议地址,是分配给网络节点的逻辑地址。这些网络节点可以是网络中的任何一台主机,提供节点之间的交换信息服务。由于在Internet网络中存在着大量的节点,为了能够在网上找到这个节点,就必须给予标识。IP地址就是一种标识方法,它独立于任何特定的网络硬件和网络配置,使用TCP/IP协议的网络在发送或接收信息时先把数据打包,然后将目标IP地址翻译成MAC(Medi-umAccessControl)硬件的物理地址,这样就可以把数据包准确地发送或接收过来。
每个IP地址是由4个字节共32位组成,每字节之间使用小数点分隔,一般用十进制数字表示。每个IP地址包括两个标识(ID),即网络ID和宿主机ID,同一个物理网络上的所有主机都用同一个网络ID,而网络上的每个服务器、路由器、计算机等都有一个主机ID。比如202.98.180.194即是云南省科学技术情报研究所的一个WWW服务器的IP地址。
2.因特网域名及结构
由于IP地址全是数字代码,既不直观又难于记忆,因特网在IP地址的基础上,提供了一种面向用户的主机名字,即域名。如istiy(InstituteofScientific&TechnicalInformationofYunnan)为我所(云南省科学技术情报研究所)的英文缩写。即为我所在因特网上注册的域名,而(主机名+域名)为我所DNS服务器的主机域名,对应的IP地址就是202.98.180.193。
3.域名解析系统DNS(DomainNameSystem)就是提供域名与IP地址相互映射的网络服务。事实上,DNS是遍布于全世界的一个分布式数据库。它主要负责控制整个数据库中的部分段,每一段中的数据通过客户/服务模式在整个网络上均可存取。DNS的数据库结构,同UNIX文件系统(或MSDOS文件系统)的结构很相似,整个数据库(或文件系统)将根放在顶端,画出来就像一颗倒转的树。在DNS中,根的名字以空字符串“”表示,DNS简单地称其为“根”(Root)或偶而称之为“根域”(RootDomain),在UNIX文件系统中,根以反斜杠“/”表示,被称为“根目录”。如图1所示.
图1在DNS和UNIX文件系统中名称的读法
DNS数据库“”
cn
在Shell32.DLL动态链接库中包括一个函数Shell_NotifyIconA()可通知Windows在任务条右下角加入一个小图标,可惜该函数的详细说明未收入Delphi的帮助文档中。现将实现例程示范如下:
unitpro2;
interface
uses
。。。,Menus,shellAPI;//TNotifyIconData是定义在shellAPI单元的
{自定义消息,当小图标捕捉到鼠标事件时Windows向回调函数发送此消息}
constWM_MYTRAYICONCALLBACK=WM_USER+1000;
。。。。
private
MyTrayIcon:TNotifyIconData;
procedureWMMyTrayIconCallBack(VarMsg:TMessage);messageWM_MYTRAYICONCALLBACK;
//托盘消息处理过程
procedureWMCommand(Varmsg:TWMCommand);messageWM_Command;
//处理托盘图标的右键菜单事件
procedureMinimize(varmess:TWMNCLBUTTONDOWN);messageWM_NCLBUTTONDOWN;
//窗体最小化时的消息处理
。。。。。。。。
procedureTForm1.FormCreate(Sender:TObject);
begin
//将程序窗口样式设为TOOL窗口,避免在任务栏上出现
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
procedureTForm1.FormShow(Sender:TObject);
begin
//设置托盘
Icon.Handle:=LoadIcon(Hinstance,''''MAINICON'''');
MyTrayIcon.cbSize:=SizeOf(TNotifyIconData);//nid变量的字节数
MyTrayIcon.Wnd:=Handle;//主窗口句柄
MyTrayIcon.uID:=1;//内部标识,可设为任意数
MyTrayIcon.uFlags:=NIF_ICONorNIF_TIPorNIF_MESSAGE;//指明哪些字段有效
MyTrayIcon.uCallBackMessage:=WM_MYTRAYICONCALLBACK;//回调函数消息,将自定义托盘消息传递进去
MyTrayIcon.hIcon:=Application.Icon.Handle;//要加入的图标句柄,可任意指定
StrCopy(MyTrayIcon.szTip,PChar(Caption));
Shell_NotifyIcon(NIM_ADD,@MyTrayIcon);
ShowWindow(Handle,sw_Hide);
//Visible:=False;//当程序启动时就最小化在托盘区即Form.Create时启用此语句
Application.ShowMainForm:=False;
SetForegroundWindow(Application.Handle);
end;
////消息过程实现
procedureTForm1.WMMyTrayIconCallBack(varMsg:TMessage);
varCursorPos:TPoint;
begin
caseMsg.LParamof
WM_LBUTTONDBLCLK://双击消息:弹出主窗口
begin
Visible:=notVisible;
Application.ShowMainForm:=Visible;
SetForegroundWindow(Application.Handle);
end;
WM_RBUTTONDOWN://鼠标右键:弹出菜单
begin
GetCursorPos(CursorPos);
{Popupmenu1.Popup(CursorPos.X,CursorPos.Y);
popupmen1里面就可以加入显示主窗口、退出等功能。这个右键菜单可以是静态的,如上面一句来弹出;也可以动态建立,如下面所示的方法:}
pm:=createpopupmenu;//建立一个Hmenu,pm:hmenu;
AppendMenu(pm,0,ord(''''A''''),''''关于....'''');//在指定的菜单里添加一个菜单项
AppendMenu(pm,0,Ord(''''B''''),''''&Exit'''');
//加入菜单事件---》处理WMCOMMAND消息即可
TrackPopupMenu(pm,Tpm_BottomAlignorTpm_RightAlign,CursorPos.x,CursorPos.y,0,handle,nil);
//在图标上方显示该弹出式菜单
end;
end;
end;
procedureTForm1.WMCommand(varmsg:TWMCommand);
begin
Casemsg.ItemIDof
Ord(''''A''''):showmessage(''''我的右键菜单!'''');
Ord(''''B''''):Self.close;//关闭程序主窗体
elseinherited;
end;
end;
procedureTform1.Minimize(varmess:TWMNCLBUTTONDOWN);//应用程序最小化消息处理
begin
ifMess.Hittest=htReducethen
Self.Hide
elseinherited;
end;
procedureTForm1.FormClose(Sender:TObject;varAction:TCloseAction);
var{程序被关闭时通知Windows去掉小图标}
nid:TNotifyIconData;
begin
nid.cbSize:=sizeof(nid);//nid变量的字节数
nid.uID:=1;//内部标识,与加入小图标时的数一致
nid.Wnd:=Handle;//主窗口句柄
监视、控制计算机的使用
基于WindowsNT/2000的应用系统中,一些关键的人机交互工作站,常需要了解并记录所有操作人员操作计算机的情况。如:在工业控制领域,一些使用计算机对设备进行监视和控制的工作站,需要非常高的可靠性和安全性。在这些工作站上通常要求只能运行系统所要求的应用程序,不能运行与系统无关的程序,同时要求对计算机操作人员的所有原始输入进行记录,以便出现事故(如操作故障、程序异常退出)的时候,用来分析是人为原因,还是系统原因造成的。基于以上需求,我们必须解决两个问题,一个是如何记录操作人员的输入,另一个是如何控制操作人员的输入。在DOS、Windows3.1、Windows95/98中都可以编写响应键盘和鼠标输入的中断处理程序,截取来自键盘和鼠标的输入,记录、分析后依情况分别处理。但是在WindowsNT和Windows2000中,这样的解决方法将不再行得通,这是因为WindowsNT/2000操作系统为了提高系统的可靠性,不再允许应用程序直接对系统设备的底层进行操作。这样,用户的应用程序将不能够对计算机的端口地址进行读写操作,所以在WindowsNT/2000操作系统中对计算机端口的读写是无效的。另外一种方法能够非常完美地解决这个问题,就是可以编写操作系统的设备驱动程序来解决,但是要编写系统的设备驱动程序,必须对WindowsNT/2000的系统底层以及整个系统架构有比较深入的了解。而且设备驱动程序的编写、调试都比较困难,同时这方面的资料也比较少。所以本文没有采取这种方法,而是采用微软公布的标准Win32函数和钩子技术来解决这个问题,比较方便而且快捷。在WindowsNT/2000操作系统中,称各种输入为事件(Event),所有的键盘、鼠标输入事件以及其他事件都是通过消息传递处理机制来得到响应的。控制、监视计算机实际上是控制、监视事件消息流。Windows操作系统为这种应用提供钩子(Hook)技术。这种技术的要点就是在操作系统的消息传递处理机制上外挂一个我们定义的函数,可以使用这个函数来监视、控制系统的事件消息流。本文采用的就是这种方法,这种方法要求将所有的程序代码放入系统可以加载的动态链接库中。下面我们以键盘输入的监视和控制为例详细叙述这种方法。其总体思路如下:首先,定义自己的钩子函数。其次,安装自定义的钩子函数,此后钩子函数在后台开始工作。一旦系统发现击键动作或者鼠标动作,系统将马上调用该自定义的钩子函数,并将事件消息传入,供程序分析判断。它可以监视所有的击键和鼠标动作,与DOS时代的中断调用有非常相似的地方。最后,卸载自定义的钩子函数。钩子函数的定义微软的钩子技术的原理就是应用程序可以在系统的消息处理机制上外挂一个子程序,在消息尚未到达目的地之前,用该子程序来截获此消息,以进行监视和控制。我们这里使用的是WH_KEYBOARD_LL类型的钩子函数,这种类型的钩子函数可以截获所有的键盘事件,即敲击键盘上的任何一个键,我们自定义的钩子函数都可以知道。该类型钩子函数要求安装自定义的钩子函数必须是以下原型:LRESULTCALLBACKLowLevelKeyboard-Proc(intnCode,WPARAMwParam,LPARAMlParam);其中各参数的含义如下:intnCode:用来决定钩子函数如何处理事件消息的代码,参数的取值为HC_ACTION时,参数wParam、lParam包含了所需的键盘消息事件信息。WPARAMwParam:键盘消息事件的类型ID。该参数有四种可能的消息类型取值:WM_KEY-DOWN,WM_KEYUP,WM_SYSKEYDOWN,WM_SYSKEYUP.LPARAMlParam:指向一个类型为KBDLLHOOKSTRUCT的结构指针。该结构容纳了底层键盘输入事件的详细信息,它的定义如下:typedefstructtagKBDLLHOOKSTRUCT{DWORDvkCode;//一个范围从1到254的虚拟键码DWORDscanCode;//键盘的硬件扫描码DWORDflags;//一系列的标志位//0比特位指示该键是不是扩展键(如:功能键,或数字小键盘上的键),1表示是,0表示否//1~3比特位保留//4比特位用来区分该事件是否来自Win32函数keybd_event()调用,1表示是,0表示否//5比特位为状态描述码,如果ALT键按下,该位是1,否则是0。//6比特位保留。//7比特位是变换状态位,键被按下为0,键被释放为1。DWORDtime;//该消息事件的时间标记。DWORDdwExtraInfo;//该消息的其他扩展信息。}KBDLLHOOKSTRUCT,FAR*LPKBDLLHOOKSTRUCT,*PKBDLLHOOKSTRUCT;实际的钩子函数的框架如下:LRESULTCALLBACKMyLowLevelKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){BOOLbSkipThisEvent=FALSE;HWNDhwndForeground;HWNDhwndFocus;DWORDdwCurrentThreadId;DWORDdwWindowThreadId;if(nCode==HC_ACTION){PKBDLLHOOKSTRUCTp=(PKBDLLHOOKSTRUCT)lParam;//系统传递来的键盘输入事件信息指针switch(wParam){caseWM_SYSKEYUP:caseWM_KEYUP://ifkeyup/*这段代码用来获得当前拥有输入焦点的窗口的窗口句柄,以便获得该窗口的相关信息*//*获得前端窗口(即用户当前正在工作的窗口)的句柄,创建该窗口的线程通常拥有比其他线程稍微高一些的优先级。*/hwndForegroud=::GetForegroundWindow();dwCurrentThreadId=::GetCurrentThreadId();//当前线程的Id//获得产生前端窗口hwndForeground的线程Id值,用来惟一表示一个线程dwWindowThreadId=::GetWindowThread-ProcessId(hwndForegroud,NULL);/*下面这一行代码非常重要,它的作用是使当前线程(dwCurrentThreadId)的输入处理机制依附到创建前端窗口的线程(dwWindowThreadId)的输入机制上,否则你将得不到当前拥有键盘输入焦点的窗口句柄。这是因为在WindowsNT/2000操作系统通常创建不同的线程来处理相互独立的输入过程,每一个输入过程都拥有自己的输入状态(焦点、键盘状态、队列状态等),通过AttachThreadInput调用,操作系统将允许调用线程获得或者设置其他线程生成窗口的输入状态信息。只有执行该系统调用,才能够得到当前拥有键盘输入焦点的窗口的窗口句柄,否则GetFocus()系统调用将返回NULL。在这一点上WindowsNT/2000与Windows9X操作系统有很大不同,这也正是WindowsNT/2000比Windows95/98操作系统可靠性、安全性更好的一个原因*/AttachThreadInput(dwCurrentThreadId,dwWindowThreadId,TRUE);////获得拥有键盘输入焦点的窗口的窗口句柄hwndFocus=::GetFocus();if(hwndFocus||hwndForeground){charwnm[256];wnm[0]=0;//变量定义后,使用之前一定要初始化。//获得该窗口的窗口标题,就是在窗口标题栏上显示的内容::GetWindowText(hwndForeground,wnm,255);charclsnm[266];clsnm[0]=0;//获得该窗口的类名字::GetClassName(hwndFocus,clsnm,255);//获得该窗口的风格LONGstyle=::GetWindowLong(hwfocus,GWL_STYLE);/*如果你只对部分窗口感兴趣的话,可以通过下面的形式进行过滤,从而只处理你所感兴趣的某些窗口的输入事件*/if((stricmp(clsnm,“edit”)==0)||(0x0020&style)||strstr(wnm,“MyTestWnd”)){//你可以在此记录供以后分析使用的相关信息LLKEY_OutputToLog(hwfore,hwfocus,wnm,clsnm,p);}}caseWM_KEYDOWN:caseWM_SYSKEYDOWN:if(p->vkCode==VK_LWIN)
*该行代码用来将键盘上的左Win系统键(就是带有微软旗帜图案的那个键,注意是左边的那个)屏蔽掉,如果在代码执行后,用户敲击键盘上的左Win系统键,将不会弹出Windows的开始菜单。你可以根据你的需要屏蔽任何你所要屏蔽的键,从而达到控制计算机使用的目的。*/bSkipThisEvent=TRUE;break;}endofswitch}//endofifif(bSkipThisEvent)//如果是需要屏蔽的键,一定要返回1给操作系统,切记。return1;elsereturnCallNextHookEx(NULL,nCode,wParam,lParam);/*调用钩子函数链,以便使其他应用程序能够正常工作*/}这里需要注意的是,如果nCode小于零,钩子函数必须返回CallNextHookEx函数调用的返回值。如果nCode>=0,建议仍然返回CallNextHookEx函数调用的返回值,否则其他安装了WH_KEYBOARD_LL钩子函数的应用程序将收不到系统发送的钩子通知,从而使其他应用程序功能发生异常。不过我们也可以利用系统的这一个特点,来屏蔽一些功能键,禁止某些系统特性,实现控制计算机使用的想法。安装钩子函数接下来的工作就是将我们定义好的钩子函数安装到系统中。用来安装用户自定义钩子函数的Win32函数是SetWindowsHookEx,该函数的原型如下:HHOOKSetWindowsHookEx(intidHook,//将要安装的钩子函数的钩子类型HOOKPROClpfn,//我们自定义的钩子函数的函数地址HINSTANCEhMod,//应用程序的实例句柄,即容纳了钩子函数的动态链接库的句柄。如果钩子函数所在地址空间在当前进程的地址空间,hMod应该为NULL.DWORDdwThreadId//钩子起作用的线程Id,如果该值为零,则对系统中所有线程都起作用);其中idHook指定了安装的钩子函数的类型,不同类型的钩子函数可完成不同应用功能,而且不同版本的Windows操作系统支持的钩子函数的种类也不尽相同,在本文我们主要介绍的是WindowsNT/2000操作系统中目前公开支持的最底层的两种钩子类型:WH_KEYBOARD_LL和WH_MOUSE_LL。这两种类型的钩子函数在WindowsNTServicesPack3及其以后的版本,包括Windows2000Professional中得到很好的支持。这两种类型的钩子函数可以分别监视底层的键盘和鼠标输入事件,在系统将事件分发到相应的接收目的地之前将它截获,交给用户自定义的钩子函数来处理。下面以键盘钩子为例详细说明,鼠标钩子与此类似,不再赘谈。在这里,我们的安装函数和我们定义的钩子函数放在同一个动态链接库中。其中g_hWin32NT_DllHandle是我们定义的全局变量,类型是Handle,在系统调用动态链接库的入口函数时,将hModule的值赋给g_hWin32NT_DllHandle。//下面是动态链接库的入口函数DllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){g_hWin32NT_DllHandle=hModule;/*保存该值,以后在安装自定义钩子函数的时候要使用该值*/returnTRUE;}//下面的函数用来安装我们自定义的钩子函数HHOOKg_hhkLowLevelKybd;//以后在卸载自定义钩子函数时,要用到该值voidStartMyHook(void){g_hhkLowLevelKybd=SetWindowsHookEx(WH_KEYBOARD_LL,::MyLowLevelKeyboardProc,(HINSTANCE)g_hWin32NT_DllHandle,0);}/*g_hWin32NT_DllHandle是动态链接库的句柄,我们定义的钩子函数放在该动态链接库中。该句柄是在操作系统加载动态链接库时,由操作系统调用DllMain()传入的*/如果安装成功,系统调用将返回一个钩子函数的句柄;如果失败,将返回NULL。将来在卸载我们自定义的钩子函数时要使用该句柄。所以必须将返回值保存到一个全局变量中。安装成功后,该函数返回。从现在开始,键盘的任何击键动作都将被我们定义的钩子函数捕捉到,包括各种系统功能键。操作系统在后台将自动异步地调用我们自定义的钩子函数进行处理,并且不会影响任何当前正在进行的各种工作,也不会对系统有任何不良影响。卸载钩子函数当我们的应用程序退出时,或者不再需要钩子函数的处理时,必须卸载我们自定义的钩子函数。//下面的Win32函数用来卸载我们自定义的钩子函数UnhookWindowsHookEx(g_hhkLowLevelKybd);至此,我们已经比较完整地介绍了底层键盘钩子技术的应用方法,对于鼠标输入事件的控制与监视的方法,与此完全类似,读者可依照本文完成自己的功能。并且在你的应用程序中,可以根据需要,多次安装、卸载钩子函数。不过有一点读者要注意,就是在程序调试时,一定不要同时将这两种类型的钩子函数都进行设置,因为一旦程序处理上有错误,操作系统将不能获得任何操作消息,计算机只有重新启动。读者可以将本文介绍的方法应用到许多场合,比如在运行某些关键的任务时,为避免人机交互的干扰,可以锁定键盘和鼠标的输入。待任务完成时,再恢复正常的键盘和鼠标的输入。另外,屏蔽某些不想让用户使用的功能键等等。
关键词:自由软件
《自由软件》的提法对于计算机用户来说并不是什么新鲜事。而自由软件的概念、自由软件的思想、自由软件的情怀、自由软件的意义、自由软件的范围,特别是开发应用自由软件的观念,或许不同的人有各自的理解,甚至有很大的差异。
笔者自诩是水利水电工程地质计算机自由软件的倡导者,两年前即将“韦港字典”作为自由软件公开进行交流,从而带动了更多的自由软件的广泛交流。刊登于《工程地质计算机应用》1996年第3期的《赞自由软件》,阐明了笔者对自由软件的个人观点。本文“再赞”自由软件,其出发点仍在于希望通过自由软件的交流来促进工程地质软件的发展,为本专业计算机的普及和计算机应用水平的提高多探一条路。本刊不断刊出一些工程地质专业的自由软件介绍,相信探索这条路是有意义的,有希望的,也是符合工程地质专业特点的。
1自由软件神侃
1.1自由软件的起源、组织和自由软件思想
自由软件起源于美国。麻省理工学院的研究人员M.Stallman不满于一些软件厂家的傲慢与狭隘,将自己开发的软件产品与他人共享,提出了自由软件的概念,1984年成立了“自由软件基金会”,全球千千万万软件专家纷纷响应,形成了大量高质量的自由软件。
自由软件并无权威性的严格定义,但被PC-Talk的作者AndrewFluegelman注册了Freeware这一术语。洋人取的名字Freeware,将它直译成中文就成了自由软件这一专用词,也有译成免费软件的。Freeware这个词发明得实在太妙,简直就是妙不可言。十分妙哉非常妙哉相当妙哉的就是无论将Freeware直译还是意译,她的中文词意都是十分清楚的。自由的意义在于此类软件可以自由拷贝自由使用自由交流;免费的含义就更为明白:不要钱,白送!显然,自由(免费)软件的字面意义与实际意义是绝对的名符其实!
中国软件行业协会中的自由软件分会,于1993年4月面向全国各行各业组建的自由软件联谊网,为国内的自由软件交流形成气候确立了合法身份。多年来,联谊网一直在《软件世界》杂志上刊登自由软件信息和介绍,并为全体网员免费拷贝自由软件。时至今日,联谊网组织在扩大,内涵在外延。1997年6月17日,中国软件行业协会国际自由软件应用研究发展分会正式宣告成立,在北京举行了隆重的成立大会。《计算机世界》报从1997年9月起,开辟了“自由软件系列谈”专栏。各类计算机报刊杂志几乎每期都刊有自由软件的下载网址。至此,自由软件在中国跃上了一个新台阶。
自由软件的思想是哪个阶级的?如此命题在今天看来确实荒唐,然!在荒唐年代7个音符里还有阶级斗争呢。自由软件是一种计算机软件,这种软件在功能与应用方面与其它性质的软件没有严格的本质区别和范围界定。而将自由软件的存在上升成为哲学概念,升华成为一种思想,一种理念,让哲学家思想家们去寻找理论依据,经受实践检验,则大有文章可做。同样,将自由软件的实践作为文化进行探讨,形成一种自由软件文化,照样可以让文人们有写不完的题材,做不完的文章。
回到现实中来,自由软件只不过也是计算机程序,怎么还有思想呢?别太复杂化神秘化悬虚化深沉化,其实,她就是中国人再熟悉不过的“为人民服务”的思想!奉献的思想,这种思想不是社会主义的专利,其它主义也有,否则为什么Freeware一词被资本主义的洋人注了册呢。
1.2自由软件的意义
自由软件从诞生之日起就表现出一种旺盛的生命力,得到业界认可并迅速遍及全球,证实了她的存在价值和深层次的社会意义。
在芬兰赫尔辛基理工大学从事研究工作的科学家宫敏先生使用自由软件上了瘾,得出结论:自由软件优于商业软件!他在国外的体会是:鉴于自由软件的水平之高、应用面之广并有源代码,广泛提倡使用自由软件、学习自由软件、参与开发自由软件,对于方便用户使用、保护用户投资、提高软件应用与开发的综合水平、打破商业软件的垄断和控制都具有重大意义,是非常必要的。
自由软件有无商业意义,回答是肯定的。一个向公众提供好的自由软件的公司或企业,对于树立公司形象将超过铺天盖地的广告效应。自由软件的传播不必花广告费,自由拷贝转送过程中,就义务为软件作了免费广告。一夜暴富的Netscape公司,很大程度上就是因为始终坚持免费发放自己开发的导航者浏览器(NetscapeNavigator),在Internet上占领先机,拥有一笔无法估量的财富--传遍网络的声誉,从而获得70%以上Internet产品的市场份额。Netscape公司在微软公司探险家浏览器(InternetExplorer)的穷追猛逼之下,宣布将新版本浏览器软件的源代码上载到Internet主页让需要者免费下载。网上搜索引擎Yahoo一直未改初衷,始终坚持免费向用户提供信息检索查询服务,每天吸引了上百万的网络来访者,大量商业广告为Yahoo带来了滚滚财源。
自由软件具有满足表现欲的奇效,可以毫无约束地表现自己,就象Internet上的个人主页一样,向世人尽情地展示自己的才华。个人主页没有访问者,那就是白占服务器的空间;自己编的程序不提供给他人用,等于白搭。计算机是年轻人的事业,年轻人具有极强的表现欲望,自由软件是电脑狂的最好表现方式,也是编程者个人价值的充分体现。
软件具有很强的时效性。操作系统在疯狂升级,用户的口味也在不断翻新,老的程序在新操作系统上运行起来总是那么别扭。计算机编程语言层出不穷,编程工具功能日益强大,程序员的编程工作量也有所减轻,用比以往少许多的工作量编出的应用软件,其功能更强大速度更快捷。例如第五代函数型编程语言--J语言,与传统的编程语言相比,就先进多了。用BASIC编一个求平均值的计算程序需写8行代码,J语言仅用一行;用BASIC编写的求解二元一次线性方程组程序需100余行代码,J语言仅需两行。软件的时效性说明,今天的应用软件实在没有什么保存和收藏价值,更无增值意义。一种软件一旦成为明日黄花,也就意味着沦落到毫无价值无人问津的凄凉境地。不能形成商品的软件走自由软件之路实为明智之举,这也许是一些电脑程序狂随时将自己编的软件向社会无偿提供的原因之一。
自然,人们对自由软件最关心的是她的“免费”意义。免费似乎成了Internet上最基本最流行的理念,许多计算机黑客的原始动机就是信息应该无偿获得,因此,黑客们(计算机高手)便在此原始动机的驱驶下肆无忌惮地猛闯各类计算机网络系统,让政府官员军方要员网络管理员们胆战心惊。无偿获得信息的原始动机导致了黑客的产生,软件厂家的傲慢、狭隘、垄断和控制,创造了自由软件的辉煌。计算机用户们引吭高歌:我爱你!自由软件。
自由软件的文化内涵是丰富的,自由软件的自由情怀是浪漫的,自由软件的思想是先进的,自由软件的奉献情操是高尚的,自由软件的使用价值是公认的,自由软件的社会意义是深远的……。总之,自由软件是人类社会步入高级阶段的必然产物。
2Internet上的自由软件资源
Internet的全球化为自由软件的发展提供了绝妙的生存空间和交流通道,大约有40%的Internet服务器所使用的软件是从网上免费获得的。Internet上有大量的站点存放有成千上万种自由软件、共享软件(Shareware)、和公共软件(PublicDomainSoftware),还有专门存放此类软件供人们下载的网址,如等等。一些此类软件还有适合多种软硬件平台的版本,如DOS版、Windows版、Macintosh版和UNIX版。
“自由软件库”作为Internet的一个重要组成部分,在国外已经非常普遍,大量著名的服务站点为自由软件的交流和发展起到了很好的推动作用。“中国自由软件库”1997年8月在国家经济信息网上正式开通,网址:,存有80G容量的自由软件(97年8月公布),堪称是世界上规模最大的自由软件档案库之一。国内许多ISP也在自己的网页上开辟有“自由软件”栏目,如瀛海威、东方网景等。时至今日,自由软件的交流也就不再仅限于磁盘拷贝这一业界古老的媒体传播形式了。
“免费”是Internet的最大魅力,然而“免费”在Internet上远不止仅限于自由软件!她还包括免费网址、免费主页、免费Email、免费查询、免费教科书、免费服务、免费…。利用搜索引擎Yahoo,在查询词条中输入“free,Internet,stuff”,即可找到一些专门收集免费网上资源的网站,国内四通利方网站中的《网上免费服务大全》就是这样的一个网站。
总之,Internet上的免费资源多如牛毛,信手拈来几个网址可以一试:
中国自由软件库:;瀛海威时空:;
中国经济信息网:;四通利方:;
共享软件经典:;;
下载软件的好去处:;
热门免费电子函件:。
3工程地质软件何处去初探
水利水电工程地质专业的应用软件分散、标准化程度低,多为各单位或个人自主开发的自用软件,也有一些与高校或科研单位合作针对某一工程而开发的专门性软件。前者用户群有限,没有形成规模或事实标准,软件开发者和用户之间是单位与单位之间的转让关系(尽管也存在买卖关系,但算不上商品软件,原因请见参考文献1);后者由于针对性较强,从特殊到一般显然有些勉强,也没见到有多少是得以推广应用的。尽管在许多科技成果鉴定意见中都美言有推广价值,实际上正如北大方正集团的掌门人王选教授所言,谁要相信那些科研成果的鉴定意见,中国就是世界第一科技大国。多年来,水利水电系统的确也没有进行过规模性的投入和开发,更没有正规的开发商或软件组织来研究到底我们应该开发什么样的软件,上什么档次,以什么为标准,当然也就不具备象样的商业意义。
工程地质软件到底向何处去?这一长期困惑我们的疑难命题,随着勘测设计市场化进程的加快,冲突与矛盾将更加复杂化。新机制在落后的技术基础上运作,对于进入市场竞争是极为不利的,而技术的革命性进步又要面对尚在过渡中的管理机制的约束,这种进步更将步履维艰。专业软件的开发需要大量投入,谁来投入?谁来组织、研究、系统分析、总体设计?谁来实施?组建协作网的目的之一,是希望走开放联合之路,联合各单位共同投入,建立标准,高效通用。然而,协作网这样一种松散的专业技术性质的群众组织,不具备任何约束效力,完全是一种自愿合作的运作机制,能否完成这一历史使命,有待于实践去检验。
当前或者说近期我们应该为地质软件做些什么?请大家讨论,最好能提出一些可以操作的解决方案。所谓领导重视,国家支持,总院组织,联合开发等等大框架,不具备实际的操作意义。根据本系统的实际情况,两年前我们就提出走自由软件之路的倡议,希望各单位和地质计算机爱好者们将自己开发的不能形成商品的软件贡献出来广泛进行交流,得到了积极响应。成勘院任鸣春专家提供的“AutoCAD图案生成器”工具,随“标准图例库”软件发至各网员单位,反映良好。最近又有长江勘测技术研究所的王秋明女士向协作网提供自由软件。衷心感谢他们。
为了我国的水利水电勘测事业,为了工程地质专业学科的发展,为了使本专业已经落后的计算机应用现状改观,希望我们的地质计算机专家,将你们的聪明才智贡献出来,服务于勘测事业,服务于社会。协作网将为本专业的自由软件交流提供广阔的天地。自由软件永存!
参考文献:1韦港,赞自由软件,《工程地质计算机应用》,1996年第3期
关键词数据库扫描多表联结子查询
1如何优化Parse
1.1SQL语句的Parse处理步骤:
1)计算语句值
2)共享池中有无与此语句值相同的语句?
3)共享池中有与此语句字符完全匹配的语句?
4)准备要运行的SQL语句
5)为新语句在共享池中创建空间
6)将语句存放在共享池中
7)修改共享池图,标明语句的值和在共享池中的位置
8)执行准备好的SQL语句
最理想的是,语句只执行1、2、3和8步来进行处理。不经过2、3步来测试被传给Oracle的语句要使用1~8步进行处理。只经过1、2、3、8的SQL语句要比经过1~8步的语句更为有效。
1.2在共享池中重用SQL语句
当SQL语句被传递给Oracle处理时,其秘诀是重复使用已经在共享池中的语句,而不是让Oracle在接受语句时去准备新的语句。前面表明,如果Oracle接受了一个与共享池中的语句相一致的语句,就重用共享池中的语句。
Oracle提供在数据库中存储代码的能力。当应用系统开始运行时,从数据库中读取代码(可用PL/SQL语句编制)并像其它语句那样传递到共享池中去处理。从数据库中取出的代码是编译过的并驻留在共享池中。
可以利用数据库中存储的程序代码设计应用系统,检查所有的事务处理以及主要的通用的过程,研究现有的应用系统并把主要的处理程序转换为数据库中存储的程序代码。在Oracle中存储代码可以通过过程、程序包、函数、触发器等来实现。
2如何优化Execute和Fetch
2.1避免无计划的全表扫描
全表扫描连续从表读取所有数据,而不管数据是否与查询有关。避免不必要的全表扫描有两个充足理由:1)全表扫描没有选择性
2)过全表扫描读取的数据很快从SGA的缓冲区移走(如果正在扫描的表不是“高速存储”的表)
在基于规则优化的情况下,如果下列任何条件在SGA语句出现,就要对一个表进行全表扫描。
1)该表无索引
2)对返回的行无任何限定条件(如无Where语句)
3)对数据表与任何索引主列相对应的行无限定条件。例如,在City-State-Zip列上创建了三列复合索引,那么仅对State列有限定条件的查询不能使用这个索引,因为State不是索引的主列。
4)对索引主列的行有限定条件,但条件或者是NULL或者是不相等。例如,City列上存在索引,在所有下列情况下都不会使用索引。
Wherecityisnull
Wherecityisnotnull
Wherecity!=’liaoning’
5)对索引主列的行有限定条件,但条件在表达式里使用。例如,如果在City列上索引,那么限定条件
WhereCity=’liaoning’
可以使用索引。然而,如果限定条件是
WhereUPPER(City)=’liaoning’
那么不会使用City列上的索引,因为City列在UPPER函数里。如果将City列与文本字符串联结在一起,也不会使用索引。例如,如果限定条件是
WhereCity||’x’like‘liaoning%’
那么不会使用City列上的索引。
6)对索引主列的行有限定条件,但条件使用Like操作以及值以‘%’开始或者值是一个赋值变量。例如,在所有下列情况下都不会使用索引:
WhereCitylike‘%aonin%’
WhereCitylike:City_Bind_Variable
如果表小、索引列无选择性,基于开销的优化器可能决定使用全表扫描。
2.2只使用选择性索引
索引的选择性是指索引列里不同值的数目与表中记录数的比。如果表有1000个记录,表索引列有950个不同值,那么这个索引的选择性就是950/1000或者0.95。最好的可能性选择是1.0。依据非空值列的唯一索引,通常其选择性为1.0。
如果使用基于开销的最优化,优化器不应该使用选择性不好的索引。
索引的选择性是指索引列里不同值的数目与表中记录数的比。如果表有1000个记录,表索引列有950个不同值,那么这个索引的选择性就是950/1000或者0.95。最好的可能性选择是1.0。依据非空值列的唯一索引,通常其选择性为1.0。
索引的选择性是指索引列里不同值的数目与表中记录数的比。如果表有1000个记录,表索引列有950个不同值,那么这个索引的选择性就是950/1000或者0.95。最好的可能性选择是1.0。依据非空值列的唯一索引,通常其选择性为1.0。
2.3管理多表联结
Oracle提供了3个联结操作:NESTEDLOOPS、HASHJOIN和MERGEJOIN。MERGEJOIN是一组操作,在所有行被处理完之前,它不返任何记录给下一操作。NESTEDLOOPS和HASH是行操作,因此会很快将第一批记录返回给下一个操作。
在每个联结选项里,必须执行一些步骤以获取最好的联结性能。如果没有适当地优化联结操作,那么联结所需的时间也许随着表的增长而呈指数级地增长。
2.4管理包含视图的SQL语句
如果查询包含视图,优化器有两种执行查询的方法:首先解决视图然后执行查询,或者把视图文本集成到查询里去。如果首先执行视图,那么首先完成全部的结果集,然后用其余的查询条件做过滤器。
首先解决视图会导致查询性能下降的问题,这取决于所涉及表的相对大小。如果视图被集成到查询里,那么查询的条件也可以应用于视图里,并且可以使用一个小一些的结果集。然而在一些情况下,也许可以通过视图分离组操作提高查询性能。
如果一个视图包含集合的操作(如Groupby、SUM、COUNT或者DISTINCT),那么视图不能被集成到查询里去。
不使用组或者没有集合操作的视图的SQL语法可以被集成到大的查询里去。
2.5优化子查询
当使用自查询时,也许会碰到几个独特的问题。涉及子查询的查询潜在问题如下:
?也许在执行完查询的剩余部分前执行子查询(与执行分组功能的视图相似)。
?子查询也许要求特定的提示,但这些提示不直接与调用该子查询的查询有关
?可以作为单个查询执行的子查询也许被代替写成几个不同的子查询。
?也许在使用notin子句或者notexists子句时,不能在最有效的方式下进行子查询的存在查询。
1)当执行子查询时
如果一个查询包含子查询,那么优化器有两种完成查询的方法:首先完成子查询,然后完成查询(“视图的方法”),或者将子查询集成到查询里去(“联结”的方法)。如果首先解决子查询,那么整个子查询的结果集将首先被计算,并且用查询条件的剩余部分做过滤器。如果没有使用子查询去进行存在检查,那么“联结”方法将通常要比“视图”方法完成得好。
如果一个子查询包括集合操作,如groupby,SUM或者DISTINCT,那么不能集成子查询到查询的其余部分里去。非集成的子查询限制了提供给优化器的选项。
2)如何组合子查询
一个查询可以包含多个子查询,使用的子查询越多,集成或者重写它们到大的联结里就越困难。既然有多个子查询使集成困难,就应该尽可能地组合多个子查询。
3)怎样进行存在检查
有时子查询不返回行(记录),但可以进行数据正确性检查。在相关表里的记录或者存在或者不存在的逻辑检查,称为存在检查。可以使用exists和notexists子句提高存在检查的性能。
2.6管理对非常巨大的表的访问
随着表增长到比SGA的数据块高速缓冲区存储器的空间显著大时,需要从另一个角度优化对这个表的查询。
1)问题
当表和它的索引小的时候,在SGA里可以有高度的数据共享。多用户读表或索引范围扫描可以反复使用同一个块。随着表的增长,表的索引也在增长。随着表和它的索引增长到比SGA里提供的空间大时,范围扫描需要的下一行将在SGA里找到的可能性变小,数据库的命中率将减小。最后,每一个逻辑读将要求一个单独的物理读。对使用非常大的表的优化方法着眼于特别的索引技术和有关索引的选择。
2)管理数据接近
在访问非常大的表期间,如果倾向于继续使用索引,那么应该关注数据接近,即逻辑相关记录的物理关系。为了使数据最大限度地接近,应该连续往表里插入记录。记录按通常在表的范围扫描里使用的列排序。
3)避免没有帮助的索引扫描
如果要对大表使用索引扫描,那么不能假定索引扫描将比全表扫描执行得更好。不紧跟表访问的索引唯一扫描或范围扫描执行得比较好,但紧跟通过RowID的表访问的索引范围扫描也许执行得差。随着表增长到比数据块高速缓冲存储器大得多,最终,索引扫描和全表扫描间的平衡点打破。
4)创建充分索引的表
如果表中的数据相当稳定,充分索引一个表是很有用的。创建一个复合索引,它包括所有在查询期间通常选择的列。在查询期间,查询要求的所有数据可以通过索引访问提供,不需要任何表访问。
5)并行选项
可以把一个数据库任务,比如Select语句,分为多个单元的工作,由多个Oracle进程同时执行。这种能够允许数据库的单个查询活动由多个协调的进程透明地进行处理的能力,称为并行查询选项(PQO)。
并行选项调用多个进程来利用空闲的系统资源,以减少完成任务所需要的时间。并行选项并不减少处理过程所要求的资源数量,而是把处理的任务分散给多个CPU。为了从并行选项中得到最大的好处,应该使CPU和磁盘上的I/O不要满负荷使用。因为并行的目的是使更多的CPU和磁盘同时参与处理数据库的命令,一个缺乏CPU和I/O资源的服务程序是不能从并行选项中得到好处的。
2.7使用UNIONALL而不是UNION
最常用的集操作是UNION操作,UNION操作使多个记录集联结成为单个集。UNION操作的数学定义是返回记录的单个集并且没有重复的行,所以在合并结果集里,Oracle只返回不同的记录。
当UNION操作用作SQL语句的一部分时,唯一性要求强迫Oracle移走重复的记录。Oracle的移走重复记录的功能是SORTUNIQUE操作,它与使用DISTINCT子句时执行的操作类似。
UNIONALL操作允许重复。UNIONALL不要求SORTUNIQUE操作,从而节省了开销。UNIONALL是一个行操作,所以当其变为有效就返回给用户。而UNION包括SORTUNIQUE集操作,在全部记录的集的排序结束前,不返回任何记录给用户。
当UNIONALL操作产生巨大的结果集时,不需要任何排序便返回记录给应用的事实意味着第一行检索的响应时间更快,并且在许多情况下,可以不用临时段完成操作。
在有些情况下,UNIONALL和UNION不返回同样的结果。如果在应用环境中,结果集并不包含任何重复的记录,则可以把UNION转换成UNIONALL。
2.8避免在SQL里使用PL/SQL功能调用
对于增加PL/SQL的使用,许多用户试图利PL/SQL功能的优势产生可重复使用的代码。其中一个强迫重复使用PL/SQL功能的方法是在SQL语句里使用。例如,可以创建一个将国际货币转换为US$的函数。这个函数称为US$。示例如下:
selecttransaction_type,US$(amount,currency)
frominternational_transaction
whereUS$(amount,currency)>1000;
执行前面的SQL语句没有所期望的那样好。在测试时,它的性能大约比下面得出相同结果的SQL语句慢大约几十倍。
selecttransaction_type,
amount*exchange_rateUS$
fromexchange_rateer,international_transactionit
whereer.currency=it.currency
andamount*exchange_rate>1000;
响应时间不同的原因是混合PL/SQL和SQL时,Oracle使用的机制不同。在SQL查询里嵌入PL/SQL功能时,在执行时,Oracle将调用分成两部分:用带有赋值变量的SQL语句代替功能调用以及对每一个函数调用的无名PL/SQL块。
selecttransaction_type,:a1
frominternational_transaction
where:a1>1000
和
BEGIN
:a1:=US$(:amount,:currency);
END
对在international_transaction表里的每一行,将执行在前面示例里显示的无名块两次。无名块调用导致查询响应时间的剧增。应该避免在SQL语句里使用PL/SQL功能调用。
参考文献
[1]瓮正科,王新英著.Oracle8.XForWindowsNT实用教程[M].北京:清华大学出版社,1999.
[2]萨师萱,王珊著.数据库系统概论[M].北京:高等教育出版社,2000.2.
[3]EyalAronoff,KevinLoney,NooraliSonawalla著,李逸波、王华驹、马赛红、曲宁等译.Oracle8性能优化和管理手册[M].北京:电子工业出版社,2000.1.
方法:
var
MySysPath:PCHAR;
begin
GetMem(MySysPath,255);
GetSystemDirectory(MySysPath,255);
end;
注:MySysPath为SYSTEM路径
得到程序的路径
ExtractFileDir(Application.Exename);
察看文件是否存在
FileExists(FileName:String):Boolean;
改变文件扩展名
ChangeFileExt(FileName:String)
得到文件的扩展名
ExtractFileExt(FileName:String):String;
如何取得Windows的临时文件目录?
适合版本:Delphi3,2.0,1.0
Windows95&NT都指定了放置临时文件的目录,然而,用户能改变临时目录的位置而不使用缺省的目录。这篇文章的目的是告诉你如何得到Windows95&NT当前的临时目录位置。这个WindowsAPI函数GetTempPath就是解决这个问题的。其函数原形为:
DWORDGetTempPath(DWORDnBufferLength,LPTSTRlpBuffer);
下面的例子示范如何使用:
functionGetTempDirectory:String;
var
TempDir:array[0..255]ofChar;
begin
GetTempPath(255,@TempDir);
Result:=StrPas(TempDir);
end;
备注:临时目录的确定原则:
1,如果有TMP环境变量则临时目录为TMP指定的目录
2,如果没有TMP环境变量而有TEMP环境变量,则为TEMP变量指定的目录
3,如果TMP和TEMP都没有定义,则取当前目录为临时目录
程序不出现在任务栏
一般Windows95运行程序时都会在任务栏上出现按钮,如果你的程序是一个监视程序,那么出现按钮就不是明智之举了。要实现该功能就要在OnCreate事件里利用到API函数SetWindowLong
procedureTForm1.FormCreate(sender:TObject);
begin
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
改计算机名
改变计算机在网络中的名字,重新启动后才生效
SetComputerName(''''HelloWorld'''');
控制热启动
要使系统的热启动键(Ctrl+Alt+Del)失效,使用以下语句
SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);
要恢复系统的热启动键(Ctrl+Alt+Del),使用以下语句
SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,0,0);
临时路径
有时需要Windows的临时路径来做备份等工作,那么就要知道路径在哪,下面的程序帮你忙:
varaa:pchar;
begin
GetTempPath(20,aa);file://返回路径名
edit1.text:=aa;
end;
返回程序执行参数
有关Delphi传入应用程式的命令列参数,请参考以下的说明:
用ParamCount函数取得命令参数的个数:
呼叫ParamStr(0),传回执行档的档名(含路径)
呼叫ParamStr(n),传回第n个参数的内容
procedureTForm1.FormCreate(Sender:TObject);
var
sFileName:string;
begin
ifParamCount>0thenbegin(*有执行参数传入*)
sFileName:=ParamStr(1);(*取得参数内容*)
ifFileExists(sFileName)then
Memo1.Lines.LoadFromFile(sFileName)
else
Application.MessageBox(''''找不到指定的档案'''',''''讯息'''',48);
end;
end;
关闭Windows
控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等,ExitWindowsEx(UINTuFlags,DWORDdwReserved);是实现这一功能的API函数
首先定义常数
const
EWX_FORCE=4;file://关闭所有程序并以其他用户身份登录
EWX_LOGOFF=0;file://重新启动计算机并切换到MS-DOS方式
EWX_REBOOT=2;file://重新启动计算机
EWX_SHUTDOWN=1;//关闭计算机
运行时给How赋值,让他等于EWX_SHUTDOWN或其他,调用以下语句
ExitWindowsEx(How,0);
关闭外部应用程序
如何在Delphi应用程序中,去关闭外部已开启的应用程序?
下面给出一段在Delphi中关闭"计算器"程序为例:
var
HWndCalculator:HWnd;
begin
//findtheexistcalculatorwindow
HWndCalculator:=Winprocs.FindWindow(nil,''''计算器'''');//closetheexistCalculator
ifHWndCalculator<>0then
SendMessage(HWndCalculator,WM_CLOSE,0,0);
end;
得到执行程序的目录
SysUtils单元中有ExtractFileDir与ExtractFilePath两个类似的函数,用哪一个?没有太大的关系。
不过有以下的差别:ExtractFilePath传回值的最後一个字元是反斜杠"/"。
procedureTForm1.Button1Click(Sender:TObject);
begin
ShowMessage(ExtractFileDir(Application.Exename));
//ie:c:\temp
ShowMessage(ExtractFilePath(Application.Exename));
//ie:c:\temp\
end;
相同点:如果执行文件在根目录下(如:C:\SAMPLE.EXE)的话,两者的传回值相同,且最后一个字符都是"/"。
使用GetFileVersionInfo得到版本信息的例子
SamplesUsingGetFileVersionInfo?
回答1:
procedureGetBuildInfo(varV1,V2,V3,V4:Word);
var
VerInfoSize:DWORD;
VerInfo:Pointer;
VerValueSize:DWORD;
VerValue:PVSFixedFileInfo;
Dummy:DWORD;
begin
VerInfoSize:=GetFileVersionInfoSize(PChar(ParamStr(0)),Dummy);
GetMem(VerInfo,VerInfoSize);
GetFileVersionInfo(PChar(ParamStr(0)),0,VerInfoSize,VerInfo);
VerQueryValue(VerInfo,''''\'''',Pointer(VerValue),VerValueSize);
withVerValue^do
begin
V1:=dwFileVersionMSshr16;
V2:=dwFileVersionMSand$FFFF;
V3:=dwFileVersionLSshr16;
V4:=dwFileVersionLSand$FFFF;
end;
随着社会经济和科技的飞速发展,通信网络正在发生深刻的变化,电信业务正在逐渐从传统的以电话业务为主的窄带业务向集语音、高速数据和图像为一体的多媒体宽带业务发展。多媒体通信已成为建立公用宽带网的主要动力。传统电话网将不可避免要过渡到以数据业务、特别是IP业务为中心的下一代电信网,这些都对电信网的宽带化提出了迫切的要求。
宽带网络就是依靠宽带技术为基础构建的网络体系。众所周知,多媒体信息的数据含量远远超过以前以单一形式传输信息的数据量,在传输速率不能降低并且同时信息容量增大的情况下,电信网络必须努力提高传输通道的容量和速度,否则必然不能保障信息及时、准确、完整地传递。因此,要实现社会信息的多媒体化,必须依靠宽带技术。
宽带网络按其技术结构来说可以分为宽带传输网、宽带交换网和宽带接入网三个部分。传输网是所有信息元素传输的基础通道,信息单元和数据就是通过传输网络实现从源地址到目的地址的转移。宽带交换网络通过对信息的接收、分拣和转发的过程,实现了信息的相互交换过程;接入网是整个宽带网络中与用户相连的最后一段,用户通过接入网连接到宽带网上。
宽带接入网
接入网的建设占全网投资的比例较大,是技术最复杂、实施最困难、影响面最广的一部分。要因地制宜,因时制宜,尽量合理地发展接入网。先进的光纤接入网发展既要考虑光纤接入网与原电缆接入网拓扑结构的兼容性,又要明确接入网的全光纤化方向;既要节省投资成本,又要坚持高起点、分期实施的原则。因此在接入网的建设过程中我们应该循序渐进,从低速业务开始,逐渐向高速业务发展。当前常用的窄带接入技术有频带Modem技术,V.90标准的Modem下行速率是56kbps;窄带ISDN接入技术能在一对普通的电话线上,通过基本速率(2B+D,144kbps)接口,为用户提供端到端的全数字连接的多种电信业务。目前,宽带接入技术主要有下列几种:
(一)基于电信网用户线的数字用户线(DSL)接入技术
DSL技术是一系列基于双绞铜线的用户线高速传输技术,包括HDSL、SDSL、ADSL、RADSL及IDSL等,统称为xDSL。
ADSL
ADSL(非对称数字用户线)技术,其下行速率达8Mbps,上行速率达640kbps,能传输3~5km的距离。ADSL所支持的主要业务是因特网和电话,该技术接入速度可满足宽带因特网接入和部分宽带应用(如会议电视、视频点播等)。更重要的是结合ATM等宽带干线网络技术,可以支持广播级的视频分发和VoD。
利用ADSL技术开展宽带接入业务的优势非常明显,首先可以充分利用电信网现有的铜缆资源,保护这一巨大投资,并充分发挥铜线的潜力。其次,用户随时可以上网,无需每次重新建立连接,而且不会影响电话的使用,每个用户都可以独享高速通道,没有阻塞问题。其主要缺点是对线对的要求苛刻,目前只有大约30%的线对可以开通ADSL业务。
目前一种简化型的、无分路器的ADSL标准已经问世,称为G.Lite。其基本特点有两点:第一是速率降低到1.5Mbps左右,第二是在用户端不用电话分路器,价格可以下降,安装更为方便。它具有自适应速率适配能力,抗射频干扰的能力比ADSL强,主要业务为因特网接入、Web浏览、IP电话、远程教育、在家工作、可视电话和电话等。
VDSL系统
有关ADSL系统发展的第二个趋势是进一步提高系统的下行带宽,即演变成甚高速数字用户线(VDSL)系统。这种技术在双绞线上下行传输速率可以扩展至25Mbps~52Mbps,同时允许
1.5Mbps的上行速率,其传输距离则分别缩短至1000m或300m左右。很适合光纤到小区(FTTC)的接入方式。由于它能提供高速接入带宽,且能满足高清晰度电视和视频点播的要求,所以是一种比较现实的、理想的宽带混合接入方案。
(二)基于CATV网HFC传输设施的电缆调制解调器(CableModem)接入技术
有线电视网是用来传输模拟电视信号的地面网络,所有用户共享下行带宽,是真正的宽带网络。HFC(HybridFiberCoaxial,光缆同轴混合)技术推动了CATV网络的发展,HFC网不仅可以提供原有的有线电视业务,而且可以提供话音、数据以及其他交互型业务。CableModem方案是以HFC为基础的高速接入技术,CableModem用户共享下行数据带宽,而每一个子信道下行通道的数据吞吐量都可以达到25Mbps~40Mbps。
传统的有线网只能传输单向业务,必须升级为双向的HFC网络才能实现双向宽带传输数字化多媒体信息,可开通VoD、远程教学、远程医疗、因特网高速接入及语音电话等多种新的增值业务。CableModem的开通率高,不存在ADSL因线缆质量和串扰引起的开通率低的问题,只会因为共享用户数的增多而降低每个用户的可用数据带宽。
(三)基于光缆的宽带光纤接入技术
宽带有源光接入
在各种宽带光纤接入网技术中,采用了SDH技术的接入网系统是应用最普遍的。这种系统可称之为有源光接入,主要是为了与基于无源光网络(PON)的接入系统相对比。SDH技术是一种成熟、标准的技术,在骨干网中被广泛采用。在接入网中应用SDH技术,可以将SDH技术在核心网中的巨大带宽优势和技术优势带入接入网领域,充分利用SDH同步复用、标准化的光接口、强大的网管能力、灵活网络拓扑能力和高可靠性带来的好处,在接入网的建设发展中长期受益。
SDH技术在接入网中的应用虽然已经很普遍,但仍只是FTTC(光纤到路边)、FTTB(光纤到楼)的程度,光纤的巨大带宽仍然没有到户。因此,要真正向用户提供宽带业务能力,单单采用SDH技术解决馈线、配线段的宽带化是不够的,在引入线部分可分别采用FTTB/C+xDSL、FTTB/C+CableModem、FTTB/C+局域网接入等方式提供业务。
宽带无源光接入网