基于赫夫曼树的服务器端移动widget管理及查找方法转让专利

申请号 : CN201010290584.2

文献号 : CN101969457B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张少斌陈天洲吴明晖颜晖楼学庆

申请人 : 浙江大学

摘要 :

本发明公开了一种基于赫夫曼树的服务器端移动widget管理方法,通过构建赫夫曼树对服务器端的移动widget进行管理,在构建赫夫曼树前,先提取widget的下载频率作为每个widget的权值,根据赫夫曼树算法构建赫夫曼树,并规定赫夫曼树中左孩子权值比右孩子权值小,节点所在层数越低,其权值越小。本发明提高了服务器端管理移动widget的效率,提高移动用户检索widget的速度。

权利要求 :

1.一种基于赫夫曼树的服务器端移动widget管理方法,通过构建赫夫曼树对服务器端的移动widget进行管理,其特征在于:在构建赫夫曼树前,先提取widget的下载频率作为每个widget的权值,将服务器端的widget根据赫夫曼树算法构建赫夫曼树,并规定赫夫曼树中每层左孩子权值比右孩子权值小,节点所在层数越低,其权值越小;所述赫夫曼树的构建步骤如下:①假设服务器端widget的集合W={w1,w2,w3……wn};

②选择两个权值最小的widget:wi和wj,权值相加生成一个父亲节点加入到W中,同时删除W中的wi、wj,将wi和wj两个孩子节点和该父亲节点一起构建赫夫曼树,权值小的孩子节点位于左边,权值大的孩子节点位于右边;

③继续在新的W中进行第二步,直到所有节点从W中移除。

2.如权利要求1所述的基于赫夫曼树的服务器端移动widget管理方法,其特征在于:如果服务器中新加入了一个widget,将其插入到赫夫曼树中,具体步骤如下:①将新加入的widget的权值置为零;

②权值为零的新节点和原赫夫曼树中最底层最左边的节点,构成一对孩子节点,同时生成父亲节点;

③将新生成的父亲节点及其孩子节点插入到原赫夫曼树的最底层最左边的节点处。

3.如权利要求1所述的基于赫夫曼树的服务器端移动widget管理方法,其特征在于:如果服务器端撤销了一个widget,从赫夫曼树中删除这个widget,具体步骤如下:①根据赫夫曼编码找到赫夫曼树中的该widget节点wi;

②将该widget节点wi的兄弟节点移至节点wi的父亲节点处;

③删除该widget节点wi及其父亲节点。

4.根据权利要求1所述的基于赫夫曼树的服务器端移动widget管理方法,其特征在于:每隔一个时间周期对服务器端的widget重新构建一次赫夫曼树。

5.一种对基于赫夫曼树的服务器端移动widget的查找方法,其特征在于:根据权利要求1-4任一项所述的基于赫夫曼树的服务器端的移动widget管理方法,赫夫曼树构建好后,每个移动widget会分到一个赫夫曼编码的ID,按照如下步骤对所述的移动widget进行查找:①服务器端接收客户端的查询请求;

②如果是模糊查询,服务器端就根据widget的ID的长短和值大小,把widget按下载频率从高到低的顺序排列发送到客户端的查询界面上;

③如果是精确查询,服务器端就从赫夫曼树的最顶端开始从上到下,从右到左比较叶子节点和用户查询的widget的关键字,把最终的查询结果发送到客户端的查询界面上。

6.根据权利要求5所述的对基于赫夫曼树的服务器端移动widget的查找方法,其特征在于:所述模糊查询中,ID越短的widget下载频率越高,如果ID长度相同,ID值越大的widget下载频率越高。

说明书 :

基于赫夫曼树的服务器端移动widget管理及查找方法

技术领域

[0001] 本发明涉及移动widget技术领域,特别涉及一种基于赫夫曼树的服务器端移动widget的管理方法。

背景技术

