管理位置信息的系统和方法

文档序号:6701218阅读:247来源:国知局

专利名称::管理位置信息的系统和方法
技术领域
:本发明一般涉及信息管理系统,尤其涉及管理位置信息的方法和系统。
背景技术
:诸如移动电话、个人数字助理和全球定位系统(GPS)之类的移动、无线电子设备已经变得非常流行,它们的使用已经变得非常普通了。一个人使用两台或更多台这些设备也习以为常。这些设备是有时称为“遍布式计算(pervasivecomputing)”设备的一组设备的一个分组。使用术语“遍布式计算”是因为,在过去基本上不涉足计算机技术的一系列设备中现在也可以找到含有微管理器的系统。这些遍布式计算设备包括诸如蜂窝式电话和汽车部件之类的移动设备。遍布式计算设备往往包括微管理器和与之相关的易失性和非易失性存储器、输入装置、输出装置和提供与其它计算设备的链接的、诸如网络接口或调制解调器之类的接口。这些遍布式计算设备是被设计成赋予单个用户或者在联网遍布式计算设备的情况下的一组用户以独立计算能力的信息管理系统。遍布式计算设备还可以包括与微管理器耦合和完成特定功能的一个或多个输入/输出设备(例如,调制解调器、声音和图像设备或专门通信设备)。通常,利用诸如局域网(LAN)、广域网(WAN)或因特网之类的网络,将遍布式计算设备与计算系统和其它遍布式计算设备链接。基于卫星或基于网络的定位技术使人们可以确定移动遍布式计算设备的地理位置(例如,为移动电话的用户提供的基于位置的服务就是使用这样的定位技术)。一个问题是,来自一个信源的位置信息与来自另一个信源的信息可能不一致。例如,一对夫妻可能共享内嵌在他们的汽车中的跟踪设备。另外,丈夫可能拥有一台位置感知式移动电话。妻子开车把丈夫送到他的办公室之后,可能继续把车开到她自己的办公室。于是,来自移动电话的信息指示丈夫在他自己的办公室,而来自汽车中的跟踪设备的信息指示丈夫在他妻子的办公室,这显然不一致。这样的不一致性可能会造成严重的实际问题。继续上面的例子,丈夫的雇主可能把来自雇员的移动电子设备的信息用于确定雇员的位置。这种系统将帮助雇主作出有关派遣雇员去打销售电话或服务电话的正确决定。但是,当来自一个信源的信息指示丈夫在他自己的办公室,而来自另一个信源的信息指示丈夫在他妻子的办公室时,这个系统就无能为力了。
发明内容因此,本发明提供了管理位置信息的方法,所述方法包括从数个位置源中获取关于用户的位置数据;创建关于所述用户的所述位置数据的集合;按照预期效用排序所述集合中的项目;和不断更新所述位置数据。最好提供获取、聚集和评估来自多个信源的位置信息的方法和系统。并且最好提供不仅能够定位移动设备,而且还包括有关人员、他们的行程和他们与各种设备之间的联系的信息的方法和系统。如果得到适当管理,位置信息可以非常有用。例如,如上所述,派遣雇员去打销售电话或服务电话。本发明最好让用户可以收集和评估来自多个信源的信息,从而,使所有可用位置信息都得到适当利用。如果没有这样的方法或系统,定位技术就不能适当地管理单个用户的多个位置源,或多个用户共享的单个位置源。如果没有这样的方法或系统,用户就会对如上所述来自一个信源的位置信息与来自另一个信源的信息不一致的问题束手无策。本发明最好通过首先收集然后评估来自多个信源的信息,利用所有可用位置信息。应该认识到,来自一些信源的信息通常比来自其它信源的信息更可靠。例如,来自未被共享的设备的信息可能比来自被多个的用户共享的设备的信息更可靠。来自最近位置发生改变的设备的信息可能比最近位置没有发生改变的设备的信息更可靠。不仅仅定位移动设备,本发明最好还能定位人员,即,可能拥有多个移动设备的用户或许指示人的预期位置的计算机化日历。位置数据的电子信源(下文称之为“位置源”)最好包括诸如移动电话、个人数字助理、全球定位系统(GPS)之类的移动电子设备和其它遍布式计算设备。位置源还可以包括基于计算机的模型、依据日期和时间给出人的预期位置的日程表或日历。可以把这些模型、日程表或日期存储在例如个人数字助理、台式计算机或服务器上。在从位置源获得位置信息之后,计算机在把信息提供给用户之前,最好对数据进行排序或过滤操作。本发明还提供了管理位置信息的信息管理系统,所述信息管理系统包括从数个位置源中获取关于用户的位置数据的装置;创建关于所述用户的所述位置数据的集合的装置;按照预期效用排序所述集合中的项目的装置;和不断更新所述位置数据的装置。最好滤出集合中的误导数据(misleadingdata)。最好统一数据以确定用户最有可能在的位置。根据优选实施例,收集关于多个用户的位置数据的集合;这由用户来组织;和按照预期效用排序关于多个用户的所述集合中的项目。可以过滤关于集合的数据,以消除误导数据。可以统一集合中的数据以确定用户最有可能在的位置。在一个实施例中,把关于用户的每段位置数据转换成单一格式。本发明的优选实施例提供了管理位置信息的方法,所述方法包括按照预期效用排序关于用户的位置数据的集合中的项目;和不断更新所述位置数据。在一个优选实施例中,按照预期效用,在关于多个用户的位置数据的集合中排序项目;可以滤出误导数据。并且可以统一集合中的数据以确定用户最有可能在的位置。根据优选实施例,提供了管理位置信息的信息管理系统,所述信息管理系统包括按照预期效用排序关于用户的位置数据的集合中的项目的装置;和不断更新所述位置数据的装置。根据另一个方面,提供了包括程序代码的计算机程序,当在计算机上运行所述程序时,所述程序代码适用于执行如下步骤从数个位置源中获取关于用户的位置数据;创建关于所述用户的所述位置数据的集合;按照预期效用排序所述集合中的项目;和不断更新所述位置数据。附图简述现在只通过举例和参照如下图形描述具体实施例方式图1是按照本发明的实施例,利用信息管理系统在计算机网络上传送位置数据的示范性方块图;图2是显示可以包括在图1所示的示范性信息管理系统中的所选部件的高层方块图;图3是显示按照本发明的实施例,获取、聚集和评估位置信息的系统的例子的高层方块图;图4是显示按照本发明的实施例,获取和聚集位置信息的系统的例子的高层方块图;图5是更详细显示按照本发明的实施例,包括在图4所示的示范性系统中的所选部件的高层方块图;图6是显示可在示范性实施例中实现的、获取和聚集位置信息的一种进程的流程图;图7是显示可在示范性实施例中实现的、获取和聚集位置信息的、与如图6所示的那种类型有关的另一种进程的流程图;图8是可利用浏览器观看的、显示来自具有GPS能力的双向寻呼机的位置数据的、基于本发明实施例的示范性位置XML(可扩展标记语言)文件;图9是显示按照本发明的实施例,选择用于评估位置信息的逻辑进程的一种方式的流程图;图10是显示基于本发明实施例的、用于评估位置信息的逻辑进程的例子的流程图;和图11是显示基于本发明实施例的、与获取、聚集和评估位置信息的系统交互的用户应用程序的例子的流程图。具体实施例方式概述这里所述的是管理位置信息的系统和方法。本发明可应用在涉及来自多个信源的位置信息的任何情况中。例如,如上所述,把收集的位置信息用于派遣雇员去打销售电话或服务电话的系统。另一个例子是提醒第一个用户特别感兴趣的第二个用户已经到达约会地点的系统。另一个例子是通过万维网与用户的手持式计算机、他基于计算机的日期、它的GPS单元和地图服务交互的系统,把适当的行驶方向提供给他的下一个约会地点。另一个例子是通过万维网与用户的蜂窝式电话和她的基于计算机的日历或计划表交互的系统,当移动用户接近需要进行一些业务往来的地点时提醒她。在这些例子中,通过文本或图形,可以使输出的信息是听得见的或看得见的。在这些例子中,请注意,最好把对于用户实际位置来说关键性的有用信息提供给用户,用户无需进行询问。最好,使用由用户组织的、来自多个信源的所有可用位置信息。下面定义本文使用的术语。“计算机可用媒体”指的是用于与计算机通信的任何信号或传输设施,以及任何类型的计算机存储器,如软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、只读光盘存储器CD-ROM)、闪速只读存储器(flashROM)、非易失性ROM和非易失性存储器。“位置数据”或“位置信息”指的是纬度或经度,或位置的任何其它描述。“位置源”指的是位置数据的任何电子信源,包括诸如移动电话、个人数字助理、寻呼机、全球定位系统(GPS)之类的移动电子设备、与这些移动电子设备相关的服务器和基于计算机的模型、依据日期和时间给出预期位置的日程表或日历。“用户”指的是利用通过本发明的实施例的方法或系统跟踪的位置源的任何人和跟踪其它用户的位置的任何人。系统和方法本发明对在上面运行程序的计算机的类型不加限制。现在参照图1,示范性方块图显示了按照本发明的实施例,利用信息管理系统在计算机网络上传送位置数据。在图1的左侧,从如下位置源获取位置信息设备101、服务器111、设备102、设备103和设备104。在计算机网络94上把位置信息传送给信息管理系统10。在信息管理系统10内,位置聚集器20获取关于一个用户,或更多用户的位置数据,并创建由用户组织的、关于一个用户,或更多用户的所述位置数据的集合。在通过用户应用程序40把信息提供给用户之前,逻辑部件(位置逻辑器30)对数据进行评估(排序、过滤或统一操作)。现在参照图2,高层(high-level)方块图显示了按照本发明的实施例,可以包括在图1所示的示范性信息管理系统10中的所选部件。信息管理系统10主要通过在任何地方的、可以是软件形式的计算机可读指令,或者通过存储或访问这样的软件的任何一种装置来控制。可以在也称为中央处理单元(CPU)50的处理器中执行这样的软件,使信息管理系统10工作起来。CPU50通常是可从Intel公司或AdvancedMicroDevices公司购买到的那种类型的微处理器。与系统总线5耦合的存储器件包括随机存取存储器(RAM)56、只读存储器(ROM)58和非易失性存储器60。这样的存储器包括使信息得到存储和检索的电路。ROM包含不能修改的存储数据。存储在RAM中的数据可以通过CPU50或其它硬件设备来改变。非易失性存储器是当电源去掉时,也不损失数据的存储器。非易失性存储器包括ROM、EPROM(可擦除可编程只读存储器)、闪速存储器或内置电池的CMOS(互补金属氧化物半导体)ROM。如图2所示,这样的内置电池CMOSROM可以用于存储配置信息。扩充卡或扩充板是把功能或资源附加到计算机上的电路板。通常,扩充卡附加存储器、盘驱动控制器66、视频支持、并行和串行端口和内部调制解调器。对于膝上型计算机、掌上型计算机、以及其它便携式计算机,扩充卡通常采取PC卡的形式,它们是被设计成插入计算机的侧面或背面的插槽中的信用卡那么大小的器件。因此,空插槽68可以用于接收各种类型的扩充卡或PC卡。盘控制器66和磁盘控制器70两者都包括定向和控制对硬盘驱动器72和软件或磁盘74中的读写的专用集成电路和相关电路。这样的盘控制器管理诸如定位读/写头之类的工作。单个盘控制器可能能够控制多个盘驱动器。CD-ROM控制器76可以包括在信息管理系统10中,以便从CD-ROM78(只读光盘存储器)中读取数据。这样的CD-ROM把激光装置,而不是把磁装置用于读取数据。通过串行控制器88和网络适配器90可能有助于信息管理系统10和其它信息处理系统之间的通信,串行控制器88和网络适配器90两者都与系统总线5耦合。串行控制器88用于在单条线上,一次一位地在计算机之间,或在计算机与外围设备之间传输信息。如图所示,这样的串行接口可以用于与调制解调器92通信。调制解调器是使计算机能够在标准电话线上传输信息的通信设备。调制解调器把数字计算机信号转换成适合在电话线上通信的模拟信号。调制解调器92或网络适配器90可以提供与诸如服务器、电子布告栏、因特网或万维网之类的软件和信息的信源的连接。网络适配器90是可以用于将信息管理系统10与网络94相连接的通信设备。网络94可以把通过电子方法通信和传输软件和信息的手段提供给计算机用户。另外,网络94可以提供使几台计算机分担工作量和共同努力完成任务的分布式处理。为了与键盘92和点击设备84交互,在信息管理系统10中配备了键盘鼠标控制器80,点击设备84可以利用跟踪球、操纵杆、触摸式传感板或触摸式传感屏,或如图所示用鼠标来实现。点击设备84可以用于移动在屏幕96上看得见的指针或光标。输入设备的另一个例子是用于音频输入的麦克风。本领域的普通技术人员应该注意和认识到,显示器96、键盘82和点击设备84都可以利用几种已知流行部件的任何一种来实现。受显示器控制器98控制的显示器96用于显示信息管理系统10生成的视觉输出。显示器96包括显示屏,显示屏可以利用阴极射线管(CRT)、液晶显示器(LCD)和电极发光板等来实现。显示器控制器98包括生成发送到显示器96的视频信号所需的电子部件。打印机100可以通过并行控制器99与信息管理系统10耦合。并行控制器99用于在连接在系统总线5和诸如打印机100之类的另一个并行通信设备之间的线路上同时发送数个数据和控制位。输出设备的另一个例子可以是用于音频输出的扬声器。CPU50提取、解码和执行指令,并且通过计算机的主数据传输路径即系统总线5,与其它资源传输信息。这样的总线连接信息管理系统10中的各个部件和定义用于数据交换的媒体。系统总线5将存储单元65、58和60、CPU50和如图2所示的其它设备连接在一起,允许在它们之间交换数据。现在参照图3,该图显示的是按照本发明的实施例,获取、聚集和评估位置信息的系统的例子。最好使用JavaTM编程语言(可从SumMicrosystems公司购买到),但是,也可以使用其它语言。在图3的左侧,在本例中,从包括位置源101、位置源102和位置源103的一组位置源300中获取位置信息。来自位置源300的输出可以是超文本标记语言(HTML)、可扩展标记语言(XML)或一些其它语言。在优选实施例中,在本例中,通过包括适配器301和适配器302的一组适配器小服务程序310获取位置信息。这些适配器把来自各种位置源的位置数据转换成单一格式。例如,单一格式可以是名为“LocationXML”或“LocXML”的、在XML下实现的一种。在本例中,也可以直接从位置源103获取位置数据。后面会结合图4对适配器作进一步描述。位置聚集器20获取关于一个用户,或多个用户的位置数据,并且创建由用户组织的、关于一个用户,或多个用户的所述位置数据的集合。把被显示成聚集LocXML信息321的、位置数据的集合发送到与逻辑描述模块330、逻辑豆工厂(logicbeanfactory)340和逻辑实施模块350通信的逻辑器外层模块320。下面更详细地描述这些部件。这些部件的功能是通过向用户应用程序40公布新位置表322,在把信息提供给用户之前对数据进行评估(排序、过滤或统一操作)。在另一个实施例中,一些排序或过滤由位置聚集器20来完成。关于排序、过滤或统一操作,可以由用户选择和按如下实现不同类型的逻辑功能。用于排序、过滤或统一位置数据的任何逻辑功能或进程被称为“逻辑器”。“调用”或“实现”逻辑器是把逻辑器应用于排序、过滤或统一某些位置数据。作为API调用GetLogicianTypes()331的结果,逻辑描述模块330返回逻辑器类型。这表明把多种选择呈现在用户面前。作为API调用GetLogi-cian(Logician)341的结果,逻辑豆工厂340返回logician(逻辑器)342。这表明用户选择了一种逻辑功能来实现。可以把用户对逻辑功能的偏好存储在用户偏好数据库390中,也可以从用户偏好数据库390中检索用户对逻辑功能的偏好。作为API调用logician.invoke(LocationList)351的结果,逻辑实施模块350返回newLocationList352。这表明所选类型的逻辑功能是为排序、过滤或统一位置数据而实施的(逻辑实施模块350与如图1中的简化图所示的位置逻辑器30相对应)。通过向用户应用程序40公布新位置表322,系统把经过排序、过滤或统一的位置数据提供给用户。系统可以根据预期效用,排序位置信息的集合中的项目。可以把这样的位置数据提供给正在跟踪另一个用户的位置的用户,也就是说给予来自指示较近移动的位置源的数据以较高排位。这是按照哪个位置源较近移动过,从而生成最近位置校正来排序数据的例子。在优选实施例中,每个位置XML条目都含有时间标记、并且通过时间标记分类位置数据的集合。在另一个排序例子中,可以把这样的位置数据提供给正在跟踪另一个用户的位置的用户,也就是说给予来自预期比其它位置源具有更高精度的位置源的数据以较高的排位。另一种选择是给予来自能够更精确测量的位置源的数据以较高排位。举一个过滤数据的例子,所报告的位置的偶尔小改变可能由位置测量的随机变化引起的,而不是由实际移动引起的。这是一种通过设置把新位置数据加入当前位置数据的集合中的限制条件,就可以过滤掉的一种噪声。因此,系统可以过滤数据以消除误导数据。在优选实施例中,可以统一在位置数据的集合中找到的位置数据以确定用户最有可能在的位置。例如,作为系统根据来自多个位置源的数据确定一致位置的结果,可以把正在跟踪的另一个用户最有可能在的位置提供给用户。由来自多个位置源的数据所指示的一致位置将提供比来自单独处理的任何一个位置源的数据更大的确定性。通过用户关于实际位置的反馈和传统人工智能算法,系统最好通过学习改进其性能。系统最好知道哪个位置源或位置源的组合是最有用的。继续讨论上面给出的例子,雇主可以利用来自雇员移动电子设备的位置信息来确定雇员的位置。这个系统将帮助雇主作出有关派遣雇员去打销售电话或服务电话的正确决定。雇主可以按如下使用这样的系统。再次参照图3,逻辑描述模块330返回逻辑类型(logicTypes)332。这表明把数种选择呈现在诸如雇主之类的用户面前。这些选择可以以菜单的形式给出,包括“most-recently-moved(最近移动过)”、“mostprecise(最精确)”和其它选项。逻辑豆工厂340返回logician342。这表明用户选择了一种逻辑功能来实现。雇主可以选择“most-recently-moved”。对于这种逻辑器,可以以这种方式陈述规则“按照哪个位置源较近移动过,从而生成最近位置校正,排序数据”。这是按照预期效用排序位置信息的集合中的项目的例子。继续讨论上面给出的例子,丈夫和妻子可以共享内嵌在他们汽车中的跟踪设备。另外,丈夫可以拥有具有GPS能力的双向寻呼机。在中午,或许共享汽车已经好几个小时没有开动了,但是,随身带着双向寻呼机的丈夫却经常移动。丈夫可能在雇主的工厂附近移动,然后,驾驶雇主拥有的车辆去生拜访客户。雇主可以跟踪丈夫。逻辑实施模块350返回newLocationList352。这表明正在实现“most-recentlymoved”逻辑功能来排序位置数据。通过向用户应用程序40公布新位置表(newLocationList)322,系统把经过排序的位置数据提供给雇主。来自丈夫的双向寻呼机的位置数据将在表端上,排列在来自几个小时没有移动过的共享汽车的位置数据的上面。该表可以像下面图8中的例子那样,表现为一系列的条目。用户应用程序40通过显示例如地图可以帮助雇主解释位置数据。用户应用程序40可以显示位置数据的简化形式,以迎合用户的偏好。下表是关于用户如前例中的丈夫的位置数据的集合的简化例子丈夫的位置数据排位位置源位置1.寻呼机纬度=N374820经度=W12227382.汽车纬度=N374822经度=W1222740这样的集合可以包括来自诸如日历或蜂窝式电话之类的附加位置源的条目。图4是显示按照本发明的实施例,获取和聚集位置信息的系统的例子的高层方块图。在本例中,位置聚集器20向位置源(GPS服务器411)、称为寻呼机402的双向寻呼机、称为无线集线器413的无线LAN集线器和规范化设备404轮询位置数据。位置聚集器20获取关于一个用户或多个用户的位置数据,并创建由用户组织的、关于一个用户或多个用户的所述位置数据的集合。来自位置源的输出可以是超文本标记语言(HTML)、可扩展标记语言(XML)或一些其它语言。在优选实施例中,通过如下适配器获取位置信息GPS适配器421、寻呼机适配器422和无线集线器适配器423。这些适配器把来自各种位置源的位置数据转换成单一格式。这些适配器对于以除了XML下的单一所需格式之外的其它格式给出位置数据的位置源(例如,“传统”位置源)来说是有用的。在优选实施例中,单一格式可以是名为“LocationXML”或“LocXML”的、在XML下实现的一种,但是,也可以使用另一种格式。对于来自移动电子设备和与这些设备相关的服务器的位置数据,存在几种现有格式。有朝一日,可能只有一种单一的、普遍接受的标准格式,从而可以直接而不是通过适配器获得数据。因此,图4显示,可以通过规范化设备数据路径444,从规范化设备404(即,其输出遵从所需格式的设备)直接获得位置信息。在优选实施例中,GPS适配器421从GPS服务器411中读取GPS数据,给出包含GPS设备401的汽车的位置。寻呼机适配器422从双向寻呼机(寻呼机402)接收电子邮件;电子邮件内的消息是GPS数据,或寻呼机402当前与之相联系的小区的名称。小区的名称与查用表一起用于把那个名称映射到实际位置。无线集线器适配器423接收关于与无线集线器413一起在无线LAN上的膝上型计算机403的位置数据。利用简单网络管理协议(SNMP,从联网硬件收集信息的协议),无线集线器适配器423从膝上型计算机403的无线因特网连接的位置中导出位置信息。可以实现许多其它相似的适配器。进一步的例子将是读取基于计算机日历,依据日期和时间,给出人的预期位置的适配器。下面结合图5进一步描述适配器。图5是更详细显示按照本发明的实施例,包括在图4所示的示范性系统中的所选部件的方块图。寻呼机402是双向寻呼机。在优选实施例中,使用可从ResearchInMotion公司购买到的双向寻呼机。也可以双向使用可从例如Motorola公司购买到的那种类型的其它类似寻呼机。寻呼机402运行客户机应用程序,智能选择发送寻呼机当前与之通信的无线电塔的标识号,还是发送由所附GPS单元生成的纬度和经度坐标。用在选择进程中的准则包括GPS信号强度、无线电塔信号强度和移动频率。通信协议如下。寻呼机402的客户机应用程序以可变频率把消息发送到服务器消息队列502(POP服务器)。该消息包含按照如下格式的位置信息DEVICEID、TOWERID、GPRMC、POS_UTC、POS_STAT、LAT、LAT_REF、LON、LON_REF、SPD、HDG、DATE。当没有GPS数据时,GPS字段具有0值。在优选实施例中,消息发送方法是通过简单邮件传输协议(SMTP)发送的电子邮件。寻呼机适配器422是多线程小服务程序。小服务程序是在服务器上运行的Java应用程序。寻呼机适配器422含有在预置间隔上,从消息队列503中检查从寻呼机402接收的消息的背景线程(backgroundthread)。消息发送系统用于回避可能防火墙和在协作环境下的安全问题。这种背景线程把来自寻呼机402的电子邮件的相关信息分解成内部位置散列表(hashtable)。寻呼机适配器422中管理超文本标记语言(HTTP)请求的另一个线程由位置聚集器20调用。寻呼机适配器422根据这样的请求,从它的内部位置散列表中取出信息,并且以LoctionXML的形式把它输出到位置聚集器20。文档类型定义(DTD)是标记语言的一种定义。下列是有关像当前实现的那样,用在本发明中的LoctionXML的DTD<prelisting-type="program-listing"><!--DTDforlocationinformationfrommobiledevices--><!ELEMENTLocationInformation(MobileDevice+)><!ELEMENTMobileDevice(Geographic+,TowerID?)><!ATTLISTMobileDeviceTrackIDCDATA#REQUIRED><!ATTLISTMobileDeviceRequestTimeCDATA#REQUIRED><!ATTLISTMobileDeviceErrorCodeCDATA#REQUIRED><!ELEMENTGeographic(GeodeticDatum,HeightDatum,Region)><!ATTLISTGeographicVelocityCDATA#IMPLIED>&lt;!--SIPO&lt;DPn="11"&gt;--&gt;&lt;dpn="d11"/&gt;<!ATTLISTGeographicPositionTimeCDATA#REQUIRED><!ELEMENTGeodeticDatum(WGS-84|BESSEL-1841)><!ELEMENTWGS-84(LatLong|UTM><!ELEMENTLatLongEMPTY><!ATTLISTLatLongPositionFormat(IDMS0|IDMS3)#REQUIRED><!ATTLISTLatLongLatitudeCDATA#REQUIRED><!ATTLISTLatLongLongitudeCDATA#REQUIRED><!ELEMENTUTMEMPTY><!ATTLISTUTMPositionFormat(2|4)#REQUIRED><!ATTLISTUTMEastingCDATA#REQUIRED><!ATTLISTUTMNorthingCDATA#REQUIRED><!ATTLISTUTMZoneCDATA#REQUIRED><!ATTLISTUTMZoneDesignatorCDATA#REQUIRED><!ELEMENTBESSEL-1841(RTS-90)><!ELEMENTRTS-90EMPTY><!ATTLISTRTS-90PositionFormat(IDMS0|IDMS3)#REQUIRED><!ATTLISTRTS-90LatitudeCDATA#REQUIRED><!ATTLISTRTS-90LongitudeCDATA#REQUIRED><!ELEMENTHeightDatumEMPTY><!ATTLISTHeightDatumHeightFormat(meters|yards)#REQUIRED><!ATTLISTHeightDatumHeightValueCDATA#REQUIRED><!ELEMENTRegionEMPTY><!ATTLISTRegionRadiusFormat(meters|yards)#REQUIRED>&lt;!--SIPO&lt;DPn="12"&gt;--&gt;&lt;dpn="d12"/&gt;<!ATTLISTRegionInnerRadiusCDATA″0″><!ATTLISTRegionOuterRadiusCDATA″0″><!ATTLISTRegionStartAngleCDATA″0″><!ATTLISTRegionStopAngleCDATA″360″><!ATTLISTRegionLevelOfConfidenceCDATA″100″><!ELEMENTTowerIDEMPTY><!ATTLISTTowerIDPositionTimeCDATA#REQUIRED><!ATTLISTTowerIDNameCDATA#REQUIRED><!ATTLISTTowerIDTypeCDATA#REQUIRED></pre>位置聚集器20按预置间隔,通过HTTP询问寻呼机适配器422和其它适配器和位置源。位置聚集器20检索寻呼机适配器422的当前一系列跟踪设备和在LocationXML下的位置。膝上型计算机403运行服务程序,周期性地向无线集线器适配器423作出HTTP请求,以授权无线集线器适配器423向位置聚集器20报告膝上型计算机403的位置。无线集线器413是带有内置网络服务器的无线LAN集线器(如可从CiscoSystems公司、AppleComputer公司、CompaqComputer公司、Intel公司、LucentTechnologies公司或3Com公司购买到的那种),内置网络服务器显示可用于配置集线器和观看有关集线器的信息的网页。无线集线器适配器423(多线程小服务程序(servlet))含有背景线程,背景线程按预置间隔,向像无线集线器413那样的任意个无线LAN集线器作出HTTP请求,以检索包含附加客户机的表格和它们在每个集线器的网络上的因特网协议(IP)地址的HTML网页。然后,把这个信息分解成其密钥是每个无线集线器413客户机的IP地址和其值是每个客户机正在使用的集线器的集线器散列表,此外,在无线集线器适配器423中,存在管理输入HTTP请求的线程。在这个无线集线器适配器423中,存在两种这样的请求。第一种是从膝上型计算机403接收的那种请求。这些请求仅仅允许服务器向位置聚集器20公开膝上型计算机403的位置(通过背景线程获得)。具体地说,在每个HTTP首标中检查原始IP地址。把这个IP地址和接收时间存储在授权散列表中。接收的另一种HTTP请求来自位置聚集器20。每当无线集线器适配器423接收这样的请求时,它就通过授权散列表重复,并且针对(根据预置值)最近已经发送了授权书的每个IP地址,检索来自无线集线器413的散列表的相应集线器信息。然后,适当地把这个信息分解成locationXML。位置聚集器20在预置间隔上,通过HTTP询问集线器适配器423和其它适配器和位置源。位置聚集器20检索集线器适配器423的当前一系列跟踪设备和在LocationXML下的位置。图6是显示可在示范性实施例中实现的、获取和聚集位置信息的一种进程的流程图。在如图1、3、4和5所示的位置聚集器20内,进程从步骤610开始。在步骤620中,产生称为“轮询线程”的任意个轮询进程(作为例子,显示了三个601、602和603)。在步骤630中,每个轮询线程通过HTTP轮询位置数据的位置源。每个轮询线程确定所述位置数据的哪些是新的(判定640)。每个轮询线程把任何新位置数据发送(步骤650)给映射进程。后面会结合图7对称为“映射线程”的映射进程作进一步描述。重复步骤630、640和650,直到轮询线程终止为止。这样,位置数据不断得到更新。图7是显示可在示范性实施例中实现的、获取和聚集位置信息的、与如图6所示的那种类型有关的另一种进程的流程图。连同如图6所示的、像601、602和603那样的轮询线程一起,映射线程701从步骤710开始,并且从像601、602和603那样的轮询线程接收新位置数据。映射线程701把新位置数据映射到用户730。接着,本例包括可选的“超时(timeout)”步骤(判定740),让映射线程等待一段时间(步骤750)。下面将对此加以说明。在等待规定时间之后,在判定740中选择“是”分支,并且映射线程把用户组织的、位置数据的集合发送(步骤760)到逻辑进程,该逻辑进程在通过用户应用程序,把信息提供给用户之前,对数据进行评估(例如,排序或过滤操作)。“超时”步骤(判定740)被设置成保证在一个“循环(round)”内,从如图6所示的、像601、602和603那样的轮询线程接收到多段新位置数据。换句话说,如果包括多段新位置数据,那么,步骤760提供的输出更有价值。为了接收多段新位置数据,映射线程701最好等待到像601、602和603那样的多个轮询线程把任何新位置数据发送(步骤650)给映射线程701。超时的值需要在通过步骤760公布多少段新位置数据和那些公布的时间间隔之间做出折衷。重复上面步骤720、730和760,直到在判定770中选择“是”分支和映射线程终止于步骤780为止。这样,位置数据的集合不断得到更新。位置数据的集合是像图8中的例子那样的条目的集合,该例是可利用浏览器观看的、显示来自具有GPS能力的双向寻呼机的位置数据的示范性Loca-tionXML文档。图8包括移动设备(在本例中,双向寻呼机)的标识号(811)、由附加GPS单元生成的纬度(832)和经度(833)坐标、时间标记(871)和寻呼机当前与之通信的无线电塔的标识号(872)。从如图3、4和5所示的适配器输出的LocationXML由像图8中的例子那样的条目组成。图9是显示按照本发明的实施例,选择用于评估位置信息的逻辑进程的一种方式的流程图。这是选择一个或多个优选逻辑器的预运行时进程。选择可以由最终用户直接完成,也可以由某第三方来完成。这样的选择在上面结合图3,以及获取、聚集和评估位置信息的系统已作了讨论。选择进程从步骤910开始,然后在步骤920中把用户接口(UI)提供给选择用户的用户应用程序,和作为API调用GetLogicianTypes()的结果,提供给他们喜欢使用的逻辑器。在步骤930中把这些偏好存储在用户偏好数据库中,然后进程结束于步骤940。图10是显示基于本发明实施例的、用于评估位置信息的逻辑进程的例子的流程图。这时将用户偏好与可用逻辑器相匹配,并把逻辑器用于评估位置信息的运行时进程。这样的进程在上面结合图3以及获取、聚集和评估位置信息的系统已作了讨论。该进程从步骤1010开始,然后,在步骤1020中,从位置聚集器接收位置信息的集合。在步骤1030中,在用户偏好数据库中查找要用于这个用户的逻辑器,然后,来到步骤1040,从逻辑豆工厂获取逻辑器。步骤1040是API调用GetLogician(logician)的结果。在步骤1050中,根据位置信息的集合调用那个逻辑器。步骤1050是API调用logician.invoke(LocationList)的结果。这对应于像在排序、过滤或统一上面结合图3所讨论的数据的例子中那样实现的所选那种类型的逻辑功能。在步骤1060中,向一个或多个用户应用程序公布结果,因此,系统把经过排序、过滤或统一的位置数据提供给用户。重复上面步骤1020-1060,直到在判定1070中选择“是”分支为止,然后,进程终止于步骤1080。这样,位置数据的评估不断得到更新。图11是显示基于本发明实施例的、与获取、聚集和评估位置信息的系统交互的用户应用程序的例子的流程图。图11是从用户应用程序的角度来说明的。该进程从步骤1110开始,然后,在步骤1120中,为可用用户和逻辑器询问如图3中320所示的逻辑器外层模块。在步骤1130中,选择用户和逻辑器,并且在步骤1140中,该进程等待要公布的位置信息。在步骤1150中接收位置信息,和在步骤1160中,根据用户应用程序的功能,处理位置信息。因此,系统把经过排序、过滤或统一的位置数据供应给用户。重复上面步骤1120-1160,直到在判定1170中选择“是”分支为止,然后,进程终止于步骤1180。这样,就把不断得到更新的位置数据的评估提供给最终用户。本发明的优选实施例之一是一个应用程序,即,在可以驻留在例如计算机的随机存取存储器中的代码模块中的一组指令(程序代码)。在计算机需要之前,这组指令可以存储在另一个计算机存储器中例如在硬盘驱动器中,或在诸如光盘(最终用在CDROM中)或软盘(最终用在软盘驱动器中)之类的可拆卸存储器中或者通过因特网或其它计算机网络下载。因此,优选实施例可以作为含有用在计算机中的计算机可执行指令的计算机可用媒体来实现。另外,尽管所述的各种方法通过软件,在有选择启动或重新配置的通用计算机中方便地得以实现,但是,本领域普通技术人员还应该认识到,这样的方法也可以以硬件的形式,以固件的形式,或在被构造成执行所需方法步骤的更专门设备中得以实施。本专利文件的公开部分包含受版权或商标保护的内容。版权或商标拥有者不反对任何专利公开人一模一样的复制,但是在任何其它方面仍然保留所有版权或商标权。权利要求1.一种管理位置信息的方法,所述方法包括从数个位置源中获取关于用户的位置数据;创建关于所述用户的所述位置数据的集合;按照预期效用排序所述集合中的项目;和不断更新所述位置数据。2.根据权利要求1所述的方法,其中所述获取进一步包括获取关于更多用户的位置数据;所述创建进一步包括创建由用户组织的、关于更多用户的所述位置数据的集合;和所述排序进一步包括按照预期效用排序关于更多用户的所述集合中的项目。3.根据权利要求1或2所述的方法,进一步包括过滤所述集合中的数据,以消除误导数据。4.根据权利要求1或2所述的方法,进一步包括统一所述集合中的数据,以确定所述用户最有可能在的位置。5.根据权利要求1所述的方法,包括把关于用户的每段位置数据转换成单一格式。6.一种管理位置信息的信息管理系统,所述信息管理系统包括从数个位置源中获取关于用户的位置数据的装置;创建关于所述用户的所述位置数据的集合的装置;按照预期效用排序所述集合中的项目的装置;和不断更新所述位置数据的装置。7.根据权利要求6所述的信息管理系统,其中所述获取装置进一步包括获取关于更多用户的位置数据的装置;所述创建装置进一步包括创建由用户组织的、关于更多用户的所述位置数据的集合的装置;和所述排序装置进一步包括按照预期效用排序关于更多用户的所述集合中的项目的装置。8.根据权利要求6或7所述的信息管理系统,进一步包括过滤所述集合中的数据,以消除误导数据的装置。9.根据权利要求6或7所述的信息管理系统,进一步包括统一所述集合中的数据,以确定所述用户最有可能在的位置的装置。10.一种包括程序代码装置的计算机程序,当在计算机上运行所述程序时,所述程序代码适用于执行如权利要求1到5的任何一项所述的方法。全文摘要本发明公开了收集和评估来自多个信源的信息,从而,使所有可用位置信息都得到适当利用的管理位置信息的系统和方法。位置源可以包括诸如移动电话、蜂窝式电话、手持式计算机、个人数字助理、寻呼机、全球定位系统(GPS)之类的移动电子设备和其它遍布式计算设备。基于卫星或基于网络的定位技术使人们可以确定这些无线电子设备和它们的用户的地理位置(例如,为移动电话的用户提供的基于位置的服务就是使用这样的定位技术)。位置源还可以包括基于计算机的模型、依据日期和时间给出人的预期位置的日程表或日历。文档编号G08G1/005GK1514940SQ02807093公开日2004年7月21日申请日期2002年1月25日优先权日2001年1月31日发明者阿南德·巴布,亚伯拉罕·海费茨,亚当·克劳策,罗伊·佩特森,布赖恩·怀特伊格尔,怀特伊格尔,佩特森,克劳策,罕海费茨,阿南德巴布申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1