一种实现远程协同应用的方法与系统 【技术领域】
本发明涉及远程协同应用领域, 更具体的说是涉及一种实现远程协同应用的方法与系统。 背景技术 随着通信技术的发展, 远程协同应用技术也变得日益重要。协同应用是通过一 系列的协议标准实现各种信息设备、 家用电器、 通讯设备之间进行自动发现、 动态组网、 资 源共享和协同服务。目前较为成熟的协同应用协议包括信息资源共享协同服务 (IGRS, Intelligent Grouping and Resource Sharing)、 通用即插即用技术 (UpnP, Universal and play) 等。但 IGRS, UpnP 都存在局限于局域网应用的问题, 而在远程协同应用目标场景中 除了局域网还包括广域网的应用。 同时在远程协同应用中存在大量的设备接入同一网络服 务平台参与协同应用, 因此, 对快速便捷的定位所需要的使用设备及服务和安全权限管理 等提出更高要求。
现有的远程协同应用中使用了一个可扩展消息在线协议 (XMPP, Extensible Messaging and Presence Protocol) 技术, 为设备之间的互联提供通道。例如, 现有技术 中提出了一种基于 XMPP 协议访问 UPnP 网络的系统与方法, 该系统在本地网络及远程网络 上各有一个协议转换设备, 负责将 UPnP 的各种消息, 包括简单服务发现协议 (SSDP, Simple Service Discovery Protocol) 多播查找消息、 SSDP 响应消息、 UPnP 设备描述文件响应消 息响应消息、 UPnP 服务调用请求消息等封装在 XMPP 的 Message 节中进行传输。在上述方 案中使用了 XMPP 服务器进行消息的中转, 实现了远程设备和本地网络设备的信息交互。
但上述方案缺乏用户的概念, 无法实现进行针对用户而非针对指定设备的协同应 用。例如, 现实生活中经常出现当用户在电视上观看某个视频过程中, 需要暂时离开, 并希 望以后在自己的其他设备继续进行观看的情况。 由于用户不能提前知道下次将在哪个设备 上继续观看视频, 因此他无法选择该协同应用信令的目标设备 ; 又如, 当用户试图推荐某视 频给其好友用户时, 并不关心其好友用户在何种设备上接收到该推荐信息并进行观看, 因 此该用户也无法选择该协同应用信令的目标设备。因此在现有方案中, 上述针对用户的非 指定设备的协同应用难以实施。
发明内容
有鉴于此, 本发明提供一种实现远程协同应用的系统与方法, 既能实现针对指定 设备又能实现针对用户而非针对指定设备的协同应用。
为实现上述目的, 本发明公开了一种实现远程协同应用的方法, 包括 :
接收协同应用的发起设备通过输入登录 ID 发起的登录请求, 为所述发起设备建 立 XMPP 连接, 并查询预先建立的关联关系表, 通过所述 XMPP 连接将与所述登录 ID 具有关 联关系的用户 ID 返回给所述发起设备 ;
当所述发起设备发起协同应用请求时, 通过所述 XMPP 连接接收所述发起设备发送的以某指定用户 ID 作为目标地址的协同应用信令 ;
将所述协同应用信令发送到所述目标地址, 以便将使用所述指定用户 ID 登录的 设备作为协同应用的接收方, 完成协同应用。
优选的, 所述登录 ID 包括所述发起设备的设备 ID, 所述与所述登录 ID 具有关联关 系的用户 ID 包括 : 所述发起设备的拥有者用户的用户 ID ;
和 / 或, 所述登录 ID 包括发起设备的拥有者用户的用户 ID, 所述与所述登录 ID 具 有关联关系的用户 ID 包括 : 所述拥有者用户的好友的用户 ID。
优选的, 本发明的方法还包括 : 通过所述 XMPP 连接将与所述登录 ID 具有关联关系 的设备 ID 返回给所述发起设备 ;
当所述发起设备发起协同应用请求时, 通过所述 XMPP 连接接收所述发起设备发 送的以某指定设备 ID 作为目标地址的协同应用信令 ;
将所述协同应用信令发送到所述目标地址, 以便用户利用所述指定设备 ID 登录 所述指定设备时, 将所述指定设备作为协同应用的接收方, 完成协同应用。
优选的, 本发明的方法还包括 : 建立并保存所述登录 ID 与其他用户 ID, 以及所述 登录 ID 与其他设备 ID 的关联关系表。 优选的, 发送协同应用信令到所述目标地址所属域的 XMPP 服务器, 以便将使用所 述指定用户 ID 登录的设备作为协同应用的接收方, 接收所述目标地址所属域的 XMPP 服务 器发送的所述协同应用信令, 完成协同应用。
为实现上述目的, 本发明还提供了一种实现远程协同应用的系统, 包括 :
用户信息提供单元, 用于接收协同应用的发起设备通过输入登录 ID 发起的登录 请求, 为所述发起设备建立 XMPP 连接, 并查询预先建立的关联关系表, 通过所述 XMPP 连接 将与所述登录 ID 具有关联关系的用户 ID 返回给所述发起设备 ;
第一信令接收单元, 用于当所述发起设备发起协同应用请求时, 通过所述 XMPP 连 接接收所述发起设备发送的以某指定用户 ID 作为目标地址的协同应用信令 ;
第一信令发送单元, 用于将所述协同应用信令发送到所述目标地址, 以便将使用 所述指定用户 ID 登录的设备作为协同应用的接收方, 完成协同应用。
优选的, 所述登录 ID 包括所述发起设备的设备 ID, 所述与所述登录 ID 具有关联关 系的用户 ID 包括 : 所述发起设备的拥有者用户的用户 ID ;
和 / 或, 所述登录 ID 包括发起设备的拥有者用户的用户 ID, 所述与所述登录 ID 具 有关联关系的用户 ID 包括 : 所述拥有者用户的好友的用户 ID。
优选的, 本发明的系统中还包括 : 设备信息提供单元, 用于通过所述 XMPP 连接将 与所述登录 ID 具有关联关系的设备 ID 返回给所述发起设备 ;
第二信令接收单元, 用于当所述发起设备发起协同应用请求时, 通过所述 XMPP 连 接接收所述发起设备发送的以某指定设备 ID 作为目标地址的协同应用信令 ;
第二信令发送单元, 用于将所述协同应用信令发送到所述目标地址, 以便用户利 用所述指定设备 ID 登录所述指定设备, 将所述指定设备作为协同应用的接收方, 完成协同 应用。
优选的, 本发明的系统中还包括 : 关联关系建立单元, 用于建立并保存所述登录 ID 与其他用户 ID, 以及所述登录 ID 与其他设备 ID 的关联关系表。
优选的, 所述第一信令发送单元用于发送协同应用信令到所述目标地址所属域的 XMPP 服务器, 以便将使用所述指定用户 ID 登录的设备作为协同应用的接收方时, 接收所述 目标地址所属域的 XMPP 服务器发送的所述协同应用信令, 完成协同应用
经由上述的技术方案可知, 与现有技术相比, 本发明公开提供了一种实现远程协 同应用的方法和系统, 在远程协同应用的设备终端进行标识, 发起设备通过使用设备 ID 和 / 或发起设备拥有者的用户 ID 进行登录, 发起设备对应的 XMPP 服务器根据发起设备输入的 登录 ID 为发起设备建立相应的 XMPP 连接, 查询预先建立的关联关系表, 通过所述 XMPP 连 接将与所述登录 ID 具有关联关系的用户 ID 返回给所述发起设备, 服务器可以根据发起设 备指定的用户 ID, 将协同应用信令发送到目标地址, 实现对指定用户的协同应用。 也可以根 据发起设备指定的设备 ID, 发送协同应用信令到指定的设备, 实现对指定设备的协同应用。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据 提供的附图获得其他的附图。
图 1 是本发明一种实现远程协同应用的方法的一个实施例的流程图 ;
图 2 是本发明中以指定设备 ID 作为目标地址进行协同应用的流程图 ;
图 3 是本发明中用户与用户名下新加入的协同应用设备, 新加入的协同应用设备 与用户名下已有的协同应用设备之间建立关联关系的流程图 ;
图 4 是本发明中通过用户输入用户 I D 及相应登录密码进行 XMPP 连接的示意图 ;
图 5 是本发明中协同应用设备从其对应的 XMPP 服务器获取用户 I D 及相应登录 密码进行 XMPP 连接的示意图 ;
图 6 是本发明中对指定设备进行协同应用时, 通过设备连接进行的协同应用的示 意图 ;
图 7 是本发明中对指定设备进行协同应用时, 通过用户连接进行的协同应用的示 意图 ;
图 8 是本发明中针对非指定设备进行协同应用时, 通过用户连接进行的协同应用 的示意图 ;
图 9 是本发明一种实现协同应用的系统的一个实施例的系统框图。 具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。
参见图 1, 示出了本发明中一种实现远程协同应用的方法的一个实施例的流程图, 本发明所述的方法包括以下步骤 :
步骤 S101 : 接收协同应用的发起设备通过输入登录 ID 发起的登录请求, 为所述发起设备建立 XMPP 连接, 并查询预先建立的关联关系表, 通过所述 XMPP 连接将与所述登录 ID 具有关联关系的用户 ID 返回给所述发起设备 ;
步骤 S102 : 当所述发起设备发起协同应用请求时, 通过所述 XMPP 连接接收所述发 起设备发送的以某指定用户 ID 作为目标地址的协同应用信令 ;
步骤 S103 : 将所述协同应用信令发送到所述目标地址, 以便将使用所述指定用户 ID 登录的设备作为协同应用的接收方, 接收所述协同应用信令, 完成协同应用。
本实施例中的登录 ID 可以为发起设备的设备 ID, 此时, 与登录 ID 具有关联关系 的用户 ID 为 : 所述发起设备的拥有者用户的用户 ID ; 登录 ID 也可以是发起设备的拥有者 用户的用户 ID, 此时, 与登录 ID 具有关联关系的用户 ID 为 : 所述拥有者用户的好友的用户 ID。登录 ID 也可以是上述设备 ID 和设备拥有者的用户 ID。
进一步的, 发起设备可以使用登录 ID 及相应的登录密码进行登录。
优选地, 本发明可以接收发起设备输入设备 ID 进行登录的请求, 为发起设备建立 第一 XMPP 连接, 并接收发起设备输入发起设备拥有者用户的用户 ID 登录的请求, 为发起设 备建立第二 XMPP 连接。发起设备可以根据用户需要选择使用第一 XMPP 连接或第二 XMPP 连接, 发送包含目标地址的协同应用信令到发起设备的 XMPP 服务器, 所述 XMPP 服务器将协 同应用信令发送到目标地址。其中, 发起设备使用设备 ID 的登录和使用发起设备的拥有者 用户 ID 的先后顺序可以互换。 其中, 步骤 S102 中指定用户 ID 为在与所述登录 ID 具有关联关系的用户 ID 中指定 的, 同时本实施例中的发起设备也可以发送以指定设备 ID 作为目标地址的协同应用信令, 对指定设备进行协同应用, 指定设备 ID 为在与所述登录 ID 具有关联关系的设备 ID 中指定 的。
参见图 2, 为本发明中以指定设备 ID 作为目标地址进行协同应用的流程图, 该过 程包括 :
步骤 S201 : 接收协同应用的发起设备通过输入登录 ID 发起的登录请求, 为所述发 起设备建立 XMPP 连接, 并查询预先建立的关联关系表, 通过所述 XMPP 连接将与所述登录 ID 具有关联关系的设备 ID 返回给所述发起设备 ;
步骤 S202 : 当所述发起设备发起协同应用请求时, 通过所述 XMPP 连接接收所述发 起设备发送的以某指定设备 ID 作为目标地址的协同应用信令, 所述指定设备 ID 为在与所 述登录 ID 具有关联关系的设备 ID 中指定的 ;
步骤 S203 : 将所述协同应用信令发送到所述目标地址, 以便用户利用所述指定设 备 ID 登录所述指定设备, 将所述指定设备作为协同应用的接收方, 完成协同应用。
本发明中将协同应用信令发送到目标地址 ( 目标地址为指定用户 ID) 时, 当使用 指定用户 ID 登录的设备和发起设备对应同一个 XMPP 服务器时, 使用指定用户 ID 登录的设 备作为接收设备, 发起设备的服务器会为该接收设备建立 XMPP 连接, 通过建立的 XMPP 连 接, 接收设备便能接收到发起设备发送的协同应用信令 ; 当使用指定用户 ID 登录的设备和 发起设备对应不同的 XMPP 服务器时, 步骤为 : 发送协同应用信令到所述目标地址所属域的 XMPP 服务器, 以便将使用所述指定用户 ID 登录的设备作为协同应用的接收方, 接收所述目 标地址所属域的 XMPP 服务器发送的所述协同应用信令, 完成协同应用。
同理, 当目标地址为指定设备 ID 时, 指定设备和发起设备对应不同 XMPP 服务器
时, 还包括步骤 : 发送协同应用信令到所述目标地址所属域的 XMPP 服务器, 以便将使用所 述指定设备 ID 登录的设备作为协同应用的接收方, 接收所述目标地址所属域的 XMPP 服务 器发送的所述协同应用信令, 完成协同应用。
在本发明的方法中, 在还包括 : XMPP 服务器中保存协同应用设备的设备 ID 及相应 密码, 以及 XMPP 服务器对应的用户的用户 ID 及用户登录密码, 所述设备 ID 和用户 ID 为符 合 XMPP 规范的 JID 标识 ;
优选地, 所述协同应用设备的设备 ID 及相应的登录密码为设备厂商事先分配并 固化在协同应用设备中。
XMPP 服务器中保存协同应用设备的设备 ID 及相应密码, 以及用户 ID 及用户登 录密码可以有不同的方式, 以下是本发明提供的一个优选实施例, XMPP 服务器以用户表 (user 表 ) 的形式对上述设备 ID 及设备登录密码、 用户 ID 及用户登录密码进行保存, 所述 user 表中包括有用户或设备名的 username 字段名和包含登录密码的 password 字段名。 user 表的结构如表 1 所示 :
表1
字段名 uername password
username user1 user2 device1 device2 device3
password User1password User2password Device1password Device2password Device3password 描述 用户名或设备名 登录密码例如, XMPP 中保存有 3 台设备和两个用户的 user 表如表 2 所示 : 表2其中用户 user 1 用户 user1 的登录密码是 User1password ; 用户 user2 的登录密 码是 User2password ; 设备 device1 的登录密码是 Device1password ; 用户 device2 的登录 密码是 Device3password ; 用户 device3 的登录密码是 Device3password。
本发明在发起设备登录之前还包括, 在 XMPP 服务器中建立发起设备拥有者用户 ID 与设备 ID( 包括发起设备和进行接收的设备 ) 之间、 发起设备 ID 和其他设备 ID 之间以 及发起设备拥有者用户 ID 与其他用户 ID 之间的关联关系表, 保存建立的关联关系表。建立所述关联关系表的方式可以多种多样, 本发明的一种优选实施例, 在 XMPP 服务器中采用 数据库表 (roster 表 ) 对所述关联关系进行保存与维护, roster 表的结构如表 3 所示 :
表3
字段名 uername jid Grp
描述 用户名或设备名 好友 组名在 所 述 roster 表 中, username 字 段 为 用 户 ID 或 设 备 ID 信 息 ; jid 字 段 为 与 username 字段中的用户或设备建立关联关系的用户或设备信息 ; Grp 字段中通过预先定义 组名, 区分 username 字段中用户所关联的设备及其他用户, 或 username 字段中设备所关联 的用户及其他设备。
例如, 当 username 字段为一个用户 ID 时, jid 字段代表了该用户所关联的设备 ID, 或用户所关联的好友用户信息, Grp 字段通过预先定义的组名, 区分该用户所关联的设 备及好友用户, 如 Grp 字段被设置为 MyDevices 时, 代表 jid 字段为该用户所拥有的设备 ID ; 当 username 字段为一个设备 ID 时, jid 字段代表了该设备所关联的用户 ID, 或该设备 所关联的其他设备, Grp 字段中, 可以通过预先定义的组名, 来区分该设备所关联的设备及 好友, 如, 当 Grp 字段被设置为 MyOwners 时, 代表 jid 字段为该设备所对应的用户。
以用户 user1 与协同应用设备 device1 建立关联关系为例, 当 user1 与 device1 建 立关联关系时, 将在 user1 对应的 XMPP 服务器的 roster 表中加入一行数据, 如表 4 所示 :
表4
username jid user1
device1 Grp MyDevices通过建立上述数据表, device1 在 user1 对应的 XMPP 服务器的 Roster 表中, 且属 于 MyDevices 组。即, 设备 device1 在用户 user1 的名下, user1 拥有设备 device1。
同时, 在 device1 对应的 XMPP 服务器的 roster 表中加入一行数据如表 5 所示 :
表5
username device1
jid user1 Grp MyOwners通过建立上述数据表, user1 在 device1 对应的 XMPP 服务器的 Roster 表中, 且属 于 MyOwners 组。即, device1 的所有者是 user1。其中 MyDevices 和 MyOwners 是 XMPP 服 务器进行的分组, 并由 XMPP 服务器进行维护。通过上述在 user1 和 device1 对应的 XMPP 服务器中建立的 roster 表, 从而建立 起用户 user1 和协同应用设备 device1 之间的关联关系。
参见图 3, 为本发明在用户名下新加入一台协同应用设备后, XMPP 服务器对用户 和新加入的协同应用设备, 以及新加入的协同应用设备和用户已有的协同应用设备之间建 立关联的过程。如用户 A 名下添加协同应用设备 B, 该过程包括如下步骤 :
步 骤 S301 : 在 用 户 A 的 用 户 ID 对 应 的 XMPP 服 务 器 中 roster 表 中 加 入 一 列 username 为用户 A, jid 为设备 B, Grp 为 MyDevices ;
步骤 S302 : 在协同应用设备 B 的设备 ID 对应的 XMPP 服务器中的 roster 表中加 入一列 username 为设备 B, jid 为用户 A, Grp 为 MyOwners ;
步骤 S303 : 在用户 ID 对应的 XMPP 服务器的 roster 表, 所有用户拥有的设备 (username 为用户 A, Grp 为 MyDevices 的 jid, 记为设备 C) 对应的 XMPP 服务器中的 roster 表中加入一列为 username 为设备 C, jid 为设备 B。
通过步骤 S301 和 S302 建立起用户 A 和设备 B 之间的关联关系, 而步骤 S303 则建 立起同一用户的不同协同应用设备之间的关联关系。
下面以上述已建立好 user1 与 device1 的关联关系, 当用户需要与另一台协同应 用设备 device2 建立关联关系为例进行详细介绍。将 device2 添加到 user1 名下时, 同上 述 user1 与 device1 建立关联关系的步骤, 将在 user1 对应的 XMPP 服务器的 roster 表中 新添加一行数据, 如表 6 所示 : 表 6
username user1 user1
jid device1 device2 Grp MyDevices MyDevices通过建立上述数据表, device2 在 user1 对应的 XMPP 服务器的 Roster 中, 且属于 MyDevices 组。即, 设备 device2 添加在用户 user1 名下, 用户 user1 拥有设备 device 1 及 设备 device2。
为了使得同一用户所拥有的不同协同应用设备可以相互进行协同应用, 需建立协 同应用设备 device1 与协同应用设备 device2 之间的关联关系, 则在 device1 对应的 XMPP 服务器的 roster 表中加入一行数据, 如表 7 所示 :
表7
username device1 device1
jid user1 device2 Grp MyOwners通过建立上述数据表, device2 也在 device1 的 XMPP Roster 中。即, 处于同一用 户名下的各个协同应用设备自动成为各自的 Roster 中的一项。同时, 将在 device2 对应的 XMPP 服务器的 roster 表中加入数据, 如表 8 所示 : 表8jid user1 device1 Grp MyOwners通过建立上述数据表, user1 在 device2 的 XMPP Roster 中, 且属于 MyOwners 组。 即, device2 的所有者是 user1。同时, device1 也在 device2 的 XMPP Roster 中。即, 处于 同一用户名下的各个设备自动成为各自的 roster 中的一项, 建立了协同应用设备 device1 和 device2 之间的关联关系。
在实际应用中, 用户也需要与其好友用户之间进行非指定设备的协同应用, 因此 需要建立用户与其好友用户之间的关联关系。如用户 user1 和用户 user2 之间建立关联关 系, 则在用户 user1 对应的 XMPP 服务器的 roster 表中加入一行数据, 如表 9 所示 :
表9
username user1
jid user2 Grp通过建立上述数据表, user2 在 user1 的 XMPP 服务器的 roster 表中, 同样在用 user2 所对应的 XMPP 服务器的 roster 表中也加入相应的数据, 即, user1 与 user2 为好友 关系, 建立了相应的关联关系。
用户与协同应用设备、 协同应用设备之间以及用户与其好友用户之间的关联关系 的建立, 使得协同应用设备之间存在着固定的关联关系, 引入了用户的概念, 使用户与其协 同应用设备之间, 用户与其好友用户之间有着固定关联关系, 能方便的发现远程协同应用 中的协同应用设备或用户, 同时为在远程协同应用中针对指定设备, 以及针对用户的非指 定设备的协同应用的实现提供了必要的条件。
在发起设备使用其拥有者用户 ID 及相应密码进行登录时, 用户 ID 及登录密码的 获取方式有多种。
参见图 4, 在使用发起设备使用设备 ID 以相应密码进行登录完成的一个 XMPP 连接 时, 所述设备通过用户输入获取用户 ID 及相应密码向 XMPP 服务器发出第二 XMPP 连接请求 为例, 所述服务器为设备建立了第一 XMPP 连接后, 所述设备出现相应用户登录界面, 用户 可以输入自己的用户 ID 及相应用户登录密码向服务器发出第二 XMPP 连接请求。这种通过 用户输入获取用户 ID 及相应密码的方式适合于设备具有用户界面 (UI, User Interface), 而且可以由人操作的场合, 如在个人电脑或手机上, 用户启动协同应用软件后, 可以输入用 户名及相应密码, 以提供所述第二 XMPP 连接请求中所使用的用户 ID 及相应登录密码。
参见图 5, 发起设备可以从其对应的 XMPP 服务器中自动获取 XMPP 连接中所用用户
ID 及用户登录密码, 这种方式适用于在 XMPP 服务器中做好了发起设备拥有者用户和所述 发起设备之间的绑定关系, 例如在用户购买机顶盒时将该设备与用户对应的业务帐号做好 绑定。这样发起设备可以先使用设备 ID 进行登录, 在发起设备对应的 XMPP 服务器为其建 立第一 XMPP 连接后, 发起设备向所对应的 XMPP 服务器发出获取拥有者用户 ID 及相应的用 户登录密码的请求, 所述 XMPP 服务器将所述用户 ID 及相应密码发送给所述发起设备, 所述 发起设备利用从 XMPP 服务器中获得的用户 ID 及相应登录密码进行登录后, 所述服务器为 其建立第二 XMPP 连接请求。这种获取用户 ID 及相应密码的方法不需要用户在设备 UI 上 进行输入, 很适合设备不具备 UI 输入不便的情况。
当用户需要对自己指定的设备进行协同应用时, 可以有不同的连接方式与指定设 备建立连接。以下是本发明给出的进行指定设备的协同应用的几个优选实施例。
通过设备连接与指定设备进行协同应用, 发起设备使用设备 ID 进行登录, 并通过 XMPP 服务器为其建立的 XMPP 连接获取到与发起设备具有关联关系的关联设备信息, 所述 发起设备得到指定的关联设备 ( 目标设备 ) 的信息, 发送 XMPP 中的 IQ 节或者 Message 节, 到目标设备的包含有域标识符, 结点标识符, 资源标识符的 JID(FULL JID) 地址, 对目标设 备进行协同应用。 参见图 6, 采用设备连接对指定设备进行协同应用, 协同应用的设备 1device1 和 设备 2device2 属于同一个用户 user1, 在对应的 XMPP 服务器中建立了设备 1 和设备 2 之间 的关联关系, 以设备 1 为发起设备为例, 设备 1 通过设备 ID 进行登录, 并由 XMPP 服务器为 设备 1 建立了 XMPP 连接, 设备 1 通过服务器建立的 XMPP 连接获得设备 2 的信息及设备 2 的在线状况, 设备 1 通过其对应的 XMPP 服务器发送 IQ 节或 Message 节到目标设备即设备 2 的 FULL JID 地址 ( 如 : device2@serve/resource), 设备 2 使用设备 ID 登录后, XMPP 服务 器为设备 2 建立 XMPP 连接, 服务器通过建立的 XMPP 连接将设备 1 发送的 IQ 节或 Message 节发给设备 2, 设备 2 接收到信令后进行相应处理, 完成协同应用。
设备 1 会根据设备 2 的在线状况选择发送 IQ 节或 Message, 其中, IQ 节通常用于 对目标设备进行实时协同应用。 在此场景中, 如果目标设备不在线, 服务器将返回相应的错 误信息。Message 节通常用于对目标设备进行 “非在线 / 非实时” 应用的场合。在此场景 中, 如果目标不在线, 服务器将离线存储该 Message 节。 目标设备上线后, 将收到该 Message 节。例如, 当设备 1 通过使用其对应的设备 ID 进行登录与服务器建立 XMPP 连接, 并通过建 立的 XMPP 连接得到设备 2 目前在线, 则设备 1 发送 IQ 节到设备 2 进行协同应用。
进一步的, 可以使用用户连接与指定设备进行协同应用, 通过在发起设备上使用 发起设备拥有者的用户 ID 进行登录, 并通过 XMPP 服务器为所述发起设备建立的 XMPP 连 接获取到与所述用户具有关联关系的关联用户和关联设备信息, 发送 XMPP 中的 IQ 节或者 Message 节, 到目标设备上的用户 XMPP 连接的目标用户的 Full JID 地址, 对目标设备进行 协同。
参见图 7, 设备 1(device1) 和设备 2(device2) 同属于一个用户 user1, 设备 1 和 设备 1 之间在 XMPP 服务器中建立了关联关系, 设备 1 使用用户 ID 进行登录与服务器之间 建立 XMPP 连接, 获取到与用户 user1 具有关联关系的关联用户和关联设备信息, 设备 1 通 过其对应的 XMPP 服务器发送 IQ 节或 Message 节 ( 此处 IQ 节或 Message 节来自 user 1@ server) 到设备 2 上用户 XMPP 连接的目标用户的 FULL JID 地址, 即用户 user1 的 FULL JID
地址 (device2@serve/resource), 对目标设备 2 进行协同应用。
在现实生活中, 经常会出现用户看某个视频过程中, 需要暂时离开, 并希望以后在 其他设备上能继续观看该视频, 但用户并不知道下次在哪个设备上观看该视频, 或者是某 用户试图将某视频推荐给其好友用户时, 并不关心其好友用户在何种设备上接收到该推荐 信息并进行观看, 因此用户就需要进行针对用户而非针对指定设备的非特定设备的协同应 用。为了实现指定用户的非指定设备的协同应用, 用户可以设定协同应用信令的目标地址 为目标用户的 ID。
参见图 8, 为用户对指定用户进行协同应用的一个优选实施例, 通过用户连接, 将 相应的协同应用信令以 Message 节形式通过用户对应的 XMPP 服务器发送到目标用户 ( 用 户自己或用户关联的好友用户 ) 的不包含资源标识符的 Bare JID(user@service) 作为目 标地址进行发送。
对应的, 本发明还公开了一种远程协同应用的系统, 参见图 9, 本发明所提供的系 统中包括用户信息提取单元 901、 第一信令接收单元 902、 第一信令发送单元 903, 所述用户 信息提取单元 901 用于接收协同应用发起设备通过输入登录 ID 发起的登录请求, 为所述发 起设备建立 XMPP 连接, 并查询预先建立的关联关系表, 通过所述 XMPP 连接将于所述登录 ID 具有关联关系的用户 ID 返回给所述发起设备 ; 所述第一信令接收单元 902, 用于当所述发起设备发起协同应用请求时, 通过所述 XMPP 连接接收所述发起设备发送的以某指定用户 ID 作为目标地址的协同应用信令 ;
所述第一信令发送单元 903, 用于将所述协同应用信令发送到所述目标地址, 以便 将使用所述指定用户 ID 登录的设备作为协同应用的接收方, 完成协同应用。
本系统中的登录 ID 可以为发起设备的设备 ID, 此时, 与登录 ID 具有关联关系的用 户 ID 为 : 所述发起设备的拥有者用户的用户 ID ; 登录 ID 也可以是发起设备的拥有者用户 的用户 ID, 此时, 与登录 ID 具有关联关系的用户 ID 为 : 所述拥有者用户的好友的用户 ID。 登录 ID 也可以同时包括上述设备 ID 和设备拥有者的用户 ID。
为实现针对指定设备的协同应用, 本系统还包括 : 设备信息提取单元 904、 第二信 令接收单元 905 和第二信令发送单元 906, 所述设备信息提供单元 904 用于通过所述 XMPP 连接将与所述登录 ID 具有关联关系的设备 ID 返回给所述发起设备 ;
所述第二信令接收单元 905, 用于当所述发起设备发起协同应用请求时, 通过所述 XMPP 连接接收所述发起设备发送的以某指定设备 ID 作为目标地址的协同应用信令 ;
所述第二信令发送单元 906, 用于将所述协同应用信令发送到所述目标地址, 以便 用户利用所述指定设备 ID 登录所述指定设备, 将所述指定设备作为协同应用的接收方, 完 成协同应用。
为了能提供登录 ID 具有的关联关系, 进一步本发明的系统中还包括 : 关联关系建 立单元 907, 用于建立并保存登录 ID 与其他用户, 以及登录 ID 与其他设备的关联关系。
由于本发明的系统与方法是对应的, 其与实施例公开的方法相对应, 所以描述的 比较简单, 相关之处参见方法部分说明即可。
本发明通过为远程协同应用的设备终端进行标识, 在服务器系统中建立并保存用 户与用户之间、 用户与其拥有的设备之间以及设备与设备之间的关联关系表, 当发起设备 通过使用发起设备 ID 和 / 或发起设备拥有者的用户 ID 进行登录时, 发起设备的 XMPP 服务
器根据发起设备输入的登录 ID 为发起设备建立相应的 XMPP 连接, 查询预先建立的关联关 系表, 通过所述 XMPP 连接将与所述登录 ID 具有关联关系的用户 ID 返回给所述发起设备, 服务器可以根据发起设备指定的用户 ID, 将协同应用信令发送到目标地址进行指定用户的 协同应用。 也可以根据发起设备指定的设备 ID, 发送协同应用信令目标地址, 进行到指定设 备协同应用。
本说明书中各个实施例采用递进的方式描述, 每个实施例重点说明的都是与其他 实施例的不同之处, 各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明, 使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的, 本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。 因此, 本发明 将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。