用于进行项目共享的即时通信客户机和方法

文档序号:6641725阅读:213来源:国知局
专利名称:用于进行项目共享的即时通信客户机和方法
技术领域
本发明一般地涉及网络通信技术,更具体地说,本发明涉及在使用即时通信(Instant MessagingIM)软件的客户机之间进行文件/文件夹共享的解决方案。
背景技术
众所周知,在20世纪50、60年代网络的发展初期,其只为某些专业技术人士所掌握,并主要服务于政治、军事等目的。但是仅经过短短半个世纪,伴随着计算机技术的快速发展、个人计算机的出现、TCP/IP协议的提出和流行以及Internet的诞生,网络技术飞速演进,并且在20世纪90年代开始用于商业用途。Internet的商业化成为其发展的一剂催化剂,使得它以空前的速度迅速发展,并渗入到了政府、医疗、教育等各个社会部门,成为人们日常生活中不可或缺的一个重要组成部分。
与网络的日新月异的发展趋势相适应的是,网络的功能也随着消费需求的提高而逐渐扩展,网络功能呈现多元化特点。在纷繁复杂的多种功能之中,即时通信是其中十分重要的一个方面。
即时通信自1996年面世以来,只经历短暂的市场认知周期便被广大使用者所青睐。即时通信开始于ICQ软件,其最大的特点就是能够通过网络进行实时通信。即时通信作为使用频率最高的网络软件,已经突破了作为技术工具的极限,被认为是现代交流方式的象征,并构建起一种新的社会关系。它是迄今为止对人类社会生活改变最为深刻的一种网络新形态。各种即时通信软件也层出不穷,例如QQ、MSN、Yahoo Messenger、AOL Instant Messenger等。随着应用的发展,今天的即时通信产品已经形成一种综合的网络通信工具。
即时通信很类似于电话服务,只不过电话是以人的声音来沟通,而即时通信则主要是透过文字来沟通。但是,随着用户使用需求的不断变化,即时通信提供的服务越来越周全,应用的范围越来越广阔,用户已经不能满足只通过即时通信软件来进行文字沟通,还希望通过它来进行文件共享。
然而,对于目前的即时通信软件而言,进行文件共享不是件容易的事。以下通过两个例子来进行说明。
例一假定用户A拥有大量的音乐文件,并且希望和用户B共享,但是用户B只需要用户A的一部分音乐,而不是所有音乐。
在这种情况下,目前即时通信软件的一般做法是,用户A和用户B聊天,并将自己拥有的音乐文件告知用户B。用户B查看这些文件并告诉用户A哪些是自己需要的。然后用户A将用户B需要的音乐文件发送给用户B,来达到“共享”目的。
这种共享可以通过如下几种方式实现1)“发送文件”功能大多数的即时通信软件都支持这一功能;2)“共享文件”功能少数即时通信软件(例如,AIM)支持这一功能,但只能共享指定的文件夹;3)通过电子邮件附件的形式;以及4)如果是在LAN中,还可以使用Windows的文件共享功能。
例二假定用户A拥有大量的音乐文件,并且希望将其中的一些与用户B共享,而将另外一些与用户C共享,但是用户B和C处于用户A的联系人列表(或伙伴列表)的不同组中。
如果使用支持“共享文件”功能的即时通信软件(例如,AIM),用户需要首先指定一个文件夹来与其他用户进行共享,并将其希望与用户B共享的文件复制到该文件夹中。之后,用户A将用户B所在的组的权限设定为可以访问该共享的文件夹,以便用户B能够访问该共享的文件夹并获得文件。在用户B获得了需要的文件后,用户A从该共享的文件夹删除所有文件,再将其希望与用户C共享的文件复制到该文件夹中,并将用户C所在的组的权限设定为可以访问该共享的文件夹,以便用户C能够访问该共享的文件夹并获得文件。
可以看出,无论对于以上例一还是例二的情形,都不能在即时通信软件用户之间实现自动、灵活的文件共享,都需要较多的人工操作和干预。
在2004年10月日授予I.Rosenblatt等人的题为“Techniques forfacilitating item sharing”的美国专利US2004/0199514A1中,描述了通过即时通信软件进行文件共享的技术方案。以上例一中第2)项的“共享文件”功能以及例二的情形类似于该专利所提出的方案。在该专利中,使用一个共享窗口来维护一个共享文件/文件夹的列表,用户可以将希望与他人共享的文件或文件夹添加到共享窗口中,其他用户能且仅能访问该共享窗口中列出的文件和文件夹。
另外,在2004年4月8日授予A.Amir等人的题为“Peer-to-peerfile sharing”的美国专利US2004068524中公开了在多个用户之间建立一个共享的文件夹,在所有这些用户之间共享这个文件夹中的内容。共享的文件夹中的文件可能存在于不同的用户的计算机上。但是,在该专利中,并未特别涉及在即时通信软件中进行文件共享,而且其需要创建一个虚拟文件来实现所述共享。
由此可见,需要一种能够便于在使用即时通信软件的用户之间进行文件/文件夹共享的解决方案。

