发明内容
有鉴于此,本发明提供一种实现远程协同应用的系统与方法,既能实现针对指定设备又能实现针对用户而非针对指定设备的协同应用。
为实现上述目的,本发明公开了一种实现远程协同应用的方法,包括:
接收协同应用的发起设备通过输入登录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,示出了本发明中一种实现远程协同应用的方法的一个实施例的流程图,本发明所述的方法包括以下步骤:
步骤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 |
登录密码 |
例如,XMPP中保存有3台设备和两个用户的user表如表2所示:
表2
username |
password |
user1 |
User1password |
user2 |
User2password |
device1 |
Device1password |
device2 |
Device2password |
device3 |
Device3password |
其中用户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 |
Grp |
user1 |
device1 |
MyDevices |
通过建立上述数据表,device1在user1对应的XMPP服务器的Roster表中,且属于MyDevices组。即,设备device1在用户user1的名下,user1拥有设备device1。
同时,在device1对应的XMPP服务器的roster表中加入一行数据如表5所示:
表5
username |
jid |
Grp |
device1 |
user1 |
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 |
jid |
Grp |
user1 |
device1 |
MyDevices |
user1 |
device2 |
MyDevices |
通过建立上述数据表,device2在user1对应的XMPP服务器的Roster中,且属于MyDevices组。即,设备device2添加在用户user1名下,用户user1拥有设备device 1及设备device2。
为了使得同一用户所拥有的不同协同应用设备可以相互进行协同应用,需建立协同应用设备device1与协同应用设备device2之间的关联关系,则在device1对应的XMPP服务器的roster表中加入一行数据,如表7所示:
表7
username |
jid |
Grp |
device1 |
user1 |
MyOwners |
device1 |
device2 |
|
通过建立上述数据表,device2也在device1的XMPP Roster中。即,处于同一用户名下的各个协同应用设备自动成为各自的Roster中的一项。
同时,将在device2对应的XMPP服务器的roster表中加入数据,如表8所示:
表8
username |
jid |
Grp |
device2 |
user1 |
MyOwners |
device2 |
device1 |
|
通过建立上述数据表,user1在device2的XMPP Roster中,且属于MyOwners组。即,device2的所有者是user1。同时,device1也在device2的XMPP Roster中。即,处于同一用户名下的各个设备自动成为各自的roster中的一项,建立了协同应用设备device1和device2之间的关联关系。
在实际应用中,用户也需要与其好友用户之间进行非指定设备的协同应用,因此需要建立用户与其好友用户之间的关联关系。如用户user1和用户user2之间建立关联关系,则在用户user1对应的XMPP服务器的roster表中加入一行数据,如表9所示:
表9
通过建立上述数据表,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地址(如:device2serve/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 1server)到设备2上用户XMPP连接的目标用户的FULL JID地址,即用户user1的FULL JID地址(device2serve/resource),对目标设备2进行协同应用。
在现实生活中,经常会出现用户看某个视频过程中,需要暂时离开,并希望以后在其他设备上能继续观看该视频,但用户并不知道下次在哪个设备上观看该视频,或者是某用户试图将某视频推荐给其好友用户时,并不关心其好友用户在何种设备上接收到该推荐信息并进行观看,因此用户就需要进行针对用户而非针对指定设备的非特定设备的协同应用。为了实现指定用户的非指定设备的协同应用,用户可以设定协同应用信令的目标地址为目标用户的ID。
参见图8,为用户对指定用户进行协同应用的一个优选实施例,通过用户连接,将相应的协同应用信令以Message节形式通过用户对应的XMPP服务器发送到目标用户(用户自己或用户关联的好友用户)的不包含资源标识符的Bare JID(userservice)作为目标地址进行发送。
对应的,本发明还公开了一种远程协同应用的系统,参见图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,发送协同应用信令目标地址,进行到指定设备协同应用。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。