导航数据库更新包的制作方法

文档序号:15737542发布日期:2018-10-23 21:44阅读:176来源:国知局
以下公开涉及地图更新,且更具体地,涉及使用二进制差的地理数据库的地图更新。
背景技术
::地图数据库用在提供有用特征的基于计算机的系统中。例如,地图数据库用在至感兴趣的目的地或点的路线的识别。导航系统根据存储在地理(或地图)数据库中的地图数据确定待由终端用户进行的从起点行进到目的地位置的最优路线。地图数据库还用在驾驶辅助系统或无人驾驶系统中。地图数据库还用在改善交通工具燃料经济性的系统中,如,考虑到即将到来的斜坡和速度改变而对传动装置选择进行优化的系统。由于新道路建立、其他道路关闭或营业地点改变,更新地理数据库。更新地图数据的一种方式是用包含新的更新后的地图数据的新版本的地理数据库替换整个现有地图数据库。该技术如果通过网络完成则需要大量时间和大量带宽。增加的地图更新是现代导航系统的重要特征之一。改善增加的地图更新技术的努力始终进行着。技术实现要素:根据一个实施例,描述一种方法,该方法包括:识别第一导航数据库,其具有第一多个导航数据记录和第一索引段;识别第二导航数据库,其具有第二多个导航数据记录和第二索引段;执行第一多个导航数据记录和第二多个导航数据记录的比较;以及基于比较识别第一多个导航数据记录的第一子集和第二多个导航数据记录的对应的第二子集,其中,第一子集和第二子集与第一多个导航数据记录和第二多个导航数据记录之间已经改变的记录相对应。对第一子集和第二子集执行差操作;以及基于差操作的结果生成更新包。因此,可通过该方法创建用于导航数据库的更新包。此外,描述第一设备,其包括用于使至少一个设备执行所述方法的任何呈现的实施例的动作的装置和/或用于执行所述方法的任何呈现的实施例的动作的装置。该设备的装置可在硬件和/或软件中实施。它们可包括例如用于执行实现所需功能的计算机程序代码的处理器、存储该程序代码的存储器或二者。替代地,它们可包括例如电路系统(如,集成电路),其被设计成实现如在芯片集或芯片中实施的所需功能。设备可包括用于所有功能的单个装置、用于所有功能的共同的多个装置或用于不同功能的多个不同装置。此外,描述第二设备,其包括至少一个处理器和带有计算机程序代码的至少一个存储器,所述至少一个存储器和利用所述至少一个处理器的所述计算机程序代码被配置成使至少一个设备至少执行所述方法的任何呈现的实施例的动作。此外,描述非暂时性计算机可读存储介质,其中存储有计算机程序代码。计算机程序代码包括指令,该指令当由处理器执行时使至少一个设备执行所述方法的任何呈现的实施例的动作。计算机可读存储介质可以是例如盘或存储器等。计算机程序代码可以以编码计算机可读存储介质的指令的形式存储在计算机可读存储介质中。计算机可读存储介质可以旨在参与装置的操作,如计算机的内部或外部硬盘,或者旨在用于分发程序代码,如光盘。将理解的是,计算机程序代码本身还不得不认为是本发明的实施例。所述设备中的任何一个可仅包括专用组件或一个或多个附加组件。将理解的是,针对特定示例性实施例呈现的任何特征还可结合任何类别的任何其他所述示例实施例以模拟方式被使用。进一步的,将理解的是,本发明在该部分中的呈现仅是示例性的且非限制的。根据一个示例实施例,更新包、第一子集和第二子集缺少用于导航数据记录的索引信息。根据一个示例实施例,在生成更新包后,生成用于导航数据记录的索引。根据一个示例实施例,在执行更新包时,生成用于导航数据记录的索引。根据一个示例实施例,第一多个导航数据记录中的一个对应于规定路线(routing),而第一多个导航数据记录中的另一个对应于地名。根据一个示例实施例,第一多个导航数据记录的第一子集是中间更新包。根据一个示例实施例,更新包包括一个或多个二进制大型对象。根据一个示例实施例,差操作是二进制差操作、树编辑操作或列表更新操作。根据以下结合附图考虑的具体实施方式,本发明的其他特征将变得明显。然而,应当理解,仅为了说明而不是作为对本发明的限制的限定而设计附图,对该限定的参考应当对随附权利要求进行。进一步的,应当理解,附图不必按比例绘制,且它们仅用来在构思上说明本文描述的结构和过程。附图说明参考以下附图在本文描述本发明的示例实施例。图1示出了用于导航数据库的示例数据结构。图2示出了用于使用中间数据库更新导航数据库的SQL更新包(SUP)技术。图3示出了示例数据库更新技术。图4示出了至不同算法的示例输入和输出。图5示出了示例数据库中的数据位置。图6示出了不同算法的数据块的示例。图7示出了数据块大小和数据块开始索引。图8示出了右焦距和左焦距的示例。图9示出了示例数据块阵列。图10示出了示例地图开发器系统,其可用于更新导航数据库。图11示出了用于对导航数据库应用更新序列的序列。图12示出了根据公开的发明的实施例的地图开发器系统的示例服务器。图13示出了根据公开的发明的实施例的图12的服务器装置的示例流程图。图14示出了根据实施例的与地图开发器系统通信的示例移动装置。图15示出了根据实施例的图14的移动装置的示例流程图。具体实施方式增加的地图更新是现代导航系统的重要特征之一。现代导航数据库可遵从例如导航数据库标准(NDS)的数据库标准。导航数据库可包括地图构成要素,如,规定路线记录、地名记录和基本地图显示(BMD)记录。地图构成要素或导航记录可被组织在二进制大型对象(BLOB)中。导航数据库可包括专用构成要素,如,语音识别算法。为了保持数据库同步,符合NDS的地图构成要素或数据库文件以及专用构成要素或数据库文件被更新。已经对用于在嵌入式装置(包括移动电话或交通工具中的主机单元)上的导航数据库的更新技术进行了很大努力。导航数据库可以需要频繁更新,如,每月,每周或每天。随着在这些装置上的导航相关的内容和特征的量增加,数据库的大小也增加。因此,使数据库与位置改变、感兴趣的点和道路网络同步需要大的文件大小,并且需要执行较长时间的更新。规定路线或基本地图显示数据可组织在BLOB(二进制大型对象)中。这些BLOB的内容可包括“元数据”和“有效负载”数据,其通常组织在列表中。图1示出了用于导航数据库的主要的规定路线功能的BLOB结构10,其可被称为规定路线图块。规定路线图块包括元数据和有效负载。如图所示,元数据包括规定路线图块数据头,而有效负载包括各种列表结构,如,路段列表11、道路属性列表13和道路十字路口列表15。导航文件(如,SQLite文件)可包括表中的几十到几千个BLOB。在导航数据库标准(NDS)中,例如,NDS数据库可由包含导航内容的一个或多个SQLite文件和(如,来自Nuance公司的)一个或多个语音识别文件构成。在更新期间替换整个导航数据库需要大量带宽和时间。当更新经由无线网络通过空气递送时,这可能是特别有问题的。可使用更新脚本和补丁文件,使得仅将改变从地图开发器发送到导航装置。通过递送新的导航数据库文件的大小约10%至20%的补丁文件,利用更新脚本和补丁文件能够减少所需带宽和时间。图2示出了用于使用中间数据库更新导航数据库的SQL更新包(SUP)技术。SUP技术对场地数据库或使用中的数据库应用相对大量的更新。在更新过程期间,可以基于用户偏好、定时、带宽或对数据连接的访问来暂停和恢复SUP技术。系统应用程序511包括被配置成提供导航相关服务的软件和/或硬件组件。系统应用程序511可由移动装置(如,智能手机,笔记本电脑或平板电脑)执行。导航相关服务可包括从起点位置到目的地的规定路线(如,建议路线规划或地图图示)或允许用户针对地方位置、道路、感兴趣的点或其他特征探索地图的地图探索。SUP应用程序515可生成目标数据库513,其包含导航数据库的更新或改变。SUP应用程序515可包括具有对目标数据库513写访问的应用程序接口(API)。在操作中,SUP应用程序515检查SUP数据库517以生成目标数据库513。SUP数据库517可包括表,该表包括文本关键字和与例如插入、更新和删除的更新命令对应的数据值。图3示出了若干数据库更新技术,包括变换方法520、数据记录方法530和混合方法540。在变换方法520中,比较旧数据库521和新数据库523以创建更新包525。变换方法520的比较可基于下面描述的以下差操作中的任何一个。二进制差操作比较字节级的数据。通过比较一个串中的第一位与另一个串的第一位等,二进制差计算两个位串之间的差。例如,当当前导航数据与新导航数据比较时,当前导航数据的第一字节与新导航数据的第一字节比较,当前导航数据的第二字节与新导航数据的第二字节比较,等等。二进制差操作的结果可包括数据中的差的字节位置和用于该位置的编辑操作。示例编辑操作包括增加数据、删除数据或修改数据。用于识别新导航数据库文件的改变的另一差操作是逐字节差操作,例如,逐字节减法差(BSdiff)操作。图4示出了BSdiff算法的示例输入和输出。例如,BSdiff505可接受任意两个版本的文件(如,旧文件501和新文件503)并输出补丁文件(如,补丁文件507)。BSdiff能够应用到任一类型的文件且不限于导航文件、NDS文件或BLOB。当更新NDS数据库时,SQLite文件和语音识别文件必须被同时更新。因为语音识别文件的结构可以是已知的,所以标准BSdiff方法可用来计算语音识别文件的更新补丁文件。BSdiff操作还可同时应用于SQLite文件。通常由执行BSdiff操作的服务器来创建一个或多个补丁文件,且一个或多个补丁文件可发送到导航装置以运行更新脚本(如,BSPatch)。通过指定街道结构的更新脚本中被删除、替换或更新的部分,树编辑操作更新树结构中的导航数据。地图图块可具有树数据结构,其包括分配有识别值的根节点。中间节点的一个或多个级连接到根节点并包括对象值。可通过来自更新脚本的命令修改树结构。更新脚本包括树结构中的多个节点的修改、添加或删除。更新脚本可包括用于节点的分支的添加或节点的分支的替换的数据。在地图数据中,新数据可以是对下一个有效字符树(如,新街道名称或城市名称)的变化。新数据可以是至基本地图显示图块的新道路或区域。用于旧导航数据和新导航数据之间的差的这种类型的更新脚本可以是将子树添加至树结构中的指令。插入的子树表示现实世界的对象。存储在BLOB中的其他对象和数据不受影响,但其他对象和数据的BLOB内的地址和位置可根据插入或删除而增加或降低。在一个示例中,现实世界的改变(如,新道路链接的插入)可导致若干编辑操作。例如,新道路链接的插入可导致NDS链表结构的修改、条目至NDS简单交叉列表结构的额外插入和其他列表的修改。更新包中的更新脚本或一系列更新脚本包括仅与正在被改变的节点的子分支相关的数据。更新编译器将新的或改变的树结构并入存储在BLOB中的旧树。列表更新操作可应用于用于对象列表的BLOB。计算装置可识别用于包括路段和道路属性的导航数据的BLOB的列表部分。列表部分可包括字节未对准的数据,其是不具有标准数量的位的数据。计算装置可分析单元(如,元素或列表)中的BLOB并将BLOB的每个单元与预定大小比较。预定大小可以是整数数量的字节。当BLOB的单元不等于整数数量的字节或位数的模数8不等于零时,因此处理器指定第一部分。计算装置识别BLOB的第二部分中的字节对准。由于BLOB的第二部分具有整数数量的字节或位数的模数8等于零,因此发生字节对准。换句话说,位数为8的倍数,且BLOB的第二部分能够以字节表示。因此,能够使用二进制差比较BLOB的第二部分的旧版本的十六进制表示和BLOB的第二部分的新版本的十六进制表示,且结果是易管理的大小。二进制差的结果的大小近似于更新的数据的该大小。计算装置可将BLOB的第一部分分成多个元素,每个都具有预定大小。预定大小可以基于数据组织。可以基于属性或其他地理数据的列表来定义预定大小。在地图列表操作中,计算装置可对BLOB的第二部分和地理数据库的现有版本的对应部分执行二进制差操作。因为BLOB的第二部分是字节对准的。第二部分的二进制差可包括第二部分中的更新。针对BLOB的第一部分的一系列操作可包括针对BLOB的第一部分的元素的插入、删除或更新。在数据记录方法530中,比较旧数据库531和新数据库533以创建更新包525。数据记录方法的比较识别旧数据库531和新数据库533中的文件之间的不同记录。得到的SUP数据库535包括应当在旧数据库531中被插入、删除或更新的一组记录。考虑改变大地区(如,区域或国家)上的速度限制,其包括大区域中的所有公路的速度限制改变。数据库中的每个或几乎所有数据记录可被更新以调整速度限制。使用差方法,更新是小的。更新可包括具有速度限制的所有场地的位置和用于那些场地的新的值。然而,在数据记录方法中,SUP数据库包括已经通过修改速度限制而改变的所有数据记录。在此示例中的SUP数据库可以与初始数据库一样大或甚至比初始数据库更大。在混合方法540中,变换方法520和数据记录方法530被部分组合。混合方法涉及先比较数据记录以建立SUP数据库然后利用SUP数据库的记录执行差操作。混合方法540生成的更新小于变换方法520或数据记录方法530可单独实现的更新。混合方法540比变换方法520更有效,因为不包括索引。混合方法540比数据记录方法530更有效,因为在更新中包括小于整个的数据记录。可通过可统称为计算装置的计算机、服务器或移动装置执行任何方法。计算装置是用于执行导航数据库更新的专用计算机。计算装置被配置成识别旧数据库541和新数据库543。计算装置读取相应数据库以确定旧导航记录和旧数据库541的旧索引以及新导航记录和新数据库543的新索引。索引可包括每个数据记录的数值。索引可以是存储器地址位置。计算装置被配置成执行旧导航数据记录和导航数据记录之间的比较。计算装置可针对具体记录查询旧数据库541以及针对相应记录查询新数据库543。响应于比较,计算装置被配置成确定对应数据记录中的哪一个在旧数据库541和新数据库543是不同的。不匹配的数据记录的子集被存储在计算装置处的存储器中。计算装置可识别每个数据库中的子集,使得导航数据记录的第一子集在旧数据库541中被识别且导航数据记录的对应的第二子集在新数据库543中被识别。第一子集和第二子集对应于已经改变的记录,这是因为旧数据库可对应于SUP数据库545。计算装置将来自新数据库543的导航数据记录和来自旧数据库541的对应导航记录中的每个的副本存储在存储器中。不将索引与导航数据记录的副本一起存储。计算装置被配置成对来自旧数据库541的第一子集和来自新数据库543的第二子集执行差操作。差操作可以是二进制差、树编辑操作或列表更新操作。计算装置被配置成基于差操作的结果生成更新包547。根据数据记录比较和随后的差操作的组合形成更新包。SUP更新包仅包含关于改变的表数据的信息而没有关于改变的索引的信息。换句话说,更新包不涉及与补丁索引相关的任何负担。这种负担可以是带宽、存储器或其他计算资源。索引可稍后由客户端装置(如,SQLite引擎)更新。因此,索引可从更新包忽略。类似的,更新包可仅包含关于改变的虚拟表的数据而没有关于潜在的物理表的数据。在生成更新包之后生成导航数据记录的索引。通过对目标系统应用SUP数据库,数据库实用程序(如,SQLite)可自动生成一个或多个索引。SUP应用程序515中的更新操作从SUP数据库517读取记录并向数据库系统SQLite发出SQLupdate声明。数据库系统不仅插入、删除或修改目标数据库513中的数据库记录还调整存储在目标数据库513中的索引结构在应用更新包时或在执行更新包时,数据库实用程序可生成索引。可响应于在客户端装置处接收到的更新包生成索引。返回到二进制差操作,可根据以下格式生成BSdiff补丁文件。前32个字节构成数据头块。数据头的前8个字节包含文本“BSDIFF40”,接下来的8个字节包含Control块长度。接下来的8个字节包含Diff块长度。最终,数据头的最后8个字节包含新文件大小。接着,Control块包含一个或多个24字节行,其中每行表示均为8个字节长的“ctrl0”、“ctrl1”和“ctrl2”。Ctrl0表示Diff块的长度,其指示将从Diff块读取多少字节。Ctrl1表示Extra块的长度,其指示将从Extra块读取多少字节。Ctrl2表示Control块中的下一行的寻道偏移量(seekoffset)。Control块的总长度包含在数据头中。通过使用bzip2压缩Control块。接着,Diff块表示来自旧的和新的文件的被减去和并置的几乎匹配的字节。Diff块的总长度包含在数据头中。还通过bzip2压缩Diff块。最后,Extra块表示来自新文件的不匹配的内容。Extra块的总长度不包含在补丁文件中,因为Extra块跨越补丁文件的其余部分。Bzip2还用来压缩Extra块,由于压缩成功用于Control块和Diff块,但压缩不会成功降低总体大小。通过示例方式,可根据以下BSdiff算法生成补丁文件。首先,旧文件和新文件的位置以及补丁文件的目标位置作为输入被接收。第二,整个旧文件被读取进入存储器缓冲器。第三,生成整个旧文件的后缀树。第四,逐字节读取新文件以识别整个旧文件内的最佳匹配。步骤四利用步骤三中产生的后缀树。第五,近似匹配的字节差被识别并被存储在Diff块中。新增加的字节还被识别并附加在Extra块中。Control块行(ctrl0,ctrl1和ctrl2)可被附加至Control块,使得:ctrl0将表示具有近似匹配字节的未压缩的Diff块的长度;ctrl1将表示具有来自新文件的新增加的字节的未压缩的Extra块的长度;以及ctrl2将表示寻道偏移量,其提供来自旧文件的下一个最佳匹配的块的寻道位置。第六,使用bzip2压缩Control块、Diff块和Extra块。第七,步骤四至步骤六重复进行直到已经完全处理了新文件。第八,利用Control块大小、Diff块大小和新文件大小的正确值更新数据头以完成补丁文件。图4进一步示出了BSPatch算法的示例输入和输出。例如,BSPatch509可接收补丁文件(如,补丁文件507)并使用用来生成补丁文件的旧文件(如,旧文件501)生成用来生成补丁文件的新文件(如,新文件503)。通常通过导航装置执行BSPatch操作来使用(一个或多个)补丁文件,以允许导航装置更新其导航数据库。如上所述,标准BSdiff操作尝试在整个旧文件内找到新文件部分的最佳匹配。BSdiff算法尝试在旧文件中找到能够用来生成新文件的模式。因此,BSPatch操作指在旧文件中通过BSPatch操作定位匹配模式的位置。因为BSdiff算法尝试在整个旧文件内找到最佳匹配,因此补丁文件可包含Control块中的每行的大的寻道偏移量值(即,ctrl2)。图5示出了BSdiff算法可以在旧文件内怎样识别新文件的最佳匹配模式的示例。为了此示例的目的,来自新文件503的数据块被标记有与来自旧文件501的对应数据块的相同字母。当从旧文件读取数据块A时,BSPatch必须从旧文件中的其当前位置(如,在索引0处开始)寻道至数据块A的起点。在此情况下,寻道偏移量将是正数,且BSPatch将从数据块A的执行读取操作。接着,BSPatch将从数据块B读取。从数据块A的结束(如,数值低的索引值)到数据块B的开始(如,数值高的索引值)的寻道偏移量将需要正方向上的大的寻道偏移量。BSPatch将继续寻道和读取操作,直到每个对应数据块已经被读取。从数据块B的结束到数据块C的开始的寻道偏移量值是大的负值。最后,针对剩余的数据块,从数据块C的结束到数据块D的开始的寻道偏移量值将是大的正数等等。在Control块中的行之间的大的寻道偏移量值由以分散方式匹配和读取来自旧文件的数据导致。因此,BSPatch操作还必须以相同的分散方式读取来自旧文件的数据。对于小的文件大小,BSdiff和BSPatch可以是提供数据库更新的有效方式。例如,当文件大小很小时,整个旧文件可通过目标系统加载到缓冲器中,并且每个读取和寻道操作仅对应于有效阵列访问。然而,随着文件大小增加,以分散方式读取来自旧文件的数据可能是效率低的,因为目标系统可能不能将整个旧文件加载到缓冲器中。例如,一些导航文件的大小非常大,达到并超过1千兆字节,且目标系统(如,移动装置和汽车主机单元)具有非常有限数量的主存储器。在此示例中,旧文件不能保持在主存储器中。当旧文件不能全部加载到存储器中时,物理I/O操作(如,fseek/fread)可被需要用于补丁文件的每个Control块条目。针对导航数据库更新,物理I/O操作可能是耗时的且导致BSPatch算法时间达到并超过50小时。BSdiff方法的以下示例可相当大地降低I/O操作,并将嵌入式系统上的BSPatch加速100倍并且加速超过100倍。新的BSdiff方法利用以下事实:新导航数据库通常以相同的先后序列被创建,得到彼此非常类似的文件。利用文件之间的这种类似性,新的BSdiff方法可通过仅比较在相关位置中的新文件数据块和旧文件数据块来生成导航数据的增加的更新补丁,由此带来较小的寻道时间。例如,旧文件可被分成相等大小的数据块。新文件也可被分成相等大小(优选地,大小更小)的数据块。还可对旧文件引入大小优选是新文件中的数据块的大小的两倍或接近两倍的重叠数据块。可在来自两个文件的相关数据块(包括来自旧文件的重叠数据块)之间执行BSdiff操作以生成新文件中的每个数据块的补丁文件。合并得到的补丁文件以生成最终的补丁文件。最终的补丁大小可大于通过标准BSdiff算法生成的补丁文件,然而,使用新的BSdiff方法生成的最终的补丁文件可很大地减小对目标装置执行BSPatch算法所需的时间。例如,目标装置可具有仅32兆字节的随机存取存储器(RAM)。使用标准BSdiff补丁文件,BSPatch算法可花50小时或更多进行执行,其中,接近75%的该时间花在寻道和读取函数上。例如,32兆字节的目标装置可花近8毫秒寻道和读取来自旧文件的数据块,同时应用补丁。因此,BSPatch算法必须寻道和读取每兆字节的新文件6826次。因此,对于每兆字节,BSPatch将花54,608毫秒(即,6826个fread乘以8毫秒)。然而,使用新的BSdiff方法,例如,BSPatch算法必须仅寻道和读取每兆字节的新文件最多2次。因此,寻道和读取函数可减小99%,以允许BSPatch执行的更快。例如,应用补丁所必须的时间可从接近50小时减小到接近50分钟。为了计算新的BSdiff方法所需的寻道和读取函数的总数,可使用以下公式:freads=((新文件大小(兆字节))*2)/(8兆字节)。旧文件的正常的块大小为8兆字节。例如,80兆字节的新文件可需要20个寻道和读取函数(freads)。图6示出了根据所公开的发明的实施例的用于BSdiff操作的数据块的示例。在一个示例中,旧文件501为19兆字节,而新文件503为17兆字节。可以以两个迭代执行BSdiff操作。在第一迭代中,可利用旧文件数据块执行BSdiff操作。在第二迭代中,可利用重叠数据块执行BSdiff操作。对于迭代1,旧文件可被分成由01、02和03表示的数据块。旧文件数据块可以以预定长度(如,8兆字节)具有相等的大小。对于迭代2,重叠数据块被引入且可通过04和05表示。每个重叠数据块可以以预定长度(如,2兆字节)具有相等的大小。在一个示例中,重叠数据块的大小可以是新数据块的两倍。在另一示例中,重叠数据块可以具有与新文件数据块相同的预定长度(如,8兆字节)。重叠数据块的大小可以是可修改的。通常,重叠数据块小于旧数据块且大于新文件数据块。在另一示例中,可引入大小不等的重叠数据块。例如,最后的重叠数据块可大于或小于其他重叠数据块。重叠数据块可被引入在旧数据块的边界处,通常相等的横跨两个旧数据块。在一个示例中,重叠数据块可不等的横跨两个旧数据块。例如,相比最后的旧数据块,最后的重叠数据块可在之前的旧数据块之上更远(如,如果最后的旧数据块小于之前的旧数据块)。新文件可被分成由N1至N17表示的数据块。新文件数据块可以以预定长度(如,1兆字节)具有相等的大小。图7示出了图6中的示例的数据块大小和数据块开始索引。表500示出数据块01、02和03可以是预定大小(如,分别为8兆字节、8兆字节和3兆字节)。因为在旧文件被分成预定大小(如,8兆字节)时仅3兆字节剩余在旧文件中,所以数据块03可以仅为3兆字节长。数据块04和05都是预定大小(如,2兆字节长)。数据块01、02、03、04和05的开始索引分别是0、8、16、7和15。在一个示例中,旧数据块、新数据块和重叠的旧数据块可被识别并存储在一个或多个表中,该表存储对数据块的大小和开始索引的参考(如,表500)。替代地,旧数据块、新数据块和重叠的旧数据块可作为与旧文件和新文件分开的文件被存储。旧数据块、新数据块和重叠的旧数据块的大小可通过默认设置、通过文件类型和/或通过用户输入确定。每个旧数据块可与相应新数据块(如,8个新数据块)比较,且每个重叠的数据块可与相应新数据块(如,2个新数据块)比较。为了发现更多匹配,可引入左焦距技术和右焦距技术。左焦距和右焦距可识别旧文件中的更匹配的数据块。左焦距表示将与旧数据块比较的相关的新数据块之前紧接着多少新数据块。右焦距表示将与旧数据块比较的相关的新数据块之后紧接着多少新数据块。左焦距和右焦距越大,BSdiff算法将花越长时间生成补丁文件。图8示出了根据实施例的右焦距和左焦距的示例。在此示例中,来自旧文件501的在索引80处开始的8兆字节(即,normalBlockLenth(正常块长度)=8)的旧文件数据块与新文件503的在索引80至87的相同位置处的对应的新文件数据块比较。旧文件数据块还与左焦距和右焦距比较。在此示例中,左焦距为8兆字节长(即,LeftFocus(左焦距)=8)且右焦距为8兆字节长(即,RightFocus(右焦距)=8)。左焦距在索引72处开始,且右焦距在索引88处开始,二者分别在新文件数据块的与旧数据块相同位置处的紧接着之前和紧接着之后。在图8中提供的示例中,每个旧数据块可与24个新数据块比较:与旧数据块在相同索引位置中的8个新数据块;在旧数据块的索引位置之前紧接着的8个新数据块;和在旧数据块的索引位置之后紧接着的8个新数据块。这些比较操作可导致新文件块的24个单独的补丁文件。类似的,每个重叠的旧数据块可与18个新数据块比较:与重叠的旧数据块在相同索引位置中的2个新数据块;在重叠的旧数据块的索引位置之前紧接着的8个新数据块;和在重叠的旧数据块的索引位置之后紧接着的8个新数据块。这些比较操作可导致新文件块的18个单独的补丁文件。当使用右偏移量和左偏移量时,以下公式可用来确定将生成多少个补丁用于新数据块:补丁文件的数量=(normalBlockLength+RightFocus+LeftFocus)/newBlockLength(新块长度)。其中:normalBlockLength=旧数据块大小;RightFocus=右焦距大小;LeftFocus=左焦距大小;和newBlockLength=新数据块大小。对于该示例,normalBlockLength、RightFocus和LeftFocus可以是newBlockLength的倍数。得到的补丁文件可以与标准BSdiff文件在相同格式下。在上面讨论了标准BSdiff补丁文件。该过程将通常跨过整个旧文件。根据新文件和旧文件的大小,最后的旧数据块可与更多或更少的新数据块比较。例如,针对最后的旧数据块和针对最后的重叠的旧数据块,操作可确保对整个新文件进行比较。例如,如果旧文件大小为12兆字节且新文件大小为24兆字节,则BSdiff操作可确保最后的旧数据块和最后的重叠的旧数据块都进行比较直到新文件结束。在此示例中,操作可确保比较不在新文件索引20处结束,但是反而继续通过索引24。在一些情况下,当旧和新文件大小在长度上不相似时,发送整个新文件可能比使用补丁文件增加的更新是有利的。上述比较操作可比较新数据块与多于一个的旧数据块,导致每个新数据块的多于一个的补丁文件。在此情况下,每个新数据块的相应补丁文件大小被比较,且具有最小补丁文件的补丁文件被选择且被存储(即,temp_XXX.path,其中,XXX表示新文件数据块编号)。最小补丁文件大小也可存储在阵列中以稍后使用。通常,最小补丁文件提供新数据块与对应旧数据块的最佳匹配。在一个示例中,在完全处理完新文件之后,每个新数据块的每一个补丁文件可被存储,且可从各种补丁文件中选择每个新数据块的最小补丁文件。在另一示例中,当生成较小补丁文件时,仅一个补丁文件被存储用于每个新数据块,且新数据块的当前存储的补丁文件可被较小补丁文件替换和重写。通过利用较小补丁文件重写当前存储的补丁文件,当比较操作完成时,最小补丁文件可仍被存储用于每个新文件数据块。图9示出了17兆字节的新文件的示例数据块阵列。例如,在表502中,当每个新数据块为1兆字节长时,可存储三个阵列,每个阵列具有对应于17个新文件数据块的17个条目。第一阵列可以保存每个新数据块的最佳匹配的补丁文件的补丁大小。补丁大小是最佳匹配的补丁文件的字节大小。较小补丁文件对应于来自直接从旧文件并置(即,使用Diff块)的数据的较大量的结果,而较大补丁文件对应于可以不从旧文件并置(即,使用Extra块)的较多新数据。第二阵列可以保存每个新数据块的最佳匹配的补丁文件的最佳匹配的旧数据块编号。第三阵列可以保存每个新数据块的最佳匹配的补丁文件的最佳匹配的旧块大小。可以合并或组合针对新数据文件块生成的补丁文件以生成可以由导航装置(即,使用BSPatch)利用的针对新文件的最终或合并的补丁文件。例如,如上所述的阵列和补丁文件可以用来生成合并的补丁文件。优选地,选择每个新文件数据块的最小补丁文件。合并操作可利用来自每个补丁文件的相应的Control块、Diff块和Extra块以生成最终的补丁文件的适当的数据头、Control块、Diff块和Extra块。合并操作可分别合并相应的Control块、Diff块和Extra块,且稍后将每个合并成最终的补丁文件。来自相应补丁文件的Control块可以被直接并置。除了每个相应补丁文件的最后的Control块之外,不需要对Control块进行改变。每个补丁文件的最后的Control块可以被更新以提供开始索引待被合并的下一个补丁文件的最佳匹配的旧数据块的寻道偏移量值。例如,针对补丁文件的最后的Control块,BSpatch中的寻道偏移量值(即,OldPos)可以被设置为下一个新数据块补丁文件的最佳匹配的旧文件数据块。额外的Control块行(即,ctrl0=0;ctrl1=0;ctrl2=偏移量)也可以被添加到Control块的开始,其中,寻道偏移量(即,ctrl2)可以被设置为第一新数据块的最佳匹配的旧数据块。来自相应的补丁文件的Diff块和Extra块也可以被直接并置。不需要对Diff块或Extra块进行改变。最终的补丁文件中的数据头信息可以被更新以反映最终的Control块大小、Diff块大小和新文件大小。在合并操作完成之后,相应的补丁文件不再被需要且可以被删除以释放存储器。最终或合并的补丁文件可以与标准BSdiff补丁文件处于相同格式,以允许最终的补丁文件由现有BSPatch算法利用。标准BSdiff补丁文件和BSPatch算法如上所述。因为相应的补丁文件从与旧文件中的相关位置的比较得到,所以旧文件的仅一部分必须加载到装置缓冲器中。因此,BSPatch的存储器要求可被降低到目标水平(如,10MB)以下。图10示出了示例地图开发器系统120,其可用于更新导航数据库。系统120可包括开发器系统121、一个或多个移动装置122(如,导航装置)、工作站128和网络127。开发器系统121包括服务器125和一个或多个数据库。数据库123a至123b可以是地理数据库,包括道路链接或路段。可提供额外的、不同的或更少的组件。例如,许多移动装置122和/或工作站128可以与网络127连接。如图4中所述,数据库123a的原版拷贝可以存储在开发器系统121处,且数据库123b的本地拷贝可以存储在移动装置122处。在一个示例中,数据库123b的本地拷贝是地理数据库的全拷贝,且在另一示例中,数据库123b的本地拷贝可以是地理数据库的缓存部分或本地部分。可以基于移动装置122的地理位置或在移动装置122处进行的用户选择限定缓存的部分。例如,数据库123a至123b可以存储或维护地理数据,例如,路段或链接数据记录和节点数据记录。链接数据记录是表示道路、街道或路径的链接或段。节点数据记录是端点(如,十字路口),其对应于路段数据记录的相应链接或段。道路链接数据记录和节点数据记录可以表示例如由交通工具、汽车和/或其他实体使用的道路网络。每个路段可与两个节点(如,一个节点表示路段一端处的点,而另一节点表示路段另一端处的点)相关联。路段任一端处的节点可对应于道路与另一条道路交会的位置(即,十字路口)或道路尽头的位置。路段可包括行人行走的人行道和人行横道。路段或链接中的每个可与存储在字节未对准的列表中的各种属性或特征相关联。路段数据记录可包括指示所表示的路段上的速度限制或速度类别(即,最大允许的交通工具行进速度)的数据。路段数据记录还可包括指示分类(如,可对应于其功能分类的路段的等级)的数据。路段数据可包括段ID,通过该ID,能够在地理数据库123中识别数据记录。路段数据、节点、段ID、属性、场地和其他数据可组织在上述数据结构中。路段数据可包括识别以下的数据:由路段表示的道路部分的端部处的十字路口对应的每个节点处存在什么转弯限制、已知表示的路段所根据的一个或多个名称、路段长度、路段等级、沿着所表示的路段的街道地址范围、在所表示的路段上的交通工具行进的允许的方向、所表示的路段是否是受控通路的一部分(如,高速公路)、受控通路的斜坡、桥梁、隧道、收费道路、渡口等。额外的路段数据可以组织在数据树结构中。替代地,数据树结构可包括在单独的数据库中,例如,在服务器125和/或移动装置122的内部或在外部位置处。服务器125可向移动装置122发送地图更新。服务器125可更新地理数据库123的特定图块。服务器125可向数据库123a的原版拷贝发送更新和/或向数据库123b的本地拷贝发送更新。服务器125可生成导航数据的更新脚本或补丁文件并向移动装置122发送更新脚本或补丁文件以更新数据库123b的本地拷贝。移动装置122可以是个人导航装置(“PND”)、便携式导航装置智能手机、移动电话、个人数字助理(“PDA”)、平板电脑、笔记本电脑和/或任何其他已知或后来开发的移动装置或个人计算机。移动装置122还可以是汽车主机单元、娱乐系统和/或任何其他已知或后来开发的汽车导航系统。导航装置的非限制实施例还可包括相关的数据库服务装置、移动电话装置、汽车导航装置和用于空中或水上交通的导航装置。移动装置122可被配置成执行规定路线算法以确定最优路线以在地理区域中沿着道路网络从起点位置行进到目的地位置。使用来自终端用户的输入,移动装置122检查起点位置和目的地位置之间的潜在路线以确定最优路线。然后,移动装置122可为终端用户提供关于引导形式的最优路线的信息,其识别待由终端用户进行的从起点行进到目的地位置的所需演习。一些移动装置在显示器上示出画出路线轮廓的详细地图、在沿着路线的各种位置处行进的演习类型、某种类型的特征的位置等。移动装置122还可被配置成使用本地存储的地图数据执行更新脚本或导航补丁文件。移动装置122可通过网络127从服务器125接收更新脚本和/或导航补丁文件。更新脚本或补丁文件可包括比大规模替换的数据库、数据库的一部分或BLOB更少的数据,且需要比大规模替换更小的带宽和/或发送时间。更新脚本和/或补丁文件可存储在耦接到服务器125或移动装置122的计算机可读介质中,其可称为导航装置。图11示出了用于对导航数据库应用更新序列的序列。移动装置122可以应用该序列。移动装置122首先存储旧数据库100a至100c并接收包括补丁101a至101c的更新包。导航数据库可被分成多个分量或多个数据库。在一个示例中,导航数据库被分成路线数据记录或数据库100a、BMD记录或数据库100b和名称记录或数据库100c。路线记录可包括路段。BMD记录可描述地图数据的大小、取向、颜色和其他显示特征。名称记录可包括用于地图数据中的地点的地名和POI名称。更新包包括划分的数据记录或数据库的对应的补丁,包括路线补丁文件101a、BMD补丁文件101b和地名补丁文件101c。通过读取旧数据库100a至100c和补丁文件101a至100c,移动装置122创建SUP数据库103a至103c,其可以是中间数据库。在一个示例中,当bsdiff算法用来创建补丁文件101a至100c时,移动装置122运行bspatch算法来生成中间数据库。随后,通过组合中间数据库和旧数据库100a至100c,移动装置122生成新导航文件或新数据库104a至104c。例如,旧路线数据库100a可包括路段数据记录1、2、3和4,并且用于路线的中间数据库103a可包括路段数据记录3’。移动装置122被配置成用新路段数据记录3’替换旧路线数据库中的路段3。在一个示例中,并行更新对导航数据库的划分。例如,可同时或几乎同时应用路线补丁文件101a、BMD补丁文件101b和地名补丁文件101c。在另一个示例中,串行应用路线补丁文件101a至101c。补丁的次序可由用户配置。替代地,可基于预定计划自动选择补丁的次序。在一个示例中,移动装置122可确定可用存储器的大小、网络连接的可用性、网络连接的速度或可用带宽的量。移动装置可基于可用存储器的大小、网络连接的可用性、网络连接的速度或可用带宽的量的任何组合选择次序。开发器系统121、工作站128和移动装置122与网络127耦接。词语“与……耦接”被限定为意思是直接连接或通过一个或多个中间组件间接连接。这种中间组件可包括基于硬件和/或软件的组件。可在服务器125和移动装置122之间分配计算资源。在一些实施例中,服务器125执行用于生成最终补丁文件的大多数处理。在其他实施例中,移动装置122或工作站128执行大多数处理。此外,可以在服务器125和移动装置122或工作站128之间基本上平均分配处理。图12示出了示例服务器125。服务器125包括处理器300,通信接口305和存储器301。服务器125可以耦合到数据库123和工作站310。工作站310可用来录入关于将被使用的更新脚本(如,标准BSdiff与使用相关数据块的BSdiff)的类型的数据。数据库123可以是如上所述的地理数据库。可在服务器125中提供额外的,不同的或更少的组件。图13示出了根据实施例的服务器125的操作的示例流程图。可提供额外的、不同的或更少的动作。可重复一些动作。在动作S101中,处理器300识别第一导航数据库,其具有第一组导航数据记录和第一索引段。在动作S103中,处理器300识别第二导航数据库,其具有第二组导航数据记录和第二索引段。导航数据记录可包括路段数据、道路属性数据、地图显示特征和地名的任何组合。索引段可包括用于导航数据记录的识别符。第一导航数据库和第二导航数据库可使用相同的索引模式或不同的索引模式。在动作S105中,处理器300比较第一导航数据库和第二导航数据库,以识别子集导航记录,其对应于第一组导航数据记录的一部分和第二组导航数据记录的对应的部分。该比较可以是第一差操作。该比较可以是SQL操作。子集包括已经在第一导航数据库和第二导航数据库之间改变的所有记录。在动作S107中,处理器300对所述第一子集和所述第二子集执行第二差操作。该差操作可以是如上所述的二进制差操作、地图列表差操作或树编辑操作。差操作的结果包括来自S105的已经在第一导航数据库和第二导航数据库之间改变的记录的子集内的数据的差。在动作S109中,处理器300基于第二差操作的结果生成更新包。更新包包括将差操作的结果应用到旧数据库的指令。更新包不包括索引。实际上,通过应用多个差操作生成更新包。例如,通过在第一导航数据库和来自动作S107的差操作的结果之间应用另一差操作,生成更新包。图14示出了根据所公开的发明的实施例的图10的系统的示例性移动装置122。移动装置122包括处理器200、存储器204、输入装置203、通信接口205、定位电路系统207和显示器211。附加的、不同的或更少的组件对移动装置122是可能的。图15示出了根据实施例的图14的移动装置的示例流程图。可包括附加的、不同的或更少的动作。可重复一些动作。在动作S201中,通信接口205接收更新包。可通过网络127接收更新包。在一些示例中,在移动装置122通过优选类型的连接(如,Wifi或有线)被连接的情况下下载更新包,且当移动装置122通过另一类型的连接(如,蜂窝)被连接时不下载更新包。在一个替代方式中,通过将外部装置(如,笔记本电脑)或计算机可读介质(如,光盘或固态介质)连接到移动装置接收更新包。在动作S203中,处理器200打开更新包。动作S203可包括以下中的任何组合:解压缩更新包、解密更新包和验证更新包的真实性。解压缩更新包可包括识别压缩算法,其可通过更新包中的字母数字标记设置或可以之前被建立。可由处理器200应用压缩算法以访问更新包中的导航数据记录。解密更新包可包括识别解密算法,其可通过更新包中的字母数字标记设置或可以之前被建立。验证更新包的真实性可包括验证更新包中包括的证书或签名。处理器200可删除或拒绝不能被验证的任何更新包。在动作S205中,处理器200生成一个或多个中间数据库。在一些示例中,处理器200可执行bspatch算法以生成一个或多个中间数据库。从更新包中提取的数据与来自旧数据库的单独的导航数据记录组合。在动作S207中,通过将中间数据库与现有数据库组合,处理器200生成更新的数据库。更新的导航数据记录替换旧数据库中的对应的现有的导航数据记录。处理器200可执行存储器204中存储的一组导航数据上的导航补丁文件。该组导航数据可以是整个地理数据库。该组导航数据可以是地理数据库的子集。例如,可以根据移动装置122的地理位置缓存该子集。例如,定位电路系统207可以确定地理位置(如,维度和经度)并因此请求来自服务器125的该组导航数据。在另一示例中,用户可通过输入装置203选择待加载到存储器204中的地理区域。定位电路系统207可以包括全球定位系统(GPS)、全球导航卫星系统(GLONASS)或用于提供位置信息的蜂窝或类似位置传感器。定位系统可利用GPS类技术、航位推测法类系统、蜂窝位置或这些或其他系统的组合。定位电路系统207可以包括适当的感测装置,其测量移动装置122的行近距离、速度、方向等。定位系统还可包括接收器和相关芯片以获得GPS信号。替代地或附加的,一个或多个检测器或传感器可包括建立在移动装置122内部或嵌入移动装置122中或在移动装置122内的加速计。可操作加速计以检测、识别或测量移动装置122的平移和/或旋转移动的改变率。移动装置122从定位系统接收位置数据。位置数据指示移动装置122的位置。输入装置203可以是一个或多个按钮、按键、键盘、鼠标、独特风格的笔、跟踪球、摇杆式开关、触摸板、语音识别电路或用于将数据输入移动装置100中的其他装置或组件。输入装置203和显示器211可以组合为触摸屏,其可以是电容性的或电阻性的。显示器211可以是液晶显示器(LCD)面板、发光二极管(LED)屏幕、薄膜晶体管屏幕或另一类型的显示器。控制器200和/或处理器300可包括通用处理器、数字信号处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、模拟电路、数字电路、其组合,或其他现在已知或稍后开发的处理器。控制器200和/或处理器300可以是单个装置或装置的组合,所述装置的组合诸如与网络、分布式处理或云计算相关联。存储器204和/或存储器301可以是易失性存储器或非易失性存储器。存储器204和/或存储器301可包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、电子可擦程序只读存储器(EEPROM)或其他类型的存储器中的一个或更多个。存储器204和/或存储器301(如,安全数字(SD)存储器卡)可从移动装置122移除。通信接口205和/或通信接口305可包括任何可操作连接。可操作连接可以是其中信号、物理通信和/或逻辑通信可被发送和/或接收的连接。可操作连接可包括物理接口、电气接口和/或数据接口。通信接口205和/或通信接口305提供以任何现在已知或稍后开发的格式的无线和/或有线通信。网络127可包括有线网络、无线网络或其组合。无线网络可以是移动电话网络、802.11、802.16、802.20或WiMax网络。进一步地,网络127可以是公共网络(如,互联网)、私有网络(如,内联网)或其组合,并且可利用现在可用或稍后开发的各种联网协议,其包括但不限于基于TCP/IP的联网协议。用于大地区(如,美国或欧洲)的导航数据库文件可以是非常大的(如,30千兆字节)。为了使导航数据库是可用的(这意味着导航数据库中的任何位置处的信息能够被随机且快速访问),导航数据库不能被整体压缩。因此,导航数据库组织在块或页面中。利用压缩算法单独压缩块。示例压缩算法包括zlib、gzip或deflate。如果访客发出查询,则查询被变换成读取操作的序列。每个读取操作从导航数据库文件读取固定长度的二进制信息。固定长度可对应于页面或块。固定长度可以是任何大小(如,1千字节或32千字节)。读取操作可从单独的SQL查询得到。示例SQL查询是“从routingtiletable(规定路线图块表)选择ndsdata,其中,id=12345”。SQL查询可以被变换到一系列页面调用:(1)读取页面6577,(2)读取页面6124,和(3)读取页面243。查询到的ndsdata从相应页面被读取并返回到发出查询的访客。术语“计算机可读介质”包括单个介质或多个介质,如,集中式或分布式数据库、和/或相关联的缓存器以及存储一个或更多组指令的服务器。术语“计算机可读介质”还应该包括能够存储、编码或承载一组由处理器执行的指令的任何介质或使计算机系统执行上述方法或操作中的任意一个或更多个的任何介质。在具体的非限制性示例性实施例中,计算机可读介质可包括固态存储器,如,存储器卡或容纳一个或更多个非易失性只读存储器的其他程序包。进一步地,计算机可读介质可以是随机存取存储器或其他易失性可重写存储器。此外,计算机可读介质可包括磁光介质或光学介质,如,包括捕获例如通过传输介质来传送的信号的载波信号的磁盘或磁带或其他存储装置。可将对电子邮件的数字文件附件或其他独立的信息档案或一组档案认为是为有形存储介质的分布介质。因此,本公开被认为包括其中可存储数据或指令的计算机可读介质或分布介质及其他等效物和后记介质中的任何一个或更多个。这些示例可以通称为非临时性计算机可读介质。在替代的实施例中,专用硬件实施方式(如,专用集成电路、可编程逻辑阵列和其他硬件装置)可被构建为实施上述方法中的一个或更多个。可包括各种实施例的设备和系统的应用可广泛地包括各种电子和计算机系统。上述一个或更多个实施例可使用具有相关控制和数据信号的两个或更多个特定互连硬件模块或装置实施功能,该数据信号可在模块之间或通过模块通信或作为专用集成电路的一部分。因此,本系统包含软件、固件和硬件实施方式。根据本公开的各种实施例,上述方法可由通过计算机系统执行的软件程序实施。进一步地,在示例性非限制性实施例中,实施方式可包括分布式处理、组件/对象分布式处理和并行处理。替代地,可构建虚拟计算机系统处理以实施上述方法或功能中的一个或更多个。虽然本说明书描述了可以参考具体标准和协议在具体实施例中实施的组件和功能,但是本发明不限于这种标准和协议。例如,互联网以及其他分组交换网络传输的标准(如,TCP/IP、UDP/IP、HTML、HTTP、HTTPS)表示现有技术状态的示例。这种标准被具有基本相同功能的较快或更有效的等效物周期性取代。因此,具有如本文公开的相同或类似功能的替代标准和协议被认为是其等效物。计算机程序(还被称为程序、软件、软件应用程序、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)来编写,且其可以任何形式被部署,包括作为独立程序或作为模块、组件、子程序或适于用在计算环境中的其他单元。计算机程序不必对应于文件系统中的文件。程序可被存储在保存其他程序或数据(如,存储在标记语言文件中的一个或更多个脚本)的文件的一部分中、存储在专用于考虑中的程序的单个文件中、或存储在多个协调文件(如,存储一个或多个模块、子程序或代码的一部分的文件)中。计算机程序可被部署以在一个计算机上或在多个计算机上执行,这些计算机位于一个站点处或分布在多个站点并由通信网络互连。说明书中描述的过程和逻辑流程可由执行一个或更多个计算机程序的一个或更多个可编程处理器执行以通过操作输入数据和生成输出来执行功能。所述过程和逻辑流程还可由专用逻辑电路系统(如,FPGA(场可编程门阵列)或ASIC(专用集成电路))执行,并且装置还可实施为专用逻辑电路系统(如,FPGA(场可编程门阵列)或ASIC(专用集成电路))。如本申请中使用的,术语“电路系统”或“电路”指以下各项中的所有项:(a)纯硬件电路实施方式(如,在纯模拟和/或数字电路系统的实施方式)和(b)电路和软件(和/或固件)的组合,如,(如果适用的话):(i)(一个或更多个)处理器的组合或(ii)(一个或更多个)处理器/软件的一部分(包括(一个或更多个)数字信号处理器)、软件和(一个或更多个)存储器,其一起工作以使装置(如移动电话或服务器)执行各种功能;以及(c)电路,如,(一个或更多个)微处理器或(一个或更多个)微处理器的一部分,其需要软件或固件以进行操作,即使所述软件或固件不是物理存在的。“电路系统”的定义应用于包括任何权利要求的本申请中本术语的所有用法。如进一步的示例,如在本申请中使用的,术语“电路系统”还可涵盖仅处理器(或多个处理器)或处理器的一部分以及处理器(或多个处理器)的随附软件和/或固件的实施方式。例如,并且如果适用于具体权利要求元素,术语“电路系统”还可涵盖用于移动电话的基带集成电路或应用处理器集成电路或在服务器、蜂窝网络装置或其他网络装置中的类似集成电路。通过示例方式,适用于执行计算机程序的处理器包括通用微处理器和专用微处理器二者以及任何类型的数字计算机中的任何一个或多个处理器。通常,处理器从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或更多个存储器装置。通常,计算机还包括应用存储数据的一个或更多个大容量存储器(如,磁盘、磁光盘或光盘),或可操作地耦接为从一个或更多个大容量存储器(如,磁盘、磁光盘或光盘)接收数据或将数据传递到一个或更多个大容量存储器(如,磁盘、磁光盘或光盘)或二者。然而,计算机不需要具有这种装置。此外,计算机可嵌入在另一装置(如,移动电话、个人数码助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器等(仅列出了几例))中。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,例如,包括半导体存储器装置(如,EPROM,EEPROM)和闪存装置;磁盘(如,内部硬盘或可移动磁盘);磁光盘;以及CDROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路系统补充或合并到专用逻辑电路系统中。为了提供与用户的交互,本说明书描述的主题的实施例可实施在具有以下组件的装置上:用于将信息显示给用户的显示器(如,CRT(阴极射线管)或LCD(液晶显示器)监控器)和用户向计算机提供输入所利用的键盘和指向装置,如,鼠标或跟踪球。其他类型的装置也可用来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感测反馈,如,虚拟反馈、听觉反馈或触觉反馈;以及来自用户的输入可以任何形式被接收,所述形式包括听觉、讲话或触觉输入。本说明书描述的主题的实施例可实施在包括后端组件(如,作为数据服务器)的计算系统或包括中间件组件(如,应用服务器)的计算系统或包括前端组件(如,具有用户可通过其与本说明书描述的主题的实施方式交互的图形用户界面或网页浏览器的客户端计算机)的计算系统中或一个或多个此类后端、中间件或前端组件的任何组合中。系统的组件可通过任何形式的数字数据通信(如,通信网络)互连或可以是数字数据通信(如,通信网络)的介质。通信网络的示例包括局域网("LAN")和广域网("WAN"),如,互联网。计算系统可包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系凭借运行在相应计算机上并具有相对于彼此的客户端服务器关系的计算机程序而形成。本文描述的实施例的图示意在提供对各种实施例结构的常规理解。图示不意在用作对利用本文描述的结构或方法的装置和系统的所有元素和特征的完整描述。在查阅本公开时,许多其他实施例对本领域技术人员可以是显而易见的。其他实施例可被利用并可以根据本公开得到,使得在不偏离本公开范围的情况下,可进行结构和逻辑替换和改变。此外,图示仅是代表性的并且可不按比例描绘。图示内的某些比例可被放大,而其他比例可被最小化。因此,本公开和说明书附图被认为是说明性而非限制。虽然本说明书包含许多细节,但他们应当被认为是对发明范围的限制或者可被要求保护,而不是作为专用于本发明的特定实施例的特征的描述。在不同的实施例的情况下本说明书中描述的某些特征还可以在单个实施例中组合实施。相反,在单个实施例的情况下描述的各种特征还可以在多个实施例中单独实施或以任何适当子组合实施。此外,虽然特征可在上面被描述为用在某些组合中并且甚至因此最初要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可从该组合去除,并且所要求保护的组合可涉及子组合或子组合的变体。类似地,虽然操作在附图中描绘并在本文以特定次序被描述,但是这不应当被理解为为了实现期望结果,需要这种操作以所示的特定次序或以连续次序被执行,或者所有所示操作都被执行。在某些情况下,多任务和并行处理可以是有利的。此外,上文描述的实施例中的各种系统组件的分离不应被理解为需要在所有实施例中的这种操作,并且其应当被理解为所描述的程序组件和系统可通常一起集成在单个软件产品中或被封装到多个软件产品中。仅为了方便而不旨在主动将本申请的范围限制到任何具体发明或构思,本公开的一个或多个实施例可在本文被单独和/或共同成为术语“发明”。此外,虽然已经在本文示出了和描述了具体实施例,但是应当理解,任何被设计成实现相同或类似目的的随后布置可代替所示的具体实施例。本公开旨在覆盖各种实施例的任何和各种随后的改编或变体。在查阅本公开时,上述实施例和本文未具体描述的其他实施例的组合对本领域技术人员将是显而易见的。提供本公开的说明书摘要以符合37C.F.R.§1.72(b),且以理解为将不用来解释或限制权利要求的范围或含义进行主张。此外,在上述具体实施方式中,各种特征可组合在一起或在单个实施例中描述以使本公开合理化。本公开不被解释为反映所要保护的实施例需要比在每个权利要求中明确限定的更多的特征的发明。然而,如随附权利要求所反映的,发明主题可旨在小于任何所公开的实施例的所有特征。因此,随附权利要求并入具体实施方式,其中,每个权利要求立足于其自身,如单独要求保护的主题所限定的。旨在的是,前述具体实施方式被认为是说明性而非限制并且应当理解随附权利要求(包括等效物)旨在限定本发明的范围。除非另有说明,否则随附权利要求不应当被解读为限于所描述的次序和特征。因此,在随附权利要求和其等效物的范围和精神内的所有实施例作为本发明而要求保护。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1