CN103733568A - 使用客户端-服务器架构的流处理 - Google Patents

使用客户端-服务器架构的流处理 Download PDF

Info

Publication number
CN103733568A
CN103733568A CN201280040235.2A CN201280040235A CN103733568A CN 103733568 A CN103733568 A CN 103733568A CN 201280040235 A CN201280040235 A CN 201280040235A CN 103733568 A CN103733568 A CN 103733568A
Authority
CN
China
Prior art keywords
request
stream
server
client
response
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
Application number
CN201280040235.2A
Other languages
English (en)
Other versions
CN103733568B (zh
Inventor
Y·朴
K·S·萨比尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103733568A publication Critical patent/CN103733568A/zh
Application granted granted Critical
Publication of CN103733568B publication Critical patent/CN103733568B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

使用流处理对请求进行响应的方法能够包括从服务器接收服务器请求,其中,所述服务器被配置成响应于客户端请求而生成服务器请求,并生成与服务器请求相关联的请求。该方法能够包括响应于服务器请求而将从服务器请求导出的流处理请求发送到第一流处理节点。该流处理请求能够包括请求标识符。响应于从第二流处理节点接收到包括流处理结果和请求标识符的创建显影消息,能够使流处理结果与服务器请求相关。能够将指定流处理结果的写响应消息发送到服务器。

Description

使用客户端-服务器架构的流处理
技术领域
在本说明书内公开的一个或多个实施方式涉及流处理。
背景技术
在常规数据分析中,针对静态数据应用查询。一般地,流处理指的是其中能够评估被称为数据流或流的变化数据的数据处理技术。尽管能够随时间推移而修改或更新查询,能够通过对变化数据流应用大体上静态的查询来评估数据流。在某些情况下,被查询的数据流能够快速地改变。例如,能够将要评估的数据流视为诸如实时或近实时信息的持续信息流。与数据可存储在数据库或其他数据存储***内的静态数据进行操作相反,实现流处理的节点能够对数据流进行操作。
发明内容
在本说明书内公开的一个或多个实施方式涉及流处理,并且更特别地涉及使用客户端-服务器型架构的流处理。
实施方式能够包括使用流处理来对请求进行响应的方法。该方法能够包括接收来自服务器的服务器请求,其中该服务器被配置成响应于客户端请求而生成服务器请求,并且生成与服务器请求相关联的请求标识符。响应于服务器请求,能够向第一流处理节点发送从服务器请求导出的流处理请求。该流处理请求能够包括请求标识符。响应于接收来自第二流处理节点的包括流处理结果和请求标识符的创建响应消息,能够使用处理器使流处理结果与服务器请求相关。能够向服务器发送包括流处理结果的写响应消息。
另一实施方式能够包括使用流处理对请求进行响应的方法。该方法能够包括响应于客户端请求来分配用于处置客户端请求的处理线程并在该处理线程内建立返回连接。能够向流服务器发送从客户端请求导出的服务器请求。能够将流服务器配置成与多个流处理节点交互。服务器请求能够包括指定处理线程的线程标识符。能够将用于处置客户端请求的处理线程保持在使来自流服务器的写响应消息待决的空闲状态。响应于接收来自流服务器的包括流处理结果和线程标识符的写响应消息,能够使用处理器使由线程标识符指定的处理线程返回至活动状态。能够通过返回连接将包括流处理结果的客户端响应发送到客户端。
另一实施方式能够包括用于使用流处理对请求进行响应的***。该***能够包括具有用其体现的计算机可读程序代码的计算机可读存储介质和被耦合到计算机可读存储介质的处理器。响应于执行计算机可读程序代码,能够将该处理器配置成执行可执行操作。可执行操作能够包括接收来自服务器的服务器请求,其中服务器被配置成响应于客户端请求而生成服务器请求,生成与服务器请求相关联的请求标识符,并且响应于服务器请求而向第一流处理节点发送从服务器请求导出的流处理请求。该流处理请求能够包括请求标识符。响应于接收来自第二流处理节点的包括流处理结果和请求标识符的创建响应消息,能够使流处理结果与服务器请求相关。能够向服务器发送包括流处理结果的写响应消息。
另一实施方式能够包括用于使用流处理对请求进行响应的***。该***能够包括具有用其体现的计算机可读程序代码的计算机可读存储介质和被耦合到计算机可读存储介质的处理器。响应于执行计算机可读程序代码,能够将该处理器配置成执行可执行操作。可执行操作能够包括:响应于客户端请求而分配用于处置客户端请求的处理线程,在该处理线程内建立返回连接,并向被配置成与多个流处理节点交互的流服务器发送从客户端请求导出的服务器请求。服务器请求能够包括指定处理线程的线程标识符。可执行操作还能够包括将用于处理客户端请求的处理线程保持在使来自流服务器的写响应消息待决的空闲状态,并且响应于从流服务器接收包括流处理结果和线程标识符的写响应消息,而使由线程标识符指定的线程返回至活动状态。能够通过返回连接向客户端发送包括流处理结果的客户端响应。
另一实施方式能够包括用于使用流处理对请求进行响应的计算机程序产品。该计算机程序产品能够包括具有用其体现的计算机可读程序代码的计算机可读存储介质。该计算机可读程序代码能够包括被配置成接收来自服务器的服务器请求的计算机可读程序代码,其中,所述服务器被配置成响应于客户端请求而生成服务器请求,并且计算机可读程序代码被配置成生成与服务器请求相关联的请求标识符。该计算机可读程序代码还能够包括计算机可读程序代码,其被配置成响应于服务器请求而向第一流处理节点发送从服务器请求导出的流处理请求。该流处理请求能够包括请求标识符。该计算机可读程序代码能够包括计算机可读程序代码,其被配置成响应于接收来自第二流处理节点的包括流处理结果和请求标识符的创建响应消息而使流处理结果与服务器请求相关。该计算机可读程序代码还能够包括被配置成向服务器发送包括流处理结果的写响应消息的计算机可读程序代码。
附图说明
图1是图示出示例性数据处理***的第一框图。
图2是图示出根据在本说明内公开的实施方式的用于流处理的***的框图。
图3是图示出根据在本说明书内公开的另一实施方式的用于流处理的***的框图。
图4是图示出根据在本说明书内公开的另一实施方式的使用流处理对请求进行响应的方法的流程图。
图5是图示出根据在本说明书内公开的另一实施方式的使用流处理对请求进行响应的方法的流程图。
具体实施方式
如本领域的技术人员将认识到的,可以将本发明的各方面体现为***、方法或计算机程序产品。因此,本公开可以具体实现为以下完全硬件实施方式、完全软件实施方式(包括固件、驻留软件、微代码等)或将软件和硬件方面组合的实施方式的形式,在本文中一般地可将其全部称为“电路”、“模块”或“***”。此外,本发明的各方面还可采取在一个或多个计算机可读介质中体现的计算机程序产品的形式,该计算机可读介质具有在其上面体现的、例如存储的计算机可读程序代码。
可利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更多具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读信号介质可以包括具有在其中体现(例如在基带中或作为载波的一部分)的计算机可读程序代码的传播数据信号。此类传播信号可以采取多种形式中的任何一个,包括但不限于电磁、光或其任意适当的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光纤、电缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如JavaTM、Smalltalk、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施方式的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各方面。将理解的是,可以由计算机程序指令来实现流程图和/或方框图的每个方框以及流程图和/或方框图中的方框的组合。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机、可编程数据处理装置或其他设备的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其他可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。还应注意的是,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。还应注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本说明书内公开的一个或多个实施方式涉及流处理,并且更特别地涉及使用客户端-服务器型架构的流处理。根据本文公开的一个或多个实施方式,能够实现一种在流处理***内结合超文本传输协议(HTTP)服务器的功能的***。如在本说明书内描述了HTTP服务器功能的包括在不必重新设计现有HTTP服务器的情况下促进流处理技术在更多常规***内的使用。流处理***能够作为可用于通过客户端-服务器型架构发布的服务请求的Web Service(网络服务)进行操作。
图1是图示出示例性数据处理***(***)100的第一框图。***100能够包括通过***总线115被耦合到存储器元件110的至少一个处理器105。这样,***100能够将程序代码存储在存储器元件110内。处理器105能够经由***总线115执行从存储器元件110访问的程序代码。在一个方面,例如,能够将***100实现为适合于存储和/或执行程序代码的计算机。然而,应认识到,能够以包括能够执行在本说明书内描述的功能的处理器和存储器的任何***的形式来实现***100。
存储器元件110能够包括一个或多个物理存储器件,诸如,例如本地存储器120和一个或多个大容量存储器件125。本地存储器120指的是一般地在程序代码的实际执行期间使用的随机存取存储器或其他非持久性存储器件。能够将大容量存储器件125实现为硬盘驱动器或其他持久性数据存储器件。***100还能够包括一个或多个高速缓冲存储器(未示出),其提供至少某些程序代码的临时存储,以便减少在执行期间必须从大容量存储器件125检索程序代码的次数。
能够可选地将被描述为输入设备130和输出设备135的输入/输出(I/O)设备耦合到***100。输入设备130的示例能够包括但不限于例如键盘、诸如鼠标之类的定点设备等。输出设备135的示例能够包括但不限于例如监视器或显示器、扬声器等。能够直接地或通过中间I/O控制器将输入设备130和/或输出设备135耦合到***100。还能够将网络适配器140耦合到***100以使得***100能够通过中间私用或公共网络被耦合到其他***、计算机***、远程打印机和/或远程存储设备。调制解调器、电缆调制解调器以及以太网卡是能够与***100一起使用的不同类型的网络适配器130的示例。
如在图1中所示,存储器元件110能够存储应用程序145。应认识到的是***100还能够执行能够促进应用程序145的执行的操作***(未示出)。能够由***100、例如由处理器105来执行以可执行程序代码的形式实现的应用程序145。响应于执行应用程序145,能够将***100配置成执行如在本文中更详细地描述的一个或多个操作。
在一个方面,例如,***100能够表示客户端数据处理***。在那种情况下,应用程序145能够表示客户端应用程序,其在被执行时将***100配置成执行在本文中参考“客户端”所述的各种功能。客户端的示例能够包括但不限于个人计算机、便携式计算机、移动电话等。
在另一方面,***100能够表示服务器。例如,***100能够表示HTTP服务器,在那种情况下,应用程序145在被执行时能够将***100配置成执行HTTP服务器操作。在另一方面,***100能够表示流处理***的流处理节点,诸如将在本说明书内更详细地描述的流处理节点或HTTP流服务器。相应地,应用程序145在被执行时能够将***100配置成视情况而执行HTTP流服务器和/或流处理节点操作。
图2是图示出根据在本说明内公开的实施方式的用于流处理的***200的框图。一般地,诸如***200之类的流处理***能够接收并处理一个或多个数据流。
数据流能够指的是能够是持续数据流或近持续数据流的数据流。在某些情况下,数据流能够是如能够从被配置成连续地输出读数或测量的从传感器接收的实时数据流。在另一示例中,数据流能够是被实时地或近实时地更新和发送、指定证券价格的市场数据。数据流的其他示例能够包括直播新闻馈送内容,无论是文本、音频、视觉还是视听形式、诊断数据、天气数据等。一般地,数据流表示相对持续数据流,其并不与一般地用基于因特网的网站找到或实现的常规客户端-服务器请求响应型信息流相对应或相符合。一般地,数据流是单向的,并且从产生数据流的特定节点流出。
如所示,***200能够包括多个流处理节点205、210、215、220和225。每个流处理节点205-225能够通过网络而被通信链接。能够将流处理节点205和210分别地配置成接收数据流230和235。在一个方面,数据流230和/或235能够源自于***200外部。一般地,能够将流处理节点、诸如从在***外部的源接收数据流的流处理节点205和210。能够将每个流处理节点205-225配置成异步地进行操作。例如,能够将每个流处理节点205-225配置成包括单独处理器并具有单独的工作队列。
流处理节点205能够对数据流230应用数据处理技术以确定一个或多个度量或从数据流230提取数据。能够将所得的度量和/或提取数据转发到每个流处理节点215和220,如以输出数据流的形式所示。同样地,流处理节点210能够对数据流235应用数据处理技术,以确定一个或多个度量或从数据流235提取数据。能够将所得的度量和/或提取数据转发到每个流处理节点215和220,如以输出数据流的形式所示。
流处理节点215能够对从流处理节点205和210接收到的输出数据流应用数据处理技术,并将一个或多个确定的度量和/或提取的数据以另一输出数据流的形式输出到流处理节点225。同样地,流处理节点220能够从流处理节点205和210接收到的输出数据流应用数据处理技术,并将一个或多个确定的度量和/或提取的数据以另一输出数据流的形式输出到流处理节点225。
流处理节点225能够基于从流处理节点215和220中的每个接收到的数据来进行最后判定或确定最后结果。还能够将流处理节点225配置成将信息(例如结果)发送到目的地或其他数据处理***。被配置成在***外部发送信息的流处理***的流处理节点能够称为“汇点”(sink)。
在实施方式中,作为流处理***的***200能够特征在于需要存储由流处理节点205-225处理的很少(如果有的话)的数据。在符合客户端-服务器架构的常规***内,能够接收并存储大量的数据。通常,数据被存储在数据库内。然后能够针对数据库执行查询,从而要求服务器具有大量的长期或固定储存器。
比较起来,***200能够在不必保存来自数据流230和/或235的数据的情况下对接收数据流230和235进行操作。能够将每个流处理节点205-225配置成接收数据流、对该数据流执行处理,并生成能够被发送至或提供给一个或多个其他节点的输出数据流。此外,应认识到的是能够存储如由流处理节点205-225中的一个或多个确定的一个或多个中间结果和/或最后结果,如果这样期望的话。
由流处理节点205-225产生的各种数据流能够在输出的每个相应数据流内包括请求或其他消息。该消息例如允许流处理节点205-225传送与流处理节点205-225的***级功能或操作状态有关的特定操作数据和/或指令。
在一个方面,能够在不同的数据处理***内实现每个流处理节点205-225。然而,在本说明书内公开的一个或多个实施方式并不意图在这方面受到限制。例如,在另一方面,能够在同一数据处理***内实现流处理节点205-225中的一个或多个。例如,能够在单个数据处理***内实现诸如流处理节点215和流处理节点220之类的两个或更多流处理节点。
如图2中所示,***200能够从流处理节点225(汇点)接收流处理节点205和210(源)内的数据流并发送结果。***200不同于其中来自客户端的请求被节点接收且该节点向客户端返回响应的常规客户端-服务器***。通过从接收到请求的同一节点向客户端提供响应,能够保持客户端和服务器之间的连接或通信链路形式的密切关系(affinity)。在常规流处理***内,如参考图2举例说明的,数据流入一个或多个流处理节点中,并从一个或多个不同的流处理节点离开。相应地,保持与客户端的密切关系以支持在客户端-服务器型***中使用的请求-响应性的交易模型在常规流处理***的情况下是不可行的。
为了使流处理***表现得像遵守客户端-服务器模型或架构的Web服务器,必须在客户端与源和流处理***的汇点与客户端之间保持密切关系,使得汇点知道结果将被发送到的特定客户端。在一个实施方式中,能够通过在流处理节点之间传播客户端上下文信息来保持与请求客户端的密切关系,使得不丢失流处理节点与客户端和/或客户端请求之间的关联。例如,为了保持向请求客户端提供响应的能力,由每个流处理节点205-225产生的输出能够包括用于发起被执行的流处理的特定客户端请求的上下文信息。当保持密切关系(例如用于识别客户端和向哪里发送响应的接收客户端请求的上下文信息)时,流处理***能够确定向哪里发送客户端响应。
图3是图示出根据在本说明内公开的实施方式的用于流处理的***300的框图。如所示,***300能够包括HTTP服务器305、HTTP流服务器(流服务器)310以及标记为1-N的一个或多个流处理节点,其中“N”是大于或等于一的整数值。应认识到的是虽然***300被示为包括三个处理节点,例如流处理节点1、2、...、N,但***300能够包括较少的流处理节点,例如1或2个,或者被配置成用于如参考图2所述的流处理的更多流处理节点。HTTP服务器305、流服务器310以及流处理节点1、2、...、N能够通过网络被通信链接。
一般地,***300图示出其中能够使用客户端上下文信息来保持请求客户端(未示出)、例如发布客户端请求的客户端与***300的源和汇点之间的密切关系。在***300内,能够将流服务器310配置成充当源和汇点两者以辅助处理HTTP请求。随着流处理的发生而通过从HTTP服务器305、到流服务器310、以及在***300的流处理节点1、2、...、N之间传递客户端上下文信息,能够使流处理结果与原始客户端请求相关并返回给客户端。如所讨论的,能够将每个流处理节点1、2、...、N配置成异步地操作。HTTP服务器305和流服务器310的合作操作,这允许***300至少向诸如客户端之类的外部***呈现为异步***。
能够将HTTP服务器305配置成从客户端接收客户端请求315。客户端请求15能够请求能够由诸如***300之类的流处理***来计算或确定的数据。在一个方面,HTTP服务器305能够分配处理线程以处置客户端请求315的处理。能够由HTTP服务器305内的线程标识符来识别用于处理客户端请求315的处理线程。
在处理线程内,HTTP服务器305能够创建到客户端的返回连接320。例如,能够将HTTP服务器305配置成创建返回连接320以返回TCP/IP套接字的形式用于从HTTP服务器305向客户端发送客户端响应375。HTTP服务器305例如能够使用客户端地址和端口来创建返回连接320。应认识到的是,用于处置也负责创建返回连接320的客户端请求315的线程有效地存储返回连接320。例如,HTTP服务器305内的处理线程能够存储或包括返回连接信息,例如建立返回连接320所需的信息。
HTTP服务器305还能够向流服务器310提交服务器请求325。服务器请求325能够包括客户端上下文信息。在实施方式中,由服务器请求325指定的客户端上下文信息能够包括某些或所有客户端请求。在一个方面,客户端上下文信息还能够包括返回连接信息,例如返回连接参考或识别与客户端的返回连接320的其他信息。在一个示例中,能够由线程标识符来指定或作为线程标识符来发送返回连接信息,该线程标识符指定处置客户端请求315的HTTP服务器305内的处理线程。通过HTTP服务器305提供客户端上下文信息,流服务器310能够保持与客户端的密切关系,尽管并不直接从客户端接收任何客户端请求。
在一个示例中,能够以“处置”方法的形式来实现服务器请求325。HTTP服务器305能够创建指定客户端上下文信息的请求对象和响应对象。例如,该请求对象能够包括整个的客户端请求、客户端请求的一部分、诸如cookies的客户端请求的一个或多个参数和/或其他相关客户端信息。响应对象能够指定用于客户端请求的返回连接信息。例如,该响应对象能够指定返回TCP/IP套接字的客户端地址和端口。在另一示例中,如所述,响应对象能够指定线程标识符。
能够将请求对象和响应对象从HTTP服务器305传递至一个或多个其他处理节点,例如流服务器310。响应于客户端请求315和返回连接320的创建,HTTP服务器305能够调用处置方法并向流服务器310传递一个或多个自变量,例如请求对象和响应对象。在实施方式中,能够将HTTP服务器305配置成阻止处置方法直至处置方法返回为止。例如,能够使得在其内部执行处置方法的处理线程为空闲。
能够使用多种已知编程技术中的任何一个来使HTTP服务器305内的处理线程空闲。例如,能够使用条件变量来使处理线程空闲。空闲的处理线程有效地等待条件变量的值改变,从而进入睡眠或空闲状态。当事件发生时,诸如就从流服务器310接收流处理结果形式的处置方法的返回,活动的另一处理线程能够用信号通知正在等待可用于变成活动的条件的空闲处理线程。相应地,空闲线程能够唤醒并重新开始活动。
能够将流服务器310配置成填充从HTTP服务器305接收到的响应对象作为服务器请求325的一部分。当处置方法返回时,例如,当流服务器310向HTTP服务器305发送回已填充响应对象时,能够将HTTP服务器305配置成向客户端发送回客户端响应375。
继续,响应于服务器请求325,流服务器310能够执行生成请求标识符的创建请求标识符操作330。流服务器310例如能够创建唯一地识别或对应于服务器请求325和因此的客户端请求315的请求标识符。在实施方式中,能够使用散列函数来创建能够是整数值的请求标识符。例如,流服务器310能够使从请求对象、响应对象或从请求对象和响应对象两者导出的客户端上下文信息散列。
流服务器305能够执行存储操作335,其中,流服务器310能够与在服务器请求325内接收到的客户端上下文信息相关联地存储请求标识符。例如,流服务器310能够将客户端上下文信息或其一部分存储在存储于存储器中的上下文词典内。根据请求标识符,能够对上下文词典设置秘钥。相应地,能够使用请求标识符来索引到上下文词典,以在需要时检索关联客户端上下文信息。存储的客户端上下文信息能够包括响应对象和/或线程标识符。例如,响应于从流处理节点1、2、...、N接收到包括请求标识符的任何流处理结果,流服务器310能够基于流处理结果内的请求标识符,使接收到的流处理结果与适当的服务器请求、客户端、客户端请求和/或返回连接信息相关。
已生成并存储请求标识符,能够将流服务器310配置成生成流处理请求340并将其发送到流处理节点1。在一个示例中,流处理请求340能够是在流处理节点1、2、...、N之间从流服务器310传递的“呈现”方法。该呈现方法能够包括多个参数,其包括统一资源标识符(URI)或统一资源定位符(URL)用于识别流服务器310、客户端请求315或其一部分(例如,诸如cookies之类的客户端请求315的参数)以及由流服务器310生成的请求标识符。
如所示,能够将流处理节点1配置成接收被表示为“其他数据流”的数据流,以示出除在流处理节点1、2、...、N之间生成数据流之外,流处理节点1、2、...、N中的一个或多个还能够从外部节点(例如另一***、传感器等)接收数据流。在任何情况下,能够将流处理节点1、2、...、N中的每一个配置成至少处理来自***300的另一流处理节点的输出数据流。
响应于接收到流处理请求340,能够将流处理节点1配置成执行一个或多个流处理功能并生成部分响应。来自流处理节点1的部分响应(被称为部分响应1)能够包括在从流处理器节点1生成并发送到流处理节点2的另一流处理请求345内。例如,流处理节点1能够生成并发送流处理请求345。能够以另一呈现方式的形式来实现流处理请求345,该另一呈现方法具有诸如流服务器310的URI或URL、客户端请求315或其一部分、由流服务器310生成的请求标识符以及部分响应1之类的自变量。
响应于接收到流处理请求345,能够将流处理节点2配置成执行一个或多个流处理功能并生成部分响应。在本示例中,来自流处理节点2的部分响应(被称为部分响应2)能够包括在能够从流处理节点2生成并发送到流处理节点N的另一流处理请求350内。例如,流处理节点2能够生成并发送流处理请求350。能够以另一呈现方式的形式来实现流处理请求350,该另一呈现方法具有诸如流服务器310的URI或URL、客户端请求315或其一部分、由流服务器310生成的请求标识符、部分响应1以及部分响应2之类的自变量。
响应于接收到流处理请求350,能够将流处理节点N配置成执行一个或多个流处理功能并生成部分响应。来自流处理节点N的部分响应(被称为部分响应N)能够包括在能够从流处理节点N发送到流服务器310的创建响应消息355内。创建响应消息355能够包括或指定例如请求标识符和响应主体。能够将该响应主体视为对客户端请求315的完全响应,例如作为回答的流处理结果。更特别地,响应主体能够包括部分响应1、部分响应2、...、部分响应N,从而形成流处理结果。
在另一实施方式中,并不是每个节点都需要贡献被包括在流处理结果内的部分响应。例如,能够将一个或多个流处理节点配置成生成能够被其他“下游”流处理节点使用或消耗的中间结果。该中间结果不需要包括在流处理结果内。然而,在此意义上,仍能将此类流处理节点描述为向流处理结果贡献部分响应。
应认识到的是能够将诸如流处理节点1、流处理节点2至流处理节点N之类的***300的各种节点配置或编程为将输出指引到特定其他节点。例如,能够将流处理节点1配置成将能够包括流处理请求345的输出数据流指引到流处理节点2。能够将流处理节点2配置成将能够包括流处理请求350的输出数据流指引到流处理节点N。能够将流处理节点N配置为流处理节点中的最后一个,并且同样地能够将其配置为向流服务器310发送创建响应消息355。
继续,响应于接收到创建响应消息355,能够将流服务器310配置成执行检索响应操作360。检索响应操作360能够重新调用先前存储的客户端上下文信息。如所述,创建响应消息355能够指定请求标识符,其能够用来索引到上下文词典中以检索存储的客户端上下文信息。
流服务器310还能够生成写响应消息365并将其发送到HTTP服务器305。流服务器310能够生成写响应消息365,该写响应消息365能够指定例如线程标识符之类的检索客户端上下文信息以及响应主体。例如,流服务器305能够在从上下文词典检索的客户端上下文信息的响应对象部分内填充如在从流处理节点N检索的响应主体中指定的流处理结果,并将所得的消息以写响应消息365的形式转发至HTTP服务器305。如所述,写响应消息365还能够指定线程标识符。在实施方式中,能够在被存储在上下文词典内的响应对象内包括线程标识符。在这方面,线程标识在其中的响应主体填充之前能够已经在响应对象内。
在实施方式中,能够将写响应消息365视为处置方法对HTTP服务器305的返回。响应于接收到写响应消息365,能够将HTTP服务器305配置成停止阻止处置方法并继续操作以对客户端请求315进行响应。如所述,例如,HTTP服务器305能够根据在写响应消息365内接收到的线程标识符的确定而唤醒空闲处理线程。已唤醒由线程标识符指定的处理线程的HTTP服务器305能够继续处理客户端请求315以生成客户端响应375并将其发送到客户端。如所述,处理线程包括或指定用于连接320的信息,HTTP服务器305能够通过该返回连接320来发送客户端响应375。客户端响应375能够包括如由***300、例如由流处理节点N确定的流处理结果。
在图3内,在每个节点下面向下延伸的矩形框指示其中在交易中涉及到节点或者节点正在处理交易的那部分时间。如所示,从接收到客户端请求315的时间到发送客户端响应375的时间涉及到HTTP服务器305。与HTTP服务器305相比在较少的时间涉及到与流处理节点1、2、...、N交互的流服务器310。与流服务器310相比在较少的时间涉及到每个流处理节点1、2、...、N。
图4是图示出根据在本说明书内公开的另一实施方式的、使用流处理对请求进行响应的方法400的流程图。能够用参考图1-3所述的***来实现方法400。更特别地,方法400图示出能够用参考图3所述的HTTP服务器实现的处理的方法。
方法400能够在步骤405中开始,其中HTTP服务器能够从客户端接收客户端请求。在步骤410中,HTTP服务器能够确定当前所使用的许多处理线程是否超过处理线程的阈值数目。当正在使用的处理线程的数目超过处理线程的阈值数目时,方法400能够前进至步骤415。在步骤415中,HTTP服务器能够拒绝输入的客户端请求或者简单地不进行响应。通过限制可用处理线程的数目,HTTP服务器能够防止流处理***的泛洪。在步骤415之后,方法400能够环回至步骤405以进一步处理客户端请求。当在HTTP服务器内所使用的处理线程的数目不超过处理线程的阈值数目时,方法400能够前进至步骤420。
在步骤420中,响应于客户端请求,HTTP服务器能够分配处理线程以处置客户端请求。在一方面,HTTP服务器能够创建新的处理线程并分配新创建的处理线程以处置客户端请求。在另一方面,HTTP服务器能够分配可用处理线程以处置客户端请求。
在步骤425中,响应于客户端请求,HTTP服务器能够与客户端建立返回连接。HTTP服务器能够在分配的处理线程内创建返回连接。如所述,能够由线程标识符来指定处理线程。在步骤430中,HTTP服务器能够向流服务器发送服务器请求。例如,HTTP服务器能够实现在分配的处理线程上执行的处置方法。该服务器请求能够包括例如客户端请求或其一部分以及线程标识符。
在步骤435中,HTTP服务器能够开始等待来自流服务器的结果。在实施方式中,HTTP服务器能够使分配给客户端请求的处理线程空闲。如参考图3所讨论的,例如,HTTP服务器能够在对客户端进行响应之前等待来自流服务器的流处理结果,例如处置方法的返回。相应地,HTTP服务器能够至少相对于客户端请求进入等待状态,其中,分配给客户端请求的处理线程被保持在空闲状态,直至从流服务器接收到响应。然而,HTTP服务器能够在等待来自流服务器的响应的同时继续服务于来自其他接收客户端请求。
在步骤440中,响应于从流服务器接收到指定线程标识符的写响应消息,HTTP服务器能够使由线程标识符指定的处理线程、例如空闲的处理线程返回至活动状态。如所讨论的,写响应消息能够包括响应对象,其还能够包括来自流处理节点的流处理结果和线程标识符。HTTP服务器能够将由线程标识符指定的空闲线程返回活动状态。应认识到的是由于HTTP服务器能够同时地服务于多个客户端请求并具有多个未解决服务器请求,所以HTTP服务器能够具有同时存在的超过一个空闲处理线程。相应地,HTTP服务器能够选择由写响应消息中的线程标识符指定的所述多个空闲处理线程中的一个。HTTP服务器能够响应于接收到用于该处理线程的流处理结果,而使所选空闲处理线程返回至活动状态。在步骤445中,HTTP服务器能够通过在已激活处理线程内指定的返回连接,将指定由流处理节点确定的流处理结果的客户端响应发送到客户端。
应认识到的是当发生错误时,例如在预定或最小时间量内没有从流服务器接收到写响应消息,能够将HTTP服务器配置成释放分配以处置客户端请求的处理线程,使得处理线程可用于其他处理任务。例如,在最小时间量到期之后,HTTP服务器能够假定在流服务器和/或流处理节点中的一个或多个内发生错误,使得来自流服务器的写响应消息将不会出现。
图5是图示出根据在本说明书内公开的另一实施方式的使用流处理对请求进行响应的方法500的流程图。能够用参考图1-3所述的***来实现方法500。更特别地,方法500图示出能够用参考图3所述的流服务器实现的处理的方法。例如能够与方法400同时地执行方法500。更特别地,能够在处理线程为空闲的或者HTTP服务器内的处置方法被阻止的同时执行方法500。
方法500能够在步骤505中开始,其中流服务器能够从HTTP服务器接收服务器请求。例如,能够将流服务器配置成在端口上侦听来自HTTP服务器的服务器请求。在步骤510中,流服务器能够确定上下文词典中的条目的数目是否小于条目的阈值数目。当上下文词典中的条目的数目小于条目的阈值数目时,方法500能够前进至步骤515。当上下文词典中的条目的数目小于条目的阈值数目时,方法500能够前进至步骤520。
在步骤515中,流服务器能够拒绝从HTTP服务器接收到的服务器请求。限制上下文词典中的条目的数目能够帮助防止流处理***被客户端请求过载。在步骤515之后,方法500能够环回至步骤505以继续处理来自HTTP服务器的其他服务器请求。
在步骤520中,流服务器能够响应于其中指定的客户端上下文信息的服务器请求而生成请求标识符。在步骤525中,流服务器能够存储请求标识符和客户端上下文信息。如所述,例如,流服务器能够将客户端上下文信息作为能够使用请求标识符设置关键字或编索引的条目存储在上下文词典内。
在步骤530中,流服务器能够生成流处理请求。流服务器能够在流处理请求内包括请求标识符。能够将请求标识符包括在由每个流处理节点生成的输出数据内。识别信息的传播允许使流处理结果与客户端请求相关,并且还允许流处理***与客户端保持密切关系。
在步骤535中,流服务器能够将流处理请求发送到第一流处理节点。在步骤540中,流服务器能够从响应于客户端请求而正在执行的流处理中涉及到的最后或最终的流处理节点,接收作为输出数据流的一部分的创建响应消息。如所述,创建响应消息能够指定来自流处理节点的请求标识符和流处理结果。
在步骤545中,流服务器能够检索客户端上下文信息。例如,流服务器能够使用来自创建响应消息的请求标识符从上下文词典检索客户端上下文信息。在步骤550中,流服务器能够向HTTP服务器发送返回写响应消息。如所述,流服务器能够利用从上下文词典检索的客户端上下文信息来确定要将写响应消息指引到那里。客户端上下文信息能够包括线程标识符,流服务器能够将其包括在发送到HTTP服务器的写响应消息内。相应地,HTTP服务器能够按照响应对象内的指定将包括来自流处理***的流处理结果的客户端响应发送回到客户端。
在步骤555中,流服务器能够删除对应于所处理的请求标识符的上下文词典中的条目,从而减少上下文词典中的条目的数目。应认识到的是虽然图5中未示出,但能够在流服务器内实现其他错误处置程序。例如,在一个方面,能够在预定或最小时间量之后删除或清除上下文词典中的条目。在该最小时间量到期之后,流服务器能够认为在流处理节点中的一个或多个内发生错误,并且创建响应消息将不会出现。
在此使用的术语仅是为了描述特定实施方式,而并不旨在限制本发明。本文所使用的单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文另外明确地指出。还将理解,当在说明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整数、步骤、操作、元件和/或组件。
以下权利要求中的所有装置或步骤加功能元件的相应结构、材料、动作以及等效物(如果有的话)意图包括用于与其他权利要求要素相结合地执行功能的任何结构、材料或动作,如具体地要求保护的那样。呈现本发明的说明是为了示出和描述的作用,但不是穷尽性的或将本发明限制于所公开的形式。在不脱离本发明的范围的情况下,许多修改和变化对本领域普通技术人员来说是明显的。选择和描述实施方式是为了最佳地解释本发明的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用途的具有各种修改的各种实施方式理解本发明。

Claims (25)

1.一种使用流处理对请求进行响应的方法,所述方法包括:
接收来自服务器的服务器请求,其中所述服务器被配置成响应于客户端请求而生成所述服务器请求;
生成与所述服务器请求相关联的请求标识符;
响应于所述服务器请求,向第一流处理节点发送从所述服务器请求导出的流处理请求,其中所述流处理请求包括所述请求标识符;
响应于接收来自第二流处理节点的包括流处理结果和所述请求标识符的创建响应消息,使用处理器来使所述流处理结果与所述服务器请求相关;以及
向所述服务器发送包括所述流处理结果的写响应消息。
2.根据权利要求1所述的方法,还包括:
响应于接收所述写响应消息,向所述客户端发送包括所述流处理结果的客户端响应。
3.根据权利要求1所述的方法,所述方法还包括:
在所述第一流处理节点和所述第二流处理节点之间传播所述流处理请求,其中处置所述流处理请求的每个流处理节点贡献部分响应。
4.根据权利要求1所述的方法,其中所述服务器请求包括客户端上下文信息,所述方法还包括:
通过从所述客户端上下文信息生成所述请求标识符来使所述流处理请求与所述服务器请求相关;以及
与所述客户端上下文信息相关联地存储所述请求标识符。
5.根据权利要求4所述的方法,其中所述客户端上下文信息包括指定所述服务器内的正在处置所述客户端请求的处理线程的线程标识符。
6.根据权利要求5所述的方法,还包括:
响应于接收来自所述第二流处理节点的所述创建响应消息,根据所述创建响应消息中包括的所述请求标识符和存储的所述客户端上下文信息,使所述流处理结果与所述服务器请求相关;以及
在所述写响应消息内向所述服务器提供所述流处理结果和所述线程标识符。
7.根据权利要求1所述的方法,还包括:
将所述服务器选择成支持超文本传输协议(HTTP)的服务器。
8.根据权利要求1所述的方法,还包括:
响应于所述客户端请求,分配用于处置所述客户端请求的处理线程;
建立与发送所述客户端请求的客户端的返回连接,其中所述返回连接与所述处理线程相关联;以及
发送至少包括所述客户端请求的一部分和指定所述处理线程的线程标识符的所述服务器请求。
9.根据权利要求8所述的方法,还包括:
使所述处理线程空闲,直到所述写响应消息被接收。
10.根据权利要求9所述的方法,还包括:
响应于接收所述写响应消息,其中写响应消息包括所述线程标识符,根据所述线程标识符使所述流处理结果与所述客户端请求相关;以及
使得由所述线程标识符指定的所述处理线程能够对所述客户端请求进行响应。
11.一种使用流处理对请求进行响应的方法,所述方法包括:
响应于客户端请求,分配用于处置所述客户端请求的处理线程;
在所述处理线程内建立返回连接;
向被配置成与多个流处理节点交互的流服务器发送从所述客户端请求导出的服务器请求,其中所述服务器请求包括指定所述处理线程的线程标识符;
将用于处置所述客户端请求的所述处理线程保持在使来自所述流服务器的写响应消息待决的空闲状态;
响应于接收来自所述流服务器的包括流处理结果和所述线程标识符的所述写响应消息,使用处理器将由所述线程标识符指定的所述处理线程返回至活动状态;以及
通过所述返回连接将包括所述流处理结果的客户端响应发送到客户端。
12.根据权利要求11所述的方法,还包括:
在所述服务器请求内包括所述客户端请求的至少一部分。
13.根据权利要求12所述的方法,还包括:
根据所述线程标识符从多个空闲处理线程中选择将要返回到活动状态的所述处理线程。
14.根据权利要求12所述的方法,其中所述流服务器发起在多个流处理节点之间传播的流处理请求,以及
其中每个流处理节点接收用于所述客户端请求的识别信息。
15.根据权利要求14所述的方法,其中每个所述流处理节点异步地操作并且贡献部分结果以产生将被返回至所述流服务器的流处理结果。
16.一种用于使用流处理对请求进行响应的***,所述***包括:
计算机可读存储介质,具有以其体现的计算机可读程序代码;以及
处理器,被耦合到所述计算机可读存储介质,其中响应于执行所述计算机可读程序代码,所述处理器被配置成执行可执行操作,包括:
接收来自服务器的服务器请求,其中所述服务器被配置成响应于客户端请求而生成所述服务器请求;
生成与所述服务器请求相关联的请求标识符;
响应于所述服务器请求,向第一流处理节点发送从所述服务器请求导出的流处理请求,其中所述流处理请求包括所述请求标识符;
响应于接收来自第二流处理节点的包括流处理结果和所述请求标识符的创建响应消息,使所述流处理结果与所述服务器请求相关;以及
向所述服务器发送包括所述流处理结果的写响应消息。
17.根据权利要求16所述的***,其中所述处理器还被配置成执行可执行操作,包括:
响应于接收所述写响应消息,向所述客户端发送包括所述流处理结果的客户端响应。
18.根据权利要求17所述的***,其中所述处理器还被配置成执行可执行操作,包括:
在所述第一流处理节点和所述第二流处理节点之间传播所述流处理请求,其中处置所述流处理请求的每个流处理节点贡献部分响应。
19.根据权利要求17所述的***,其中所述服务器请求包括客户端上下文信息,其中所述处理器还被配置成执行可执行操作,包括:
通过从所述客户端上下文信息生成所述请求标识符来使所述流处理请求与所述服务器请求相关;以及
与所述客户端上下文信息相关联地存储所述请求标识符。
20.一种用于使用流处理对请求进行响应的***,所述***包括:
计算机可读存储介质,具有以其体现的计算机可读程序代码;以及
处理器,被耦合到所述计算机可读存储介质,其中响应于执行所述计算机可读程序代码,所述处理器被配置成执行可执行操作,包括:
响应于客户端请求,分配用于处置所述客户端请求的处理线程;
在所述处理线程内建立返回连接;
向被配置成与多个流处理节点交互的流服务器发送从所述客户端请求导出的服务器请求,其中所述服务器请求包括指定所述处理线程的线程标识符;
将用于处置所述客户端请求的所述处理线程保持在使来自所述流服务器的写响应消息待决的空闲状态;
响应于接收来自所述流服务器的包括流处理结果和所述线程标识符的写响应消息,将由所述线程标识符指定的所述处理线程返回至活动状态;以及
通过所述返回连接向所述客户端发送包括所述流处理结果的客户端响应。
21.根据权利要求20所述的***,其中所述处理器还被配置成执行可执行操作,包括:
在所述服务器请求内包括所述客户端请求的至少一部分。
22.根据权利要求21所述的***,其中所述处理器还被配置成执行可执行操作,包括:
根据所述线程标识符从多个空闲处理线程中选择将要返回到活动状态的所述处理线程。
23.一种用于使用流处理对请求进行响应的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,具有以其体现的计算机可读程序代码,所述计算机可读程序代码包括:
被配置成从服务器接收服务器请求的计算机可读程序代码,其中所述服务器被配置成响应于客户端请求而生成所述服务器请求;
被配置成生成与所述服务器请求相关联的请求标识符的计算机可读程序代码;
被配置成响应于所述服务器请求而向第一流处理节点发送从所述服务器请求导出的流处理请求的计算机可读程序代码,并且其中所述流处理请求包括所述请求标识符;
被配置成响应于接收来自第二流处理节点的包括流处理结果和所述请求标识符的创建响应消息、而使所述流处理结果与所述服务器请求相关的计算机可读程序代码;以及
被配置成向所述服务器发送包括所述流处理结果的写响应消息的计算机可读程序代码。
24.根据权利要求23所述的计算机程序产品,其中所述计算机可读程序代码还包括:
被配置成在所述第一流处理节点和所述第二流处理节点之间传播所述流处理请求的计算机可读程序代码,其中处置流处理请求的每个流处理节点贡献部分响应。
25.根据权利要求23所述的计算机程序产品,其中所述服务器请求包括客户端上下文信息,其中所述计算机可读程序代码还包括:
被配置成通过从所述客户端上下文信息生成所述请求标识符来使所述流处理请求与所述服务器请求相关的计算机可读程序代码;以及
被配置成与所述客户端上下文信息相关联地存储所述请求标识符的计算机可读程序代码。
CN201280040235.2A 2011-08-18 2012-08-20 一种使用流处理对请求进行响应的方法和*** Active CN103733568B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/212,538 2011-08-18
US13/212,538 US8655955B2 (en) 2011-08-18 2011-08-18 Stream processing using a client-server architecture
PCT/CA2012/050568 WO2013023306A1 (en) 2011-08-18 2012-08-20 Stream processing using a client-server architecture

Publications (2)

Publication Number Publication Date
CN103733568A true CN103733568A (zh) 2014-04-16
CN103733568B CN103733568B (zh) 2017-04-12

Family

ID=47713421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280040235.2A Active CN103733568B (zh) 2011-08-18 2012-08-20 一种使用流处理对请求进行响应的方法和***

Country Status (5)

Country Link
US (7) US8655955B2 (zh)
CN (1) CN103733568B (zh)
DE (1) DE112012002631T5 (zh)
GB (1) GB2508123B (zh)
WO (1) WO2013023306A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182361A (zh) * 2014-08-20 2014-12-03 北京国双科技有限公司 数据缓存处理方法及装置
US9043382B2 (en) 2011-08-18 2015-05-26 International Business Machines Corporation Stream processing using a client-server architecture
CN108540503A (zh) * 2018-07-20 2018-09-14 深圳市网心科技有限公司 一种数据交互方法及相关装置
CN109074377A (zh) * 2016-03-29 2018-12-21 亚马逊科技公司 用于实时处理数据流的受管理功能执行
CN110268388A (zh) * 2017-01-30 2019-09-20 微软技术许可有限责任公司 推迟对远程对象的调用请求
CN110968739A (zh) * 2018-09-28 2020-04-07 传线网络科技(上海)有限公司 资源请求方法及装置
CN113726836A (zh) * 2020-11-16 2021-11-30 北京沃东天骏信息技术有限公司 信息应答方法、装置、设备和计算机可读介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268609B2 (en) * 2013-04-30 2016-02-23 Hewlett Packard Enterprise Development Lp Application thread to cache assignment
EP2863307A1 (en) * 2013-06-19 2015-04-22 Hitachi Data Systems Engineering UK Limited Decentralized distributed computing system
JP6106043B2 (ja) * 2013-07-25 2017-03-29 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US9021296B1 (en) 2013-10-18 2015-04-28 Hitachi Data Systems Engineering UK Limited Independent data integrity and redundancy recovery in a storage system
US20150271044A1 (en) * 2014-03-24 2015-09-24 International Business Machines Corporation Browser response optimization
US9075670B1 (en) 2014-08-01 2015-07-07 Pivotal Software, Inc. Stream processing with context data affinity
US9300712B2 (en) * 2014-08-01 2016-03-29 Pivotal Software, Inc. Stream processing with context data affinity
US9953006B2 (en) * 2015-06-23 2018-04-24 International Business Machines Corporation Lock-free processing of stateless protocols over RDMA
CN105306959B (zh) * 2015-10-24 2018-08-21 广东医群科技有限公司 一种低延时网络自适应直播***
US10387670B2 (en) 2016-09-21 2019-08-20 International Business Machines Corporation Handling sensitive data in an application using external processing
CN107465767B (zh) * 2017-09-29 2020-06-23 网宿科技股份有限公司 一种数据同步的方法和***
CN110955461B (zh) * 2019-11-22 2024-01-12 北京达佳互联信息技术有限公司 计算任务的处理方法、装置、***、服务器和存储介质
CN110933171A (zh) * 2019-11-29 2020-03-27 北京浪潮数据技术有限公司 一种服务器异步通信方法、装置、设备及计算机存储介质
CN113438520B (zh) * 2021-06-29 2023-01-03 北京奇艺世纪科技有限公司 数据处理方法、装置及***
JP2023025969A (ja) 2021-08-11 2023-02-24 富士通株式会社 情報処理方法、および情報処理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070171921A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
US20070280157A1 (en) * 2006-06-05 2007-12-06 Samsung Electronics Co., Ltd. Data slot allocation method used to transmit uncompressed AV data, and method and apparatus for transmitting uncompressed AV data
CN101682748A (zh) * 2006-05-18 2010-03-24 杰显通***公司 多数据流的互连机制
CN101686136A (zh) * 2008-09-23 2010-03-31 中兴通讯股份有限公司 网络编码的连接管理方法
CN101909335A (zh) * 2004-03-12 2010-12-08 诺基亚公司 在无线通信***中提供服务质量支持的方法和设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8276164B2 (en) * 2007-05-03 2012-09-25 Apple Inc. Data parallel computing on multiple processors
US8321579B2 (en) * 2007-07-26 2012-11-27 International Business Machines Corporation System and method for analyzing streams and counting stream items on multi-core processors
US8677003B1 (en) * 2007-10-11 2014-03-18 Liveops, Inc. Distributed processing of streaming data on an event protocol
US8732236B2 (en) * 2008-12-05 2014-05-20 Social Communications Company Managing network communications between network nodes and stream transport protocol
US8478874B2 (en) * 2008-01-09 2013-07-02 International Business Machines Corporation System and method for composition of stream processing service environments
CN101983366B (zh) * 2008-03-30 2014-02-12 科瑞尔森思有限公司 用于在多线程多层计算机化环境中跟踪请求的装置和方法
US20100205611A1 (en) 2009-02-12 2010-08-12 Scalable Analytics, Inc. System and method for parallel stream processing
US8285780B2 (en) * 2010-06-01 2012-10-09 International Business Machines Corporation State sharing in a distributed data stream processing system
US8655955B2 (en) 2011-08-18 2014-02-18 International Business Machines Corporation Stream processing using a client-server architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101909335A (zh) * 2004-03-12 2010-12-08 诺基亚公司 在无线通信***中提供服务质量支持的方法和设备
US20070171921A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
CN101682748A (zh) * 2006-05-18 2010-03-24 杰显通***公司 多数据流的互连机制
US20070280157A1 (en) * 2006-06-05 2007-12-06 Samsung Electronics Co., Ltd. Data slot allocation method used to transmit uncompressed AV data, and method and apparatus for transmitting uncompressed AV data
CN101686136A (zh) * 2008-09-23 2010-03-31 中兴通讯股份有限公司 网络编码的连接管理方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043382B2 (en) 2011-08-18 2015-05-26 International Business Machines Corporation Stream processing using a client-server architecture
US9043383B2 (en) 2011-08-18 2015-05-26 International Business Machines Corporation Stream processing using a client-server architecture
US9191463B2 (en) 2011-08-18 2015-11-17 International Business Machines Corporation Stream processing using a client-server architecture
US9277030B2 (en) 2011-08-18 2016-03-01 International Business Machines Corporation Stream processing using a client-server architecture
US9800691B2 (en) 2011-08-18 2017-10-24 International Business Machines Corporation Stream processing using a client-server architecture
CN104182361A (zh) * 2014-08-20 2014-12-03 北京国双科技有限公司 数据缓存处理方法及装置
CN109074377A (zh) * 2016-03-29 2018-12-21 亚马逊科技公司 用于实时处理数据流的受管理功能执行
CN109074377B (zh) * 2016-03-29 2024-04-16 亚马逊科技公司 用于实时处理数据流的受管理功能执行
CN110268388B (zh) * 2017-01-30 2023-06-20 微软技术许可有限责任公司 推迟对远程对象的调用请求
CN110268388A (zh) * 2017-01-30 2019-09-20 微软技术许可有限责任公司 推迟对远程对象的调用请求
CN108540503A (zh) * 2018-07-20 2018-09-14 深圳市网心科技有限公司 一种数据交互方法及相关装置
CN110968739A (zh) * 2018-09-28 2020-04-07 传线网络科技(上海)有限公司 资源请求方法及装置
CN113726836A (zh) * 2020-11-16 2021-11-30 北京沃东天骏信息技术有限公司 信息应答方法、装置、设备和计算机可读介质

Also Published As

Publication number Publication date
DE112012002631T5 (de) 2014-04-17
GB2508123B (en) 2014-10-15
US8655955B2 (en) 2014-02-18
GB201404461D0 (en) 2014-04-30
GB2508123A8 (en) 2014-06-11
US20160055034A1 (en) 2016-02-25
CN103733568B (zh) 2017-04-12
US9191463B2 (en) 2015-11-17
US8655956B2 (en) 2014-02-18
US9277030B2 (en) 2016-03-01
US20140115045A1 (en) 2014-04-24
US20140115044A1 (en) 2014-04-24
US20130046859A1 (en) 2013-02-21
US9043382B2 (en) 2015-05-26
US20140115046A1 (en) 2014-04-24
US20140115043A1 (en) 2014-04-24
GB2508123A (en) 2014-05-21
US9043383B2 (en) 2015-05-26
WO2013023306A1 (en) 2013-02-21
US20130046811A1 (en) 2013-02-21
US9800691B2 (en) 2017-10-24

Similar Documents

Publication Publication Date Title
CN103733568A (zh) 使用客户端-服务器架构的流处理
KR102015071B1 (ko) 음성 활성 데이터 패킷의 데이터 구조 풀링
US9215203B2 (en) System and method for efficient unified messaging system support for speech-to-text service
CN101156407A (zh) 用于计划的下载服务的***结构和方法
US20170302760A1 (en) Web based system using events and pushed web content to interact with remote users for notifications and data collections
CN102833272A (zh) 一种基于用户订阅的下载方法及装置
CN102291629A (zh) 一种应用于iptv的p2p代理点播***及实现方法
CN115622906A (zh) 一种应用日志抓取***及方法
CN113609168B (zh) 数据导出方法、装置、终端以及可读存储介质
US20140068006A1 (en) Method, apparatus and system for providing content
US10540669B2 (en) Managing object values and resource consumption
US9742832B2 (en) Transmission apparatus, transmission method, computer-readable storage medium storing transmission program, and relay system
CN115103039B (zh) 一种报文数据处理方法、装置、智能设备及存储介质
CN115378792B (zh) 告警处理方法、装置及存储介质
JP2007140951A (ja) データ編集装置とそのプログラム
US11868382B1 (en) Software utility toolbox for client devices
WO2018184509A1 (zh) 一种数据处理的方法和装置
CN118093772A (zh) 运单信息查询方法、装置、电子设备及存储介质
CN118113494A (zh) 任务分发方法、装置、设备、存储介质和程序产品
CN117221830A (zh) 消息播报方法、装置、设备、存储介质和程序产品
CN116800832A (zh) 信息推送方法、***、设备及存储介质
CN115186020A (zh) 一种数据接入存储处理方法、***及存储介质
CN117675930A (zh) 请求处理***、方法、装置、计算机设备和存储介质
US20120254294A1 (en) Mainframe Web Client Servlet
JP2004171492A (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
GR01 Patent grant
GR01 Patent grant