CN102982438B - 从多个联系人来构建人 - Google Patents
从多个联系人来构建人 Download PDFInfo
- Publication number
- CN102982438B CN102982438B CN201210435136.6A CN201210435136A CN102982438B CN 102982438 B CN102982438 B CN 102982438B CN 201210435136 A CN201210435136 A CN 201210435136A CN 102982438 B CN102982438 B CN 102982438B
- Authority
- CN
- China
- Prior art keywords
- identifier
- contact
- people
- contact person
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/48—Message addressing, e.g. address format or anonymous messages, aliases
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
公开了从多个联系人来构建人。表示人的数据结构被创建。该数据结构包括人对象。该人对象包括一个或多个联系人对象。当确定该人是全局地址列表联系人时,该人的第一联系人信息从全局地址列表存储中获得并被存储在第一联系人对象中。当确定该人是电子邮件联系人时,第二联系人信息从联系人存储中获得并被存储在第一存储器高速缓存中。当确定第二联系人信息包括全局地址标识符时,全局地址标识符被存储在第二联系人对象中。为该人创建标识人的人标识符。该人标识符被存储在第一联系人对象中以及第二联系人对象中。<pb pnum="1" />
Description
技术领域
本申请涉及构建人,尤其涉及从多个联系人来构建人。
背景技术
电子邮件应用通常存储并显示有关用户的个人联系人的信息。电子邮件应用允许用户在输入设备上输入、修改和显示联系人信息。理想地,存储在电子邮件应用中的每个联系人与单个人相对应。然而,针对相同的人,通常多个联系人记录被输入。
除了电子邮件应用之外,联系人信息可从其它源中导出。例如,联系人信息可在电子文档中并从第三方(诸如社交网络应用)找到。当在输入设备上显示来自多个源的联系人信息时,有时会显示重复的联系人信息。
发明内容
本公开的各实施例涉及在电子计算设备上执行的用于创建表示人的数据结构的方法。在该电子计算设备上,接收到条目标识符。该条目标识符标识人。该条目标识符被存储在电子计算设备上的第一存储器高速缓存中的数据结构中。该数据结构包括人对象。该人对象包括一个或多个联系人对象。作出关于条目标识符是否指示该人是全局地址列表联系人的确定。当确定该条目标识符指示该人是全局地址列表联系人时,从全局地址列表存储中获得第一联系人信息并将该第一联系人信息存储在该数据结构中的第一联系人对象中。当确定该条目标识符不指示该人是全局地址列表联系人时,从该条目标识符中作出关于该人是否是电子邮件联系人的确定。电子邮件联系人是针对运行在电子计算设备上的电子邮件应用的联系人存储中的联系人。当确定条目标识符指示该人是电子邮件联系人时,从联系人存储中获得针对该人的第二联系人信息,该第二联系人信息被存储在电子计算设备上的第一存储器高速缓存中的数据结构中,作出关于该第二联系人信息是否包括全局地址标识符的确定,并且当确定该第二联系人信息包括全局地址标识符时,将全局地址标识符存储在数据结构中的第二联系人对象中。全局地址标识符标识全局地址列表存储中的人。创建标识人的人标识符。该人标识符被存储在第一联系人对象中。该人标识符被存储在第二联系人对象中。
提供本概要从而以简要形式引入将在下面具体实施例中进一步描述的概念的选择。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也决不旨在用于限制所要求保护的主题的范围。
附图说明
图1显示了支持人对象的构建的示例系统。
图2显示了示例联系人信息显示。
图3显示了图1的人框架模块的示例组件。
图4显示了示例人存储器高速缓存。
图5显示了一个示例人对象。
图6显示了一个示例键对象。
图7显示了用于生成人对象的示例方法的流程图。
图8显示了用于针对全局地址列表来解析条目ID的示例方法的流程图。
图9显示了用于针对电子邮件联系人存储来解析条目ID的示例方法的流程图。
图10显示了用于针对客户端计算机上的第三方高速缓存来解析条目ID的示例方法的流程图。
图11示出图1的客户端计算机的示例组件。
具体实施方式
本申请涉及用于创建实体的标识符并使用该标识符来获得并聚集该实体的联系人信息。在本公开中,实体是人。然而,在各示例中,实体还可指具有电子邮件、电话号码以及社交网络站点上的帐户的组织。
联系人信息可从多个源中获得。当获得联系人信息时,该联系人信息被存储在客户端计算机上的数据结构中。用于创建标识符的系统和方法是由用户动作(诸如将光标悬停在电子邮件地址中的名称上)启动的。用户动作启动运行时进程,在该进程中,联系人信息被获得、存储在数据结构中、被聚集并被用于创建或更新提供该人的经聚集的联系人信息的用户界面显示。此外,在场信息可与联系人信息一起显示。在场信息指示联系人的当前在场状态,例如,可用、忙碌或离开。
在本公开中,存储联系人信息的数据结构被称为人对象。人对象可包括多个联系人对象,每个联系人对象存储相关联的联系人的信息。在本公开中,人的标识符被称为人标识符。人标识符被存储在人对象中的多个联系人对象中的每个中。此外,人对象中的多个联系人对象中的每个被相互链接。由此,人标识符被用于定位与人相关联的多个联系人对象中的每个。
用于创建人标识符的系统和方法在运行时被启动,例如当用户悬停在联系人名称上时。如在此详细讨论的,人标识符是可被用于定位人对象的数个标识符或键之一。键和人对象被存储在客户端计算机上的存储器高速缓存中。
在本公开中,对人和对人对象的引用也可应用到具有电子邮件、电话号码以及社交网络站点上的帐户的组织。
图1显示了在其中人对象可被构建的示例系统100。示例系统100包括客户端计算机102、目录服务器计算机110、电子邮件服务器计算机112、即时消息收发(IM)服务器计算机114和第三方源116。示例客户端计算机102包括人框架104、联系人存储106和用户界面108。
示例客户端计算机102运行包括联系人管理器的电子邮件应用。联系人管理器存储并维护一个或多个联系人的联系人信息。联系人信息包括示例属性,诸如联系人名称、地址、电话号码、职称等。示例电子邮件应用是来自华盛顿州雷蒙德市的微软公司的电子邮件个人信息管理器。
示例人框架104提供用于从一个或多个源获得人的联系人信息并创建与该人相关联的一个或多个联系人的人标识符的框架。人框架104还创建并更新包括一个或多个联系人对象和人标识符的人对象。人框架104在以下被更详细地解释。
示例联系人存储106包括客户端计算机102的用户的多个联系人的联系人记录。每个联系人记录与特定的人相对应。有可能的是,两个或更多个联系人记录可与相同的人相对应,例如如果联系人记录曾对一人创建过两次。当用户选择客户端计算机102的电子邮件应用上的联系人控件时,联系人记录通常对电子邮件应用可用。此外,当联系人信息被显示在客户端计算机的用户界面上时,联系人记录可被访问。
示例用户界面108显示人的联系人信息。一般地,当用户悬停在电子邮件应用或文档中的人的名称上时,显示联系人信息。用于触发联系人信息的显示的其它机制是可能的。联系人信息可从各种源来获得并被聚集在显示上。例如,联系人信息可从全局地址列表、从电子邮件应用的联系人存储或从第三方源(诸如Facebook或Linked-in)来获得。此外,用户界面108可获得并显示在场信息,以指示用户的可用性状态。例如,可用性状态可以是可用、忙碌或离开。可用性状态的其它示例是可能的。
示例目录服务器组件110是运行全局目录服务(例如来自华盛顿州雷蒙德市的微软公司的Active(活动目录)目录服务)的服务器计算机。示例全局目录服务通常包括网络(通常是公司网络)内的用户和计算机的目录信息。当存储在客户端计算机102的联系人存储中的联系人也被全局目录服务知晓时(例如,如果联系人是与用户相同公司的雇员),全局目录服务通常包括该联系人的目录记录。由此,在示例系统100中,虽然对一个人可存在多个联系人记录,但是全局目录服务通常仅包括针对该人的一个目录记录。
示例电子邮件服务器计算机112是运行电子邮件应用程序的服务器计算机。运行电子邮件应用程序的服务器计算机的一个示例是来自微软公司的Exchange Server 2010。电子邮件服务器计算机112可以是人框架104的附加的联系人信息源。
示例IM服务器计算机114是运行即时消息收发应用程序的服务器计算机。运行电子邮件应用程序的服务器计算机的一个示例是由华盛顿州雷蒙德市的微软公司生产的LyncTM通信服务器计算机。IM服务器计算机114通常由安装在客户端计算机102上的相应的即时信使应用程序来使用。即时信使应用程序的一个示例是来自微软公司的LyncTM即时消息收发客户端。示例IM服务器计算机114向即时消息收发客户端提供在场信息。即时消息收发客户端提供存储在客户端计算机102上的示例电子邮件应用中的联系人的在场信息。
联系人信息还可从第三方源116中获得。第三方源的示例包括社交网络应用,诸如Facebook和Linked-In。第三方源的其它示例是可能的。从第三方源获得用于获得联系人信息的方法,这将在以下被详细解释。
图2显示了可通过用户界面108来显示的示例联系人信息显示200。示例联系人信息显示200可当例如用户悬停在联系人的电子邮件地址上时被显示。何时显示联系人信息显示200的其它示例是可能的。
示例联系人信息显示200包括状态概要206,该状态概要206显示联系人的名称、联系人的当前状态以及联系人的商务职位。其它或不同的联系人信息可被包括在示例状态概要206中。示例联系人信息显示200还包括联系人的照片204和在场指示符202。示例在场指示符202可通过颜色、阴影或其它方式来指示联系人的在场状态。可被显示的典型状态包括可用、忙碌和离开。在各示例中,在场指示符202当用户是可用时可以是绿色的,当用户是忙碌是可以是红色的,而当用户是离开时可以是黄色的。其他颜色是可能的。
示例联系人信息显示200也包括提供联系人的特定状态信息的字段212-226。例如,日历状态224指示联系人的可用性状态,位置状态226指示联系人的当前位置。其它或不同类型的状态信息可被包括在联系人信息显示200中。
图3显示了人框架104的示例组件。该示例人框架包括联系人聚集器模块302、订阅源聚集器模块304、高速缓存处理模块306、链接模块308以及在场处理模块310。
示例联系人聚集器模块302聚集从一个或多个源获得的以及存储在人对象中的联系人信息,并将经聚集的联系人信息提供给用户界面108。当从人对象获得冗余联系人信息时,联系人聚集器模块302从经聚集的联系人信息中移除冗余信息。当从人对象获得联系人信息时,联系人聚集器模块302将联系人信息添加到经聚集的联系人信息中。结果,被提供给用户界面108的经聚集的联系人信息是存储在人对象中的可用联系人信息的合成。
示例订阅源聚集器模块304聚集活动的订阅源信息并将经聚集的活动的订阅源信息提供给用户界面108。对于在用户界面108上的联系人信息的显示,活动的订阅源信息通常表示在场信息。在场信息指示联系人的当前在场状态,例如,可用、忙碌或离开。在场信息一般是从IM服务器计算机114获得的。在各示例中,在场信息可从其它源获得。
示例高速缓存处理模块306从从一个或多个源获得的联系人信息中构建人对象。在一些示例中,仅从一个源获得联系人信息。在其它示例中,尤其在针对相同的人、多个联系人记录可被存储的示例中,联系人信息从多个源获得。
示例高速缓存处理模块306通常当特定的用户或其它动作发生时构建人对象,诸如用户移动光标使得光标悬停在电子邮件消息或文档中的名称上。例如,当光标悬停在电子邮件消息的“To(收件人)”字段中的名称上时,人对象可被构建。作为另一示例,当用户将电子邮件地址添加到电子邮件消息时或当从特定的联系人接收到电子邮件消息时,人对象可被构建。启动人对象的构建的其它示例动作是可能的。
如在以下详细讨论的,当人对象被构建时,高速缓存处理模块306首先确定人的条目标识符。在各示例中,条目标识符可以是名称、别名、电子邮件地址或固定地址。条目标识符的其它示例是可能的。条目标识符通常包括指示联系人是全局地址联系人、电子邮件联系人还是第三方联系人的元数据。
高速缓存处理模块306使用条目标识符来确定与条目标识符相对应的条目是否存在于全局数据存储(例如,目录服务器计算机110)中。在各示例中,标记或其它类型的元数据可指示与条目标识符相对应的人是否可能是全局地址联系人。当确定与条目标识符相对应的条目存在于全局数据存储中时,该人的联系人信息从全局数据存储中获得并被添加到人对象中。联系人信息被存储在作为人对象的一部分的联系人对象中。此外,针对该人创建人标识符,并且该人标识符也被存储在人对象中。在各示例中,人标识符是标识该人的全局唯一标识符(GUID)。
当条目标识符指示联系人是电子邮件联系人时,联系人信息从与运行在客户端计算机102上的电子邮件应用相关联的联系人存储(例如,联系人存储106)中获得。当联系人存储中存在人的联系人信息时,联系人信息从联系人存储中获得并作为第二联系人对象被添加到人对象中。此外,人标识符被存储在第二联系人对象中。此外,当人的联系人信息也存在于全局数据存储中时,全局地址标识符被添加到第二联系人对象中。全局地址标识符被用于在全局数据存储中定位人的联系人信息。由此,通过访问第二联系人对象,全局地址标识符可被用于链接回全局数据存储并从全局数据存储中获得人的联系人信息。
除了从联系人存储中获得联系人信息之外,作出从第三方源中定位联系人信息的尝试。第三方源可包括社交网络(诸如Facebook和LinkedIn)或其它类似的源。在一些示例中,当条目 ID与要被定位的人的名称相对应时,高速缓存处理模块306可将该人的名称发送到第三方源。如果第三方源具有该人的联系人信息,则第三方源可将联系人信息发送到高速缓存处理模块306。当高速缓存处理模块306接收到来自第三方源的联系人信息时,高速缓存处理模块306创建人的新的联系人对象(例如,第三联系人对象)并将该新的联系人对象存储在人对象中。高速缓存处理模块306还将人标识符插入到该新的联系人对象中。
在一些示例中,高速缓存处理模块306将一个或多个电子邮件地址发送到一个或多个第三方源。电子邮件地址是与条目标识符相关联的电子邮件地址。例如,条目标识符可从电子邮件地址中导出。运行在客户端计算机102上的电子邮件系统还可包括与对应于条目标识符的人相关联的其它电子邮件地址。当第三方源接收到一个或多个电子邮件地址时,第三方源可将与一个或多个电子邮件地址相对应的联系人信息发送到客户端计算机102。当高速缓存处理模块306接收到联系人信息时,高速缓存处理模块创建或更新另一联系人对象(例如,第四联系人对象)来存储来自第三方源的联系人信息。人标识符也被存储在第四联系人对象中。第四联系人对象也被存储在人对象中。
在一些示例中,与示例系统100相关联的实体(例如,商业组织)可具有与第三方源中的一个或多个的关系。例如,商业组织可具有向一个或多个第三方源注册的顾客标识号。在这些示例中,高速缓存处理模块306将顾客标识号发送到一个或多个第三方源。当一个或多个第三方源接收到顾客标识号时,一个或多个第三方源可将顾客的联系人信息发送到客户端计算机102。
包括一个或多个联系人对象的人对象被存储在客户端计算机102上的存储器高速缓存中。存储器高速缓存是高速缓存处理模块306的一部分。
当人对象包括多于一个的联系人对象时,示例链接模块308链接联系人对象。因此,第一联系人对象可被链接到第二联系人对象,而第二联系人对象可被链接到第三联系人对象等。对联系人对象进行链接允许对存储在联系人对象中的联系人信息的高效访问。
示例在场处理模块310获得人的在场信息并用该在场信息来更新用户界面108。在场信息通常从即时消息收发服务器计算机(例如,IM服务器计算机114)来获得。即时消息收发服务器计算机的一个示例是LyncTM通信服务器计算机。在场信息可被显示在联系人信息显示上(例如,在联系人信息显示200上)的在场指示符(例如,在场指示符202)上。在场指示符可设置成指示在场的颜色-例如,绿色来指示可用状态。
图4显示了提供多个用户联系人的被高速缓存的联系人信息的示例人存储器高速缓存400。人存储器高速缓存包括人对象402和键对象404。人对象402包括一个或多个人对象。每个人对象都包括一个或多个联系人对象。联系人对象提供人的联系人信息。人标识符也被存储在每个联系人对象中。人标识符是标识人对象的GUID。当联系人信息在全局数据存储(例如,全局地址列表)中被找到时,联系人对象也存储在全局数据存储中定位联系人信息的全局地址标识符。
键对象404包括一个或多个键对象。每个键对象都包括特定的人对象的键信息。每个键对象都包括人对象的条目标识符并还包括人对象的人标识符。键对象还可包括与人相关联的一个或多个电子邮件地址。
图5示出一个示例人对象500。示例人对象500包括一个或多个联系人对象502、504、506、508和在场对象510。每个联系人对象都包括人的联系人信息。一些示例联系人信息包括人的名称、地址、商务职位以及一个或多个电话号码。联系人信息的其它示例是可能的。示例在场对象510包括人的在场信息。在场信息通常包括人的可用性状态。在示例人对象500中,每个联系人对象都被显示为相互链接。对联系人对象进行链接提升从联系人对象获得联系人信息的效率。
图6示出一个示例键对象600。该示例键对象600包括被用于定位相应的人对象的多个标识符。示例标识符包括初始键602、条目标识符604以及人标识符606并还可包括一个或多个电子邮件地址608、610、612。初始键602是可被提供给示例系统1 00的联系人标识符。在各示例中,初始键602可以是名称、电子邮件地址、别名或固定地址。在各示例中,条目标识符604可从初始键602中导出。在其它示例中,条目标识符604和初始键602可以是相同的标识符。
图7显示了用于创建人对象的方法700的示例流程图。当用户动作标识人并且该人的人对象当前不在客户端计算机102上的存储器高速缓存中时,方法700被启动。标识人的用户动作的一个示例是当用户将光标悬停在电子邮件消息或文档上的人的名称上时。例如,用户可将光标悬停在电子邮件消息上的收件人(To)或发件人(From)字段上。
在操作702,当用户动作发生时,一个或多个标识符可被解析到条目ID中。条目ID可以是电子邮件地址、名称或别名。条目ID包括指示对应于条目ID的人是否具有在全局地址列表或电子邮件系统联系人存储中的记录的元数据。在各示例中,当用户动作发生时,用户界面(例如,用户界面108)向人框架104提供条目ID。然而,在其它示例中,用户界面可向人框架104提供一个或多个名称,其中没有一个是条目ID。当条目ID没有被提供而是多个名称被提供时,人框架104从多个名称中确定条目ID。
在操作704,作出关于条目ID是否是全局地址列表(GAL)联系人的标识符的确定。GAL是全局目录服务,例如Active目录服务。在各示例中,来自条目ID的元数据可被用于确定条目ID是否是GAL联系人的标识符。在各示例中,entryID(条目 ID)是GAL联系人的唯一标识GAL联系人具有全局地址列表中的记录的属性。当在操作704作出条目ID是GAL联系人的标识符的确定时,在操作706,GAL属性在人对象中和在与人对象相关联的标识符键中被更新。GAL属性从GAL联系人的全局地址列表中获得。示例属性可包括GAL联系人的名称、一个或多个电话号码、职位以及电子邮件地址。其他示例属性是可能的。标识符键包括与人对象相关联的一个或多个标识符。一个标识符键是标识人对象的人ID。其它标识符键可包括与人相关联的一个或多个电子邮件地址、条目ID以及条目ID从中被创建的初始标识符。标识符键的其它示例是可能的。
在操作708,如在以下被详细解释的,针对运行在客户端计算机102上的电子邮件系统的联系人存储来解析条目ID。当条目ID针对联系人存储来解析时,作出关于GAL联系人的联系人记录是否存在于电子邮件系统的联系人存储中的确定。当作出GAL联系人的联系人记录不存在于电子邮件系统的联系人存储中的确定时,在操作708,从联系人存储中获得的联系人的属性在人对象和键中被更新。从联系人存储中获得的联系人的属性可包括诸如以下的属性:人的名称、一个或多个电话号码、职务以及电子邮件地址。在从联系人存储中获得的联系人的属性与从GAL获得的联系人的属性是相同的情况下,属性不被添加到人对象和键中。然而,当从联系人存储中获得的属性当前不存在于人对象和键中时或当从联系人存储中获得的属性不同于人对象和键中类似的属性时,从联系人存储中获得的属性被添加到人对象和键中。
在操作710,如以下被更详细解释的,针对客户端计算机上(例如,在客户端计算机102上)的第三方高速缓存来解析一个或多个标识符。在本公开中,第三方指不是商业组织一部分的实体,商业组织包括客户端计算机102、目录服务器计算机110、电子邮件服务器计算机112以及IM服务器计算机114。第三方的示例包括社交网络,诸如Facebook和Linked-In。第三方的其它示例是可能的。第三方高速缓存包括由第三方提供的联系人信息。标识符可包括从键中获得的人ID以及一个或多个电子邮件地址。针对第三方高速缓存来解析标识符涉及确定第三方高速缓存是否包括与标识符之一匹配的联系人信息。
在操作712,直接针对第三方来解析一个或多个电子邮件地址。直接针对第三方来解析电子邮件地址涉及向第三方发送与条目ID相关联的电子邮件地址列表。例如,包括在与条目ID相对应的人对象的键中的电子邮件地址可从人框架104发送到第三方。第三方可将对应于电子邮件地址的联系人信息发送到人框架104。在操作714,用从第三方接收到的联系人信息来更新人对象和键。
在操作704,当作出条目ID不是GAL联系人的标识符的确定时,在操作724,作出条目ID是否是电子邮件地址的确定。在操作724,当确定条目ID是电子邮件地址时,在操作724(如将在以下详细解释的),针对全局地址列表来解析条目ID。针对全局地址列表来解析条目ID包括确定是否有匹配的GAL条目ID或确定是否找到针对与条目ID相关联的一个或多个电子邮件地址的匹配。当找到匹配时,与该匹配相对应的联系人数据被存储在条目ID的人对象和键中。
在操作724,当确定条目ID不是电子邮件地址时,在操作730,作出关于条目ID是否表示第三方联系人的确定。当在操作730确定条目ID表示第三方联系人时,在操作710,如讨论的,针对第三方高速缓存来解析条目ID并且在操作712,如讨论的,直接针对第三方来解析条目ID。
在操作716,作出关于会话发起协议(SIP)116是否可用的确定。SIP是用于通过因特网进行通信会话的信令协议。即时消息收发服务器计算机(例如,IM服务器计算机114)可使用SIP来确定人的在场信息。
当在操作716处作出SIP是可用的确定时,在操作718,人的在场信息从IM服务器计算机114中获得。IM服务器计算机114的一个示例是微软LyncTM通信服务器计算机。当在操作716作出SIP不可用的确定时,电子邮件消息列表从人对象中获得。该电子邮件消息列表通常从人对象的键部分中获得。在操作722,电子邮件消息被发送到IM服务器计算机114来确定IM服务器计算机114是否能解析电子邮件消息以及提供在场信息。
图8显示了用于针对全局地址列表来解析条目ID的操作726的示例流程图。在操作726的开始处,已经作出了条目ID是与运行在客户端计算机102上的电子邮件应用的联系人存储中的联系人相对应的电子邮件地址ID的确定。在操作802,作出关于是否有与条目ID相关联的匹配的GAL条目ID的确定。当确定存在与条目ID相关联的匹配的GAL条目ID时,在操作804,获得与该GAL条目ID相对应的人的属性。属性可包括人的名称、电子邮件地址、职务、一个或多个电话号码等。在操作806,用属性来更新人对象。
当在操作802作出不存在与条目ID相关联的匹配的GAL条目ID的确定时,在操作808,从与条目ID相关联的键中获得一个或多个电子邮件地址。在操作810,针对GAL来检查一个或多个电子邮件地址以确定是否在GAL中找到任何匹配一个或多个电子邮件地址的联系人。当在操作810确定在GAL中找到与一个或多个电子邮件地址匹配的联系人时,用GAL联系人数据来更新人对象。
图9显示了用于针对电子邮件联系人存储来解析条目ID的操作708的示例流程图。在操作902,针对联系人存储来检查条目ID以寻找匹配的条目ID。在操作904,匹配的ID被找到,意味着在联系人存储中具有与条目ID匹配的联系人。在操作906,作出关于是否存在联系人的人ID的确定。当在操作906确定找到联系人的人ID时,在操作908,获得链接到该人ID的所有联系人。如在此之前讨论的,关于图5,人ID被链接到人对象中的第一联系人,并且人对象中的每个联系人对象被链接到另一联系人对象。在操作910,用被链接的联系人对象的属性来更新人对象。
当在操作904作出没有找到匹配的ID的确定时(意味着在联系人存储中没有匹配条目ID的联系人),在操作912,与条目ID相关联的电子邮件地址被用于在联系人存储中搜索匹配的电子邮件地址。在操作914,作出关于是否找到匹配的电子邮件地址的确定。当在操作914确定找到匹配的电子邮件地址时,在操作906,作出关于是否存在与匹配的电子邮件地址相对应的联系人的人ID的确定。
当在操作906作出没有找到联系人的人ID的确定时,在操作916,获得所有与条目ID相关联的电子邮件地址与联系人存储中对应的电子邮件地址相匹配的联系人。在操作918,用通过匹配的电子邮件地址来获得的联系人的属性来更新人对象。
图10显示了用于针对客户端计算机上(例如,客户端计算机102上)的第三方高速缓存来解析条目ID的操作710的示例流程图。第三方高速缓存包括由第三方(诸如Facebook和Linked-In)提供的联系人信息。
在操作1002,第三方高速缓存被检查来确定是否能找到对应于人ID的联系人的匹配。在操作1004,当确定来自第三方高速缓存的联系人匹配人ID时,在操作1006,从第三方高速缓存中获得联系人的联系人数据。
在操作1004,当确定在第三方高速缓存中不能找到人ID的匹配时,从人对象的键中获得一个或多个电子邮件地址。第三方高速缓存接着被检查来确定是否能在第三方高速缓存中找到一个或多个电子邮件地址的匹配。在操作1010,当确定在第三方高速缓存中能找到一个或多个电子邮件地址的匹配时,在操作1006,从第三方高速缓存中获得联系人的联系人数据。
参照图11,示出客户端计算机102的示例组件。在示例实施方式中,客户端计算机102是计算设备。客户端计算机102可包括输入/输出设备、中央处理单元(“CPU”)、数据存储设备、和网络设备。客户端计算机102还可以是移动计算设备,诸如膝上型、平板、可转变的或其它手持设备,像智能手机或蜂窝式电话。
在基本的配置中,客户端计算机102通常包括至少一个处理单元1102和系统存储器1104。取决于计算设备的确切配置和类型,系统存储器1104可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。系统存储器1104通常包括适用于控制客户端计算机的操作的操作系统1106。系统存储器1104还可以包括一个或多个软件应用1108并且可以包括程序数据。
客户端计算机102可具有附加特征或功能。例如,客户端计算机102还可包括计算机可读介质。计算机可读介质可包括计算机可读存储介质和通信介质两者。
计算机可读存储介质是物理介质,诸如包括磁盘、光盘或磁带的数据存储设备(可移动和/或不可移动)。这样的附加存储在图11中由可移动存储1110和不可移动存储1112示出。计算机可读存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质可以包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或者可用于存储所需信息并可由客户端计算机102访问的任何其他介质。任何这样的计算机可读存储介质都可以是客户端计算机102的一部分。客户端计算机102还可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备1114。还可包括诸如显示器、扬声器、打印机等输出设备1116。
根据本公开的实施例,输入设备1114可包括能够检测用户的移动或姿势的任何运动检测设备。例如,输入设备1114可以包括微软公司的运动捕捉设备,它包括多个相机和多个话筒。
客户端计算机102也可以包含允许该设备与其它计算设备1120通信的通信连接1118,诸如在分布式计算环境中通过网络,例如内联网或互联网。通信连接1118是通信介质的一个示例。通信介质通常由诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传送介质。术语已调制数据信号摂是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。
可以通过片上系统(SOC)来实践本发明的实施例,其中,可以将图11中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,以上所述的关于本申请的功能可以通过在单个集成电路(芯片)上集成有计算设备102的其它组件的专用逻辑来操作。
以上描述的各个实施例仅作为说明提供,并且不应被解释为限制。可对以上描述的实施例做出各种修改和改变,而不背离本公开的真实精神和范围。
Claims (10)
1.一种在电子计算设备上执行的用于创建表示人的数据结构的方法,所述方法包括:
在所述电子计算设备上,接收第一标识符,所述第一标识符标识第一人;
将所述第一标识符存储在所述电子计算设备上的第一存储器高速缓存中的数据结构中,所述数据结构包括人对象,所述人对象包括一个或多个联系人对象;
确定所述第一标识符是否指示所述第一人是全局地址列表联系人;
当确定所述第一标识符指示所述第一人是全局地址列表联系人时:
从全局地址列表存储中获得所述第一人的第一属性,所述第一属性包括所述第一人的第一联系人信息;以及
将所述第一属性存储在所述数据结构中的第一联系人对象中;
当确定所述第一标识符没有指示所述第一人是全局地址列表联系人时,从所述第一标识符中确定所述第一人是否是电子邮件联系人,所述电子邮件联系人是运行在所述电子计算设备上的电子邮件应用的联系人存储中的联系人;
当确定所述第一标识符指示所述第一人是电子邮件联系人时:
从所述联系人存储获得所述第一人的第二属性,所述第二属性包括所述第一人的第二联系人信息;
将所述第二属性存储在所述电子计算设备上的所述第一存储器高速缓存中的所述数据结构中,所述第二属性被存储在所述数据结构中的第二联系人对象中;
确定所述第二属性是否包括全局地址标识符,所述全局地址标识符在全局地址列表存储中标识所述第一人;以及
当确定所述第二属性包括全局地址标识符时,将所述全局地址标识符存储在所述第二联系人对象中;
创建所述第一人的第二标识符,所述第二标识符是标识所述第一人的人标识符;
将所述第二标识符存储在所述第一联系人对象中;以及
将所述第二标识符存储在所述第二联系人对象中。
2.如权利要求1所述的方法,其特征在于,进一步包括当确定所述第二属性不包括全局地址标识符时:
确定所述第二属性是否包括一个或多个电子邮件地址;以及
当确定所述第二属性包括一个或多个电子邮件地址时:
对于所述一个或多个电子邮件地址中的每一个,确定在所述电子邮件地址和所述全局地址列表中的联系人之间是否找到匹配;以及
当确定在所述电子邮件地址和所述全局地址列表中的联系人之间找到匹配时,从所述全局地址列表中获得对应于所述电子邮件地址的联系人信息并将所述联系人信息存储在所述第一存储器高速缓存中。
3.如权利要求1所述的方法,其特征在于,还包括:
确定是否存在所述第一联系人的人标识符;
当确定存在所述第一联系人的人标识符时,使用所述人标识符来确定是否一个或多个其他的联系人被链接到所述第一联系人;以及
当确定一个或多个其他的联系人被链接到所述第一联系人时:
对于所述一个或多个其他的联系人中的每一个,从与所述电子邮件应用相关联的存储中获得所述联系人的联系人信息并用所述联系人信息来更新所述第一存储器高速缓存中的所述数据结构。
4.如权利要求3所述的方法,其特征在于,还包括:
当确定不存在所述第一联系人的人标识符时:
确定与所述第一标识符相关联的电子邮件地址;
使用所述电子邮件地址来确定在与所述电子邮件应用相关联的存储中是否有任何具有与和所述第一标识符相关联的电子邮件地址匹配的电子邮件地址的联系人;
当确定与所述电子邮件应用相关联的存储中的一个或多个联系人具有与和所述第一标识符相关联的电子邮件地址匹配的电子邮件地址时:
确定每个匹配的联系人是否具有相关联的人标识符;
当确定匹配的联系人具有相关联的人标识符时,使用所述人标识符来确定是否一个或多个其他的联系人被链接到所述匹配的联系人;以及
当确定一个或多个其他的联系人被链接到所述匹配的联系人时,对于所述一个或多个其他的联系人中的每一个,从与所述电子邮件应用相关联的存储中获得所述联系人的联系人信息并用所述联系人信息来更新所述第一存储器高速缓存中的所述数据结构。
5.如权利要求1所述的方法,其特征在于,还包括:
当从所述第一标识符中确定所述第一人不是全局地址列表联系人时并且当从所述第一标识符中确定所述第一人不是电子邮件联系人时:
使用所述第一标识符来确定与所述第一标识符匹配的联系人是否存在于第二存储器高速缓存中,所述第二存储器高速缓存存储第三方的联系人信息;以及
当确定与所述第一标识符匹配的一个或多个联系人存在于所述第二存储器高速缓存中时,对于所述第二存储器高速缓存中的与所述第一标识符匹配的每一个联系人,从所述第二存储器高速缓存中获得所述联系人的联系人信息并用所述联系人信息来更新所述第一存储器高速缓存中的第一数据结构。
6.如权利要求5所述的方法,其特征在于,还包括:
当确定在所述第二存储器高速缓存中没有与所述第一标识符匹配的联系人时:
从所述第一存储器高速缓存中获得一个或多个人标识符;
对于每一个人标识符,获得与所述人标识符相关联的一个或多个电子邮件地址;
对于所述电子邮件地址中的每一个,确定在所述第二存储器高速缓存中是否存在与所述电子邮件地址匹配的联系人;
当确定在所述第二存储器高速缓存中存在与所述电子邮件地址匹配的一个或多个联系人时,从所述第二存储器高速缓存中获得所述联系人的联系人信息并用所述联系人信息来更新所述第一存储器高速缓存中的所述第一数据结构。
7.如权利要求1所述的方法,其特征在于,还包括:
从存储在所述电子计算设备上的电子邮件地址列表中获得一个或多个电子邮件地址;
将所述电子邮件地址中的一个或多个发送到一个或多个第三方源;
从所述第三方源中的一个或多个获得联系人信息;
用所述联系人信息来更新所述第一存储器高速缓存中的所述数据结构;以及
用与所述联系人信息相关联的每个电子邮件地址来更新所述第一存储器高速缓存。
8.如权利要求1所述的方法,其特征在于,还包括:
当所述第一标识符指示所述第一人是全局地址列表联系人时,确定是否通过会话发起协议来访问第三方联系人信息是可用的;
当确定通过会话发起协议来访问第三方联系人信息是可用的时:
从所述第一标识符获得第三标识符,所述第三标识符具有与所述会话发起协议相关联的地址;以及
使用所述第三标识符来从服务器计算机获得所述第一人的在场信息;以及
当确定通过会话发起协议来访问第三方联系人信息是不可用的时:
从存储在所述电子计算设备上的电子邮件地址列表中获得一个或多个电子邮件地址;以及
使用所述一个或多个电子邮件地址来从所述服务器计算机获得所述第一人的在场信息。
9.一种电子计算设备,包括:
处理单元;以及
系统存储器,所述系统存储器包括当被所述处理单元执行时使得所述电子计算设备执行以下操作的指令:
创建一个或多个包括人的联系人信息的软件对象,每个软件对象包括:
一个或多个联系人对象,所述一个或多个联系人对象与一个人相关联,至少一个联系人对象包括全局地址列表标识符,所述全局地址列表标识符在全局数据存储中标识所述人的联系人信息;
以及一个或多个被用于访问软件对象的键,每个键包括对所述一个或多个联系人对象中的每一个通用的标识符,所述标识符是人标识符;以及
将所述人标识符存储在一个或多个联系人对象中的每一个中。
10.一种由电子计算设备执行的方法,所述方法包括:
接收第一标识符,所述第一标识符标识第一人,所述第一标识符是从电子邮件地址、即时消息收发地址、名称或别名中导出的;
将所述第一标识符存储在所述电子计算设备上的第一存储器高速缓存中的数据结构中,所述数据结构包括人对象,所述人对象包括一个或多个联系人对象;
从与所述第一标识符相关联的元数据中确定所述第一标识符是否指示所述第一人是全局地址列表联系人;
当确定所述第一标识符指示所述第一人是全局地址列表联系人时:
从全局地址列表存储中获得所述第一人的第一属性,所述第一属性包括所述第一人的第一联系人信息;以及
将所述第一属性存储在所述数据结构中的第一联系人对象中;
当确定所述第一标识符没有指示所述第一人是全局地址列表联系人时,从与所述第一标识符相关联的元数据中确定所述第一人是否是电子邮件联系人,所述电子邮件联系人是运行在所述电子计算设备上的电子邮件应用的联系人存储中的联系人;
当确定所述第一标识符是电子邮件联系人时:
从所述联系人存储获得所述第一人的第二属性,所述第二属性包括所述第一人的第二联系人信息;
将所述第二属性存储在所述电子计算设备上的所述第一存储器高速缓存中的所述数据结构中,所述第二属性被存储在所述数据结构中的第二联系人对象中;
确定所述第二属性是否包括全局地址标识符,所述全局地址标识符在全局地址列表存储中标识所述第一人;以及
当确定所述第二属性包括全局地址标识符时,将所述全局地址标识符存储在所述第二联系人对象中;
当确定所述第二属性不包括全局地址标识符时:
确定所述第二属性是否包括一个或多个电子邮件地址;以及
当确定所述第二属性包括一个或多个电子邮件地址时:
对于所述一个或多个电子邮件地址中的每一个,确定在所述电子邮件地址和所述全局地址列表中的联系人之间是否找到匹配;以及
当确定在所述电子邮件地址和所述全局地址列表中的联系人之间找到匹配时,从所述全局地址列表中获得对应于所述电子邮件地址的联系人信息并将所述联系人信息存储在所述第一存储器高速缓存中;
创建所述第一人的第二标识符,所述第二标识符是标识所述第一人的人标识符;
将所述第二标识符存储在所述第一联系人对象中;
将所述第二标识符存储在所述第二联系人对象中;
从存储在所述电子计算设备上的电子邮件地址列表中获得一个或多个电子邮件地址;
将所述电子邮件地址中的一个或多个发送到一个或多个第三方源;
从所述第三方源中的一个或多个获得联系人信息;
用所述联系人信息来更新所述第一存储器高速缓存中的所述数据结构;
用与所述联系人信息相关联的每个电子邮件地址来更新所述第一存储器高速缓存;
当所述第一联系人是全局地址标识符联系人时,确定是否通过会话发起协议来访问第三方联系人信息是可用的;
当确定通过会话发起协议来访问第三方联系人信息是可用的时:
从所述第一标识符获得第二标识符,所述第二标识符具有与所述会话发起协议相关联的地址;以及
使用所述第二标识符来从服务器计算机获得所述第一联系人的在场信息;以及
当确定通过会话发起协议来访问第三方联系人信息是不可用的时:
从存储在所述电子计算设备上的电子邮件地址列表中获得一个或多个电子邮件地址;以及
使用所述一个或多个电子邮件地址来从所述服务器计算机获得所述第一联系人的在场信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/288,091 | 2011-11-03 | ||
US13/288,091 US8799487B2 (en) | 2011-11-03 | 2011-11-03 | Build a person object from multiple contacts |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102982438A CN102982438A (zh) | 2013-03-20 |
CN102982438B true CN102982438B (zh) | 2015-10-28 |
Family
ID=47856401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210435136.6A Active CN102982438B (zh) | 2011-11-03 | 2012-11-02 | 从多个联系人来构建人 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8799487B2 (zh) |
EP (1) | EP2774114A4 (zh) |
CN (1) | CN102982438B (zh) |
WO (1) | WO2013067231A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140089818A1 (en) * | 2012-09-24 | 2014-03-27 | Myspace, Llc | System and method for connecting users to other users and objects in a social network |
CN104539519B (zh) * | 2014-12-27 | 2019-07-30 | 宁波江东远通计算机有限公司 | 一种联系人信息管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030000108A (ko) * | 2001-06-22 | 2003-01-06 | 삼성전자 주식회사 | 네트워크 상에서의 주소록 통합 관리 서비스 시스템 및 방법 |
CN1825311A (zh) * | 2005-02-25 | 2006-08-30 | 微软公司 | 用于从多个联系人源聚集联系人信息的方法和系统 |
KR20100050816A (ko) * | 2008-11-06 | 2010-05-14 | 주식회사 케이티 | 네트워크 주소록을 이용한 개인 정보 자동 입력 방법 및 그시스템 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060074727A1 (en) * | 2000-09-07 | 2006-04-06 | Briere Daniel D | Method and apparatus for collection and dissemination of information over a computer network |
US7657598B2 (en) * | 2002-09-17 | 2010-02-02 | At&T Intellectual Property I, L.P. | Address book for integrating email and instant messaging (IM) |
US7480915B2 (en) * | 2002-10-03 | 2009-01-20 | Nokia Corporation | WV-IMS relay and interoperability methods |
US7725541B2 (en) * | 2003-02-10 | 2010-05-25 | At&T Intellectual Property I, L.P. | Forwarding to automatically prioritized IM accounts based upon priority and presence |
US7080104B2 (en) | 2003-11-07 | 2006-07-18 | Plaxo, Inc. | Synchronization and merge engines |
US7571228B2 (en) * | 2005-04-22 | 2009-08-04 | Microsoft Corporation | Contact management in a serverless peer-to-peer system |
US20060242235A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Presence monitoring in a serverless peer-to-peer system |
US8954500B2 (en) * | 2008-01-04 | 2015-02-10 | Yahoo! Inc. | Identifying and employing social network relationships |
US7627608B2 (en) | 2007-02-07 | 2009-12-01 | Nokia Corporation | Sharing of media using contact data |
US20090043844A1 (en) | 2007-08-09 | 2009-02-12 | International Business Machines Corporation | System and method for name conflict resolution |
US8774374B2 (en) * | 2007-12-13 | 2014-07-08 | Verizon Patent And Licensing Inc. | Managing visual voicemail from multiple devices |
US20090157615A1 (en) | 2007-12-18 | 2009-06-18 | General Motors Corporation | Synching online address book sources for a vehicle user |
US8949343B2 (en) | 2008-08-28 | 2015-02-03 | Microsoft Corporation | Email confirmation page for social network notifications |
US20110099507A1 (en) | 2009-10-28 | 2011-04-28 | Google Inc. | Displaying a collection of interactive elements that trigger actions directed to an item |
-
2011
- 2011-11-03 US US13/288,091 patent/US8799487B2/en active Active
-
2012
- 2012-11-02 EP EP12845526.8A patent/EP2774114A4/en not_active Ceased
- 2012-11-02 CN CN201210435136.6A patent/CN102982438B/zh active Active
- 2012-11-02 WO PCT/US2012/063128 patent/WO2013067231A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030000108A (ko) * | 2001-06-22 | 2003-01-06 | 삼성전자 주식회사 | 네트워크 상에서의 주소록 통합 관리 서비스 시스템 및 방법 |
CN1825311A (zh) * | 2005-02-25 | 2006-08-30 | 微软公司 | 用于从多个联系人源聚集联系人信息的方法和系统 |
KR20100050816A (ko) * | 2008-11-06 | 2010-05-14 | 주식회사 케이티 | 네트워크 주소록을 이용한 개인 정보 자동 입력 방법 및 그시스템 |
Also Published As
Publication number | Publication date |
---|---|
EP2774114A1 (en) | 2014-09-10 |
CN102982438A (zh) | 2013-03-20 |
EP2774114A4 (en) | 2015-07-15 |
US8799487B2 (en) | 2014-08-05 |
WO2013067231A1 (en) | 2013-05-10 |
US20130117458A1 (en) | 2013-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748366B2 (en) | Shared folder backed integrated workspaces | |
CN106375191B (zh) | 新闻订阅源技术 | |
CN102968713B (zh) | 社交活动馈源和联系人信息的聚集提供器 | |
KR20060107902A (ko) | 컨택트 관리 | |
CN1825311A (zh) | 用于从多个联系人源聚集联系人信息的方法和系统 | |
US20140196060A1 (en) | Web service api for unified contact store | |
CN102982438B (zh) | 从多个联系人来构建人 | |
US20230013744A1 (en) | Connection of network members | |
CA2793654C (en) | System and method for insertion of addresses in electronic messages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150723 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150723 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |