1 方案的提出
在互联网时代,人们通过Internet收集存储一些个人需要的网页,供日后查阅。简单的办法是使用IE或Netscape的“另存为”功能,把这些网页保存在个人计算机的文件夹中。近年来,也出现了一些好的工具帮助收集整理网页。例如,利用软件“网海拾贝”可以将网页收藏到本地数据库中,软件“Webzip”可以将网站镜像打包到一个zip文件中。使用这些工具软件能方便地搜集所需的网页资源,但问题是,若无备份,则无法在其他的机器上看到这些网页。但它的缺点是,当收藏的URL不能够被访问时(如该网页被所链接的网站删除),也就无法访问该网页了,并且无法直接对所收集的网页进行管理。
本文提出的新方案是,借用Web服务器的个人存储空间,存储和管理个人网页。其思路是:开发一个基于Web服务的组件(称为Url_Tool组件),Url_Tool组件布署和运行在Web服务器端。用户经注册成为Url_Tool的客户后,就能通过Internet使用Url_Tool的功能,将感兴趣网页的URL提交到Web服务器,由Url_Tool组件自动完成网页并保存在该Web服务器。WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展快和目前用的广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。
这是一种新的网络资源搜集和网上资源共享方式。网站经营者还可以对用户存储的网页作进一步的“数据挖掘”。这些数据被转化成有商业价值的信息,网站籍此掌握网民的消费热点和消费需求,并向网民提供个性化服务。
2 组件设计
2.1 组件结构
Url_Tool组件分成客户端和服务器端2部分。
服务器端又由3个基本功能模块构成:
Url_Tool客户端的基本功能是:向Url_Tool组件提交用户信息和需要存储的网页地址;使用Url_Tool界面管理个人网页空间。
Url_Tool服务器端的基本功能是:验证用户信息,接受客户端网页的请求,并把这些请求输入到Url数据库;在网络空闲时,自动HTML/XML网页,建立和维护个人网页存储空间;向用户提供管理Web网页操作界面,实现对个人网页的自主管理。
Url_Tool组件的结构示意图如图1所示。

2.2 通信协议
通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。通信协议在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。 通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。两台计算机在进行通信时,必须使用的通信协议 。
Url_Tool组件的服务器端和客户端的交互是基于TCP/IP Socket编程的,消息格式基于HTML/XML。为此,定义了一个新的协议集,即Url-Summit交互指令。Url-Summit指令主要是为了解决客户端程序和URL存储服务器的交互问题。Url-Summit协议集的具体内容包括Url-Tool服务端向客户端发送的内容和Url-Tool客户端向服务端发送的请求,分别如表1和表2所示。


以下是Url-Summit协议集的一个实例。其中S表示服务端,C表示客户端。用户名是“jack”,密码是“mypassword”。
S:100 Hello
S:101 User
C:jack
S:102 Password
C:mypassword
S:202 OK
登录成功
C:211 http://www.google.com/
S:202 Add Ok
添加成功
C:300 logout
S:301 bye
离开
2.3 数据库设计
Url_Tool在服务器端建立名为Url_D的数据库,Url_D的数据库主要包含2个数据库表,分别是用户信息表KUser和用户任务表KTask。其数据结构分别如表3和表4所示。用户任务表保存用户存储的个人网页Url地址及其状态。

Url_Tool用户管理个人网页的SQL语句如下例。
SELECT uID FROM KUser WHERE name=′用户名′
AND password=′密码′;//验证用户登录,
//返回记录数为1,就可以登录;反之,拒绝登录
SELECT link FROM KTask WHERE started=0
ORDER BY tID LIMIT 0,1;//获取任务,每次
//获取一个任务,即需要的页面的URL
UPDATE KTask SET started=1 WHERE tID=′任务ID′;//启动任务
UPDATE KTask SET finished=1
WHERE tID=′任务ID′;//完成任务
2.4 URL存储服务器设计
统一资源定位符(URL,英语 Uniform / Universal Resource Locator 的缩写)也被称为网页地址,是因特网上标准的资源的地址(Address)。它初是由蒂姆·伯纳斯-李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。Internet上的每一个网页都具有一个的名称标识,通常称之为URL地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是Internet上的站点。简单地说,URL就是Web地址,俗称“网址”。URI 方案集,包含如何访问 Internet 上的资源的明确指令。
URL的存储检索效率是在Internet上构建分布式信息搜集系统的关键,其是支持多用户并行访问。Url_Tool组件的存储服务器结构如图2所示。

Url_Tool组件的存储服务器程序流程如图3所示。

一般的TCP/IP侦听服务器要同时支持多个用户,主要通过以下几种形式支持并行服务。
(1)单进程结合I/O多路复用模式,通过定时轮流查询资源集合,实现多用户连接。(2)多进程模式(multi-fork):一个子进程对应于一个客户端程序,跟客户端程序交互。(3)多线程模式(multi-thread):一个线程对应于一个客户端程序。
Url_Tool系统采用多线程的并行模式管理多用户交互,多线程能够提升系统性能,降低资源消耗。其原理是同时预先建立多个线程等待提供服务,当有需求出现时,预先建立的线程就可以立即满足需求,提供服务。
2.5 自动程序设计
2.5.1 程序结构
主要包括以下模块。
downop:模块
hashop:哈希表操作模块
curlop:curl操作模块
html_parse:html解释器模块
url_parse:url解释模块
其中,hashop和html_parse模块是把页面的相关元素(如图片、flash等)记录下来,然后进行。
Url_Tool组件的自动程序结构如图4所示。

2.5.2 程序流程
Url_Tool组件的自动程序处理流程如图5所示。

2.5.3 程序说明
如图5所示,downop先取得的URL和存放地址;进行初始化工作,调用hashop_init( )建立一个hash表。
Curlop_text_tobuff模块根据hash表的内容将有关页面缓存到buf。注意curlop_text_tobuff(&url,&len)中的URL可以改变,目的是取得终的URL地址。len是缓存的长度。缓存由curlop_text_tobuff动态分配。
hashop_set_base_url(url)用于设定基础的URL。把终有效的URL设定作为基础地址。因为有些html文档可能会使用相对地址,所以必须设置正确的基础地址,才可以。
generate_list(buf,len)调用html_parse解释页面,然后把需要的连接放入hash表。
download_list( )主要是调用curlophash表的内容。
Change_html_link( )调用html_parse把buf储存的html/XML连接转为本地连接,然后保存html/XML页面。
3 组件安装和运行
Url_Tool被封装成为一个Web服务组件,通过Web网站向用户提供网页暂存服务。由于该系统采用基于TCP/IP协议的XML消息格式实现用户和服务器的交互,所以,Internet上的任何用户都可以通过浏览器软件注册和使用该系统。用户注册后,该组件的客户端自动到客户机并自动完成安装和注册,供用户使用。IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。IP地址具有性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。