发明内容
考虑到上述问题,提出了本发明的用于进行项目共享的即时通信客户机、服务器、系统和方法。通过使用本发明,一方面,使得拥有项目的用户能够容易地与其他用户进行共享;另一方面,希望共享他人项目的用户也能够容易地查看和/或获取他人共享出的那些项目。这里,所说的“项目”可以是“文件和/或文件夹”。
根据本发明的第一方面,提供一个第一即时通信客户机,用于向一个或多个第二即时通信客户机共享出项目,所述一个或多个第二即时通信客户机是所述第一即时通信客户机的联系人/联系人组,所述第一即时通信客户机包括联系人存储装置,用于存储各联系人/联系人组的信息;项目存储装置,用于至少存储将与所述各联系人/联系人组共享的项目;选择装置,用于分别从联系人存储装置和项目存储装置中选择要与之进行共享的联系人/联系人组和要与之共享的项目;访问控制列表生成装置,用于响应于选择装置的选择,生成访问控制列表,所述访问控制列表相关联地存储要与之进行共享的联系人/联系人组和要与之共享的项目的标识信息。
根据本发明的第二方面,提供一种用于一个第一即时通信客户机的方法,用于向一个或多个第二即时通信客户机共享出项目,所述一个或多个第二即时通信客户机是所述第一即时通信客户机的联系人/联系人组,所述方法包括选择要与之进行共享的特定联系人/联系人组;选择要与所述特定联系人/联系人组共享的项目;响应于上述两个选择步骤,生成一个访问控制列表,所述访问控制列表相关联地存储要与之进行共享的联系人/联系人组和要与之共享的项目的标识信息。
根据本发明的三方面,提供一个第一即时通信客户机,用于从一个第二即时通信客户机获取在该第二即时通信客户机上的共享项目信息,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括请求生成装置,用于响应第一即时通信客户机的请求操作,生成一个获取共享项目信息的请求,所述请求中包括所述第二即时通信客户机的标识信息和共享项目的指定信息;发送装置,用于将所述请求发送给所述即时通信服务器,以便转发到所述第二即时通信客户机;
接收装置,用于从即时通信服务器接收来自所述第二即时通信客户机的对所述请求的响应。
根据本发明第四方面,提供一种用于一个第一即时通信客户机的方法,用于从一第二即时通信客户机获取在该第二即时通信客户机上的共享项目信息,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括响应第一即时通信客户机的请求操作,生成一个获取共享项目信息的请求,所述请求中包括所述第二即时通信客户机的标识信息和共享项目的指定信息;将所述请求发送给即时通信服务器,以便转发到所述第二即时通信客户机;从即时通信服务器接收来自所述第二即时通信客户机的对所述请求的响应。
根据本发明的第五方面,提供一个第一即时通信客户机,用于响应来自一个第二即时通信客户机的获取共享项目信息的请求,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括接收装置,用于从即时通信服务器接收来自所述第二即时通信客户机的所述请求,所述请求包括所述第一、第二即时通信客户机的标识信息、以及共享项目的指定信息;管理装置,用于通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;发送装置,用于根据请求是否是被授权的,将对请求的响应发送给所述即时通信服务器,以便返回给所述第二即时通信客户机。
根据本发明的第六方面,提供一种用于一个第一即时通信客户机的方法,用于响应来自一个第二即时通信客户机的获取共享项目信息的请求,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括
从即时通信服务器接收来自所述第二即时通信客户机的所述请求,所述请求包括所述第一、第二即时通信客户机的标识信息、以及共享项目的指定信息;通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;根据请求是否是被授权的,将对请求的响应发送给所述即时通信服务器,以便返回给所述第二即时通信客户机。
根据本发明的第七方面,提供一个即时通信服务器,其与多个即时通信客户机相连,所述多个即时通信客户机中的一个第一即时通信客户机共享出项目,一个第二即时通信客户机请求从所述第一即时通信客户机获取共享项目信息,所述即时通信服务器包括第一接收装置,用于从第二即时通信客户机接收对共享项目信息的请求,所述请求包括所述第一、第二即时通信客户机的标识信息和共享项目指定信息;第一转发装置,用于根据所述第一即时通信客户机的标识信息将所述请求转发给所述第一即时通信客户机;第二接收装置,用于从所述第一即时通信客户机接收对所述请求的响应;第二转发装置,用于将所述响应转发给所述第二即时通信客户机。
根据本发明的第八方面,提供一种用于一个即时通信服务器的方法,所述即时通信服务器与多个即时通信客户机相连,所述多个即时通信客户机中的一个第一即时通信客户机共享出项目,一个第二即时通信客户机请求从所述第一即时通信客户机获取共享项目信息,所述方法包括从第二即时通信客户机接收对共享项目信息的请求,所述请求包括所述第一、第二即时通信客户机的标识信息和共享项目指定信息;根据所述第一即时通信客户机的标识信息将所述请求转发给所述第一即时通信客户机;从所述第一即时通信客户机接收对所述请求的响应;将所述响应转发给所述第二即时通信客户机。
根据本发明的第九方面,提供一个第一即时通信客户机,用于请求开始从一个第二即时通信客户机接收在该第二即时通信客户机上共享出的项目,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括请求生成装置,用于响应用户的请求操作,生成开始接收共享项目的请求,所述请求中包括第二即时通信客户机的标识符、共享项目的指定信息以及用于项目传送的参数;发送装置,用于将所述请求发送给即时通信服务器,以便转发到所述第二即时通信客户机;项目接收装置,用于通过基于所述用于项目传送的参数与所述第二即时通信客户机之间建立的通信连接,从所述第二即时通信客户机接收共享的项目。
根据本发明的第十方面,提供一种用于一个第一即时通信客户机的方法,用于请求开始从一个第二即时通信客户机接收在该第二即时通信客户机上共享出的项目,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括响应用户的请求开始接收共享项目的操作,生成请求开始接收共享项目的请求,所述请求中包括第二即时通信客户机的标识符、共享项目的指定信息以及用于项目传送的参数;将所述请求发送给即时通信服务器,以便转发到所述第二即时通信客户机;通过基于所述用于项目传送的参数与所述第二即时通信客户机之间建立的通信连接,从所述第二即时通信客户机接收共享的项目。
根据本发明的第十一方面,提供一个第一即时通信客户机,用于根据来自一个第二即时通信客户机的请求将共享项目传送到该第二即时通信客户机,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括接收装置,用于从即时通信服务器接收来自所述第二即时通信客户机的开始接收共享项目的请求,所述请求包括所述第一、第二即时通信客户机的标识信息、共享项目的指定信息以及用于项目传送的参数;管理装置,用于通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;项目传送装置,用于响应于管理装置确定所述请求是被授权的,基于所述用于项目传送的参数与所述第二即时通信客户机之间建立通信连接,以将共享项目传送到所述第二即时通信客户机。
根据本发明的第十二方面,提供一种用于一个第一即时通信客户机的方法,用于根据来自一个第二即时通信客户机的请求将共享项目传送到该第二即时通信客户机,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括从即时通信服务器接收来自所述第二即时通信客户机的开始接收共享项目的请求,所述请求包括所述第一、第二即时通信客户机的标识信息、共享项目的指定信息以及用于项目传送的参数;通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;响应于确定所述请求是被授权的,基于所述用于项目传送的参数与所述第二即时通信客户机之间建立通信连接,将共享项目传送到所述第二即时通信客户机。
根据本发明的第十二方面,提供一种即时通信服务器,其与多个即时通信客户机相连,所述多个即时通信客户机中的一个第一即时通信客户机共享出项目,一个第二即时通信客户机请求开始从所述第一即时通信客户机接收共享项目,所述即时通信服务器包括第一接收装置,用于从第二即时通信客户机接收开始接收共享项目的请求,所述请求包括所述第一、第二即时通信客户机的标识信息、共享项目指定信息以及用于项目传送的参数;第一转发装置,用于根据所述第一即时通信客户机的标识信息将所述请求转发给所述第一即时通信客户机。
根据本发明的第十三方面,提供一种用于即时通信服务器的方法,所述即时通信服务器与多个即时通信客户机相连,所述多个即时通信客户机中的一个第一即时通信客户机共享出项目,一个第二即时通信客户机请求开始从所述第一即时通信客户机接收共享项目,所述方法包括从第二即时通信客户机接收开始接收共享项目的请求,所述请求包括所述第一、第二即时通信客户机的标识信息、共享项目指定信息以及用于项目传送的参数;根据所述第一即时通信客户机的标识信息将所述请求转发给所述第一即时通信客户机。
根据本发明还提供了包括上述即时通信客户机和服务器的即时通信系统,以及用于所述即时通信系统的方法。


图1是常规即时通信系统的构成示意图。
图2A表示共享源客户机从即时通信软件中共享出文件和/或文件夹时的用户界面。
图2B表示共享源客户机从Windows操作系统的资源管理器中共享出文件和/或文件夹时的用户界面。
图3表示了共享目标客户机查看某个共享源客户机共享出哪些文件和/或文件夹时的用户界面。
图4示出了根据本发明的共享源客户机在共享出文件/文件夹时的结构示意图。
图5示出了共享源客户机在共享出文件/文件夹时的操作流程图。
图6示出了共享目标客户机希望获取共享项目信息时,共享目标客户机的结构示意图。
图7示出了共享目标客户机执行的方法的流程图。
图8示出了共享源客户机的结构示意图。
图9示出了管理装置的进一步结构。
图10示出了共享源客户机执行的方法的流程图。
图11示出了根据本发明的优选实施方式,共享源客户机执行的方法的流程图。
图12示出了即时通信服务器的结构示意图。
图13是即时通信服务器执行的方法的流程图。
图14示出了共享目标客户机从共享源客户机请求开始项目接收时,共享目标客户机的结构示意图。
图15示出了共享目标客户机执行的方法的流程图。
图16示出了共享源客户机的结构示意图。
图17示出了管理装置的进一步结构。
图18示出了共享源客户机执行的方法的流程图。
图19示出了根据本发明的优选实施方式,共享源客户机执行的方法的流程图。
图20示出了即时通信服务器的结构示意图。
图21是即时通信服务器执行的方法的流程图。
图22示出了请求获取项目操作的流程图。
具体实施例方式
以下将参照附图对本发明的优选实施方式进行说明。
图1示出了常规即时通信系统的构成示意图。所述即时通信系统100包括即时通信服务器110,并且包括若干即时通信客户机与所述即时通信服务器110通信相连。这里为了清楚起见,只示出了即时通信客户机120和130,但是应当理解,可以有任何数量的即时通信客户机与所述即时通信服务器110相连。
如果即时通信客户机(120或130)希望参与即时通信,需首先向服务器110进行注册,之后,方可与其他客户机进行即时通信(例如,聊天)。各即时通信客户机之间的通信是对等的。对于某些即时通信软件而言,在各客户机之间的通信需要经由服务器进行传送,对于另一些即时通信软件,则可以直接在客户机之间进行通信,而无需经由服务器。
本发明提供了在这些即时通信客户机之间进行文件共享的机制。以下为了便于说明本发明,将共享出文件/文件夹的即时通信客户机称为“共享源客户机”,其用户称为“共享源用户”,将获取他人共享出的文件/文件夹的即时通信客户机称为“共享目标客户机”,其用户称为“共享目标用户”。
对用户界面的改动1.共享源客户机根据本发明的优选实施方式,共享源客户机可以通过如下三种方式,在用户界面上共享出文件和/或文件夹。
第一种方式图2A表示共享源客户机从即时通信软件(这里为“IBM LotusSametime”)中共享出文件和/或文件夹时的用户界面。
如图2A所示的用户界面200包括借助电子邮件地址表示的共享源客户机的多个联系人。假定共享源客户机希望将文件与其中的某个联系人210进行共享,则可以通过点击鼠标右键,显示一个与环境相关的菜单220。所显示的菜单220除包括现有的即时通信菜单项之外,还包括一个新的“share files”(共享文件)菜单项230。共享源用户可通过点击“share files”菜单项230,弹出一个对话框(未显示),从中选择希望共享给联系人210的文件和/或文件夹。
第二种方式图2B表示共享源客户机从Windows操作系统的资源管理器中共享出文件和/或文件夹时的用户界面。
如图2B所示的用户界面240包括两个浏览器窗格250和260,左侧窗格250表示了在系统桌面上的文件/文件夹目录。如果共享源用户希望将其中的“My Music”文件夹共享出来,那么可以点击鼠标右键,这一方面会为“My Music”文件夹显示一个与环境相关的菜单270,另一方面会在右侧窗格260中显示了该文件夹的内容。所述菜单270除包括资源管理器本身应当具有的其他菜单选项外,还包括一个新的“Sharing with buddies…”菜单项280。当共享源用户点击“Sharingwith buddies…”菜单项280时,便会弹出一个对话框(未显示),以便从中选择将与哪些用户或用户组共享“My Music”文件夹。
应当理解,尽管这里使用Windows操作系统为例进行说明,但本发明并不局限于此,任何能够在其中使用即时通信软件的操作系统(如,Mac OS)都是可行的。
第三种方式在这种方式中,可以在当前即时通信软件的菜单栏中给出一个新的功能菜单项,如“File Share”。当用户点击这一菜单项时便会弹出对话框以允许用户从中选择将哪些文件/文件夹共享出去,并且还允许用户从其联系人列表中选择与哪些用户/用户组进行共享。
2.共享目标客户机图3表示了共享目标客户机查看某个共享源客户机共享出哪些文件和/或文件夹时的用户界面。
如图3所示的用户界面300包括借助电子邮件地址表示的共享目标客户机的多个联系人。假定共享目标客户机希望查看某个联系人310共享出的文件/文件夹,则可以通过点击鼠标右键,显示该联系人310的与环境相关的菜单320。所显示的菜单320除包括现有的即时通信菜单项之外,还包括一个新的“view shared files…”(查看共享文件)菜单项330。共享目标用户可通过点击“view shared files…”菜单项330,弹出一个对话框(未显示),在其中显示出共享源用户已经共享出的文件和/或文件夹的列表(如果有的话)。
以上结合IBM Lotus Sametime即时通信软件的用户界面,描述了执行本发明需要对用户界面进行哪些改动,并且给出了示例性的新菜单项(例如,“share files”,“view shared files…”)。但是应当理解,本发明不只适用于IBM Lotus Sametime,而是同样适用于其他即时通信软件,而且所给出的菜单项的文字可以根据需要进行变化。
访问控制列表在本发明中,共享源客户机需要维护一个访问控制列表,用于指明向谁共享文件和共享哪些文件。这可以看作对共享目标用户的一种授权,从而如果一个共享目标客户机希望访问共享源客户机共享的文件/文件夹,其必须已经在该共享源客户机的访问控制列表中,而且只能访问共享给他的那些文件。表1示出了根据本发明的优选实施方式的访问控制列表数据结构。
表1

