您的位置:首页 > 编程语言 > PHP开发

FTP搜索引擎开发文档(任务概述与需求部分)

2009-05-21 10:34 309 查看

2.任务概述

2.1目标

本次开发任务的目标是设计出一款FTP搜索引擎软件,以精简友好的界面、方便的操作为用户提供一种信息搜索的快速定位的功能,特别是为局域网用户提供更有针对性的、更方便的资源,从而提高资源的共享目标。
 

2.2运行环境

操作系统:Windows 2003 Server 、 Windows 2000 Server
硬件配置:
数据库服务器:CPU 双核 2.4Ghz以上   内存 2G以上  硬盘 80G以上
WEB服务器::CPU 双核 2.4G以上  1G以上
搜索引擎服务器: CPU 双核1.2G以上  1G以上
控制台程序运行平台:CPU 单核 1.0G以上  内存 512M以上
数据库:数据库是SqlServer 2000或 SqlServer 2005或MYSQL
 

2.3运行条件

要求有专门的服务器,机房,稳定的网络环境,服务器需要有独立IP及域名

3软件的需求

3.1功能需求

3.1.1功能划分

本软件将总体划分为4大模块:
l  引擎服务程序模块
l  控制台程序模块
l  WEB用户搜索模块
l  数据存储操作模块
其中每个大模块都由若干小模块组成。
 

3.1.2功能描述

引擎服务程序模块
是整个软件的核心,主要负责FTP信息的探测、扫描、获取、分析、更新等工作。
 
此大模块由以下14个功能小模块组成:
缓存结构定义
作为系统保存所需数据的基本结构
主线程程序
负责程序的初始化,各种控件的加载,各种信息数据缓存的管理保存,创建控制协调各线程之间的工作,初始化程序时任务工作参数由任务文件和参数文件读取。控制每个模块的线程数、管理系统数据、管理各线程,并与控制台进行通讯。
FTP服务器扫描
主要负责在指定IP范围和端口范围扫描FTP服务器,并把扫描到的FTP服务器IP 地址和相应的端口号保存到FTP服务器IP地址缓存里。
FTP服务器账号密码探测
主要负责对FTP服务器账号密码探测。从FTP服务器IP地址缓存里读取FTP服务器地址和对应端口号,从账号密码词典里依次读取账号和密码尝试登录。把成功登录的FTP服务器地址,对应的端口号与及账号密码保存到已探测账号到已探测账号到FTP服务器地址信息缓存里,把未成功的服务器地址,对应的端口号保存到未探测到账号FTP地址缓存里。
获取FTP服务器目录
主要负责FTP服务器目录文件信息下载,从已探测账号到FTP服务器地址信息缓存里读取FTP服务器地址,端口号与及账号密码信息等登录到FTP服务器获取目录文件的信息,并把把这些信息保存到未分析FTP目录文件信息缓存里。
未探测到账号密码的FTP信息管理
从主线程获取未探测到帐号和密码的FTP信息送入数据库、从数据获取未探测的FTP信息送入主线程。
已获得FTP服务器账号密码库管理
辅助主线程,从主线程中获取已获得的FTP服务器帐号密码送入数据库中,从数据库中读取已获得的FTP服务器帐号和密码库,送入主线程中。
FTP服务器目录分析与分类
主要负责对FTP目录文件信息的分析及存储。从未分析FTP目录文件信息缓存里读出相应的目录和文件信息,并从文件类型缓存里读出文件类型信息进行分析,对目录与文件类型进行分类标识,最后把处理好的信息存到数据库里。
已获得的FTP服务器信息进行监控
主要负责对已经探测到的FTP服务器和数据库里相对应的信息进行监控和管理。这个线程一般只在引擎系统空闭时工作。由主控制线程自动控制其工作的时间。里面有一个FTP服务器IP地址监测缓存。这个线程从数据库那里读出FTP服务器的IP及端口号到FTP服务器IP地址监测缓存里,再依次探测对应的FTP是否还存在,如果不存在的进行标识,然后存储进数据库,如果经过多次探测不到的FTP服务器则列为些FTP服务器不存在了,把数据库里与这个服务器相对应的信息删除。
账号密码库与文件类型管理
辅助主线程,从数据库中读取用户名和密码送入主线程
操作数据库
数据库操作模块
任务控制模块
负责工作任务的控制功能
数据加密模块
负责相关信息的加密功能
用户命令执行模块
负责指令的传递功能
 
WEB用户搜索模块
主要是负责提供一个用户查找获取信息的界面,并且与后台数据库与用户交互信息等。
 
此大模块由以下9个功能小模块组成:
用户界面模块
    为用户提供基于Web界面的交互接口,并将用户输入及选择信息组合成参数进行页面传递,构成一个有整体功能的前台界面。
