基于数据特性的智能数据传输和存储的制作方法

文档序号:6532649阅读:173来源:国知局
基于数据特性的智能数据传输和存储的制作方法【专利摘要】本发明公开了基于数据特性的智能数据传输和存储的方法、程序产品和系统。数据库服务器可以从用户设备接收对于数据的请求。数据库服务器可以确定所请求的数据的数据大小和数据类型。数据库服务器可基于所述数据大小和数据类型,从用于对所述请求进行响应的多个候选数据传输协议中识别被指定用于传输具有所述数据大小和数据类型的数据的数据传输协议。数据库服务器可响应于所述请求,利用所识别的数据传输协议将所述数据传输到用户设备。【专利说明】基于数据特性的智能数据传输和存储【
技术领域
】[0001]本公开整体涉及数据库支持的网络应用。【
背景技术
】[0002]数据库服务器可以将存储在数据库中的数据提供给与数据库服务器相距遥远的客户端。数据库可包括关系的集合,经常被称为表格。数据库中的表格可包括利用垂直列和水平行组织的一组数据项或数值。每个列可具有限定哪种类别的数据可被存储在这个列中的数据类型。数据列的类型可在数据库模式中指定,数据库模式可以是限定关系数据库中的数据如何被表示或访问的数据模型。在现代关系数据库中,数据字段可具有允许存储与其他数据字段的数据项的大小相比具有更大的数据大小的数据的数据类型。例如,多媒体数据(例如电影片段)可被存储在关系数据库中。【
发明内容】[0003]本发明公开了基于数据特性的智能数据传输和存储的方法、程序产品、和系统。数据库服务器可以从用户设备接收对于数据的请求。数据库服务器可以确定所请求数据的数据大小和数据类型。数据库服务器可基于数据大小和数据类型,从用于对请求进行响应的多个候选数据传输协议中识别被指定用于传输具有该数据大小和数据类型的数据的数据传输协议。数据库服务器可响应于请求,利用所识别的数据传输协议将数据传输到用户设备。[0004]在本说明书中所介绍的技术可被用于实现以下优点。这些技术允许数据库服务器使多媒体数据作为缓冲流而从与数据库服务器分开的HTTP服务器传输。这些技术可减轻由于传输大媒体数据到用户设备而在数据库服务器上产生的负荷。这些技术可以节省数据库连接的带宽以用于服务其他常规的数据库请求。[0005]这些技术允许数据的增量传输。如果数据包括媒体文件(例如音频或视频),则数据可在数据到达用户设备时在用户设备处被用户增量地播放或观看。用户设备可以看起来好像响应于数据库查询立即并同时获得多个媒体文件,而不是要等待一个媒体文件完全被传输之后才传输下一个媒体文件。[0006]在附图以及下面的描述中给出了智能数据传输和存储的一个或多个具体实现的细节。通过阅读说明书、附图和权利要求书,智能数据传输和存储的其他特征、方面和优点将变得显而易见。【专利附图】【附图说明】[0007]图1是示出实现智能数据传输技术的一种示例性系统的框图。[0008]图2示出了在智能数据传输中使用的示例性容器技术。[0009]图3是示出智能数据传输中使用的示例性过滤器技术的框图。[0010]图4是示出过滤器参数的一种示例性结构的框图。[0011]图5是在接收智能数据传输的数据库客户端上实现的一种示例性用户界面。[0012]图6是在实现智能数据传输技术的系统上执行的一个示例性过程的流程图。[0013]图7是用于实现图1至6所示的特征和操作的一种示例性系统架构的框图。[0014]各附图中类似的附图标号表示类似的元件。【具体实施方式】[0015]鐘述[0016]图1是示出实现智能数据传输技术的一种示例性系统的框图。数据库服务器102可基于数据的特性诸如类型或大小使数据以不同的方式以及通过不同的连接被传输到客户端104。[0017]数据库服务器102可通过数据库连接108接收来自客户端104的请求106。数据库连接108可以是客户端104与数据库服务器102之间的连接,该连接有利于包括数据库请求和响应在内的通信。请求106可以是数据库请求(例如数据库查询)。请求106可包括针对存储在数据库110中的或数据库110中引用的数据的请求。数据库110可以是被组织为关系数据库、面向对象数据库或即席数据库的数据集合。[0018]数据库110中的数据可被组织成具有列和行的表格。每列数据可具有一个数据类型。数据类型可包括例如整数数据类型、文本数据类型、或容器数据类型。在下文中将参考图2介绍容器数据类型的进一步细节。对于某些数据类型(例如文本数据类型或容器数据类型),数据可具有与其它数据(例如具有布尔数据类型的数据)相比更大的数据大小。例如,具有容器数据类型的数据项可以是文件大小大于一千兆字节(IGB)的数字电影,而具有布尔数据类型的数据项可具有一个字节的大小。[0019]数据库110可被配置为将具有大的数据大小的数据项与其它数据项分开存储。例如,数据库110可被配置为使得具有大的数据大小的内容112被存储在内容仓库114处。内容仓库114可以是通过通信网络连接到数据库服务器的存储设备。对内容112的引用可与数据库110的其它数据一起被存储。内容112通过数据库110来管理和访问。内容112的位置由数据库110控制。[0020]数据库服务器102可确定数据库请求106包括对具有文本类型的数据(文本数据)的请求和对具有容器类型的数据(容器数据)的请求。数据库服务器102于是可以确定,除了文本数据之外,响应于数据库请求106要返回的容器数据还包括内容112。[0021]数据库服务器102通过数据库连接108将数据库响应116发送到客户端104。数据库响应116可包括数据库请求106中所请求的文本数据。数据库响应116可包括对内容112的引用和对web服务器118的引用,而不是包括内容112。web服务器118可以是被配置为与数据库110分开访问内容112的服务器。例如,web服务器118可以是与数据库服务器102分开的超文本传输协议(HTTP)服务器。[0022]在接收到数据库响应116时,客户端104可确定数据库响应116包括对容器数据的引用。客户端104可以将这些引用发送到内容提取器120。内容提取器120是客户端104的被配置为检索数据库响应116中所引用的内容的软件或硬件组件。[0023]在接收到引用时,内容提取器120可根据数据库响应116中的引用,自动地打开至web服务器118的连接122。内容提取器120可在没有用户干预的情况下打开连接122。连接122可以是与数据库连接108分开的网络连接。通过连接122,内容提取器120可在没有用户干预的情况下发送请求到web服务器118,所述web服务器118可利用不同于数据库连接协议的协议(例如HTTP流式传输协议)返回内容112。通过与其它数据库内容分开发送内容112,系统可减轻由于传输大媒体数据到客户端104而在数据库服务器102上产生的负荷,并且允许在客户端处的用户基本上立即查看数据库查询的结果,而不是要首先等待整个内容被传输。内容提取器120的操作可以是自动的,并且对于用户而言是透明的。[0024]示例性容器字段[0025]图2示出了在智能数据传输中使用的示例性容器技术。容器数据类型允许某些数据(例如多媒体数据)与其他数据库数据分开存储,并且因此通过与用于传输其它数据库数据的连接分开的与客户端的连接来传输。[0026]关系数据库的数据可被存储在数据库110(图1)中。数据库110可包括用于存储数据的一个或多个数据库文件。在一些具体实施中,数据库110可包括包含关系数据库的所有数据的单个数据库文件。[0027]关系数据库可包括一个或多个表格,其中一个是表格202a。表格202b不出了存储在数据库110中的关系数据库的表格202a的放大视图。表格202b可包括一个或多个列,例如列204a和204b。列204a和204b中的每一个都可具有容器数据类型。表格202b可包括一个或多个行,例如行206a、206b和206c。每个行都可包括对应于列的一个或多个数据字段。例如,行206b可包括容器数据字段208;行206c可包括容器数据字段210。[0028]容器数据字段208和210的实际内容可分别存储在数据库文件212和214中。系统可为数据库文件212和214中的每一者分配名称。数据库文件212和214中的每一者的名称可被配置为在关系数据库中是唯一的。[0029]数据库文件212和214可定位为远离数据库110以及远离系统的客户端计算机。系统可在与存储所述数据库I1相同的目录或文件系统中存储一个或多个数据库文件212和214,包括存储数据库110的目录的子目录。附加地或替代地,系统可在与存储所述数据库110的目录或文件系统不同的目录或文件系统中存储一个或多个数据库文件212和214。文件系统可包括用于组织计算机文件以由操作系统进行存储、操纵和检索的系统。目录可包括文件系统内的虚拟分组,其中可以存储一个或多个文件或目录。[0030]容器数据字段208和210各自可分别与数据库文件212和214相关。关系(例如关系216和218)可利用与容器数据字段208和210相关联的远程容器来实现。远程容器可存储对数据库文件212或214的引用(例如路径)。在一些具体实施中,路径可包括基目录和相对路径。基目录可以是数据库文件212和214的最高级别目录。系统可以维持多个基目录。每个基目录可以位于不同的存储设备或者安装卷上。相对路径可指定基目录的子目录。[0031]例如,系统可利用路径“C:\DBDIR\[a_date]\PDF\file_l.pdf”来存储数据库文件212,其中“C:\DBDIR”是基目录,“\[a_date]\PDF\”是相对路径,并且“file_l.pdf”是唯一的名称。数据库文件212(“file_l.pdf”)可被存储在第一存储设备226上。同样,系统可以利用路径“C:\DBDIR\Multimedia\file_2.jpg”存储可包括多媒体内容在内的数据库文件214。数据库文件214可被存储在第二存储设备228上。存储设备228可以是基目录“C:\DBDIR\”下使用名称“Multimedia”的安装卷(如虚线箭头220所示)。这个或这些基目录可为数据库管理员提供一个中央位置(例如“C:\DBDIR\”)来检查远程容器、对访问远程容器的限制,以及需要的话对远程容器进行重新映射。在一些具体实施中,容器数据字段208和210的每一个都可以存储对远程容器的引用,该引用又可以存储至数据库文件212或214的路径。[0032]具有容器数据类型的数据不同于对外部数据的简单引用(例如URL)。容器数据类型的数据虽然与其它数据库数据分开存储,但是也是通过数据库而被管理和访问的数据库数据的一部分。例如,数据库110可响应于如下所示的结构化查询语言(SQL)的示例性插入语句来确定用于存储数据库文件212的位置和路径。[0033]INSERTINTOtable_name(columnl)[0034]VALUES(“my_file.pdf”);(I)[0035]当数据库110确定“columnl(列I)”具有容器数据类型时,数据库可将文件“my_file,pdf”作为数据库文件212上载到系统中,并且为所上载的文件赋予系统名称(例如“file_l.pdf”),而不是将字符串“myjile.pdf”插入到数据库中。[0036]此外,远程容器可分别存储可用于对数据库文件212和214的访问限制222和224进行管理的信息。该信息可包括用于加密和解密数据库文件212和214的一个或多个密钥。例如,数据库文件212可被加密,使得读取数据库文件212的内容需要密钥来解密数据库文件212。密钥可被存储在与容器数据字段208相关联的远程容器中。系统可以将可访问数据库文件212的内容的用户限制为可访问容器数据字段208的那些用户。内容可通过关系数据库或通过利用关系数据库的应用程序来提供。因此,用户对数据库文件212的访问特权可独立于用户对存储设备226的访问特权。例如,对存储设备226没有访问特权的用户可访问存储在存储设备226上的数据库文件212的内容。[0037]示例性数据过滤器[0038]图3是示出在智能数据传输中使用的示例性过滤器技术的框图。过滤器技术允许数据库服务器102确定响应于请求何时利用一个协议将数据库数据发送到客户端,以及响应于该请求何时利用另一协议将对数据的引用发送到客户端。[0039]数据库服务器102可包括过滤器302。过滤器302可以是数据库服务器102的硬件或软件组件,其被配置为基于响应于数据库请求而检索到的数据的特性为该数据库请求提供不同响应。数据库110可存储常规数据和容器数据。常规数据可包括具有数字类型(例如整数、无符号整数、或浮点数)、布尔类型、文本类型(例如固定或可变长度字符串)、日期/时间类型、或标识符(ID)类型的数据。容器数据可包括具有多媒体(例如音频或视频流)类型、数据对象(例如对象链接与嵌入(OLE)对象)类型、或文件(例如开放文档格式(OpenDocument?)(ODT)、可移植文档格式(PDF))类型的数据。[0040]当数据是容器数据时,容器数据的实际内容(例如多媒体文件的内容),包括内容项304和内容项306在内,可以与常规数据分开地存储在内容仓库114处。在某些具体实施中,内容项304和内容项306可与数据库服务器102分开存储。数据库110可以存储对内容项304的引用308和对内容项306的引用310。[0041]当数据库110响应于请求而返回数据时,过滤器302可基于过滤器参数312来确定是返回数据还是返回对数据的引用。过滤器参数312可指定数据的特性和对应的协议,即:如果数据具有所指定的特性,则数据将根据对应的协议被传输。例如,过滤器参数312可以指定如果数据具有容器数据类型并且数据的内容具有X千字节(KB)的大小,则将利用HTTP流式传输协议来传输该数据。过滤器参数312可包括对内容仓库114的引用314和对web服务器118的引用316。在下文中将参考图4描述过滤器参数312的进一步细节。[0042]基于过滤器参数312和从数据库110返回的数据,过滤器302可以确定例如将利用第一协议将内容项304传输到客户端,并且将利用不同于第一协议的第二协议来传输内容项306。过滤器302可以向客户端提供引用信息,而不是实际的内容项304和306。引用信息可包括例如对web服务器118和内容仓库114的引用(例如主机名称或互联网协议(IP)地址)以及要用于连接到web服务器118或内容仓库114或这二者的协议。[0043]图4是示出过滤器参数312的一种示例性结构的框图。过滤器参数312可包括数据库标识符402。数据库服务器可以为一个或多个数据库提供主机服务。公共过滤器可被应用于这一个或多个数据库中的每一个。彼此不同的两个数据库可具有不同的过滤器参数。数据库标识符402可以指定过滤器参数312应用于哪个数据库。同样,在一些具体实施中,过滤器参数312可包括用户标识符,该用户标识符可以使过滤器参数312对于用户是特定的。[0044]过滤器参数312可包括过滤器条件404。过滤器条件404可以指定当数据的特性满足一个或多个标准时,将使用指定的协议来传输该数据。例如,过滤器条件404可包括数据类型条件406,其指定:如果数据具有容器数据类型,或者如果数据内容是指定格式(例如HF)的,则利用HTTP流式传输协议来传输该数据。过滤器条件404可包括数据大小条件408,其指定:如果数据的大小满足阈值(例如XKB),则使用HTTP流式传输协议来传输该数据。同样,过滤器条件404可包括日期/时间条件(例如,如果数据是在最近η小时内被插入的,则使用协议X)、触发条件(例如,如果Α>Β,则使用协议Y)、或者脚本条件(例如,如果脚本已经被执行,则使用协议Ζ)。如果这些标准都没有被满足,则可以利用默认协议(例如通过现有数据库连接)传输该数据。[0045]过滤器可包括主机参数410。主机参数410可包括关于目标服务器的信息。该信息允许客户端识别并连接到目标服务器。例如,主机参数410可包括web服务器说明412,该web服务器说明412指定以下中的一个或多个:web服务器的IP地址、主机名、或统一资源定位符(URL)、用于连接到web服务器的端口号或者密码。主机参数410可包括内容仓库说明414,该内容仓库说明414指定内容项的位置。客户端可以对位置进行URL编码,并且将编码后的位置作为请求的一部分发送到web服务器。[0046]示例性用户界面[0047]图5是在接收智能数据传输的数据库客户端上实现的一种示例性用户界面500。用户界面500可以是数据库应用程序的图形用户界面。在该实例中,数据库应用程序连接到电影数据库。[0048]用户界面500可包括控制部分502和列表查看部分504。控制部分502可被配置为接收用户输入,使得数据库应用程序可以生成查询以提交给远离客户端设备定位的数据库服务器。由数据库应用程序生成的一种示例性查询可以是如下面所示的SQL查询。[0049]SELECTtitle,genre,source,contentFROMmovie_table;(2)[0050]列表查看部分504可被配置为响应于查询来显示从该示例性电影数据库中检索到的数据。在所示实例中,列表查看部分504显示文本显示部分506和文本显示部分510。文本显示部分506和510被配置为如从数据库中的数据库表格“m0Vie_table”检索到的那样显示标题、类型和源。[0051]列表查看部分504可包括媒体显示区域508和媒体显示区域512。媒体显示区域508和512被配置为显示从数据库中的数据库表格“movie_table”检索到的多媒体内容。在该实例中,数据库表格“movie_table”中的数据列“content(内容)”具有容器数据类型。因此,用于纪录片“TheProof”和用于家庭视频“BirthdayParty”的电影文件与“movie_table”的标题、类型和源分开存储。服务该客户端设备的数据库服务器可具有过滤器参数指定如下内容的过滤器。[0052]1.通过HTTP连接,利用HTTP流式传输协议来传输(a)具有容器数据类型并且(2)大于512KB的数据;以及[0053]2.其他数据通过现有数据库连接来传输。[0054]根据数据库中的数据,纪录片“TheProof”大于512KB,而家庭视频“BirthdayParty”不大于512KB。因此,客户端设备通过现有连接接收用于“BirthdayParty”的电影文件,并且自动且透明地打开新的HTTP连接来检索用于“TheProof”的电影文件。这两个多媒体文件通过不同的连接来进行检索,并且可以同时被检索。因此,媒体显示区域508和512中的内容可以同时显示,从而允许用户同时观看两部电影,而不是必须等待“TheProof”完成下载后才能观看“BirthdayParty”。[0055]示例性数据传输过程[0056]图6是在实现智能数据传输的系统上执行的示例性过程600的流程图。系统可包括数据库服务器(例如图1的数据库服务器102)。数据库服务器可从用户设备(例如图1的客户端104)接收对于数据的请求(602)。该请求可包括数据库查询(例如上面所示的SQL查询(2))。[0057]系统可确定所请求的数据的特性(604)。特性可包括所请求的数据的数据大小或者所请求的数据的数据类型。确定数据类型可包括确定所请求的数据具有容器数据类型。容器数据类型可以是被指定用于多媒体数据或数据对象的数据库表格列的数据类型。[0058]系统可基于数据的特性(例如数据大小或数据类型)来识别数据传输协议(606)。可从多个候选数据传输协议(例如,如在图3和4所示的过滤器参数312中指定的那些)中识别数据传输协议。数据传输协议可以是被指定用于传输具有该特性(例如,数据大小或数据类型)的数据的数据协议。[0059]在一些具体实施中,识别数据传输协议可包括确定数据大小是否满足预先指定的阈值。如果数据大小不满足该阈值,则系统可识别第一数据传输协议(例如,预先指定的默认数据传输协议)。如果数据大小满足该阈值,则系统可以识别第二数据传输协议(例如,HTTP流式传输协议)。在后一种情形下,系统可将HTTP服务器的地址从数据库服务器发送到用户设备。[0060]系统可响应于该请求,利用在步骤606中所识别的数据传输协议,将数据传输到用户设备(608)。传输数据可包括当第一数据传输协议被识别时,通过第一连接传输数据,或者当第二数据传输协议被识别时,通过第二连接传输数据。第一连接可以是用户设备与数据库服务器之间的数据库连接。第二连接可以是用户设备与HTTP服务器之间的HTTP连接。传输数据可包括利用HTTP流式传输协议,通过用户设备与HTTP服务器之间的HTTP连接,将数据传输到用户设备。[0061]示例件系统架构[0062]图7是用于实现图1至6中所示特征和操作的一种示例性系统架构700的框图。也可以有其他架构,包括具有更多或更少组件的架构。在一些具体实施中,架构700包括一个或多个处理器702(例如,双核IntelK'Xeonw处理器)、一个或多个输出设备704(例如IXD)、一个或多个网络接口706、一个或多个输入设备708(例如,鼠标、键盘、触敏显示器)以及一个或多个计算机可读介质712(例如RAM、R0M、SDRAM、硬盘、光盘、闪存存储器等)。这些组件可以经由一个或多个通信通道710(例如总线)来交换通信和数据,该通信通道710可利用各种硬件和软件来促进组件之间的数据和控制信号的传输。[0063]术语“计算机可读介质”是指参与提供指令给处理器702执行的任何介质,无限制性地包括:非易失性介质(例如光盘或磁盘)、易失性介质(例如存储器)和传输介质。传输介质无限制地包括同轴电缆、铜线和光纤。[0064]计算机可读介质712还可包括操作系统714(例如MacOS?服务器、Windows?NT服务器)、网络通信模块716、数据库管理程序720、过滤器程序730、以及过滤器参数740。操作系统714可以是多用户的、多处理的、多任务的、多线程的、实时的,等等。操作系统714执行基本任务,包括但不限于:识别来自设备706、708的输入并提供输出到设备706,708;跟踪和管理计算机可读介质712(例如存储器或存储设备)上的文件和目录;控制外围设备;以及管理该一个或多个通信通道710上的通信量。网络通信模块716包括用于建立和维持网络连接的各种组件(例如用于实现诸如TCP/IP、HTTP等之类的通信协议的软件)。[0065]数据库管理程序720可包括在被执行时使处理器702执行上面参考图1所述的数据库服务器102的操作的计算机指令。数据库管理程序720可包括与文件系统上的一个或多个数据库的接口。数据库可以按分级文件夹结构被组织,所述文件夹映射到文件系统中的目录。过滤器程序730可包括在被执行时使处理器702执行上面参考图3所述的过滤器302的操作的计算机指令。过滤器参数740可包括上面参考图3和4所述的一个或多个过滤器参数312。[0066]架构700可以在并行处理或点对点的基础结构中实现或者在具有一个或多个处理器的单个设备上实现。软件可包括多个软件组件或者可以是单个代码主体。[0067]所描述的特征可以有利地在能够在可编程系统上执行的一个或多个计算机程序中实现,该可编程系统包括至少一个被耦接以从数据存储系统接收数据和指令并且传输数据和指令到数据存储系统的可编程处理器、至少一个输入设备、以及至少一个输出设备。计算机程序是在计算机中可以直接或间接使用以执行某种活动或者产生某种结果的一组指令。计算机程序能够以包括编译和解释语言在内的任何形式的编程语言(例如Objective-C,Java)来编写,并且其能够以任何形式部署,包括作为独立程序或者作为模块、组件、子例程、基于浏览器的web应用、或适于在计算环境中使用的其它单元。[0068]作为例子,用于执行指令程序的合适处理器包括通用和专用微处理器二者、以及任何类型的计算机的多个处理器或内核之一或者唯一处理器。一般而言,处理器将从只读存储器或随机存取存储器或这二者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般而言,计算机还将包括一个或多个用于存储数据文件的大容量存储设备,或者计算机操作地耦接以与一个或多个用于存储数据文件的大容量存储设备通信;此类设备包括磁盘,诸如内部硬盘和可移动磁盘;磁光盘;和光盘。适于有形地包含计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器设备,诸如EPROM、EEPROM、和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及⑶-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(专用集成电路)补充,或者被包含在ASIC中。[0069]为了提供与用户的交互,这些特征可以在具有用于向用户显示信息的显示设备以及用户可用来向计算机提供输入的键盘和指向设备的计算机上实现,所述显示设备为诸如CRT(阴极射线管)或IXD(液晶显示器)监视器,所述指向设备为诸如鼠标或轨迹球。[0070]这些特征可以在计算机系统中实现,该计算机系统包括后端组件,诸如数据服务器,或者该计算机系统包括中间件组件,诸如应用服务器或互联网服务器,或者该计算机系统包括前端组件,诸如具有图形用户界面或互联网浏览器的客户端计算机,或者它们的任意组合。系统的组件可以通过任何形式或媒介的数字数据通信(诸如通信网络)来连接。通信网络的例子包括例如LAN、WAN、以及形成互联网的计算机和网络。[0071]计算系统可包括客户端和服务器。客户端和服务器一般是相互远离的,并且通常通过通信网络进行交互。客户端和服务器的关系借助于运行在相应计算机上并且相互具有客户端-服务器关系的计算机程序而产生。在某些具体实施中,服务器将数据(例如HTML页面)传输到客户端设备(例如为了向与该客户端设备交互的用户显示数据以及从与该客户端设备交互的用户接收用户输入)。在服务器处可以从客户端设备接收客户端设备处生成的数据(例如用户交互的结果)。[0072]—个或多个计算机的系统可被配置为通过具有安装在系统上的在操作时使系统执行特定动作的软件、固件、硬件或它们的组合来执行所述动作。一个或多个计算机程序可被配置为通过包括在被数据处理装置执行时使该装置执行特定动作的指令来执行所述动作。[0073]虽然本说明书包含许多特定的实施细节,但是这些特定的实施细节不应被理解为是对任何发明或可能请求保护的方案的范围的限制,而应被理解为对特定于特定发明的特定实施例的特征的描述。本说明书中在不同实施例的上下文中描述的某些特征也可以在单个实施例中组合地实现。反之,在单个实施例的上下文中描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施例中实现。此外,虽然某些特征可能在上面被描述为以某些组合来实现并且甚至最初也这样地来要求保护,但是请求保护的组合的一个或多个特征在某些情形下可以从该组合中去除,并且所请求保护的组合可以涉及子组合或子组合的变型。[0074]类似地,虽然操作在附图中以特定顺序示出,但不应将这种情况理解为需要以所示的特定顺序或相继顺序来执行此类操作,或者需要执行所有所示的操作,以实现所需结果。在某些情形中,多任务和并行处理可能是有利的。此外,上述实施例中各个系统组件的划分不应被理解为在所有实施例中都要求这样划分,并且应当理解,所述程序组件和系统可以一般性地一起整合在单个软件产品中或者封装到多个软件产品中。[0075]因此,已经介绍了发明主题的特定实施例。其他实施例也在以下权利要求书的范围内。在某些情况下,权利要求书中所记载的动作能够以不同的次序执行,并且仍能实现期望的结果。此外,附图中所示的过程并不必须要求所示的特定次序或者先后次序来实现期望的结果。在某些具体实施中,多任务和并行处理可能是有利的。[0076]已描述了本发明的多个具体实施。然而,应当理解,在不脱离本发明的实质和范围的情况下可作出各种修改。例如,虽然大多数实例是参考HTTP流式传输协议来描述的,但是所描述的技术可以应用于任何数据交换协议。【权利要求】1.一种方法,包括:由数据库服务器从用户设备接收对于数据的请求;确定所请求的数据的数据大小和数据类型;基于所述数据大小和数据类型,从用于对所述请求进行响应的多个候选数据传输协议中识别被指定用于传输具有所述数据大小和数据类型的数据的数据传输协议;以及响应于所述请求,利用所识别的数据传输协议,将所述数据传输到所述用户设备。2.根据权利要求1所述的方法,其中确定所述数据类型包括确定所请求的数据具有容器数据类型,所述容器数据类型为被指定用于多媒体数据或数据对象的数据库表格列的数据类型。3.根据权利要求1所述的方法,其中识别所述数据传输协议包括:确定所述数据大小是否满足预先指定的阈值;并且:当所述数据大小不满足所述阈值时,识别第一数据传输协议,或者当所述数据大小满足所述阈值时,识别第二数据传输协议。4.根据权利要求3所述的方法,其中传输所述数据包括:当所述第一数据传输协议被识别时,通过第一连接传输所述数据;或当所述第二数据传输协议被识别时,通过第二连接传输所述数据。5.根据权利要求4所述的方法,其中:所述第一连接为所述用户设备与所述数据库服务器之间的数据库连接,并且所述第二连接是所述用户设备与超文本传输协议(HTTP)服务器之间的HTTP连接。6.根据权利要求5所述的方法,包括当确定所述数据大小满足所述阈值时:将所述HTTP服务器的地址从所述数据库服务器发送到所述用户设备。7.根据权利要求5所述的方法,其中传输所述数据包括:利用HTTP流式传输协议,通过所述用户设备与所述HTTP服务器之间的HTTP连接,将所述数据传输到所述用户设备。8.一种计算机程序产品,其被配置为使一个或多个计算机执行包括如下动作的操作:由数据库服务器从用户设备接收对于数据的请求;确定所请求的数据的数据大小和数据类型;基于所述数据大小和数据类型,从用于对所述请求进行响应的多个候选数据传输协议中识别被指定用于传输具有所述数据大小和数据类型的数据的数据传输协议;以及响应于所述请求,利用所识别的数据传输协议,将所述数据传输到所述用户设备。9.根据权利要求8所述的产品,其中确定所述数据类型包括确定所请求的数据具有容器数据类型,所述容器数据类型为被指定用于多媒体数据或数据对象的数据库表格列的数据类型。10.根据权利要求8所述的产品,其中识别所述数据传输协议包括:确定所述数据大小是否满足预先指定的阈值;并且:当所述数据大小不满足所述阈值时,识别第一数据传输协议,或者当所述数据大小满足所述阈值时,识别第二数据传输协议。11.根据权利要求10所述的产品,其中传输所述数据包括:当所述第一数据传输协议被识别时,通过第一连接传输所述数据;或当所述第二数据传输协议被识别时,通过第二连接传输所述数据。12.根据权利要求11所述的产品,其中:所述第一连接为所述用户设备与所述数据库服务器之间的数据库连接,并且所述第二连接为所述用户设备与超文本传输协议(HTTP)服务器之间的HTTP连接。13.根据权利要求12所述的产品,所述操作包括当确定所述数据大小满足所述阈值时:将所述HTTP服务器的地址从所述数据库服务器发送到所述用户设备。14.根据权利要求12所述的产品,其中传输所述数据包括:利用HTTP流式传输协议,通过所述用户设备与所述HTTP服务器之间的HTTP连接,将所述数据传输到所述用户设备。15.—种系统,包括:一个或多个计算机,所述一个或多个计算机被配置为执行包括如下动作的操作:由数据库服务器从用户设备接收对于数据的请求;确定所请求的数据的数据大小和数据类型;基于所述数据大小和数据类型,从用于对所述请求进行响应的多个候选数据传输协议中识别被指定用于传输具有所述数据大小和数据类型的数据的数据传输协议;以及响应于所述请求,利用所识别的数据传输协议,将所述数据传输到所述用户设备。16.根据权利要求15所述的系统,其中确定所述数据类型包括确定所请求的数据具有容器数据类型,所述容器数据类型为被指定用于多媒体数据或数据对象的数据库表格列的数据类型。17.根据权利要求15所述的系统,其中识别所述数据传输协议包括:确定所述数据大小是否满足预先指定的阈值;并且:当所述数据大小不满足所述阈值时,识别第一数据传输协议,或者当所述数据大小满足所述阈值时,识别第二数据传输协议。18.根据权利要求17所述的系统,其中传输所述数据包括:当所述第一数据传输协议被识别时,通过第一连接传输所述数据;或当所述第二数据传输协议被识别时,通过第二连接传输所述数据。19.根据权利要求18所述的系统,其中:所述第一连接为所述用户设备与所述数据库服务器之间的数据库连接,并且所述第二连接为所述用户设备与超文本传输协议(HTTP)服务器之间的HTTP连接。20.根据权利要求19所述的系统,所述操作包括当确定所述数据大小满足所述阈值时:将所述HTTP服务器的地址从所述数据库服务器发送到所述用户设备。21.根据权利要求19所述的系统,其中传输所述数据包括:利用HTTP流式传输协议,通过所述用户设备与所述HTTP服务器之间的HTTP连接,将所述数据传输到所述用户设备。【文档编号】G06F17/30GK104040545SQ201380004814【公开日】2014年9月10日申请日期:2013年1月4日优先权日:2012年1月6日【发明者】王辉,O·扎伊德曼申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1