CN1867913A - 具有数据存储装置接口协议连接器的通信系统及相关方法 - Google Patents
具有数据存储装置接口协议连接器的通信系统及相关方法 Download PDFInfo
- Publication number
- CN1867913A CN1867913A CN 200480029632 CN200480029632A CN1867913A CN 1867913 A CN1867913 A CN 1867913A CN 200480029632 CN200480029632 CN 200480029632 CN 200480029632 A CN200480029632 A CN 200480029632A CN 1867913 A CN1867913 A CN 1867913A
- Authority
- CN
- China
- Prior art keywords
- module
- protocol
- interface
- data
- data storage
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 140
- 238000013500 data storage Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims description 77
- 230000004044 response Effects 0.000 claims description 45
- 238000003860 storage Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims description 5
- 238000010168 coupling process Methods 0.000 claims description 5
- 238000005859 coupling reaction Methods 0.000 claims description 5
- 230000009471 action Effects 0.000 description 47
- 239000003795 chemical substances by application Substances 0.000 description 38
- 230000008569 process Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 15
- 238000009825 accumulation Methods 0.000 description 14
- 238000013519 translation Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000005055 memory storage Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 241000282470 Canis latrans Species 0.000 description 5
- 238000004904 shortening Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000035807 sensation Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- HWCKGOZZJDHMNC-UHFFFAOYSA-M tetraethylammonium bromide Chemical compound [Br-].CC[N+](CC)(CC)CC HWCKGOZZJDHMNC-UHFFFAOYSA-M 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 241000501754 Astronotus ocellatus Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
一种通信系统可以包括多个数据存储装置,用于存储使用多种不同的操作协议中的至少一种。该系统还可以包括用来访问数据存储装置的多个移动无线通信设备,每个移动无线通信设备使用多种不同的操作协议中的至少一种。另外,还可以包括协议接口装置。所述协议接口装置包括前端代理模块,用于使用相应的操作协议与多个移动无线通信设备通信,和协议引擎模块,用于使用公用接口协议与前端代理模块通信。协议接口装置还可以包括相应的接口连接器模块,由于为每种不同的操作协议转换所述协议引擎模块和所述多个数据存储装置之间的通信。
Description
技术领域
本发明涉及通信系统领域,特别是利用多种操作协议进行数据访问操作的通信系统及相关方法。
背景技术
在计算机系统上或协同计算机系统操作的客户端软件经常用于访问存储在可通过,如局域网(LAN)与计算机系统建立通信的服务器上的数据。在许多情况中,只能通过特殊的协议访问服务器上的数据,这样就限制用户只能使用特殊的客户端。类似地,特殊类型的客户端通常配置成只能在某种类型的服务器或协议下运行。
例如,在电子邮件(email)系统中,用户需要将邮箱关联到邮件服务器,为了访问电子邮件,需要特定的协议,经常还需要特定的消息客户端。没有一种标准方法用于访问服务器上保存的电子邮件。各种销售商和标准化组织各自定义了几种不兼容的协议。另外,因特网的发展也带来了一些关键问题。首先,为了对其基本用户获得控制,一些基于因特网的电子邮件提供商将标准协议进行了专有化的扩展。其它销售商也远离基于RFC的协议转而重新定义新的协议。
此外,许多销售商选择实现象因特网消息访问协议(IMAP)和邮局协议(POP)这样的标准协议,但是对这些协议规则有不同的解释。由于访问机制的这种增殖,导致没有单一的方式来访问所有这些邮件存储器。如果试图计算所有这些不同的协议和实现这些协议,那么访问这些邮件存储器的应用会立刻变得过于复杂。
为了在使用不同操作协议的系统和设备之间提供通信,已经开发了各种现有技术的模式。授予Dutta等人的美国专利No.6,615,212提出了这样一种方式,其中代码转换代理服务器从客户端设备接收对内容的请求。代码转换代理服务器从发端服务器获得内容。获取的内容按第一种格式类型提供。为了响应在内容被代码转换成第二种格式类型前允许客户端处理第一种格式类型的内容以获得效率提升的决定,代码转换代理服务器按第一种格式类型向客户端发送内容。
此外,为了响应客户端没有能处理第一种格式的内容的内容处理软件的决定,代码转换代理服务器将处理第一种格式类型的内容处理软件和第一种格式类型的内容一起发送给客户端。然后代码转换代理服务器将第一种格式类型的内容代码转换为第二种格式类型,再将内容按第二种格式发送给客户端。
尽管具有这种现有技术的模式,但在某些应用中还需要进一步的协议翻译和/或转换功能。
发明内容
鉴于上述背景,本发明的目的是提供一种具备增强的操作协议转换特征的通信系统及其相关方法。
一种通信系统能够提供根据本发明的这个和其它目的、特征和优点,该通信系统可以包括多个数据存储装置,使用多种不同的操作协议中的至少一种存储数据。该系统还可以包括多个移动无线通信设备,用于访问数据存储装置,每个移动无线通信设备使用所述多种不同的操作协议中的至少一种。此外,还可以包括协议接口装置。所述协议接口装置可以包括前端代理模块,用于使用相应的操作协议与多个移动无线通信设备通信;和协议引擎模块,利用使用公用接口协议与所述前端代理模块通信。协议接口装置还可以包括相应的接口连接器模块,用于为每种不同的操作协议转换协议引擎模块和多个数据存储装置之间的通信。
更具体地说,有利的是,协议引擎模块可以是通用代理服务器小程序(servlet)模块。另外,协议接口装置还可以包括耦合在通用代理服务器小程序模块和所述多个接口连接器模块之间的多个提供商模块。通用代理服务器小程序模块可以根据来自前端代理模块的相应数据访问请求为所述多个接口连接器模块产生调用,所述多个提供商模块将所述调用传送给相应的接口连接器模块。
作为例子,接口连接器模块可以包括Microsoft Exchange连接器模块、Domino连接器模块、美国在线(AOL)连接器模块、Hotmail连接器模块、Microsoft Network(MSN)连接器模块、Compuserve连接器模块、邮局协议(POP)连接器模块、和因特网消息访问协议(IMAP)连接器模块。当然,也可以使用其它的接口连接器模块。
所述多个数据存储装置、多个移动无线通信设备、和协议接口装置可以处理,例如电子邮件(e-mail)消息。另外,公用接口协议可以以基于Web分布式编写和版本控制(WebDAV)的协议为基础。此外,协议接口装置可以为至少一个不支持的操作协议产生错误响应。
通信系统还可以包括象因特网这样的广域网(WAN),连接至少一个移动无线通信设备和协议接口装置。另外,还可以利用这种WAN连接至少一个数据存储装置和协议接口装置。
本发明的方法方面是作为多个移动无线通信设备与多个数据存储装置之间的接口。所述移动无线通信设备和数据存储装置可以各使用多种不同的操作协议中的至少一种。该方法可以包括提供前端代理模块,用于使用相应的操作协议与所述多个移动无线通信设备通信,和提供协议引擎模块,使用公用接口协议与所述前端代理模块通信。该方法还可以包括提供相应的接口连接器模块,用于为每种不同的操作协议转换所述协议引擎模块和所述多个数据存储装置之间的通信。
根据本发明的协议接口装置可以包括象上面简要描述的那些前端代理模块和协议引擎模块。另外,根据本发明的计算机可读介质也同样可以包括前端代理模块和协议引擎模块。
附图说明
图1是根据本发明的通信系统的示意方框图。
图2是更详细说明图1的通信系统的协议接口装置的示意方框图。
图3是更详细说明图2的协议接口装置的可扩展前端代理模块的示意方框图。
图4和图5是说明实现与图3类似的可扩展代理架构的根据本发明的通信系统的另一个实施例的示意方框图。
图6是图2中的协议接口装置的另一个实施例的示意方框图。
图7是进一步说明图3的协议接口装置的协议引擎模块和其接口连接器模块的示意方框图。
图8是图7的协议引擎模块和接口连接器模块的另一个实施例的示意方框图。
图9仍然是图2的协议接口装置的另一个实施例的示意方框图。
图10是图2的协议接口装置的再一个实施例的示意方框图。
图11是说明图2的协议接口装置操作的流程图。
图12是说明图3的前端代理模块操作的流程图。
图13是说明图5的通信系统操作的流程图。
图14是说明图6的协议接口模块操作的流程图。
图15是说明图7的协议引擎和接口连接器模块操作的流程图。
图16是说明图9的协议接口装置操作的流程图。
图17是说明图10的协议接口装置操作的流程图。
图18是本发明中使用的移动无线通信设备示例的示意方框图。
具体实施方式
下面参考示出本发明优选实施例的附图更全面地描述本发明。本发明可以按多种不同的形式实施并且不局限于这里所提出的实施例。提供这些实施例使得本揭示更加彻底和完整,并且将本发明的范围全面地告知本领域的技术人员。相同的编号始终指向相同的组成元件,并且“′”符号和多个“′”符号用来表示可替代实施例中的相似元素。
现在转到图1,通信系统10包括提供访问多个数据存储装置或系统16、18、20的协议接口装置14。作为示例的通信系统10包括多个通信设备,即移动无线通信设备11和通过有线连接与系统相连的通信设备12。作为例子,可以根据本发明使用各种移动无线通信设备,如个人数字助理(PDA)、蜂窝电话等。下面参考图18中提供的例子描述适合在本发明使用的移动无线通信设备的示例。此外,有线通信设备的例子包括个人计算机、电话、传真机等。当然,虽然实施例中只显示了两种作为示例说明,实际上可以使用多种有线和无线设备。
通信设备11、12通常包括客户端软件,作为运行在其相应的通信设备上或与其相应的通信设备协同工作的软件模块或应用程序,以便通过协议接口装置14访问一个或多个数据存储装置16、18和20上存储的数据。本领域技术人员可以理解,这些通信设备还包括组件和/或软件模块,这些设备在图1中没有利用图示显示出来。本领域技术人员可以理解,对于移动无线通信设备11,它的客户端软件通过无线通信网络13或其它网络(例如,公用交换电话网(PSTN)或因特网)与协议接口装置14通信。
协议接口装置14的各种功能和操作最好通过在其上操作或于其协同操作的软件来实现。作为示例的协议接口装置14作为连接通信设备11、12的客户端软件和数据存储装置16、18、20的桥梁。最好通过象因特网这样的广域网(WAN)建立协议接口装置14、通信设备11、12和数据存储装置16、18、20之间的通信。即,如上所述,通信设备11、12可以通过因特网与协议接口装置14通信,协议接口装置与数据存储装置16、18、20之间的通信也可以这样。
当然,也可以考虑其它实现方法。例如,可以在同样包括数据存储装置16、18、20、通信设备11、12,或数据存储装置和通信设备(例如,在WAN上)的专网上实现协议接口装置14。应该指出,本发明不限于任何特定的连接或通信模式。
数据存储装置16、18、20存储要由通信设备11、12的客户端软件访问的数据。虽然有些客户端软件可以配置成能直接访问某些类型的数据存储装置,但是它们通常是上面所述的特定数据系统或特定协议。更具体地说,在象移动无线通信设备11这样限定的电子设备上,处理器功率、存储器资源和通信信道特征可能会妨碍那些与例如桌面和笔记本计算机系统中普遍使用的功能相同的客户端软件的安装和操作。另外,如果在桌面和笔记本计算机系统中可安装用来访问关联不同协议的多个数据存储装置的客户端软件,在这种限定的设备上不太可能提供对多种协议的支持。
可以利用不同的操作协议或访问模式来访问数据存储装置16、18、20。同样地,协议接口装置14通过由相应的数据存储装置支持的操作协议访问数据存储装置16、18、20,然后通过相应的客户端支持的操作协议向通信装置11、12提供数据。协议接口装置14的协议转换功能提供统一的途径来支持对多种数据系统的访问。正如下面会进一步详细描述的,协议接口装置14为不同协议或访问模式之间提供“任意到任意”的桥梁。
图2更详细地解释了协议接口装置14。如上所述,协议接口装置14作为不同类型的通信设备和不同类型的数据存储装置之间的桥梁。在所示的实施例中,数据存储装置24、26、28是存储电子邮件(e-mail)的系统/服务器。但是,应该指出,本发明不限于对邮件系统的访问。每个邮件系统24、26、28支持不同的操作协议或访问模式。更具体地说,邮件系统24支持Outlook Web Access(OWA),邮件系统26支持MicrosoftMessaging Application Programming Interface(MAPI),而邮件系统28支持私有协议,例如象美国在线(AOL)使用的那种。
作为示例的协议接口系统14包括前端代理模块30。作为示例的前端代理模块包括分别支持与客户端通信的无线应用协议(WAP)、邮局协议(POP)、因特网消息访问协议(IMAP)和超文本传输协议(HTTP)的代理模块34、36、38、40。
前端代理30还与协议引擎模块32通信。协议引擎模块32将OWA、MAPI、邮件系统28的私有协议(如果需要,还有其它协议)转换成与前端代理模块30兼容的格式。为此,相应的接口连接器模块70-77(图7)可以为邮件系统24、26、28使用的每个操作协议耦合到协议引擎模块32,下面会进一步讨论。在优选实施例中,前端代理模块30和协议引擎模块32是可扩展的,或者可扩展到容纳在其它操作协议可用时的附加操作协议,下面也会进一步讨论。
在操作中,用户通过他的通信设备上的客户端软件访问邮件系统24、26、28之一上的邮箱。例如,移动无线通信装置上的WAP浏览器与WAP代理模块34通信以访问邮件系统24。WAP代理34接收的访问命令或指令被转换成与协议引擎模块32兼容的格式。最好通过通用接口协议,可以是私有协议或已建立的公共协议来实现前端代理模块30和协议引擎模块32之间的通信。
此后,协议引擎模块32将从前端代理模块30接收到的访问命令或指令转换成与要访问的邮件系统关联的协议(例如,用于邮件系统24的OWA)。从邮件系统接收到的数据(例如,根据特定邮件系统的电子邮件消息、新消息列表、日历约会、任务等)、其访问协议支持的特征、和访问命令的属性被转换成通用接口协议并传送给前端代理。
此后,现用的代理模块(即,本例中的WAP代理模块34)为发出请求的客户端格式化接收的数据,或至少一部分数据。协议接口装置14还转换来自客户端的其它命令。可以对来自其它类型客户端的访问命令做类似处理。应该指出,当用户能够通过协议接口装置14访问多个邮箱时,可以响应一个访问命令可以访问几个邮件系统。。
因此,协议接口装置14允许使用不同操作协议的客户端访问也使用不同操作协议的邮件系统24、26、28。在客户端产生的象例如移动、删除、创建、发送、收取和查看这样的访问命令影响邮件系统24、26、28中存储的数据而不是拷贝的数据。通过协议接口装置14,提供与代理模块34、36、38、40中的任何一个兼容的客户端来访问一个或多个邮件系统24、26、28。这样有利于使客户端本身不必支持与要访问的邮件系统关联的访问协议或模式。
由于邮件系统协议和客户端协议不必兼容,因此协议之间支持的特征可以不同。例如,POP客户端不支持与OWA相同的特征。协议引擎模块32和前端代理模块30之间使用的接口协议最好被设计成能够所期望的操作协议呈现所期望数量的协议支持的要素和特征。更具体地说,通用接口协议最好能为大多数“有能力的”协议(在本例中是OWA)呈现所有协议支持的要素,以便提供最广泛的可能的特征支持。另外,如果需要,通用接口协议可以支持跨所有所支持协议上的全部特征集合。
作为例子,普通接口协议可以是根据基于Web分布式编写和版本控制(WebDAV)协议的私有协议。下面的程序清单#1提供了利用这种通用接口协议的验证请求例子。该验证请求程序示范允许邮件系统利用用户提供的用户标识符和密码验证协议接口装置14,它还检索邮件系统的目标邮箱的根文件夹和基本性能。
下面的程序清单#2给出了根据基于WebDAV的通用接口协议的收件箱请求示范。根据该程序,为了响应收件箱请求,需要查询目标邮箱中的收件箱性能,然后再查询它的内容。下面的程序清单#3提供了另一个例子,它用于根据前述的基于WebDAV的通用接口协议对文件夹的搜索请求。在此,为响应该请求,返回给定文件夹的子文件夹列表。本领域技术人员可以理解,可以使用很多其它的请求和操作。
应该指出,在所有实施例中,客户端软件都不必初始化数据访问请求。如本领域技术人员可以理解的,例如,在某些实施例中,协议接口装置14可以包括(或与之通信)能提示协议引擎模块32按预定时间间隔为每个用户累积邮件服务器24、26、28上的消息的轮询或累积(aggregation)引擎模块(未示出)。然后协议引擎模块14与前端代理模块30一起向相应的客户端软件提供如上所述的累积消息。此外,在所有实施例中,前端代理模块30不必直接和通信设备11、12通信,而与介入的例如邮件系统或服务器通信。因此,本领域技术人员也可以理解,当使用累积引擎模块时,前端代理模块30首先向介入的邮件服务器发送累积消息,邮件服务器依次向适合的通信设备提供消息。在此,前端代理模块30使用这种介入邮件服务器支持的适当协议与之进行通信。
图11中说明了利用协议接口系统14提供访问多个数据存储装置,例如邮件系统24、26、28的方法。从方框110开始,在方框111首先接收访问命令或数据。在方框112,访问命令或数据被转换成通用接口协议。然后,访问命令被转换(方框113)成与要访问的数据系统关联的数据系统协议,例如邮件系统24中使用的OWA。
另一方面,在方框113,数据被转换成客户端协议。根据客户端协议支持的特定特征,在这一步中,只转换那些与客户端协议支持的接口协议的要素对应的数据的那些部分。协议接口装置14可以对不支持的操作协议产生错误响应。更具体地说,最好忽略不支持的接口协议要素或根据缺省或出错处理机制进行处理。然后,在方框114,经过转换的访问命令或数据被传送到数据系统或客户端,到此所示方法结束(方框115)。
现在转向图3,描述前端代理模块30的实示范施例。作为示例的前端代理模块30包括代理模块34、36、38、40,翻译器模块44、可扩展样式转换语言(XSLT)引擎模块46、存储器(MEMORY)或模板存储器(STORE)48、流程控制器模块50、和处理器52a-52n。
如上所述,每个代理模块34、36、38、40有效地位于协议引擎模块32“之前”并且为不同的客户端类型转换相应的操作协议。例如,WAP代理模块以WML文件形式提供从一个或多个处理器52a-52n检索的信息,以便在象蜂窝电话和PDA这样的设备上显示。POP代理利用至少一些相同的代理组件,包括流程控制器模块50和翻译器模块44来翻译POP协议所需的数据。
作为示例的前端代理模块30的一个特别有利的优势是每个代理模块34、36、38、40使用相同的核心服务来路由业务量、访问数据、和翻译数据。换言之,翻译器模块44、XSLT引擎模块46、模板存储器48、流程控制器模块50、和处理器52a 52n为代理模块34、36、38、40提供通用的核心服务模块。由不同的代理模块34、36、38、40转换的唯一差别在于流程控制器50、处理器52a-52n和将数据转换成其最终形式所使用的XSL模板的配置。本领域技术人员可以理解,在许多情况下,各种代理模块34、36、38、40之间会重复使用相同的处理器52a-52n。
在操作过程中,利用客户端协议的标准机制,来自客户端的数据访问请求被传递给适合的代理模块34、36、38、40。例如,对于WAP的客户端,通过查询字符串和/或表单变量来传递参数。WAP代理模块34确定组件标识符(识别诸如邮件文件夹之类的目标项)、动作标识符(识别要执行的动作)、和基于请求中的数据的任何参数。在WAP的情况下,组件和动作标识符在查询字符串或表单中传递。查询字符串或表单中的其它参数被打包在参数列表中。
然后,现用的代理模块调用流程控制器50,与标识符和参数表一起传递。流程控制器通过组件和动作标识符查找合适的处理器,然后构建处理器,将参数当作自变量传递给构造器(未示出)。以处理器52a为例,该处理器利用数据层(图5)处理该请求以收集应答所需的信息。
例如,对于邮件系统访问,数据层与协议引擎模块32交流涉及例如用户邮箱、日历、或地址薄内容的任何信息。也可以为不同类型的信息,例如与验证服务和用户的电子邮件帐号有关的信息,建立与其它组件的通信。然后,处理器52a决定是否应该将请求转到另一个处理器,还是应该翻译它的结果。
处理器52a-52n返回的所有信息最好是通用格式,例如可扩展标记语言(XML)数据的提供商的org.xml.sax.InputSource。然后,现用代理模块调用翻译器模块44,将InputSource、位置信息、要翻译的模板名称、和OutputStream一起传递。翻译器模块44使用XSLT引擎46将页翻译为OutputStream。然后,现用代理模块利用客户端协议将OutputStream提供给客户端。
上述系统提供了一种一般的应用程序框架,它遵循能实现大多数应用程序架构的典型模型(model)/观察(view)/控制器(controller)(MVC)结构。一个重要的特征是可以为类似的服务定义功能的基本集,然后进行扩展,以提供为全面实现给定服务所需的特定服务功能。在给定实现中,流程控制器50、处理器52a-52n、和/或数据访问层可以完全扩展或替换。
应该记住,要支持新品牌的服务只要简单地包括定义和实现数据层、定义系统内的控制流程和具体动作(即,流程控制器模块50)、以及定义和实现与服务的接口(即,翻译器模块44)。另一方面,用现有服务支持新的客户端类型包括在流程控制器模块50和处理器52a-52n上做最小改变并在上面扩展动作来支持额外的客户端所需功能,以及定义和实现客户端和系统(即,翻译器模块44)之间的接口。
参考图12的方框图进一步描述前端代理模块30执行协议转换的操作。上面已经详细描述了某些操作示例,为避免过度重复,下面只作简要描述。从方框120开始,在方框121,代理模块34、36、38、40接收到访问请求或命令。在方框122,一个或多个处理器52a-52n将访问请求转换成通用接口协议。
在方框123,响应该请求,从给定的邮件系统24、26、28接收数据。翻译这些已经被协议引擎模块32转换成通用接口协议的数据(方框124)并且在方框125返回给客户端,到此,所示方法结束(方框126)。根据客户端协议支持的特殊特征,只翻译或转换与客户端协议支持的通用接口协议要素对应的那部分数据。可以忽略不支持的接口协议要素或如上所述根据缺省或出错处理机制进行处理。
应该指出,前端代理模块30的可扩展通用核心服务结构还能用于各种应用。一种这样的应用是指出用于响应来自Web应用的HTTP请求的不相干方法的各种缺点。现在参考图4和图5,描述具有根据本发明的可扩展结构的Web数据访问系统100。作为示例,双向通信的Web数据访问系统100的组件包括用户请求101、Web服务器102、代理服务器104、和可扩展控制器系统106。
更具体地说,用户请求101指的是用户利用Web浏览器或Web应用请求Web网页(例如,从PDA或个人电脑)。一旦进行请求,Web服务器102处理该请求。代理服务器104协助Web服务器102处理该请求。本领域技术人员可以理解,为了比较,在此,代理服务器104的功能与上面讨论的协议接口装置14类似,用代理服务器上运行的或与代理服务器协同的软件模块实现可扩展的控制器系统106。当然,在某些实施例中,代理服务器104和可扩展的控制器系统106可以用不同的物理设备或服务器实现。
代理服务器104提供为访问速度慢或资源紧张的其它服务器提供可用的高速缓冲或存储项的过程。代理服务器104接受带特殊前缀的URL。当它接收到这个URL的请求后,去掉前缀然后在本机的高速缓冲区中查找得到的URL。如果找到,立即返回文档,否则从远端服务器获取,在高速缓冲区存储一个副本,然后将它返回给请求者。代理服务器104返回的页面本质上可以是静态或动态的。代理服务器104可以与应用服务器或数据服务器通信,在该特定实施例中是可扩展控制器系统106。
更具体地说,作为示例的代理服务器104的组件与上述的类似,包括累积服务器202、翻译器模块212、XSLT引擎模块214、和存储一系列模板的存储器216。可扩展控制器系统106的组件也和上述类似,包括动作映象(map)204、和一系列处理器206。
累积服务器202对输入信息进行处理,然后将它传递给其它辅助组件。翻译器模块212将得到的数据翻译为可视格式。翻译器模块212使用XSLT引擎模块214和来自存储器的任何必要模板以翻译页面。
累积服务器202向动作映象204发送数据,动作映象204维护系统中的控制流程并处理业务逻辑。动作映象204与一系列处理器206交互。处理器206使用数据层208从其它数据源210检索信息。其它数据源210可以包括,例如,web数据的XML、涉及用户应用程序(例如,e-mail、日历或联系人)内容的任何信息使用的统一代理、或涉及用户帐户的验证服务和数据使用的API准备。
系统通过使用户发送一个URL作为用户请求101来发挥作用。Web服务器102接收该请求,将请求传递给代理服务器104,利用协议的标准机制进行处理。例如,一个WML请求会传递一个WAP参数查询字符串和/或表单变量。代理服务器104的累积服务器202组件根据请求中的数据确定组件ID、动作ID和任何参数。利用同一个WAP的例子,组件和动作ID通过查询字符串或表单传递。查询字符串或表单中的所有其它参数都打包在参数列表中。
然后,累积服务器202调用可扩展控制器系统106的动作映象204,并与ID和参数列表一起传递。动作映象204通过组件和动作ID查找合适的处理器206并构建处理器,将参数作为自变量传递给构建器。处理器206利用数据层108处理请求,使用数据层收集应答所需的信息。数据层208从位于网络内或网络外部的其它数据源210检索信息。然后,处理器206决定是否应该将请求转送到另一个处理器206,还是翻译它的结果。
如果系统决定翻译数据,那么数据从处理器206传回到动作映象204、和代理服务器104的累积服务器202。然后,累积服务器202调用请求XSLT引擎模块214的翻译器模块212和任何需要的模板,以将数据翻译成可视输出。然后该输出被返回给Web服务器102,使数据成为可视的web网页作为用户请求101的结果。
现在参考图13进一步描述利用可扩展的控制器系统106处理Web数据所包含的各个步骤。更具体地说,该图更详细地解释了代理服务器104和可扩展控制器系统106的处理过程和交互。系统流程从用户请求101开始。该请求被发送给Web服务器102,它将信息传递给代理服务器104进行处理。代理服务器104请求累积服务器202进行处理。
在方框302,累积服务器202确定上下文是否可用。如果可用,系统移到下一步挖掘ID(方框306)。如果不可用,那么在方框304,系统首先创建上下文,然后继续到下一步,在方框306挖掘ID。动作ID和组件ID也在系统中挖掘。在方框308,这些ID与请求参数和任何表单数据一起打包装入一个信封。
调用请求过程以便将数据从累积服务器202传递给可扩展控制器系统106的动作映象204。该请求过程将属于信封、动作代码、组件ID和上下文信息的信息传递给动作映象204。在方框310,动作映象204查找动作,然后在方框312确定是否存在动作。如果存在,则移到下一步,在方框316确定动作是否需要验证。如果不存在动作,系统在方框314检索缺省的动作,然后在方框316确定动作是否需要验证。
在此处,如果动作不需要验证,那么在方框320,系统确定是否任何请求都在等待中。如果动作需要验证,那么在方框318,系统确定上下文是否是已验证状态。如果上下文是已验证状态,那么在方框320,系统确定请求是否在等待中。而如果上下文是未验证状态,那么在方框314,系统将请求返回给获得的缺省动作,直到验证被接受。
在方框320,系统确定请求是否在等待中。如果请求在等待状态,那么系统执行等待中的请求并在方框346跳到下一阶段,确定队列中是否有进程。如果请求不在等待状态,那么在方框322,系统执行动作并使信封数据有效,然后在方框324,将控制传递给处理器206来创建动作处理器。一旦创建了动作处理器,接着在方框326进行初始化。
然后在方框328,系统确定是否允许背景处理。如果允许,在方框328创建背景处理器,然后在方框346,系统确定队列中是否有进程。而如果不允许背景处理,那么在方框320,系统处理动作处理器,然后在方框332,返回结果。重新访问系统,在方框346系统确定队列中是否有进程。如果队列中有进程,那么在方框350,它确定动作是否完成。如果队列中没有进程,那么在方框348,它向队列提交进程,然后在方框350,确定动作处理器是否完成。
如果动作处理器已完成,那么在方框352,系统返回动作处理器的结果。如果动作处理器未完成,那么在方框354,系统返回待译结果。在方框334,用方框352和354(返回动作处理器结果或待译结果)所示步骤的输出来确定是否翻译该结果。
更具体地说,方框332(返回结果)、352(返回动作处理器的结果)和354(返回待译结果)所示步骤的结果用来确定是否翻译该结果(方框334)。如果系统决定翻译结果,那么系统将数据从可扩展控制器系统106发送给代理服务器404并且在方框340,在翻译器模块212中翻译该数据。然后数据被传递到Web服务器102上,在方框342显示结果,作为对用户请求101的响应。但是,如果系统决定不翻译该结果而是决定将请求转送到另一个动作处理器进行处理,那么系统在方框336检索ID关键字、在方框338检索信封数据,然后在方框310查找合适的动作。系统在此处循环直到在方框334最终接受翻译结果的决定。
上述方法包括利用单一源来定义系统内的组件。在该特定实施例中,源是XML文件,但是也可以使用其它格式,本领域技术人员可以理解。这个源将定义处理请求的代码、URL语法和参数、用来产生对请求科学应答的模板或代码、以及请求的路由信息。
系统使用处理请求的代码和参数定义一起创建动作处理器,传递正确类型的参数,然后向它传递控制进行处理。参数包括允许明确地代表的数据的类型信息。参数可以被定义为任选或必选。模板用来创建对请求的响应。如果一个尝试是产生响应,而不是定义什么,就会产生一条错误信息。
源还为请求定义路由信息。许多时候都希望处理器在它自己的范围内执行工作,然后将控制移交给另一个处理器让它执行它的工作。但是,如果处理器试图将控制移交给源中未定义的东西,就会产生一条错误信息。
也可以有其它的变体。例如,每当创建系统在内使用的URL时可以使用该源。此外,请求路由可以和这些请求的实际处理分开。控制流程则由系统的一个组件,而不是每个处理器处理。处理器只是简单地让控制器将请求转送给另一个处理器。这样,输入数据可以在特定请求周期内保持已知状态。
另一种方法包括当一个处理器不直接调用另一个处理器执行它的工作时通过该系统强制控制流程。再有一种方法包括保持处理器相对小和简单。就是说,限制处理器接收请求和调用合适的业务逻辑以收集所希望的结果的目的和范围。另一种变体包括保持每个处理器关注一项任务,当完成这项任务后,允许结果被翻译或转送给下一个处理器。
再一种变体包括提供可扩展机制,用来处理可处理即时需求并且在一段时间内增长而不变复杂的请求。当系统加载时,用户可以指定主要和次要的动作映象。在这种方法中,当仍然向用户提供添加或修改功能的方法时,可以由主要动作映象指定一般业务逻辑和控制流程。另一种方法向开发人员提供快速响应长时间运行的请求的一般机制以避免发生超时。这样可使开发人员在处理器层,或整个系统指定背景处理。
上述可扩展控制器系统特别有利于提出Web或基于HTTP的应用的缺点。当然,本领域技术人员可以理解,同样的结构也可以扩展到支持基于非HTTP应用的其它类型。
现在转到图6,描述协议接口装置14′的一种替代实施例。在所示实施例中,在配置文件存储器或内存31′中存储的配置文件中定义对数据存储装置,如邮件系统24、26、28的所有请求。在这种方式中,对于给定的客户端类别,应用程序开发人员可以很容易地只请求那些支持在上面开发的客户端所需的特性。
有利的是,可以作为前端代理模块30′一部分或作为协议接口装置14′独立组件的资源管理器允许用户指定配置文件的主集和次集。如果指定了次配置文件,那么在它上面定义的任何资源将无视主配置文件中指定的资源。这样可以使用户指定资源的核心集,然后使它们全力适合特定实现。
此外,可以存储配置文件用于不同网络层的处理操作。例如,作为前端代理模块30′和协议引擎模块32′接口的数据层操作的配置文件存储在存储器31′中,也可以用于,例如流程控制器模块50执行的上层网络层操作。本领域技术人员可以理解,也可以使用其它类型的配置文件。
配置文件最好还指定被创建以来处理对给定请求的响应的实现类别。这样容易对数据模型中的目标行为作小改动,或甚至完全替换。配置文件中还可以指定每个请求的高速缓冲区行为和力度。通过组合这两个性质,开发人员可以更有力地控制整个存储器消耗和应答/请求性能。
另外,配置文件还允许用户为给定资源指定多个请求。这样可以支持不同请求/应答格式的数据系统。下面的程序清单#4是配置文件的示范。该配置文件适合上述支持WebDAV接口的数据存储,或在协议接口装置14′的情况下,支持WebDAV接口的协议引擎。但是,它也可以用于其它类型的接口/数据。
还应该指出的是,除了为资源指定的内容类别,用户还可以指定进一步识别给定资源的命令。本领域技术人员可以理解,这样可以使用户对给定资源类型执行多种不同的操作。
现在参考图14进一步描述利用配置文件的协议接口装置14′的操作。从方框140开始,在方框141,代理模块接收访问请求或命令。通过参考一个或多个配置文件,在方框142,处理器52a-52n将访问请求转换成通用接口协议。响应该请求而从数据系统接收(方框143)的、并且已经由协议引擎模块32′转换成通用接口协议的数据在方框144被格式化为应答并且被翻译。这是再次参考一个或多个配置文件进行的。此后,经翻译的应答被返回客户端(方框145),在方框146,所示方法结束。
现在参考图7,更详细地描述协议引擎模块32。协议引擎模块32提供框架来组合利用不同协议与各种邮件系统通信的各种接口连接器模块70-77。协议引擎模块32还提供通用接口,例如XML和WebDAV,使客户端用它来通过前端代理模块30访问各种邮件帐户。象只获取新邮件标题要点并不下载邮件和只确定附件存在和大小的普通操作的效率非常高。所有操作都在源上直接执行,只获取重要数据。
协议引擎模块32利用多个接口连接器模块70-77中合适的一个访问邮件系统。最好是所有连接器模块70-77都支持通用应用程序接口(API),以适应协议接口引擎32在支持一个新的协议量时只需简单地添加新的接口连接器模块。可以用例如Java编写连接器模块70-77,也可以用其它合适的语言或协议。例如通过提供多种动态加载平衡的协议引擎机器,可以提高整个系统性能和可用性。
由协议引擎模块32从邮件系统24、26、28接收的结果同样被转换成通用接口协议以便转换成客户端支持的协议,如果需要,发送给客户端。返回到客户端的结果最好只包括由客户端请求的数据。与邮件系统协议支持的、而不是客户端协议支持的特征对应的数据可以被转换成通用接口协议,也可以如上所述将其忽略或根据缺省或出错处理机制处理。
现在参考图15描述利用协议引擎模块32和接口连接器模块71-77的协议转换方法。从方框150开始,在方框151,接收访问请求或命令。在方框152,访问请求被转换成目标数据系统支持的协议。在方框153,响应该请求而从数据系统接收数据,此后,在方框154,将其转换成通用接口协议。如果需要,在方框155,进一步将数据转换成客户端协议,并且在方框156将数据发送给客户端,在方框157,所示方法结束。
另外,根据客户端支持的特殊特征,只转换与客户端协议支持的通用接口协议的要素对应的数据部分。如上所述,可以忽略不支持的接口协议要素或根据缺省或错误处理机制处理。
现在转到图8,描述上述协议转换模块结构的一个替换实施例。在此,协议引擎模块32采用统一代理(UP)服务器小程序(servlet)模块80的形式,并且每个接口连接器模块81、82、83和相应的提供商模块84、85、86与不同的操作协议关联。在所示例子中,不同的协议是OWA、IMAP和POP。本领域技术人员可以理解,相应的提供商/连接配对可以支持其它或不同的协议。
对于通用接口协议,例如上述私有接口协议,UP服务器小程序(servlet)模块80获得输入的通用格式请求并且利用定义的接口将它们转换成对接口连接器模块81-83的调用。UP服务器小程序(servlet)模块80还获得这些调用结果并将它们格式化成通用格式请求。每个通用格式请求包括一个方法请求和一个URL形式的路径。还可以包括为请求提供附加参数的XML文档。
从概念上讲,UP服务器小程序(servlet)模块80之下是用于每个所支持的邮件协议的提供商模块84-86。提供商负责处理UP服务器小程序(servlet)模块80进行的调用。如图所示,每个提供商都有一个负责与目标邮件系统上的源邮箱/帐户进行通信的连接。初始化时,连接也是提供商。
由UP服务器小程序(servlet)80使用的、并由提供商模块84-86实现的接口定义松散的文件夹层次。实际上,它可以被概念化为项目集合中的一个集合。一个项目可以是例如一条消息、一个文件夹、或一个联系人,或任何其它要表现的数据项。每个项目都有一个定义的类型(例如,邮件、联系人、约会)。每类项目的接口定义该类项目可用的属性和动作。文件夹项包括项目集合,并且提供列举文件夹中项目的方法。
连接器接口模块81-83为UP服务器小程序(servlet)模块80提供与不同的提供商模块/接口连接器模块通信的通用方式。在POP的情况下,某些连接器模块只能实现协议子集和/或只支持项目的一个文件夹(集合)。
下面是通用格式请求示例处理的基本流程。UP服务器小程序(servlet)模块80接收请求,并且它获得或创建合适的提供商/连接。然后,UP服务器小程序(servlet)模块80调用合适的“get folder(得到文件夹)”或与接口连接器模块关联的类似功能,传递目标邮件系统标识符,如通用格式请求中包含的URL。接口连接模块向实现文件夹接口和显示所请求文件夹的某个对象返回一条索引。在最简单的实现(例如,POP)中,一个单个对象可以是接口连接器模块,也可以代表邮箱文件夹。
UP服务器小程序(servlet)模块80利用返回的文件夹索引执行其它调用以满足通用格式请求。例如,如果UP服务器小程序(servlet)模块80需要获得指定项目,那么它可以首先调用“get folder”功能,传递所请求的URL,当它得到文件夹后,再调用“get item(得到项)”功能,再次传递URL。调用的结果被格式化成合适的格式,如XML,然后以HTTP应答形式返回。
由提供商模块/接口连接模块决定是否翻译传入的URL并返回合适的索引。因为提供商模块/接口连接模块首先提供URL,所以实现起来不复杂。任何接口连接模块都需要知道的唯一URL是“\”。由提供商/连接生成所有其它URL。只要层次/集合内的URL是唯一的,提供商就能够在调用“get”功能时分解正确项。
优选的是,提供商模块84-86和接口连接模块81-83支持根文件夹。如果只支持根文件夹,那么如果收件箱、日历、和联系人项(视情况而定)可以通过协议引擎访问,那么它们应该是文件夹内的项。
根据本发明的一个方面,提供一种单个、有利的机制来访问各种协议。该机制为能力类似的客户端协议支持每个数据系统协议的全部功能,并且当客户端协议不支持指定数据系统协议特征时降级。按通用格式接收的请求在被转送到目标服务器之前被翻译成提供商/协议指定格式。以提供商/协议特定的格式来自目标服务器的应答被转换回通用格式。
还提供一种赋予客户端对如何向提供商产生请求有更多控制的机制,它使客户端为指定提供商模块查询所支持的功能。无论是直接或通过代理,任何被写进支持通用协议格式的客户端都能很容易地提供对任何邮件存储器的访问,而不用关心它自己和邮件存储提供商模块/协议的详情。
现在参考图9描述协议接口装置14″的另一个实施例。在此,与要通过协议接口装置14″访问的e-mail帐户关联的用户e-mail帐户信息存储在数据存储器90″中。每个帐户信息最好包括每个e-mail帐户所支持的访问协议的说明。
数据存储器90″中的记录可以按帐户标识符,例如e-mail地址,或与协议接口装置14″关联的用户名排列使得特定用户的所有e-mail帐户信息在数据存储器90″中成组。当每个邮件系统24″、26″上的所有e-mail帐户支持相同的访问协议时,每个帐户信息可以包括表示每个邮件系统支持的操作协议的邮件系统信息。
数据存储器91″存储协议引擎模块32″支持的所有操作协议的列表,和表示协议首选项的相应尺度(即,等级)。根据权能标准,例如协议支持的每个邮件系统24″、26″的特征等级和协议的安全级别计算这些尺度。本领域技术人员可以理解,也可以采用其它标准。在数据存储器91″中,OWA的尺度或等级通常比MAPI高,而IMAP的等级通常高于POP。可以在例如本地硬盘或协议接口装置14″的其它存储器,或与协议接口装置通信的文件服务器上实现每个数据存储器90″、91″。
协议引擎模块32″确定命令或指令涉及哪个(或哪些)邮箱或帐户,然后访问数据存储器90″中的每个帐户信息确定每个要访问的帐户是否支持一种以上的访问协议。如果只支持一种访问协议,那么选择这个协议。如果帐户支持一种以上的协议,那么协议引擎模块32″访问数据存储器91″确定优选或希望哪个支持的协议,然后选择尺度或等级最高的所支持的协议。对于邮件系统24″,OWA和MAPI,优先选择OWA,而对于邮件系统26″,IMAP和POP,优先选择IMAP。
于是,协议接口装置14″可以利用所支持最有能力的协议访问邮件系统24″、26″。通过协议接口装置14″,提供与任何代理模块34″、36”、38″、40″兼容的客户端访问一个或多个邮件系统24″、26″。客户端本身不需要支持与要访问的邮件系统关联的访问协议或模式。
现在参考图9描述利用协议接口装置14″的数据系统访问协议的选择方法。从方框160开始,在方框161从客户端接收访问命令。确定(方框162)为响应命令而要访问的每个数据系统是否支持一种以上的访问协议。如果支持,那么在方框164选择所支持的最有能力的协议。否则,在方框163,选择一种支持的协议。在方框165,利用选择的协议访问每个数据系统,在方框166,所示方法结束。如果要访问一个以上的数据系统,对于每个数据系统最好重复方框162-164所示的协议选择步骤。
应该指出,协议和尺度数据存储器9l″只是根据本发明可以使用的一种协议选择等级技术示范的举例。下面的协议首选按照,例如所支持协议的列表顺序。
当选择一种协议时,除了尺度或全部选择外,还可以考虑其它标准。从哪种类型的客户端接收访问命令也会影响协议选择。例如,如果从POP客户端接收访问命令,那么OWA支持的许多增强特征在POP中表现不出来,无法发送给装置。如果用户只有一种客户端用来访问协议接口装置14″,那么每个帐户信息可以用来反映客户端类型或根据客户端类型限制所支持的协议的列表。否则,协议选择的下一步可以从接收到的访问请求确定客户端类型。
作为替换,可以总选择由要访问数据系统支持的最有能力的协议,在将数据转换成客户端协议期间处理所选择的访问协议和客户端所支持协议之间的任何不兼容。转换与客户端协议支持的接口协议要素对应的数据部分,而忽略不支持的接口协议要素或根据缺省或错误处理机制进行处理。
总的来说,客户端通常通过代理来访问服务器。另外,传输延迟时间经常与被访问集合的基数相关(例如,正在被访问的邮箱中email消息的数量)。从下面的描述中可以证实,本发明提供一种可以由代理使用的装置和技术,它给客户端一种正在访问的集合大小比实际小的感觉。例如,当邮箱中本身有2000多封邮件时,代理只显示邮箱中最近的100条消息。本发明可以使该代理选择能够显示给用户的集合的较小子集来代替整个集合,而不会明显地影响用户的感觉。
更具体地说,现在转到图10,描述协议接口装置14的另一个有利的实施例。总的来说,当从客户端接收到数据访问请求后,协议接口装置14访问一个或多个数据系统24、26。但是,在某些情况下,访问数据系统和向客户端提供应答可能会引起某种客户端协议超时,在请求发送了一段时间后,客户端用户等待时间比预期长。然而,根据本发明的这个方面,某种数据可以存储在可以用来缩短响应时间的协议接口装置14中。
更具体地说,协议引擎模块32轮询数据系统24、26以确定它们当前是否存储与已经设置访问的用户关联的数据项。通过建立与之关联的,例如用户帐户,在协议接口装置14中配置用户。最好根据轮询间隔执行轮询。本领域技术人员可以理解,轮询接口可以是预定的静态轮询间隔,或是能够根据操作条件或发生的特殊事件做调整的自适应轮询间隔。
为了响应来自协议引擎模块32的轮询,给定数据系统24、26向协议接口装置14返回数据项,或至少是可用来检索数据项的数据项标识符。然后协议引擎模块32将这些数据项或标识符存储在数据存储器或内存92中。
特别地,协议引擎模块32可以确定是否在任何数据系统24、26中为用户存储了新的数据项。例如,如果数据系统24、26是e-mail系统,那么协议引擎模块32通过协议接口装置14查询与每个用户关联的为e-mail访问而配置的邮箱。对于每个邮箱查询,邮箱系统返回与邮箱中存储的e-mail消息关联的唯一标识符(UID)列表。
然后,比较当前的UID列表和UID存储器92中邮箱以前的UID列表,以确定是否有新消息存储到邮件系统的邮箱中。如果检测到有新消息,最好由协议引擎模块32协同前端代理模块30(或协议接口装置14的另一个组件)向用户的客户端发送一条通知,然后在UID存储器92中存储包含新消息的当前UID列表。
一种最通用的数据访问操作是查看数据系统当前存储的数据项列表,特别是当数据项是邮件系统中存储的消息。如上所述,协议引擎模块32轮询一个或多个数据系统24、26以根据UID存储器92中存储的UID列表检测新的数据项。因此,协议接口装置14具有一张最后一次轮询数据系统时,数据系统24、26上存储的数据项的UID本机列表。
根据本发明的这个方面,当接收到“查看项”或类似的访问请求时,协议引擎模块32检索来自UID存储器92所存储的UID列表。然后这个在当前轮询间隔内精确的所存储的UID列表返回给请求的客户端。本领域技术人员可以理解,当接收到该请求后,可以提供比访问数据系统24、26快得多的响应时间。
例如,在POP客户端的情况下,如果在30秒内没有接收到对请求的响应,那么客户端超时。如果是在移动无线通信设备上操作POP客户端,那么无线通信网络上的传输延迟时间会产生相对于有限的响应时间更明显的延时。在这类情形中,与响应数据访问请求而提供所存储的UID列表关联的更快的响应时间特别有利。即使没有这种时间限制,通过缩短从发送数据访问请求到接收到响应之间的等待时间,能增强客户端用户对更快速响应时间的感觉。
如上所述,所存储的UID列表在轮询间隔内很精确。当响应数据访问请求而向客户端提供所存储的UID列表时,协议引擎模块32最好轮询数据系统24、26以确定所存储的UID列表是否仍然精确。如果自从上次轮询有新的项目被存储到数据系统24、26中,那么向客户端发送新的UID列表。然后根据轮询间隔或由数据访问请求初始化来执行对数据系统24、26的进一步轮询。
可以理解前面涉及“查看项”或类似数据访问请求的描述。协议接口装置14的其它组件或模块可以处理其它类型的数据访问请求。例如,如上所述,如果需要,前端代理模块30可以转换这种数据访问请求。
于是,允许协议接口装置14访问数据系统24、26,并且为各种类型的数据访问请求提供缩短的响应时间。通过协议接口装置14,提供与由前端代理模块30处理的任何协议兼容的客户端来访问一个或多个数据系统24、26。如上所述,客户端本身不必支持与要访问的数据系统24、26关联的访问协议或模式。
现在参考图17描述利用协议接口装置14缩短数据系统访问请求响应时间的方法。从方框170开始,在方框171接收数据访问请求。然后在方框172确定与数据访问请求(即,UID列表)相关的数据是否存储在本机上。如果该数据存储在本机存储器92中,那么在方框173,所存储的数据提供给发请求的客户端。在所存储的数据被发送给客户端后,或者如果没有存储这样的数据,那么在方框174,轮询数据访问请求涉及的数据系统24、26。
此后,在方框175,执行用于确定响应轮询而接收的轮询数据是否不同于存储数据的任选步骤。如果是这样,意味着数据系统24、26上存在着新存储的数据,并在方框176向客户端提供响应该轮询而接收的数据。在方框177,还本机存储在数据存储92,然后,结束所示方法(方框178)。
作为例子,根据本发明这个方面的数据访问系统和方法可以应用于除邮件系统之外的其它类型的数据存储装置上,及上述那些特定的和附图中显示之外的其它协议和访问模式。
本发明的其它特征可以在下面的共同待审申请中找到:代理人编号为ID-494的提供缩短访问延迟的通信系统及其方法;代理人编号为ID-493的包括用于多种操作协议的协议接口的通信系统及其方法;代理人编号为ID-507的提供可扩展协议转换特征的通信系统及其方法;代理人编号为ID-503的提供多层可扩展协议接口的通信系统及其方法;代理人编号为ID-502的提供可扩展协议转换和配置特征的通信系统及其方法;以及代理人编号为ID-495的包括能提供增强操作协议选择特征的协议接口装置的通信系统及其方法,在此引用全部揭示作为参考。
实例
下面参考图18的例子进一步描述可以在本发明中使用的手持移动无线通信设备1000的示例。设备1000包括外壳1200、键盘1400和输出装置1600。输出装置是显示屏1600,它最好是全图形的LCD。也可以使用其它类型的输出装置替代。处理装置1800包含在外壳1200内并且连接在键盘1400和显示屏1600之间。处理装置1800控制显示屏1600的操作,以及根据用户在键盘1400上的按键活动控制移动设备1000的整个操作。
外壳1200可以垂直伸长或采用尺寸和形状(包括折叠型的外壳结构)。键盘可以包括模式选择键,或用来切换文本输入和电话输入的其它硬件或软件。
除了处理装置1800,图18中还示出了移动设备1000的其它部分。这些部分包括通信子系统1001;近距离通信子系统1020;连同其它输入/输出装置1060、1080、1100和1120在一起的键盘1400和显示屏1600;以及存储器件1160、1180和各种其它装置的子系统1201。移动设备1000最好是具有语音和数据功能的双工RF通信设备。另外,移动设备1000最好具备能通过因特网与其它计算机系统通信的能力。
处理装置1800执行的操作系统软件最好存储在诸如闪存1160之类的永久性存储器中,但也可以存储在其它类型的存储装置中,例如只读存储器(ROM)或类似的存储装置。另外,系统软件、特定的设备应用程序或它的部件可以临时加载到诸如随机存取存储器(RAM)1180之类的易失性存储器中。移动设备接收到的通信信号也可以存储在RAM1180中。
处理装置1800除了操作系统功能外还能执行设备1000上的软件应用程序1300A-1300N。可以在制造设备时在里面安装一套能控制基本设备操作,如数据和语音通信1300A和1300B的预定应用程序。另外,在设备制造期间还可以安装个人信息管理器(PIM)应用程序。PIM最好能够组织和管理数据项,如电子邮件、日历事件、语音信箱、约会、及任务事项。PIM应用程序最好还能够通过无线网络1401发送和接收数据项。PIM数据项最好能通过无线网络1401与设备用户在主机系统中存储或关联的相应数据项进行无缝整合、同步和更新。
通过通信子系统1001,还可能通过近距离通信子系统执行包含数据和语音通信的通信功能。通信子系统1001包括接收机1500、发射机1520以及一根或多根天线1540和1560。另外,通信子系统1001还包括诸如数字信号处理器(DSP)1580之类的处理模块,和本机振荡器(LO)1601。可以根据移动设备1000要处在其中工作的通信网络来具体设计和实现通信子系统1001。例如,移动设备1000可以包括为在MobitexTM、Data TACTM或通用分组无线服务(GPRS)移动数据通信网络上操作而设计的通信子系统1001,还可以为在任何话音通信网络上操作,如AMPS、TDMA、CDMA、PCS、GSM等而设计通信子系统1001。移动设备1000还可以用在分开和集成的其它类型的数据和话音网络上。
网络访问需求随通信系统的类型而变化。例如,在Mobitex和DataTAC网络上,移动设备利用与各自设备关联的唯一的个人身份识别号或PIN在网络上注册。但是,在GPRS网络上,网络访问与用户或用户的设备关联。因此为了在GPRS网络上进行操作,GPRS设备需要一个用户身份模块,通常称作SIM卡。
当所需的网络注册或激活过程完成后,移动设备1000可以通过通信网络1401发送和接收通信信号。由天线1540从通信网络1401接收到的信号被路由到接收机1500,它提供信号放大、降频转换、滤波、信道选择等,还提供模拟到数字的转换。接收信号的模数转换使得DSP 1580执行更复杂的通信功能,例如解调和解码。同样,DSP 1580处理(例如,调制和编码)发送到网络1401的信号,然后信号发送给发射机1520做数字到模拟的转换、升频转换、滤波、放大然后通过天线1560发送到通信网络1401(或网络)上。
DSP 1580除了处理通信信号外,还对接收机1500和发射机1520的控制。例如,可以通过DSP 1580上实现的自动增益控制算法自适应地控制接收机1500和发射机1520中对通信信号施加的增益。
在数据通信模式下,通信子系统1001处理诸如文本消息或网页下载之类的接收信号,接收信号输入到处理装置1800。然后由处理装置1800对接收信号做进一步处理,以便输出到显示屏1600,或其它类型的辅助I/O设备1060。设备用户也可以利用键盘1400和/或其它辅助I/O设备1060,如触摸板、摇臂开关、拇指型旋轮或一些其它类型的输入设备编写数据项,如电子邮件消息。编写好的数据项经通信子系统1001通过通信网络1401被发送出去。
在话音通信模式下,设备的全部操作与数据通信模式下基本相同,只是接收到的信号输出给扬声器1100,由麦克风1120生成要发送的信号。设备1000上还可以实现可替换的语音或音频I/O子系统,如语音消息录音子系统。另外,显示屏1600也可以在话音通信模式下使用,例如显示主叫方的身份、通话时长、或其它话音通话的相关信息。
近距离通信子系统可以建立移动设备1000与其它附近系统或设备之间的通信,它们不必是类似的设备。例如,近距离通信子系统可以包括红外装置和相关的电路和元件,或蓝牙TM通信模块,以提供与功能类似系统和设备之间的通信。
本领域技术人员得益于前面的描述和相关附图可以得出对本发明的许多改变和其它实施例。因此,可以理解,本发明不局限于所揭示的特定实施例,那些改便和其它实施例包含在本发明所附权利要求的范围内。
计算机程序列表
程序列表#1-示例验证请求t
PROPFIND/ups HTTP/i.i
Depth:0
Brief:t
Pragma:no-cache
Content-Type:text/xml
X_UP_LOGIN:svr=login.oscar.aol.com&prt=5190&ssl=0&pcol=aol&uid=******&pwd=******&pwp=
X_UP_SYNC:false
X_UP_REFRESH_CACHE:force
X_UP_NEWCON:I
User-Agent:Mozilla/4.0(compatible;MSIE 5.5;Windows NT 5.0)
Connection:Keep-Alive
Host:localhost:9080
Content-Length:664
<?xml version="1.0"?>
<D:propfind xmlns:D="DAV:" xmlns:h="http://schemas.microsoft.com/hotmail/"xmlns:hm="urn:schemas:httpmail:"xmlns:up="urn:schemas:corp:universalproxy">
<D:prop>
<hm:contacts/>
<hm:calendar/>
<hm:journal/>
<hm:notes/>
<hm:outbox/>
<hm:sendmsg/>
<hm:sentitems/>
<hm:deleteditems/>
<hm:drafts/>
<hm:msgfolderroot/>
<up:corporatecontacts/>
<h:maxpoll/></D:prop></D:pr6pfind>HTTP/1.1 207 Multi-StatusSet-Cookie:JSESSIONID=C70CD1AED7D2BE210B34D93F7ACD6935;
Path=/upsContent-Type:text/xmlTransfer-Encoding:chunkedDate:Wed,06 Aug 2003 18:20:28 GMTServer:Apache Coyote/1.0<?xml version="1.0"encoding="UTF-8"?><D:multistatus xmlns:D="DAV:"xmlns:up="urn:schemas:corp:universalproxy"xmlns:c="um:schemas:calendar:"
xmlns:a="urn:schemas:contacts:"
xmlns:hm="um:schemas:httpmail:"xmlns:m ="urn:schemas:mailheader:"
<D:response>
<D:href>http://localhost:9080/ups/<D:href>
<Dpropstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<hm:inbox>http://localhost:9080/ups/INBOX/<hm:inbox><hm:sendmsg>http://localhost:9080/ups/AOL-MAIL-SUMBMISSION-URL</hm:sendmsg>
<hm:sentitems>http://localhost:9080/ups/Sent Items/</hm:sentitems>
<hm:msgfolderroot>http://localhost:9080/ups/</hm:msgfolderroot>
<D:prop>
<B:propstat>
</D:response>
</D:multistatus >
程序列表#2-示例收件箱请求Query Folder Capabilities:REQUEST:OPTIONS/ups/INBOX/HTTP/1.1User-Agent:Mozilla/4.0(compatible;MSIE 5.5;Windows NT 5.0)Connection:Keep-AliveHost:Iocalhost:9080Cookie:JSESSIONID=C7OCD1AED7D2BE210B34D93F7ACD6935Content-Length:0RESPONSE:HTTP/1.1 200 OKallow:OPTIONS,PRDPFIND,MOVE,DELETE,BDELETE,BMOVE,SEARCHdasl:<urn:schemas:corp:universalproxy:basicsearch>Content-Type:text/plainContent-Length:0Date:Wed,06 Aug 2003 18:20:28 GMTServer:Apache Coyote/1.0List messages in INBOX:REQUEST:PROPFIND/ups/INBOX/HTTP/1.1Range:rows=0-24 Depth:1,norootBrief:tPragma:no-cacheContent-Type:text/xmlX_UP_REFRESH_CACHE:forceUser-Agent:Mozilla/4.0(compatible;MSIE 5.5;Windows NT 5.0)Connection:Keep-AliveHost:Iocalhost:9080Cookie:JSESSIONIE=C70CD1AED7D2BE210B34D93F7ACD6935Content-Length:586
<?xml version="I .0"?>
<D:propfind xmlns:D="DAV:"xmlns:hm="urn:schemas:httpmail:"
xmlns:m="urn:schemas:mailheader:"xmlns:
up='urn:schemas:corp:universalproxy">
<D:prop>
<D:uid/>
<D:isfolder/>
<D:ishidden/>
<hm:read/>
<hm:has attachment/>
<hm:importance/>
<m:from/>
<in:subject/>
<m:date/>
<up:isdeleted/>
<D:getcontentlength/>
<D:contentclass/>
</D:prop>
</D:propfind>
RESPONSE:
HTTP/1.1 207 Multi-Status
Content-Range:rows 0-8;total=9
Content-Type:texf]xml
Transfer-Encoding:chunked
Date:Wed,06 Aug 2003 18:20:28 GMT
Server:Apache Coyote/1.0
<?xml version="1.0encoding="UTF-8"?>
<D:multistatus xmlns:D=DAV:"
xmlns :up="urn:schemas:corp:universalproxy"xmlns:c="um:schemas:calendar:"xmlns:a="urn:schemas:contacts:"xmlns:hm='urn:schemas:httpmail:"xmlns:m="urn:schemas:mailheader:">
<D:contentrange>0-8</D:contentrange><D:response><D:href>http://localhost:9080/ups/INBOX/6623963;1</D:href><D:propstat>
<D:status>HTTP/1.1 200 OK<ID:status>
<D:prop>
<D:uid>3ac59b38c08ad3356435efeal44660e3</D:uid>
<D:isfolder>0</D:isfolder>
<D:ishidden>0</D:ishidden>
<hm:read>0</hm:read>
<hm:hasattachment>0<Ihm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>Mail Delivery Subsystem
<MAILER-DAEMON@aol.com></m:from>
<m:subject>Returned mail:User unknown</m:subject>
<m:date>2003-08-05T23:1 2:48Z</m:date>
<up:isdeleted>0</up:isdeleted>
<D:getcontentlength>3247</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass>
</D:prop></D:propstat></D:response><D:response><D:href>http://localhost:9080/ups/INBOX/6623954;1</D:href><D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<0:prop>
<D:uid>51073b22a28c2820115bc80d42e8c6ec</D:uid>
<D:isfolder>0</D:isfolder>
<D:ishidden>0</D:ishidden>
<hm:read>1</hm:read>
<hm:hasattachrent>0</hm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>johnsmith@demo.com</m:from>
<m:subject>Re:Test #1-All-French template</m:subject>
<m:date>2003-08-05T23:10:30Z</m:date>
<up:isdeleted>0</up:isdeleted>
<D:getcontentlength>1577</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass></D:prop></D:propstat></D:response><D:response>
<D:href>http://lccalhost:9080/ups/INBOX/6623926;1<ID:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:uid>b072c3748ceff1320f9fa746f797e64b</D:uid>
<D:isfolder>0</D:isfolder>
<D:ishidden:'O</D:ishidden>
<hm:read>1<fhm:read>
<hm:hasattachment>0</hm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>johnsmith@demo.com</m:from>
<m:subject>Re:xxxFWD:Re:Test #1<m:subject>
<m:date>2033-08-05T23:07:18Z</m:date>
<up:isdeletei>0</up:isdeleted>
<D:getcontentlength>1927</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass></D:prop></D:propstat></D:response><D:response><D:href>http://localhost:9080/ups/INBOX/6623922;1<D:href><D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:uid>11f1c8e69555d33971aea12c09be5021</D:uid>
<D:isfolder>0</D:isfolder>
<D:ishidden>0</D:ishidden>
<hm:read>1</hm:read>
<hm:hasattachment>0</hm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>johnsmith@demo.com</m:from>
<m:subject>Re:xxxFWD:Re:Test #1<m:subject>
<m:date>2003-08-05T23:06:45Z</m:date>
<up:isdeleted>0</up:isdeleted>
<D:getcontentlength>1930</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass</D:prop></D:propstat></D:response><D:response><D:href>http://localhost 9080/ups/INBOX/6623915;1</D:href><D:propstat><D:status>HTTP/1.1 200 OK</D:status><D:prop><D:uid>55bc30adfb4fb66f3d11b0416c82b701</D:uid>
<D:isfolder>0</D:isfolder>
<D:ishidden>0</D:ishidden>
<hm:read>1</hm read>
<hm:hasattachment>1</hm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>johnsmith@demo.com</m:from>
<m:subject>xxxFWD:Re:Test #1<Jm:subject>
<m:date>2003-08-05T23:05:27Z</m:date>
<up:isdeleted>0</up:isdeleted>
<D:getcontentlength>3254</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentcIass></D:prop></D:propstat></D:response><D:response><D:href>http://loca!host:9080/ups/INBOX/6623910;1<ID:href><D:propstat><D:status>HTTP/1.1 200 OK</D:status><D:prop>
<D:uid>07cdf24a06f8e849754f90fe6dc8bf4f</D:uid>
<D:isfolder>0</D:isfolder>
<Dishidden>0</D:ishidden>
<hm:read>1</hm:read>
<hm:hasattachment>0</hm:hasattachment>
<hm:importance>1</hm:iinportance>
<m:from>johnsmith@demo.com</m:from>
<m:subject>Re:Test#1-All</m:subject>
<m:date>2003-08-05T23:04:31Z</m:date>
<up:isdeleted>0</up:isdeleted>
<D:getcontentlength>1258</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass>
</D:prop></D:propstat></D:response><D:response><D:href>http://localhast:9080/ups/INBOX/6623909;1</D:href><D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:uid>0e79a3593253ffb9596bf9d86873f498</Duid>
<D:isfolder>0</D:isfolder>
<D:ishidden>0</D:ishidden>
<hm:read>i</hm:read>
<hm:hasattachment>0</hm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>johnsmith@demo.com</m:from>
<m:subject>Re:Test#1</m:subject>
<m:date>2003-08-05T23:04:13Z</m:date>
<up:isdeleted>0</up:isdeleted>
<D:getcontentlength>1241</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass>
</D:prop></D:propstat></D:response><D:response><D:href>http://localhost:9080/ups/INBOX/6605332,1</D:href><D:propstat><D:status>HTTP/1.1 200 OK</D:status><D:prop>
<D:uid>6060b944e60256c814498af29e5f0e47</D:uid>
<D:isfolder>0</D:isfolder>
<D:ishidden>0</D:ishidden>
<hm:read>0</hm:read>
<hm:hasattachment>0</hm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>aolmbrsecurity@aol.com</m:from>
<m:subject>Security Notice to AOL Members</m:subject>
<m:date>2003-08-01T23:00:58Z</m:date>
<up:isdeleted>0</up:isdeleted>
<D:getcontentlength>5137</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass>
</D:prop><D:propstat></D:response><D:response> <D:href>http://localhost:9080/ups/INBOX/6567082;1</D:href><D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:uid>f47b72c8c1aa91458f40f81fce3b5e05</D:uid>
<D:isfolder>0</D:isfolder>
<D:ishidden>0</D:ishidden>
<hm:read>0</hm:read>
<hm:hasattachment>0</hm:hasattachment>
<hm:importance>1</hm:importance>
<m:from>aolmemberinfo@aol.com</m:from>
<m:subject>Coming Soon-AOL 9.0 Optimized</m:subject>
<m:date>2003-07-25T21:15:22Z</m:date>
<up:isdeleteci>0</up:isdeleted>
<D:getcontentlength>10012</D:getcontentlength>
<D:contentclass>urn:content-classes:message</D:contentclass>
<D:prop></D:propstat></D:response><D:multistatus>
程序列表#3-示例文件夹搜索请求Capabilities of folder:REQUEST:OPTIONS/ups HTTP/1.1User-Agent:Mozilla'4.0(compatible;MSIE 5.5;Windows NT 5.0)Connection:Keep-AliveHost:localhost:9080Cookie:JSESSIONID=C70CD1AED7D2BE210B34D93F7ACD6935Content-Length:0RESPONSE:HTTP/1.1 200 OKallow:OPTIONS,PROPFIND,MOVE,DELETE,BDELETE,BMOVE,SEARCHdasl:<urn:schemas:corp:universalproxy:basicsearch>Content-Type:text/plainContent-Length:0Date:Wed,06 Aug 2003 18:20:28 GMTServer:Apache Coyote/1.0Search for folders:REQUEST:SEARCH/ups HTTP/1.1Depth:1,norootBrief:tPragma:no-cacheContent-Type:text/xmlUser-Agent:Mozilla/4.0(compatible;MSIE 5.5;Windows NT 5.0)Connection:Keep-AliveHost:localhost:9080Cookie:JSESSIONID=C70CD1AED7D2BE210B34D93F7ACD6935Content-Length:922<?xml version="1.0"2><D:searchrequest xmlns:D="DAV:"xmlns:t="urn:schemas:corp:universalproxy"><t:basicsearch>
<D:select>
<D:prop><D:uid/></D:prop>
<D:prop><D:contentclass/></D:prop>
<D:prop><D:displayname/></D:prop></D:select><D:from>
<D:scope>
<D:href>url</D:href>
<D:depth>1</D:depth>
</D:scope></D:from><D:where>
<D:eq>
<D:prop><D:contentclass/></D:prop>
<D:literal>urn:content-classes:mailfolder</D:literal>
</D:eq></D:where></t:basicsearch></D:searchrequest>RESPONSE:HTTP/1.1 207 Multi-StatusContent-Type:text/xmlTransfer-Encoding:chunkedDate:Wed,06 Aug 2003 18:20:28 GMTServer:Apache Coyote/1.0<?xml version="1.0"encoding="UTF-8"?><D:multistatus xmlns:D="DAV:"xmlns:up="urn:schemas:corp:universalproxy"xmlns:c="urn:schemas:calendar:"xmlns:a="urn:schemas:contacts:"xmlns:hm="urn:schemas:httpmail"xrnlns:m="urn:schemas:mailheader>
<D:response>
<D:href>http://localhost:9080/ups/INBOX/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:uid>c90d66b2362a1a0bc3dfl852021a6f63</D:uid>
<D:contentclass>urn:content-classes:mailfolder</D:contentclass>
<D:displayname>INBOX/</D:displayname>
</D:prop>
</D:propstat>
</D:response>
<D:response>
<D:href>http://localhost:9080/ups/VOICE-MAIL/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<0:prop>
<D:uid>cabbce34709ab79d2ad2d5334d998272</D:uid>
<D:contentclass>urn:content-classes:mailfolder</D:contentclass>
<D:displayname>VOICE-MAIL/</D:dispiayname>
</D:prop>
</D:propstat>
</D:response>
</D:multistatus>
程序列表#4-示例配置文件<resourcecontentclass="urn:content-classes:mailfolder"javaclass="com.teamon.proxy.data.impl.MailFolderlmpl"responsecacheduration="0"
cachestrength="0"<request method="PROPFIND"><header name="Brief"value="t"I><header name="Content-Type"value="text/xml"/><header name="Depth" value="l,noroot"/><header name="Range" value="rows=$rangeStart$-$rangeEnd$"/><header name="Pragma" value="no-cache"/><header name="X-UP-REFRESH-CACHE"value="force"/><body><![CDATA[
<?xml version="1.0"?>
<D:propfind
xmlns:D="DAV:"
xmlns:hm='urn:schemas:httpmail:"
xmlns:m="urn:schemas:mailheader:'
xmlns:up="urn:schemas:teamon:universalproxy">
<D:prop>
<D:uid/>
<D:isfolder/>
<D:ishidden/>
<hm:read/>
<hm:has attachment/>
<hm:importance/>
<m:from/>
<m:subject/>
<m:date/>
<up:isdeleted/>
<D:getcontentlength/>
<D:contentclass/>
</D:prop>
</D:propfind>
]]></body><request><resource>
Claims (22)
1.一种通信系统,包括:
多个数据存储装置,用于使用多种不同的操作协议中的至少一种存储数据;
多个移动无线通信设备,用于访问所述数据存储装置,每个移动无线通信设备使用所述多种不同的操作协议中的至少一种;和
协议接口装置,包括
前端代理模块,用于使用相应的操作协议与所述多个移动无线通信设备通信,
协议引擎模块,使用公用接口协议与所述前端代理模块通信,和
相应的接口连接器模块,用于为每种不同的操作协议转换所述协议引擎模块和所述多个数据存储装置之间的通信。
2.根据权利要求1所述的通信系统,其中所述协议引擎模块包括通用代理服务器小程序模块。
3.根据权利要求2所述的通信系统,其中所述协议接口装置还包括耦合在所述通用代理服务器小程序模块和所述多个接口连接器模块之间的多个提供商模块;和其中所述通用代理服务器小程序模块根据来自所述前端代理模块的相应数据访问请求为所述多个接口连接器模块产生调用,和其中所述多个提供商模块将所述调用传送给相应的接口连接器模块。
4.根据权利要求1所述的通信系统,其中所述接口连接器模块包括Microsoft Exchange连接器模块、Domino连接器模块、美国在线(AOL)连接器模块、Hotmail连接器模块、Microsoft Network(MSN)连接器模块、Compuserve连接器模块、邮局协议(POP)连接器模块、和因特网消息访问协议(IMAP)连接器模块。
5.根据权利要求1所述的通信系统,其中所述多个数据存储装置、所述多个移动无线通信设备、和所述协议接口装置处理电子邮件(e-mail)消息。
6.根据权利要求1所述的通信系统,其中公用接口协议以基于Web分布式编写和版本控制(WebDAV)的协议为基础。
7.根据权利要求1所述的通信系统,其中所述协议接口装置为至少一个不支持的操作协议产生错误响应。
8.一种协议接口装置,作为多个无线通信网络和多个数据存储装置之间的接口,所述移动无线通信设备和数据存储装置各使用多种不同的操作协议中的至少一种,所述协议接口装置包括:
前端代理模块,用于使用相应的操作协议与所述多个移动无线通信设备通信;
协议引擎模块,使用公用接口协议与前端代理模块通信;和
相应的接口连接器模块,为每种不同的操作协议转换所述协议引擎模块和所述多个数据存储装置之间的通信。
9.根据权利要求8所述的协议接口装置,其中所述协议引擎模块包括通用代理服务器小程序模块。
10.根据权利要求9所述的协议接口装置,还包括多个提供商模块,耦合在所述通用代理服务器小程序模块和所述多个接口连接器模块之间;和其中所述通用代理服务器小程序模块根据来自所述前端代理模块的相应数据访问请求为所述多个接口连接器模块产生调用,和其中所述多个提供商模块将所述调用传送给相应的接口连接器模块。
11.根据权利要求8所述的协议接口装置,其中所述多个数据存储装置、所述多个移动无线通信设备、和所述协议接口装置处理电子邮件(e-mail)消息。
12.根据权利要求8所述的协议接口装置,其中公用接口协议以基于Web分布式编写和版本控制(WebDAV)的协议为基础。
13.一种方法,作为多个移动无线通信设备和多个数据存储装置之间的接口,所述移动无线通信设备和数据存储装置各使用多种不同的操作协议中的至少一种,该方法包括:
提供前端代理模块,用于使用相应的操作协议与所述多个移动无线通信设备通信;
提供协议引擎模块,使用公用接口协议与所述前端代理模块通信;和
提供相应的接口连接器模块,为每种不同的操作协议转换所述协议引擎模块和所述多个数据存储装置之间的通信。
14.根据权利要求13所述的方法,其中所述协议引擎模块包括通用代理服务器小程序模块。
15.根据权利要求14所述的方法,还包括多个提供商模块,耦合在所述通用代理服务器小程序模块和所述多个接口连接器模块之间;和其中所述通用代理服务器小程序模块根据来自所述前端代理模块的相应数据访问请求为所述多个接口连接器模块产生调用,和其中所述多个提供商模块将所述调用传送给相应的接口连接器模块。
16.根据权利要求13所述的方法,其中所述多个数据存储装置、所述多个移动无线通信设备、和所述协议接口装置处理电子邮件(e-mail)消息。
17.根据权利要求13所述的方法,其中公用接口协议以基于Web分布式编写和版本控制(WebDAV)的协议为基础。
18.一种具有计算机可执行模块的计算机可读介质,作为多个移动无线通信设备和多个数据存储装置之间的接口,移动无线通信设备和数据存储装置各使用多种不同的操作协议中的至少一种,该计算机可读介质包括:
前端代理模块,用于使用相应的操作协议与所述多个移动无线通信设备通信;
协议引擎模块,使用公用接口协议与所述前端代理模块通信;和
相应的接口连接器模块,为每种不同的操作协议转换所述协议引擎模块和所述多个数据存储装置之间的通信。
19.根据权利要求18所述的计算机可读介质,其中所述协议引擎模块包括通用代理服务器小程序模块。
20.根据权利要求19所述的计算机可读介质,还包括多个提供商模块,耦合在所述通用代理服务器小程序模块和所述多个接口连接器模块之间;和其中所述通用代理服务器小程序模块根据来自所述前端代理模块的相应数据访问请求为所述多个接口连接器模块产生调用,和其中所述多个提供商模块将所述调用传送给相应的接口连接器模块。
21.根据权利要求18所述的计算机可读介质,其中所述多个数据存储装置、所述多个移动无线通信设备、和所述协议接口装置处理电子邮件(e-mail)消息。
22.根据权利要求18所述的计算机可读介质,其中所述公用接口协议以基于Web分布式编写和版本控制(WebDAV)协议为基础。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US49423503P | 2003-08-11 | 2003-08-11 | |
US60/494,235 | 2003-08-11 | ||
US10/777,959 | 2004-02-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1867913A true CN1867913A (zh) | 2006-11-22 |
CN100511222C CN100511222C (zh) | 2009-07-08 |
Family
ID=37426161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800296325A Expired - Lifetime CN100511222C (zh) | 2003-08-11 | 2004-02-25 | 具有数据存储装置接口协议连接器的通信系统及相关方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100511222C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1867906B (zh) * | 2003-08-11 | 2010-06-16 | 蒂蒙系统公司 | 提供多层可扩展协议接口的通信系统及相关方法 |
WO2014154098A1 (zh) * | 2013-03-28 | 2014-10-02 | 中国银联股份有限公司 | 移动设备上应用程序的启动 |
CN104281970A (zh) * | 2014-10-13 | 2015-01-14 | 中国外汇交易中心 | 消息处理方法、消息处理装置以及服务器平台 |
-
2004
- 2004-02-25 CN CNB2004800296325A patent/CN100511222C/zh not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1867906B (zh) * | 2003-08-11 | 2010-06-16 | 蒂蒙系统公司 | 提供多层可扩展协议接口的通信系统及相关方法 |
WO2014154098A1 (zh) * | 2013-03-28 | 2014-10-02 | 中国银联股份有限公司 | 移动设备上应用程序的启动 |
US10169572B2 (en) | 2013-03-28 | 2019-01-01 | China Unionpay Co., Ltd. | Starting an application on a mobile device |
CN104281970A (zh) * | 2014-10-13 | 2015-01-14 | 中国外汇交易中心 | 消息处理方法、消息处理装置以及服务器平台 |
CN104281970B (zh) * | 2014-10-13 | 2019-01-22 | 中国外汇交易中心 | 消息处理方法、消息处理装置以及服务器平台 |
Also Published As
Publication number | Publication date |
---|---|
CN100511222C (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1222896C (zh) | 用户简档数据的管理 | |
CN1304952C (zh) | 使数据同步的系统、用于该系统的装置和数据同步方法 | |
CN100336352C (zh) | 内容发布系统、描述数据发布设备和内容发布方法 | |
CN1160982C (zh) | 通信系统及其所用的方法 | |
CN1154298C (zh) | 分布式网络计算系统及该系统用的信息交换装置和方法 | |
CN1225702C (zh) | 位置信息通知方法与位置信息通知装置 | |
CN1172506C (zh) | 通过互联网传送多媒体数据的管理方法及实施该方法所用的芯片卡 | |
CN1138215C (zh) | 用于归档和访问电子报文的数据处理系统和方法 | |
CN1890944A (zh) | 用于web服务中介体的端口类型不可知的代理支持 | |
CN1859393A (zh) | 一种协商设备信息的系统及方法 | |
CN1575466A (zh) | 存在管理的实现 | |
CN1510875A (zh) | 用于控制信息处理设备的系统和方法 | |
CN1384689A (zh) | 用于存储及访问多媒体消息传送服务相关信息的方法及其装置 | |
CN1342013A (zh) | 接收设备和方法、发送设备和方法、记录媒体及通信系统 | |
CN1656468A (zh) | 用于同步不同数据存储器中数据存储方式的方法和设备 | |
CN1526246A (zh) | 移动即时消息收发和存在服务 | |
CN1823347A (zh) | 用来提供一种服务的系统和方法 | |
CN1928861A (zh) | 用于进行项目共享的即时通信客户机和方法 | |
CN1703700A (zh) | 为了经同步的内容显示使网络接入点的关联小型端口协作的方法和装置 | |
CN1565105A (zh) | 手持无线会议技术 | |
CN1969292A (zh) | 用户轮廓管理系统 | |
CN1701568A (zh) | 通过无线网络的多模式网络交互 | |
CN1550972A (zh) | 便携式终端、输出终端及数据输出控制系统 | |
CN1764160A (zh) | 移动通信系统,路由器,移动节点和移动通信方法 | |
CN1615646A (zh) | 通信装置 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211112 Address after: Ontario, Canada Patentee after: BlackBerry Ltd. Address before: Washington, USA Patentee before: TEAMON SYSTEMS, Inc. |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20090708 |