参数处理模块
    对页面传递参数进行处理。
关键字处理模块
    将用户输入关键字进行整理、分词。
数据存储模块
    提供数据处理过程中所需数据存储的数据结构。
数据搜索模块
    利用用户提供的关键字进行数据搜索,并整理为数据处理过程中所需数据结构。
数据库查询模块
    提供数据库查询功能。
页面构造模块
根据用户所需数据进行结果页页面构造。
主机登记处理模块
    对用户提供主机信息进行处理。
搜索初始化模块
    为高级搜索页及主页的搜索信息进行初始化。
 
控制台程序模块模块
主要负责软件的控制,设定搜索任务,设置引擎的工作参数,导入和维护账号密码字典等。具体由以下10个小模块组成:
 
连接登陆模块
负责控制台登录主程序时的身份验证等操作。
任务分配模块
用于给主程序分配指定的任务。
任务控件模块
用于主程序对任务的控制。
系统控制模块
通过对系统的参数的设置,达到控制系统的目的,还能通过加琐和解琐的操作,来实现开启系统工作和停止系统工作。
查看系统状况和任务工作状况模块
可以给管理员提供查看系统相关状态和工作任务的信息。
编写管理任务脚本模块
给管理员提供一组编写任务脚本管理的功能。
FTP主机登记认证管理模块
用于登记和管理FTP机主的FTP服务器的相关信息。
密码字典库管理模块
提供一套用于破译FTP服务的口令的词典库。
集群管理模块
用于控制集群和控制台的通信问题。
返回信息分析处理模块
将管理员设置的参数和任务等交给此模块进行分析和处理。
加密解密模块
实现数据的加密和解密功能。
数据存储操作模块
主要负责事务处理层与数据库的通信问题。
 
 

3.2性能需求

搜索引擎所针对的网络环境中数据源是较为不稳定的,在设计搜索引擎的时候必须考虑到数据的时效性,保证用户搜索的结果中不会有过多的死连接及无用数据。且搜索引擎针对的网络搜索中,需要处理的数据量大,处理时间长,由此,软件必须采取多模块多线程协同计算的工作模式方能满足实际应用对效率的要求,且搜索引擎的算法效率比较足够高,方能适应这种大规模,大数据量的计算。
 
由于搜索引擎是一种网络的服务软件,由此系统必须能保持长时间的稳定运行。因此,该搜索引擎以系统服务的形式运行,并且带有良好的容错功能,能在软件内部某些模块出现错误的情况下将模块隔离,使得局部的错误不会影响到整个软件系统的运行。
操作要求

3.3操作要求

搜索引擎软件一般都运行于远程的服务器上,由此,该软件必须提供有功能强大的、灵活的、方便的远程控制方式。由此,在远程控制该软件时,我们定义了一套通讯命令使得搜索引擎管理员能够利用命令灵活的控制软件的运行,设定软件的运行任务,查看运行状态,并能以通讯命令为基础编写其脚本来使用搜索引擎运作。同时,为了方便管理员的操作,我们提供了一套服务管理软件使得管理员能轻松的生成配置脚本以达到轻松控制服务程序的要求。
 
同时,搜索引擎亦提供了一套普通用户使用的前台界面软件,该软件以B/S的形式向用户提供一个操作简便的输入/输出接口。使得用户能够轻松使用搜索引擎为其提供的数据服务。

3.4安全需求

作为一个具有远程连接的服务程序,且运行于服务器端。用户在想服务器端发送数据时必然会包含许多敏感数据。所以,软件必须有防止攻击、防止数据包截获、破解等功能,且在服务器端保存的文件也必须加密,由此,我们通过AES加密模型为基础,自主开发了一套加密算法,针对网络通讯及文件进行加密,并且通过软件的时间控制以及类似于SSL的安全隧道建立技术以防止黑客攻击、破解。以达搜索引擎管理员在远程连接服务器端发送数据时包含的敏感数据进行保护的需求。
 

3.5其它需求

为了提高搜索引擎市场实用性,用户使用的方便性,在后续的开发中,我们将加入数据挖掘技术与人工智能等技术来提高搜索精度和数据质量,并建立近义词关联搜索。同时,在网内交互数据及数据搜集中进行数据挖掘,可以分析网内群体特性,挖掘内网资源的综合应用。由于该引擎针对的网络主要为局域网或城域网,可以在此基础上在互联网中建立局域网或城域网之间的资源共享平台。
以搜索引擎为依托,开发一套与之配套的下载软件,同时通过P2P进行资源搜索,达到从多点FTP服务器及P2P多点同时下载资源。加大资源的共享性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息