个人网页管理页面html,基于Web服务的个人网页资源管理组件设计

摘   要: 介绍了基于Web服务的个人网页资源管理组件的设计,实现了Web用户在Internet上收集网页,并将这些网页自动存储在Web服务器的个人网页存储器上,为Web用户提供个人网页的访问和管理服务。Web网站的服务提供者也可以使用该组件实现Internet增值服务。

关键词: 网页  Web服务  组件

1  方案的提出  在互联网时代,人们通过Internet收集存储一些个人需要的网页,供日后查阅。最简单的办法是使用IE或Netscape的“另存为”功能,把这些网页保存在个人计算机的文件夹中。近年来,也出现了一些好的工具帮助收集整理网页[1]。例如,利用软件“网海拾贝”可以将网页收藏到本地数据库中,软件“Webzip”可以将网站镜像打包下载到一个zip文件中。使用这些工具软件能方便地搜集所需的网页资源,但问题是,若无备份,则无法在其他的机器上看到这些网页。此外,还可使用MSN浏览器将感兴趣的网页放入收藏夹,并通过MSN浏览器将这个网页的URL送回服务器。以后,网络用户就能在任何一部机器上通过MSN浏览器找到收藏的URL,并通过该URL访问相关网页。但它的缺点是,当收藏的URL不能够被访问时(如该网页被所链接的网站删除),也就无法访问该网页了,并且无法直接对所收集的网页进行管理。

本文提出的新方案是,借用Web服务器的个人存储空间,存储和管理个人网页。其思路是:开发一个基于Web服务的组件(称为Url_Tool组件),Url_Tool组件布署和运行在Web服务器端。用户经注册成为Url_Tool的客户后,就能通过Internet使用Url_Tool的功能,将感兴趣网页的URL提交到Web服务器,由Url_Tool组件自动完成网页下载并保存在该Web服务器。

这是一种新的网络资源搜集和网上资源共享方式。网站经营者还可以对用户存储的网页作进一步的“数据挖掘”。这些数据被转化成有商业价值的信息,网站籍此掌握网民的消费热点和消费需求,并向网民提供个性化服务。

2  组件设计

2.1 组件结构  Url_Tool组件分成客户端和服务器端2部分。

服务器端又由3个基本功能模块构成:

Url_Tool客户端的基本功能是:向Url_Tool组件提交用户信息和需要存储的网页地址;使用Url_Tool界面管理个人网页空间。

Url_Tool服务器端的基本功能是:验证用户信息,接受客户端下载网页的请求,并把这些请求输入到Url数据库;在网络空闲时,自动下载HTML/XML网页,建立和维护个人网页存储空间;向用户提供管理Web网页操作界面,实现对个人网页的自主管理。

Url_Tool组件的结构示意图如图1所示。

06f2aed095b5e4bce84e38dca27b7d61.gif

2.2 通信协议  Url_Tool组件的服务器端和客户端的交互是基于TCP/IP Socket编程的,消息格式基于HTML/XML。为此,定义了一个新的协议集,即Url-Summit交互指令。Url-Summit指令主要是为了解决客户端程序和URL存储服务器的交互问题。Url-Summit协议集的具体内容包括Url-Tool服务端向客户端发送的内容和Url-Tool客户端向服务端发送的请求,分别如表1和表2所示。

6bc0dd797b098220485fc3e5bf095163.gif

904730f71cd0d1c65fb7427bfa244aa6.gif

以下是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地址及其状态。

1964f9af41e256a97bbf6b410e33a467.gif

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的存储检索效率是在Internet上构建分布式信息搜集系统的关键[2],其核心是支持多用户并行访问。Url_Tool组件的存储服务器结构如图2所示。

0e9ff180e1cab982fd72030715340714.gif

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

7d93d3fb05df7a63086bde46abfa2501.gif

一般的TCP/IP侦听服务器要同时支持多个用户,主要通过以下几种形式支持并行服务。

(1)单进程结合I/O多路复用模式,通过定时轮流查询资源集合,实现多用户连接。(2)多进程模式(multi-fork):一个子进程对应于一个客户端程序,跟客户端程序交互[3]。(3)多线程模式(multi-thread):一个线程对应于一个客户端程序[4]。

Url_Tool系统采用多线程的并行模式管理多用户交互,多线程能够提升系统性能,降低资源消耗。其原理是同时预先建立多个线程等待提供服务,当有需求出现时,预先建立的线程就可以立即满足需求,提供服务。

2.5 自动下载程序设计

2.5.1 程序结构  主要包括以下模块。

downop:下载模块

hashop:哈希表操作模块

curlop:curl操作模块

html_parse:html解释器模块

url_parse:url解释模块

其中,hashop和html_parse模块是把页面的相关元素(如图片、flash等)记录下来,然后进行下载。

Url_Tool组件的自动下载程序结构如图4所示。

95c070cbfdfdbc4cb241618acc07c7b9.gif

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

028476b8d6cf4f8716450b9956f4d0b1.gif

2.5.3 程序说明  如图5所示,downop先取得下载的URL和存放地址;进行初始化工作,调用hashop_init( )建立一个hash表。

Curlop_text_tobuff模块根据hash表的内容将有关页面缓存到buf。注意curlop_text_tobuff(&url,&len)中的URL可以改变,目的是取得最终的URL地址(有些页面可能会进行html forward,转接操作)。len是缓存的长度。缓存由curlop_text_tobuff动态分配。

hashop_set_base_url(url)用于设定基础的URL。把最终有效的URL设定作为基础地址。因为有些html文档可能会使用相对地址(例如./image/google.gif),所以必须设置正确的基础地址,才可以下载。

generate_list(buf,len)调用html_parse解释页面,然后把需要下载的连接放入hash表。

download_list( )主要是调用curlop下载hash表的内容。

Change_html_link( )调用html_parse把buf储存的html/XML连接转为本地连接,然后保存html/XML页面。

3  组件安装和运行  Url_Tool被封装成为一个Web服务组件,通过Web网站向用户提供网页暂存服务。由于该系统采用基于TCP/IP协议的XML消息格式实现用户和服务器的交互,所以,Internet上的任何用户都可以通过浏览器软件注册和使用该系统。用户注册后,该组件的客户端自动下载到客户机并自动完成安装和注册,供用户使用。

参考文献1   王屺.离线浏览器集锦.电脑技术,2002;10(1)

2   宋晖,郑子颖,张岭等.分布式信息搜集系统中URL存储检索的设计与分析.上海交通大学学报,2003;37(3)

3   程树良.Unix下的多进程及进程间的通信.交通与计算机,2000;19(2)

4   厉海燕,李新明.用户级实时线程的设计与实现.微机发展,2001;11(4)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值