CN102143125A - Cpm会谈历史记录的访问方法及消息存储服务器 - Google Patents
Cpm会谈历史记录的访问方法及消息存储服务器 Download PDFInfo
- Publication number
- CN102143125A CN102143125A CN2010101200399A CN201010120039A CN102143125A CN 102143125 A CN102143125 A CN 102143125A CN 2010101200399 A CN2010101200399 A CN 2010101200399A CN 201010120039 A CN201010120039 A CN 201010120039A CN 102143125 A CN102143125 A CN 102143125A
- Authority
- CN
- China
- Prior art keywords
- information
- storage server
- cpm
- message storage
- file
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种CPM会谈历史记录的访问方法及消息存储服务器。在上述方法中,消息存储服务器接收来自于客户端的访问指令;消息存储服务器解析访问指令获取需要访问的文件目录标识,并获取文件目录标识对应的链接元数据信息;消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作。根据本发明提供的上述技术方案,在满足用户对消息存储服务器上存储的记录资源的自定义管理操作之外,还能够为用户提供多种视图,在尽量减小消息存储服务器管理开销的前提下,能够为用户提供良好的业务体验。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种融合的IP消息(Converged IP Messaging,简称为CPM)会谈历史记录的访问方法及消息存储服务器。
背景技术
融合的IP消息(Converged IP Messaging,简称为CPM)使能者是由OMA组织提出的一种可以跨越不同接入网,架构在统一的IP核心网之上,以支持终端用户的一对一、一对多以及与多个应用之间的各种媒体类型(例如,文本、图片、音频/视频片段、二进制文件、音频/视频流)的通信。
在融合的消息通信环境中,CPM使能者以CPM会谈为单位向用户提供CPM业务,使之进行信息交互,用户在通信的过程中希望能够将自己所参与的CPM会谈的历史交互信息由网络侧进行记录和存储,从而实现在需要的时候能够通过向网络侧服务器发送请求访问到自己曾参与过的CPM会谈的历史交互记录信息,真实地重现用户曾参与的会谈的全过程,并对网络侧服务器上存储的属于该用户自己的会谈历史记录信息进行管理。
CPM消息存储服务器为CPM用户提供上述存储CPM会谈历史记录的功能,而CPM消息存储客户端通过访问消息存储服务器对属于该CPM用户的CPM会谈历史记录及相关的内容进行访问和管理,并通过从网络侧获取的会谈历史记录信息进行解析,向CPM用户展示会谈的视图和内容。
CPM会谈描述了通信各方之间利用CPM使能者功能实体进行信息交互的操作,CPM会谈由任意数目的会话外交互的CPM消息、CPM文件和CPM会话组成。其中,CPM消息是可以包含多个离散(不连续)媒体(例如,文本、图片、音频片段、视频片段等)的信息体。CPM文件是参与者之间交换的一个或多个携带有多媒体内容的文件,接收方用户同意接收文件之后,文件传输过程才能够开始。CPM会话是指两个或多个参与者之间持续一段时间的逻辑连接,可用于参与方实时地交换连续性媒体,也可用于交换离散媒体和文件。CPM消息交互、CPM文件传输可以在CPM会话内进行,也可以在CPM会话之外进行。一般认为,每个CPM会谈在特定时间内只包含一个CPM会话,但用户可以并行参与多个CPM会谈。
CPM会谈历史记录是CPM会谈的存储表示。被授权责任人可以获取并存储他们在CPM会谈过程中交换的信息,并将上述信息作为CPM会谈历史记录存储到CPM业务提供商提供的消息存储服务器中。此时,CPM会话外交互的一条CPM消息被存储为一条CPM消息记录,CPM会话外进行的CPM文件传输被存储为一份CPM文件传输历史记录。而一个CPM会话则存储为一份CPM会话历史记录(包括会话内CPM消息、会话内CPM文件传输以及会话内交互的连续媒体片段等数据)。因此,从存储表示意义上讲,CPM会谈历史记录可以描述为CPM消息记录、CPM文件传输历史记录和CPM会话历史记录的集合。具体可以参见图1。
图1为CPM会谈与CPM会谈历史记录的关系及其所包含内容的示意图。CPM会谈历史记录功能,实际上就是对CPM会谈过程中交互的CPM消息、CPM文件传输以及进行的CPM会话进行记录。为了实现会谈历史记录功能,需要在网络侧有一个CPM功能实体能够在通信过程中同时位于信令平面和媒体平面上,作为B2BUA接收通信过程中所有的信令消息和媒体消息,通过解析从中提取出需要记录的信息,按照一定的格式进行记录:将CPM会话外交互的一条CPM消息记录为一份CPM消息记录文件,将CPM会话外传输的一个CPM文件记录为一份CPM文件传输历史记录文件,将一次CPM会话记录为一份CPM会话历史记录文件。CPM参与功能服务器完成上述的会谈历史记录功能,并将上述记录文件提交给CPM消息存储服务器,进行永久存储。
在消息存储服务器上作为物理文件实际存储的是CPM会谈历史记录中所包含的CPM消息记录、CPM文件传输历史记录和CPM会话历史记录。消息存储服务器应当对存储的会谈历史记录相关的资源进行管理,并支持如下功能:
(1)存储CPM消息记录、CPM文件传输历史记录、CPM会话历史记录、CPM会谈历史记录,包括作为CPM消息记录和CPM会话历史记录一部分的任意媒体对象;
(2)根据CPM用户偏好或者业务提供商策略,将本地已存资源与消息存储客户端本地存储的资源进行同步,包括在多设备场景下的同步管理;
(3)对已存资源的管理(例如,拷贝、删除等)和访问;查询已存资源;基于业务提供商策略和用户偏好,记录责任人对网络存储器执行的操作(例如,上传/下载/修改/删除CPM消息、CPM文件传输历史记录、CPM会话历史、CPM会谈历史,和作为CPM消息和CPM会话历史一部分的媒体对象等特定条目)等等。
相关技术中,为了存储消息,基于传统电子邮箱结构的存储模型方案可以参见图2。每一个用户拥有一块由业务提供商预先分配的存储区域,在该目录下,由一系列由***预先定义好的独立文件夹(例如,收件箱、废件箱、发件箱等)和用户自创建的独立文件夹(如Folder1、Folder2等)组成。使用该存储模型,消息记录和会话历史记录可以存储在任何目录下,用户可以手动操作将存储的内容在文件夹之间移动。
但是,上述方案存在以下缺点:
(1)CPM消息记录和CPM会话历史记录可以分布在任意的文件夹中,为了能够向用户提供CPM会谈视图,必须要通过使用额外的元数据来将分散在各个目录下的CPM消息记录、CPM会话历史记录和它们所属的CPM会谈关联起来。
(2)由于CPM消息记录和CPM会话历史记录可以分布在任意的文件夹中,服务器端无法支持消息存储客户端通过IMAP/THREAD命令([RFC5256])请求服务器为会谈历史记录构建线性视图,然而对于计算和存储资源有限的移动设备来说,完成构建线性视图的操作会带来较大的开销和负担,可能会造成响应速度慢等不利于用户使用体验的影响。
(3)由于属于一个CPM会谈的CPM消息记录、CPM会话历史记录可能分布在不同的文件夹中,则消息存储客户端在获取一个CPM会谈历史记录相关的内容时,需要不断通过IMAP/SELECT命令选中一个文件夹,然后才能通过IMAP/FETCH命令获取该文件夹下存储的记录文件,然后再重新SELECT另一个文件夹,获得该文件夹存储的记录文件,不断重复直到获取到该CPM会谈的所有内容,不断使用SELECT命令打开文件夹的操作增加了消息存储客户端和服务器之间的命令交互次数,存在额外开销,尤其对于移动设备而言,频繁冗余的命令交互会增加无线接口上的数据流量,增加用户使用业务的费用,降低用户使用业务的体验。
(4)用户的一些管理操作可能会破坏CPM会谈线性视图。在上述存储模型下,用户可以对消息存储服务器上的存储的资源进行任意的管理操作,例如,删除某个消息记录文件,然而造成的结果是破坏了消息之间的回复关系,从而破坏CPM会谈的线性视图。
相关技术中,还存在基于CPM会谈结构的存储模型方案,具体可以参见图3。如图3所示,该方案基于CPM会谈的结构特点来设计CPM的消息存储模型:即根据CPM会谈历史记录、CPM消息记录和CPM会话历史记录之间的包含关系,将每个CPM会谈历史记录所包含的记录资源文件存储在独立的会谈子文件夹中。
在该存储模型方案中,消息存储服务器为每一个CPM用户分配一块专属的存储区域,在该存储区域下为每一个CPM会谈建立一个对应的会谈子文件夹,将该CPM会谈所包含的每一个会话外CPM消息作为独立的消息记录文件、每一个CPM会话作为独立的CPM会话历史记录存储在该会谈子文件夹中。会谈文件夹的创建由***完成,用户的管理权限受限,只能够查看消息存储服务器上的资源,以防止用户的操作破坏CPM会谈视图。
基于CPM会谈结构的消息存储模型,将同属于一个CPM会谈的记录资源存储在同一个会谈文件夹中,节省了记录CPM会谈历史记录和其所包含的记录资源之间关联关系的元数据以及维护该关联关系的管理操作开销。且会谈文件夹的创建由CPM使能者执行,用户的操作权限受限,因此保证了CPM会谈的视图不会被用户的操作所破坏。
然而,上述方案存在以下缺点,由于会谈文件夹由消息存储服务器进行管理,用户没有操作权限,导致用户无法对消息存储服务器上存储的资源进行管理操作,无法创建自定义文件夹、无法移动/复制消息记录、会话历史记录文件,只能以会谈视图来查看,用户体验差。
发明内容
针对相关技术中构建线性视图的操作带来的额外开销以及用户对消息存储服务器上存储的资源进行管理操作时,会破坏CPM会谈记录等问题而提出本发明,为此,本发明的主要目的在于提供一种改进的CPM会谈历史记录的访问方法及消息存储服务器,以解决上述问题至少之一。
根据本发明的一个方面,提供了一种CPM会谈历史记录的访问方法。
根据本发明的CPM会谈历史记录的访问方法包括:消息存储服务器接收来自于客户端的访问指令;消息存储服务器解析访问指令获取需要访问的文件目录标识,并获取文件目录标识对应的链接元数据信息;消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作。
根据本发明的另一方面,提供了一种消息存储服务器。
根据本发明的消息存储服务器包括:第一接收单元,用于接收来自于客户端的访问指令;解析获取单元,用于解析访问指令获取需要访问的文件目录标识,并获取文件目录标识对应的链接元数据信息;执行单元,用于根据链接元数据信息执行与访问指令对应的访问操作。
根据本发明,为融合消息业务通信环境中的会谈历史记录定义了一种合适其自身特点的消息存储模型,并通过定义相关的元数据以及相关的存储管理操作形成完整的方案,可以满足CPM会谈的特点,同时满足用户对消息存储服务器上存储的记录资源的自定义管理操作之外,还能够为用户提供多种视图,在尽量减小消息存储服务器管理开销的前提下,能够为用户提供良好的业务体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为CPM会谈与CPM会谈历史记录的关系及其所包含内容的示意图;
图2为相关技术中基于传统电子邮箱结构的消息存储模型的示意图;
图3为相关技术中基于会谈结构的消息存储模型的示意图;
图4为根据本发明实施例的CPM会谈历史记录的访问方法的流程图;
图5为根据本发明实施例的消息存储模型方案的结构示意图;
图6为根据本发明实施例的用户获得访问控制列表操作的指令传输示意图;
图7为根据本发明实施例的用户设置访问控制列表操作的指令传输示意图;
图8为根据本发明实施例的用户删除访问控制列表操作的指令传输示意图;
图9为根据本发明实施例的用户获得访问权限操作的指令传输示意图;
图10为根据本发明实施例的用户请求设置活跃文件夹操作的指令传输示意图;
图11为根据本发明实施例的用户选择会谈文件夹,查看CPM会谈记录列表的指令传输示意图;
图12为根据本发明实施例的用户选择一个会谈历史记录,查看该CPM会谈历史记录的详细内容的指令传输示意图;
图13为根据本发明实施例的用户请求创建文件夹操作的指令传输流程图;
图14为根据本发明实施例的用户添加记录对象到自定义文件夹中操作的指令传输流程图;
图15为根据本发明实施例的用户查看自定义文件夹中的内容操作时,获取记录对象标识符信息的指令传输流程图;
图16为根据本发明实施例的用户查看自定义文件夹中的内容操作时,获取消息服务器中存储的会谈历史记录内容的指令传输流程图;
图17为根据本发明实施例的用户删除会谈历史记录操作的指令传输流程图;
图18为根据本发明实施例的用户删除会谈历史记录操作时MSS处理的流程图;
图19为根据本发明实施例的用户删除自定义文件夹中链接对象操作的指令传输流程图;
图20为根据本发明实施例的用户移动自定义文件夹中的链接对象操作的指令传输流程图;
图21为根据本发明实施例的消息存储服务器的结构框图;
图22为根据本发明优选实施例的消息存储服务器的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
根据本发明实施例,提供了一种融合的IP消息CPM会谈历史记录的访问方法。
图4为根据本发明实施例的CPM会谈历史记录的访问方法的流程图。如图4所示,根据本发明实施例的CPM会谈历史记录的访问方法包括以下处理(步骤S402-步骤S406):
步骤S402:消息存储服务器接收来自于客户端的访问指令;
步骤S404:消息存储服务器解析访问指令获取需要访问的文件目录标识,并获取文件目录标识对应的链接元数据信息;
步骤S406:消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作。
采用上述方法,通过在消息存储服务器的存储区域中存储链接元数据信息,将对用户管理区域的访问操作与***管理区域中存储的CPM会谈历史记录进行关联,解决了相关技术中构建线性视图的操作带来的额外开销以及用户对消息存储服务器上存储的资源进行管理操作时,会破坏CPM会谈记录的问题,可以在满足用户对消息存储服务器上存储的记录资源的自定义管理操作的同时,还能够为用户提供多种视图。
优选地,在消息存储服务器接收来自于客户端的访问指令之前,还可以包括以下处理:
(1)在消息存储服务器中创建***管理区域,其中,***管理区域包括存储会谈历史记录信息的第一存储单元、存储***预定义文件信息的第二存储单元;
(2)在消息存储服务器中创建用户管理区域,其中,用户管理区域包括存储用户自定义信息的第三存储单元。
优选地,上述会谈历史记录信息包括:会谈元数据信息和记录信息,其中,记录信息包括:至少一条CPM消息记录信息、至少一条CPM文件传输历史记录信息、至少一条CPM会话历史记录信息;
优选地,上述***预定义文件信息包括:***预定义的文件目录、***预定义的文件目录下属的链接元数据信息;
优选地,上述用户自定义信息包括:用户自定义文件目录、用户自定义的文件目录下属的链接元数据信息。
其中,上述用户自定义信息还可以包括:客户端上传的本地记录文件信息。
优选地,上述会谈元数据信息包括但不限于以下三类:会谈信息元数据信息、消息/传输文件历史记录信息、会话历史记录元数据信息。
上述消息存储服务器中创建的存储模型架构示例可以参见图5。如图5所示,在消息存储服务器上为每一个合法的用户分配一个专属的存储空间(如“Root-User”文件夹,即根目录),用于存储用户所拥有的会谈历史记录相关的资源记录,并向用户提供管理功能。用户专属存储空间(与“Root-User”目录对应)被划分为两部分:***管理区域和用户自定义管理区域。
其中,***管理区域由MSS预定义的文件夹组成,如图4所示的“Conversation-History”(会谈历史记录文件夹)、“ReceivedBox”(收件箱)、“SendBox”(发件箱)等都是由MSS预定义的文件夹。其中,会谈历史记录文件夹专用于存储会谈历史记录相关的记录资源,并在MSS上维持唯一的备份,为用户提供会谈视图。而其他的***文件夹则通过“链接元数据”关联存储在会谈历史记录文件夹中的内容,从而为用户提供一些***预定义的视图,如发件箱视图、收件箱视图等等。
其中,用户自定义管理区域由用户文件夹组成,如图4所示的“Folder1”、“Folder2”等都是由用户自行创建的文件夹。用户可以将感兴趣的、或觉得重要的CPM消息记录、CPM文件传输记录、CPM会话历史记录或其中的一部分,或CPM会谈历史记录“添加到”自定义的文件夹中,进行个性化管理,提供用户自定义的动态视图。用户文件夹通过“链接元数据”关联存储在“Conversation-History”文件夹中的内容,从而提供用户自定义的动态视图。另外,用户还可以上传本地的记录文件到消息存储服务器上的用户自定义文件夹中,并将上传的这些记录文件在不同的用户文件夹之间移动。
在该存储模型方案中,为了避免MSC向MSS请求CPM会谈历史记录所包含的记录文件(如消息记录、文件传输记录或会谈历史记录)时,需要不断地通过IMAP4/SELECT([RFC 3501])命令来选中目标文件夹以获取文件而带来的额外开销的弊端,本方案采用将所有的CPM会谈历史记录相关的文件(即所有的消息记录、文件传输历史记录、会话历史记录)都直接存储在“Conversation-History”文件夹下,并通过采用“会谈元数据”来记录CPM会谈的相关信息,维持CPM会谈历史记录和属于该会谈的CPM消息记录、CPM文件传输历史记录以及CPM会话历史记录之间的关联关系。
其中,***管理区域由MSS管理,主要用来存储和维护CPM会谈视图,用户的访问管理操作受限;用户管理区域中,用户拥有完全的管理权限,可以通过自定义文件夹来实现对会谈历史记录内容的分类管理,以提供多种不同的用户自定义视图。
其中,该消息存储模型中涉及的存储对象包含以下五类:
第一类:CPM消息记录对象:即用来存储一条会话外CPM消息记录(包含该消息携带的所有媒体对象);
第二类:CPM文件传输历史记录对象:即用来存储一个会话外的文件传输历史记录;
第三类:CPM会话历史记录对象:即用来存储一次CPM会话的历史记录信息(包含该CPM会话的会话状态信息,以及该会话中交互的所有CPM消息、传输的CPM文件以及交互的连续性媒体流对象);
第四类:元数据记录对象(即元数据信息):即用来采用元数据信息来提供灵活的管理能力,总的来说,可以包括两种类型的元数据:
会谈元数据(即上述会谈元数据信息):记录CPM会谈历史记录的描述信息,并维持CPM消息记录、CPM文件传输历史记录以及CPM会话历史记录和所属CPM会谈之间的关联关系,以提供会谈视图;
链接元数据(即上述链接元数据信息):维持CPM会谈内容和被链接到的文件夹(可以是***文件夹或用户文件夹)之间的关联关系,从而可以灵活地提供多种***默认视图和用户自定义视图。
本发明采用建立元数据模型的架构,可以提供灵活的管理能力,其中,元数据包括:会谈元数据、链接元数据。以下详细描述元数据模型。
例如,如图5所示,将会谈元数据存储在会谈历史记录文件夹下。将链接元数据分别存储在收件箱、发件箱、以及用户自定义的文件夹下。
其中,对于会谈元数据,会谈历史记录文件夹需要维持三类元数据,以分别记录和CPM会谈、CPM消息(CPM文件传输)和CPM会话相关的信息。会谈元数据可以从与该会谈相关的各个记录对象文件中提取,并作为元数据存储,当MSC请求呈现会谈视图的时候,需要首先向MSS请求会谈元数据,然后通过这些元数据获得MSS上存储的CPM会谈的描述信息,从而向用户提供会谈视图。CPM消息(传输文件)、CPM会话元数据则主要用来记录消息(文件传输)和CPM会话对象的摘要信息以及被哪些用户文件夹关联等信息,为MSS上的内容管理以及查询操作提供有用信息。
优选地,MSS每接收到一条CPM消息记录、CPM文件传输历史记录或CPM会话历史记录时,都要对其进行解析,提取出相关的信息,对三种类型的元数据表进行更新。
其中,对于链接元数据,优选地,可以为“SendBox”、“ReceivedBox”等***预定义文件夹,以及每个用户自定义的用户文件夹创建一张“链接元数据”信息表,用于当***将CPM会谈历史记录添加到“SendBox”、“ReceivedBox”等***预定义文件夹,或者用户将某个CPM消息记录对象、CPM文件传输历史记录对象、CPM会话历史记录对象、CPM会谈历史记录对象或其中的某一部分内容“添加到”自定义的用户文件夹中时,为这些对象在目标文件夹下建立对应的“链接元数据”,即在相应文件夹的“链接元数据信息表”中增加相应的表项记录,记录相关联的CPM会谈历史记录的“Conversation-ID”,或相关联的CPM消息记录、CPM文件传输历史记录、CPM会话历史记录的唯一存储标识符(UID)以及被关联的part号。
具体地,记录上述元数据信息,是为了在该文件夹下保存相关记录对象的存储路径信息,相当于为它们建立了“链接”,而不用重复存储相关的记录对象,以节省存储空间。另外,使用链接元数据能够关联到实际存储在会谈文件夹中的记录对象中的某一部分内容(如某个媒体附件等),这是使用传统的以文件为单位进行复制/移动的文件管理操作所无法实现的。
以下对会谈元数据和链接元数据进行详细的描述。
1、会谈元数据
在会谈历史记录文件夹中需要维持三类元数据,以分别记录和CPM会谈、CPM消息(CPM文件传输)和CPM会话相关的信息。其中,CPM会谈元数据尤为重要,因为CPM会谈历史记录是一个逻辑的概念,它并没有实际物理存储的文件与之对应,所以各个CPM会谈的描述信息必须要通过元数据来提供。会谈元数据可以从与该会谈相关的各个记录对象文件中提取,并作为元数据存储,当MSC请求呈现会谈视图的时候(如该用户拥有哪些会谈信息等),需要首先向MSS请求会谈元数据,然后通过这些元数据获得MSS上存储的CPM会谈的描述信息,从而向用户提供会谈视图。CPM消息(传输文件)、CPM会话元数据则主要用来记录消息(文件传输)和CPM会话对象的摘要信息以及被哪些用户文件夹关联等信息,为MSS上的内容管理以及查询操作提供有用信息。
MSS每接收到一条CPM消息记录、CPM文件传输历史记录或CPM会话历史记录时,都要对其进行解析,提取出相关的信息,对以下的这三种元数据表进行更新。下面介绍三种元数据表。
(1)CPM会谈信息元数据表
CPM会谈信息元数据的结构定义如下表1所示,第一列“字段名”说明会谈信息元数据表中应有的字段,第二列“说明”给出对应字段的解释说明,第三列“举例”给出该表项应填入内容的举例说明。
MSS接收到CPM参与功能提交的CPM消息记录、CPM文件传输历史记录、CPM会话历史记录时,应该首先对其进行解析,取得这些记录对象的会谈标识符,查询“CPM会谈信息元数据表”的“Conversation-ID”字段,如果没有找到相应的会谈元数据记录,则说明这是一个新的CPM会谈,需要在CPM会谈信息元数据表中为该CPM会谈新增一行元数据信息,并从接收到的历史记录对象中提取相关的信息来填写该会谈历史记录对应元数据记录的相应字段。
表1 CPM会谈信息元数据表(Conversation)
字段名 | 说明 | 举例 |
Conversation-ID | 会谈标识符,唯一地标识一个CPM会谈 | Conversation1 |
Start-Time | 会谈开始时间 | 2008/3/27 7:30 |
End-Time | 会谈结束时间 | 2008/3/27 8:30 |
Subject | 会谈主题 | Meeting for CPM |
Initiator | 会谈的发起者地址 | [email protected] m |
Participants | 会谈参与者地址 | [email protected] m;[email protected] m; |
Content-UID | 该CPM会谈历史记录所包含的CPM消息记录、CPM文件传输历史记录或CPM会话历史记录文件的唯一存储标识符(UID) | 1,5,6.. |
Thread-Result | 存储对该会谈进行线性排序的结果 | (2)(3 6 (423)(44 7 96)) |
Tag | 会谈历史记录的关联标记,即该会谈历史记录被关联的用户文件夹的名字。 | working,Important |
Deleted | 是否被用户执行过删除操作,布尔型 | True or False |
如表1所示的“会谈信息元数据表”,以会谈标识符为主键,每一行记录存储了一次CPM会谈相关的描述信息。
会谈开始的时间(Start-Time)、结束时间(End-Time)、会谈主题(Subject)、会谈的发起者(Initiator)信息、参与者(Participants)信息;
Content-UID:该会谈所包含的记录文件的UID(UID由MSS分配,文件夹作用域);
Thread-Result:即对该会谈历史记录进行线性排序的结果字符串。由于采用将所有的会谈历史记录内容存储在“Conversation-History”下的方案,因此客户端无法使用THREAD命令向服务器请求线性排序结果,为了解决这个问题,在会谈元数据信息表中增加这个记录项,将服务器对该会谈进行线性排序的结果作为元数据存储,这样消息存储客户端通过GETMETADATA命令就可以获取到对指定会谈的线性排序结果。
Tag:该会谈历史记录的“Tag”信息,即标识该会谈历史记录被关联到了哪些用户文件夹。例如用户将该会谈历史记录“添加到”他自定义的“working”文件夹和“Important”文件夹中,则在会谈信息表中对应的Tag记录项中,添加这两个文件夹的名称(working和Important,用逗号分隔),这样通过会谈信息表也能够很方便地找到这份会谈历史记录被哪些用户文件夹关联;
Deleted:标记该会谈历史记录是否被用户执行删除操作的“Deleted”字段,默认设置为“False”。如果用户在浏览会谈文件夹下的会谈视图时,选择了删除该条会谈历史记录,但该会谈会谈历史记录又被其他用户文件夹关联时,则将该字段设置为“True”,表示用户执行了会谈历史记录在会谈文件夹下的删除操作。则当MSC向MSS请求“会谈视图”时,MSS将不会将“Deleted”字段设置为“True”的会谈历史记录的信息返回给MSC。
(2)CPM消息/传输文件历史记录信息元数据表
MSS每接收到一条由CPM PF提交的CPM消息记录文件或CPM文件传输历史记录,就对其进行解析,提取出相关的信息(如贡献标识符、所属会谈的会谈标识符、是否是会话内传输的消息或文件、时间戳、发送者、接收者等)更新CPM消息/传输文件信息表,添加相应的记录。
CPM消息/文件传输历史记录信息元数据表的结构如下表2所示:
表2 CPM消息/文件传输历史记录元数据表
(Message_File)
字段 | 说明 | 举例 |
Contribution-ID | CPM消息或文件传输的贡献标识符,唯一标识该对象。 | Message2 orFile1 |
Belong-to-Conv-ID | 该消息或文件传输所属CPM会谈的会谈标识符。 | Conversation1 |
Belong-to-Session-ID | 该消息或文件传输是否属于CPM会话,如果属于会话内,则记录其所属CPM会话的贡献标识符,如果不属于CPM会话,则置空(NULL)。 | Session1 |
UID | CPM消息或文件传输对象的唯一标识符。如果这是一个CPM会话外对象,则记录该对象的UID;如果这是一个CPM会话内对象,则记录该消息或文件传输所属CPM会话历史记录对象的UID。 | 23 |
TimeStamp | 该消息或文件传输的时间戳。 | 2008/3/27 |
8:30 | ||
Sender | 该消息或文件传输的发送者。 | alice@example .com |
Receiver | 该消息或文件传输的接收者。 | bob@example. com |
Subject | 该消息或文件传输的主题。 | |
Tag | 该消息(或其中某一部分)或文件传输的关联标记,即记录与该消息(或某部分)或文件传输相关联的用户文件夹的名字。 | InterestMessage/2,Working/3 |
如表2所示的“CPM消息/文件传输记录信息元数据表”的结构,以该记录对象的贡献标识符为主键,每一行记录存储了一个CPM消息或一个CPM文件传输相关的描述信息,例如,
该CPM消息或文件传输的贡献标识(Contribution-ID)、所属CPM会谈的会谈标识符(Belonged-Conv-ID)、所属CPM会话的贡献标识符(Belonged-to-Session-ID,如果是会话外的对象,则将该字段置空)、由MSS分配的唯一存储标识符(UID)、时间戳(TimeStamp)、发送者(Sender)、接收者(Receiver)、主题(Subject);
“Tag”字段:该记录对象的关联标记,即与该CPM消息或CPM文件传输相关联的那些用户文件夹的名字,例如,用户将该条CPM消息的Part 2(附件1)关联到用户自定义的“InterestMessage”文件夹,则在该字段记录下目的文件夹的名称以及被关联的part号(用“/”分隔),如“Interest Message/2”;如果用户将该条CPM消息的Part3(附件2)关联到用户自定义的“Working”文件夹,则在该字段记录下目的文件夹的名称以及被关联的part号,如“Working/3”。
(3)CPM会话历史记录信息元数据表
MSS每接收到一份由CPM PF提交的CPM会话历史记录,就对其进行解析,提取出会话历史记录对象中的相关信息(如会话的贡献标识符、所属于CPM会谈的会谈标识符、会话建立时间、结束时间、会话发起者、参与者等信息),更新CPM会话信息表,添加相应的记录,存储相关的元数据,以便于之后的查找和搜索操作。具体内容如下表3所示:
表3 CPM会话历史记录元数据表(Session)
字段 | 说明 | 举例 |
Contribution-ID | 该CPM会话的贡献标识符,唯一地标识该CPM会话 | Session1 |
Belong-to-Conversation-ID | 该CPM会话所属CPM会谈的会谈标识符 | Conversation1 |
StartTime | 该CPM会话开始的时间 | 2008/3/27 8:30 |
EndTime | 该CPM会话结束的时间 | 2008/3/27 8:38 |
Initiator | 该CPM会话的发起者 | [email protected] |
Participants | 该CPM会话的参与者 | bob@ |
cpm.com | ||
UID | 该CPM会话历史记录在服务器上的唯一存储标识符 | |
Tag | 该CPM会话历史记录文件的关联标记,即与该CPM会话历史记录(或其中某一部分)相关联的用户文件夹的名字。 | Working/2,Important/3 |
如表3所示的“CPM会话历史记录信息元数据表”的结构,以该会话历史记录的贡献标识符为主键,每一行记录存储了一个CPM会话历史记录相关的描述信息,例如,
该CPM会话历史记录的贡献标识(Contribution-ID)、所属CPM会谈的会谈标识符(Belonged-Conv-ID)、由MSS分配的唯一存储标识符(UID)、会话开始时间(StartTime)、会话结束时间(End-Time)、发起者(Initiator)、参与者(Participants)。
“Tag”字段:该CPM会话历史记录的关联标记,即与该CPM会话历史记录(或其中某一部分)相关联的那些用户文件夹的名称,例如用户将该条CPM会话历史记录的音频片段(part2),关联到用户自定义的名为“Working”文件夹下,则在该字段记录下目的文件夹的名称以及被关联的Part号,如“Working/2”;如果用户将该条CPM会话历史记录的Part3(附件2)关联到用户自定义的“Important”文件夹,则在该字段记录下目的文件夹的名称以及被关联的part号,如“Important/3”。
2、链接元数据
为“SendBox”、“ReceivedBox”等***预定义文件夹,以及每个用户自定义的用户文件夹创建一张“链接元数据”信息表,用于当***将CPM会谈历史记录添加到“SendBox”、“ReceivedBox”等***预定义文件夹,或者用户将某个CPM消息记录对象、CPM文件传输历史记录对象、CPM会话历史记录对象、CPM会谈历史记录对象或其中的某一部分内容“添加到”这些自定义的用户文件夹中时,为这些对象在目标文件夹下建立对应的“链接元数据”,即在相应文件夹的“链接元数据信息表”中增加相应的表项记录,记录相关联的CPM会谈历史记录的“Conversation-ID”,或相关联的CPM消息记录、CPM文件传输历史记录、CPM会话历史记录的唯一存储标识符(UID)以及被关联的part号。
记录这样的元数据信息,是为了在该文件夹下保存相关记录对象的存储路径信息,相当于为它们建立了“链接”,而不用重复存储相关的记录对象,以节省存储空间。另外,使用链接元数据能够关联到实际存储在会谈文件夹中的记录对象中的某一部分内容(如某个媒体附件等),这是使用传统的以文件为单位进行复制/移动的文件管理操作所无法实现的。
链接元数据信息表的具体内容如下表4所示:
表4 链接信息元数据表(Relevance)
字段名 | 说明 | 举例 |
Seq | 链接信息元数据记录的序号,由客户端根据获得的服务器上最新的链接元数据记录信息递增分配,能够唯一地标识一条链接信息。 | 1,2,3… |
Link | 用于指示被关联的记录对象的类型、以及该对象的标识符。 | Message/11/2或File/12或Session/22/3或Conversation/conv3 |
如表4所示的“链接元数据信息表”的结构,该表中包含有两个字段,即“Seq”字段和“Link”字段,其中“Seq”字段是主键,用于唯一地标识一条链接信息,而“Link”字段用于记录被关联对象的相关信息,为字符串类型,该字段的值针对关联对象类型的不同,具体有不同的格式:
如果关联对象的类型是CPM消息记录对象(或其中某一部分)、或CPM文件传输记录对象、或CPM会话历史记录对象(或其中的某一部分),则按照“Type/UID/Part-Number”的格式进行记录,其中“Type”表示关联对象类型,“UID”表示关联对象记录文件的唯一存储标识符,“Part-Number”表示关联对象的哪一个部分。如关联的是UID为11的CPM消息的附件1(即Part2),则在该字段下新增“Message/11/2”的记录项;关联的是UID为22的会话历史记录对象的附件4(Part3),则在表中新增“Link”值为“Session/22/3”的记录项;
如果关联的是整个CPM会谈历史记录,则按照“Conversation/Conversation-ID”的格式进行记录,其中“Conversation”指示关联对象是CPM会谈历史记录,“Conversation-ID”指示该会谈历史记录的会谈标识符。如关联的是会谈标识符为“conv3”的会谈历史记录,则在表中新增“Link”值为“Conversation/conv3”的记录项。
创建了上述元数据模型之后,在需要访问的情况下,可以采取如下处理:
处理1:获取指定文件夹相关的元数据
MSC可通过IMAP4/GETMETADATA命令([RFC 5464])向MSS请求获取指定文件夹相关的元数据,如果指定的文件夹是“Conversation-History”文件夹,则可以从“CPM会谈信息元数据表”、“CPM消息/传输文件历史记录信息元数据表”、“CPM会话历史记录元数据表”这三种类型的元数据表中获取到相关的元数据。如果指定的文件夹是其他的***文件夹(如“SendBox”或“ReceivedBox”文件夹)或用户文件夹,则可以从“链接信息元数据表”中获得相关的链接元数据。该命令的格式如下(携带三个参数):
GETMETADATA<“指定文件夹的名称”><(选项)><(指定的元数据表或表中的字段名)>
<指定文件夹的名称>参数,给出MSC希望获取元数据的目标文件夹的名称,如MSC希望获取会谈描述信息时,就会指定该文件夹为“Conversation-History”,当用户希望查看自定义“Working”文件中的内容,就会指定该文件夹为“Working”;
<(选项)>参数:使用DEPTH选项,扩展返回元数据的范围,当将DEPTH选项设置为“Infinity”时,表示返回指定元数据表中的所有字段的值。
<(指定的元数据表或表中的字段名)>参数:格式为“/shared/表名/主键的值/具体字段”,用于指定MSC希望获取元数据的目标元数据表的名称以及该表中的哪个字段。相关的元数据表和对应的表名为(具体的字段名请参照表1、2、3、4):
CPM会谈信息元数据表:Conversation
CPM消息/传输文件记录信息元数据表:Message_File
CPM会话历史记录信息元数据表:Session
链接信息元数据:Relevance
以下结合实例进行描述,例(1),MSC向MSS请求CPM会谈历史记录的所有元数据时,使用如下命令:
GETMETADATA“Conversation-History”(DEPTH Infinity)(/shared/conversation/)
例(2),如果MSC只希望获取特定记录项的某一个字段的元数据信息,如希望获得会谈标识符为“Conv3”的会谈历史记录的会谈主题信息,则MSC可使用如下命令:
GETMETADATA“Conversation-History”(/shared/conversation/conv3/Subject)
例(3),MSC向MSS请求“SendBox”文件夹中的链接元数据时,使用如下命令:
GETMETADATA“SendBox”(DEPTH Infinity)(/shared/Relevance/)
例(4),MSC向MSS请求用户自定义文件夹(如“Working”文件夹)中的所有链接元数据时,使用如下命令:
GETMETADATA“Working”(DEPTH Infinity)(/shared/Relecance/)
处理1:设置指定文件夹相关的元数据
MSC还可通过IMAP4/SETMETADATA命令([RFC 5464])向MSS请求修改指定文件夹相关的元数据。由于***文件夹相关联的元数据表由MSS管理,MSC无权请求修改操作,故“Conversation-History”文件夹相关的三张元数据表、以及“SendBox”、“ReceivedBox”等***文件夹的“链接元数据信息表”的内容应由MSS进行管理,MSC不能进行修改,而只能够以只读状态进行访问。
故MSC只能对用户文件夹的“链接信息元数据表”中的链接元数据进行设置。该命令的格式如下:
SETMETADATA<“指定文件夹的名称”><(指定的元数据表或表中的字段名设置的值)>
<指定文件夹的名称>参数,给出MSC希望设置元数据的用户文件夹的名称;
<(指定的元数据表或表中的字段名设置的值)>参数:是一个形如(entry value)的值对,其中“entry”指定了MSC希望修改的元数据所在的表及对应的字段名称,而“value”表示希望设置的值。“entry”部分的具体格式为“/shared/表名/字段名/字段的值”。
例(1),MSC希望删除用户文件夹(“Working”)下的一个关联对象,该关联对象的链接信息序号为12,即“链接元数据表”中“Seq”字段的值“12”的链接记录,则MSC使用如下命令:
SETMETADATA“Working”(/shared/Relevance/12/LinkNIL)
第五类:文件夹对象(即文件目录):以上对象的组合存储容器,不同文件夹存储的内容并不相同。
其中,CPM消息对象记录、CPM文件传输历史记录、CPM会话历史记录对象是作为“叶子节点”存在,不可嵌套。而文件夹对象中,用户文件夹是可以嵌套的,以提供不同的分组层。
在具体实施过程中,创建上述消息存储模型主要包括以下处理:
(1)在***管理区域由MSS生成***预定义的文件夹,并存放在顶层目录下。
例如,MSS生成会谈历史记录箱、收件箱、发件箱。
其中,“Conversation-History”文件夹(会谈历史记录箱),专门用于存储和CPM会谈相关的内容,即所有的CPM会谈以及相关的消息记录对象、文件传输历史记录对象、会话历史记录对象都直接存储在该文件夹下;
“SendBox”文件夹(发件箱),用于以CPM会谈历史记录为单位提供“发件箱视图”。即MSS应将该CPM用户发起的CPM会谈历史记录归入“发件箱视图”,其中,发件箱中包含“链接元数据”,需要在“SendBox”文件夹的“链接元数据”中添加一项记录,建立存储在“Conversation-History”文件夹的CPM会谈历史记录和“SendBox”文件夹之间的关联关系,为用户提供***预定义的发件箱视图;
“ReceivedBox”文件夹(收件箱):以CPM会谈历史记录为单位提供“收件箱视图”。即MSS应将该CPM用户参与(并非发起方)的CPM会谈历史记录归入“收件箱视图”,其中,收件箱中包含“链接元数据”,即在“ReceivedBox”文件夹的“链接元数据”中添加一项记录,建立存储在“Conversation-History”文件夹中的CPM会谈历史记录和“ReceivedBox”文件夹之间的关联关系,为用户提供***预定义的收件夹视图。
因此,上述***预定义的文件夹,实际上是由MSS提供的三种***预定义视图,即“会谈视图”、“发件箱视图”、“收件箱视图”,此三种视图都是以CPM会谈历史记录为单位,为用户提供***预定义的存储内容的组织关系。
优选地,用户对***文件夹(例如,“Conversation-History”文件夹、“SendBox”文件夹和“ReceivedBox”文件夹)的管理操作是受限的。例如,不允许用户在***文件夹下创建子文件夹;不允许用户删除、复制、移动、重命名***文件夹;不允许用户上传文件到***文件夹;只允许用户查看***文件夹中的内容,只允许用户以会谈为单位删除会谈历史记录。
(2)上述会谈历史记录箱是在MSS上专门用于存储CPM会谈历史记录相关的内容的文件夹,也就是说,将所有的消息记录对象、文件传输历史记录对象和会话历史记录对象都直接存储在“Conversation-History”文件夹下。
优选地,通过“会谈元数据”信息维持会谈视图。即会谈历史记录箱中的记录对象和它们各自所属CPM会谈之间的关联关系通过“会谈元数据”信息来维持。
优选地,由于CPM会谈本身就是一个逻辑的概念,并没有实际的物理实体与之相对应,所以关于各个CPM会谈的描述信息需要通过元数据来提供,因此“会谈元数据”需要提供CPM会谈的描述信息。
(3)用户实际需求在用户管理区域中建立一个或多个自定义文件夹(可嵌套),并通过使用“链接元数据”建立存储在会谈历史记录文件夹中的实际会谈内容和用户文件夹之间的关联关系,从而提供用户自定义视图。
优选地,用户可以将本地存储的消息记录文件、文件传输历史记录文件或会话历史记录文件(或记录文件的某部分内容)上传到消息存储服务器上的用户自定义文件夹中,并可以将这些文件在不同的用户自定义文件夹之间进行移动。也就是说,对于用户自定义的文件夹,用户拥有完全的管理权限,可以创建子文件夹、重命名、移动、删除、复制用户文件夹和文件。
优选地,用户还可以上传本地记录文件到消息存储服务器上的自定义文件夹中,并可以在不同的用户文件夹之间将文件进行移动。也就是说,对于用户自定义的文件夹,用户拥有完全的管理权限,可以创建子文件夹、重命名、移动、删除、复制用户文件夹和文件。
优选地,在执行步骤S402之后,上述方法还可以包括以下处理:
(1)消息存储服务器将客户端对请求访问的文件信息的权限进行检查;
(2)消息存储服务器确定客户端对请求的文件信息具有访问控制权限。
其中,客户端的访问控制权限规定了用户能够对消息存储服务器上的文件夹以及该文件夹下所存储资源的访问及操控能力。每当用户请求对消息存储服务器上所存储的资源进行操控时(即执行不同的操作命令时),都需要对该请求方对相应资源的访问控制权限进行检查,只有满足一定的权限,消息存储服务器才可以执行相关的操作,否则消息存储服务器将拒绝请求方的请求命令,并返回错误应答消息。
根据[RFC 4314 ACL扩展]中的定义,上述访问控制权限可以参见访问控制列表(ACL),其中,ACL是一组<Access Identifiers,rights>值对,“Access Identifiers”标识责任人,而“rights”标识相应的责任人有哪些访问控制权限。一个ACL应用于一个“邮箱”(即文件夹)。
[RFC 4314]为IMAP4服务器上的文件夹及文件夹下的资源定义了以下的访问控制权限,并通过不同的权限标识符进行标识,例如:
l:lookup,表示文件夹可列表,即可以被LIST、LSUB、SUBSCRIBE命令访问;
r:read,表示文件夹可读,即可被SELECT、STATUS命令访问;
s:在会话中保持seen/unseen标记信息,即可通过STORE命令设置或清除\SEEN标记;
w:write,表示文件夹可写,即可通过STORE设置或清除除了\SEEN和\DELETED之外的其他标记,或通过APPEND、COPY命令对除了\SEEN和\DELETED之外的其他标记进行设置;
i:insert,表示文件夹可被APPEND、COPY命令操作;
k:create mailboxes,表示可使用CREATE命令在该文件夹下创建任意层次的字文件夹,或通过RENAME命令对该文件夹进行移动/重命名操作;
x:delete mailboxes,表示该文件夹可通过DELETE命令删除,或可被RENAME命令删除源文件夹;
t:delete Messages,可通过STORE操作对该文件夹下的文件设置或清除\DELETED标记,通过APPEND/COPY命令设置\DELETED标记;
e:可通过EXPUNGE命令执行删除操作;
a:administer,可执行SETACL、DELETEACL、GETACL、LISTRIGHTS等对访问控制列表进行管理的命令;
在具体实施过程中,消息存储服务器上的文件夹可以分成两种不同的类型:(1)由***创建的文件夹,如“Root-User”根目录文件夹,以及“Conversation-History”会谈历史记录文件夹;(2)由用户自定义创建的文件夹,如“Folder1”、“Folder2”等;
当MSS创建一个文件夹时就会首先为这个文件夹分配一定的权限,之后用户对该文件夹的操作应该依据权限来执行。当然,根据***请求创建的文件夹和用户请求创建的文件夹的不同,MSS为其分配的权限也不相同。
例如,为***级文件夹分配用户访问控制权限,CPM用户主要对***文件夹进行查看行为,应限制其他的如修改、删除、移动等操作权限,防止用户的误操作对CPM会谈历史记录完整性的破坏。所以对于***级文件夹,可以分配以下访问权限:l、r等。***文件夹不能分配以下访问权限:x、k等。
在为用户自定义文件夹分配访问控制权限时,因为用户对自己创建的文件夹拥有完全的访问控制权限,可以分配所有的权限标识符,并且用户还可以按照[RFC 4314]的规定和流程,通过SETACL、DELETEACL、GETACL、LISTRIGHTS等命令来管理自定义文件夹的各种访问控制权限,即为别的CPM用户赋予访问用户自定义文件夹的相关权限的能力。
以下结合四个实施例分别对用户“获得访问控制列表操作”、“设置访问控制列表操作”、“删除访问控制列表操作”以及“获得访问权限操作”进行描述,其中,上述操作都是针对用户文件夹进行的,***文件夹由于出于安全性考虑,没有对用户分配“a”(administer)权限,故用户无法管理***文件夹的访问控制列表。
实施例一:用户获得访问控制列表操作
用户如果想获得某个用户文件夹的访问控制列表,则按照[RFC4314]中的规定,由MSC构造IMAP4/GETACL命令,指定目标文件夹的名称,向MSS请求目标文件夹的访问控制列表,具体可以参见图6。
用户向MSS请求“Working”用户文件夹的访问控制列表,MSS接收到该命令后检查请求方用户是否对目标文件夹具有“a”权限,即是否能够获取访问控制列表的权限。如果具有该权限,则MSS在对GETACL命令的应答消息中返回访问控制列表,如上图所示,访问控制列表中显示,用户“Fred”对目标文件夹拥有“rwipslxetad”权限,而用户“Chris”对目标文件夹拥有“lrswi”权限。
如果请求方用户对目标文件夹不具有“a”权限,则MSS应该使用失败应答消息拒绝请求方的GETACL命令。
实施例二:用户设置访问控制列表操作
如果用户希望对某个用户文件夹的访问控制列表进行设置,例如为另外的用户赋予某些权限,则应该按照[RFC 4314]中规定的流程,由MSC构造IMAP4/SETACL命令,请求MSS为指定目标文件夹添加对某用户的访问控制权限,具体可以参见图7。
用户向MSS请求为另外的用户“Chris”增加对目标文件夹“Working”的访问控制权限“cda”。MSS接收到该命令后,首先应该检查请求方用户对目标文件夹是否具有“a”权限,如果请求方用户对目标文件夹具有“a”权限,那么MSS将按照SETACL命令中的请求,为目标文件夹“Working”的访问控制列表中,增加“Chris”用户的“cda”权限;如果请求方用户对目标文件夹不具有“a”权限,则MSS应该使用失败应答消息拒绝请求方的SETACL命令。
实施例三:用户删除访问控制列表操作
如果用户希望删除另一个用户对某用户文件夹的访问控制列表,则应该按照[RFC 4314]中规定的流程,由MSC构造“IMAP4/DELETEACL”命令,请求MSS将指定用户对目标文件夹的访问控制权限列表删除,具体可以参见图8。
用户向MSS请求删除另外的用户“Fred”对目标文件夹“Working”的访问控制权限列表。MSS接收到该命令后,首先应该检查请求方用户对目标文件夹是否具有“a”权限;如果请求方用户对目标文件夹具有“a”权限,那么MSS将按照DELETEACL命令中的请求,为目标文件夹“Working”的访问控制列表中,删除“Fred”用户的所有访问控制权限;如果请求方用户对目标文件夹不具有“a”权限,则MSS应该使用失败应答消息拒绝请求方的DELETEACL命令。
实施例四:用户获得访问权限操作
如果用户想获得某个特定的用户对自己所创建的用户文件夹拥有哪些访问控制权限,则可按照[RFC 4314]中的规定,由MSC构造“IMAP4/LISTRIGHTS”命令,请求MSS返回指定用户对目标文件夹的访问控制权限列表,具体可以参见图9。
用户向MSS请求获得某用户“Smith”对目标文件夹“Working”的访问控制权限列表。MSS接收到该命令后,首先应该检查请求方用户对目标文件夹是否具有“a”权限;如果请求方用户对目标文件夹具有“a”权限,那么MSS将按照LISTRIGHTS命令中的请求,在目标文件夹“Working”的访问控制列表中,查找“Smith”用户的所有访问控制权限,并在对LISTRIGHTS命令的应答消息中返回;如果请求方用户对目标文件夹不具有“a”权限,则MSS应该使用失败应答消息拒绝请求方的LISTRIGHTS命令。
用户进行消息存储访问操作主要包括以下处理(操作一至操作十):
在具体实施过程中,当CPM用户希望查看MSS上存储的内容时,首先将使用MSC(即上述客户端)登陆MSS(即消息存储服务器)。
步骤1、用户使用MSC登陆MSS;
其中,MSC将按照[RFC 3501]的规定和流程通过使用IMAP4/AUTHENTICATE命令或IMAP4/LOGIN命令和MSS之间进行认证,只有认证成功,MSC才可以访问MSS上的资源,如果认证失败,MSC将无法访问MSS上的资源。
优选地,AUTHENTICATE命令允许MSC不发送文本格式的用户名和口令,而是使用其他的认证机制登陆MSS。当使用该命令时,MSC必须按照[RFC 3501]中的规定和流程,构造一条有效的AUTHENTICATE命令,并在<authentication mechanism name>参数中使用特定的认证机制。
步骤2:MSS接收到该命令后会返回一个提示字符串,提示MSC选择适当的认证方法,如果MSS不支持MSC建议的认证方法,将返回NO应答消息。这时MSC必须尝试使用其他认证方法,直至使用LOGIN命令。
其中,LOGIN命令允许MSC使用文本方式的用户名和口令登陆MSS,尽管这并不是一个好的方法,但有时却是MSC和MSS之间均可使用的唯一方法。当使用该命令时,MSC必须按照[RFC 3501]中的规定和流程,构造一条有效的LOGIN命令,在<user name>参数中使用MSC的用户名,在<password>参数中使用口令。
步骤3:MSS接收到LOGIN命令后,使用用户名和口令进行认证,若认证成功,则返回OK应答消息,认证失败则返回NO应答消息,若参数错误则返回BAD应答消息。
在用户登录消息存储器之后,如果用户选择某个文件夹(可以是***文件夹,也可以是用户文件夹)进行查看,那么MSC首先通过构造IMAP4/SELECT命令([RFC 3501])携带该文件夹的名字,请求MSS选中该文件夹。MSS接收到该命令后将目标文件夹设置为活跃文件夹。
如图10所示,如果用户选择“Conversation-History”文件夹,则MSC构造如下的SELECT命令向MSS请求将该文件夹设置为活跃文件夹。
同样,用户还可以选中用户文件夹以将其设置为活跃文件夹。
操作一、用户选中会谈历史记录箱,查看CPM会谈历史记录列表;
用户通过MSC登录MSS之后,首先会获得服务器上的可用文件夹列表,用户在界面上看到“Conversation-History”文件夹(会谈历史记录箱),当用户希望查看会谈历史记录文件夹下有哪些会谈历史记录时,MSC就会向MSS请求会谈历史记录的相关信息。
优选地,当用户需要查看会谈历史记录信息时,方法还可以包括以下处理:
(1)消息存储服务器接收来自于客户端的会谈元数据信息请求指令,其中,会谈元数据信息请求指令携带有会谈元数据信息所属的目录标识信息;
(2)消息存储服务器将会谈元数据信息发送至客户端以进行解析和呈现。
上述图2所示的架构中,将所有的记录对象分散在任意的文件夹中,没有定义相应的机制来展现“会谈历史记录”。而图5所示的存储架构中,会谈视图可以通过会谈元数据提供。
具体地,MSC可使用IMAP4/GETMETADATA命令([RFC5464]),指定目标文件夹的名称为“Conversation-History”,向MSS的会谈历史记录文件夹请求获取“会谈信息元数据表”所有会谈历史记录元数据信息。MSC在获取到会谈相关的描述信息之后,进行解析并在客户端展现会谈视图。(注:“Deleted字段”设置为“True”的那些CPM会谈将不会通过***提供的会谈视图呈现给MSC。)
以下结合实例进行描述。
如果用户选择CPM会谈文件夹(即“Conversation-History”),希望查看CPM会谈记录信息,则MSC应该向MSS发送IMAP4/GETMETADATA命令([RFC 5464]),获取“Conversation-History”文件夹相关联的CPM会谈元数据信息,作为CPM会谈的描述信息,在客户端展现。
因为CPM会谈是一个逻辑概念,并没有实际的物理存储实体与之相对应,也就是说CPM会谈的摘要信息(如发起时间、结束时间、会谈主题、参与者等)信息都来自于该会谈所包含的CPM消息或CPM文件传输历史记录或CPM会话历史记录。当MSC向MSS请求会谈摘要信息时,MSS不可能每次都去解析CPM消息记录文件或者CPM文件传输历史记录文件或者CPM会话历史记录文件,从而获得CPM会谈的相关信息,而通过元数据可以较好地记录这些信息。故使用[RFC 5264]扩展的GETMETADATA命令来获取会谈信息元数据,具体参见图11。
如图11所示,该GETMETADATA请求命令之后,执行以下步骤:
步骤1:解析该命令,提取出<目标文件夹名称>参数为“Conversation-History”,<选项>参数为“DEPTH infinity”,<entry>参数为“/shared/Conversation/”后;
步骤2:根据元数据表名为“Conversation”,MSS查询会谈历史记录文件夹的“CPM会谈信息元数据表”,取得该表中所有那些“Deleted”字段设置为“False”的记录行(表示用户没有执行过会谈记录删除操作的那些记录,即有效会谈历史记录信息)的所有字段以及对应的值,通过GETMETADATA的应答命令向MSC返回。
由图可知,MSS返回的GETMETADATA命令的应答消息中获得MSS上存储的有效CPM会谈信息元数据表的所有信息。如图6所示的GETMETADATA命令返回的是一系列的值对<entry,value>,其中,entry指示元数据表中的字段,而value是该字段对应的值。例如“/shared/conversation/convID1/StartTime“2009/05/22 18:00””表示会谈信息表中会谈标识符为“ConvID1”的CPM会谈历史记录的会谈开始时间(“StartTime”)为“2009/05/22 18:00”。这样MSC就能够获取到MSS上存储了哪些会谈,以及这些会谈的摘要信息,MSC就能够通过界面向用户展现。例如,当用户选择了会谈文件夹之后,就会在右侧的显示区域以一行记录为单位显示该会谈文件夹下存储的所有CPM会谈的摘要信息。
操作二、用户选择一个会谈历史记录,查看该会谈历史记录的具体内容;
优选地,在查看会谈历史记录信息之后,方法还可以包括以下处理:
(1)消息存储服务器接收来自于客户端的记录对象标识信息;
(2)消息存储服务器将记录对象标识信息对应的记录对象的部分或全部信息发送至客户端以进行呈现。
在具体实施过程中,当用户在获得会谈列表后,已经通过命令获取到该会谈的相关元数据信息,其中,该信息包括了<Content-UID>字段的值,该字段值记录的正是该CPM会谈包含的所有CPM消息记录、CPM文件传输历史记录、CPM会话历史记录文件的UID(MSS上的唯一存储标识符),使用这些UID,MSC就能够通过相应命令向MSS获取该CPM会谈相关的所有记录文件的头部信息或内容信息,在本地呈现。
以下结合实例进行描述。
CPM用户查看到会谈信息列表时,可能选择其中一条CPM会谈历史记录,查看其详细的记录内容。由于MSC已经通过LIST命令获取到CPM会谈历史记录在MSS上对应的会谈历史记录子文件夹的名称,则MSC可以通过IMAP4/SELECT命令选中对应的会谈历史记录子文件夹,再通过IMAP4/FETCH命令取得该文件夹下与该CPM会谈相关的所有记录文件,具体可以参见图12。
如图12所示,当MSC通过IMAP4/SELECT命令([RFC 3501])选中对应的会谈历史记录子文件夹之后,就可以通过IMAP4/FETCH命令([RFC 3501])向MSS请求获取该会谈包含的CPM消息记录文件、CPM文件传输历史记录文件和CPM会话历史记录文件的头部或正文部分信息,MSS接收到该命令之后,获取到相关的信息通过FETCH应答命令向MSC返回。
MSC在本地存储上述信息,并进行解析,向用户展现该CPM会谈历史记录的内容。
用户浏览CPM会谈历史记录内容,如果希望查看某条CPM消息或CPM会话历史记录携带的媒体附件的内容,则MSC通过FETCH命令携带希望获取的媒体附件所在的消息记录文件或CPM会话历史记录文件的UID以及媒体附件的part编号,向MSS请求数据。MSS接收到该命令后进行解析,根据UID和Part号取得相应的数据向MSC返回,MSC在本地存储并进行解析呈现。
在具体实施过程中,上述用户自定义文件夹(用户自定义文件目录)是用户在MSS的用户管理区域中创建的。由于操作权限的限制,用户无权在***管理区域中创建文件夹,只能够在用户管理区域中创建自定义文件夹。
MSC通过构造IMAP4/CREATE命令([RFC 3501])请求MSS创建用户自定义文件夹,并在CREATE命令中的<mailbox name>参数中携带该用户要创建的文件夹的名称,该文件夹的命名符合标准路径命名规则,使用斜线(/)作为层次分隔符。
如图13所示,MSC使用CREATE命令创建名为“working/ims/cpm”的文件夹,且该路径并不存在时,MSS将在用户的登录目录下首先创建working文件夹和ims文件夹,再在working/ims路径下创建cpm文件夹。
当MSC接收到来自MSS的OK应答命令时,表示创建文件夹操作成功完成,MSC在本地呈现新创建的文件夹。如果MSC接收到来自MSS的NO应答命令或BAD应答命令时,表示创建文件夹操作失败,不能创建指定的文件夹,则MSC向用户返回错误提示信息。
操作三、在访问指令指示将部分或全部会谈历史记录信息添加到自定义文件目录(即用户添加CPM消息记录(或其中某一部分)、CPM文件传输历史记录、CPM会话历史记录(或其中某一部分)或CPM会谈历史记录到自定义文件夹中)时,上述步骤S406可以进一步包括以下处理:
(1)消息存储服务器将需要关联的记录项添加在链接元数据信息中,以使记录项的部分或全部信息与用户自定义文件目录相关联;
(2)消息存储服务器根据记录项的类型更新会谈元数据信息的关联字段。
在具体实施过程中,用户在浏览CPM会谈历史记录的时候,可能对某个CPM消息记录/CPM文件传输历史记录/CPM会话历史记录、或记录文件中的某个部分(如某图片、音频、视频)、或对这整条CPM会谈历史记录感兴趣,希望将它们添加到自定义的文件夹中进行分类管理,进行分类管理,从而构建个性化的视图。则执行以下处理:
步骤1:用户执行“添加操作”,MSC通过构造IMAP4/SETMETADATA命令([RFC 5464])修改目标用户文件夹的“链接元数据信息表”,增加关联该记录对象的记录项。
步骤2:MSS接收到该请求命令后,首先进行解析获取目标文件夹的名称,然后查询该文件夹的链接元数据信息表,在该表中增加相应的记录项,将实际存储在会谈历史记录文件夹中的指定的记录或记录的某个部分与该文件夹进行关联。
步骤3:MSS根据关联对象的类别,相应地更新会谈信息元数据表、消息/传输文件历史记录元数据表、会话历史记录元数据表中的“Tag”字段,添加目标用户文件夹的名称和/或被关联的Part号,以添加关联关系。
以下结合实例进行描述。
用户在浏览CPM会谈历史记录内容的时候,可能对某条CPM消息记录、CPM文件传输历史记录或某条CPM会谈历史记录或这些记录中某个部分(如某图片、音频、视频)或对整个CPM会谈历史记录感兴趣,希望将它们添加到自定义的文件夹中进行分类管理,则用户执行“添加链接对象操作”。
在传统的消息业务中(如Email),是采用IMAP4/COPY命令以文件为单位将源文件拷贝到目标文件夹下,如果使用该命令,则用户只能够以一整条消息记录、会话历史记录为单位。而本技术发明方案中,MSC通过构造IMAP4/SETMETADATA命令修改目标文件夹的“链接元数据信息表”,增加与被关联记录对象相关的记录项,能够灵活地实现关联一个CPM会谈历史记录或一个记录文件或记录文件中的某一部分(如某个图片、音频、视频等)。
如图14所示,MSC在发起“添加链接对象操作”之前,首先要通过IMAP4/GETMETADATA命令获得服务器上与目标用户文件夹相关联的最新“链接元数据”,才能够正确地对MSS上的“链接元数据”进行修改操作。
如图14所示,MSC已经知道MSS上用户文件夹“Working”下已经存在有9个链接对象,则当MSC请求将会谈文件夹下存储的一条UID为2的CPM消息记录的Part 2(附件1)添加到用户自定义的“Working”文件夹中时,应该将链接元数据序列号递增设置为10。
MSS接收到该命令后执行以下的操作:
步骤1、进行解析,取得目标用户文件夹的名字;
步骤2、查找到“Working”文件夹的链接元数据表“Relevance”,在该表中的“Seq”字段中查找值为“10”的记录,如果找到,说明该文件夹下已经存在序列号为10的链接记录,则MSS返回错误应答;如果不存在该记录,则MSS将增加一个序列号为“10”的记录添加到该元数据表中,并将<Link>字段设置为“Message/2/2”;
步骤3、在操作成功情况下,MSS向MSC返回成功应答。
步骤4、MSS更新“Conversation-History”文件夹的“CPM消息/文件传输历史记录元数据表”,找到UID为2的那项记录,然后在该记录的“Tag”字段中加入“Working/2”字符串,表示该消息记录的Part 2部分和Working文件夹相关联。
同理,如果MSC希望将会谈文件夹下存储的一条UID为13的CPM会话历史记录添加到用户自定义的“My Favorite”文件夹中,则MSC首先应该向MSS请求用户文件夹“My Favorite”当前最新的“链接元数据”信息,获知目前该文件夹下共有10个链接对象,则MSC将链接元数据的序列号递增设置为11,并使用如下的命令:
SETMETADATA“My Favorite”(/shared/Relevance/11/Link“Session/13”)
MSS接收到该命令进行解析后,首先对“My Favorite”文件夹的“链接元数据信息表”(Relevance)中添加(11,Session/13)记录行后,还需要更新“Conversation-History”文件夹的“会话历史记录元数据表”,找到UID为13的那项记录,然后在该记录项的“Tag”字段中加入“My Favorite”文件夹的名称,表明该会话历史记录文件和“My Favorite”文件夹相关联。
优选地,如果MSC希望将一个CPM会谈历史记录添加到用户自定义的“Working”文件夹中,则使用如下的命令:
SETMETADATA“working”(/shared/Relevance/12/Link“Conversation/convID1”)
MSS接收到该命令进行解析后,首先对“Working”文件夹的“链接元数据信息表”(Relevance)中添加(12,Conversation/conID1)记录行后,还需要更新“Conversation-History”文件夹的“CPM会谈信息元数据表”,找到会谈标识符为convID1的那项记录,然后在该记录项的“Tag”字段中加入“Working”文件夹的名称,表明该会谈历史记录文件和“Working”文件夹相关联。
操作四、在访问指令指示将***预定义文件目录对应的信息进行呈现(即用户查看“SendBox”、“ReceivedBox”等***预设文件夹中的内容)时,消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作包括:
(1)消息存储服务器将***预定义文件目录关联的第一会谈历史记录标识信息发送至客户端;
(2)在客户端本地保存有第一会谈历史记录标识信息对应的全部记录文件的第一标识信息时,消息存储服务器接收来自于客户端的全部或部分第一标识信息;
优选地,在客户端本地未保存有会谈历史记录标识信息对应的全部记录文件的标识信息时,方法还可以包括:
(2.1)消息存储服务器接收来自于客户端的标识请求指令;
(2.2)消息存储服务器将会谈历史记录标识信息对应的全部记录文件的标识信息发送至客户端;
(2.3)消息存储服务器接收来自于客户端全部或部分全部记录文件的标识信息,并将全部或部分全部记录文件的标识信息对应的记录信息发送至客户端以进行呈现。
(3)消息存储服务器将全部或部分第一标识信息对应的记录信息发送至客户端以进行呈现。
在具体实施过程中,MSC获取用户请求,通过IMAP4/GETMETADATA命令向MSS请求目标文件夹的“链接元数据”,从而获得该文件夹所关联的所有会谈历史记录的会谈标识符信息。
其中,MSC取得“SendBox”或“ReceivedBox”文件夹所关联的会谈历史记录的会谈标识符之后,包括以下两种处理方式:
方式1:如果本地保存有会谈的描述信息,即该会谈所包含的所有记录文件的UID信息(如在通过查看“Conversation-History”文件夹内容时取得),则MSC首先通过SELECT命令选择“Conversation-History”文件夹,然后使用这些UID,通过IMAP4/FETCH命令向MSS的请求相关记录文件的具体内容;
方式2:如果MSC本地没有保存会谈的描述信息,则MSC首先通过IMAP4/GETMETADATA命令向MSS的请求会谈元数据的“Content-UID”字段的内容,取得该会谈所包含的所有记录文件的UID信息,然后再通过SELECT命令选择“Conversation-History”文件夹,最后使用上述UID,通过IMAP4/FETCH命令向MSS请求相关记录文件的具体内容。
操作五、在访问指令指示将用户自定义文件目录对应的信息进行呈现(即用户查看自定义文件夹中的内容)时,消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作还可以包括:
(1)消息存储服务器将用户自定义文件目录关联的第二会谈历史记录标识信息发送至客户端;
(2)在客户端本地保存有第二会谈历史记录标识信息对应的全部记录文件的第二标识信息时,消息存储服务器接收来自于客户端的全部或部分第二标识信息;
(3)消息存储服务器将全部或部分第二标识信息对应的记录信息发送至客户端以进行呈现。
在具体实施过程中,当用户选择自定义文件夹进行查看,上述文件夹中除了链接对象之外,还可能存储有用户从本地上传的记录文件。因此,MSC首先通过SELECT命令选中用户文件夹,获得该文件夹下存储的实际记录文件的UID,然后通过FETCH命令将上述用户上传记录文件的内容取回本地。然后,MSC再通过IMAP4/GETMETADATA命令向MSS请求该用户文件夹的“链接元数据”,从而获得该文件夹所关联的所有链接对象的UID信息。具体处理包括以下三种情况:
情况一:如果关联的是整个会谈历史记录,则MSC将获得该会谈历史记录的会谈标识符,并使用该会谈标识符在本地存储的会谈信息(在查看会谈列表操作时获得)中查询该会谈所包含的相关记录文件的UID,然后使用这些UID通过IMAP4/FETCH命令向MSS的会谈历史记录文件夹请求该会谈的具体内容;
情况二:如果关联的是一条完整的消息记录、文件传输历史记录或会话历史记录文件,则MSC将获得该记录文件的UID,然后MSC使用该UID通过IMAP4/FETCH命令向MSS的会谈历史记录文件夹请求该记录文件的具体内容;
情况三:如果关联的是一条消息记录文件或会话历史记录文件的某一部分(如携带的某个媒体对象),则MSC将获得对应记录文件的UID和指示该部分的<Part-Number>,然后MSC使用该UID和<Part-Number>通过IMAP/FETCH命令向MSS的会谈历史记录文件夹请求该部分的具体内容。
然后,MSC通过SELECT命令选中“Conversation-History”文件夹,并使用已经获取的关联的记录对象的UID信息,通过FETCH操作将关联对象的内容取回本地,因此用户就能够查看到自定义文件夹中的内容。
以下结合实例进行描述。
当用户选择了自定义的文件夹(如“Working”)进行浏览,则MSC首先需要MSS发送SELECT命令选中目标文件夹“Working”,并在MSS返回的应答命令中获取到该文件夹下存储的用户上传的记录文件的UID。然后MSC通过FETCH UID命令将这些记录内容取回本地。然后MSC使用GETMETADATA命令请求“Working”文件夹的“链接元数据”信息,以能够获得该文件夹所关联的所有的CPM消息记录、CPM文件传输历史记录、CPM会话历史记录或CPM会谈历史记录对象的标识符信息。
如图15所示,MSC按照[RFC 5464]构造GETMETADATA命令,设置目标文件夹名为希望查看的用户自定义文件夹名“Working”,设置<选项>参数为“DEPTH infinity”,表示取得元数据表中的所有记录,设置<entry>参数为“/shared/Relevance”,表示希望取得“链接元数据信息表”中的记录。
MSS接收到该命令之后,取得GETMETADATA命令所携带的参数值,然后去目标文件夹的“链接元数据信息表”中取得所有的记录项,并通过GETMETADATA命令的应答消息向MSC返回。MSC通过解析应答命令就能够获得该文件夹下所关联的所有CPM会话历史记录、CPM消息记录、CPM文件传输历史记录的UID或UID+<Part-Number>,或CPM会谈历史记录的会谈标识符。
则MSC执行SELECT命令,选中会谈文件夹,然后通过得到的各种UID和相关<Par-Number>使用FETCH命令去MSS上获取实际存储的记录内容,如图16所示,MSC向MSS请求获得UID为2的记录文件的Part 2,请求UID为12的记录文件的Part 3,请求UID为1,2,4,5,6的记录文件的头和正文部分。MSC获得这些记录内容之后,在本地呈现给用户查看。
操作六、用户删除会谈历史记录
在用户需要在所述***管理区域中删除一整条会谈历史记录信息时,所述方法还可以包括以下处理:
(1)消息存储服务器获取一整条会谈历史记录信息所对应的全部记录文件的标识信息;
(2)在会谈信息元数据信息的关联字段为空的情况下,消息存储服务器删除一整条会谈历史记录信息所对应的记录项;
(3)在消息/传输文件历史记录信息、或会话历史记录元数据信息的关联字段为空的情况下,消息存储服务器删除一整条会谈历史记录信息所对应的全部记录文件的标识信息对应的记录项。
在具体实施过程中,MSC接收用户的删除请求,MSC使用“IMAP4/STORE[UID-List]+FLAG(\Deleted)”命令(UID-List指示那些希望删除的记录文件的UID列表,用逗号分离)请求MSS删除该会谈历史记录,以及该会谈历史记录包含的所有记录文件。
MSS接收到该命令后应执行以下的处理。
步骤1:MSS使用从STORE命令中获得的UID列表查询“Conversation-History”文件夹的“会谈信息元数据表”的“Content-UID”字段,找到相应的会谈历史记录项,然后检查该记录项的“Tag”字段是否为空,如果为空,则执行步骤2;如果不为空则执行步骤3;
步骤2:如果该CPM会谈历史记录没有和其他的用户文件夹关联,执行以下步骤:
步骤2.1:将该会谈历史记录的对应的记录行从“会谈信息元数据表”中删除;
步骤2.2:使用UID列表分别查询“CPM消息/文件传输历史记录元数据表”和“CPM会话历史记录元数据表”的“UID”字段,找到对应的记录;
步骤2.3:检查该记录的“Tag”字段是否为空,如果为空,说明该记录没有和任何其他的用户自定义文件夹关联,可以删除,执行以下步骤:将该UID所代表的记录文件的FLAG标签([RFC3501])设置为(\DELETE)状态;将该消息对象的记录信息行从相应的元数据表中删除;更新“ReceivedBox”或“SendBox”的“链接元数据表”,将该UID所代表的链接信息删除,以更新“收件箱”和“发件箱”视图。
步骤2.4:如果“Tag”字段不为空,说明该记录对象还和其他的用户自定义文件夹相关联,则将该记录对象的“Belonged-to-Conv-ID”字段设置为空,表示该记录对象所属的会谈历史记录已经被删除了,该记录对象不再和会谈关联,而作为独立的记录对象存在。
重复执行2.3和2.4步骤,直到UID列表中的所有UID项都被检查过一遍。
步骤3:如果该CPM会谈历史记录和其他的用户文件夹关联,则该CPM会谈所包含的所有记录文件都不能够被实际删除,则将CPM会谈信息表中该CPM会谈对应的那项记录的“Deleted字段”设置为“True”,表示用户执行过删除操作。
执行完上述的步骤,如果操作成功,MSS向MSC返回操作成功应答消息,MSC更新本地会谈视图,不再通过会谈文件夹显示该CPM会谈历史记录的内容。
以下结合实例进行描述。
用户在查看会谈历史记录列表信息时,如图17所示,如果希望删除某个CPM会谈历史记录,则首先选中该CPM会谈历史记录,由于MSC在查看CPM会谈记录列表时,已经通过GETMETADATA命令获取到CPM会谈所包含的所有记录文件的UID(通过“Content-UID”字段)获得,则MSC使用STORE[UID-List]+FLAG(\Deleted)命令删除(UID-List指示那些希望删除的记录文件的UID列表,用逗号分离)。
当MSC请求MSS删除某条CPM会谈历史记录时,MSC取得该会谈历史记录所包含的所有记录文件的UID,并构造STORE命令,向MSS请求删除操作。MSC和MSS之间的命令交互流程如下图所示:
MSS接收到该命令后应执行以下的处理流程,具体可以参见图18。
步骤1:MSS使用从STORE命令中获得的UID列表(1,2,3,5,6)查询“Conversation-History”文件夹的“CPM会谈信息元数据表”的“Content-UID”字段,找到相应的会谈历史记录项,然后检查该记录项的“Tag”字段是否为空,如果为空,则执行步骤2,如果不为空则执行步骤3;
步骤2:该CPM会谈历史记录没有和其他的用户文件夹关联,则执行以下步骤:
步骤2.1:将该会谈历史记录的对应的记录行从“会谈信息元数据表”中删除;
步骤2.2:使用UID列表(1,2,3,5,6)分别查询“CPM消息/文件传输历史记录元数据表”和“CPM会话历史记录元数据表”的“UID”字段,找到对应的记录;
步骤2.3:检查该记录的“Tag”字段,如果“Tag”字段为空,则执行以下步骤:将该UID所代表的记录文件的FLAG标签([RFC3501])设置为(\DELETE)状态;将该消息对象的记录信息行从相应的元数据表中删除;更新“SendBox”或“ReceivedBox”的“链接元数据表”,将该UID所代表的链接信息删除,以更新“收件夹”和“发件夹”视图。如果该字段不为空,则执行步骤2.4;
步骤2.4:“Tag”字段不为空,说明该记录对象还和其他的用户自定义文件夹相关联,不能删除,则在将该记录行对应的“Belonged-to-Conv-ID”字段设置为空,说明将该记录对象所属的会谈历史记录已经被删除了,该记录对象不再和会谈关联,而作为独立的记录文件存在。
步骤2.5:不断重复执行步骤2.3和2.4,直到UID列表中的所有UID项都被检查过一遍。
步骤3:该CPM会谈历史记录和其他的用户文件夹关联,则该CPM会谈所包含的所有记录文件都不能够被实际删除(因为用户将该会谈历史记录关联到自定义的文件夹中,他认为这是重要信息),则在CPM会谈信息表中该CPM会谈对应的那项记录的“Deleted字段”设置为“True”,表示用户执行过删除操作。注意,“Deleted字段”被设置为“True”的那些CPM会谈将不会返回给MSC呈现。
MSC接收到MSS返回的删除会谈历史记录操作成功的应答时,认为这条CPM会谈历史记录已经被删除成功,则MSC更新本地视图,不再在会谈文件夹下显示该会谈相关的信息。
操作七、在访问指令指示将用户自定义文件目录对应的链接元数据信息的部分或全部进行删除(即用户删除自定义文件夹中的链接对象)时,消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作包括:
(1)消息存储服务器将需要删除的记录项在链接元数据信息中进行删除,以使记录项的部分或全部信息与用户自定义文件目录无关联;
(2)消息存储服务器根据记录项的类型在会谈元数据信息的关联字段中删除用户自定义文件目录的标识信息。
在具体实施过程中,MSC获取用户删除请求,使用IMAP4/SETMETADATA命令,将目标对象的链接元数据的值设置为“NIL”。
MSS接收到该命令后将执行以下处理:
步骤1:在目标用户文件夹的“链接元数据表”中,找到指定的那项链接元数据的记录,然后将这行记录删除;
步骤2:检查要删除的链接记录对象的类型,如果是CPM消息记录(或其中某一部分)、CPM文件传输历史记录或CPM会话历史记录(或其中某一部分),则执行步骤3;如果是CPM会谈历史记录对象,则执行步骤4:
步骤3:查找到会谈历史记录文件夹的“CPM消息/文件传输历史记录元数据表”或“CPM会话历史记录元数据表”,找到请求解除关联关系的那项记录的“Tag”字段,首先将目标文件夹的名称从“Tag”字段的值中移除,然后检查该字段是否为空,如果为空则执行步骤3.1;否则,执行步骤3.2;
步骤3.1:该记录对象再没有被任何用户文件夹关联,检查“Belonged-to-Conv-ID字段”,如果该字段为空,则执行步骤a;否则,则执行步骤b;
步骤a:说明该记录对象所在的会谈历史记录已经被删除,是一个独立文件,可以被删除,则执行以下步骤:MSS将该记录文件从会谈历史记录文件夹中实际删除(设置其FLAG为\DELETE),并将该记录文件的元数据从相应的元数据表中删除;更新“ReceivedBox”或“SendBox”的“链接元数据表”,将该UID所代表的链接对象信息删除,以更新“收件箱”和“发件箱”视图;
步骤b:说明该记录对象所在的会谈历史记录还存在,则该记录文件不能够被删除,则结束操作;
该记录对象还与别的用户文件夹相关联,不能删除,结束操作;
找到会谈历史记录文件夹的“CPM会谈信息元数据表”,找到请求解除关联关系的那项记录的“Tag”字段,首先将目标文件夹的名称从“Tag”字段的值中移除,然后检查该字段是否为空,如果为空则执行步骤4.1;如果不为空,则执行步骤4.2。
步骤4.1:该会谈记录对象再没有被任何用户文件夹关联,检查“Deleted”字段,如果该字段设置为“True”,则执行步骤a,如果该字段设置为“False”,则执行步骤b:
步骤a:说明该会谈历史记录已经被用户执行了删除操作,可以被删除,则MSS将会谈历史记录对应的元数据记录行从会谈信息元数据表中删除,并按照“(5)用户删除CPM会谈历史记录”中相关的描述,检查该会谈所包含的记录文件是否需要被同时删除;
步骤b:说明该会谈历史记录还没有被用户执行删除操作,则该会谈历史记录还不能够被删除,结束操作;
步骤4.2:该记录对象还与其他的用户文件夹关联,则该记录对象不能被删除,结束操作;
执行完上述的步骤,如果操作成功,MSS向MSC返回操作成功应答消息,MSC更新本地会谈视图,不再通过该用户文件夹显示该记录的内容。
以下结合实例进行描述。
用户在浏览自定义文件夹下的内容时,如果觉得不希望将某个记录对象放在该文件夹中,想将它删除,则应该执行如下的步骤。
注意,由于用户文件夹中可能存在用户上传的记录对象,也有可能存在链接对象,对于这两种不同的对象,MSC的删除操作也有所不同。由于MSC在获取用户文件夹下存储的内容时,就是通过不同的操作获取用户上传的记录对象(通过SELECT+FETCH命令)和链接对象(通过GETMETADATA+FETCH命令),所以对于MSC来说,它可以区分用户文件夹下这两类不同的对象,并在执行删除操作时,采用不同的命令,如图13所示。
如果删除的是用户上传的记录文件,则使用IMAP/STORE命令将该文件置为(\Deleted)状态;
如果删除的是链接对象,则使用SETMETADATA命令,如图13所示。
如图13所示的命令,将解除Working文件夹和UID为2的CPM消息记录文件的Part 2之间的关联关系。
MSS收到该命令后将执行以下处理:
步骤1:在Working文件夹的“链接元数据信息表”(Relevance)中,找到<Link>字段值为“/Message/2/2”的那项记录,然后将这行记录删除;
步骤2:在“Conversation-History”文件夹的“CPM消息/文件传输记录元数据表”中,找到<UID>字段为2的那项记录,然后执行以下步骤:
步骤2.1:检查该项记录的“Tag”字段,首先将“working/2”字符串信息从该字段中移除,如果移除后,“Tag”字段为空,则执行步骤2.2);如果移除后,“Tag”字段不为空,则执行步骤2.3);
步骤2.2:该记录对象不再和其它的用户文件夹关联,则检查“Belonged-to-ConID”字段:
如果该字段为空,则说明该记录对象已经和CPM会谈解除了关联,是一个独立文件,又没有别的用户文件夹再和它关联,则应当从MSS上删除,MSS设置该记录文件的FLAG为“\DELETE”;并更新“SendBox Folder”或“ReceivedBox Folder”的“链接元数据表”,将该UID所代表的链接信息删除,以更新“收件夹”和“发件夹”视图;
如果该字段不为空,说明该记录对象还与CPM会谈相关联,不能够被实际删除,则结束操作;
步骤2.3:说明该对象还被别的用户文件夹关联,不能删除,则结束操作。
如果上述的过程中执行了记录文件的实际删除操作(即将该记录文件的FLAG标记置为了“/Deleted”,则还应该对“收件夹”、“发件夹”的链接元数据信息表进行更新,将该被删除的记录文件的链接元数据从表中删除,即被删除的记录文件将不会在“收件箱”或“发件箱”视图中出现。
操作八、在访问指令指示将用户自定义文件目录进行删除(即用户删除自定义的用户文件夹)时,消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作包括:
(1)消息存储服务器获取链接元数据信息所对应的会谈及该会谈包含的全部记录文件的标识信息;
(2)在会谈信息元数据信息的关联字段为空的情况下,消息存储服务器中删除会谈的记录项;
(3)在消息/传输文件历史记录信息、或会话历史记录元数据信息的关联字段为空的情况下,消息存储服务器中删除全部或部分全部记录文件的标识信息对应的记录项。
在具体实施过程中,MSC获取用户请求,使用IMAP4/DELETE命令([RFC 3501])将指定的用户文件夹删除。MSS接收到该DELETE命令后,进行解析,提取出要删除的目标文件夹的名称,然后执行以下步骤:
步骤1:检查目标用户文件夹相关的“链接元数据信息表”,取得该用户文件夹所关联的所有记录对象的UID和Part信息;
步骤2:对“链接元数据信息表”中的每一个链接对象记录,分别执行“(6)用户删除自定义文件夹中的链接对象”中描述的相应操作,根据这些链接对象的不同类别(可能是会谈历史记录、消息记录、文件传输历史记录或会话历史记录),进行检查,确定是否可以删除实际存储的记录文件。
步骤3:处理完以上过程后,将该目标文件夹对应的“链接元数据表”删除;
步骤4:将该用户文件夹删除。
MSS执行以上操作成功后,向MSC返回成功应答消息,MSC更新本地视图,不再显示已删除的自定义用户文件夹。
以下结合实例进行描述。
用户在浏览自定义文件夹下的内容时,如果觉得不希望将某个记录对象放在该文件夹中,想将它删除,则应该执行如下的步骤。
注意,由于用户文件夹中可能存在用户上传的记录对象,也有可能存在链接对象,对于这两种不同的对象,MSC的删除操作也有所不同。由于MSC在获取用户文件夹下存储的内容时,就是通过不同的操作获取用户上传的记录对象(通过SELECT+FETCH命令)和链接对象(通过GETMETADATA+FETCH命令),所以对于MSC来说,它可以区分用户文件夹下这两类不同的对象,并在执行删除操作时,采用不同的命令,如图13所示。
如果删除的是用户上传的记录文件,则使用IMAP/STORE命令将该文件置为(\Deleted)状态;
如果删除的是链接对象,则使用SETMETADATA命令,如图13所示。
如图19所示的命令,将解除Working文件夹和UID为2的CPM消息记录文件的Part 2之间的关联关系。
MSS收到该命令后将执行以下处理:
步骤1:在Working文件夹的“链接元数据信息表”(Relevance)中,找到<Link>字段值为“/Message/2/2”的那项记录,然后将这行记录删除;
步骤2:在“Conversation-History”文件夹的“CPM消息/文件传输记录元数据表”中,找到<UID>字段为2的那项记录,然后执行以下步骤:
步骤2.1:检查该项记录的“Tag”字段,首先将“working/2”字符串信息从该字段中移除,如果移除后,“Tag”字段为空,则执行步骤2.2);如果移除后,“Tag”字段不为空,则执行步骤2.3);
步骤2.2:该记录对象不再和其它的用户文件夹关联,则检查“Belonged-to-ConID”字段:
如果该字段为空,则说明该记录对象已经和CPM会谈解除了关联,是一个独立文件,又没有别的用户文件夹再和它关联,则应当从MSS上删除,MSS设置该记录文件的FLAG为“\DELETE”;并更新“SendBox Folder”或“ReceivedBox Folder”的“链接元数据表”,将该UID所代表的链接信息删除,以更新“收件夹”和“发件夹”视图;
如果该字段不为空,说明该记录对象还与CPM会谈相关联,不能够被实际删除,则结束操作;
步骤2.3:说明该对象还被别的用户文件夹关联,不能删除,则结束操作。
如果上述的过程中执行了记录文件的实际删除操作(即将该记录文件的FLAG标记置为了“/Deleted”,则还应该对“收件夹”、“发件夹”的链接元数据信息表进行更新,将该被删除的记录文件的链接元数据从表中删除,即被删除的记录文件将不会在“收件箱”或“发件箱”视图中出现。
操作九、在访问指令指示将用户自定义文件目录进行删除(即用户删除自定义文件夹)时,消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作包括以下处理:
(1)消息存储服务器获取链接元数据信息所对应的会谈及该会谈包含的全部记录文件的标识信息;
(2)在会谈信息元数据信息的关联字段为空的情况下,消息存储服务器中删除会谈的记录项;
(3)在消息/传输文件历史记录信息、或会话历史记录元数据信息的关联字段为空的情况下,消息存储服务器中删除全部或部分全部记录文件的标识信息对应的记录项。
在具体实施过程中,如果用户希望将某个链接对象从源文件夹中复制到目的文件夹中,则MSC通过IMAP4/SETMETADATA命令请求将该链接对象添加到目标文件夹的链接元数据信息表中。
MSS接收到SETMETADATA命令后,进行相应的链接元数据信息表的更新操作,并相应地更新CPM会谈信息元数据表、CPM消息/文件传输历史记录元数据表或CPM会话历史记录元数据表的“Tag”字段中内容。
MSS操作成功,向MSC返回成功应答消息。
以下结合实例进行描述。
用户如果希望删除自定义的文件夹,但该文件夹中又存在相关联的记录文件对象,则客户端应该提醒用户,“该文件夹非空,是否将该文件夹清空并删除?”,如果用户确定执行删除操作,则MSC应该使用IMAP4/DELETE([RFC 3501])命令将指定的文件夹删除。
如果用户希望删除自定义文件夹“Working”,则MSC构造“DELETE“\Working””命令。MS S收到该DELETE命令后,进行解析,提取出要删除的目标文件夹的名称(“Working”),然后执行以下步骤:
步骤1:查询目标文件夹对应的“链接元数据信息表”,取得该表中的所有记录行,每一行代表一个关联对象;
步骤2:检查每一行的关联对象的类型,如果关联的是CPM消息记录(或其中某一部分)、CPM文件传输历史记录或CPM会话历史记录(或其中某一部分),则执行步骤3;如果关联的是CPM会谈历史记录,则执行步骤4:
步骤3:找到会谈历史记录文件夹的“CPM消息/文件传输历史记录元数据表”或“CPM会话历史记录元数据表”,找到请求解除关联关系的那项记录的“Tag”字段,首先将目标文件夹的名称从“Tag”字段的值中移除,然后检查该字段是否为空,如果为空则执行步骤3.1;如果不为空,执行步骤3.2;
步骤3.1:该记录对象再没有被任何用户文件夹关联,检查“Belonged-to-Conv-ID字段”,如果该字段为空,则执行步骤a;如果该字段不为空,则执行步骤b;
步骤a:说明该记录对象所在的会谈历史记录已经被删除,是一个独立文件,可以被删除,则MSS将该记录文件从会谈历史记录文件夹中删除(设置其FLAG为\DELETE),并将该记录文件的元数据从相应的元数据表中删除;并更新“SendBox”或“ReceivedBox”的“链接元数据表”,将该UID所代表的链接信息删除,以更新“收件箱”和“发件箱”视图;
步骤b:说明该记录对象所在的会谈历史记录还存在,则该记录文件不能够被删除,结束操作;
步骤3.2:该记录对象还与别的用户文件夹相关联,不能删除,结束操作;
步骤4:找到会谈历史记录文件夹的“CPM会谈信息元数据表”,找到请求解除关联关系的那项记录的“Tag”字段,首先将目标文件夹的名称从“Tag”字段的值中移除,然后检查该字段是否为空,如果为空则执行步骤4.1);如果不为空,则执行步骤4.2):
步骤4.1:该记录对象再没有被任何用户文件夹关联,检查“Deleted”字段,如果该字段设置为“True”,则执行步骤a,如果该字段设置为“False”,则执行步骤b:
步骤a:说明该会谈历史记录已经被用户执行了删除操作,可以被删除,则MSS将会谈历史记录对应的元数据记录行从会谈信息元数据表中删除,并按照“(5)用户删除CPM会谈历史记录”中相关的描述,检查该会谈所包含的记录文件是否需要被同时删除;
步骤b:说明该会谈历史记录还没有被用户执行删除操作,则该会谈历史记录还不能够被删除,结束操作;
步骤4.2:该记录对象还与其他的用户文件夹关联,则该记录对象不能被删除,结束操作;
不断重复步骤2、3、4,直到检查完目标用户文件夹的“链接元数据信息表”中的所有记录行。处理完以上过程后,将该“链接元数据信息表”删除;
步骤6:将该用户文件夹删除。
上述操作成功,MSS向MSC返回DELETE命令成功应答消息,MSC收到后认为该用户文件夹及其关联的所有内容已经在服务器上被删除,则更新用户界面,向用户显示操作结果。
操作十、在访问指令指示将链接对象进行拷贝(即用户复制链接对象)时,消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作包括以下处理:
(1)消息存储服务器将链接对象从源文件目录对应的链接元数据信息中,拷贝至目的文件目录对应的链接元数据信息中;
(2)消息存储服务器根据链接对象的类型更新会谈元数据信息的关联字段。
在具体实施过程中,如果用户希望将某个链接对象从源文件夹中复制到目的文件夹中,则MSC通过IMAP4/SETMETADATA命令请求将该链接对象添加到目标文件夹的链接元数据信息表中。
MSS接收到SETMETADATA命令后,进行相应的链接元数据信息表的更新操作,并相应地更新CPM会谈信息元数据表、CPM消息/文件传输历史记录元数据表或CPM会话历史记录元数据表的“Tag”字段中内容。
MSS操作成功,向MSC返回成功应答消息。
操作十一、在访问指令指示将链接对象进行移动时,消息存储服务器根据链接元数据信息执行与访问指令对应的访问操作包括:
(1)消息存储服务器将链接对象从源文件目录对应的链接元数据信息中,移动至目的文件目录对应的链接元数据信息中;
(2)消息存储服务器根据链接对象的类型更新会谈元数据信息的关联字段。
在具体实施过程中,如果用户希望将某个链接对象从源文件夹中移动到目的文件夹中,则MSC首先通过SETMETADATA命令请求将该链接对象添加到目标文件夹的链接元数据信息表中,然后再使用SETMETADATA命令请求删除源文件夹中该链接对象的元数据信息。
MSS接收到SETMETADATA命令后,进行相应的链接元数据信息表的更新操作,并相应地更新CPM会谈信息元数据表、CPM消息/文件传输历史记录元数据表或CPM会话历史记录元数据表的“Tag”字段中内容。
MSS操作成功,向MSC返回成功应答消息。
以下结合实例进行描述。
如果用户希望将某链接对象移到另一个用户自定义的文件夹中,则首先将该链接添加到另一个文件夹的“链接元数据信息表“中,然后再执行源文件夹的元数据信息删除操作,如图20所示。
MSS接收到“SETMETADATA“/My Favorite”(/shared/Relevance/15/Link“Message/2/2”)”命令后,执行以下步骤(如3.2.3小节“用户添加链接记录”操作):
首先在“My Favorite”文件夹的元数据表中,添加<Seq>字段为“15”的链接记录(假设MSC已经通过GETMETADATA操作获知在目的文件夹“My Favorite”中最新的链接元数据信息中有14项记录,则构造SETMETADATA命令添加第15项链接记录),该链接记录的<Link>字段的值为“Message/2/2”;
然后在“Conversation-History”的CPM消息记录元数据表中,找到UID为2的记录项,在该记录项的“Tag”字段中,添加“MyFavorite/2”信息。
MSS接收到“SETMETADATA“/Working”(/shared/link/message/2/2 NIL)”命令后,按照操作七中描述的“用户删除链接对象”执行相关操作。
根据本发明实施例,还提供了一种融合的IP消息(CPM)会谈历史记录的访问装置。
图21为根据本发明实施例的消息存储服务器的结构框图。如图21所示,根据本发明实施例的CPM会谈历史记录的访问装置包括:第一接收单元1、解析获取单元2、执行单元3。
第一接收单元1,用于接收来自于客户端的访问指令;
解析获取单元2,用于解析访问指令获取需要访问的文件目录标识,并获取文件目录标识对应的链接元数据信息;
执行单元3,用于根据链接元数据信息执行与访问指令对应的访问操作。
在上述消息存储服务器的存储区域中,存储链接元数据信息,将对用户管理区域的访问操作与***管理区域中存储的CPM会谈历史记录进行关联,可以在满足用户对消息存储服务器上存储的记录资源的自定义管理操作的同时,还能够为用户提供多种视图。
优选地,如图22所示,上述装置还可以包括:第一创建单元4,用于在消息存储服务器中创建***管理区域,其中,***管理区域包括存储会谈历史记录信息的第一存储单元、存储***预定义文件信息的第二存储单元;第二创建单元5,用于在消息存储服务器中创建用户管理区域,其中,用户管理区域包括存储用户自定义信息的第三存储单元。
优选地,如图22所示,上述装置还可以包括:第二接收单元6,用于接收来自于客户端上传的本地记录文件信息。
优选地,如图22所示,上述装置还可以包括:鉴权单元7,用于将客户端对请求访问的文件信息的权限进行检查;确定单元8,用于确定客户端对请求的文件信息具有访问控制权限。
上述装置中各单元相互结合的工作方式,可以参见图4至图20的描述,此处不再赘述。
综上所述,通过本发明的上述实施例,为融合消息业务通信环境中的会谈历史记录定义了合适其特点的存储模型,并通过定义相关的元数据以及相关的存储管理操作形成一整套完整的方案,除了可以满足CPM会谈的特点,同时满足用户对消息存储服务器上存储的记录资源的自定义管理操作之外,还能够为用户提供多种视图,如会谈视图(以CPM会谈为单位查看会谈历史记录)、会谈的线性视图(按照回复-被回复的关系构建的视图)、以及***预定义视图(如按照收发关系视图、主题分类视图)和用户自定义视图(用户自定义文件夹,并将感兴趣的记录文件或记录文件中的部分内容添加到自定义文件夹中),在尽量减小消息存储服务器管理开销的前提下,能够为用户提供良好的业务体验。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (21)
1.一种融合的IP消息CPM会谈历史记录的访问方法,其特征在于,包括:
消息存储服务器接收来自于客户端的访问指令;
所述消息存储服务器解析所述访问指令获取需要访问的文件目录标识,并获取所述文件目录标识对应的链接元数据信息;
所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作。
2.根据权利要求1所述的方法,其特征在于,在消息存储服务器接收来自于客户端的所述访问指令之前,所述方法还包括:在所述消息存储服务器中创建***管理区域,其中,所述***管理区域包括存储会谈历史记录信息的第一存储单元、存储***预定义文件信息的第二存储单元;
在所述消息存储服务器中创建所述用户管理区域,其中,所述用户管理区域包括存储用户自定义信息的第三存储单元。
3.根据权利要求2所述的方法,其特征在于,
所述会谈历史记录信息包括:会谈元数据信息和记录对象信息,其中,所述记录对象信息包括:至少一条CPM消息记录信息、至少一条CPM文件传输历史记录信息、至少一条CPM会话历史记录信息;
所述***预定义文件信息包括:***预定义的文件目录、所述***预定义的文件目录下属的链接元数据信息;
所述用户自定义信息包括:用户自定义文件目录、所述用户自定义的文件目录下属的链接元数据信息。
4.根据权利要求3所述的方法,其特征在于,所述用户自定义文件信息还包括:
所述客户端上传的本地记录文件信息。
5.根据权利要求3所述的方法,其特征在于,所述会谈元数据信息包括:
会谈信息元数据信息、消息/传输文件历史记录信息、会话历史记录元数据信息。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述消息存储服务器接收来自于客户端的访问指令之后,所述方法还包括:
所述消息存储服务器将所述客户端对请求访问的文件信息的权限进行检查;
所述消息存储服务器确定所述客户端对所述请求的文件信息具有访问控制权限。
7.根据权利要求3所述的方法,其特征在于,在消息存储服务器接收来自于客户端的访问指令之前,当用户需要查看所述会谈历史记录信息时,所述方法还包括:
所述消息存储服务器接收来自于所述客户端的会谈元数据信息请求指令,其中,所述会谈元数据信息请求指令携带有所述会谈元数据信息所属的目录标识信息;
所述消息存储服务器将所述会谈元数据信息发送至所述客户端以进行解析和呈现。
8.根据权利要求7所述的方法,其特征在于,在查看所述会谈历史记录信息之后,所述方法还包括:
所述消息存储服务器接收来自于所述客户端的记录对象标识信息;
所述消息存储服务器将所述记录对象标识信息对应的记录对象的部分或全部信息发送至所述客户端以进行呈现。
9.根据权利要求5所述的方法,其特征在于,在用户需要在所述***管理区域中删除一整条会谈历史记录信息时,所述方法还包括:
所述消息存储服务器获取所述一整条会谈历史记录信息所对应的全部记录文件的标识信息;
在所述会谈信息元数据信息的关联字段为空的情况下,所述消息存储服务器删除所述一整条会谈历史记录信息所对应的记录项;
在所述消息/传输文件历史记录信息、或所述会话历史记录元数据信息的关联字段为空的情况下,所述消息存储服务器删除所述一整条会谈历史记录信息所对应的全部记录文件的标识信息对应的记录项。
10.根据权利要求3所述的方法,其特征在于,在所述访问指令指示将部分或全部所述会谈历史记录信息添加到自定义文件目录时,所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作包括:
所述消息存储服务器将需要关联的记录项添加在所述链接元数据信息中,以使所述记录项的部分或全部信息与所述用户自定义文件目录相关联;
所述消息存储服务器根据所述记录项的类型更新所述会谈元数据信息的关联字段。
11.根据权利要求3所述的方法,其特征在于,在所述访问指令指示将所述***预定义文件目录对应的信息进行呈现时,所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作包括:
所述消息存储服务器将所述***预定义文件目录关联的第一会谈历史记录标识信息发送至所述客户端;
在所述客户端本地保存有所述第一会谈历史记录标识信息对应的全部记录文件的第一标识信息时,所述消息存储服务器接收来自于所述客户端的全部或部分所述第一标识信息;
所述消息存储服务器将全部或部分所述第一标识信息对应的记录信息发送至所述客户端以进行呈现。
12.根据权利要求11所述的方法,其特征在于,在所述客户端本地未保存有所述会谈历史记录标识信息对应的全部记录文件的标识信息时,所述方法还包括:
所述消息存储服务器接收来自于所述客户端的标识请求指令;
所述消息存储服务器将所述会谈历史记录标识信息对应的全部记录文件的标识信息发送至所述客户端;
所述消息存储服务器接收来自于所述客户端全部或部分所述全部记录文件的标识信息,并将全部或部分所述全部记录件的标识信息对应的记录信息发送至所述客户端以进行呈现。
13.根据权利要求3所述的方法,其特征在于,在所述访问指令指示将所述用户自定义文件目录对应的信息进行呈现时,所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作包括:
所述消息存储服务器将所述用户自定义文件目录关联的第二会谈历史记录标识信息发送至所述客户端;
在所述客户端本地保存有所述第二会谈历史记录标识信息对应的全部记录文件的第二标识信息时,所述消息存储服务器接收来自于所述客户端的全部或部分所述第二标识信息;
所述消息存储服务器将全部或部分所述第二标识信息对应的记录信息发送至所述客户端以进行呈现。
14.根据权利要求3所述的方法,其特征在于,在所述访问指令指示将所述用户自定义文件目录对应的链接元数据信息的部分或全部进行删除时,所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作包括:
所述消息存储服务器将需要删除的记录项在所述链接元数据信息中进行删除,以使所述记录项的部分或全部信息与所述用户自定义文件目录无关联;
所述消息存储服务器根据所述记录项的类型在所述会谈元数据信息的关联字段中删除所述用户自定义文件目录的标识信息。
15.根据权利要求3所述的方法,其特征在于,在所述访问指令指示将所述用户自定义文件目录进行删除时,所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作包括:
所述消息存储服务器获取所述链接元数据信息所对应的会谈及该会谈包含的全部记录文件的标识信息;
在所述会谈信息元数据信息的关联字段为空的情况下,所述消息存储服务器中删除所述会谈的记录项;
在所述消息/传输文件历史记录信息、或所述会话历史记录元数据信息的关联字段为空的情况下,所述消息存储服务器删除全部或部分所述全部记录文件的标识信息对应的记录项。
16.根据权利要求3所述的方法,其特征在于,在所述访问指令指示将链接对象进行拷贝时,所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作包括:
所述消息存储服务器将所述链接对象从源文件目录对应的链接元数据信息中,拷贝至目的文件目录对应的链接元数据信息中;
所述消息存储服务器根据所述链接对象的类型更新所述会谈元数据信息的关联字段。
17.根据权利要求3所述的方法,其特征在于,在所述访问指令指示将链接对象进行移动时,所述消息存储服务器根据所述链接元数据信息执行与所述访问指令对应的访问操作包括:
所述消息存储服务器将所述链接对象从源文件目录对应的链接元数据信息中,移动至目的文件目录对应的链接元数据信息中;
所述消息存储服务器根据所述链接对象的类型更新所述会谈元数据信息的关联字段。
18.一种消息存储服务器,其特征在于,包括:
第一接收单元,用于接收来自于客户端的访问指令;
解析获取单元,用于解析所述访问指令获取需要访问的文件目录标识,并获取所述文件目录标识对应的链接元数据信息;
执行单元,用于根据所述链接元数据信息执行与所述访问指令对应的访问操作。
19.根据权利要求18所述的消息存储服务器,其特征在于,所述消息存储服务器还包括:
第一创建单元,用于在所述消息存储服务器中创建***管理区域,其中,所述***管理区域包括存储会谈历史记录信息的第一存储单元、存储***预定义文件信息的第二存储单元;
第二创建单元,用于在所述消息存储服务器中创建所述用户管理区域,其中,所述用户管理区域包括存储用户自定义信息的第三存储单元。
20.根据权利要求18所述的消息存储服务器,其特征在于,所述消息存储服务器还包括:
第二接收单元,用于接收来自于客户端上传的本地记录文件信息。
21.根据权利要求18至20任一项所述的消息存储服务器,其特征在于,所述消息存储服务器还包括:
鉴权单元,用于将所述客户端对请求访问的文件信息的权限进行检查;
确定单元,用于确定所述客户端对所述请求的文件信息具有访问控制权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010120039.9A CN102143125B (zh) | 2010-01-29 | 2010-01-29 | Cpm会谈历史记录的访问方法及消息存储服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010120039.9A CN102143125B (zh) | 2010-01-29 | 2010-01-29 | Cpm会谈历史记录的访问方法及消息存储服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102143125A true CN102143125A (zh) | 2011-08-03 |
CN102143125B CN102143125B (zh) | 2015-07-22 |
Family
ID=44410353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010120039.9A Active CN102143125B (zh) | 2010-01-29 | 2010-01-29 | Cpm会谈历史记录的访问方法及消息存储服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102143125B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111007982A (zh) * | 2019-11-29 | 2020-04-14 | 珠海豹趣科技有限公司 | 一种电子白板实现方法、设备以及相关*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100450104C (zh) * | 2004-08-12 | 2009-01-07 | 上海华为技术有限公司 | 群发邮件处理方法 |
CN101155022A (zh) * | 2006-09-30 | 2008-04-02 | 华为技术有限公司 | 数据同步方法、***和装置 |
CN101227418B (zh) * | 2007-01-19 | 2012-04-04 | 华为技术有限公司 | 一种实现融合ip消息的方法、装置及*** |
-
2010
- 2010-01-29 CN CN201010120039.9A patent/CN102143125B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111007982A (zh) * | 2019-11-29 | 2020-04-14 | 珠海豹趣科技有限公司 | 一种电子白板实现方法、设备以及相关*** |
CN111007982B (zh) * | 2019-11-29 | 2021-04-20 | 珠海豹趣科技有限公司 | 一种电子白板实现方法、设备以及相关*** |
Also Published As
Publication number | Publication date |
---|---|
CN102143125B (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279948B (zh) | 联系人信息的合并与重复解决的方法及*** | |
US8826375B2 (en) | Rich media collaboration system | |
US8015319B2 (en) | Method, system, client and server for implementing data sync | |
US8195714B2 (en) | Context instantiated application protocol | |
US7139761B2 (en) | Dynamic association of electronically stored information with iterative workflow changes | |
EP1845688B1 (en) | Method, system, client terminal and server for realizing data synchronization | |
US20090187622A1 (en) | Method, system and apparatus for data synchronization | |
US20120311060A1 (en) | Methods and Apparatus for Identifying and Facilitating a Social Interaction Structure over a Data Packet Network | |
US20110270880A1 (en) | Automated communications system | |
CN101155049A (zh) | 一种消息***中会话历史处理方法及消息*** | |
CN102073742B (zh) | 一种海量对象的存储***及其运行方法 | |
EP3293925A1 (en) | A network storage system and a control method for accessing the network storage content | |
EP1370982A4 (en) | REALIZING PRESENCE MANAGEMENT | |
JP5574554B2 (ja) | グローバルディレクトリサービスのためのシステム及び方法 | |
CN102143126B (zh) | Cpm会谈历史记录的访问方法及消息存储服务器 | |
KR20040101414A (ko) | 그룹 관리 | |
US20050246636A1 (en) | System and method for a user interface that provides contact-based sharing of resources | |
Alliance | XML Document Management (XDM) Specification | |
CN102143090B (zh) | Cpm会谈历史记录的访问方法及消息存储服务器 | |
Göndör et al. | The current state of interoperability in decentralized online social networking services | |
US8826026B2 (en) | Systems and methods for tracking electronic files in computer networks using electronic signatures | |
CN102143125B (zh) | Cpm会谈历史记录的访问方法及消息存储服务器 | |
CN110825838A (zh) | 一种对象存储聚合***及其聚合方法 | |
US20130058333A1 (en) | Method For Handling Requests In A Storage System And A Storage Node For A Storage System | |
JP4556826B2 (ja) | サービス提供システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |