首页> 中国专利> 一种保存即时消息报告元数据的方法及装置

一种保存即时消息报告元数据的方法及装置

摘要

本发明公开了一种保存即时消息报告元数据的方法及装置,一种方法包括:根据获取的即时消息报告生成即时消息报告元数据,在即时消息报告元数据中插入特征标识,该特征标识用于区分即时消息报告元数据与即时消息元数据,并保存所述已插入特征标识的即时消息报告元数据。本发明通过在即时消息报告元数据中插入特征标识并保存即时消息报告,使客户端在读取聊天记录元数据时,能够区分即时消息报告元数据和即时消息元数据。

著录项

  • 公开/公告号CN101753481A

    专利类型发明专利

  • 公开/公告日2010-06-23

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200810241621.3

  • 申请日2008-12-17

  • 分类号H04L12/58(20060101);G06F17/30(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 00:22:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-12-12

    授权

    授权

  • 2011-03-16

    实质审查的生效 IPC(主分类):H04L12/58 申请日:20081217

    实质审查的生效

  • 2010-06-23

    公开

    公开

说明书

技术领域

本发明涉及通信领域,特别涉及一种保存即时消息报告元数据的方法及装置。

背景技术

现有技术中,即时消息类业务中还提供了聊天记录的功能,具体来说就是在网络侧的聊天服务器或存储服务器中为用户保存聊天过程中收发的即时消息内容。聊天记录的存储一般由元数据和即时消息内容本身两部分组成,其中元数据记录了会话历史的摘要信息(存储地址、大小、主题、时间、收/发件人等),便于用户进行查看、搜索,进而执行下载、删除等后续管理操作。这样,当用户终端存储能力不足无法保存聊天记录、或用户更换了其它终端后,还能够使用和管理网络侧保存的聊天记录,以便获取会话上下文中的有用信息。

另一方面,上述即时消息类业务中还提供了即时消息报告的功能,即发送方在发送即时消息时能够请求接收方反馈该即时消息是否已被成功递送、处理或阅读的状态报告,接收方则根据请求在即时消息接收后返回相应的状态报告给发送方,从而发送方能够跟踪所发出的即时消息状态。然而,现有技术条件下,上述即时消息类业务只能对聊天记录的即时消息进行管理,不能对即时消息报告进行有效的管理。

发明内容

本发明实施例提供一种保存即时消息报告的方法及装置,使客户端在读取聊天记录元数据时,能够区分即时消息报告元数据和即时消息元数据。

为解决上述技术问题,本发明实施例一方面提供了一种保存即时消息报告元数据的方法,包含:

获取即时消息报告;

根据所述即时消息报告生成即时消息报告元数据,在所述即时消息报告元数据中插入特征标识,所述特征标识用于标记所述即时消息报告元数据;

保存所述已插入特征标识的即时消息报告元数据。

本发明实施例一方面提供了识别即时消息报告元数据的方法,包括:

获取聊天记录元数据,所述聊天记录元数据包括即时消息元数据和即时消息报告元数据,所述即时消息报告元数据携带特征标识;

根据所述特征标识识别所述即时消息报告元数据。

本发明实施例一方面提供了一种返回聊天记录元数据的方法,包括:

接收搜索请求,所述搜索请求中包括搜索条件;

根据存储的即时消息报告元数据中携带的特征标识区分所述即时消息报告元数据和即时消息元数据;

根据区分结果和所述搜索条件获取符合搜索条件的聊天记录元数据;

返回符合所述搜索条件的聊天记录元数据。

本发明实施例一方面提供了一种保存即时消息报告元数据的装置,其特征在于,包括:

获取单元,用于获取即时消息报告;

生成单元,用于根据所述即时消息报告生成即时消息报告元数据;

插入单元,用于在所述即时消息报告元数据中插入特征标识,所述特征标识用于标记所述即时消息报告元数据;

保存单元,用于保存所述已插入特征标识的即时消息报告元数据。

本发明实施例一方面提供了一种客户端,其特征在于,包括:

获取单元,用于获取聊天记录元数据,所述聊天记录元数据包括即时消息元数据和即时消息报告元数据,所述即时消息报告元数据中携带特征标识;

识别单元,用于根据所述特征标识识别所述即时消息报告元数据。

本发明实施例一方面提供了一种元数据服务器,其特征在于,包括:

接收单元,用于接收搜索请求,所述搜索请求包括搜索条件;

区分单元,用于根据存储的即时消息报告元数据中携带的特征标识区分所述即时消息报告元数据和所述即时消息元数据;

获取单元,用于根据区分结果和所述搜索条件获取符合搜索条件的聊天记录元数据;

返回单元,用于返回符合所述搜索条件的聊天记录元数据。

本发明实施例提供的保存即时消息报告元数据的方法及装置,通过在即时消息报告元数据中插入特征标识标记即时消息报告元数据,使客户端在读取聊天记录元数据时,能够区分即时消息报告元数据和即时消息元数据。

附图说明

图1为本发明实施例保存即时消息报告元数据的方法的一个流程图;

图2为本发明实施例识别即时消息报告元数据的方法的一个流程图;

图3为本发明实施例返回聊天记录元数据的方法的一个流程图;

图4为本发明实施例保存即时消息报告元数据的装置的一个结构示意图;

图5为本发明实施例保存即时消息报告元数据的装置另一个结构示意图;

图6为本发明实施例客户端的一个结构示意图;

图7为本发明实施例返回聊天记录元数据的装置的一个结构示意图;

图8为本发明实施例保存即时消息报告元数据的方法的一个流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

图1为本发明实施例保存即时消息报告元数据的方法的一个流程图,包括:

S101,获取即时消息报告。

具体的,获取即时消息报告的主体可以是存储服务器;也可以是消息服务器,此时存储服务器设置在消息服务器中,即消息服务器包括与存储服务器功能一样的存储模块。

获取即时消息报告的主体是存储服务器时,该即时消息报告可以是消息服务器接收后转发给存储服务器的。具体的,即时消息接收方接收到的即时消息后,通过消息服务器向发送方客户端发送即时消息报告;消息服务器接收该即时消息报告后,可以将其复制一份发送给存储服务器,由存储服务器接收。当然,也可以是消息服务器发送即时消息后自己生成即时消息报告后发送给存储服务器。

获取即时消息报告的主体是消息服务器时,可以是消息服务器发送即时消息后自己生成即时消息报告,也可以是接收即时消息接收方客户端发送的即时消息报告。

S102,根据该即时消息报告生成即时消息报告元数据,在该即时消息报告元数据中插入特征标识,所述特征标识用于标记所述即时消息报告元数据。

存储服务器接收即时消息报告后,生成出即时消息报告元数据,即时消息报告元数据可以包括下列内容:该即时消息报告存储地址、大小、主题、时间、收/发件人以及类型、状态结果等。

存储服务器生成出即时消息元数据后,在该即时消息报告元数据中插入特征标识,将该即时消息报告元数据标识出来,以便与即时消息元数据相区分。该特征标识可以是即时消息报告元数据文档中的特定元素或属性。

当消息服务器中包括与存储服务器功能一样的存储单元时,具体是存储单元执行本动作。

S103,保存已插入特征标识的即时消息报告元数据。

存储服务器将带有特征标识的即时消息报告元数据保存到元数据服务器中,元数据服务器可以是一个单独的服务器,也可以是存储服务器或消息服务器中的一个存储单元,即消息服务器,元数据服务器、存储服务器中的三者或任何两者可以合设为一个服务器,如消息服务器中包括两个和存储服务器、元数据服务器功能一致的单元。元数据服务器也用于保存即时消息元数据。

当消息服务器中包括与存储服务器功能一样的存储单元时,具体是存储单元执行本动作。

当消息服务器中包括与元数据服务器功能一样的元数据存储单元时,具体是保存已插入特征标识的即时消息报告元数据到该元数据存储单元中。

以下提到的存储服务器即可以认为是独立的一个服务器,也可以认为是包括在消息服务器中存储单元;同样,以下提到的存储服务器即可以认为是独立的一个服务器,也可以认为是包括在消息服务器或存储服务中的元数据存储单元,为了文字上的简洁,以下只用存储服务器、元数据服务器的表述。

本实施例提供的保存消息报告元数据的方法,通过在即时消息报告元数据中插入特征标识,使得客户端在读取元数据时可以区分即时消息报告和即时消息,以便客户端将即时消息元数据与即时消息元数据区别展示给用户,用户就可以不需要下载全部的聊天记录后就能知道某条聊天记录的是即时消息还是即时消息报告。

在S103中,将所述已插入特征标识的即时消息报告元数据保存到元数据服务器中有两种保存方式:

一种是获取所述即时消息报告对应的即时消息的存储地址,将所述对应的即时消息的存储地址插入所述即时消息报告元数据中;将所述即时消息报告元数据独立于即时消息元数据保存(即独立存储方式)在元数据服务器中。即两者互不包含。

在此种保存方式下,特征标识可以是记录对应的即时消息的存储地址的元素。此时,在S102中,插入在所述即时消息报告元数据中插入特征标识的动作实际上是将对应的即时消息的存储地址加上识别标签插入即时消息报告元数据中,此时,该识别标签可以作为特征标识来标记即时消息报告元数据。

具体为:

即时消息报告中携带对应即时消息的标识信息,如message-id,存储服务器根据该标识信息找到即时消息报告对应的即时消息的存储地址,然后将该即时消息的存储地址加上识别标签加入即时消息报告元数据中,举例来说,具体形式可以是:

<?xml version=″1.0″encoding=″UTF-8″?>

  <history-list xmlns=″urn:oma:xml:im:history-list″>

<history date=″2006-08-13″history-reference=″sip:123457@hist.example.com″>

       <size>10</size>

       <expiry>2006-08-15T19:13:05.0Z</expiry>

       <subject>Soccer</subject>

       <pager>

          <time-stamp>2006-08-13T19:13:05.0Z</time-stamp>

          <from>sip:mimin.underwood@example.com</from>

          <to>sip:merlin@example.com</to>

          <auth-id>sip:mimin.underwood@example.com</auth-id>

          <msg-hist-ref>sip:123456@hist-server1.example.com</msg-hist-ref>

    </pager>

   </history>

  </history-list>

其中<msg-hist-ref>元素记录了该即时消息报告对应的即时消息的存储地址sip:123456@hist-server1.example.com,即识别标签,同时<msg-hist-ref>元素还可以作为特征标识,与即时消息元数据区别。客户端在读取时,将带有<msg-hist-ref>元素的元数据标记为即时消息报告。

当然,也可以将<msg-hist-ref>元素不作为特征标识,而只是起到标识对应的即时消息地址的作用,使得该即时消息报告元数据可以与对应的即时消息相关联,以便客户端在可以向用户展示即时消息报告与即时消息的对应关系。此时,特征标识是单独的元素,如<report>元素,与对应的即时消息地址的识别标签,如<msg-hist-ref>元素同时包含在即时消息报告元数据中。具体形式举例如下:

  <?xml version=″1.0″encoding=″UTF-8″?>

  <history-list xmlns=″urn:oma:xml:im:history-list″>

<history date=″2006-08-13″history-reference=″sip:123457@hist.example.com″>

       <size>10</size>

       <expiry>2006-08-15T19:13:05.0Z</expiry>

       <subject>Soccer</subject>

      <report>

          <time-stamp>2006-08-13T19:13:05.0Z</time-stamp>

          <from>sip:mimin.underwood@example.com</from>

          <to>sip:merlin@example.com</to>

          <auth-id>sip:mimin.underwood@example.com</auth-id>

          <msg-hist-ref>sip:123456@hist-server1.example.com</msg-hist-ref>

  </report>

  </history>

</history-list>

其中,<report>元素为插入的特征标识,用于表明该部分元数据描述的是即时消息报告信息。此时,识别标签<msg-hist-ref>还可以非<report>的子元素的形式(如与<report>同级别的元素、或<report>元素的一个属性等)出现在即时消息报告元数据文档的其它位置。

通过在即时消息报告元数据中插入该即时消息报告对应的即时消息的存储地址并保存到元数据服务器,客户端在向用户展示聊天记录元数据时就可以展示该即时消息报告与对应的即时消息的关联关系,用户可以根据该关联关系找到对应的即时消息。

当即时消息报告元数据与即时消息元数据并列保存时,存储服务器或消息服务器还可以在接收到即时消息报告后,保存该即时消息报告,为所述保存的即时消息报告分配存储地址;并将该存储地址插入该即时消息报告元数据中。这样,保存到元数据服务器中的即时消息报告元数据中就包含了即时消息报告存储地址,这样,用户就可以通过客户端展示的该即时消息报告元数据信息找到即时消息报告。上述即时消息报告存储地址和即时消息存储地址可以分别或者同时包含在即时消息报告元数据中。

另外,在S102中,存储服务器在生成生成即时消息报告元数据时,可以根据所述即时消息报告生成生成该即时消息报告的类型和状态结果,对PagerMode消息来说,生成时解析即时消息报告消息体(Body)内容即可,其中包含了以XML语言描述的即时消息报告类型、状态结果等信息;对于LargeMessage Mode来说,生成时解析报告中特殊消息头(header)的状态编码即可。即时消息报告的类型可以为递送报告、阅读报告、处理报告等;状态结果可以包括:成功、失败、处理中、存储、禁用、错误等。内容具体可以是如下形式:

     <?xml version=″1.0″encoding=″UTF-8″?>

     <history-list xmlns=″urn:oma:xml:im:history-list″>

<history date=″2006-08-13″history-reference=″sip:123457@hist.example.com″>

          <size>10</size>

          <expiry>2006-08-15T19:13:05.0Z</expiry>

          <subject>Soccer</subject>

          <report>

<time-stamp>2006-08-13T19:13:05.0Z</time-stamp>

            <from>sip:mimin.underwood@example.com</from>

            <to>sip:merlin@example.com</to>

            <auth-id>sip:mimin.underwood@example.com</auth-id>

            <msg-hist-ref>sip:123456@hist-server1.example.com</msg-hist-ref>

            <disposition>

                <delivery>failed</delivery>

            </disposition>

        </report>

 </history>

 </history-list>

其中<disposition>元素用于描述即时消息报告类型,<delivery>子元素表示该即时消息报告为“递送报告”类型,其取值failed表明“递送失败”状态结果。此外,<report>元素下还可以记录更多从即时消息报告内容中生成的相关元数据信息,而<disposition>元素下还可以记录更多的报告类型以及状态结果。

这样,在保存到元数据服务器中的即时消息报告元数据中就包括该即时消息报告的类型和状态结果,这往往是用户在读取即时消息报告时最关心的内容,这时候,存储服务器可以在保存该即时消息报告元数据后,把接收的即时消息报告丢弃,及时释放空间。

当然,在独立存储方式下,也可以对应一条即时消息存储多条即时消息报告元数据。

另一种情况是合并插入特征标识的即时消息报告元数据与所述即时消息报告对应的即时消息元数据,保存合并后的即时消息报告元数据和即时消息元数据。即把即时消息报告元数据保存到即时消息元数据之中(合并存储方式)。即时消息报告中携带对应即时消息的标识信息,如message-id;

存储服务器根据该标识信息找到对应的即时消息元数据存储地址。然后存储服务器根据即时消息元数据存储地址将生成出的即时消息报告元数据保存到对应的即时消息元数据中。具体内容如下:

  <?xml version=″1.0″encoding=″UTF-8″?>

  <history-list xmlns=″urn:oma:xml:im:history-list″>

<history date=″2006-08-13″history-reference=″sip:123456@hist.example.com″>

       <size>10</size>

       <expiry>2006-08-15T19:13:00.0Z</expiry>

       <subject>Soccer</subject>

       <pager>

           <time-stamp>2006-08-13T19:13:00.0Z</time-stamp>

           <from>sip:merlin@example.com</from>

           <to>sip:mimin.underwood@example.com</to>

           <auth-id>sip:medlin@example.com</auth-id>

         </pager>

       <report>

           <time-stamp>2006-08-13T19:13:05.0Z</time-stamp>

           <disposition>

               <delivery>delivered</delivery>

           </disposition>

           ……      </report>

  </history>

  </history-list>

其中<report>元素(“特征标识”)用于表明该部分元数据描述的是即时消息(sip:123456@hist.example.com)对应的即时消息报告信息,<time-stamp>子元素记录了即时消息报告的接收时间,<disposition>元素用于描述即时消息报告类型,<delivery>子元素表示该即时消息报告为“递送报告”类型,其取值delivered表明“成功递送”状态结果。此外,<report>元素下还可以记录更多从即时消息报告内容中生成的相关元数据信息,而<disposition>元素下还可以记录更多的报告类型以及状态结果。

这种情况下,存储服务器在生成即时消息报告元数据时,生成了该即时消息报告的类型和状态结果等,类型可以为递送报告、阅读报告、处理报告等;状态结果可以包括:成功、失败、处理中、存储、禁用、错误等。

此时,也可以在一条即时消息元数据下存储对应的多条即时消息报告元数据,以表明该即时消息不同处理过程的状态。如:

  <?xml version=″1.0″encoding=″UTF-8″?>

  <history-list xmlns=″urn:oma:xml:im:history-list″>

<history date=″2006-08-13″history-reference=″sip:123456@hist.example.com″>

       <size>10</size>

       <expiry>2006-08-15T19:13:00.0Z</expiry>

       <subject>Soccer</subject>

       <pager>

           <time-stamp>2006-08-13T19:13:00.0Z</time-stamp>

           <from>sip:merlin@example.com</from>

           <to>sip:mimin.underwood@example.com</to>

           <auth-id>sip:medlin@example.com</auth-id>

         </pager>

       <report>

           <time-stamp>2006-08-13T19:13:05.0Z</time-stamp>

           <disposition>

              <delivery>delivered</delivery>

          </disposition>

          ……

     </report>

      <report>

         <time-stamp>2006-08-13T19:13:07.0Z</time-stamp>

         <disposition>

             <read>read</read>

         </disposition>

         ……

    </report>

   </history>

</history-list>

这样,在保存到元数据服务器中的即时消息报告元数据中就包括该即时消息报告的类型和状态结果,这往往是用户在读取即时消息报告时最关心的内容,这时候,存储服务器可以在保存该即时消息报告元数据后,把接收的即时消息报告丢弃,及时释放空间。另外,由于即时消息元数据与即时消息报告元数据合并存储,还可以减少一些即时消息元数据与即时消息报告元数据重复的内容信息,如<from>、<to>、<auth-id>、<subject>等元素。

由于即时消息报告元数据直接存储在即时消息元数据之下,客户端在读取元数据时,可以根据特征标识识别该即时消息报告元数据,并把该即时消息报告元数据信息直接显示在对应的即时消息元数据中,用户根据该即时消息元数据就可直接得知该消息的发送状态。

上述各实施例的方法,可以应用于寻呼模式(Pager Mode)即时消息,也可应用于大消息模式(Large Message Mode)即时消息;当为大消息模式(LargeMessage Mode)即时消息时,存储服务器可以等到消息会话全部结束后,结合完整的会话元数据信息,再将即时消息元数据和即时消息报告元数据保存到元数据服务器中。

在一种实施方式中,当消息服务器中包括存储服务器时,消息服务器还可以获取要求在网络侧保存即时消息报告的指示参数;并根据该指示参数执行所述根据所述即时消息报告生成即时消息报告元数据。

具体的,由存储服务器执行根据该指示参数执行所述根据所述即时消息报告生成即时消息报告元数据。该指示参数可以由客户端在请求中携带;或,根据用户的偏好设置主动获取。

发送方用户在发送即时消息之前,通过发送方客户端向消息服器发送一个请求,指示消息服务器在网络侧保存即时消息,该请求中还携带一个指示参数,指示消息服务器是否需要在网络侧保存即时消息报告。

如:发送方客户端通过SIP PUBLISH请求,设置消息服务器为发送方户保存即时消息,同时在该请求中携带要求在网络侧保存即时消息报告的指示参数。如report=true。所述指示参数还可以由其它消息体、头域、XML配置文档的形式携带。

消息服务器接收到该指示参数后,具体可以是将消息报告复制一份,然后向存储单元和客户端分别发送即时消息报告,如report=true时,消息服务器将接收到的即时消息报告复制一份发送到存储单元;由存储单元来执行根据所述即时消息报告生成即时消息报告元数据。发送形式具体可以是消息服务器向存储服务器发送包含即时消息报告的SIP MESSAGE请求。

当请求中没有该指示参数,或者携带report=false的指示参数时,消息服务器只向客户端发送即时消息报告,不将其复制向存储单元发送。

消息服务器也可以通过主动订阅/获取用户的偏好设置来获得所述指示参数。

类似的,接收方客户端也可以通过向即时消息服务器发送携带指示参数的请求设置消息服务器是否需要发送即时消息报告到存储服务器。当即时消息发送方客户端和接收方客户端不在同一归属域时,上述消息服务器分别指发送方客户端的归属消息服务器和接收方客户端的归属消息服务器。

本实施例中的消息服务器通过根据所述指示参数执行所述根据所述即时消息报告生成即时消息报告元数据。实现根据用户指示或用户偏好在网络侧保存即时消息报告。

在另一实施方式中,当消息服务器或存储服务器中包括元数据存储单元,或者消息服务器、存储服务器、元数据服务器三者一体时,该装置还可以接收客户端的搜索请求,所述搜索请求中包括搜索条件;并根据存储的即时消息报告元数据中携带的特征标识区分所述即时消息报告元数据和所述即时消息元数据;根据区分结果和所述搜索条件获取符合搜索条件的聊天记录元数据;返回符合所述搜索条件的聊天记录元数据。具体是元数据服务器实现上述功能,实现细节可参见下述实施例。

图2为本发明实施例识别即时消息报告元数据的方法的一个流程图,包括:

S201获取聊天记录元数据,该聊天记录元数据包括即时消息元数据和即时消息报告元数据,该即时消息报告元数据携带特征标识;

客户端(可能经过聚合代理服务器)向元数据服务器发出HTTP GET请求,请求获取用户的聊天记录元数据;元数据服务器通过HTTP 200OK响应(可能经过聚合代理服务器)向客户端返回该用户的聊天记录元数据,其中包含即时消息元数据和即时消息报告元数据,即时消息报告元数据包含有特征标识,以与即时消息报告元数据相区别,该特征标识即是在图1所示的实施例中插入到即时消息报告元数据中的特征标识。

S202根据特征标识识别即时消息报告元数据;

在即时消息报告元数据和即时消息元数据并列存储的情况下,客户端可根据某条聊天记录元数据是否包含该特征标识,来判断该聊天记录为即时消息报告或者即时消息。在即时消息报告元数据存储在即时消息元数据中时,客户端可以通过该特征标识识别出即时消息元数据中是否包含即时消息报告元数据。

在在即时消息报告元数据和即时消息元数据并列存储的情况下,该方法还包括将即时消息报告元数据与即时消息元数据区别展示,以便用户能够根据展示内容区分即时消息元数据和即时消息报告元数据。展示示例如下表1:

  聊天记录  是否报告  111@hist.example.com  否

  聊天记录  是否报告  222@hist.example.com  否  333@hist.example.com  是  444@hist.example.com  否  555@hist.example.com  是  ……  ……

在即时消息报告元数据存储在即时消息元数据中时,该方法还包括展示时标记该即时消息元数据中是否包含即时消息报告元数据。展示示例如下表2:

  聊天记录  是否包含报告  111@hist.example.com  否  222@hist.example.com  否  333@hist.example.com  是  444@hist.example.com  否  555@hist.example.com  是  ……  ……

本实施例提供的展示即时消息报告的方法,客户端通过特征标识识别即时消息报告元数据,并向用户区别展示即时消息报告元数据和即时消息元数据,使用户在阅读聊天记录元数据时就可以区分即时消息报告元数据和即时消息元数据。

当然,客户端展示的方式可以不限于上述方式,区别展示的方式可以有多种,客户端在展示聊天记录元数据时,可以将即时消息报告元数据标识出来,或者直接在某即时消息元数据后显示该即时消息对应的消息报告元数据的内容,如显示某条即时消息状态为“已阅读”。只要用户能够根据展示内容区分即时消息元数据和即时消息报告元数据即可。

在即时消息报元数据与即时消息元数据并列存储的情况下,如果即时消息报告元数据中携带对应的即时消息的存储地址;客户端则生成出该对应的即时消息的存储地址,根据该对应的即时消息的存储地址将该对应的即时消息的元数据与该即时消息报告元数据的关联关系展示给用户,以便用户能够直接将该即时消息报告与对应的即时消息关联起来。即用户可以根据展示的即时消息报告元数据找到对应的即时消息内容。具体方式可以是在该即时消息报告中标注出对应的即时消息的存储地址链接。用户点击此链接就可以阅读对应的即时消息内容,展示内容可如下表3:

  聊天记录  是否报告  关联消息  收/发时间  收/发件人  主题  其它  111@hist.example.com  否  -  2006-08-13  19:13:00  Alice  Party  ……  222@hist.example.com  否  -  2006-08-13  19:14:00  Bob  Footb  all  ……  333@hist.example.com  是  111@hist.example.c  om  2006-08-13  19:15:00  Alice  Party  ……  444@hist.example.com  否  -  2006-08-13  19:16:00  David  Footb  all  ……  555@hist.example.com  是  444@hist.example.c  om  2006-08-13  19:17:00  David  Footb  all  ……  ……  ……  ……  ……  ……  ……  ……

上图中带下划线表示超链接,用户可以通过点击此链接阅读对应的即时消息内容。

即时消息报告元数据也可以携带即时消息报告的存储地址,即时消息报告可以由存储服务器保存,客户端将即时消息报告元数据中的即时消息报告的存储地址识别出来,展示给用户时将所述即时消息报告的存储地址与所述即时消息报告元数据的关联关系展示给用户,以便用户能够根据所述即时消息报告元数据得到对应的即时消息报告内容。展示内容可以如下表4:

  聊天记录  是否报告  关联消息  收/发时间  收/发件人  主题  其它  111@hist.example.com  否  -  2006-08-13  19:13:00  Alice  Party  ……  222@hist.example.com  否  -  2006-08-13  19:14:00  Bob  Footb  all  ……

  聊天记录  是否报告  关联消息  收/发时间  收/发件人  主题  其它  333@hist.example.com  是  111@hist.example.c  om  2006-08-13  19:15:00  Alice  Party  ……  444@hist.example.com  否  -  2006-08-13  19:16:00  David  Footb  all  ……  555@hist.example.com  是  444@hist.example.c  om  2006-08-13  19:17:00  David  Footb  all  ……   ……  ……  ……  ……  ……  ……  ……

以上各表中带下划线表示超链接,用户可以通过点击此超链接阅读对应的即时消息或者即时消息内容。

需要说明的,在上述各表中,即时消息报告与即时消息可以不是一一对应的关系,一条即时消息可以对应多条即时消息报告,多条即时消息报告分别记录对该条即时消息不同过程的处理结果,如一条即时消息,可以对应三条消息报告,分别记录该条消息的阅读报告、递送报告、处理报告。

存储服务器还可以将根据即时消息报告生成即时消息报告的类型和状态结果,其实现过程上面已有详述,在此不再赘述。

这样,在即时消息报告元数据中就包括即时消息报告的类型和状态结果。此时,可以将保存在存储服务器中的消息报告本身丢弃,客户端在展示聊天记录元数据时,直接将消息报告的类型和状态结果展示给用户,如下表5:

  聊天记录  是否报告  关联消息  报告内容  收/发时间  收/发  件人  主题其它  111@hist.example.com  否  -  2006-08-13  19:13:00  Alice  Party……  222@hist.example.com  否  -  2006-08-13  19:14:00  Bob  Foot  ball……  333@hist.example.com  是  111@hist.  example.c  om  已阅读  2006-08-13  19:15:00  Alice  Party……

  聊天记录  是否报告  关联消息  报告内容  收/发时间  收/发  件人  主题其它  444@hist.example.com  否  -  2006-08-13  19:16:00  David  Foot  ball……  555@hist.example.com  是  444@hist.  example.c  om  已递送  2006-08-13  19:17:00  David  Foot  ball……  ……  ……  ……  ……  ……  …………

在即时消息报告元数据存储在即时消息元数据之中时,一种方式是即时消息报告元数据中携带即时消息报告的存储地址,客户端在识别出该即时消息元数据中包含即时消息报告元数据后,将即时消息报告的该存储地址读取出来,展示给用户,以便用户根据该链接阅读相应的即时消息报告内容。展示内容示例如下表6:

  聊天记录  是否包含报告  报告地址  收/发时间  收/发  主题  其  件人  111@hist.example.com  否  -  2006-08-13  19:13:00  Alice  Party……  222@hist.example.com  否  -  2006-08-13  19:14:00  Bob  Football……  333@hist.example.com  是  334@hist.example.com  2006-08-13  19:15:00  Charlie  Party……  444@hist.example.com  否  2006-08-13  19:16:00  David  Football……  555@hist.example.com  是  556@hist.example.com  2006-08-13  19:17:00  Eric  Football……  ……  ……  ……  ……  …………

这样,用户通过点击即时消息报告地址的超链接便可以阅读该即时消息报告内容。

当存储服务器在生成即时消息报告元数据时,已经将生成报告类型和状态结果保存到元数据服务器相应的即时消息元数据中时,客户端展示聊天记录元数据时,就将该即时消息对应的报告类型和状态结果展示给用户,示例如下表7:

  聊天记录  消息状态  收/发时间  收/发件  人  主题其它  111@hist.example.com  已递送(2006-08-1319:13:05)  已阅读(2006-08-1319:15:00)  2006-08-13  19:13:00  Alice  Party……  222@hist.example.com  已递送(2006-08-1319:15:05)  2006-08-13  19:14:00  Bob  Football……  333@hist.example.com  处理中(2006-08-1319:15:25)  2006-08-13  19:15:00  Charlie  Party……  444@hist.example.com  递送失败(2006-08-1319:18:00)  2006-08-13  19:16:00  David  Football……  555@hist.example.com  阅读状态禁用(2006-08-13  19:18:05)  2006-08-13  19:17:00  Eric  Football……  ……  ……  ……  ……  …………

在上表中,即时消息111@hist.example.com对应两个即时消息报告,分别记录该消息递送和阅读的状态。消息状态中的时间表示该消息报告发生的时间。

这样,用户从上表中展示内容就可以马上得知该消息的状态,而不必要再去查看即时消息报告内容,不必保存和下载即时消息报告内容本身。

图3为本发明实施例返回聊天记录元数据的方法的一个流程图,包括:

S301接收搜索请求,所述搜索请求中包括搜索条件;

搜索条件保存有即时消息报告元数据和即时消息元数据的元数据服务器接收发送方用户通过客户端发送的搜索请求,该搜索请求包括的搜索条件可以有多种,如仅返回即时消息元数据或仅返回即时消息报告元数据等等。

S302根据存储的即时消息报告元数据中携带的特征标识区分所述即时消息报告元数据和所述即时消息元数据;

元数据服务器接收该搜索请求后,搜索其保存的即时消息元数据和即时消息报告元数据,即时消息报告元数据中携带的特征标识同图1的实施例中的特征标识。搜索过程包括根据即时消息报告元数据携带的特征标识识别即时消息报告元数据,将其与即时消息元数据区分开来。

S303根据区分结果和所述搜索条件获取符合搜索条件的聊天记录元数据;

元数据服务器在搜索过程中区分即时消息元数据和即时消息报告元数据,并且会根据搜索条件进一步搜索。得到符合搜索条件的聊天记录元数据,该聊天记录元数据可以是即时消息元数据和/或即时消息报告元数据。

S304返回符合所述搜索条件的聊天记录元数据。

元数据服务器根据搜索条件过滤掉不符合条件的聊天记录元数据,并向客户端返回符合所述搜索条件的聊天记录元数据。

本实施例中提供的返回聊天记录元数据的方法,元数据服务器通过即时消息报告元数据中携带的特征标识区别即时消息报告元数据和即时消息元数据,可以根据用户设置的搜索条件返回聊天记录元数据。

当然,本发明实施例中,搜索请求中的搜索条件也可以包括:根据所述即时消息报告中携带的对应的即时消息的存储地址,和/或,所述即时消息报告的存储地址,和/或,所述即时消息报告的类型和状态结果进行搜索。

用户搜索聊天记录的操作流程与现有技术基本相同,都可以采用由HTTPPOST请求承载的Limited XQuery搜索命令进行搜索,区别在于用户可以利用聊天记录元数据中关于即时消息报告的描述信息,在搜索命令中设置进一步的搜索条件,从而获得更加符合用户要求的搜索结果,客户端(可能经过聚合或搜索代理服务器)向元数据服务器发出HTTP POST请求,其中携带LimitedXQuery搜索命令,请求搜索用户指定条件的聊天记录;元数据服务器收到该请求后,通过HTTP 200OK响应(可能经过聚合或搜索代理服务器)向客户端返回满足用户指定条件的聊天记录搜索结果。

由于即时消息报告中携带与即时消息区分的特征标识,那么,客户端可以给用户提供仅在即时消息中搜索或仅在即时消息报告中搜索的搜索条件设置,并根据用户选择向元数据服务器发出携带所述搜索条件的搜索请求,元数据根据所述请求中的搜索条件返回相应的结果,由客户端解析识别后呈现给用户。当用户指示仅在即时消息中搜索时,元数据服务器仅返回即时消息元数据;当用户指示仅在即时消息报告中搜索时,元数据服务器仅返回即时消息报告元数据。

比如用户在搜索时采用如下搜索命令:

<?xml version=″1.0″encoding=″UTF-8″?>

<search-set xmlns=″urn:oma:xml:xdm:search″>

<search id=″1234″>

<request>

<query>

<![CDATA[

xquery version″1.0″;

declare default element namespace″urn:oma:xml:im:history-list″;

for $u in collection(″org.openmobilealliance.conv-history

/users/alice@example.com″)/history-list/history

where($u/report/subject=″Football″)

return $u

]]>

</query>

</request>

</search>

</search-set>

其中,搜索条件语句where($u/report/subject=″Football″)及返回值语句return$u表明,用户只希望获得满足条件为主题是”Football”的即时消息报告元数据,而非对应的即时消息,元数据服务器在返回即时消息报告元数据时,如果该即时消息报告元数据中携带对应的即时消息报告和/或即时消息存储地址,元数据服务器也可以将该存储地址包含在返回结果中,供用户根据该存储地址查看对应的消息报告或即时消息内容。当然用户发送的搜索请求中也可以要求返回即时消息报告和即时消息存储地址,如用户此时可以通过设置返回值语句为return$u/report/msg-hist-ref而得到对应即时消息的存储地址。或者,用户也可以通过设置搜索条件为where($u/pager)而仅列出所有即时消息元数据,过滤掉即时消息报告元数据。

当即时消息报告元数据中包括报告类型和状态结果时,客户端可以提供具备特定即时消息报告类型的即时消息以及具备特定即时消息报告状态结果的即时消息的搜索条件设置;这样,用户则可以在搜索其聊天记录的过程中通过客户端向元数据服务器发送仅选择符合特定递送/阅读/处理状态的即时消息的搜索请求,如用户采用以下搜索命令:

<?xml version=″1.0″encoding=″UTF-8″?>

<search-set xmlns=″urn:oma:xml:xdm:search″>

<search id=″1234″>

<request>

<query>

<![CDATA[

xquery version″1.0″;

declare default element namespace″urn:oma:xml:im:history-list″;

for $u in collection(″org.openmobilealliance.conv-history

/users/alice@example.com″)/history-list/history

where($u/report/disposition/delivery=”delivered”)

return$u

]]>

</query>

</request>

</search>

</search-set>

其中,搜索条件语句where($u/report/disposition/delivery=”delivered”)表明搜索范围仅包含已经成功递送的即时消息,返回值语句return$u表明将列出满足条件的即时消息的全部元数据信息。当然,用户还可以组合其它搜索条件或返回值语句来获得进一步筛选效果。

本实施例中,元数据服务器通过识别即时消息报告元数据中所携带的信息,可以向用户提供更多的搜索条件设置,更精确的搜索结果,提高了搜索的效率和用户体验。

图4为本发明实施例保存即时消息报告元数据的装置的一个结构示意图,具体包括:

获取单元401,用于获取即时消息报告;

参见S101。

生成单元402,用于根据所述即时消息报告生成即时消息报告元数据;生成出的即时消息报告元数据可以包括下列内容:该即时消息报告存储地址、大小、主题、时间、收/发件人以及类型、状态结果等。参见S102。

插入单元403,用于在所述即时消息报告元数据中插入特征标识,所述特征标识用于区分即时消息报告元数据与即时消息元数据;

该特征标识可以是即时消息报告元数据文档中的特定元素或属性,具体内容参见S102。

保存单元404,用于保存已插入特征标识的即时消息报告元数据。

可选的,保存单元404具体可以是已插入特征标识的即时消息报告元数据独立于即时消息元数据保存。即将即时消息报告元数据独立于即时消息元数据保存到元数据服务器中,该元数据服务器中已经保存了即时消息元数据。

可选的,保存单元404还用于将所述已插入特征标识的即时消息报告元数据与所述即时消息元数据合并保存。即合并所述插入特征标识的即时消息报告元数据与所述即时消息报告对应的即时消息元数据,并保存合并后即时消息报告元数据和即时消息元数据。此时,保存单元需要先根据即时消息报告携带的对应即时消息的标识信息找到对应的即时消息元数据的存储地址。

本实施例提供的保存即时消息报告元数据的装置,通过在即时消息报告元数据插入特征标识后保存该即时消息报告元数据,使客户端在读取聊天记录元数据时,可以区分出即时消息报告元数据。

如图5所示,该保存即时消息报告元数据的装置还可以包括查找单元405,用于根据即时消息报告携带的对应即时消息的标识信息找到对应的即时消息的存储地址;此时插入单元403还用于将该对应的即时消息的存储地址插入到即时消息报告元数据中;该存储地址可以是加上识别标签的存储地址。具体可以参见对S103的说明。此时保存单元具体用于将已插入所述即时消息报告对应的即时消息的存储地址的即时消息元数据独立与即时消息元数据保存到元数据服务器中。

该保存即时消息报告元数据的装置还可以包括报告存储单元406,用于存储即时消息报告,并为存储的即时消息报告分配存储地址;获取单元401接收到即时消息报告后,并不立即保存,可能只是缓存该即时消息报告。在必要时,该报告由存储单元406保存,并为其分配存储地址。

此时插入单元403还用于将该即时消息报告存储地址插入到即时消息报告元数据中。这样,保存的即时消息报告元数据中就包含了该存储地址,以便客户端可以展示该即时消息报告元数据与对应的即时消息报告的关联关系。

另一个实施方式中,生成单元402具体用于根据所述即时消息报告生成包含所述即时消息报告类型和状态结果的即时消息报告元数据,生成单元402还用于在生成包括所述即时消息报告类型和状态结果后丢弃所述即时消息报告。这样,保存的即时消息报告元数据中就包含了该即时消息报告类型和状态结果。此时,因为即时消息报告元数据中已经包含了该即时消息报告中最重要的,也是用户最关心的内容,生成单元402在生成该即时消息报告元数据后将该缓存的即时消息报告丢弃。

另一种实施方式中,该装置还可以包括元数据存储单元407,用于存储所述已插入特征标识的即时消息报告元数据。

可选的,该装置还可以包括参数获取单元408,用于接获取要求在网络侧保存即时消息报告的指示参数;此时生成单元402具体用于根据所述指示参数执行所述根据所述即时消息报告生成即时消息报告元数据。即存储服务器包括在消息服务器中时,可参见图1所示的实施例的说明。

可选的,元数据存储单元407还用于接收搜索请求,所述搜索请求中包括搜索条件;并根据存储的即时消息报告元数据中携带的特征标识区分所述即时消息报告元数据和所述即时消息元数据;以及根据区分结果和所述搜索条件获取符合搜索条件的聊天记录元数据;返回符合所述搜索条件的聊天记录元数据。

具体实现可参见图3所示的实施例中的说明。

图6为本发明实施例客户端的一个结构示意图。包括:

获取单元601,用于获取聊天记录元数据,获取的聊天记录元数据包括即时消息元数据和即时消息报告元数据,即时消息报告元数据携带特征标识。

即时消息元数据和即时消息报告元数据都保存在元数据服务器中,可以是并列保存,也可以是即时消息报告元数据与对应的即时消息元数据合并保存,如即时消息报告元数据保存在对应的即时消息元数据之中。

该特征标识可以是即时消息报告元数据文档中的特定元素或属性,具体内容参见S102。

识别单元602,用于根据特征标识识别即时消息报告元数据。

识别单元602通过识别即时消息报告元数据中携带的特征标识来识别该即时消息报告元数据。即先去某条聊天记录元数据中寻找特征标识,如果该条聊天记录里携带该特征标识,在在即时消息报告元数据与即时消息元数据并列存储的情况下,则将该条聊天记录标注为即时消息报告元数据;在即时消息报告元数据保存在对应的即时消息元数据之中时,则将该条聊天记录标注为包含即时消息报告元数据的即时消息元数据。

本实施例提供的客户端,通过特征标识识别即时消息报告元数据,可以区分即时消息报告元数据与即时消息元数据。

图7为本发明实施例返回聊天记录元数据的装置的一个结构示意图;

包括:

接收单元701,用于接收搜索请求,所述搜索请求所述搜索请求中包括搜索条件;

接收单元701提供与客户端的接口,搜索请求可由客户端向其发送。

区分单元702,用于根据存储的即时消息报告元数据中携带的特征标识区分所述即时消息报告元数据和所述即时消息元数据;

参见S402的说明。区分模块702,首先根据即时消息报告元数据携带的特征标识识别即时消息报告元数据,将其与即时消息元数据区分开来。

获取单元703,用于根据区分结果和所述搜索条件获取符合搜索条件的聊天记录元数据。

返回单元704,用于返回符合所述搜索条件的聊天记录元数据。

本实施例中的具体实现细节可参见一种返回聊天记录元数据的方法的实施例中的说明。

本实施例提供的返回聊天记录元数据的装置,通过即时消息报告元数据中携带的特征标识和其他参数来进行搜索,可以向用户提供更多的搜索条件设置,更精确的搜索结果,提高了搜索的效率和用户体验。

图8为本发明实施例保存即时消息报告元数据的方法的一个流程图。具体包括:

S1001发送方用户通过发送方客户端,向消息服务器发送请求,请求在消息服务器中保存聊天记录,同时该请求还包括指示参数report=true,还指示消息服务器需要在网络侧保存即时消息报告;

S1002-S1003发送方用户通过发送方客户端、消息服务器向接收方发送即时消息,其中携带即时消息报告请求;

S1004消息服务器将即时消息内容保存到存储服务器;

S1005存储服务器为所保存的即时消息分配存储地址,并生成即时消息中的其它元数据信息,将存储地址和其它元数据信息保存到元数据服务器;

S1006-S1007接收方根据接收到的即时消息中所携带的即时消息报告请求,通过消息服务器向发送方客户端发送即时消息报告;

S1008消息服务器根据S1001中的指示,将步骤S1006中接收的即时消息报告发送到存储服务器;

S1009存储服务器接收到即时消息报告后,保存该即时消息报告,为所保存的即时消息报告分配存储地址,并根据即时消息报告中携带的对应即时消息的标识信息(如message-id),找到与之相对应的即时消息的存储地址作为“关联标识”;存储服务器还生成该即时消息报告元数据,并将即时消息报告“特征标识”和上述两个存储地址加入即时消息报告元数据中。

S1010存储服务器将即时消息报告元数据保存到元数据服务器。

存储服务器将即时消息报告元数据与即时消息元数据并列存储在元数据服务器中。保存到元数据服务器中的即时消息报告元数据包含了特征标识和上述两个存储地址以及其它相关元数据信息。

上述S1009也可以是存储服务器接收到即时消息报告后,生成所述即时消息报告中的相关元数据信息,包括即时消息报告的类型和状态结果,并根据即时消息报告中携带的对应即时消息的标识信息(如message-id),找到与之相对应的即时消息的存储地址作为“关联标识”,根据该“关联标识”找到元数据服务器中对应的即时消息元数据。此时,上述S1010也可以是存储服务器将生成出的即时消息报告元数据保存到元数据服务器中该“关联标识”所对应的即时消息元数据中,再丢弃所述即时消息报告。

此时保存在元数据服务器中的即时消息报告元数据包括:即时消息报告的类型和状态结果,并直接存储在其对应的即时消息元数据之中。

本实施例提供的保存即时消息报告元数据的方法适用于各种消息模式,包括寻呼模式(Pager Mode)即时消息,也可用于大消息模式(Large Message Mode)等。对于大消息模式来说,S1005、S1009也可以等到消息会话全部结束后,结合完整的会话元数据信息,再分别执行。当消息服务器、存储服务器、元数据服务器中的三者或者任何两者部署在同一服务器中时,它们之间的信令交互操作可由服务器的内部模块交互替代。

本实施例提供的保存即时消息报告元数据的方式,通过特征标识将即时消息报告元数据与即时消息元数据相区分,并在即时消息报告元数据中携带对应的即时消息报告存储地址信息,对应的即时消息存储地址信息,以及消息报告的类型和状态结果,实现了用户不需要下载即时消息报告内容就可知道某条聊天记录元数据是否是即时消息报告元数据。进一步,可以根据展示的即时消息报告元数据得到对应的即时消息或者即时消息报告内容,以及直接了解该即时消息报告的类型和状态结果等重要信息。

另外,当一条即时消息元数据需要保存多条对应的即时消息报告元数据时,S1006-S1010可以多次执行,如接收方发送一条成功递送的即时消息报告,存储服务器将该即时消息报告的元数据保存到元数据服务器中后,接收方再发送一条成功阅读的即时消息报告(即S1006-S1007再执行一次)。这样就可以实现该条即时消息的每一步处理过程都有相应的即时消息报告记录。用户可以通过阅读即时消息报告元数据了解该即时消息处理的全过程。

需要说明的是,本发明实施例不需要引入独立的功能部件,可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以执行本发明各个实施例所述的方法。这里所称的存储介质,如:ROM/RAM、磁盘、光盘等。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号