[0002] Widget是一小块可以在任意一个基于HTML的Web页面上执行的代码,它的表现形式可能是视频,地图,新闻,小游戏等。最初源于苹果电脑的一个插件工具--Konfabulator,现在已经扩展到各种桌面操作系统和手机操作系统上。手机中的移动互联网应用目前主要是手机客户端应用。经过几年的发展,出现了一定数量的手机客户端应用,包括手机游戏、电子书、手机杂志、手机地图、手机邮箱等,这些应用得到了手机用户一定程度的欢迎。
[0003] 但是,对于手机客户端应用来说,目前主要问题有三个:第一,手机适配问题,几乎每一款客户端应用都面临对不同手机的适配工作量,导致第三方开发公司无法将精力完全倾注于多样性应用创新,往往是一款应用打天下;第二,不支持动态应用下载等技术问题,导致手机用户获取应用的直接渠道缺失;第三,存在客户端应用开发的门槛,无法实现大众参与。这些都导致手机客户端应用无法实现本质上数量和质量的激增,无法满足用户个性化的手机内容应用需求。
[0004] Widget这种小应用形式对于手机终端这种比较有局限的硬件条件下,通过表现形式不一及功能不一,为现今越来越多的追求个性化手机要求的用户的一个很好的选择。目前主流的Widget包括Yahoo Widget、Google gadget、Appledashboard Widget和Facebook Widget等。
[0005] Widget作为一种特殊的“网页”正在改变着互联网的访问方式,用户访问网络不再需要依赖于浏览器,而是靠这些小工具就可以实现web功能。Widget还向用户提供了全新的用户体验。通过Widget用户可以定制实现自己所需要的各种服务,随意个性化自己的桌面,体验它又小又酷的风格。widget具有身材小、形式多、功能大、姿容丽、个性化、制作容易等众多的优点,用户可以通过因特网从服务器端下载各式各样的widget。随着widget需求的增长以及所蕴含着巨大的商机和潜力,参与widget制作的人员越来越多,世界上无时无刻不断有新的功能的widget推出,最容易推广widget的方法是把制作好的widget放在服务器上提供用户下载,于是就造成了这样一个困境,不断增多的widget和服务器端对widget的有限管理能力之间的冲突。
[0006] 现有的移动widget服务器端管理的方法比较多,通常的方法有随机给新加入的widget分配ID和根据先来先分配的原则给widget分配ID。这类方法容易造成服务器端管理的混乱,根据ID不能得到widget的任何信息。

发明内容

[0007] 为了使服务器端能够高效地管理越来越多的widget资源,保证用户准确快速的找到最受欢迎的widget,本发明的目的在于提供一种基于赫夫曼树的服务器端移动widget管理方法。
[0008] 赫夫曼编码是1952年由数学家D.A.赫夫曼首先提出的一种无失真变长度的信源编码。赫夫曼树,即最优二叉树,是一类带权路径长度最短的树。赫夫曼树可以得到最优的判定算法,经过赫夫曼树编码管理的widget,可以经过比较少的比较次数提供用户查询的结果,从而缩短用户查找的时间。本发明就是利用赫夫曼树管理服务器端的移动widget。
[0009] 本发明解决技术问题所采用的技术方案是:
[0010] 提出一种基于赫夫曼树的服务器端移动widget管理方法,它通过构建赫夫曼树对服务器端的移动widget进行管理,在构建赫夫曼树前,先提取widget的下载频率作为每个widget的权值,将服务器端的widget根据赫夫曼树算法构建赫夫曼树,并规定赫夫曼树中每层左孩子权值比右孩子权值小,节点所在层数越低,其权值越小。
[0011] 所述赫夫曼树的构建步骤如下:
[0012] ①假设服务器端widget的集合W={w1,w2,w3......wn};
[0013] ②选择两个权值最小的widget:wi和wj,权值相加生成一个父亲节点加入到W中,同时删除W中的wi、wj,将wi和wj两个孩子节点和该父亲节点一起构建赫夫曼树,权值小的孩子节点位于左边,权值大的孩子节点位于右边;
[0014] ③继续在新的W中进行第二步,直到所有节点从W中移除。
[0015] 如果服务器中新加入了一个widget,将其插入到赫夫曼树中,具体步骤如下:
[0016] ①将新加入的widget的权值置为零;
[0017] ②权值为零的新节点和原赫夫曼树中最底层最左边的节点即原赫夫曼树中权值最小的节点,构成一对孩子节点,同时生成父亲节点;
[0018] ③将新生成的父亲节点及其孩子节点插入到原赫夫曼树的最底层最左边的节点处。
[0019] 如果服务器端撤销了一个widget,从赫夫曼树中删除这个widget,具体步骤如下:
[0020] ①根据赫夫曼编码找到赫夫曼树中的该widget节点wi;
[0021] ②将该widget节点wi的兄弟节点上移至节点wi的父亲节点处;
[0022] ③删除该widget节点wi及其父亲节点。
[0023] 本发明还提出一种对基于赫夫曼树的服务器端移动widget的查找方法,其特征在于,根据上述基于赫夫曼树的服务器端的移动widget管理方法,赫夫曼树构建好后,每个移动widget会分到一个赫夫曼编码的ID,按照如下步骤对所述的移动widget进行查找:
[0024] ①服务器端接收客户端的查询请求;
[0025] ②如果是模糊查询,服务器端就根据widget的ID的长短和值大小,把widget按下载频率从高到低的顺序排列发送到客户端的查询界面上;
[0026] ③如果是精确查询,服务器端就从赫夫曼树的最顶端开始从上到下,从右到左比较叶子节点和用户查询的widget的关键字,把最终的查询结果发送到客户端的查询界面上。
[0027] 本发明具有的有益效果是:首先,赫夫曼树的构建,给出了服务器端对widget的管理方法;其次,提出对新插入widget的管理,给出了最优的widget插入赫夫曼树的方法,能够花最小的代价生成新赫夫曼树;再次,widget的删除,保证了赫夫曼树的widget的有效性和真实性,同时也最小化重新构建了widget的赫夫曼树。
[0028] 另外,提出的对基于赫夫曼树的服务器端移动widget的查找方法,能大大减少搜索到结果的时间,提高移动用户的查找效率,给了用户更好地体验。