在表1中,ID字段用于表示每个共享目标用户的标识符,共享目标用户可以是单个用户,也可以是用户组。
IDTYPE字段这是一个可选的字段,用于表示该共享目标用户的类型是单个用户还是一个用户组。在表1中,示例性地用“U”表示单个用户,用“G”表示用户组。
SHARENAME字段共享名字段,用于表示希望以怎样的名称将项目共享出去;在默认情况下,为要共享的顶级文件/文件夹的名称;例如,对于用户1,由于共享的是My Music文件夹下的所有子文件夹和文件,因此共享名为顶级文件夹名My Music,对于用户2,由于Sunset.jpeg是共享的顶级文件,因此共享名为Sunset.jpeg。
PATHNAME字段用于表示共享的文件/文件夹在共享源客户机中的绝对路径。
以上只列出了访问控制列表的几个示例性字段,但本领域技术人员能够理解,还可以根据需要加入其他字段。
由表1的数据结构可以看出,访问控制列表相关联地存储标识共享目标用户的信息和标识共享项目的信息。
访问控制列表的每一行代表一个共享目标用户。每当针对某个共享目标客户机进行了文件/文件夹共享,则在该表中添加一行。根据本发明的优选实施方式,当对一个共享目标用户进行了多次共享时,可以针对每一次共享都建立新的一行。
这个访问控制列表可以在每当针对某个共享目标用户共享了文件或文件夹后,由共享源用户手动生成一行,也可以优选地由即时通信软件自动生成一行。由即时通信软件自动生成列表行是容易实现的。如参照图2-3的用户界面所述,要与之进行共享的目标客户机以及要共享哪些项目都是通过共享源客户机进行选择或输入的,在进行这种选择和输入时软件当然可以容易地获知这些信息,以填充到表格中。
所述访问控制列表可以存储在共享源客户机本地的一个数据库或文件中。另外,考虑到安全性因素,最好对此列表进行加密。
通过使用这一访问控制列表,使得共享源客户机能够针对不同的用户共享不同的文件或文件夹,从而与现有技术相比,显著地提高了共享的灵活性。
共享源客户机共享出文件/文件夹时的配置和操作共享源用户可以采用“对用户界面的改动”一节中提到的三种方式之一来对共享目标用户设定共享文件/文件夹。在共享源用户设定共享时,不要求对应的共享目标用户在线。
图4示出了根据本发明的共享源客户机在共享出文件/文件夹时的结构示意图。如图4所示,所述共享源客户机400包括联系人存储装置410,项目存储装置420,选择装置430,以及访问控制列表生成装置440。
所述联系人存储装置410存储着共享源客户机400的联系人及其标识信息。对于不同的即时通信软件,所述标识信息可以是联系人的电子邮件地址(如图1中Lotus Sametime软件的用户界面100所示),可以是联系人的QQ号码(例如,对于腾讯QQ)或者其他可以标识出各个联系人的信息。在本说明书中,如果没有特别指出,“联系人”既表示单个用户的联系人,也表示以用户组形式出现的联系人(即,联系人组)。
所述项目存储装置420可以是用于存储所述共享源客户机的文件/文件夹的存储器,包括硬盘驱动器、软盘驱动器、光盘驱动器或其他能进行文件存储的介质,所述项目存储装置420存储的文件中至少有一些是要与其他联系人共享的。
所述选择装置430为共享源用户从联系人存储装置410中选择要与之共享的联系人,和从项目存储装置420中选择要共享的文件/文件夹提供了机制。所述选择装置430可以有多种实现方式,如果使用如图2A、2B所示的在其中已经列出了可选的联系人/文件的用户界面,所述选择装置430可以是硬件输入装置,如键盘、鼠标、手写笔、触摸板、麦克风等,以便用户能够直接进行选择;如果用户界面并未列出可选的联系人和/或文件,那么所述选择装置430还可以包括相应的软件输入装置,如文本框,以便用户能够使用键盘等在其中输入要选择的内容。
所述访问控制列表生成装置440用于响应所述选择装置430从联系人存储装置410和项目存储装置420中的选择,生成访问控制列表。所述访问控制列表生成装置440可以通过如下方式之一生成访问控制列表。
当用户例如通过在“对用户界面的改动”一节中提到的三种方式之一,选择了特定的联系人以及要与该联系人共享的文件/文件夹后,可以手动将与访问控制列表的各字段对应的信息填充到所述访问控制列表中,以手动方式生成所述列表行。
或者,根据本发明的优选实施方式,所述共享源客户机400能够在用户选择了特定的联系人以及要与该联系人共享的文件/文件夹后,自动提取与访问控制列表的各字段对应的信息,以便填充到访问控制列表的数据结构中。这样可以免去由用户人工填写带来的不便,提高共享的自动化程度。
在这种情况下,访问控制列表生成装置440可以进一步包括提取装置(未示出),用于响应于共项目标用户和共享项目的选择,提取与访问控制列表的各字段对应的信息;填充装置(未示出),用于将提取的信息填充到所述访问控制列表的数据结构中。由于联系人以及要与之共享的文件/文件夹是由用户选定或输入的,共享源客户机400的提取装置能够获得这一信息是容易理解的。
实际上,本发明只是需要一个访问控制列表,以便将必需的信息存储在其中,从而控制共享目标客户机的访问。因此,只要能够将必需的信息存储到这个列表中,具体通过何种方式存储(或者说,通过何种方式生成这个表)不会对本发明的实施带来影响。
图5示出了所述共享源客户机400的操作流程图。
所述操作从步骤500开始,随后进入步骤510。在步骤510中,共享源用户从联系人列表中选择要与之进行共享的联系人,并在步骤520中选择共享给该联系人的文件/文件夹。共享源用户在完成了这两个选择操作后,在步骤530中,提取所述联系人以及共享给该联系人的项目的标识信息,以生成访问控制列表。随后,该方法在步骤540中结束。
本领域技术人员能够理解,图5中步骤510和520的执行顺序可以互换,而不会影响本发明的实施。
另外,所述步骤530的操作可以由共享源用户手动完成,也可以由共享源客户机400自动执行。
共享目标客户机希望获取与共享源客户机共享出的项目相关的信息时通信各方的配置和操作在共享源客户机共享出项目后,共享目标客户机可以例如通过如图3所示的用户界面和操作,从共享源客户机请求与共享源客户机共享出的项目相关的信息(简称“共享项目信息”),这些信息包括但不限于项目(如,文件/文件夹)的属性、大小、创建时间等。在获得这些信息后,共享目标客户机可以基于它们来决定是否实际请求传送文件/文件夹。
以下描述在这一过程中通信各方涉及结构和操作。
1.共享目标客户机图6示出了共享目标客户机600的结构示意图。所述客户机600包括请求生成装置610、发送装置620和接收装置630。
当用户如图3所示那样选择了“view shared files…”菜单项时,请求生成装置610会生成一个共享项目信息请求,并在请求中附加一些参数,这些参数包括但不限于共享源客户机的ID以及共享出的项目的指定信息。
在请求中发送共享源客户机的ID,是为了即时通信服务器能够知道是向哪个共享源客户机请求信息,从而能够将请求转发给它。
共享项目的指定信息用于指定共享目标客户机600希望获得有关哪些共享项目的信息。共享项目的指定信息可以是以下三种类型1)如果共享目标用户希望请求针对自己共享的所有项目的信息,则可以用诸如“\”之类的标识符,作为共享项目的指定信息,这通常是在用户首次进行请求,或者不知道共享名时的做法。
2)如果希望请求针对某个共享名的项目信息,则可以发送该共享名,作为共享项目的指定信息。
3)如果用户希望获得的共享项目信息是某个共享名之下的特定文件或子文件夹的信息,则可以在给出共享名的同时,指定特定文件或子文件夹到所述共享名的相对路径,作为共享项目的指定信息。
对于第2、3种类型而言,共享目标客户机600可能先前已经请求并从共享源客户机获得了共享项目信息。从共享源客户机获得的共享项目信息可以存储在共享目标客户机600的本地或其它适当的位置,以便在需要的时候使用。
另外,根据本发明的一种优选实施方式,所述请求的参数还可以包括共享目标客户机600本身的标识符。
请求生成装置610生成的请求通过发送装置620发送到即时通信服务器。
即时通信服务器在收到来自共享目标客户机600的请求后,如果所述请求没有共享目标客户机600本身的标识符,则由服务器自动从请求中提取该标识符,并与请求一同转发给共享源客户机。或者,如果请求的参数中已经包括了共享目标客户机600本身的标识符,则服务器直接将请求转发给共享源客户机。收到请求后,共享源客户机将根据所述请求是否被授权,来给出相应的响应,再经由即时通信服务器返回共享目标客户机600(如下文详述)。
因此,共享目标客户机600的接收装置620用于从所述即时通信服务器接收来自所述共享源客户机的响应。
共享目标客户机600执行的方法的流程图如图7所示。
该方法从步骤700开始并进入步骤710。在步骤710中,共享目标客户机600响应于用户的请求操作,生成一个共享项目信息请求,所述请求如前所述包括一些参数。在步骤720中,将该请求发送给即时通信服务器。在步骤730中,共享目标客户机600经由服务器接收来自所述共享源客户机的对所述请求的响应。该方法在步骤740中结束。
2.共享源客户机图8示出了共享源客户机800的结构示意图。所述客户机800包括接收装置810、管理装置820和发送装置830。
所述接收装置810用于从即时通信服务器接收来自所述共享目标客户机600的对共享项目信息的请求。如前所述,这个请求包括若干参数。
接收装置810将收到的请求传递给管理装置820。所述管理装置820可以实现为一个管理线程,用于通过查阅访问控制列表,根据所述请求中附加的参数,来确定所述请求是否是被授权的,并取决于请求是否是被授权而输出不同的响应结果。
在请求被授权时,响应结果为共享目标客户机600请求的共享项目信息;在请求未被授权时,响应结果可以是一个错误信息。
发送装置830用于将所述管理装置820输出的结果传送给即时通信服务器,以便进一步返回给共享目标客户机600。
根据本发明,管理装置820可以通过两种方式来确定所述请求是否是被授权的。
在第一种方式中,管理装置820先将共享目标客户机600的标识符与共享源客户机800的联系人列表进行比较,如果共享目标客户机600是联系人之一,再将共享目标客户机600的标识符以及共享项目的指定信息与访问控制列表进行对比,以确定是否存在匹配。如果存在匹配,则确定请求是被授权的,否则,则返回错误信息。
第二种方式与第一种方式类似,区别在于,管理装置820直接将共享目标客户机600的标识符与共享源客户机800的访问控制列表(而不是联系人列表)进行对比,如果共享目标客户机600的标识符存在于访问列表中,则后续操作与第一种方式基本相同,否则,将返回错误信息。
图9示出了管理装置820的进一步结构,包括ID判定装置821,共享名判定装置822,查找装置823和输出装置824。
在第一种方式中,所述ID判定装置821通过访问图4所示的联系人存储装置410,用于将所述共享目标客户机600的标识符与联系人存储装置中的联系人标识符进行比较,以判定共享目标客户机600的标识符是否在联系人列表中;或者在第二种方式中,所述ID判定装置821通过访问控制列表,将所述共享目标客户机600的标识符与访问控制列表中的用户ID进行比较,以判定共享目标客户机600的标识符是否在访问控制列表中。共享名判定装置822通过查阅访问控制列表,判定共享目标客户机600的标识符、所述请求中提供的共享名是否在访问控制列表中有匹配。
共享名判定装置822通过查阅访问控制列表,判定共享目标客户机600的标识符、所述请求中提供的共享名是否在访问控制列表中有匹配。
查找装置823用于在共享名判定装置822判定匹配时,从共享源客户机700的本地文件系统中查找与所述请求中提供的共享名(可能还结合其相对路径)相对应的文件/文件夹的信息,这里的信息可以包括但不限于文件/文件夹的属性、大小、创建时间等。
输出装置824一方面,在ID比较装置821或共享名判定装置822判定不匹配时,输出错误信息,另一方面,在这二者均匹配时,输出查找装置823查找到的信息。
以下将对查找装置823的操作做进一步说明。
响应于共享名判定装置822找到匹配,查找装置823在访问控制列表中查找共享名对应的绝对路径,根据共享名对应的绝对路径(如果请求中提供的相对路径不为空,则还根据提供的相对路径),找到请求的项目的绝对路径,从文件系统中获取共享项目的信息,以便由输出装置824输出。
以前述表1中的情形为例,假定共享目标用户“用户1”仅提供了共享名“My Music”,那么能够从访问控制列表中为用户1找到与之对应的“My Music”文件夹的绝对路径为“C\Documents andSettings\peter\My Documents\My Music”共享,系统从本地文件系统中获取文件夹My Music及其子文件夹的信息返回。假定用户1不仅提供了共享名“My Music”还提供了一个相对路径,例如“FayeWong\track01”,则表明用户1希望获得与My Music文件夹的子文件夹Faye Wong中的track01文件相关的信息。系统根据共享名对应的绝对路径再加上相对路径,得到用户请求的文件的绝对路径为“C\Documents and Settings\peter\My Documents\My Music\FayeWong\track01”,系统再从本地文件系统中获取该文件信息返回。
图10示出了共享源客户机800执行的方法的流程图。
该方法从步骤1000开始并进入步骤1010。在步骤1010中,共享源客户机800从即时通信服务器接收来自所述共享目标客户机600的对共享项目信息的请求,如前所述,所述请求包括若干参数。在收到请求后,该方法在步骤1020中查阅一个访问控制列表,根据所述请求中包括的参数,来确定所述共享目标客户机600的请求是否是被授权的。响应于确定所述请求是被授权的,则在步骤1030中,将所请求的项目信息发送给所述即时通信服务器,或者响应于确定所述请求是未被授权的,则在步骤1030中,将一个错误信息传送给所述即时通信服务器,以便最终转发给所述共享目标客户机600。该方法在步骤1040中结束。
图11示出了根据本发明的优选实施方式,共享源客户机800执行的方法的流程图。
该方法在步骤1100中开始,随后进入步骤1110。在步骤1110中,如前所述,共享源客户机800从即时通信服务器接收来自所述共享目标客户机600的对共享项目信息的请求,所述请求包括若干参数。
在步骤1120中,共享源客户机800判断该共享目标用户是否在联系人列表中,如果判定结果为“是”,则该方法进入步骤1130。
在步骤1130中,进一步判定请求中所包括的共享名是否为“\”。共享目标用户提供“\”作为共享名表明希望获得共享给自己的所有共享项目信息,在用户首次请求共享项目信息时通常是这种情况。或者如果用户不知道共享的项目在共享源客户机800上的共享名,也可以使用“\”作为共享名。应当理解,使用“\”只是示例性的,也可以采用其他表达式来表明请求所有项目信息。
如果在步骤1130中的判断为“是”,则该方法进入步骤1140,通过查阅访问控制列表,共享源客户机800找出对该共享目标用户共享出的所有项目的绝对路径,这里可能包括对该用户本身共享出的项目和/或针对该用户所在的用户组共享出的项目的绝对路径。
接下来,在步骤1150中,共享源客户机800根据找到的绝对路径,从本地文件系统中获取共享项目的信息,包括但不限于共享项目的创建时间、大小和属性,以便传送给即时通信服务器,从而最终返回给共享目标客户机600。
如果在步骤1130中的判断为“否”,即共享名不等于“\”,而是某个特定的共享名,则该方法进入步骤1160。在这种情况下,共享目标客户机通常已经知道了共享源客户机800对自己共享了哪些项目,因此希望知道特定文件或文件夹的信息。在步骤1160中,根据请求中提供的共享名查找匹配。
接下来,在步骤1170中,判定是否能在访问控制列表中为该共享源客户机800提供的共享名找到匹配。
如果能找到匹配,则方法进入步骤1180,在访问控制列表中查找共享名对应的绝对路径,根据共享名对应的绝对路径(如果请求中提供的相对路径不为空,则再根据提供的相对路径),找到请求的项目的绝对路径,从文件系统中获取共享项目的信息,以便传送给即时通信服务器,从而最终返回给共享目标客户机600。如果在步骤1170中判断没有找到匹配,则方法进入步骤1190,以便将错误信息传送给即时通信服务器,从而最终返回给共享目标客户机600。
如果在步骤1120中的判断为否,即向共享源客户机800发出共享项目信息请求的用户根本不在共享源客户机800的联系人列表中,则方法直接进入步骤1190,通过返回错误信息而结束该方法。
另外,如果在步骤1150、1180的查找操作过程中发现先前共享出的项目在共享源客户机800的本地因被删除、移动等原因而不存在了,也会向共享目标客户机600返回错误信息。
应当指出,在图11所示的方法中,在步骤1120中判断该共享目标客户机600是否在共享源客户机800的联系人列表中。但是,在步骤1120中也可以直接判断该提出请求的用户是否在共享源客户机800的访问控制列表中,从而在最初便将进行请求的用户限制在存在于访问控制列表中的用户。
3.即时通信服务器图12示出了即时通信服务器1200的结构示意图。
所述即时通信服务器1200与多个即时通信客户机相连,但是这里为了便于说明本发明的原理,只示出了两个,即共享目标客户机800和共享源客户机600。但是应当理解,即时通信服务器1200可以与任意数量的即时通信客户机相连。
为了执行本发明,所述即时通信服务器1200包括第一接收装置1210第一转发装置1220,第二接收装置1230以及第二转发装置1240,用虚线表示的参数附加装置1250为即时通信服务器1200的一个优选组件。
第一接收装置1210用于从共享目标客户机600接收对共享项目信息的请求。
从第一接收装置1210接收的请求将经由第一转发装置1220转发给共享源客户机800。
在共享源客户机800执行了以上参照图11描述的操作后,将响应传送给即时通信服务器1200,这一响应由第二接收装置1230进行接收。
第二转发装置1240再将第二接收装置1230接收的响应转发给共享目标客户机600。
根据本发明的优选实施方式,所述即时通信服务器1200还可以包括一个参数附加装置1250。这个参数附加装置1250的作用是在当来自共享目标客户机600的共享项目信息请求没有给出共享目标客户机600的标识符时,由即时通信服务器1200自动提取该标识符并将其附加到请求中,一并由第一转发装置1220进行转发。
应当理解,即时通信服务器1200获得与之通信的即时通信客户机的标识符的操作是本领域中的已知操作,有成熟的技术可以实现,因此这里不再详细描述。
图13是即时通信服务器1200执行的方法的流程图。
该方法在步骤1300中开始,随后进入1310。在步骤1310中,即时通信服务器1200从共享目标客户机600接收对与共享出的项目相关的信息的请求。接下来,在步骤1320中,将所述请求转发给共享源客户机800。并且在共享源客户机800执行了以上参照图11描述的操作后,在步骤1330中,接收响应。然后,在步骤1340中,将响应转发给共享目标客户机600。这一方法在步骤1350中结束。
另外,步骤1320还可以包括在请求中附加共享目标客户机标识符参数的操作。
共享目标客户机向共享源客户机请求开始接收共享项目时的配置和操作共享目标客户机在请求并查看了共享项目信息后,决定开始接收共享源客户机共享出来的项目。
以下将描述这一过程中通信各方涉及的结构和操作1.共享目标客户机图14示出了共享目标客户机1400的结构示意图。所述客户机1400包括请求生成装置1410、发送装置1420、项目接收装置1430,用虚线表示的响应接收装置1440是本发明的优选组件。
例如当共享目标用户从即时通信软件用户界面(未示出)上选择了开始接收共享项目的操作时,请求生成装置1410会生成一个开始接收共享项目请求,并在请求中附加一些参数,这些参数包括但不限于共享源客户机的ID以及共享出的项目的指定信息。
共享源客户机的ID,是为了即时通信服务器能够知道是向哪个共享源客户机请求开始项目接收,从而能够将请求转发给它。
共享项目的指定信息,用于表示共享目标客户机1400希望获得哪些共享项目。共享项目的指定信息可以有以下三种类型1)如果共享目标用户希望请求针对自己共享的所有项目,则可以用诸如“\”之类的标识符,作为共享项目的指定信息。
2)如果希望请求某个共享名的项目,则可以发送该共享名,作为共享项目的指定信息。
3)如果用户希望获得的共享项目是某个共享名之下的特定文件或子文件夹,则可以在给出共享名的同时,指定特定文件或子文件夹到所述共享名的相对路径,作为共享项目的指定信息。
另外,根据本发明的优选实施方式,所述请求还可以包括如下参数a.共享目标客户机1400本身的标识符;以及b.用于项目传送的诸参数b1.将用于项目传送的共享目标客户机1400的IP地址;b2.将用于项目传送的端口地址;b3.将用于项目传送验证和/或项目传送加密的项目传送会话ID,这一ID可以是由共享目标客户机1400随机产生的ID。
用于项目传送的参数是由共享目标客户机1400决定或产生的。这些参数既可以在请求生成时由共享目标客户机1400附加到请求中,也可以在请求发送到即时通信服务器后,由即时通信服务器来附加到请求中。
由请求生成装置1410生成的请求将通过发送装置1420,发送给一个即时通信服务器。
如果即时通信服务器收到的请求不包括参数a、b1、b2、b3,则服务器会在请求中附加这些参数,然后将请求转发到共享源客户机。
收到请求后,共享源客户机将判断该开始项目接收的请求是否被授权,如果是,则会根据请求中包括的用于项目传送的参数与共享目标客户机1400建立通信连接(如下文详述)。
因此,共享目标客户机1400的项目接收装置1430经过基于在请求中包括的参数建立的通信连接与共享源客户机相连,以接收请求的项目。
根据本发明的优选实施方式,共享目标客户机1400还包括响应接收装置1440,用于通过即时通信服务器从共享源客户机接收有关请求是否被授权的响应。
具体而言,一方面,当共享源客户机判断请求被授权时,其除与共享目标客户机1400建立通信连接,还可以将请求被授权的响应传送给即时通信服务器,再转发给共享目标客户机1400。另一方面,当共享源客户机判断请求未被授权时,可以将表示错误的信息通过即时通信服务器转发给共享目标客户机1400。
共享目标客户机1400执行的方法的流程图如图15所示。
该方法从步骤1500开始并进入步骤1510。在步骤1510中,共享目标客户机1400生成开始项目接收的请求,并在其中至少附加共享源客户机的ID以及共享出的项目的指定信息作为参数。在步骤1520中,将开始项目接收的请求发送给即时通信服务器,以便转发到共享源客户机,到达共享源客户机的请求进一步附加有共享目标客户机1400的标识符以及用于项目传送的参数。在步骤1530中,在该请求被授权的情况下,共享目标客户机1400经过基于在请求中包括的参数建立的通信连接与共享源客户机相连,接收请求的项目。根据本发明的这一方法在步骤1540中结束。
2.共享源客户机图16示出了共享源客户机1600的结构示意图。所述客户机1600包括接收装置1610、管理装置1620、项目传送装置1630,用虚线表示的响应发送装置1640是本发明的优选组件。
所述接收装置1610用于从即时通信服务器接收来自所述共享目标客户机1400的开始接收共享项目的请求。如前所述,这个请求包括若干参数。
接收装置1610将收到的请求传递给管理装置1620。所述管理装置1620可以实现为一个管理线程,用于通过查阅访问控制列表,根据请求中包括的参数,来确定所述请求是否是被授权的,并取决于请求是否是被授权而决定项目传送。
项目传送装置1630根据所述请求中发送的用于建立通信连接的参数,与共享目标客户机1400建立通信连接,并向其传送所请求的文件/文件夹。
根据本发明,管理装置1620可以通过如下两种方式来确定所述请求是否是被授权的。
在第一种方式中,在收到请求后,管理装置1620首先判断用户是否在共享源客户机1600的联系人列表中,如果在,则进一步根据该共享目标客户机1400的标识符和共享名等信息,在访问控制列表中查找是否有匹配的路径名。如果有,则表明请求是被授权的。如果没有,则再获得该用户所在用户组的名称,并根据该组的名称和共享名等信息,在访问控制列表中查找是否有匹配的路径名。如果有,也表明请求是被授权的。
在第二种方式中,在收到请求后,管理装置1620首先判断用户是否在共享源客户机1600的访问控制列表中,如果在,则后续操作与第一种方式类似,如果不在,则表明请求未被授权。这样可以在最初便将进行请求的用户限制在存在于访问控制列表中的那些用户。
图17示出了管理装置1620的进一步结构,包括联系人判定装置1621,路径名判定装置1622,绝对路径获得装置1623和输出装置1624。
在第一种方式中,所述联系人判定装置1621通过图4所示的联系人存储装置410,用于将所述共享目标客户机1400的标识符与联系人存储装置中的联系人标识符或者用户组标识符进行比较,以判定共享目标客户机1400是否是共享源客户机1600的联系人;或者在第二种方式中,所述联系人判定装置1621通过访问控制列表,用于将所述共享目标客户机1400的标识符与访问控制列表中的用户ID进行比较,以判定共享目标客户机1400的标识符是否在访问控制列表中。
路径名判定装置1622通过查阅访问控制列表,判定共享目标客户机1400的标识符或其所在用户组的标识符、所述请求中提供的共享名是否在访问控制列表中有匹配。
绝对路径获得装置1623用于在路径名判定装置1622判定匹配时,获取所述请求项目的绝对路径。绝对路径获得装置1623获得绝对路径的方式与图9中查找装置823获得绝对路径的方式类似。
输出装置1624,一方面,在联系人判定装置1621或路径名判定装置1622判定不匹配时,输出错误信息,另一方面,在这二者均匹配时,将这一事实告知项目传送装置1630,以触发建立通信连接,并且输出表明请求被接受的信息。
另外,所述管理装置还优选地包括判断所请求的文件是否存在的存在判定装置1625,用于根据找到的绝对路径判定共享目标客户机1400所请求的文件/文件夹是否存在。如果在共享目标客户机请求查看了共享项目信息后,共享源客户机在本地文件系统中删除了先前共享出来的项目,则进行这样的判定是有必要的。如果存在判定装置1625判定请求的项目已经不存在了,则可以通过输出装置1624输出错误信息。
另外,根据本发明的优选实施方式,所述共享源客户机1600还包括响应发送装置1640,用于将所述输出装置1634输出的结果传送给即时通信服务器,以便进一步返回给共享目标客户机1400。
共享源客户机1600执行的方法的流程图如图18所示。
该方法从步骤1800开始并进入步骤1810。在步骤1810中,共享源客户机1600从即时通信服务器接收来自所述共享目标客户机1400的对共享项目的请求,如前所述,所述请求包括若干参数。
在收到请求后,该方法在步骤1820中查阅一个访问控制列表,来确定所述共享目标客户机1400的请求是否是被授权的。
如果在步骤1820中确定请求是被授权的,则该方法进入步骤1840,在其中通过根据所述请求中发送的用于建立通信连接的参数,与共享目标客户机1400建立通信连接,并向其传送所请求的文件/文件夹。
接着,该方法在步骤1840中结束。
另外,根据本发明的一种优选实施方式,还可以响应于确定所述共享目标客户机1400有权进行访问时,在确定请求是被授权的情况下,将一方面建立通信连接,另一方面将表明请求被接受的信息发送给所述即时通信服务器,或者响应于确定所述共享目标客户机1400无权进行访问,则不建立通信连接,而是将一个错误信息传送给所述即时通信服务器,以便最终转发给所述共享目标客户机1400。
图19示出了根据本发明的优选实施方式,共享源客户机1600执行的方法的流程图。
该方法在步骤1900中开始,随后进入步骤1905。在步骤1905中,如前所述,共享源客户机1600从即时通信服务器接收来自所述共享目标客户机1400的开始接收共享项目的请求,所述请求包括如前所述的若干参数。
在步骤1910中,共享源客户机1600判断该共享目标用户是否在联系人列表中。
如果判定结果为“是”,则该方法进入步骤1915。在步骤1915中,根据用户ID和共享名等在访问控制列表中查找路径名。
在步骤1920中,判断是否找到路径名。如果找到路径名(“是”分支),则该方法进入步骤1925,以便获取请求的文件/文件夹的绝对路径名。
如果在步骤1920中判断未找到路径名,则方法进入步骤1930,在其中获取用户ID所在组的名称,并且在步骤1935中,根据该组名和共享名,在访问控制列表中查找是否有匹配的路径名。
在步骤1940中,判断是否找到匹配的路径名,如果是,则该方法转至步骤1925,以便获取请求的文件/文件夹的绝对路径名。如果步骤1940的判断为“否”,则该方法进入步骤1945,以返回错误信息,表明该获取项目的请求是未被授权的。
另外,如果在步骤1910中的判定为“否”,则该方法直接进入步骤1945,以便返回错误信息而结束该方法。
在通过执行步骤1925,获取了请求文件的绝对路径后,该方法进入步骤1950,以确定请求的文件/文件夹在共享源客户机上是否仍然存在。
如果在步骤1950中的判断为“是”,则方法进入步骤1955。
在步骤1955中,一方面,返回表明请求被接受的信息,另一方面,根据请求中包括的用于建立文件传送连接的参数,与共享目标客户机建立连接。
接下来,在步骤1960中,将所请求的文件传送给共享目标客户机。随后该方法在步骤1965中结束。
另外,如果在步骤1950中的判断为“否”时,本发明的方法同样是转到步骤1945,以便返回错误消息而结束本方法。
应当指出,在图19所示的方法中,在步骤1910中判断该提出请求的用户是否在共享源客户机1600的联系人列表中。但是,在步骤1910中,也可以判断该提出请求的用户是否在共享源客户机1600的访问控制列表中,在最初便将进行请求的用户限制在存在于访问控制列表中的用户。
3)即时通信服务器图20示出了即时通信服务器2000的结构示意图。
所述即时通信服务器200与多个即时通信客户机相连,但是这里为了便于说明本发明的原理,只示出了两个,即共享目标客户机1400和共享源客户机1600。但是应当理解,即时通信服务器2000可以与任意数量的即时通信客户机相连。
为了执行本发明,所述即时通信服务器2000包括第一接收装置2010、第一转发装置2020,用虚线表示的第二接收装置2030、第二转发装置2040以及参数附加装置2050为即时通信服务器2000的优选组件。
第一接收装置2010用于从共享目标客户机1400接收开始接收共享项目的请求。
从第一接收装置2010接收的请求将经由第一转发装置2020转发给共享源客户机1600。
根据本发明的优选实施方式,所述即时通信服务器1200还可以包括一个参数附加装置2050。这个附加装置2050的作用是在当来自共享目标客户机600的共享项目信息请求没有给出共享目标客户机600的标识符或者没有给出用于与共享源客户机1600建立文件传送连接所需的各项参数(如前所述)时,由即时通信服务器1200自动提取这些标识符和参数并将它们附加到请求中,一并由第一转发装置2020进行转发。
另外,根据本发明的优选实施方式,在共享源客户机1600执行以上参照图18描述的操作时,还可以将获取文件的请求是否被接受的信息通过即时通信服务器2000返回给共享目标客户机1400。在这种情况下,这一信息可由第二接收装置2030进行接收。并由第二转发装置2040将第二接收装置2030接收的响应转发给共享目标客户机1400。
图21是即时通信服务器2000执行的方法的流程图。
该方法在步骤2100中开始,随后进入2110。在步骤2110中,即时通信服务器2000从共享目标客户机1400接收对与共享出的项目的请求。接下来,在步骤2120中,将所述请求转发给共享源客户机1600。这一方法在步骤1350中结束。
在开始项目接收之前执行请求获取项目的操作以上参照图14-21描述了共享目标客户机1400开始接收共享项目时通信各方的结构及操作。根据本发明,可以在执行参照图7-13描述的共享目标客户机请求共享项目信息的操作后,直接执行开始接收共享项目的操作。
但是,如果在请求了共享项目信息后,经过长时间未执行开始接收共享项目的操作,那么共享源客户机上共享出的项目或其信息可能发生变化(例如,被删除、更新登),从而一旦开始接收共享项目时,可能项目不存在或者项目已改变的结果。
因此,在上面描述的这种情况下,为了保险起见,可以在开始接收共享项目(即,执行图18或19的操作)前,先执行“请求获取项目”的操作,以便确保要获取的项目仍然存在并且让共享源客户机能够作好项目传送准备。
图22示出了请求获取项目操作的流程图。
可以看出,图22的操作与图19的操作类似,只存在两方面的区别。
第一个区别是在步骤2205中经由即时通信服务器接收的是来自共享目标用户的“请求获取项目”的请求,而不是“开始项目接收”的请求。
第二个区别是在步骤2255中,在确定请求的文件存在时,只执行获取并返回请求项目的信息的操作,而不是执行建立通信连接以进行项目传送的操作。
之所以优选地执行图22的操作,有以下几方面的考虑。
第一,确保在开始接收文件时,文件仍然存在且共享目标客户机知道最新的文件信息。
第二,图22的操作发送的是“请求获取项目”的请求,一旦共享源客户机收到这个请求,在确认请求是被授权的情况下,其将作好传送文件的初始化准备(例如,将共享文件复制到缓冲区等),等待“开始项目接收”的请求。相比之下,图11的操作发送的是“获取共享项目信息”的请求,在共享源客户机收到“获取共享项目信息”的请求时,它只获取相应的文件信息。
第三,由于在图22的操作中也要确认请求是否被授权,因此可以进一步提高安全性。
在本发明中,即时通信客户机和服务器之间的通信由即时通信软件来保证。
本发明的文件共享与Windows操作系统中的文件共享的不同之处在于,它不需要启动文件共享守护程序。相反,它只是根据请求来共享文件,因此不会对即时通信客户机造成网络攻击,从而提高了安全性。
尽管本发明最终的文件传送是在两个即时通信客户机之间直接通信连接而进行的,但是这种通信连接是经过与服务器的通信而建立的,并且在建立这样的连接之前,要对请求是否被授权进行验证,因此能够容易地保证两个即时通信客户机之间的安全文件传送。
而且,本发明在两个客户机之间进行的文件传送是对等的,不会对服务器的性能造成影响。
以上主要以音乐文件/文件夹的共享为例来描述本发明,但本本领域技术人员能够理解,本发明的实施与共享哪种类型的文件/文件夹无关,任何类型的文件/文件夹均可使用本发明的方案来进行共享,包括但不限于音频、视频、图像或文本文件。
以上主要以企业级即时通信软件IBM Lotus Sametime为例对本发明进行了描述,但是本领域技术人员能够理解,本发明的实施与所使用的即时通信软件无关。本发明同等地适用于各种即时通信软件,这包括诸如QQ、MSN、Yahoo Messenger、AOL Instant Messenger等之类的个人即时通信软件以及诸如AOL AIM企业网关、JabberMessenger等的企业级即时通信软件。
本领域技术人员能够理解,在即时通信服务器、客户机中使用的各种装置可通过对处理器进行相应的编程以软件方式实现、以硬件逻辑元件的方式实现或者以这二者的结合实现,并且用于实现发送、接收和转发等在各装置之间进行通信的组件可以通过有线网络或无线网络接口等诸多方式实现。
本领域技术人员会认识到,可以以方法、系统或计算机程序产品的形式提供本发明的实施例。因此,本发明可采取全硬件实施例、全软件实施例,或者组合软件和硬件的实施例的形式。硬件和软件的典型的结合可以是带有计算机程序的通用计算机系统,当程序被加载并被执行时,控制计算机系统,从而可以执行上述的方法。
本发明可以嵌入在计算机程序产品中,它包括使此处描述的方法得以实施的所有特征。所述计算机程序产品被包含在一个或多个计算机可读存储介质(包括,但不限于,磁盘存储器、CD-ROM、光学存储器等)中,所述计算机可读存储介质具有包含于其中的计算机可读程序代码。
已参考根据本发明的方法、系统及计算机程序产品的流程图和/或方框图说明了本发明。流程图和/或方框图中的每个方框,以及流程图和/或方框图中的方框的组合显然可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、嵌入式处理器或者其他可编程的数据处理设备的处理器,以产生一台机器,从而指令(所述指令通过计算机或者其他可编程数据处理设备的处理器)产生用于实现在流程图和/或方框图的一个或多个方框中规定的功能的装置。
这些计算机程序指令也可保存在一个或多个计算机的读存储器中,每个这种存储器能够指挥计算机或者其他可编程数据处理设备按照特定的方式发挥作用,从而保存在计算机可读存储器中的指令产生一种制造产品,所述制造产品包括实现在流程图和/或方框图的一个或多个方框中规定的功能的指令装置。
计算机程序指令也可被加载到一个或多个计算机或者其他可编程数据处理设备上,使得在所述计算机或者其他可编程数据处理设备上执行一系列的操作步骤,从而在每个这样的设备上产生计算机实现的过程,以致在该设备上执行的指令提供用于实现在流程图和/或方框图的一个或多个方框中规定的步骤。
以上结合本发明的优选实施方式对本发明的原理进行了说明,但这些说明只是示例性的,不应理解为对本发明的任何限制。本领域技术人员可以对本发明进行各种改变和变形,而不会背离由随附权利要求所限定的本发明的精神和范围。
权利要求
1.一个第一即时通信客户机,用于向一个或多个第二即时通信客户机共享项目,所述一个或多个第二即时通信客户机是所述第一即时通信客户机的联系人/联系人组,所述第一即时通信客户机包括联系人存储装置,用于存储各联系人/联系人组的信息;项目存储装置,用于至少存储将与所述各联系人/联系人组共享的项目;选择装置,用于分别从联系人存储装置和项目存储装置中选择要与之进行共享的联系人/联系人组和要与之共享的项目;访问控制列表生成装置,用于响应于选择装置的选择,生成访问控制列表,所述访问控制列表相关联地存储要与之进行共享的联系人/联系人组和要与之共享的项目的标识信息。
2.根据权利要求1所述的客户机,所述访问控制列表生成装置还包括提取装置,用于响应于选择装置的选择,自动提取识别要与之进行共享的联系人/联系人组和要与之共享的项目的标识信息;填充装置,用于将提取的信息填充到所述访问控制列表的数据结构中。
3.一种用于一个第一即时通信客户机的方法,用于向一个或多个第二即时通信客户机共享项目,所述一个或多个第二即时通信客户机是所述第一即时通信客户机的联系人/联系人组,所述方法包括选择要与之进行共享的特定联系人/联系人组;选择要与所述特定联系人/联系人组共享的项目;响应于上述两个选择步骤,生成一个访问控制列表,所述访问控制列表相关联地存储要与之进行共享的联系人/联系人组和要与之共享的项目的标识信息。
4.根据权利要求3所述的方法,其中所述生成访问控制列表的步骤还包括响应两个选择步骤,自动提取识别要与之进行共享的联系人/联系人组和要与之共享的项目的标识信息;将提取的信息填充到所述访问控制列表的数据结构中。
5.一个第一即时通信客户机,用于从一个第二即时通信客户机获取在该第二即时通信客户机上的共享项目信息,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括请求生成装置,用于响应第一即时通信客户机的请求操作,生成一个获取共享项目信息的请求,所述请求中包括所述第二即时通信客户机的标识信息和共享项目的指定信息;发送装置,用于将所述请求发送给所述即时通信服务器,以便转发到所述第二即时通信客户机;接收装置,用于从即时通信服务器接收来自所述第二即时通信客户机的对所述请求的响应。
6.根据权利要求5所述的客户机,所述共享项目的指定信息包括下列之一用于代表针对该第一即时通信客户机共享的所有项目的标记(“\”);共享名;共享名与相对路径的组合。
7.一种用于一个第一即时通信客户机的方法,用于从一第二即时通信客户机获取在该第二即时通信客户机上的共享项目信息,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括响应第一即时通信客户机的请求操作,生成一个获取共享项目信息的请求,所述请求中包括所述第二即时通信客户机的标识信息和共享项目的指定信息;将所述请求发送给即时通信服务器,以便转发到所述第二即时通信客户机;从即时通信服务器接收来自所述第二即时通信客户机的对所述请求的响应。
8.一个第一即时通信客户机,用于响应来自一个第二即时通信客户机的获取共享项目信息的请求,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括接收装置,用于从即时通信服务器接收来自所述第二即时通信客户机的所述请求,所述请求包括所述第一、第二即时通信客户机的标识信息、以及共享项目的指定信息;管理装置,用于通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;发送装置,用于根据请求是否是被授权的,将对请求的响应发送给所述即时通信服务器,以便返回给所述第二即时通信客户机。
9.根据权利要求8所述的客户机,所述管理装置进一步包括ID判定装置,用于通过访问一个联系人存储装置,判定所述第一即时通信客户机是否是联系人/联系人组,或者用于通过查阅访问控制列表,判定所述第一即时通信客户机是否在访问控制列表中;共享名判定装置,用于通过查阅访问控制列表,判定所述第一即时通信客户机的标识符和共享项目指定信息是否在访问控制列表中有匹配;查找装置,用于在ID判定装置和共享名判定装置判定匹配时,根据访问控制列表提供的绝对路径,或者根据访问控制列表提供的绝对路径与共享项目指定信息中提供的相对路径这二者的组合,从所述第一即时通信客户机的本地文件系统中查找共享项目信息;输出装置,用于在ID比较装置或共享名判定装置判定不匹配时,将错误信息输出到发送装置,以表明请求未被授权,以及用于在这二者均判定匹配时,将输出查找装置查找到的信息输出到发送装置,以表明请求被授权。
10.一种用于一个第一即时通信客户机的方法,用于响应来自一个第二即时通信客户机的获取共享项目信息的请求,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括从即时通信服务器接收来自所述第二即时通信客户机的所述请求,所述请求包括所述第一、第二即时通信客户机的标识信息、以及共享项目的指定信息;通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;根据请求是否是被授权的,将对请求的响应发送给所述即时通信服务器,以便返回给所述第二即时通信客户机。
11.根据权利要求10所述的方法,确定所述第二即时通信客户机的请求是否是被授权的步骤包括确定所述第二即时通信客户机是否在所述第一即时通信客户机的联系人列表中或访问控制列表中。
12.根据权利要求11所述的方法,还包括在所述确定步骤的结果为“是”时,进一步针对所述第一即时通信客户机确定共享项目指定信息是否在访问控制列表中有匹配。
13.根据权利要求12所述的方法,还包括在进一步确定存在匹配时,表明请求被授权,根据访问控制列表提供的绝对路径,或者根据访问控制列表提供的绝对路径与共享项目指定信息中提供的相对路径这二者的组合,从所述第一即时通信客户机的本地文件系统中查找共享项目信息,以便返回给第二即时通信客户机作为响应。
14.根据权利要求11或12所述的方法,在任何一个确定步骤给出否定结果时,表明未被授权,并将错误信息作为响应返回给所述第二即时通信客户机。
15.一个第一即时通信客户机,用于请求开始从一个第二即时通信客户机接收在该第二即时通信客户机上共享出的项目,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括请求生成装置,用于响应用户的请求操作,生成开始接收共享项目的请求,所述请求中包括第二即时通信客户机的标识符、共享项目的指定信息以及用于项目传送的参数;发送装置,用于将所述请求发送给即时通信服务器,以便转发到所述第二即时通信客户机;项目接收装置,用于通过基于所述用于项目传送的参数与所述第二即时通信客户机之间建立的通信连接,从所述第二即时通信客户机接收共享的项目。
16.根据权利要求15所述的客户机,还包括响应接收装置,用于经由即时通信服务器接收来自所述第二即时通信客户机的关于所述请求是否被授权的响应。
17.根据权利要求15所述的客户机,所述共享项目的指定信息包括下列之一用于代表针对该第一即时通信客户机共享的所有项目的标记(“\”)、共享名、共享名与相对路径的组合;所述用于项目传送的参数包括用于项目传送的第一即时通信客户机的IP地址、用于项目传送的第一即时通信客户机的端口地址以及项目传送会话ID。
18.一种用于一个第一即时通信客户机的方法,用于请求开始从一个第二即时通信客户机接收在该第二即时通信客户机上共享出的项目,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括响应用户的请求开始接收共享项目的操作,生成请求开始接收共享项目的请求,所述请求中包括第二即时通信客户机的标识符、共享项目的指定信息以及用于项目传送的参数;将所述请求发送给即时通信服务器,以便转发到所述第二即时通信客户机;通过基于所述用于项目传送的参数与所述第二即时通信客户机之间建立的通信连接,从所述第二即时通信客户机接收共享的项目。
19.根据权利要求18所述的方法,还包括经由即时通信服务器,接收来自所述第二即时通信客户机的关于所述请求是否被授权的响应。
20.根据权利要求18所述的方法,所述共享项目的指定信息包括下列之一用于代表针对该第一即时通信客户机共享的所有项目的标记(“\”)、共享名、共享名与相对路径的组合;所述用于项目传送的参数包括用于项目传送的第一即时通信客户机的IP地址、用于项目传送的第一即时通信客户机的端口地址以及项目传送会话ID。
21.根据权利要求18所述的方法,还包括在响应用户的请求开始接收共享项目的操作,生成请求开始接收共享项目的请求的步骤之前,执行下列步骤响应用户的请求获取项目的操作,生成请求获取项目的请求,以获得共享项目的信息;通过即时通信服务器将请求获取项目的请求转发给第二即时通信客户机;通过即时通信服务器从第二即时通信客户机接收共享项目的信息或者错误信息作为响应。
22.一个第一即时通信客户机,用于根据来自一个第二即时通信客户机的请求将共享项目传送到该第二即时通信客户机,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述第一即时通信客户机包括接收装置,用于从即时通信服务器接收来自所述第二即时通信客户机的开始接收共享项目的请求,所述请求包括所述第一、第二即时通信客户机的标识信息、共享项目的指定信息以及用于项目传送的参数;管理装置,用于通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;项目传送装置,用于响应于管理装置确定所述请求是被授权的,基于所述用于项目传送的参数与所述第二即时通信客户机之间建立通信连接,以将共享项目传送到所述第二即时通信客户机。
23.根据权利要求22所述的客户机,还包括发送装置,用于响应管理装置确定所述请求是被授权的,将表示请求被授权的信息经由所述即时通信服务器返回给所述第二即时通信客户机,以及用于响应管理装置确定所述请求是未被授权的,将错误代码经由所述即时通信服务器返回给所述第二即时通信客户机。
24.根据权利要求25所述的客户机,所述管理装置还包括联系人判定装置,用于通过访问一个联系人存储装置,判定所述第一即时通信客户机是否是联系人/联系人组,或者用于通过查阅访问控制列表,判定所述第一即时通信客户机是否在访问控制列表中;路径名判定装置,通过查阅访问控制列表,判定所述第二共享目标客户机的标识符或其所在用户组的标识符、所述请求中提供的共享名是否在访问控制列表中有匹配;绝对路径获得装置,用于在路径名判定装置判定匹配时,获取所述请求项目的绝对路径;输出装置,用于在联系人判定装置或路径名判定装置判定不匹配时,输出错误信息,以及用于在这二者均匹配时,触发项目传送装置建立通信连接,并输出表明请求被接受的信息。
25.根据权利要求22所述的客户机,所述管理装置还包括存在判定装置,用于根据绝对路径获得装置找到的绝对路径,判定第二即时通信客户机请求开始接收的项目是否存在。
26.一种用于一个第一即时通信客户机的方法,用于根据来自一个第二即时通信客户机的请求将共享项目传送到该第二即时通信客户机,所述第一、第二即时通信客户机通过即时通信服务器通信相连,所述方法包括从即时通信服务器接收来自所述第二即时通信客户机的开始接收共享项目的请求,所述请求包括所述第一、第二即时通信客户机的标识信息、共享项目的指定信息以及用于项目传送的参数;通过查阅一个访问控制列表,根据所述请求中包括的第二即时通信客户机的标识信息以及共享项目的指定信息,确定所述第二即时通信客户机的请求是否是被授权的;响应于确定所述请求是被授权的,基于所述用于项目传送的参数与所述第二即时通信客户机之间建立通信连接,将共享项目传送到所述第二即时通信客户机。
27.根据权利要求26所述的方法,确定所述第二即时通信客户机的请求是否是被授权的步骤包括确定所述第二即时通信客户机或其所在联系人组是否在所述第一即时通信客户机的联系人列表中或访问控制列表中。
28.根据权利要求27所述的方法,还包括在所述确定步骤的结果为“是”时,进一步针对所述第二即时通信客户机或其所在联系人组确定共享项目指定信息是否在访问控制列表中有匹配。
29.根据权利要求28所述的方法,还包括在进一步确定存在匹配时,根据访问控制列表找到共享项目的绝对路径,或者根据访问控制列表提供的绝对路径与共享项目指定信息中提供的相对路径这二者的组合,找到共享项目的绝对路径。
30.根据权利要求29所述的方法,还包括根据找到的绝对路径确定请求开始接收的共享项目是否仍存在于第一即时通信客户机中。
31.根据权利要求30所述的方法,用于在确定共享项目仍然存在时,触发项目传送装置建立通信连接,同时将请求被授权的响应经由即时通信服务器返回给第二通信客户机。
32.根据权利要求27-30中任一项所述的方法,其中在任何一个确定步骤给出否定结果时,表明请求未被授权,并将错误信息作为响应经由即时通信服务器返回给所述第二即时通信客户机。
33.根据权利要求27所述的方法,还包括在从即时通信服务器接收来自所述第二即时通信客户机的开始接收共享项目的请求之前,执行下列步骤接收来自第二即时通信客户机的请求获取项目的请求,所述请求包括第一、第二即时通信客户机的标识信息以及共享项目的指定信息;第一即时通信客户机根据访问控制列表确定所述请求是否在访问控制列表中存在匹配,在确定存在匹配时,根据访问控制列表中的绝对路径,或者根据访问控制列表中的绝对路径与共享项目指定信息中的相对路径,从本地文件系统中找到共享项目信息,以经由即时通信服务器返回给第二即时通信客户机。
全文摘要
本发明提供了在即时通信客户机之间进行文件/文件夹共享的系统和方法。在本发明中,在共享源客户机对特定的联系人/联系人组共享出文件/文件夹时,建立一个访问控制列表,相关联地存储所述特定的联系人/联系人组和对其共享的文件/文件夹。在共享目标客户机请求访问共享项目信息时、请求获取项目、请求开始项目接收时,共享源客户机均会查阅此访问控制列表,以确定请求是否被授权。仅当请求被授权时,共享源客户机才能执行请求的操作。通过使用本发明,可以在即时通信客户机用户之间实现自动而灵活的文件/文件夹共享。
文档编号G06Q10/00GK1928861SQ20051009885
公开日2007年3月14日 申请日期2005年9月9日 优先权日2005年9月9日
发明者马嶽, 扈晓炜, 梁骞 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1