数据的自描述呈现
背景
因特网是允许用户通过诸如即时消息收发之类的各种应用程序相互进行通信的全球计算机网络。有各种即时消息收发(IM)系统可用,这些系统可使通信与诸如电子邮件、短消息服务(SMS)等等之类的时延通信相比更类似于真正的会话。此外,许多IM系统包括允许用户显示“在场”状态(例如,在线、离线、离开等等)的机制。
被称为
LIVE
TM Messenger(华盛顿州,雷蒙德市,微软公司)的IM系统包括在场应用程序编程接口(
LIVE
TM在场API)。该基于HTTP的API使用JavaScript
TM对象符号(JSON)(加利福尼亚州,桑尼维尔市,Sun Microsystems有限公司)或图像来返回
LIVE
TM Messenger用户的在场。
LIVE
TM在场API可以与被称为
LIVE
TM Messenger IM Control的控件一起使用。网站可以使用
LIVE
TM在场API示出用户的在场,并令访问者利用
LIVE
TM Messenger IM Control向该用户发送消息。
LIVE
TM在场API允许IM用户邀请其他IM用户提供显示他们的在线在场的许可。这是通过向注册页面添加链接来实现的。当用户点击该注册链接时,用户被带到
LIVE
TM Messenger设置页。一旦注册完成,用户被定向回在该注册链接中指定的URL。然后,可以使用用户的ID来查询该用户的在线在场。
尽管用户“在场”已经变成大多数IM系统的基本特征,但随着用户希望共享更多信息,某些IM系统已经开发了利用所谓的“在场扩展”来扩展在场的机制。在场扩展可以允许用户向在场状态提供诸如位置或活动之类的附加信息。例如,对于用户“Joe”,在场状态和在场扩展可以指示“忙碌”以及“正在听James Brown”。然而,到目前为止,容易地共享扩展信息的能力是有限的。如此处所描述的,各种示例性方法、系统、设备等等允许人们在IM环境中共享各种信息中的任何一种。
概述
提供本概述以介绍在以下详细描述中进一步描述的与数据的自描述呈现相关的简化概念。本概述并不旨在标识所要求保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。
基于网络的即时消息收发系统的示例性数据包包括有关该即时消息收发系统的用户的描述性数据以及指示用于呈现该描述性数据的小配件的网络位置的数据,该位置可由该即时消息收发系统的一个或多个其他用户访问。还公开了各种其他示例性方法、系统、设备等等。
附图简述
参考附图阐述详细描述。在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。在不同附图中使用相同的附图标记指示相似或相同的项。
图1示出了用于实现数据的自描述呈现的示例性网络环境。
图2示出了用于实现数据的自描述呈现的示例性计算设备。
图3示出了与用于数据的自描述呈现的模式一起使用的示例性应用程序编程接口(API)。
图4示出了与用于数据的自描述呈现的模式一起使用的示例性应用程序编程接口(API)。
图5示出了与用于数据的自描述呈现的模式一起使用的示例性应用程序编程接口(API)。
图6示出了职业设置中的数据的自描述呈现的示例性实现。
图7示出了个人设置中的数据的自描述呈现的示例性实现。
图8示出了广告的自描述呈现的示例性实现。
图9示出了地理位置的自描述呈现的示例性实现。
图10示出了示例性小配件创建过程。
图11示出了用于使用小配件来呈现用户信息的示例性过程。
图12示出了用于实现数据的自描述呈现的示例性过程。
图13示出了示例性计算设备。
详细描述
此处所描述的各种示例性方法、系统、设备等等允许用户容易地在IM环境中共享信息。例如,示例性IM扩展机制指定用于呈现该扩展的内容的小配件。在这样的示例中,预订端点可以从发布端点对等地或者从Web服务器检索该小配件。小配件呈现的信息可以包含在在场文档中,而在场文档可以被发布给所有订户。考虑允许用户指示地理位置的示例性位置扩展。这样的扩展可以指定一个小配件,该小配件是与地图应用程序(例如,VIRTUAL
)的混搭(mash-up)并可以在地图上呈现用户的位置。一旦被呈现,IM联系人就可以执行诸如搜索附近的企业、规划到所定位的用户的路线之类的任务。在简单形式中,小配件是HTML文件和XML定义文件。小配件常常包括诸如图像文件(例如,PNG、JPG,等等)、样式表(例如,CSS,等等)和脚本(例如,JavaScript源文件、VBScript源文件等等)之类的其他文件。小配件可以作为压缩文件(例如,zip文件等等)来分发。
也可以由Web服务器整个地注入示例性在场扩展以及伴随的小配件。例如,由某一商家运营Web服务器可以(例如,使用Web服务)指示IM服务器向用户的在场注入希望得到的物品的列表(例如,在得到用户的许可的情况下)以及用于显示希望得到的商品的小配件。在该示例中,用户的所有联系人都可以看到对于假日(例如,圣诞节、生日、光明节、排灯节、克瓦查节等等)用户需要什么,并购买礼物而无需采取首先去该商家的网站并查找该用户的希望得到的物品的列表的步骤。
如此处所描述的,示例性在场扩展可以指定供显示信息的丰富呈现格式,该格式不需要在呈现端点安装该扩展。一种示例性方法可以包括在小配件中消费在场信息。一种示例性方法可以包括对等地发送小配件。
用于数据的自描述呈现的各种所描述的技术允许在IM环境中共享附加信息。作为自描述呈现机制(SDR)的一部分,用户可以提供他/她的要与通过IM系统连接到该用户的联系人共享的附加信息。示例性SDR机制包括提供内容以及有关用于呈现该内容的小配件的信息。如此,其他用户或联系人不仅接收到内容(例如,除仅仅是在场状态以外的某种内容),而且还接收关于如何呈现该内容的信息。
如此处所描述的,在场扩展允许向在场文档(例如,包括用户的在场信息的文档)中添加在场信息。在场信息通常是用户的或涉及用户的、该用户可以向IM环境中的一个或多个联系人发布的信息。IM系统的指令或代码可以被称为第一方的,并且如上文所提及的,大多数IM系统包括用于传递和显示在场信息的代码。用于传递和显示扩展信息的代码可以是来自第二方或第三方的代码。
在一种示例性方法中,可以通过以可扩展语言(例如,XML)编写的净荷来描述在场扩展。例如,对于GPS在场扩展,它可以包含<presence_extension name=″GPS″gadget=″http://foo.com/gps.gadget″><locationlatitude=″39″longitude=″147″/></presence_extension>。该示例中的扩展在场数据是纬度(latitude)和经度(longitude)信息,并且用户的所有联系人都可以接收它。但是,在计算设备上没有某种自定义代码的情况下,联系人可能仅限于显示该XML,这不会特别增强用户的IM体验。然而,该示例性在场扩展指定允许联系人(例如,预订用户)具有更丰富的用户体验(例如,通过显示更丰富的数据)的小配件。
在前面的示例中,“gps.gadget”指定可以是类似于
操作系统边栏小配件的zip或cab档案的文件。这样的文件可以包含根据预定义格式布局的HTML、CSS以及JavaScript代码。在接收端,联系人的计算设备可以下载该小配件,并将它主存在例如MSHTML、WebKit等等中。然后,联系人的计算设备可以将包含扩展信息(例如,XML中的位置信息)的对象模型注入到该主存环境中。在执行时,HTML可以在用户所在的精确地点利用图钉图形示出例如相关联的用户的位置的VIRTUAL
地图。
如此处所描述的,用户可以生成包括可以用来呈现扩展信息的小配件(例如,代码)的描述的示例性在场扩展;因此,在场扩展变成是“自呈现”的。在消费侧,联系人的计算设备主存指定的小配件(例如,在MSHTML中),并将扩展的在场信息注入到被主存的小配件中,以呈现始发用户的特定的扩展在场信息。在随后的描述中,前面的过程一般被称为例如IM环境中的数据的自描述呈现。
示例性网络环境
图1示出了用于数据的自描述呈现的示例性计算环境100,该计算环境100可以实现此处所描述的技术并可以完全地或部分地表示此处所描述的元素。计算环境100是计算环境的一个示例,并不旨在对所使用的计算机和网络体系结构的使用范围和/或功能提出任何限制。
计算环境100包括多个客户机设备102-1、102-2、102-3、…、102-N(统称为客户机102)。客户机102通过网络104与即时消息收发服务器106通信地相连接。客户机102可以被实现成各种常规计算设备中的任何一种来实现,例如,台式PC、笔记本或便携式计算机、个人数字助理(PDA)、带有适当软件/硬件的蜂窝电话、工作站、移动计算设备或因特网设备等等。
网络104可以是无线或有线网络,或其组合。网络104也可以是彼此互连并作为单个大型网络运转的各单独网络的集合(例如,因特网或内联网)。这样的单独网络的示例包括,但不仅限于,局域网(LAN)、广域网(WAN),以及城域网(MAN)。此外,各单独的网络也可以是无线或有线网络,或其组合。
即时消息收发(IM)服务器106可以是例如通用计算设备、服务器、服务器集群、以及大型机。IM服务器106可以通过网络104从客户机102接收查询。IM服务器106提供用于允许两个或更多客户机102之间的基于本领域已知的各种即时消息收发协议的通信的机制。可以通过基于书写的文本的机制来实现各客户机102之间的通信的交换。
通信交换还可以伴有与用户相关联的附加信息的交换。这样的附加信息或扩展信息可以作为自描述呈现(SDR)数据108来打包。如上文所提及的,这样的数据包括扩展信息以及有关如何呈现该扩展信息的信息。扩展信息可以包括与相互进行通信的客户机102的地理位置有关的信息、与客户机102正在播放的多媒体内容相关的信息、以及可能是客户机102所特有的其他信息。这样的信息可以在诸如即时消息收发(IM)系统中的信使窗口110之类的图形用户界面(GUI)中显示。
可以使用SDR数据108中所包括的呈现信息来在其他客户机102的计算设备上呈现用户的扩展信息。在一个实现中,扩展信息可以在一个或多个客户机102本地或者在IM服务器106处维护,并可以使用可扩展标记语言(XML)来编写和实现。
如此处所描述的,SDR数据108可以被称为数据包。例如,SDR数据108可以是用于基于网络的即时消息收发系统的数据包,其中,该数据包包括与该即时消息收发系统的用户有关的描述性数据(例如,扩展信息)以及指示用于呈现该描述性数据的小配件的网络位置的数据,该位置可由该即时消息收发系统的一个或多个其他用户访问。对于该网络位置,可以使用HTTP、域名、因特网协议(IP)地址或其他技术或惯例来指定这样的位置。一般而言,小配件可经由或作为网络上的资源(例如,IM服务器)来获得的。
在各种示例中,与即时消息收发系统的用户有关的描述性数据包括有关商品的数据。类似地,指示小配件的网络位置的数据可以包括某一商家的域名或因特网协议地址。
示例性时间线112示出了用于在客户机102中的一个或多个处进行数据的自描述呈现的各个步骤。在一个实施例中,被称为IM客户机Z的客户机102-N的用户可能愿意与其他用户共享扩展信息,其他用户比如是客户机102-1(IM客户机A)、客户机102-2(IM客户机B)以及客户机102-3(IM客户机C)。这样的扩展信息的示例包括与正在由IM客户机Z所播放的一个或多个多媒体文件相关的信息,如时间线112中的实例T1所描绘的。涉及IM客户机Z的一般信息,比如可用性或在场状态等等,可以通过其他客户机102(即IM客户机A、B以及C)的信使窗口110来显现给它们。信使窗口110还可以向IM客户机Z指示IM客户机A、B以及C的在场和/或可用性状态。可以理解,只有为IM客户机Z所知的那些客户机的可用性状态才对IM客户机Z可见。这由时间线112上的实例T2来描绘。
为实现数据的自描述呈现,IM客户机Z将扩展信息作为SDR数据108发送到IM客户机A、B,以及C。由IM客户机A、B以及C通过IM服务器106接收与IM客户机Z相关联的SDR数据108。这由时间线112上的实例T3来描绘。如上所示,SDR数据108包括扩展信息和呈现信息。在这种情况下,扩展信息指定与IM客户机Z相关联的信息,而呈现信息包括用于确定在IM客户机A、B以及C处呈现扩展信息的方式的数据。在时间线112上的实例T4处,一个或多个代理可以获取用于根据伴随的呈现信息来呈现扩展信息的指令代码(例如,小配件)。该指令代码可以由IM客户机A、B以及C从诸如磁盘驱动器之类的外部存储介质或从网络(比如通过因特网)来获取。
一旦由IM客户机A、B以及C获取了指令代码,则根据SDR数据108内所包括的呈现信息来呈现与IM客户机Z相关联的扩展信息。进一步结合图2更详细地描述了可以使用扩展信息来进行数据的自描述呈现的方式。
示例性计算设备
图2是用于实现用于数据的自描述呈现的各种技术的示例性计算设备。计算设备可以是包括处理器202、网络接口204、输入/输出接口206以及系统存储器208的客户机102。网络接口204便于通过网络104连接的客户机102之间的通信。此外,网络接口204还可以包括用于将诸如客户机102之类的多个计算设备彼此连接或连接到诸如IM服务器106之类的服务器的一个或多个端口。网络接口204可便于各种各样网络和协议类型内的通信,包括有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝、卫星等)。
输入/输出接口206可以包括允许从客户机102中的一个或多个接收输入的逻辑端口。输入/输出接口206的示例包括,但不限于,扫描仪端口、鼠标端口、键盘端口等等。在本实现中,输入/输出接口206允许在客户机102中的两个或更多之间交换信息,如状态及其他附加信息。
系统存储器208可以是诸如随机存取存储器(RAM)之类的易失性存储器形式的和/或诸如只读存储器(ROM)和/或闪存RAM之类的非易失性存储器形式的任何计算机可读介质。系统存储器208(可互换地称为存储器208)通常包含可由处理器202立即访问的和/或目前正在由处理器202进行操作的数据和/或程序模块。在本实现中,存储器208包括用于实现用于数据的自描述呈现的技术的程序模块210和程序数据212。程序模块210可以包括小配件创建模块214、小配件呈现框架216、小配件218及其他模块220。程序数据212可以存储包括SDR数据108、小配件数据222及其他程序/框架数据224的数据。其他程序/框架数据224可以包括可以作为执行一个或多个程序模块210的结果而生成的数据。
在一个实现中,小配件创建模块214在发布端点(例如,客户机102中的一个或多个)获取小配件数据222。在另一实现中,小配件创建模块214可以被配置成从已经创建并存储了一个或多个小配件的发布端点检索小配件数据222,。SDR数据108包括与客户机102中的一个或多个有关的扩展信息,以及规定执行用户信息的呈现的方式的呈现信息。在本实现中,小配件数据222可以使用超文本标记语言(HTML)、JavaScript(JS)以及级联样式表(CSS)来实现,并可以存储在包括IM服务器106以及客户机102-N的各种源处。
呈现信息还可以指定用于呈现小配件数据222中所包括的用户相关的信息的小配件,例如小配件218。可以从各种源获取小配件218,例如可以从网络位置或从计算机可读介质下载小配件218。在一个实现中,可以在客户机102中的一个或多个处创建小配件218。在这样的实现中,小配件创建模块214可以基于可从愿意与其朋友的列表中所包括的其他客户机102共享其相关信息的客户机102中的一个或多个获得的SDR数据108来创建一个或多个小配件218。
如上所示,将客户机102之一的SDR数据108发送到包括在他/她的朋友或联系人列表中的其他客户机。尽管该示例根据“朋友”或联系人列表发送到客户机,但是可以将这样的信息发送到各种实体中的任何一个(例如,符合某一个或多个准则的每一客户机)。SDR数据108通常包括与客户机102中的一个或多个有关的信息以及用于呈现用户相关信息的呈现信息。返回到该示例,如图1所示,IM客户机Z通过网络104将SDR数据108发送到一个或多个客户机(例如,IM客户机A、B和C)。IM客户机Z处的信使窗口110通常指示IM客户机A、B以及C的在场状态。此外,一个或多个IM客户机A、B以及C接收IM客户机Z的SDR数据108。
小配件创建模块214从自IM客户机Z接收到的SDR数据108中获取小配件数据222。在该示例中,小配件数据222包括IM客户机Z所特有的扩展信息,例如IM客户机Z所播放的多媒体文件、IM客户机Z的地理位置等等。小配件创建模块214还获取SDR数据108内所包括的呈现信息。该呈现信息包括指示一个或多个应用程序(例如,小配件218)的各种属性的相关细节。这样的属性可以包括例如,标识在IM客户机A、B以及C的设备上呈现小配件数据222而需要的小配件218的类型的属性、可以从中获取小配件218的位置等等。基于这些属性,小配件创建模块214可以从外部或者内部可用的存储介质获取小配件218。在一个实现中,小配件创建模块214可以基于与小配件数据222相关联的属性来创建小配件218。
包括与IM客户机Z有关的扩展信息的小配件数据222的呈现可以基于SDR数据108内所包括的呈现信息。小配件218可以基于小配件呈现框架216来呈现小配件数据222。小配件呈现框架216可以包括提供用于执行小配件218的基础结构的一组程序或例程。因此,小配件呈现框架216可以提供用于使用小配件218并根据SDR数据108内所包括的呈现信息来呈现小配件数据222的平台和各种接口。如此处所描述的,与只是一般的计算衬底相反,示例性小配件呈现框架可以提供用于呈现信息的安全表面。一旦执行了小配件数据222的呈现,就可以显示相关的输出。可以通过IM客户机A、B以及C的信使应用程序的用户界面(UI)来向其他用户显示所呈现的扩展信息。
取决于扩展信息的性质,小配件可以生成声音、图形等等。扩展信息常常以图形方式,例如作为GUI,来呈现。GUI还能够组织诸如日历、计算器、股票行情、以及VOIP电话拨号程序之类的个人应用程序。GUI可以将这样的应用程序显示在要由用户访问的“桌面”的侧窗格上。一个或多个其他模块220可以提供使用在场信息和/或扩展信息的指令。
示例性API
图3示出了用于数据的自描述呈现的示例性API模式300。模式300包括允许信使应用程序330和小配件340使得操作系统350执行特定动作的各种示例性API 310。这些API包括认证API 311、消息和文件传送API312、伙伴列表(或联系人)和状态API 313、信使窗口API 314和小配件接口API 315。
图4示出了用于数据的自描述呈现的示例性API 310。API 310向用户提供了用于将扩展信息传递到IM环境中的伙伴或联系人的各种功能。
图5示出了图3的示例性小配件接口API 315。小配件接口API 315指定便于IM环境中的数据的自描述呈现的各种属性、方法和事件。
示例性实现
图6示出了职业设置中的数据的自描述呈现的示例性实现600,该实现600可以用来实现此处所描述的技术并可以完全地或部分地表示此处所描述的元素。计算环境600是计算环境的一个示例,并不旨在对所使用的计算机和网络体系结构的使用范围和/或功能提出任何限制。
计算环境600包括通过网络604彼此通信地连接在一起的多个客户机设备602-1、602-2、602-3、…、602-N(统称为客户机602)。客户机602还可以连接到即时消息收发服务器606。计算环境600和其中的每一个元素都可以如上文参考图1广泛地描述的那样来实现。
在一个实施例中,客户机602可以通过经由安装在每一客户机602上的基于即时消息收发(即,IM)协议的应用程序来交换基于文本的消息以相互进行通信。所交换的消息(接收到的和发送的)可以分别通过每一个客户机602-1,2,…,N上的诸如信使窗口608-1,2…,N之类的图形用户界面来显示。在一个实现中,计算环境600可以是职业设置,用户作为同事、下属、经理、团队/小组领导并且因此作为该职业设置的一部分来与客户机602相关联。
在本实现中,客户机602-1、602-2、602-3以及602-N被分别称为用户Z、A1、A2以及B1。用户Z、A1、A2以及B1中的每一个都能够通过一个或多个基于IM的应用程序相互进行通信。例如,用户Z可以是监督涉及各用户(即,用户A1、A2以及B1)的两个项目(比如A和B)的经理Z。在本示例中,项目A可以涉及用户A1和A2,而项目B涉及用户B1。当参与项目A和B的用户登录并显示为在线时,基于IM的应用程序允许经理Z与他们进行通信。
经理Z可以与在线用户A1、A2以及B1进行通信,也可以查看与该职业设置内的每一个用户的日程表相关的附加信息。这样的附加信息的示例包括,但不限于,已分配给每一个用户的任务的列表、用户完成的任务、参加的会议的细节等等。每一个用户都与SDR数据610相关联。可以使SDR数据610对从事同一项目的其他用户可用,或在某些情况下,可以使SDR数据610对从事不同项目的所有用户可用。
在图6的示例中,可以使与用户A1相关联的SDR数据610对用户A2可用,反之亦然。但是,与用户A1和A2中的任何一个相关联的SDR数据610将不会对用户B1可用。然而,可以使与用户A1、A2以及B1相关联的SDR数据610对经理Z可用。如上所示,SDR数据610包括与用户A1相关联的小配件数据(例如,图2的小配件数据222)以及提供呈现该信息的一个或多个应用程序(例如,图2的小配件218)的细节的呈现信息。
经理Z从用户A1,A2以及B1中的一个或多个接收SDR数据610。一模块(例如,图2的小配件创建模块214)从SDR数据610中获取用户小配件数据。小配件创建模块可以从外部源获取相关小配件,或者可以基于SDR数据610来创建小配件。适当的指定的小配件基于呈现框架(例如,图2的小配件呈现框架216)来呈现小配件数据。小配件呈现框架提供用于使用小配件并根据SDR数据610内所包括的呈现信息来呈现小配件数据的平台和各种接口。
呈现SDR数据610的小配件数据使得相关输出(即,有关用户中的一个或多个的扩展信息)例如分别通过信使窗口608-1和608-3对经理Z和/或成员A2可见(或可听,等等)。这样的模式允许经理Z查看与用户A1相关联的信息,如用户正在处理的任务、已完成的任务的列表等等。这可以允许经理Z控制和调整用户A1、A2以及B1中的任何一个或多个所进展的工作。
图7示出了通过此处所描述的技术的个人设置中的数据的自描述呈现的示例性实现,该实现可以完全地或部分地表示此处所描述的元素。计算环境700是计算环境的一个示例,并不旨在对所使用的计算机和网络体系结构的使用范围和/或功能提出任何限制。
计算环境700包括通过网络704彼此通信地连接在一起的多个客户机设备702-1、702-2、702-3、…、702-N(统称为客户机702)。客户机702还可以连接到即时消息收发服务器706。计算环境700和其中的每一个元素都可以如上文参考图1广泛地描述的那样来实现。
在一个实施例中,客户机702可以通过经由安装在每一客户机702上的基于即时消息收发(即,IM)协议的应用程序来交换基于文本的消息以相互进行通信。所交换的消息可以分别通过每一个客户机702-1,2,…,N上的诸如信使窗口708-1,2…,N之类的图形用户界面来显示。在一个实现中,计算环境700可以是个人设置,与客户机702相关联的用户作为家庭成员、朋友、亲戚等等。
在图7的示例中,客户机702-1、702-2、702-3以及702-N被分别表示为用户D、S1、S2以及B1。用户D、S1、S2以及B1中的每一个都能够通过一个或多个基于IM的应用程序相互进行通信。例如,用户D可以是与他/她的孩子、朋友、亲戚等等(即,用户S1、S2以及B1)进行通信的父亲(母亲)。在本示例中,用户S1和S2可以是该父亲(母亲)的同辈和孩子,用户B1是该父亲(母亲)的熟人。当用户S1、S2以及B1登录并显示为在线时,基于IM的应用程序允许该父亲(母亲)与他们进行通信。
父亲(母亲)可以与用户S1、S2以及B1进行通信,并且还查看他们的个人设置内的与这些用户中的每一个的活动相关的附加信息。这样的附加信息的示例包括,但不限于,这些用户正在播放的多媒体内容的列表、这些用户的地理位置、以及这些用户最近访问的网页的列表等等。这些用户中的每一个都可以与SDR数据710相关联。可以使SDR数据710对属于同一家庭的其他用户可用,或在某些情况下,可以使SDR数据710对他们认识的用户可用。例如,与同辈(即,用户S1和S2)相关联的SDR数据710也可以对彼此可用,但不对用户B1可用。与用户S1和S2相关联的数据可以不对用户B1可用,因为用户B1不知道他们。然而,父亲(母亲)可以知道这些同辈和用户B1,从而允许他们的相应的SDR数据710对该父亲(母亲)可用。
如上所示,SDR数据710包括由小配件(例如,如与用户S1,S2以及B1中的任何一个相关联的)消费的小配件数据(例如,图2的小配件数据222)以及提供能够呈现用户信息的一个或多个小配件(例如,图2的小配件218)的细节的呈现信息。父亲(母亲)从用户S1、S2以及B1中的一个或多个接收SDR数据710。一模块(例如,图2的小配件创建模块214)可以从SDR数据710中提取用户相关信息或扩展信息。在一个实现中,小配件创建模块可以从外部源获取相关小配件,或者可以允许创建小配件(例如,通过用户输入)。小配件例如基于小配件呈现框架(例如,图2的小配件呈现框架216)来呈现小配件数据。
小配件呈现框架提供用于使用小配件并根据SDR数据710内所包括的呈现信息来呈现小配件数据的平台和各种接口。呈现小配件数据使得相关输出(即,与用户中的一个或多个有关的扩展信息)分别通过其信使窗口708-1和708-3对父亲(母亲)和/或用户S2可见(或可听,等等)。这样的模式允许父亲(母亲)查看或收听与用户S1相关联的信息,如该用户正在回放的多媒体内容、该用户的地理位置的描述、以及该用户最近访问的网页的列表。这可以允许父亲(母亲)D通过他们在IM系统上获取的附加信息来监视并了解他/她的孩子的活动以及所在。
图8示出了通过此处所描述的技术的诸如广告之类的数据的自描述呈现的示例性实现,该实现可以完全地或部分地表示此处所描述的元素。如图所示的计算环境800是计算环境的一个示例,并不正在对所使用的计算机和网络体系结构的使用范围和/或功能提出任何限制。
计算环境800包括多个客户机设备802-1、802-2、802-3,…,802-N(统称为客户机802)、网络804、即时消息收发(IM)服务器806以及Web服务器808。客户机802、即时消息收发(IM)服务器806以及Web服务器808通过网络804彼此通信地连接在一起。计算环境800可以如上文参考图1广泛地描述的那样来实现。
Web服务器808可以是例如通用计算设备、服务器、服务器集群、以及大型机。Web服务器808可以被配置成通过网络804从一个或多个客户机802接收诸如基于Web的查询之类的一个或多个查询。Web服务器808和客户机802之间的通信可以基于诸如HTTP之类的已知的基于Web的通信协议中的一个或多个。在一个实现中,Web服务器808可以被配置成管理和共享基于web的应用程序或服务中的一个或多个,如对于客户机802的广告。此外,客户机802可以使用即时消息收发应用程序通过基于文本的消息来相互进行通信。
在一个实施例中,Web服务器808可以是提供货物/商品的在线购买的Web服务器。与这样的web服务器相关联的网站对可以通过访问该网站的一个或多个客户机购买的一个或多个不同的产品做广告。这样的网站提供可以允许客户机创建购物列表的各种功能。客户机可以在购物列表中包括他们希望购买的各种消费品。取决于他们的需求或其他考虑,用户可以选择购买购物列表中所包括的一个或多个产品。在一个实现中,由客户机所创建的购物列表可以存储在Web服务器808中。
如上所示,可以例如通过IM应用程序中的信使窗口810来使与任何用户(如客户机802之一)相关联的附加信息或扩展信息对该客户机所知的其他客户机802可用。在一个实现中,附加信息可以是可由客户机802中的一个或多个所创建的并被存储在Web服务器808上的购物列表。例如,SDR数据812中所包括的附加信息与客户机802-1相关联,并指示可以被包括在客户机802-1的购物列表中的一个或多个产品。客户机802-1还可能愿意与诸如客户机802-2、3,…,N之类的其他客户机802共享他/她的购物列表。
如上所示,SDR数据812包括描述客户机802-1的购物列表的小配件数据,并且还包括用于呈现并显示小配件数据的呈现信息。在一个实现中,Web服务器808可以指示IM服务器806添加购物列表来作为SDR数据812的小配件数据。
可以使与客户机802-1相关联的SDR数据812通过网络804对其他客户机802可用。一模块可以从SDR数据812中提取小配件数据。在一个实现中,小配件创建模块可以基于小配件数据来从外部源获取适当的小配件,或者可以基于SDR数据812来创建一个或多个小配件。小配件可以基于一框架来呈现小配件数据。小配件呈现框架可以提供用于使用小配件并根据SDR数据812内所包括的呈现信息来呈现小配件数据的平台和各种接口。
呈现SDR数据812中的小配件数据允许将与客户机802-1相关联的购物列表通过其他客户机802的相应的信使窗口810来显示给他们。这允许客户机802查看与客户机802-1相关联的购物列表,而无需访问主存在线交易服务的Web服务器808的网站。
在一个实现中,SDR数据812的小配件数据可以包括与由Web服务器808所主存的各种广告(诸如广告814)相关联的信息。小配件数据中所包括的信息可以基于前面所描述的技术来呈现在客户机802的信使窗口810上。
图9示出了通过此处所描述的一种或多种技术的、用户的地理位置的形式的数据的自描述呈现的示例性实现,该实现可以完全地或部分地表示此处所描述的元素。计算环境900是计算环境的一个示例,并不旨在对所使用的计算机和网络体系结构的使用范围和/或功能提出任何限制。
计算环境900包括多个客户机设备902-1、902-2、902-3以及902-4(统称为客户机902)、网络904、IM服务器906以及位置服务器908。客户机902通过网络904通信地连接到IM服务器906。客户机902可以与位置服务器908相连接。计算环境900和其中的每一个元素都可如上文参考图1广泛地描述的那样来实现。IM服务器906主存了允许客户机902使用基于文本的消息相互进行通信的IM应用程序。
当客户机902登录并显示为在线时,它们可以相互进行通信。在一个实现中,客户机902-1、902-2、902-3以及902-4被分别称为Susan、Silvia、Konpal以及Joe。用户Susan、Silvia、Konpal以及Joe中的每一个都可以通过一个或多个基于IM的应用程序相互进行通信,并且还可以查看与这些用户中的每一个相关的附加信息。这样的附加信息或扩展信息的示例包括但不限于地理位置,如指定与相应的客户机902相关联的GSM或GPS或IP属性的坐标,等等。客户机902的在场可以显示在图形界面中,比如IM应用程序中的在场UI 910中。例如,用户Susan的在场UI 910将指示其他用户的在场状态,即Silvia、Konpal示为在线而Joe示为离线。
位置服务器908可以是例如通用计算设备、服务器、服务器集群以及大型机。位置服务器908管理和指示一个或多个客户机902的地理位置和相关细节,以标识相应的客户机902所处的位置并与其他客户机902共享该位置信息。
在图9的示例中,附加信息,例如与用户Silvia 902-2相关联的位置的地理描述,可以作为SDR位置数据912或SDR数据912与其他用户Susan、Konpal和Joe共享。可以理解,可以从其他用户的观点来呈现当前说明。如上所示,SDR数据912包括与用户Silvia 902-2相关联的信息以及用于呈现该相关联的信息的呈现信息。该呈现信息可以提供用于呈现与用户Silvia902-2相关联的小配件数据的一个或多个小配件的细节。在图9的示例中,可从LIVE EARTH服务器908获得的小配件914允许在SDR数据912中呈现该相关联的信息。
为共享附加信息,用户Susan、Konpal以及Joe接收与用户Silvia相关联的SDR数据912。如上所指示,小配件创建模块可以从SDR数据912获取小配件数据。小配件创建模块可以基于小配件数据中所包括的信息来从诸如例如位置服务器908之类的外部源获取相关小配件914,或者可以基于SDR数据912来创建小配件914。小配件914可以使用呈现框架来呈现小配件数据,其中该呈现框架提供用于使用小配件并根据SDR数据912内所包括的呈现信息来呈现小配件数据的平台和各种接口。
呈现小配件数据生成相关输出(即,与用户Silvia相关联的地理位置),该相关输出通过其他用户的相应的小配件用户界面916来显示给这些用户。小配件UI 916可以用各种视觉形式来描绘该在场。例如,位置可以被描绘成描绘了地球上的地理在场的动画地球仪上的或诸如路线图之类的二维表面上的图钉,等等。这可以允许在线用户定位小配件UI 916上显示的他/她的朋友、亲戚、同事及其他熟人。
图10示出了用于数据的自描述呈现的示例性方法1000。在创建框1002中,创建或以其他方式定位小配件。在存储框1004中,存储小配件以供对等网络中的对等伙伴访问。另一个创建框1006创建自描述呈现数据,该数据将所存储的小配件指定为能够呈现与对等网络中的对等伙伴有关的某些数据。发送框1008将SDR数据发送给对等网络中的对等伙伴。
图11示出了用于数据的自描述呈现的示例性方法1100。方法1100在接收自描述呈现数据的接收框1102开始。该数据包括某些描述性信息和与可以呈现该描述性信息的小配件有关的信息。例如,该描述性信息可以描述连接到网络的用户的位置,并且有关小配件的信息可以指示用于访问该小配件的地址或域名,其中该小配件能够呈现该描述性信息。因此,方法1100包括访问框1104,用于按照接收到的SDR数据来访问小配件,以及呈现框1106,用于使用所访问的小配件来在接收到的SDR数据中呈现该描述性信息。
一种示例性方法包括从即时消息收发系统的用户接收数据,解析该数据以标识有关该用户的描述性数据并标识小配件的位置,访问该小配件的位置,以及下载该小配件并且执行该小配件来呈现该描述性数据。这样的方法可以包括执行小配件以可视地呈现描述性数据,和/或执行小配件以可听地呈现描述性数据。有关用户的描述性数据可以包括有关音频文件或视频文件的信息。
图12示出了用于数据的自描述呈现的示例性方法1200。在标识框1202中,IM环境中的用户标识或构建小配件。在生成框1204中,用户生成数据并提供将小配件指定为能够呈现所生成的数据的SDR信息。例如,所生成的数据可以是在用户的计算设备上执行的GPS应用程序所生成的位置数据,或者它可以是在用户的计算设备上执行的因特网电台或视频应用程序所生成的数据。因此,小配件可以是用于呈现这样的信息的专用第三方小配件,或者它可以是GPS应用程序或因特网电台或视频应用程序所提供的第二方小配件。
在调用框1206中,方法1200调用一个或多个API,以将SDR数据集成到IM系统在场(例如,加载或以其他方式使其对IM服务器可用)。一旦集成,在检索框1208中,IM“邻近区域”中的联系人可以从适当的源(例如,IM服务器)检索SDR数据。接着,按照下载框1210,联系人的计算设备解析检索到的SDR数据,以展示用于访问和下载适当的小配件的指令。然后,呈现框1212使用所下载的小配件来呈现数据。这样的呈现可以使数据对IM环境中的联系人可见或可听。
一种示例性方法包括生成与即时消息收发系统的用户有关的描述性数据,标识被配置成呈现所生成的描述性数据的小配件的网络位置,并将该描述性数据和该小配件的网络位置传输到即时消息收发系统的即时消息收发服务器。这样的方法还可以包括访问即时消息收发服务器并下载描述性数据和小配件的网络位置。此外,这样的方法还可以包括从网络位置下载小配件并执行该小配件以呈现描述性信息。在各种方法中,描述性数据可以是扩展即时消息收发系统的用户的在场信息的扩展信息。
如上文所提及的,可以使用API调用来实现数据的自描述呈现的各个方面。例如,一种方法可以包括调用一个或多个API来将描述性数据和小配件的网络位置传输到即时消息收发系统的即时消息收发服务器。
示例性计算设备
图13示出了可以用来实现各种示例性组件和构成示例性系统的示例性计算设备1300。例如,图1的系统的服务器可以包括设备1300的各种特征。在非常基本的配置中,计算设备1300通常包括至少一个处理单元1302和系统存储器1304。取决于计算设备的确切配置和类型,系统存储器1304可以是易失性的(如RAM)、非易失性的(如ROM、闪存等等)或两种类型的某种组合。系统存储器1304通常包括操作系统1305、一个或多个程序模块1306,并可以包括程序数据1307。操作系统1305包括基于组件的框架1320,该框架1320支持组件(包括属性和事件)、对象、继承、多态性、反射,并提供基于面向对象的组件的应用程序编程接口(API),如位于美国华盛顿州雷德蒙市的微软公司制造的.NETTM框架的API。计算设备1300具有由虚线1308划分的非常基本的配置。同样,一终端可具有更少的组件,但将与可具有这一基本配置的计算设备交互。
计算设备1300可具有附加特征或功能。例如,计算设备1300还可包括附加数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘或磁带。在图13中通过可移动存储1309和不可移动存储1310示出了这样的附加存储。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器1304、可移动存储1309和不可移动存储1310都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算设备1300访问的任何其他介质。任何这样的计算机存储介质都可以是设备1300的一部分。计算设备1300也可包括输入设备1312,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备1314,如显示器、扬声器、打印机等等。这些设备在本领域中是已知的,这里就不再对它们进行详细讨论。
计算设备1300还可包含允许该设备诸如通过网络来与其他计算设备1318进行通信的通信连接1316。通信连接1316是通信介质的一个示例。通信介质通常可以具体化为计算机可读指令、数据结构、程序模块或其他数据形式。作为示例而非限制,通信设备介质包括有线介质,如有线网络或直接线连接,以及诸如声学、射频(RF)、红外线及其他无线介质之类的无线介质。
尽管已经用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的本主题不必受公开的这些具体特征或动作的限制。相反,上文所描述的具体特征和动作是作为实现权利要求的示例形式来公开的。