附图说明

[0029] 图1是本发明实施例的总体流程图;
[0030] 图2是本发明的赫夫曼树构建实施例的示意图。

具体实施方式

[0031] 如图1所示,本实施例的基于赫夫曼树的服务器端移动widget管理方法,包括如下流程:
[0032] 1)赫夫曼树的构建
[0033] 因为随着用户下载移动widget行为的发生,每个widget的下载频率会改变。为确保最受欢迎的widget能够得到最短的ID编码,有必要每隔一个时间周期如48小时重新构建一次赫夫曼树。
[0034] 在构建赫夫曼树前,先提取widget的下载频率作为每个widget的权值,其方法是在服务器端设置一个查找表,用于记录每个widget的下载频率,确定构建赫夫曼树的每个widget的权值只需从查找表中查找每个widget的下载频率,根据赫夫曼树算法构建赫夫曼树。具体步骤如下:
[0035] ①假设服务器端widget的集合W={w1,w2,w3……wn},并规定赫夫曼树中左孩子权值比右孩子权值小;
[0036] ②选择两个权值最小的widget:wi和wj(i,j为自然数,且i≠j),wi和wj权值相加生成一个父亲节点加入到W中,同时删除W中的wi、wj;并将wi和wj这两个孩子节点和其父亲节点一起构建赫夫曼树;
[0037] ③继续在新的W中进行步骤②,直到所有节点从W中移除;
[0038] 以下是赫夫曼树的数据结构及算法描述:
[0039]
[0040] 图2是赫夫曼树构建的一个实例,在该实例中,假设有①-④四个移动widget,每个移动widget的下载频率即权值如图所示,每次挑选两个权值最小的移动widget生成一个父亲节点,其权值相加作为该父亲节点的权值,首先,挑选权值最小的两个移动widget③和①,③的权值小于①,所以③在①的左边;其次,③和①的父亲节点权值为60,④的权值为70,所以③和①的父亲节点与④又构成它们的父亲节点;依此构建成赫夫曼树。赫夫曼树构建好后,一个节点左边的边值为0,右边的边值为1,从树的顶点从上往下给每个叶子节点编码,如①的赫夫曼编码ID是001;
[0041] 2)如果服务器中新加入了一个widget,要将其插入到赫夫曼树中,具体步骤及方法如下:
[0042] ①因为新加入的widget下载频率为零,所以将新加入的widget的权值置为零;
[0043] ②权值为零的新节点和原赫夫曼树中最底层最左边的节点,即原赫夫曼树中权值最小节点,构成一对孩子节点,同时生成父亲节点;
[0044] ③将新生成的父亲节点及其孩子节点插入到原赫夫曼树的最底层最左边的节点处;
[0045] 3)widget的删除
[0046] 如果服务器端撤销了一个widget,需要从赫夫曼树中删除这个widget,具体步骤及方法如下:
[0047] ①根据赫夫曼编码找到赫夫曼树中的该节点wi;
[0048] ②将该widget节点wi的兄弟节点上移至该widget节点wi的父亲节点处;
[0049] ③删除该widget节点wi及其父亲节点;
[0050] 4)widget的查找
[0051] 赫夫曼树构建好后,每个widget会分到一个赫夫曼编码的ID,ID越短的widget下载频率越高,如果ID长度相同,ID值越大的widget下载频率越高,用户所查询的widget通常都是受欢迎程度较高的widget,基于这一条件,服务器端的具体执行步骤如下:
[0052] ①接收客户端的查询请求;
[0053] ②如果是模糊查询(即用户不查询具体的某个widget),服务器端就根据widget的ID的长短和值大小,把widget按下载频率从高到低的顺序排列发送到客户端的查询界面上;
[0054] ③如果是精确查询(即用户查询某个具体的widget),服务器端就从赫夫曼树的最顶端开始从上到到下,从右到左比较叶子节点和用户查询的widget的关键字,如widget名称、widget用途等,把最终的查询结果发送到客户端的查询界面上。