180 likes | 347 Views
FTP 搜索引擎 项目设计. 学 号: 01061501 学生姓名: 曹友超 指导教师: 刘刚 讲师. 课题背景. 据统计,截止 2004 年年底,可以索引到的网页的数目为 80-100 亿,如何在如此庞大的互联网上获得有价值信息已成为网民日益关注的问题。而 FTP 服务器上保存有大量的共享软件、技术资料和多媒体数据等文件。因此 FTP 搜索引擎能很好的解决上述问题,又因为它有很好的经济价值,故引起了计算机科学界和信息产业界的高度关注, FTP 搜索引擎技术也就应运而生了。. 我所做的工作. 数据库的设计和实现
E N D
FTP搜索引擎 项目设计 学 号: 01061501 学生姓名: 曹友超 指导教师: 刘刚 讲师
课题背景 据统计,截止2004年年底,可以索引到的网页的数目为80-100亿,如何在如此庞大的互联网上获得有价值信息已成为网民日益关注的问题。而FTP服务器上保存有大量的共享软件、技术资料和多媒体数据等文件。因此FTP搜索引擎能很好的解决上述问题,又因为它有很好的经济价值,故引起了计算机科学界和信息产业界的高度关注,FTP搜索引擎技术也就应运而生了。
我所做的工作 • 数据库的设计和实现 • 搜索程序的设计和实现 • 查询页面的设计和实现
系统的开发环境 • 数据库模块:SQL Server • 易学习,易上手; • 兼容性好; • 具有数据仓库功能; • 搜索程序模块:Visual Basic 6.0 • 可视化编程 • 面向对象程序设计 • 访问数据库功能 • 查询模块:ASP
搜索引擎两种技术信息检索的选择 • 网站分类技术 把网站进行树状归类,登录的网站至 少属于一个类别。 • 全文检索技术 检索程序根据检索词在每篇文章中出现的频率,对包含这些检索词的文章进行排序,最后按排序输出结果。 本课题采用网站分类技术实现
应用程序1 应用程序2 网络编程界面,例如Winsock 网络通信协议界面,例如TCP/IP 操作系统,例如Windows 物理通讯介质 相关技术——Winsock Winsock定义了应用程序开发者能够使用,并且网络供应商能够实现的一套库函数调用和相关语义。任何能够与Winsock兼容实现协同工作的应用程序就被认为是具有Winsock接口,从而称这种应用程序为Winsock应用程序。 API
FTP服务器 客户机 数据 查 询 Web 服 务 器 搜 集 器 数据库 FTP搜索引擎系统结构设计 • 成功登录FTP站点后,通过CGI程序搜集各个FTP站点上的文件信息; • 利用数据库存储文件信息; • 为用户提供一个基于网页的查询界面,进行数据库查询。
数据库结构设计 数据库中包含了两张数据表,分别记录FTP服务器信息和文件信息。 • FTP服务器信息表(ServerList) FTP服务器的信息表主要包括:服务器名、服务器URL、用户名、密码。
数据库结构设计 2.文件信息表(FileList) 文件信息表主要包括:文件名、文件大小、最近修改时间和文件路径。
服务器的实现 本课题使用功能强大而且符合要求的Serv-U作为服务器,它采用一种简单的身份验证机制保证安全,即CGI与服务器连接时先输入一个约定口令,若口令错误,则服务器直接关闭这个非法连接,从而确保了服务器的安全性。下图为服务器响应流程: 数据库 搜索程序
登录FTP服务器的实现 要搜集各FTP站点的文件信息,首先要登陆站点。可以用给定用户名和密码登陆;也可登陆到FTP服务器的公共访问区,称为“匿名FTP”,用户名为“Anonymous”,密码为一个E-mail地址。实现界面如下图所示:
搜索进程的实现 登陆成功后,从当前目录开始扫描该站点的文件信息,判断每个文件是否是目录。若是,则改变当前目录到此子目录下,扫描此子目录各文件并判断;若还有子目录,则继续转到其下扫描。进程流程如下图所示:
获得文件详细信息 调用GetFileList函数扫描FTP站点的所有文件结构,记录文件的文件名、服务器名、文件路径、大小、最近修改时间等,将这些信息保存在FileList表中。实现界面如下图所示:
与数据库连接的实现 搜索系统获取文件信息后是通过ADO与数据库连接的。ADO(数据对象)是ASP内置的ActiveX服务器组件,用于对数据库访问,对数据库进行查询、插入、更新、删除等操作,原理如下图所示:
文件查询的实现 系统提供WWW页面上的FTP文件搜索。用户输入要查询的文件的关键词,提交查询给Web服务器后,分析生成查询语句,提交给数据库服务器进行查询。界面如下图所示:
查询结果显示 用户输入查询关键词,点击搜索文件按钮后,FTP搜索系统数据库服务器会自动将符合条件的信息显示在用户的浏览器页面上,如下图所示:
结论 经过四个多月的开发,本课题的设计与实现顺利完成。本FTP搜索引擎系统经过了课题论证、总体设计、详细设计、功能界定、具体实现、连接与调试等几个阶段。最后,通过对整个项目的重新分析,认为已经达到了总体设计中提出的实现目标,各项功能均能实现完成。 由于设计时间短,工作量大,加上本人能力有限,系统还存在一些问题和不足,只能留待以后的学习和工作中继续完善。