CN103081430A - 用于过滤流数据的方法和装置 - Google Patents

用于过滤流数据的方法和装置 Download PDF

Info

Publication number
CN103081430A
CN103081430A CN2010800687998A CN201080068799A CN103081430A CN 103081430 A CN103081430 A CN 103081430A CN 2010800687998 A CN2010800687998 A CN 2010800687998A CN 201080068799 A CN201080068799 A CN 201080068799A CN 103081430 A CN103081430 A CN 103081430A
Authority
CN
China
Prior art keywords
rule
filter
action
operator
processor
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
CN2010800687998A
Other languages
English (en)
Other versions
CN103081430B (zh
Inventor
R·E·诺顿
L-R·波里尔-博舍曼
R·埃鲁
J·L·C·M·拉瓦利埃
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.)
Vantrix Corp
Original Assignee
Vantrix 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 Vantrix Corp filed Critical Vantrix Corp
Publication of CN103081430A publication Critical patent/CN103081430A/zh
Application granted granted Critical
Publication of CN103081430B publication Critical patent/CN103081430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3075Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/435Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

一种多个内容类型的数据容器的内容过滤的方法基于对每个内容类型生成编码的过滤器的集合和编码的规则的集合。每个编码的过滤器表示为来自用户指定的运算符中的各个运算符,并且两个运算数包括内容描述符和描述符标准。过滤器具有二元状态,并且规则可基于一个过滤器或多个选择的过滤器。一种实现该方法的装置具有:用户接口,用于接收用户定义的配置数据;配置模块,用于对于每个内容类型生成编码的过滤器的集合和编码的规则的集合;网络接口,用于接收来自网络的数据容器和向网络发送过滤的数据容器;和过滤模块,用于对接收的数据容器应用规则。

Description

用于过滤流数据的方法和装置
技术领域
本发明涉及不同内容类型的多个组件的数据容器的内容过滤,更具体地,涉及用于基于多个互相关联的规则进行内容过滤的方法和装置。
背景技术
在传输包含不同内容类型的数据的数据流的网络中,可能期望检查数据流,以确定是否必须进行内容修改以确保兼容于接收器功能、下游传输容量、或任意其他限制。也可能期望进行内容修改,以通过采用改变编码方法的数据转码或改变编码速率的转率(trans-rating)来增强网络吞吐量。除了内容检查和潜在的修改之外,其他内容管理特征可包括通信数据的个性化以及向接收器提供关于数据内容的可用信息,或者甚至是通信路径的条件。
内容类型可包括视频信号、音频信号、静止图像、动画、或文本。适于不同内容类型的修改可基于不同标准。此外,应用于一个内容类型的修改可基于多个互相关联的条件,对内容管理的处理提出了挑战性任务。因此,需要一种装置,用于有效地处理内容管理和促进实时的、基本瞬时的内容检查,以及在需要时用于内容修改。
发明内容
本发明的目的在于在提供多媒体服务的网络中提供一种内容过滤设施。另一目的在于将内容过滤设施与内容适配设施合并。
根据一个方面,本发明提供一种用于数据流过滤的装置。该装置包括处理器和存储处理器可读指令的存储器设备。该设备被组织在用户接口、配置模块、网络接口、和过滤模块中。用户接口从用户接收数据内容的集合、描述符的标准的集合、运算符的集合、过滤器定义的集合、和规则定义的集合。
配置模块包括存储器设备,存储使得第一处理器执行以下步骤的指令:生成编码的过滤器和编码的规则。编码的过滤器基于过滤器定义。过滤器定义指定运算符和两个运算数,一个是内容描述符,另一个是描述符标准。过滤器具有二元状态。编码的规则基于规则定义。规则定义指定选择的过滤器的布尔函数。每个编码的规则具有根据选择的过滤器的每个的二元状态确定的二元结果。规则可定义为一个过滤器。在由过滤模块访问的存储器设备中存储编码的规则、编码的过滤器、和描述符定义。
该装置还包括动作存储器设备,用于存储动作的集合,其中每个动作实现为使得处理器执行数据流的数据容器的对应编辑功能的处理器可读指令。该装置还包括描述存储器设备,用于存储动作描述的集合,其中每个动作描述包含在所述动作的集合中对应动作的自然语言描述。
网络接口接收来自网络的数据流,将数据流指向可修改数据流的过滤模块,并通过网络向各个目的地发送数据流。
该过滤模块包括指令存储器,存储使得第二处理器执行以下步骤的指令:从所述数据流提取数据容器和将每个数据容器解析成组件。对每个数据容器的每个组件,过滤模块确定内容类型,并选择相关编码的规则和各个编码的过滤器。过滤模块确定内容的每个描述符的值,评价选择的编码的过滤器和选择的编码的规则,并根据选择的编码的规则的值执行动作。该指令存储器还可存储使得第二处理器执行以下步骤的指令:从描述存储器设备读取在数据容器上执行的每个动作的描述;和在数据容器中插入每个动作的描述。
将规则相互关联,这样,配置模块可布置编码的规则,用于在过滤模块中进行适当的顺序评价。可将规则布置在规则树或分层的规则层中。
根据另一方面,本发明提供一种用于数据容器的内容过滤的装置。该设备包括数据存储器设备和指令存储器设备。第一数据存储器存储配置数据,包括内容类型的集合、内容描述符的集合、描述符的标准的集合、和运算符的集合。第一指令存储器存储处理器可读指令,使得第一处理器提示用户定义过滤器的集合、规则的集合,并选择应用规则的顺序。根据内容类型、内容描述符、描述符标准、和运算符来定义每个过滤器。规则可表示为两个或更多个过滤器的布尔函数。然而,规则可基于一个过滤器。
第二指令存储器存储处理器可读指令,使得第二处理器将每个数据容器解析成组件,确定每个组件的内容类型,和对所述每个组件应用各个组的排序规则。
第一指令存储器存储处理器可读指令,使得第一处理器在至少一个规则树中布置规则,每个规则树具有不同数目个规则和不同数目个动作。每个规则解出两个状态“0”和“1”之一,并得到两个动作之一。至少一个规则进行至两个后继规则之一。
第一指令存储器存储处理器可读指令,使得第一处理器提示用户为每个规则指定两个动作和两个后继规则以跟随每个规则,其中至少一个规则具有空后继规则。所述指令还包括使得第一处理器将规则的集合分类成多个层,其中层中的规则彼此独立,并且超过第一层的层的规则取决于任意先前层的规则。
该设备还包括用户接口,具有存储器设备,存储处理器可读指令,其使得所述第一处理器执行以下步骤:显示所述内容描述符的集合、所述标准的集合、和所述运算符,以促进定义所述过滤器的集合;显示所述编码的过滤器的集合,以促进定义所述规则的集合;和显示所述编码的规则的集合,以促进选择训练所述编码的规则的所述顺序。
根据另一方面,本发明提供一种数据容器的内容过滤的方法。该方法包括采用至少一个处理器和存储器设备。该方法包括以下步骤:接收用户的输入,和基于用户的输入为每个内容类型生成编码的过滤器的集合和编码的规则的集合。
用户的输入包括内容类型、内容描述符、描述符的标准、过滤器、和规则的定义。每个编码的过滤器表示为来自用户指定的运算符中的各个运算符,并且两个运算数包括内容描述符和描述符标准。过滤器具有二元状态。规则可基于一个一个过滤器或多个选择的过滤器。在后者的情况下,规则表示为选择的过滤器的二元状态的用户指定函数。
该方法还包括以下步骤:从网络接收具有不同内容类型的组件的数据容器;对每个组件确定各个内容类型;和向所述每个组件分配与所述各个内容类型相关的各个规则的集合。
该方法还包括:接收动作的集合,每个动作呈现为处理器可执行指令的集合;接收在所述动作的集合中由所述规则的集合的个体规则执行的动作的标识。
该方法还包括:接收动作描述的集合,每个动作描述对应于所述动作的集合中的动作并包含各个动作的自然语言描述;和在描述存储器设备中存储所述动作描述的集合。
该方法还包括:从所述规则的各个集合确定所选规则的值;执行与所述所选规则的值对应的动作;从所述描述存储器设备读取所述动作的描述;和在所述数据容器中插入所述描述。
一个实施例中,该方法包括以下步骤:获取所述内容类型的用户定义优先级;根据各个内容类型的优先级顺序将所述组件分类以生成分类的组件;和按顺序过滤所述分类的组件。应用对组件的内容类型特定的选择的规则集合。另一实施例中,该方法还包括以下步骤:同时过滤所述组件,并将所述过滤的组件组合在一个数据流中。
附图说明
现在将参考附图举例描述本发明的实施例,在附图中:
图1图示了根据本发明的实施例的用于过滤和适配通过网络传送的数据容器的网络支持服务控制器和编辑引擎;
图2图示了根据本发明的实施例的包括控制器和代码转换器的编辑引擎;
图3图示了根据本发明的实施例的多媒体容器、容器组件的内容描述符和内容过滤器;
图4图示了根据本发明的实施例的与可应用于数据容器的规则的集合相关联的布尔表达的代数形式;
图5图示了根据本发明的实施例的内容过滤过程的基本组件;
图6图示了根据本发明的实施例的导出容器内容的描述符的过程;
图7图示了根据本发明的实施例的用于内容过滤的系统;
图8图示了根据本发明的实施例的与图7的系统类似的适于具有多个组件的容器的系统;
图9详述了根据本发明的实施例的内容过滤过程;
图10图示了根据本发明的实施例的估计规则的布尔表达的方法;
图11图示了根据本发明的实施例的用于编码过滤规则的第一示例性规则树结构;
图12图示了用于编码图11的规则树结构的第一数据结构;
图13图示了根据本发明的实施例的用于编码过滤规则的第二示例性规则树结构;
图14图示了应用于图13的第二示例性规则树的图12的第一数据结构;
图15图示了根据本发明的实施例的应用图12和图14例示的第一数据结构的过程;
图16图示了根据本发明的实施例的用于编码规则树的第二数据结构;
图17图示了根据本发明的实施例的应用图16中例示的第二数据结构的过程;
图18图示了根据本发明的实施例的使用规则树来确定规则结果的过程;
图19详述了根据本发明的实施例的形成与图18的过程相关联的叶向量的步骤;
图20图示了根据本发明的实施例的预处理用于快速运行时间规则执行的布尔表达的方法;
图21图示了图20的方法的示例性实现;
图22图示了根据本发明的实施例的与过滤器定义和规则定义相关的数据的处理;
图23图示了顺序过滤多媒体容器的组件的过程;
图24图示了根据本发明的实施例的应用用于内容过滤的多个规则的过程;
图25图示了根据本发明的实施例的图示确定内容过滤动作的规则的互相依赖性的图;
图26图示了根据本发明的实施例的图2的引擎的操作管理器的模块;
图27图示了根据本发明的实施例的图2的代码转换器的模块;
图28图示了根据本发明的实施例的图2的引擎的代码转换器的模块;
图29提供根据本发明的实施例的用于过滤数据流的方法的概括,所述数据流被构成为数据容器,其中每个数据容器可包含不同内容类型的组件。
图30图示了图29中的方法中使用的过滤器、规则、和动作的相互关联;
图31图示了根据本发明的实施例的用于实施图29的方法的设备;
图32图示了图31的设备的细节;
图33图示了根据本发明的实施例的用于生成按预定顺序布置的编码的规则的示例性设备;
图34图示了根据本发明的实施例的使用图33的设备生成的编码的规则来处理不同内容类型的多个组件的数据容器示例性设备;
图35图示了根据本发明的实施例的使用图33的设备生成的编码的规则来并行处理数据容器的多个组件的示例性设备;
图36图示了图35的设备的变形;
图37图示了根据本发明的实施例的采用4个过滤模块的示例性装置,其每个过滤模块配置为处理任意特定内容类型的组件;
图38图示了根据本发明的实施例的用于图37的装置的控制系统;
图39图示了根据本发明的实施例的用于过滤数据容器的装置;
图40图示了根据本发明的实施例的按完整规则树的形式由图33的设备生成的编码的规则的布置,其中规则具有二元结果,并跟随两个动作之一和两个其他规则之一,其中每个叶规则是不具有后继规则和不需要动作的空规则;
图41图示了遍历图40的规则树的两个路径;
图42图示了从图40的完整规则树导出的不完整规则树,其中一个规则随后是有效规则和空规则;
图43图示了根据本发明的实施例的表示完整规则树的规范数据结构,其中使用空项来适配不完整规则树;
图44图示了根据本发明的实施例的由图33的配置设备生成的编码的规则的布置,其中规则层中的规则彼此独立,并且超过第一规则层的层的规则取决于先前规则层的规则;
图45图示了图44的多个层布置的中间层的第一规则,该第一规则得到两个动作之一并由两个其他规则之一后继,最后层中的第二规则得到两个动作之一但不具有后继规则;
图46图示了根据本发明的实施例的具有多个规则记录的示例性用户指定的规则继承表,每个规则记录指示具有“假”或“真”的二元结果的当前规则,动作和后继规则对应于每个结果,用于分类将图33的配置设生成的编码的规则分类在多个规则层中;
图47图示了与图46的规则继承表对应的规则图;
图48是图示根据本发明的实施例的将图33的配置设备生成的编码的规则分类在图44的多个规则层中的一般性方法的流程图;
图49是图示根据本发明的实施例的图48的方法的示例性方案的流程图;
图50图示了对于图46的示例性规则继承表的图48的方法,以及图49的方案;
图51图示了类似于图46的继承表的用户指定的规则继承表,但是其中一个规则记录中的后继规则用空规则替换;
图52图示了对图51的规则继承表应用图48的方法,以及图49的方案;
图53图示了根据图51的规则继承表的处理规则的顺序的实例;和
图54图示了根据图51的规则继承表的处理规则的顺序的另一实例。
具体实施方式
术语
多媒体服务(MMS):该术语用于通俗地表示多内容通信服务,其中通过网络在终端当中交换诸如文本、音频信号、视频信号、图像、呈现等的不同形式的信息内容。从一个终端传输到另一终端的编码信息通常被布置在单个数据流中,并且时间交织段对应于不同的信息内容。
容器:容器是存储在计算机可读介质上并且通过计算机网络传送的计算机文件。容器被构造成包含各种类型的数据。容器可以支持具有同步信息的多个文本、音频和视频流以使得能够协调回放各种流。
容器组件:容器包括分段,每个分段包括以特定形式编码的数据,诸如文本、音频数据、图像数据或视频数据。术语“容器组件”指的是在一个分段中的数据。容器组件可以被简称为“组件”。在多媒体消息系统中,组件也被称为“媒体”。
容器筛选:“容器筛选”指的是检查容器的内容的过程,包括所有组件,以确保没有任何不想要的插入,尤其是有害的插入。
容器适配:“容器适配”指的是修改发现的容器组件的形式以与各自的接收器的解码能力兼容的过程。如果呈现容器组件以适合接收器不可行,则可以删除容器组件。容器适配过程是接收器特定的,而容器筛选的过程独立于希望接收器的类型。
容器编辑:术语“容器编辑”指的是容器筛选和容器适配的组合过程。
容器调节:该术语可以与“容器编辑”同义地使用。然而,即使当没有修改容器时,容器调节也向容器附加了适当的通知。
代码转换器:代码转换器是执行编码信息的直接数字到数字转换的设备,以使得能够以适合特定接收器的不同格式来再现一个格式的信息记录。
图1图示了提供从传送设备120到接收设备160的路径的网络140,在下文中称为传送器120和接收器160。除了许多不同类型的其它硬件终端设备,网络140支持服务控制器103和编辑引擎106。传送器120发送容器到接收器160,其中容器可以包括诸如编码文本、音频信号、静止图像、动画(图像的快速显示)以及视频信号的不同内容类型的数据。容器可以被导向服务控制器103,其进而将容器导向用于检查该容器的编辑引擎106以及在需要时编辑该容器的内容。编辑过程包括数据筛选以确保没有任何不想要的插入,尤其是有害插入,满足具体要求的内容修改,以及与各自接收器的解码能力兼容的内容适配。
图2图示了编辑引擎106。网络接口210通过链路204从客户端接收容器。容器被导向到分别标识为240(1),240(2),…,240(m)的m>1个控制器240中的一个。控制器204可以被实现为不同的硬件实体或将如下所述的共享主管多个代码转换器280的计算设备。控制器240是协议特定的,每个被编程以处理根据相应协议形成的容器。处理特定协议的控制器被认为具有相同控制器类型。控制器可以分组成控制器组,每个控制器组处理根据相同协议规划的容器。编辑引擎106可以具有不同类型的控制器。然而,整个编辑引擎106可以被配置成具有相同类型的控制器。编辑引擎106也可以具有负载平衡模块290。
编辑引擎106包括多个代码转换器280,分别标识为280(1)、280(2),…,280(n)。代码转换器280的主要功能是执行编码信息的直接数字到数字转换,以使得能够以适于特定接收器的不同格式来再现一个格式的信息记录。然而,代码转换器还可以执行内容过滤以及内容适配的过程。多个选择的代码转换器280被分配到每个控制器240,一起形成控制配件。例如,在图2中,控制器240(1)和代码转换器280(1)至280(5)形成了安装在各自的计算设备上的一个控制配件。控制器240(m)和代码转换器280(n-2)至280(n)形成了安装在另一计算设备上的另一控制配件。控制配件优选地安装在也被称为“刀片服务器”服务器单元上,它是支持处理器和存储设备的单个电路板。
处理器220托管网络接口210,并且操作管理器230还被称为操作控制器。网络接口210从通信地耦合到网络140的客户端接收容器(图1)。操作管理器230包括存储在计算机可读存储介质中的计算机可读指令,用于执行操作、管理和维护功能。
服务控制器103可以接收容器,并且向编辑引擎106中的一个发送容器编辑请求。
处理器220还托管图形用户接口(未示出),它包括存储在计算机可读存储介质中的计算机可读指令,耦合到操作管理器230,用于输入编码的规则的阵列并且用于向每个控制器240分配代码转换器的各自的子集。配置存储设备260存储分配到每个控制器的代码转换器的标识符。
控制内容过滤过程的规则可以被存储为存储在每个代码转换器280可访问的规则存储器225中的共同规则文件。替代地,托管控制器和关联代码转换器的每个计算设备(服务器单元)可以存储规则文件的相关子集。
图3图示了具有分别标识为320(1)、320(2)等的多个组件320的容器。组件320可以包含文本、音频记录、编码图像、视频记录和任何其它内容类型。使用分别标识为332(1)、332(2)、…332(j)和332(D)的描述符332的集合330来表征组件的内容。D是描述符的总数目。根据诸如内容类型、标识符(名称)、扩展、数字签名、密码功能、优先级和文件大小的若干属性来定义内容描述符。因为内容过滤要求随着多媒体电信的演进技术而变化,所以可以添加或删除描述符。
根据本发明的实施例,容器组件的内容的特性被表示为二元变量的集合,每个二元变量确定内容是否满足特定准则。通过检查容器的内容来确定接收到的容器的内容描述符的值。因此,执行该功能的代码转换器知道所接收到的容器的格式以及规划容器所根据的协议的暗示。通过将运算符344应用于两个运算数来确定表征二元变量的值;内容描述符(342)的值和相对应的准则346由内容过滤系统的安装者(用户)输入。运算符344和两个运算数342和346据称形成过滤器340(也被称为内容条件或简化条件)。因此,容器组件的内容的特征在于过滤器的集合,每个过滤器具有值“真”或“假”。
在为适合接收器而适配之前编辑容器是基于规则的集合的,每个规则确定编辑动作,诸如删除整个内容、删除在内容中发现的恶意插入、或移除内容的附加。规则是过滤器的各自子集的函数。已经选择过滤器是二元变量,定义规则的函数优选被规划为过滤器子集的布尔表达。因此,用于内容过滤的系统的安装者(用户)(如将针对图7和图8更详细描述的)通过过滤器的子集、布尔表达以及根据执行布尔表达的结果而执行的动作定义了规则。
图4图示了与可应用于数据容器的组件的存储在规则阵列420中的四个规则集合相关联的布尔表达的代数形式。相同的规则集合还可应用于规则过滤器的至少一个其它组件。
通过一个过滤器(大小>30000)来定义第一规则,规则-1,其中内容描述符是组件的大小,运算符是“大于”并且准则是30000(附图标记440)。如果规则结果是布尔“真”,则各自的动作是放弃组件并且终止用于考虑中的组件的剩余规则的处理。
通过两个过滤器(大小>5000)并且(族≠消息)的布尔表达450来定义第二规则,规则-2。第一过滤器的描述符是“大小”,准则是“5000”,并且运算符是“大于”。第二过滤器的描述符是“族”,准则是“消息”,并且运算符是“不等于”。布尔表达包含单个运算符“或”。与规则-2相关联的动作与规则-1的动作相同。
通过三个过滤器:(大小>25000)、(内容-类型=图像/wbmp)并且(内容-类型=图像/png)的布尔表达460来定义第三规则,规则-3。第一过滤器的描述符是“大小”,准则是“25000”,并且运算符是“大于”。第二过滤器的描述符是“内容-类型”,准则是“图像/wbmp”,并且运算符是“等于”。第三过滤器的描述符是“内容-类型”,准则是“图像/png”,并且运算符是“等于”。布尔表达包含两个运算符“与”和“或”。规则-3的动作与规则-1的动作相同。注意到,“wbmp”指的是无线位图(无线应用协议、WAP、图形格式),并且“png”指的是“便携式网络图形”。
通过一个过滤器(族=消息)来定义第四规则,规则-4,其中描述符的内容是“族”,准则是“消息”并且运算符是“等于”(附图标记470)。
图5图示了合并在图2的操作管理器230中并且包括用户接口520、用于获取过滤器定义的过滤器创建模块530、用于获取规则定义的规则构造模块540、用于存储过滤器定义的存储分隔550以及用于存储规则定义(规则结构)的存储分隔560的数据获取子系统的基本组件。用户接口520使得安装者(用户)能够提供输入数据512,以定义过滤器的集合和规则的集合。过滤器创建模块530包括存储在计算机可读存储介质中的计算机可读指令,计算机可读指令当被执行时使处理器提示安装者输入内容描述符定义、用于每个定义的准则以及运算符。根据接收到的容器的内容来确定描述符的值。
规则构造模块540包含存储在计算机可读存储介质中的计算机可读指令,当执行计算机可读指令时,计算机可读指令当被执行时使处理器提示安装者输入用于每个规则的布尔表达,并且从预定义的动作的集合中选择动作。计算机可读指令还使处理器解析布尔表达并且确定表达的执行方面的序列。
过滤器定义被存储在存储设备的存储分隔550中,并且规则定义被存储在同一存储设备或另一其它存储设备的存储分隔560中。
图6图示了使用存储在存储分隔550中的内容描述符的定义来确定接收到的容器612的内容描述符的值的过程。在步骤620中解析所接收到的容器612,以标识容器的组件。在步骤640中分析每个组件,并且在步骤650中将结果与从存储分隔550中读取的内容描述符定义配对。
图7图示了根据本发明的实施例的用于内容过滤的系统的整体组织。存储器710存储用于所有相关过滤器的数据。通过来自由图5的模块530确定的运算符的集合740的运算符来定义每个过滤器,在图6的步骤650中确定来自内容描述符720的内容描述符,并且在图5的模块530中确定来自描述符的集合730的描述符准则。每个过滤器的二元值(“真”或“假”)被存储在存储设备750中,用于在执行图5的模块540中定义的规则的集合中使用。
通过过滤器子集、布尔表达和动作的来定义每个规则。存储器770存储根据系统安装者(用户)输入在图5的模块540中确定的编码的布尔表达。存储器760存储在每个规则和各自的布尔表达中使用的过滤器的标识符。存储器780存储由于估计布尔表达的各自的结果而将执行的编辑动作的指示。每个布尔表达的执行产生二元结果以及各自的编辑动作。一旦完成了编辑动作,则将已编辑的内容放置在存储器790中。
尽管图7图示了根据本发明的实施例的当应用于一个组件时用于内容过滤的系统,但是图8图示了当应用于k>1容器组件时用于图7的内容过滤的系统。存储设备810存储k个容器组件中的每个的所有相关过滤器的数据。与每个过滤器有关的数据分别被标识为812(1)至812(k)。容器的组件被顺序地处理。对于考虑中的组件,应用每个过滤器的运算符的结果被保持在存储器850中。N>1个编码的布尔表达的集合被存储在存储器864中。布尔表达被分别标识为870(1)至870(N),每个与来自被分别标识为880(1)至880(N)的N个编辑动作的各自的编辑动作相关联。
图9图示了内容过滤的示例性过程。用于图7或图8的内容过滤的系统的安装者(用户)已经初始定义了分别标识为920(1)至920(5)的五个内容描述符,分别标识为922(1)至922(8)的八个描述符准则、以及分别标识为924(1)至924(4)的四个运算符。安装者已经定义了分别标识为930(1)至930(12)的十二个过滤器,每个过滤器指定内容描述符920中的一个、准则922中的一个以及运算符924中的一个。如在图6的步骤650中描述的,一旦确定了五个内容描述符920(1)至920(5)的值,确定了十二个过滤器的二元值。
安装者已经定义了分别标识为950(1)至950(6)的六个布尔表达,其中每个布尔表达与12个过滤器的子集相关联。例如,布尔表达950(2)与过滤器930(2)、930(8)和930(11)相关联。安装者定义了分别标识为960(1)至960(4)的四个动作。然后,安装者使用图5的规则构造模块540来定义分别标识为940(1)至940(9)的九个规则。每个规则与单个布尔表达950和单个动作960相关联。例如,规则940(1)指定布尔表达950(2)和动作960(2),而规则940(9)指定布尔表达950(5)和动作960(4)。
规则可以基于一个过滤器,其中该规则的结果是过滤器的二元值。例如,规则940(7)仅取决于过滤器930(11)。
布尔表达表示
用于图7或图8的内容过滤的系统的安装者可以根据常规代数句法或根据树结构来提供布尔表达950。图5的用户接口520包括用于以代数形式编码布尔表达的第一模块(未示出)以及用于编码作为树结构呈现的布尔表达的第二模块(未示出)。两个模块中的每个提供了各自的模板,以使得安装者能够正确地指定布尔表达。
布尔表达包括简单操作、复合操作和复杂操作。简单操作被展现为运算符和两个运算数,该运算符和运算数由两个分隔符(诸如两个括号)来定界。运算符和运算数可以以任何顺序列出,并且两个分隔符不需要彼此区分。两个运算符是表示两个过滤器的布尔变量。复合操作包括运算符和两个简单操作,该运算符和两个简单操作由两个分隔符来定界。复杂操作包括运算符和两个操作,所有都由两个分隔符来定界,其中两个操作中的任一个可以是简单操作或复合操作。构成复杂操作的两个操作还可以是复杂操作。简单操作、复合操作或复杂操作的分隔符可以相同。
图10图示了根据本发明的实施例的估计布尔表达的方法,这要求仅识别和执行简单操作。根据该方法,解析编码的布尔表达以标识简单操作。标识的简单操作的运算符被应用于各自的运算数(过滤器)以产生“真”或“假”的二元值(例如,表示为“1”或“0”)。已标识的简单操作、因此处理的运算符、运算数和两个分隔符被删除并且被运算的结果取代。该过程递归地继续,直到已编码的布尔表达减少到单个简单操作,其结果变为布尔表达的结果。
在图10的步骤1012中,检查布尔表达以标识简单操作。如果发现了简单操作(步骤1014),则步骤1016执行简单操作并产生二元值。步骤1018用二元值来取代简单操作的运算符、运算数和分隔符。然后,再次访问步骤1012以在减少的布尔结构中寻找另一简单操作。如果步骤1014确定在布尔表达的当前形式中没有发现进一步的简单操作,则步骤1020检查当前形式以确定它是否已经真正减少到单个二元值(“真”、“假”或“1”、“0”)。如果是,则步骤1022报告单个二元值作为执行布尔表达的结果。如果步骤1020确定已处理的布尔表达包含不止单个二元值,则步骤1024报告尚未正确地形成布尔表达的指示。
图10的过程优选地在数据输入期间执行,使得用户(安装者)可以纠正布尔表达。用户接口520或编辑引擎的某个其它组件可以被提供有计算机指令以分析错误地形成的布尔表达并分析错误。
根据本发明的实施例的编码和估计布尔表达的替代方法以来布尔表达的图形树表示。图11中图示了示例性规则树1100,图11图示了标识为过滤器1至过滤器6的六个运算数(六个过滤器)的布尔表达,每个是树的叶。标记为θ1、θ2和θ3的三个运算符定义了三个操作{过滤器1,θ1,过滤器2}、{过滤器3,θ2,过滤器4}和{过滤器4,θ3,过滤器6}。每个运算符的中间后继者被定义。例如,θ1、θ2和θ3的后继者分别是运算符θ5、θ4和θ4,并且运算符θ4和θ5的后继者分别是θ5和“空”。具有“空”后继者的运算符产生布尔表达的结果。
运算符θ1产生二元输出B1,它是运算符θ5的运算数。运算符θ2产生二元输出B2,它是运算符θ4的运算数。运算符θ3产生二元输出B3,它是运算符θ4的另一运算数。运算符θ4产生二元输出B4,它是运算符θ5的另一运算数。运算符θ5产生二元输出B*,它是由树表示的布尔表达的结果。
图12图示了用于表示图11的规则树1100的模板阵列1230。模板阵列1230的索引1220如图12所示从0到19变化。模板阵列1230被划分成等于运算符总数目的多个记录(在图11的示例性树中为五个),每个记录对应于运算符并且表示具有两个运算数的简单操作。在处理了考虑中的容器之后已知过滤器的二元值。因此,记录包括各自的过滤器、运算符定义和针对与中间后继运算符相对应的另一记录的指针的索引。“空”指针指示当前记录是要处理的最后记录。用户可以以任何顺序输入记录,并且在图5的用户接口520内的模块(未示出)重新组织记录,使得可以顺序地处理记录,并且当处理任何记录时,已经确定了各自的运算数的值。
如图12所示,前三个记录对应于可应用于形成树的叶的六个过滤器的运算数θ1、θ2和θ3。第一记录的指针π(1)指向保持运算符θ1的二元结果B(1)的阵列的索引16。第二记录的指针π(2)指向保持运算符θ2的二元结果B(2)的阵列的索引12。第三记录的指针π(3)指向保持运算符θ3的二元结果B(3)的阵列的索引13。因此,当到达第四记录时,已经计算了两个运算数B(2)和B(3)。运算符θ4的二元结果B(4)被写入位置π(4)=17。因此,当到达第五记录时,已经知道各自的两个运算数B(1)和B(4)。运算符θ4的二元输出是布尔表达的结果,因为运算数θ4没有后继者(即,空后继者)。
图12中还图示了模板阵列1230的示例性激活。根据图6的过程确定的过滤器1至过滤器6的值分别是“真”、“假”、“真”、“假”“真”和“真”。布尔运算符1648θ1至θ5由用户分别指定为“与”、“或”、“与”、“与”、和“异或”。由于运算符θ4(“异或”)具有空后继者,所以运算符“XOR”产生二元输出,该二元输出是布尔表达的结果。
图13图示了与标记为L1至L11的十一个叶(过滤器)的布尔表达相对应的第二示例性规则树1300,并且图14图示了应用于图13的规则树的模板阵列1430,类似于图12的模板阵列1230,索引1420的范围从0至43。规则树1300包括标记为θ2至θ11的十个运算符。第一叶L1是运算符θ11的运算数,它没有后继者。对于一致性,表示规则树1300的图14的模板阵列1430的第一记录(在图14中标记为记录1)概念上被查看,以包括运算数L1以及“不关注”运算数φ和许可非存在运算符θ1,它传送L1的值作为后继者运算符θ11的运算数。如本领域所已知的,分配给运算数φ的“不关注”值可以方便地是“真”状态或“假”状态。剩余的十个记录,模板阵列1430的记录2至记录11,对应于运算符θ2至θ11。在图14的模板阵列1430中每个条目L1、L2至L11是过滤器的索引。如上所述,参照图12,与图5的用户接口相关联的输入组织模块522布置记录,使得可以顺序地处理记录,每个记录已经确定了运算数。
图15总结了使用模板阵列1230(图12)或1430(图14)的树编码方法。在步骤1520中,创建了具有多个记录的模板,每个记录对应于树中的节点。每个记录包括含有两个过滤器的索引、当前运算符和指向与当前运算符的后继者相对应的后继者记录的指针的四个字段。在步骤1530中,根据图6的过程确定的过滤器的列表准备用于考虑中的容器。在步骤1540中,顺序地处理树模板的记录。每个记录的运算数通过对过滤器的列表编索引来获取。各自的运算符被应用于运算数,并且二元值被放置在后继者记录的运算数字段中。在步骤1550中,最后的记录的运算符的结果被呈现为由树表示的布尔表达。
图16图示了根据本发明的实施例的表示规则树结构的替代方法。与规则相关的过滤器(条件)集合基于如先前所述的内容描述符、描述符准则和过滤器运算符来定义。过滤器集合的定义被存储在过滤器定义阵列。布尔运算符1648的集合被定义具有被指定空后继者的一个运算符以及被指定来自运算符的集合的后继者的每个其它运算符。过滤器形成树的叶并且被划分成过滤器的子集,其中子集的过滤器形成了来自布尔运算符1648的集合当中的布尔运算符1648的运算数。注意到,如果过滤器的每个子集包括两个过滤器,则布尔运算符1648的总数目等于过滤器的总数目减去1。
考虑M个过滤器的集合,M>1,形成了包括N个叶记录1622的叶向量1620的模板;1<N<M。每个叶记录包括来自运算符的集合当中的叶运算符和过滤器的各自的子集。在安装阶段,每个叶记录1622包括运算符和过滤器定义阵列中的运算数(过滤器)的索引。每个叶记录1622的过滤器的值被确定用于各个容器组件。
形成了具有等于N个数目的叶记录的多个节点记录1642的节点向量1640。每个节点记录1642具有节点运算符字段1648和节点状态1644节点状态1644字段1644。在安装阶段,节点记录1642为空,不包含数据。在叶记录的处理期间初始地确定节点记录1642的布尔运算符1648和节点状态1644。N个节点记录1642可以以任何顺序来布置。然而,方便的是,假设节点记录1642初始具有与叶记录的一对一对应关系。因此,节点记录1642(j)的布尔运算符是叶记录1622(j),1≤j≤N的后继者布尔运算符。
一旦确定了过滤器的值,就将每个叶运算符应用于各自的过滤器(各自的二元条件),并且将结果放置在节点记录1642的节点状态字段1644中。将每个叶运算符1628的后继者放置在节点记录的节点运算符字段1648中。
在处理了所有叶记录1622(在图16的实例中为1622(1)至1622(6))之后,处理节点记录1642(在图16的实例中为1642(1)至1642(6))。然后标识在此被称为连接节点记录的具有共同运算符的特定节点记录。然后,将共同运算符应用于所有连接节点记录的节点状态以产生新的状态。从连接的节点记录中选择的节点记录的运算符字段被共同运算符的后继者取代,并且所选择的节点记录的节点状态字段被刚确定的新的状态取代。从节点向量中删除剩余的连接节点记录。因此,通过用组合的节点记录取代连接节点记录的每个集合,减少了在节点向量中的节点记录的数目。标识连接节点记录的过程继续递归,直到节点向量仅包含一个节点记录。在剩余的一个节点记录的运算符字段中应用布尔运算符的结果是估计布尔表达的结果。最后的节点记录的布尔运算符具有空后继者。
图16图示了用于编码图13的示例性树的规则树的递归规则构造1600,它表示形成树的叶的十一个过滤器的布尔表达。叶(过滤器)被标记为L1至L11。在图13的树中,叶L1与任何其它叶都不相关联。为了一致性,叶L1人工地与叶φ相关联,它与其共享被动运算符θ1。插入的叶φ被分配了“不关注”值。如本领域中已知的,“不关注”值可以方便地分配“真”状态或“假”状态。
由用户来定义布尔运算符θ2至θ11的集合。运算符θ2至θ6与叶记录相关联,而运算符θ7至θ11与节点记录相关联。运算符θ11具有空后继者,并且每个其它运算符θ2至θ10具有来自运算符θ7至θ11的集合的后继者,如图16的列表1610所图示的。
叶向量1620包括分配了放置在运算符字段1624(1)至1624(6)中的运算符θ1至θ6的六个记录1622,分别被标识为1622(1)至1622(6),相对应运算数的索引被放置在运算数字段1626(1)至1626(12)中。在六个叶记录的运算数字段中的运算数是{φ,L1}、{L2,L3}、{L4,L5}、{L6,L7}、{L8,L9}和{L10,L11}。
当确定了二元值时(图5和图6),处理叶记录1622。从叶记录1622(1)开始,人工被动运算符θ1仅将L1的值传递到节点记录1642(1)的节点状态字段。作为θ1的后继者的运算符θ11被放置在节点记录1642(1)的运算符字段中。然后,处理第二叶记录1622(2),其中将运算符θ2应用于级别L2和L3(过滤器L2和L3)以产生要放置在节点记录1642(2)的节点状态字段中的二元值B2。作为运算符θ9的运算符θ2后继者被放置在节点记录1622(2)的运算符字段中。该过程继续直到确定了所有节点记录1642(1)至1642(6)。
该过程仅使用节点向量1640来递归地继续;不再需要叶向量1620。在节点1642(1)中的运算符θ11在节点向量1640(1)中不配对。因此,节点记录1642(1)保持不变。类似地,节点记录1642(2)保持不变,因为节点记录1642中的任何一个都不包括运算符θ9。节点记录1642(3)和1642(4)具有取代B3的共同运算符θ7,它被应用于运算数B3和B4以产生要在节点记录1642(3)的节点状态字段中放置的二元结果B7。作为θ9的运算符θ7的后继者运算符被放置在记录1642(3)的运算符字段中,取代θ7。删除了现在在新的组合记录1642(3)中占用的节点记录1642(4)。类似地,节点记录1642(5)和1642(6)被组合在具有运算符θ8的后继者运算符θ10以及通过将共同运算符θ8应用于运算数B5和B6确定的节点状态B8的新的节点记录中。节点向量1640现在缩减成通过附图标记1640(2)标识的四个节点记录。节点记录1640(2)简单地重写节点记录1640(1)。
该过程递归地继续,组合了节点记录1642(2)和1642(3)以产生新组合的节点记录1642(2)同时节点记录1642(1)和1642(4)保持不变;两个不变的节点记录现在是在减少的节点向量1640(3)中的记录1642(1)和1642(3)。
节点记录1642(2)和1642(3)具有共同运算符θ10。运算符θ10被应用于运算数B9和B8以产生放置在节点记录1642(2)的节点状态字段中的新状态B10。运算符θ10的后继者运算符θ11被放置在节点记录1642(2)的节点运算符字段中。节点记录1642(1)和1642(2)的节点记录的共同运算符θ11被应用于运算数B1和B10以产生布尔表达的输出B*。
图17图示了使用图16的叶向量模板1620和节点向量模板1640来确定规则树的输出的过程。在步骤1720中,确定了表征考虑中的数据内容的布尔条件(布尔过滤器L2至L11)的集合。在步骤1722中,形成了具有N>1个叶记录1622的叶向量1620。每个叶记录1622包括布尔运算符字段1624和用于布尔条件(过滤器L2至L11的子集)的子集的字段。在步骤1724中,形成了N个节点记录1642的节点向量1640。每个节点记录1642包括布尔运算符字段1644和节点状态字段1648。在步骤1726中,每个叶运算符被应用于从如上参照图5和图6描述的内容数据的特性确定的布尔条件(布尔过滤器)的各自的子集。二元结果被放置在选择的节点记录1642的节点状态字段中。在步骤1728中,每个叶运算符的后继者被放置在所选择的节点记录的运算符字段中。在步骤1730中,用组合的记录来取代具有共同运算符的节点记录,因此减少了节点向量1640的节点记录1642的数目。在步骤1732中,共同运算符被应用于所取代的节点记录的节点状态,并且二元结果被放置在所组合的记录的运算符字段中。在步骤1734中,从图16的列表1610确定的共同运算符的后继者被放置在所组合的节点记录的运算符字段中。在步骤1736中,如果剩余节点记录的数目大于1,则重新访问步骤1730以继续组合共同运算符的节点记录的过程。如果剩余记录的数目是1,则剩余节点记录的运算符被应用于节点记录的节点状态,并且该结果确定是否需要执行编辑动作(步骤1740)。
图18是详述图17的过程的流程图。在步骤1820中,为了在图19中详细描述,规划了叶向量1620。顺序地考虑叶记录1622(1)至1622(N)。在步骤1824中,索引j被设置成等于0。如果步骤1826确定要处理更多的叶记录,则步骤1828将索引j增加1并且获取与当前叶记录的叶索引相对应的叶集合(过滤器集合),并且步骤1830获取当前叶记录的运算符θ(θ1至θ6中的一个)。步骤1832将该运算符应用于所获取的叶集合,从而产生二元输出B。在步骤1834中,从图16的列表1610确定后继者S(θ)。
节点向量1640的节点状态字段和运算符字段在此被标记为U(j)、V(j),1≤j≤N,即,U(j)和V(j)定义节点记录1642(j),1≤j≤N。在步骤1836中,B的值被放置在节点向量1640的节点状态字段U(j)中,并且S(θ)的值被放置在节点向量1640的运算符字段V(j)中。当处理了所有叶记录1622(1)至1622(N)时,索引j等于叶记录N的数目,并且节点向量1640的每个节点记录1642具有各自的节点运算符和节点状态。在步骤1840中,节点向量1640的节点记录1642的当前数目v被设置成等于j(它等于N)。在步骤1842中,如果节点记录v的当前数目大于1,则节点向量被扫描以收集具有相同运算符的所有节点记录1642并且组合这样的记录。在扫描之前,节点记录的当前数目v*=v被注意(步骤1843)以使得能够检测节点记录的数目的变化。在步骤1844中,索引k被设置成等于零,并且步骤1846记录节点记录1642(k)的运算符θ=V(k)。步骤1848检查节点向量1640的后续节点记录以标识具有相同运算符θ的后续节点记录的数目μ。如果所标识的后续节点记录的数目μ是零(步骤1850),则在步骤1852中索引k增加1,并且如果索引k小于节点记录的当前数目v,则重新访问步骤1846。否则,步骤1856收集相同运算符θ的节点记录的(μ+1)个运算数,并且将运算符θ应用到(μ+1)个运算数以确定组合的节点记录的新状态B。在步骤1860中,删除了后续μ个标识的节点记录,并且步骤1862在节点记录1642(k)的节点状态字段U(k)中插入新状态B,并且在节点记录1642(k)的运算符字段V(k)中插入后继者运算符S(θ)。在步骤1864中,剩余节点记录的数目被确定为(v-μ)。在步骤1864之后应用了步骤1852和1854,以确定节点向量1640是否包含进一步的共同运算符的节点记录。如果步骤1854确定k小于v,则继续从步骤1846扫描节点向量。否则,如果步骤1854确定k=v(k无法超过v),则步骤1855确保v的当前值(在步骤1864中最后更新的)小于先前的值v*。否则,在步骤1880中报告错误。注意到,如果用户提供的布尔表达的表示不正确,则不满足步骤1855的要求v<v*。如果v<v*,则步骤1855之后是步骤1842。如果步骤1842确定剩余节点记录的数目是1,则剩余节点记录的运算符被应用于各自的运算数,以确定状态B*(步骤1890),其确定各自的编辑动作。
图19详述了规划图16的叶向量1620的图18的步骤1820。在步骤1920中,规划了过滤器(条件)的集合,并且在步骤1922中,基于如上参照图5和图6描述的用户输入确定了叶运算符。叶运算符被顺序应用以生成相对应的叶记录1622。如果步骤1924确定还没有应用所述至少一个运算符,则步骤1926向叶向量添加新的叶记录1622。步骤1928选择剩余运算符中的一个,并且步骤1930向叶记录的运算数字段1624添加相关联的过滤器。重复步骤1930,直到步骤1932确定属于所选择的运算符的所有过滤器已经被包括在当前叶记录1622中。当完成了当前叶记录1622时,如在步骤1932中确定的,重新访问步骤1924。当步骤1924确定已经考虑了所有的叶运算符,则将完成的叶向量1620呈现给图18的步骤1824。
图20图示了预先计算过滤器集合的每个值的布尔表达的二元值的方法。过滤器的集合通过具有含有与过滤器的一对一对应关系的多个比特的比特字符串来表示,使得在该字符串中的每个比特对应于一个过滤器。利用μ>1个过滤器,字符串包含μ个比特,并且假设值的范围从0到2μ-1。在步骤2012中,设置了开始字符串值0(μ个比特都被设置成零),并且具有2μ个条目的规则向量的每个条目被初始化成“0”。在步骤2014中,使用如参照图10、15或17描述的方法中的一个来估计布尔表达。在步骤2016中,二元结果(“真”、“假”)被存储在与字符串(0到2μ-1)的当前值相对应的位置处的规则向量中。在步骤2018中,字符串值通过添加1而增加。当步骤2030确定字符串的μ个比特中的每个具有值0时,完成了规则向量的生成(步骤2040)。注意到,μ个比特中的每个具有值“1”的字符串对应于规则向量的第2μ-1条目,并且在步骤2018中添加1将字符串重新设置成μ个零。替代地,字符串可以具有(μ+1)个比特,最高有效位用于指示完成了规则向量生成。然后,规则向量可以用于直接确定运行时布尔表达的二元值,因此增加了内容过滤系统的吞吐量。
总之,过滤数据容器的方法然后包括以下步骤:
(1)定义过滤器(二元条件)的集合,其中每个过滤器是选择的内容的描述符和各自的描述符的准则的函数。
(2)定义规则的集合,每个规则指定布尔表达以及相应的内容过滤动作。
(3)一次考虑一个布尔表达。
(4)考虑μ个过滤器(二元条件)的布尔表达。过滤器被表示为μ个比特的字符串,μ>1。
(5)估计该字符串的2μ个值中的每个的布尔表达,以产生2μ个条目的规则向量,每个条目是与该字符串的2μ个值中的一个相对应的内容度量的状态。
(6)对所有布尔表达重复步骤(5)。
(7)接收和解析数据容器。
(8)选择规则和根据数据容器的内容确定所指定的已选择的规则的μ个过滤器的值。
(9)对于所选择的规则相对应的规则向量编索引,并且确定与由μ个比特的字符串确定的索引相对应的规则向量中的条目的值。
(10)根据条目的值执行内容过滤动作。
(11)如果需要将新规则应用于所接收到的容器,则重复步骤(8)至(10)。
图21图示了用于执行标记为L1、L2、L3和L4的四个过滤器的集合(μ=4)的布尔表达的规则的规则向量。过滤器的集合通过四个比特的字符串来表示。布尔表达被估计用于范围从“0000”至“1111”的该字符串的16个值2112中的每个,以产生与该字符串的字符串值j,0≤j≤μ相对应的标记为“真”或“假”的二元输出2114(j)。
一旦接收到容器,则检查容器组件的内容以确定图21中考虑的用于该规则的四个过滤器的集合。如果例如四个过滤器的集合具有值“1”、“0”、“0”和“1”,产生“1001”的字符串2140,则直接从二元规则向量2114的位置9(二元数1001)读取布尔表达的值。
通过图21的示例性图示,图20的方法适合采用适度数目的运算数(过滤器)的布尔表达的规则。例如,利用8个过滤器,二元规则向量2114将相对短,仅具有256比特。如果布尔表达具有不止16个运算数,则例如,它可以优选地每当需要时估计布尔表达而不是存储大的二元规则向量。超过16的每个布尔表达的运算数的数目可以不同。
图22图示了与过滤器定义和规则定义相关的数据条目的过程。该过程开始于确定是否已经创建了规则文件(步骤2220)。如果还没有创建规则文件,则步骤2222使用本领域已知的常规方法来创建文件。下一步骤是向规则文件添加规则。在步骤2224中开始填充或更新规则文件。步骤2224打开规则文件并且将该过程导向步骤2226,它提示用户指示是否要编码新规则并将新规则添加到规则文件。填充或更新规则文件由用户来终止(步骤2228)。如果要添加更多的规则,则放置在用户接口520(图5)中的数据获取模块(未示出)或在操作、管理和维护模块230中创建规则模板(步骤2230)。规则模板可以可选地采取多种形式中的一种,这由用户来决定。规则模板的形式取决于:(1)要顺序地还是根据等级顺序来应用由用户指定的规则;以及(2)要以代数分析形式还是以树结构格式来输入规则的布尔表达,在树结构中,树的节点表示运算符和各自的运算数。在任一情况下,数据获取模块可以提供具有方便数据输入的指令的各自的模板。例如,数据获取模块可以通过提示用户输入简单的操作来引导用户构造代数形式的布尔表达,每个操作包括运算符和运算数的集合,然后进行到想要的表达。可以通过分别添加新运算符来验证所构造的表达的有效性。如果布尔表达被呈现为树结构,则数据获取模块可以显示通用树结构,它可以当用户输入与选择的树的节点相关的数据时被修整和验证。
在步骤2232中,提供了以任何合适格式编码的规则标识符。在步骤2234中,指定了规则动作,并且步骤2240定义了与规则相关联的布尔表达。根据相关联的布尔表达的值来应用特定规则的规则动作。步骤2240包括步骤2242、2244、2246、2248、2250、2252和2260。步骤2242如图3所示创建了附图标记为340的过滤器模板。步骤2244设置了过滤器的类型,它可以是考虑中的容器的内容的多个描述符中的一个。步骤2246设置过滤器的运算符,它可以从一元运算符、二元运算符、算术运算符、比较运算符、逻辑运算符、设置运算符和用户定义的运算符的菜单中选择。步骤2248设置了过滤器的准则,它是与在步骤2244中选择的描述符相关的目标值或阈值。步骤2250提示用户定义用于该规则的新的过滤器或继续定义要应用于目前为止指定的过滤器的集合的布尔表达。为了添加另一过滤器,重新访问步骤2242至2248,直到在步骤2250中用户确定所有相关的过滤器都存在。步骤2252提示用户输入根据上述格式中的一个的布尔表达。注意到,规则可以仅基于一个过滤器,如图9所示,在这种情况下,布尔表达缩减成被动运算符,它仅适用一个过滤器的值以确定是否要应用在步骤2234中指定的规则工作。
步骤2260将刚构造的规则附加到在步骤2224中打开的规则文件。注意到,一旦处理了接收到的容器,则在“运行时间”要确定因此构造的每个规则的过滤器的值。编码的规则包括过滤器标识符,它仅是存储过滤器的阵列(未示出)的索引。
在系统安装或更新期间执行图22的过程。编码和存储在规则文件中的规则被“实时”地激活。
图23图示了顺序过滤接收到的具有多个组件的容器的组件的过程。处理用于内容过滤的容器的组件的顺序是任意的,并且可以由用户来设置。如果由于一些操作原因而对整个容器施加了整体约束,则作为结果将具有处理组件的顺序。
当控制器提示时,内容过滤的过程在步骤2320中开始(图2)。如果已经选择了要处理组件的顺序,则步骤2340确定在步骤2350是否要处理至少一个组件。否则,步骤2380结束该处理并报告结果。在步骤2360中,执行可应用于考虑中的组件的规则设置的所有规则,并且步骤2340被重新访问以确定是否需要处理另一组件。模块插入指示应用于组件的任何过滤动作的通知。
图24详述了步骤2360(图23),其中规则的集合被应用于容器的内容。步骤2360应用于容器的组件。步骤2424确定是否已经应用了整个规则集合。如果是,则步骤2480将指示由于指定规则的集合而引起的任何内容过滤动作的通知附加到容器。否则,步骤2428选择当前规则,并获取与所选择的当前规则相关联的所有相关过滤器的定义。注意到,如果一个规则的结果影响了另一规则的选择,则可以以特定顺序来布置规则。另外,如将参照图25描述的,可以通过形式图而不是简单的阵列来表示规则相互依赖性。
步骤2430执行所选择的当前规则。步骤2430包括步骤2432、2436、2440和2444。步骤2432确定是否已经激活了在步骤2428中标识的所有过滤器以确定每个过滤器的二元值。当将过滤器的运算符应用于各自的运算数以产生该过滤器的二元值时就称为激活了过滤器。如果已经激活了与当前规则相关的所有过滤器,则步骤2432将控制传输到步骤2460。否则,执行步骤2346、2440和2444以产生考虑中的过滤器的值。如参照图5和图6描述的,步骤2436基于考虑中的容器内容的特性来获取运算符和各自的运算数的值。步骤2440将运算符应用于运算数,并且步骤2444记录当前过滤器的值用于在估计当前规则的布尔表达中使用。
步骤2460根据图10、图15或图17的编码方法中的一个来获取布尔表达。步骤2464估计布尔表达。步骤2468可以将与当前规则相关联的内容过滤动作应用于服从如在步骤2464中确定的布尔表达的值的考虑中的内容的内容。在步骤2470中,如果当前规则的内容过滤动作导致删除整个容器组件,则不需要执行后续规则(如果有的话),并且步骤2360向所删除的组件附加各自的通知。如果没有编辑内容,或编辑但没有删除,则重新访问步骤2424以确定是否需要将更多的规则应用于考虑中的内容。注意到,如果具有超过特定阈值的附件,或者如果具有无法移除的恶意插入,则可以删除整个组件。
规则相互依赖性
通常,可应用于特定内容的规则可以具有补充动作、冲突动作或互斥动作。利用补充动作,内容过滤结果可以与实现规则的顺序无关。利用冲突动作或互斥动作,一个动作代替另一个。根据本发明的实施例,可以提示用户使用图形来定义规则的相互关系。
图25图示了指示标记为规则1至规则5的五个规则的等级布置的图形。规则的状态在此被定义为由于执行规则的布尔表达而产生的二元值。
规则1的“真”状态导致标记为“动作1”的动作,之后,认为完成了步骤2360。“动作1”可以需要两个相反极性中的一个;第一个是因为它太大或不能修复而删除整个组件,或因为它太短以致不能包含恶意插入而确定组件是可接受的。规则1的“假”状态指示内容通过第一测试并且应当进行规则2的第二测试。
规则2的“真”状态导致后面是实现规则5的标记为“动作2”的动作。规则2的“假”状态指示内容通过第二测试并且应当进行规则3的第三测试等等。如果规则4的状态是“假”,则该过程在没有编辑内容的情况下结束。该过程还可以在(仅)实现一个的情况下结束:{动作1}、{动作2和动作5}、{动作3}和{动作5}。
图26图示了由操作管理器230使用的在下面列出的模块。每个模块包括存储在计算机可读存储介质中的计算机可读指令。
(1)服务器单元配置模块2610,用于配置服务器单元以接受根据指定的协议形成的多媒体数据容器。
(2)负载平衡模块2612,用于在同样配置的服务器单元当中公平地分发多媒体数据容器以处理共同类型的数据容器。
(3)过滤器定义模块2614,用于从用户获取过滤器集合的定义,每个过滤器指定内容描述符、描述符准则和运算符的定义。
(4)布尔表达获取模块2616,用于使得用户能够根据代数句法来提供布尔表达。
(5)布尔表达获取模块2618,用于使得用户能够以树结构的形式来提供布尔表达。
(6)布尔表达获取模块2620,用于使得用户能够通过编辑和修整通用树的图形来输入布尔表达,其中树的每个节点表示运算符和各自的运算数集合。
(7)规则构造模块2622,用于从用户获取内容过滤规则的集合,每个规则指定过滤器和过滤动作的子集的布尔表达。
(8)规则验证模块2624,用于验证针对规则指定的布尔表达的正确性。
(9)规则布置模块2626,用于以由规则执行的特定过滤动作排除至少一个后续规则的执行所根据的顺序来布置规则。
(10)规则互依赖性模块2628,用于提示用户以给定规则的各自的布尔表达的值为条件来指定给定规则的连续规则。
(11)规则图形定义模块2630,用于以形式图的形式来呈现内容过滤规则的集合(图25)。
(12)规则优化模块2632,用于使用常规逻辑优化技术来优化每个规则的布尔表达,以最小化处理努力。
(13)规则预处理模块2634,用于选择特定规则,每个规则实行最多包括预设数目的过滤器的过滤器子集;对特定规则中的每个估计用于过滤器的子集的所有的值的过滤器子集的布尔表达,以产生2m个比特的阵列,m>1是过滤器子集中的过滤器的数目;以及将比特的阵列存储在存储设备中(图20和21)。
(14)分类模块2636,用于将容器分类成容器类型,每个容器类型对应于在源处规划的容器所根据的协议;以及从多个控制器当中将特定类型的容器导向特定控制器。分类模块2636可以与网络接口210或操作管理器230相关联。
图27图示了根据本发明的实施例的由代码转换器280使用的在下面列出的模块。每个模块包括存储在计算机可读存储介质中的计算机可读指令。
(a)模块2710,用于表征多媒体数据容器的每个组件的内容,确定内容描述符,应用运算符以及确定过滤器的状态。
(b)模块2720,用于布尔表达的运行时间估计并且确定规则的二元输出。可以根据代数句法或作为树结构来呈现布尔表达。
(c)模块2730,用于执行与服从于各自规则的布尔表达的预设值的给定容器内容相关的过滤动作。
图28图示了根据本发明的实施例的包括代码转换器服务模块2810、程序寄存器2820和程序存储器2840的代码转换器280。代码转换器服务模块包括存储在计算机可读存储介质中的计算机可读指令,当执行计算机可读指令时,使得处理器的核心:从多个控制器中的特定控制器接收特定容器和编辑请求;选择和执行与编辑请求相关的程序;以及将结果返回特定控制器。程序寄存器包括计算机可读指令,当执行计算机可读指令时,使得处理器根据各自的功能来组织程序;以及用各自的新的程序来取代现有程序。
控制器240(图2)将编辑请求转发到代码转换器280。一旦接收到编辑请求2850,则代码转换器服务模块2810标识使用包含在编辑请求中的信息执行的插件程序。代码转换器服务模块2810执行所选择的插件程序并且将结果返回各自的控制器240。
“插件”在此被定义为设计成执行特定任务的自包含的模块。程序存储器2840包括存储在计算机可读存储介质中的计算机可读指令,并且包括两种类型的插件:
(a)初始加载的驻留插件2842;以及
(b)动态加载的外部插件2844,外部插件可以取代驻留插件。
驻留插件提供了基本的功能,并且外部插件提供了附加功能,内容过滤和病毒扫描时这样的功能的两个例子。
插件被注册到程序寄存器2820,程序寄存器2820管理插件注册和接入。程序寄存器2820基于它们的特性来组织插件。插件可以布置在插件组中。
插件程序以预定义的方式来组织插件的执行。从确定用于预定义的具有特定目标的插件集合的执行逻辑的简单的指令集合来构建插件程序。
接下来呈现使用插件的简单程序的指令的例子。
(01)   OnErrorGoto TERMINATION_PLUGIN
(02)   Execute DEFAULT_SETUP_INITIAL_PROFILE
(03)   Execute DEFAULT_SETUP_SESSION
(04)   Execute DEFAULT_PRE_PROCESS_DECODE_PLUGIN
(05)   ExecuteGroup GROUP_HOT_PIPELINE_DUAL_LOAD_AROUND_CREATE
(06)   Execute DEFAULT_TRANSFORMER_PLUGIN
(07)   Execute DEFAULT_CREATOR_PLUGIN
(08)   ExecuteGroup GROUP_HOT_PIPELINE_CREATOR
(09)   ExecuteGroup GROUP_HOT_PIPELINE_DUAL_LOAD_AROUND_CREATE
(10)   Execute DEFAULT_CHARGE_DATA_RECORD_PLUGIN
(11)   Execute DEFAULT_OPTIMISER_PLUGIN
(12)   ExecuteGroup GROUP_HOT_PIPELINE_ANALYSER
(13)   Execute DEFAULT_ENCODE_PLUGIN
(14)   Label TERMINATION_PLUGIN
(15)   Execute DEFAULT_CHARACTERIZE_PLUGIN
(16)   ExecuteGroup GROUP_HOT_PIPELINE_TERMINATOR
(17)   Execute DEFAULT_UNSETUP_SESSION
(18)   Execute DEFAULT_CHARGE_DATA_RECORD_PLUGIN
注意到,引入左边的数目仅是便于参考并且不一定构成指令的一部分。
每个“执行(Excute)”命令具有作为总是表示驻留插件名称的变量的插件的名称。因为外部插件是可选的,所以从未通过名称来直接参考外部插件,并且因此仅当存在时才执行外部插件。每个“ExecuteGroup”命令具有作为变量的插件组的名称。命令“Execute Group”执行属于该组的所有插件。
行1声明在任何错误时程序跳转到行14并且继续执行行15至18。行2和3执行要完成的适配的设置;如果需要,行4执行输入的解码,例如,如果输入是电子邮件,则将它分解成它的子组件;行5和行9执行内容过滤插件所属于的插件组。因此,如果存在,则它在行5开始执行并且在行9终止;行6和行7分别用于执行创建适配管线所必需的设置操作并且实际创建它。适配管线包含要执行的操作的集合以执行所要求的适配;行8意指执行在执行之前对适配管线有影响的外部插件;行10提供将参与适配的输入组件的详情。行18对输出组件执行类似的任务。这样的信息可以被分析用于报告、付费和与适配功能不一定相关的其它目的;行11执行适配管线优化;行12执行在它的执行之前执行适配管线的分析和优化的任何外部插件;行13执行适配管线;行15表征由于执行适配管线而生成的输出组件;行16执行对生成的输出组件具有影响的任何外部插件;以及行17执行完成适配的附加步骤(诸如提供详细的适配记录)。
规则被永久存储在“规则文件”中。规则文件可以应用到不止一个控制器。使用规则文件的内容过滤器将包含在规则文件中的规则应用于媒体(内容)。如果给定规则估计成“真”,则执行相对应的动作。动作可以包括移除诸如病毒(包括移动特定的病毒)的不想要的内容;移除特定类型的媒体(诸如游戏);使用第三方应用对媒体执行动作(诸如扫描病毒媒体)。然而,特定类型的内容可以未经处理地通过。
在操作管理器230中完成规则的定义(图2)。在代码转换器280中完成用于影响内容编辑(过滤和适配)的规则的应用。一旦创建了规则文件,则用户可选地配置控制器240中的一个以将规则文件以及任何适配请求发送到它选择的代码转换器280。
动作“放弃”确保媒体不是内容适配过程的输出的一部分。动作“扫描保持”导致扫描媒体病毒。这假设安装了反病毒外部插件。媒体实际上被“标记”为“扫描病毒”,使得在执行适当插件程序时,其中执行了反病毒插件,扫描了标记为“扫描病毒”的所有媒体以寻找病毒。
下面给出了称为规则1的规则的例子。
Figure BDA00002861408200321
与规则1相关联的名称是“MaxFileSize50000”,而与该规则相对应的动作是用于移除匹配包含在规则中的过滤器(多个)的任何媒体的“放弃(Drop)”。该规则指定了两个过滤器。第一过滤器是针对文件的大小应用的“MaxFileSize”类型。过滤器运算符是“大于”,其中作为值是“50000”。第二过滤器特征在于称为“族(Family)”的类型。该过滤器针对媒体族来应用(例如,图像、音频等)。与过滤器相关联的运算符不是“不等于”并且该值是“消息”。通过使用布尔运算符“与”来组合过滤器。因此,如果文件具有大于50000的大小,并且不是族“消息”,则执行所指定的动作。
接下来描述称为规则2的另一规则:
该规则的名称是“MaxFileSize25000AndContentTypes”并且相应的动作是“放弃(Drop)”。规则2的目的是移除匹配包含在该规则中的过滤器(多个)的任何媒体。接下来呈现规则2的结构的详细描述。
●仅指定了下列过滤器
○第一过滤器
■过滤器类型是“MaxFileSize”并且针对文件的大小来应用过滤器;
■运算符是“大于”;
■值是“25000”;
○以“与”布尔过滤器运算符开始的括号
○第二过滤器
■过滤器类型是“ContentType”并且针对媒体的内容类型(等同于mimetype)来应用过滤器;
■运算符是“等于”;
■值是“图像/wbmp”
○第三过滤器:
■具有布尔过滤器运算符“或”;
■过滤器类型是“ContentType”并且针对媒体的内容类型(等同于mimetype)来应用过滤器;
■运算符是“等于”;
■值是“图像/png”
○括号关闭
因此,如果文件具有大于“25000”的大小且(具有等于“图像/wbmp”的内容类型或具有等于图像/png的内容类型),则执行在该规则中指定的动作。如果媒体是诸如电子邮件或MMS的容器,则动作可以影响媒体或任何它的附件。动作可以包括:保持(适配媒体);保持和扫描(在适配之前对媒体进行病毒扫描);放弃(在最后的消息中不包括附件);通过(没有适配媒体,使其保持未改变)。
接下来描述在共同规则文件中定义的例子规则3。
Rule Name="MaxFileSize300000"Action="Drop"
Filter Type="MaxFileSize"Operator="GreaterThan"Value=300000"
呈现了完成该共同规则文件的另一例子规则4。
Rule Name="VirusScan"Action="ScanKeep"
Filter Type="Family"Operator="Equals"Value="MESSAGE"
在这种情况下,共同规则文件包含:
●规则3,该规则3“放弃”具有大于300000的大小的所有文件;以及
●规则4,该规则4对作为消息的任何媒体执行病毒扫描。
考虑将共同规则文件应用于所有控制器并且一些控制器“X”已经定义了包含规则1和2的规则文件的情况。当向选择的代码转换器发送适配请求时,该控制器将发送包含规则1至4的被称为“RuleFile1”的规则文件。呈现了“RuleFile1”的结构。
Figure BDA00002861408200341
在提供该特征的实施例的背景下,XML用于管理在规则文件内部的规则的结构。这确保了便携性和缩放性。接下来呈现RuleFile1的XML版本。
Figure BDA00002861408200351
下面呈现了内容过滤的例子。考虑多媒体容器:
MMS特性:
名称:mms1.mms
族:消息
大小:171100
内容类型:应用/vnd.wap.multipart.mixed
附件的数目:3
MMS附件特性:
名称:image.jpg
族:图像
大小:75000
内容类型:图像/jpg
名称:image2.jpg
族:图像
大小:45000
内容类型:图像/jpg
名称:image.png
族:图像
大小:50000
内容类型:图像/png
根据下面的步骤来执行内容过滤:
●MMS通过内容过滤;
■由于媒体属于族“消息”,所以规则“VirusScan”估计成“真”;
■媒体被标记为“扫描病毒”。
●附件image.jpg通过内容过滤;
■由于媒体不是消息并且它的大小大于50000,所以规则“MaxFileSize50000”估计成“真”;
■媒体被标记为“放弃”。
●附件image2.jpg通过内容过滤;
■对于该媒体没有任何规则估计成“真”;
●第二附件image.png通过内容过滤;
■由于媒体具有大于25000的大小并且具有内容类型“图像/png”,所以对于该媒体规则“MaxFileSize25000AndContentTypes”估计成“真”;
■媒体被标记为“放弃”。
在执行了内容过滤插件之后继续插件程序。这导致通过反病毒插件来病毒扫描MMS媒体及其内容。然后,开始适配过程。考虑适配和内容过滤产生具有下列形式的输出MMS的情况。
MMS特性:
名称:mms1out.mms
族:消息
大小:25175
内容类型:应用/vnd.wap.multipart.mixed
附件的数目:2
MMS附件特性:
名称:image2.gif
族:图像
大小:24000
内容类型:图像/gif
名称:removal_notification.txt
族:文本
大小:75
内容类型:文本/明文(plain)
假设,作为内容适配的结果,适配了“image2.jpg”以输出“image2.gif”。注意到,“image.jpg”和“image.png”两者都被“放弃”并且由于应用了内容过滤动作而不是输出MMS的一部分。新媒体“removal_notification.txt”被添加到输出消息。这由于移除了“image.jpg”和“image.png”。代码转换器被设计成,一旦移除了媒体,则附接解释性文本通知。该通知意在向MMS的接收器提供对没有适配并且移除了原来在MMS中的一些媒体的解释。
以外部插件的形式在代码转换器中呈现了反病毒扫描。在这种情况下,插件架构用于向诸如McAffee或Kaspersky的第三方反病毒扫描引擎提供接口。由于具有任何外部插件,反病毒插件的存在是可选的。在插件程序级别,意指执行反病毒插件的插件程序将包含执行反病毒插件所属于的插件组的命令。
反病毒插件的执行并没有自动暗示将对媒体病毒扫描。仅在通过内容过滤标记为“扫描病毒”的媒体上执行病毒扫描。一些第三方反病毒引擎可以被安装为单独的库。其它第三方反病毒引擎可以被安装为客户端服务器。反病毒插件将以正确地与第三方反病毒引擎对接这样的方式来写入。在任何情况下,反病毒插件是代码转换器进入点以在通过内容适配的媒体上执行病毒扫描。
因此,在上述实施例中,已经提供了下列特征:(1)解析消息的能力,以便检查附件;(2)表征附件的能力,以便根据内容类型来对其过滤;以及(3)调节用户定义的、可扩展的并分级的规则集合,以确定是否需要媒体元素。
编辑动作确定怎样处理媒体附件。编辑动作可以包括下列中的一个或多个:将附件呈现给适配过程;保持附件并在呈现给适配过程之前对媒体进行病毒扫描;以及放弃附件。编辑动作可以包括调用反病毒和入侵防护软件程序。
图29提供用于过滤数据流的方法的概括。数据流被构成为数据容器,其中每个数据容器可包含不同内容类型的组件。该方法实现于计算设备中,其可以是通用计算机。
在步骤2920,用户(安装者)提供内容类型和内容描述符的定义。例如组件大小的内容描述符可以是多个内容类型通用的。例如编码方法的内容描述符可以是一个内容类型特定的。用户还提供数据过滤器的定义,其中每个过滤器具有运算符和两个运算数,其中之一是内容描述符的值,另一个是对应的标准(阈值)。运算符确定过滤器的二元状态。例如,描述符可以是组件大小,标准可以是80千字节,以及运算符可执行比较,如果组件大小小于80千字节则得到“假(false)”,否则得到“真(true)”。
用户还提供规则,其中一个规则可基于一个过滤器或多个过滤器的布尔函数。如果规则被定义为一个过滤器,则过滤器的状态变为规则的结果。如果规则基于多个过滤器,则布尔函数确定规则的二元结果。规则调用动作,其取决于规则的二元结果。一个动作可以是接受所接收的组件,编辑组件以取出不期望的内容,或重新编码组件以符合接收器的已知功能。可根据作为独立或相互关联的规则的多个规则来过滤组件。然而,似乎应用于组件的多个规则相互关联。例如,如果组件的大小超过特定阈值则第一规则可得到压缩组件,以及如果发现组件包含某些不期望的内容则第二规则可得到丢弃组件,否则保持组件。第二规则优选地首先适用。
在步骤2940,在存储器设备中安装的处理器可执行的指令使得处理器基于在步骤2920中获取的用户输入生成一组编码的过滤器和一组编码的规则。编码的规则可布置于规则树或分层的规则层中,将参照图36至48来描述。处理器可执行的指令执行由每个规则确定的动作。每个内容类型关联于编码规则的集的子集。步骤2940可周期性重复,或在出现需要时,考虑在步骤2920中获取的用户输入的更新。步骤2940实现为“离线”过程。
步骤2960对于从网络接收的数据应用过滤规则。将接收的数据容器解析成不同内容类型的组件。对于每个组件,应用对组件的内容类型指定的编码规则。可对数据容器附加为容器的任意组件执行的任意编辑动作的指示。如果编辑动作得到删除整个数据容器,则可仅向指向的接收器发送编辑动作的指示。
图30图示了具有7个过滤器3022(分别标记为3022(0)至3022(6))的过滤器集合3020、具有9个规则3032(分别标记为3032(0)至3032(8))的规则集合3030、和具有5个动作3042(分别标记为3042(1)至3042(5))的动作集合3040。动作之一可以是被动动作,在考虑下对于组件不引起任何改变。在步骤2920获取的内容描述符3010、描述符的标准3012、和运算符3014的列表在步骤2940形成编码的过滤器3022。在步骤2940确定的编码的过滤器3022和在步骤2920获取的用户定义的布尔表达3024在步骤2940形成编码的规则。过滤器3022是独立的二元变量,并且规则3032具有根据各个布尔函数从一个过滤器或从多个过滤器确定的二元值。对数据容器的组件应用的一个规则导致根据规则的二元值确定的两个动作3042之一。两个动作之一可以是被动动作。规则3032的子集可应用于一个组件,并且可导致多个动作。
图31图示了用于实施图29的方法的设备。用户接口3120接收用户输入2920,验证输入的合理性,并在必要时提示用户修改输入数据。用户输入被转发至配置模块3140,其生成处理器可读的编码的过滤器和编码的规则。响应于新用户数据项目来激励配置模块3140。配置模块3140可按至少一个规则树(将参照图36至39来描述)的形式,或在分层的规则层(将参照图40至48来描述)中分类和重新布置编码的规则。
配置模块3140的主输出是对于每个内容类型的编码的规则的集合。然而,编码的规则可适用于多个内容类型。规则的结果可以是一个过滤器的状态或多个过滤器的布尔函数。每个过滤器是内容描述符、描述符标准、和运算符的函数。在编码的过滤器中嵌入描述符标准和过滤器的运算符,并从接收的容器的内容确定描述符值。在存储器3150中存储在配置模块3140中确定的处理器可读的编码的规则和编码的过滤器,以用于过滤模块3160中。任意编码的过滤器或编码的规则可应用于不同内容类型的数据组件。存储器设备3150还存储描述符的定义。
网络接口3180从网络接收数据流,并将接收的数据提交至过滤模块3160,其从接收的数据提取数据容器,并将每个数据容器解析成具有不同内容类型的组件。确定每个组件的描述符的值,以评价编码的过滤器,并因此评价编码的规则。过滤模块3160对每个容器的组件应用编码的规则,以生成编辑的组件,其可被组装在编辑的容器中以通过网络接口3180和链路3182发送至目的地。尤其是,容器可在过滤模块3160中不经历任何改变;然而,可选地,可向容器附加编辑结果的通知。
图32图示了图31的设备的方案,其中配置模块3240和过滤模块3260代表图31的模块3140和3160的示例性方案。用户接口3120获取输入数据,包括描述符定义3222的列表、描述符的标准3226的列表、过滤器定义3232、和规则定义3234。规则可定义为各个过滤器的布尔函数。输入数据存储于存储器设备3220中。配置模块3240包括处理器3242、存储器设备3250,其存储指令的第一集合3246(标记为指令-1),使得处理器3242基于以下内容生成编码的过滤器:过滤器定义3232、描述符定义3222、描述符的标准3226、和运算符3224。编码的过滤器存储于存储器设备3245中。指令存储器设备3250还存储指令的第二集合3248(标记为指令-2),使得处理器3242使用规则定义3234和存储器设备3245中存储的第二过滤器生成编码的规则。编码的规则存储于存储器设备3255中。尤其是,存储编码的过滤器的存储器设备3245和存储编码的规则的存储器设备3255可以是共享存储器设备的分区。
过滤模块3260包括处理器3262和存储器设备3264,后者存储指令(标记为指令-3),使得处理器3262确定从网络接口模块3180接收的容器3284的内容描述符3265的值,并应用在存储器设备3255中存储的编码的规则,以生成编辑的容器3270,通过网络接口3180发送至目的地。
图33图示了图31的设备的示例性方案,其中配置模块3340代表模块3140的示例性方案。在图32的设备中,用户接口3120获取描述符定义的列表3322、描述符的标准的列表3326、过滤器运算符的列表3324、过滤器定义3332、和规则定义3334,其中规则定义可包括各个过滤器的布尔函数。此外,用户接口3120获取用户定义的规则的顺序3338,用来确定编码的规则的执行的顺序。所有用户输入存储于存储器设备3320中。配置模块3340包括处理器3342、存储器设备3350,后者存储指令的第一集合3344(标记为指令-A),使得处理器3342基于过滤器定义3332、描述符的定义3322、描述符的标准3226、和运算符3324生成编码的过滤器,并在存储器设备3345中存储编码的过滤器。存储器设备3350还存储指令的第二集合3346(标记为指令-B),使得处理器3342使用规则定义3334和存储器设备3345中存储的编码的过滤器生成编码的规则。编码的规则存储于存储器设备3355中。存储器设备3350还存储指令的第三集合3348(标记为指令-C),使得处理器3342根据用户定义的规则的顺序3338将编码的规则分类。分类的规则存储于存储器设备3358中。
为了促进定义过滤器的集合、定义规则的集合、和选择分类的顺序以及应用编码的规则,配置模块3240或3340可通过用户接口3120向用户显示相关数据。因此,与配置模块3240或3340相关的存储器设备(未示出)可通过处理器可读指令来填充,其使得处理器3242或3342执行以下步骤:显示内容描述符的集合、标准的集合、和运算符;显示编码的过滤器3245或3345的集合;和显示编码的规则3255或3355的集合。
图34图示了使用图33的配置模块生成的编码的规则来处理不同内容类型的多个组件的数据容器的过滤模块3460。过滤模块3460包括处理器3462和存储器设备3464,后者存储指令(标记为指令-D),使得处理器3462将从网络接口模块3180接收的每个容器3484解析成构成组件,根据用户指定的组件优先级顺序将组件分类,并将分类的组件存储于存储器设备3452中。所述指令还使得处理器3462执行以下步骤:使用描述符的定义3322确定每个组件的每个内容描述符的值,和将描述符的值存储于存储器设备3465中;和使用存储器设备3345中存储的编码的过滤器应用在存储器3358中存储的排序的规则,以生成编辑的容器3470,其通过网络接口3180发送至目的地。
配置模块3240或3340可包括描述存储器设备,用于存储动作描述的集合,其中每个动作描述包含动作集合中对应动作的自然语言描述。然后,过滤模块3460的指令存储器3464可存储处理器可读指令,其使得处理器3462从配置模块3340的描述存储器设备读取在数据容器上执行的每个动作的描述,并在数据容器中插入每个动作的描述。
图35图示了使用多个内容特定的过滤模块和图33的配置模块3340生成的编码的规则来并行处理数据容器的多个组件的示例性设备。图35的示例性设备具有4个内容特定的过滤模块3560,分别标记为3560-A、3560-B、3560-C、和3560-D。网络接口3180(图31)接收数据容器,并将接收的数据容器放置于缓冲器3584中。模块3588将接收的数据容器解析成组件,从预定义的内容类型的集合中对每个组件识别内容类型,并将每个组件指向各个过滤模块3560。图35图示了接收的容器的4个缓冲的组件3512-A、3512-B、3512-C、和3512-D。
每个内容特定的过滤模块3560具有对应的处理器、指令存储器、和数据存储器。过滤模块3560-A包括处理器3562-A、指令存储器3564-A、和数据存储器3580-A。过滤模块3560-B包括处理器3562-B、指令存储器(未示出)、和数据存储器(未示出)。过滤模块3560-C包括处理器3562-C、指令存储器(未示出)、和数据存储器(未示出)。过滤模块3560-D包括处理器3562-D、指令存储器3564-D、和数据存储器3580-D。
在过滤模块3560-A中处理接收的容器的组件3512-A。数据存储器3580-A对第一内容类型存储:描述符的集合3522-A;编码的过滤器的集合3545-A,每个编码的过滤器指定内容描述符、描述符标准、和运算符;和排序的规则的集合3568-A,其中规则可编码为各个过滤器的二元状态的布尔表达。在指令存储器设备3564-A中存储的指令使得处理器3562-A根据排序的规则3568-A编辑组件3512-A,以生成在缓冲器3590-A中保持的编辑的组件。
同样,组件3512-B、3512-C、和3512-D在处理第二内容类型的组件的过滤模块3560-B、处理第三内容类型的组件的3560-C、和处理第四内容类型的组件的3560-D中处理。数据存储器3580-D存储:第四内容类型的描述符3522-D的对应集合;编码的过滤器的集合3545-D,每个编码的过滤器指定内容描述符、描述符标准、和运算符;和排序规则的集合3568-D,其中规则可编码为各个过滤器的二元状态的布尔表达。在指令存储器设备3564-D中存储的指令使得处理器3562-D根据排序的规则3568-D编辑组件3512-D,以生成在缓冲器3590-D中保持的编辑的组件。多路复用器3594组合由4个过滤模块生成的编辑的组件以通过网络接口3180发送至目的地(图31)。
过滤模块3560-A、3560-B、3560-C、或3560-D的任一个可将各个规则布置在至少一个规则树中,其中每个规则具有导致两个不同动作之一,以及可选地两个其他规则之一的二元结果,将参照图40至43来描述。
用户定义的规则的顺序3338(图33)可以是规则继承记录,用于确定规则处理的分层顺序,如参照图44至54所述。
过滤模块3560-A、3560-B、3560-C、和3560-D的至少一个可在各个数据组件上执行信号处理功能。这可使用专用数字电路或模块处理器3562-A、3562-B、3562-C、和3562-D来实施,后者可执行在相关指令存储器中存储的各个指令。
每个过滤模块确定每个数据组件的特征,从确定的特征识别每个组件的描述符,确定描述符的值,并从相关的存储器设备获取对应的描述符标准。然后,确定过滤器的集合,其中每个过滤器通过确定过滤器的二元状态指定内容描述符、描述符标准、和运算符。使用过滤器的集合的二元值来确定规则的集合的值。优选地,每个规则编码为各个过滤器的二元状态的布尔表达。过滤模块根据各个规则编辑每个组件以生成编辑的组件。
在图35的设备中,将数据容器解析成不同内容类型的组件,以及将个体的组件指向各个过滤模块。然而,可期望预先检查整个容器,以确定容器是否满足某些标准,例如大小限制或从有害内容的自由度。图36图示了图35的设备的变形,其中根模块3620(具有其自身的处理器、指令存储器、和数据存储器)对整个容器应用特定规则。根模块3620可删除整个数据容器,删除组件,或删除数据容器的附件。根模块3620也可将数据容器解析成其构成组件,并确定任意组件是否需要转码以兼容于接收器的已知功能。
根模块3620存储基础规则的集合(适合于数据容器和整个数据容器的附件),和处理器可执行指令(使得根处理器执行必要的过滤功能)。
图36的设备也可包括动作存储器(未示出),其可访问根模块或内容特定过滤模块3560-A、3560-B、3560-C、和3560-D。动作存储器存储动作的集合,其中每个动作呈现为用于执行对应的编辑功能的处理器可读指令。动作存储器也可存储由规则标识符索引的指针的数组,指示与基础规则的集合的每个规则以及内容特定规则的集合的每个规则对应的动作。
根模块3620可检查接收的数据容器,并执行以下功能的一些或全部:删除附件;删除组件;在组件上执行信号处理功能;和向接收的数据容器附加通知。
图36的装置可在中央数据存储器中存储适合于规则存储器设备中的所有预定义内容类型的规则的超集和动作存储器设备中的动作的对应超集。规则和动作可编码为计算机可执行指令。特定过滤模块3560仅需要在规则的超集中存储适于特定过滤模块的规则的集合的索引,以及在动作的超集中存储与规则的集合的规则对应的动作的索引。
在图35或36的设备中,每个过滤模块应用于特定内容类型,并且过滤模块在数据容器的不同组件上同时运行。然而,期望使得每个模块按顺序处理数据容器的所有组件,并采用多个模块在不同数据容器上同时运行。由此,每个过滤模块的指令存储器设备存储对每个指定的内容类型的指令。这个方案的优点是改善的吞吐量,因为任何过滤模块可处理任意数据容器,并可在处理当前数据容器的完成之后立即处理新数据容器。图37图示了采用4个过滤模块3760(分别标识为3760-1、3760-2、3760-3、和3760-4)的示例性装置,其每个过滤模块配置为处理任意特定内容类型的组件。优选地,等同地配置4个过滤模块。
每个过滤模块3760包括模块处理器、数据存储器、指令存储器、和用于保持编辑的数据容器的缓冲器。图37中没有图示过滤模块3760-1、3760-2、3760-3、和3760-4的构成元素。数据存储器存储编码的规则。指令存储器存储处理器可执行指令,其使得模块处理器对作为整体的数据容器和数据容器的个体组件应用编码的规则,以生成编辑的数据容器。
网络接口3710接收属于多个数据流的数据容器,并在网络链路上发送编辑的数据容器。输入模块3720在输入存储器设备3722中保持接收的数据容器,并将输入存储器设备中等待的数据容器通过输入选择器3724传递至未占用的过滤模块3760-1、3760-2、3760-3、和3760-4。输出模块3730将过滤模块的缓冲器中保持的编辑的数据容器通过输出选择器3726传递至网络接口。输入选择器3724和输出选择器3726可分别实现为输入模块3720和输出模块3730的一部分。
图38图示了用于图37的装置的控制系统。控制系统包括中央处理器3810、中央数据存储器3830、和中央指令存储器3820,其存储处理器可执行指令,使得中央处理器3810执行网络接口3710、输入模块3720、和输出模块3730的功能(图37)。
中央指令存储器3820可存储输入模块指令,使得中央处理器3810向每个接收的数据容器附加标签,用于识别每个接收的容器所属于的数据流以及数据流中的循环容器号。中央指令存储器3820可存储输出模块指令,使得中央处理器使用附加的标签按对应接收的数据容器的序列顺序布置每个数据流的编辑的数据容器。
每个过滤模块3760-j,1≤j≤4具有模块处理器3862-j、模块指令存储器3864-j、和数据存储器3880-j。中央处理器3810分别通过数据存储器设备3880-1、3880-2、3880-3、和3880-4与模块处理器3862-1、3862-2、3862-3、和3862-4通信。过滤模块3760-j的指令存储器3864-j存储指令,使得对应模块处理器3862-j将编码的规则分类在内容特定规则和基于容器的规则的集合中,并进一步将内容特定规则的每个集合中的规则分类在分层的层中,如参照图44至54所述。
中央指令存储器3820也可存储输入模块指令,使得中央处理器3810将每个接收的数据容器解析成不同内容类型的构成组件,并将各个标签中每个组件的位置的指示插入在接收的数据容器中。或者,数据容器解析可通过每个过滤模块3760来实现,其存储指令,使得模块处理器3862将从输入模块传递的数据容器解析成不同内容类型的构成组件。
数据容器可包括需要减少组件大小的信号处理(例如压缩)或为了与目的地处的接收器兼容而转码的组件。这样的功能优选地在输入模块3720中执行。中央指令存储器3820可存储处理器可读指令,使得中央处理器3810识别需要信号处理的特定数据组件和应用各个信号处理功能。
数据容器可包括附件,并且可期望检查,并在必要时编辑附件。这可在输入模块3720中执行。因此,中央指令存储器3820可存储处理器可读指令,使得中央处理器3810检测接收的数据容器的附件,以及在找到附件时应用各个编码的规则。
描述存储器设备3816存储动作描述的集合,其中每个动作描述包含动作的预定义集合中对应动作的自然语言描述。中央指令存储器3820可随后存储处理器可执行指令,使得中央处理器3810从描述存储器设备3816读取在每个数据容器上执行的每个动作的描述,以及在各个数据容器中插入每个动作的描述。
图39图示了用于过滤数据容器的装置3900。该装置包括配置模块3902和过滤模块3904。配置模块3902执行配置数据的“离线”预处理。过滤模块3904“实时地”处理数据容器。
配置模块3902包括配置处理器3920、指令存储器设备3930(标记为“指令-1”)、存储编码的规则和动作的数据存储器设备3940、存储规则继承记录的存储器设备3944、存储器设备3946,用于保持存储的规则、或对分类的规则的指针、和对应动作。
将存储器设备3940划分成存储器分区3941,存储规则的集合,每个规则编码为处理器可执行指令的集合,并评价成二元值;和存储器分区3942,存储动作的集合,每个动作编码为用于编辑数据组件的处理器可执行指令的集合。
存储器设备3944存储规则继承记录的集合,每个规则继承记录对应于特定规则,并包含第一动作的指示符,并且第一后继规则对应于特定规则的“0”值;和第二动作的指示符,并且第二后继规则对应于特定规则的“1”值。
指令存储器设备3930存储处理器可读指令,使得配置处理器3920生成分类的规则和在存储器设备3946中存储分类的规则。分类的规则可布置在规则层中,其中每个规则层中的规则彼此独立,并且超过第一层的每个规则层中的规则取决于至少一个先前规则层的至少一个规则。或者,分类的规则可按规则二元树的形式呈现,对每个规则指示与规则的“0”值对应的第一动作和与规则的“1”值对应的第二动作。
过滤模块3904具有用于实时处理数据容器的过滤处理器3960、指令存储器3970(标记为“指令-2”)、用于保持从网络接收的数据容器的缓冲器3982、和用于保持根据存储器3946中存储的规则编辑的数据容器的缓冲器3984。指令存储器3970存储处理器可读指令,使得过滤处理器3960按顺序对数据容器应用分类的规则。
装置3900可采用描述存储器设备(未示出),类似于图38的存储器设备3816,用于存储动作描述的集合。指令存储器设备3970可随后存储处理器可执行指令,使得过滤处理器3960从描述存储器设备读取在每个数据容器上执行的每个动作的描述,并在数据容器中插入每个动作的描述。
图40图示了按完整规则树4000的形式由图33的配置设备生成的编码的规则的布置,其中规则具有二元结果,并跟随两个动作之一和两个其他规则之一,其中每个叶规则是不具有后继规则和不需要动作的空规则(未示出)。
对于深度d(在图40的规则树中d=3)的完整规则树,排除空规则的规则的数目μ是μ=(2d-1),并且动作的数目是规则的数目的两倍。然而,应用于任意数据组件的规则的最大数目等于d,类似地,应用于任意数据组件的动作的最大数目是d。通过标记为R0至Rμ-1的μ个规则,和标记为A1至A的2×μ个动作、规则Rj,0≤j<μ跟随有两个动作A2j+1或A2j+2之一,并且规则Rj,0≤j<(2d-1-1)=(μ-1)/2,进行至两个规则R2j+1和R2j+2之一。注意,多于一个规则可导致相同的后继规则,多个规则可得到相同动作。因此,唯一规则的数目和唯一动作的数目不必对彼此承担任何特定关系。
注意,同义地使用记号Rj和Rj,j>0来指示索引j的规则。
如果根规则R0的值为“0”,则过滤模块应用动作-1(4020-1)并确定规则R1的值。否则,如果根规则R0的值为“1”,则过滤模块应用动作-2(4020-2)并确定规则R2的值。类似地,规则R1导致动作-3(4020-3)和规则R3,或动作-4(4020-4)和规则R4。规则R2导致动作-5(4020-5)和规则R5,或动作-6(4020-6)和规则R6。规则R3导致动作-7(4020-7)或动作-8(4020-8),规则R4导致动作-9(4020-9)或动作-10(4020-10),规则R5导致动作-11(4020-11)或动作-12(4020-12),规则R6导致动作-13(4020-13)或动作-14(4020-14)。动作-7至动作-14的每个跟随空规则R*(未示出)。
图41图示了根规则R0具有“0”值,导致动作-1(4020-1)和规则R1的第一情况。规则R1具有“1”值,导致动作-4(4020-4)和规则R4,并且规则R4具有“0”值,导致动作-9(4020-9)。在第二情况下,规则R0的值为“1”,导致动作-2(4020-2)和规则R2,规则R2的值为“0”,导致动作-5(4020-5)和规则R5,并且规则R5的值为“0”,导致动作-11(4020-11)。
图42图示了从图40的完整规则树导出的不完整规则树4200,其中规则R5指示为空规则,因此动作4020(11)和动作4020(12)不适用。当R2的值为“1”时,规则R2导致仅一个有效规则R6。
图43图示了表示图40的完整规则树的规范结构,用于标记为R0至Rμ-1的μ个规则,以及标记为A1至A的2×μ个动作,其适用具有索引为0至2×μ的(2×μ+1)个单元的数组4320。对于μ=7的单元索引是如指示的0至14(标号4310)。索引j的数组4320中的单元0≤j<μ在存储分类的规则的存储器设备(未示出)中存储编码的规则的指针(标号4316)。索引j的数组4320中的单元0≤j<2×μ在存储动作的列表的存储器设备(未示出)中存储编码的动作的指针(标号4314)。索引j的数组4320中的单元0≤j<μ导致如线4325指示的索引(2j+1)和(2j+2)的两个单元。索引j=0的单元存储根规则R0的标识符,并得到索引1和2的单元。索引j=1的单元存储动作A1和规则R1的指针,并得到索引3和4的单元。索引j=2的单元存储动作A2和规则R2的指针,并得到索引5和6(2×2+1和2×2+2)的单元。索引j=3的单元存储动作A3和规则R3的指针,并得到索引7和8(2×3+1和2×3+2)的单元。索引j=4的单元存储动作A4和规则R4的指针,并得到索引9和10(2×4+1和2×4+2)的单元。索引j=5的单元存储动作A5和规则R5的指针,并得到索引11和12的单元。索引j=6的单元存储动作A6和规则R6的指针,并得到索引13和14的单元。索引j=7至14的单元存储动作A7至A14的指针。
数组4340对应于图42的不完整规则树,其中规则R5是空规则。因此,数组4340中索引5的单元提供最终动作A5并且不得到任何其他单元。
图44图示了在多个规则层中由图33的配置设备生成的编码的规则的布置,其中规则层中的规则彼此独立,并且超过第一规则层(根层)的层的规则取决于先前规则层的规则。图44图示了4个规则层4420(1)、4420(2)、4420(3)、和4420(4)-还分别标记为层1、层2、层3、和层4。不取决于任何其他规则的规则在这里称为独立规则或自由规则。独立规则是根规则,并被选为形成层1。彼此独立但取决于层1的规则形成层2。彼此独立但取决于层2-和可能层1-的规则形成层3。彼此独立但取决于层3-和可能层2或层1-的规则形成层4。
图45图示了采用8个过滤器4520(分别标识为4520(0)至4520(7))、16个规则4530(分别标识为4530(0)至4530(15))、和9个动作4540(分别标识为4540(1)至4540(9)和标记为A1至A9)的示例性过滤模块3160(图31)。这个实例中,规则R0是2个过滤器4520(0)和4520(2)的布尔函数4525(0),而规则R11是4个过滤器4520(1)、4520(3)、4520(4)和4520(7)的布尔函数4525(11)。在图44的多层布置的中间规则层中,规则R5得到2个动作A3或A4之一和2个其他规则R2和R7之一。在最后规则层中的规则得到2个动作之一,但是不具有后继规则。例如,规则R11得到2个动作A2和A9之一,但是不得到其他规则。
图46图示了具有多个规则记录4610的示例性用户指定的规则继承表4600,每个规则记录4610指示具有“假”或“真”的二元结果的当前规则4620。动作4621和后继规则4622对应于“假”的结果。动作4623和后继规则4624对应于“真”的结果。可适用规则继承表4600,如图44所示,在多个规则层中分类图33的配置设备生成的编码的规则。在表4600中符号φ表示空规则。
图47图示了使用图46的规则继承表4600构成的规则图4700。如继承表4600所示,规则R12得到规则R5或R3的任一个,但是并非任意另一规则的后继者。因此,R12是根规则。规则图4700覆盖11个规则:R0、R1、R2、R3、R5、R7、R9、R11、R12、R14、和R15。尤其是,如果连接动作A0至规则R5的线(图示为虚线)被去除,则规则图4700可表示图51的规则继承表5100。
图48是图示将图33的配置设备生成的编码的规则分类在图44中示出的多个规则层中的一般性方法的流程图。在步骤4812,接收规则继承记录。每个规则继承记录对应于规则的集合中的特定规则,并指示:(1)与特定规则的“0”值(“假”)对应的第一动作和第一后继规则;和(2)与特定规则的“1”值(“真”)对应的第二动作和第二后继规则。步骤4814形成规则涵盖列表,包括在每个规则继承记录中引用的每个规则的规则标识符。步骤4816确定对于每个规则的依赖性计数,其中特定规则的依赖性计数指示在紧邻特定规则之前的规则的数目。
步骤4818识别在具有0依赖性计数的规则涵盖列表中的特定规则。如果步骤4820确定没有发现0依赖性计数的规则,则步骤4860报告错误数据。否则,如果步骤4820确定至少一个规则具有0依赖性计数,则步骤4822定义新规则层,开始于层1。步骤4824将0依赖性计数的每个规则的标识符增加至新层,并且步骤4826从规则涵盖列表去除标识符,并将第一后继规则和第二后继规则的每个的依赖性计数减少1。如果步骤4828确定规则涵盖列表为空,则认为规则分类过程完成(步骤4880)。否则,回到步骤4818,以识别随后规则层的规则。
图49是图示对M个规则的集合M>1应用的图48的方法的示例性方案的流程图。在步骤4920,在存储器设备3350中存储的处理器可读指令使得处理器3342(图33)从用户获取包含数目L,L>1个规则继承记录(图46)的规则继承表。规则继承记录的数目L小于或等于规则的集合中规则的数目M,因为一些规则可不应用于考虑中的数据组件。每个记录包括:父规则的标识符;与父规则的值“假”对应的第一动作和第一后继规则;和与父规则的值“真”对应的第二动作和第二后继规则。通过索引0至(M-1)来识别规则。一些规则可能不考虑,因此,在任何规则继承记录中不被引用。在步骤4924,均具有M个整数项的2个数组U和V被初始化,其中所有项被设置为0。在步骤4926,确定父规则的标识符m和每个记录的后继规则的标识符j和k,并用于标记数组U,从而如果规则j为有效规则,则U(m)=1,U(j)=1,并且如果规则k为有效规则,则U(k)=1。因此,如果在继承记录中遇到至少一次规则y,则将项U(y),0≤y<M设置为等于1。项V(y)指示作为后继规则遇到规则y的次数。因此,如果规则j是有效规则,则步骤4926将项V(j)增加1,如果规则k是有效规则,则将项V(k)增加1。数组U用作规则涵盖列表,数组V指示对于数组涵盖列表中每个规则的依赖性计数,其中特定规则的依赖性计数是紧邻特定规则之前的规则的数目。
步骤4928将当前规则层的索引χ设置为1。步骤4930将父规则的索引m设置为0。如果步骤4932确定U(m)=0或V(m)>0,则在步骤4938,将索引m增加1,如果步骤4940确定m小于M,则回到步骤4932以考虑数组V的随后项。如果步骤4932确定U(m)=1或V(m)=0,则规则m属于当前层χ。然后,步骤4934确定父规则m的继承规则j和k,并且步骤4936将规则m增加至层χ的规则的列表,如果规则j为有效规则,将项V(j)扣除1,如果规则k是有效规则,则将项V(k)扣除1。在步骤4938,将索引m增加1,并且如果m小于M,则回到步骤4932。如果索引m等于M,则步骤4940进行到步骤4950。如果步骤4950确定当前层χ中规则的列表为空,则认为将规则分类在分层的层中的过程完成(步骤4980)。否则,在步骤4952,将层索引χ增加1,并且回到步骤4930,开始将新规则与新层关联。尤其是,在确定最后规则层之后,数组U的每个项具有0值,并且数组V的每个项具有0值,并且这个属性可用于指示分类过程的完成。
图50图示了使用规则继承表4600的图48的方法,以及图49的方案。在图46的示例性规则继承表中,规则标识符的范围从0到15,并如图50这样指示(标号5010)。将每个项U(j)和V(j),0≤j<16设置为等于0(步骤4924)。在表4600中没有列出索引4、6、8、10、和13的规则(R4、R6、R8、R10、R13),并且根据图49的步骤4926,将数组U中的每个对应项设置为等于0,而每个其他项设置为等于1。表4600中的第一记录指示规则2和7是继承规则。因此,将项V(2)和V(7)的每个增加1。同样,第二记录指示规则11和14是继承规则,因此将项V(11)和V(14)的每个增加1。在考虑所有记录之后,数组U具有对于每个规则0、1、2、3、5、9、11和15的项1和对于每个规则7和14的项2。与缺少的规则4、6、8、10、和13对应的数组V中的每个项具有初始化的值0。然后,数组U和V采用形式5020(1)。
开始于层1(步骤4928)并扫描项U(m)和V(m),开始于m=0(步骤4930),步骤4932指示仅规则12满足条件U(12)=1和V(12)=0。因此,规则12是层1(χ=1)中的唯一规则。步骤4934确定(从表4900)规则5和3是规则12的继承规则,并且步骤4936将项U(12)重设为0,将每个项V(3)和V(5)减少1。然后,数组U和V采用形式5020(2)。步骤4950确定层1的规则的列表不为空(他包含规则12),因此将层索引χ增加1(步骤4952),并回到步骤4930。
扫描数组U和V指示规则3满足步骤4932(U(3)=1和V(3)=0)的条件。规则3的后继规则是规则7和15(步骤4934,表4600),步骤4936将U(3)设置为0,并将V(7)和V(15)的每个减少1。继续数组U和V的扫描指示规则5满足步骤4932(U(5)=1和V(5)=0)的条件。规则5的后继规则是规则2和7(步骤4934,表4600),步骤4936将U(5)设置为0,并将V(2)和V(7)的每个减少1。随后,数组U和V采用形式5020(3)。因此,确定规则3和5属于层2。
步骤4950指示层2的规则列表不为空(他包含规则3和5)。因此,在步骤4952中将层索引增加1,并回到步骤4930。继续该过程,确定规则2、7和15属于层3,并且数组U和V采用形式5020(3)。步骤4950确定层3的规则列表不为空,并且步骤4952将层索引增加至4(χ=4)。重复步骤4930至4940确定规则0、1、9、11、和14属于层4,并且数组U和V采用形式5020(4),其中数组V中的每个项具有0值,因此考虑了所有规则。确定分类过程的完成的一个方式是对于χ=5重复步骤4930至4950。然后,步骤4950将确定层5的规则列表为空,并中止分类过程。
图51图示了类似于图46的继承表4600的用户指定的规则继承表,但是其中规则R12仅具有一个后继规则R3。在继承表4600中,规则R5具有2个后继规则R2和R7,但是并非任意其他规则的后继者。因此,规则R5和R12都是根规则。
图52图示了使用图51的规则继承表的图48的方法的应用,以及图49的方案。在图51的示例性规则继承表中,规则标识符的范围为从0至15,并如图52被指示(标号5210)。在类似于参照图50上述那些的步骤之后,将规则分类在4个层中,其中层1包含规则R5和R12,层2包含规则R2和R3,层3包含规则R0、R1、R7、和R15,层4包含规则R9、R11、和R14。因此,可首先应用规则R5和R12,开始于R5或R12。可按任一顺序(先R2后R3,或先R3后R2)来应用规则R2和R3。然后,可按任意顺序来应用规则R0、R1、R7、和R15。最后,可按任意顺序来应用规则R9、R11、和R14。
基于图51的规则继承表5100,规则R5和R12是属于如图52所示的第一层的自由规则,因此被首先评价。图53图示了规则R5具有“1”值并且规则R12也具有“1”值的情况。随后,规则R5的后继者是R7,规则R12的后继者是规则R3。如果规则R3具有“0”值,则规则R7变为规则R3的后继者。如图52所示,规则R3属于相互独立的规则的第二层,并且规则R7属于相互独立的规则的第三层。因此,在规则R7之前自然评价规则R3。
图54图示了规则R5具有“0”值并且规则R12具有“1”值的情况。随后,规则R5的后继者是规则R2,规则R12的后继者是规则R3。如图54所示,规则R2和R3相互独立。图52指示规则R2和R3属于相互独立规则的第二层。
尽管已经详细描述了本发明的具体实施例,但是应当理解,所描述的实施例意在是说明性的而非限制性的。在不背离本发明的最广义方面的范围的情况下,可以在下面的权利要求的范围内做出在附图中示出并在说明书中描述的实施例的各种变化和修改。

Claims (15)

1.一种用于数据流过滤的设备,包括:
用户接口,用于接收:
内容类型的集合;
内容描述符的集合;
描述符的标准的集合;
运算符的集合;
过滤器定义的集合;和
规则定义的集合;
配置模块,存储使得第一处理器执行以下步骤的处理器可读指令:
基于所述过滤器定义生成编码的过滤器,每个编码的过滤器具有
由运算符、内容描述符、和描述符标准确定的二元状态;和
基于所述规则定义生成编码的规则,每个编码的规则具有根据至
少一个过滤器的每个的二元状态确定的二元结果;
规则存储器设备,用于存储所述编码的规则、所述编码的过滤器、和描述符定义;
网络接口,用于接收来自网络的数据流;和
过滤模块,用于对所述数据流应用所述编码的规则。
2.如权利要求1所述的设备,还包括:
动作存储器设备,用于存储动作的集合,每个动作实现为使得处理器执行数据流的数据容器的对应编辑功能的处理器可读指令;
指令存储器,存储使得第二处理器执行以下步骤的处理器可读指令:
从所述数据流提取数据容器;
将每个数据容器解析成组件;
确定每个组件的内容类型;
评价与所述内容类型相关的特定编码的过滤器和特定编码的规则;和
根据所述特定编码的规则的值执行动作。
3.如权利要求2所述的设备,还包括:
描述存储器设备,用于存储动作描述的集合,每个动作描述包含在所述动作的集合中对应动作的自然语言描述;和
存储于所述指令存储器中的处理器可读指令,使得所述第二处理器执行以下操作:
从所述描述存储器设备读取在所述每个数据容器上执行的每个动作的描述;和
在所述每个数据容器中插入所述每个动作的所述描述。
4.如权利要求1至3中任一项所述的设备,还包括:存储于所述配置模块的存储器设备中的指令,使得所述第一处理器在以下结构之一中布置所述编码的规则:
至少一个规则树,其中每个规则树中的每个规则具有二元结果并跟随两个动作之一,以及其中至少一个规则具有至少一个后继规则;和
分层的规则层,其中规则层中的规则彼此独立,并且超过根层的规则层的规则取决于先前规则层的规则。
5.如权利要求1所述的设备,还包括:
第一指令存储器设备,在上面存储有处理器可读指令的第一集合,使得第一处理器执行以下步骤:
提示用户定义过滤器的集合,每个过滤器指定内容类型、内容描述符、描述符标准、和运算符;
编码所述每个过滤器以生成编码的过滤器的集合;
提示所述用户定义规则的集合;
编码所述规则以生成编码的规则的集合;
提示所述用户选择对每个内容类型训练所述编码的规则的顺序以生成内容特定的排序规则的集合;和
第二指令存储器设备,在上面存储有处理器可读指令的第二集合,使得第二处理器执行以下步骤:
将每个数据容器解析成组件;
确定每个组件的内容类型;和
对所述每个组件应用各个组的排序规则。
6.如权利要求5所述的设备,还包括:存储器设备,存储处理器可读指令,其使得所述第一处理器在至少一个规则树中布置所述内容特定的排序规则的集合,所述至少一个规则树的每个规则树具有:
不同数目μ个规则,μ>1,标记为R0至Rμ-1;和
数目2×μ个动作,标记为A1至A
其中规则Rj,0≤j<μ,解出两个状态0和1之一,并得到两个动作A2j+1和A2j+2之一;
其中至少一个规则Rj,0≤j<(μ-1)/2,进行至两个规则R2j+1和R2j+2之一。
7.如权利要求6所述的设备,其中所述处理器可读指令的第二集合使得所述第二处理器执行以下步骤:
评价规则Rj,0≤j<μ;
响应于Rj解出0的指示,应用动作A2j+1;和
响应于Rj解出1的指示,应用动作A2j+2
8.如权利要求5至7中任一项所述的设备,还包括:存储于所述第一指令存储器设备的处理器可读指令,其使得所述第一处理器执行以下步骤:
提示所述用户从所述规则的集合中为每个规则指定两个动作和两个后继规则,其中至少一个规则具有空后继规则;和
将所述规则的集合分类成多个层,其中层中的规则彼此独立,并且超过第一层的层的规则取决于任意先前层的规则。
9.如权利要求5至7中任一项所述的设备,还包括:存储器设备,存储处理器可读指令,其使得所述第一处理器执行以下步骤:
显示所述内容描述符的集合、所述标准的集合、和所述运算符,以促进定义所述过滤器的集合;
显示所述编码的过滤器的集合,以促进定义所述规则的集合;和
显示所述编码的规则的集合,以促进选择训练所述编码的规则的所述顺序。
10.如权利要求5至7中任一项所述的设备,其中根据以下内容之一定义所述规则的集合中的规则:
一个过滤器;和
至少两个过滤器的布尔函数。
11.一种数据容器的内容过滤的方法,所述方法包括采用至少一个处理器和存储处理器可执行指令的至少一个存储器设备,用于:
从用户接收内容类型、内容描述符、描述符的标准、过滤器、和规则的定义;
基于所述定义为每个所述内容类型生成:
编码的过滤器的集合,每个编码的过滤器具有二元状态并表示为来自用户指定的运算符中的各个运算符,并且两个运算数包括内容描述符和描述符标准;
以及
规则的集合,其中每个规则表示为选择的过滤器的二元状态的用户指定函数;
从网络接收具有不同内容类型的组件的数据容器;
对每个组件确定各个内容类型;和
向所述每个组件分配与所述各个内容类型相关的各个规则的集合。
12.如权利要求11所述的方法,还包括:
接收动作的集合,每个动作呈现为处理器可执行指令的集合;
接收在所述动作的集合中由所述规则的集合的个体规则执行的动作的标识;
接收动作描述的集合,每个动作描述对应于所述动作的集合中的动作并包含各个动作的自然语言描述;
在描述存储器设备中存储所述动作描述的集合;
从所述规则的各个集合确定所选规则的值;
执行与所述所选规则的值对应的动作;
从所述描述存储器设备读取所述动作的描述;和
在所述数据容器中插入所述描述。
13.如权利要求11或12所述的方法,还包括:
获取所述内容类型的用户定义优先级;
根据各个内容类型的优先级顺序将所述组件分类以生成分类的组件;和
对特定内容类型的每个组件采用与所述特定内容类型对应的选择的规则的集合,按顺序过滤所述分类的组件。
14.如权利要求11或12所述的方法,还包括:
对所述每个组件采用所述规则的各个集合,同时过滤所述组件,以生成过滤的组件;和
将所述过滤的组件组合在一个数据流中。
15.如权利要求11或12所述的方法,还包括:对所述选择的过滤器的所有二元状态预计算和存储所述用户指定函数。
CN201080068799.8A 2010-08-26 2010-08-30 用于过滤流数据的方法和装置 Active CN103081430B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/869,635 2010-08-26
US12/869,635 US8447718B2 (en) 2007-11-09 2010-08-26 Method and apparatus for filtering streaming data
PCT/CA2010/001347 WO2012024762A1 (en) 2010-08-26 2010-08-30 Method and apparatus for filtering streaming data

Publications (2)

Publication Number Publication Date
CN103081430A true CN103081430A (zh) 2013-05-01
CN103081430B CN103081430B (zh) 2016-09-14

Family

ID=45722774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080068799.8A Active CN103081430B (zh) 2010-08-26 2010-08-30 用于过滤流数据的方法和装置

Country Status (8)

Country Link
US (1) US8447718B2 (zh)
EP (1) EP2609720B1 (zh)
JP (1) JP2013536513A (zh)
KR (1) KR101713004B1 (zh)
CN (1) CN103081430B (zh)
CA (3) CA3110746C (zh)
IL (1) IL224358A (zh)
WO (1) WO2012024762A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918516A (zh) * 2019-03-13 2019-06-21 百度在线网络技术(北京)有限公司 一种数据处理方法、装置及终端
CN111083071A (zh) * 2018-10-19 2020-04-28 安华高科技股份有限公司 灵活交换逻辑
CN112100620A (zh) * 2020-09-04 2020-12-18 百度在线网络技术(北京)有限公司 代码安全检测方法、装置、设备和可读存储介质

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090126020A1 (en) * 2007-11-09 2009-05-14 Norton Richard Elliott Engine for rule based content filtering
US8478764B2 (en) * 2007-11-09 2013-07-02 Vantrix Corporation Method and apparatus for concurrent filtering of multiple components of streaming data
FR2941584B1 (fr) * 2009-01-27 2011-04-01 St Nxp Wireless France Procede de traitement de flux de donnees recues par un appareil de communication sans fil et necessitant au moins en partie des traitements cryptographiques et appareil correspondant
US8098677B1 (en) * 2009-07-31 2012-01-17 Anue Systems, Inc. Superset packet forwarding for overlapping filters and related systems and methods
US8018943B1 (en) * 2009-07-31 2011-09-13 Anue Systems, Inc. Automatic filter overlap processing and related systems and methods
US8934495B1 (en) 2009-07-31 2015-01-13 Anue Systems, Inc. Filtering path view graphical user interfaces and related systems and methods
WO2015006698A1 (en) 2013-07-11 2015-01-15 Rofori Corporation Communication streams
US9529858B2 (en) * 2014-03-06 2016-12-27 Yahoo! Inc. Methods and systems for ranking items on a presentation area based on binary outcomes
US9467385B2 (en) 2014-05-29 2016-10-11 Anue Systems, Inc. Cloud-based network tool optimizers for server cloud networks
US9781044B2 (en) 2014-07-16 2017-10-03 Anue Systems, Inc. Automated discovery and forwarding of relevant network traffic with respect to newly connected network tools for network tool optimizers
US10050847B2 (en) 2014-09-30 2018-08-14 Keysight Technologies Singapore (Holdings) Pte Ltd Selective scanning of network packet traffic using cloud-based virtual machine tool platforms
US9992134B2 (en) 2015-05-27 2018-06-05 Keysight Technologies Singapore (Holdings) Pte Ltd Systems and methods to forward packets not passed by criteria-based filters in packet forwarding systems
US10652112B2 (en) 2015-10-02 2020-05-12 Keysight Technologies Singapore (Sales) Pte. Ltd. Network traffic pre-classification within VM platforms in virtual processing environments
US10116528B2 (en) 2015-10-02 2018-10-30 Keysight Technologies Singapore (Holdings) Ptd Ltd Direct network traffic monitoring within VM platforms in virtual processing environments
US10142212B2 (en) 2015-10-26 2018-11-27 Keysight Technologies Singapore (Holdings) Pte Ltd On demand packet traffic monitoring for network packet communications within virtual processing environments
FI127266B (en) * 2016-07-08 2018-02-28 Sarokal Test Systems Oy A system for processing data stream messages
US10476673B2 (en) 2017-03-22 2019-11-12 Extrahop Networks, Inc. Managing session secrets for continuous packet capture systems
US20180324061A1 (en) * 2017-05-03 2018-11-08 Extrahop Networks, Inc. Detecting network flow states for network traffic analysis
US9967292B1 (en) 2017-10-25 2018-05-08 Extrahop Networks, Inc. Inline secret sharing
US10389574B1 (en) 2018-02-07 2019-08-20 Extrahop Networks, Inc. Ranking alerts based on network monitoring
US10038611B1 (en) 2018-02-08 2018-07-31 Extrahop Networks, Inc. Personalization of alerts based on network monitoring
US10270794B1 (en) 2018-02-09 2019-04-23 Extrahop Networks, Inc. Detection of denial of service attacks
US10411978B1 (en) 2018-08-09 2019-09-10 Extrahop Networks, Inc. Correlating causes and effects associated with network activity
US10594718B1 (en) 2018-08-21 2020-03-17 Extrahop Networks, Inc. Managing incident response operations based on monitored network activity
US10965702B2 (en) 2019-05-28 2021-03-30 Extrahop Networks, Inc. Detecting injection attacks using passive network monitoring
US11165814B2 (en) 2019-07-29 2021-11-02 Extrahop Networks, Inc. Modifying triage information based on network monitoring
US10742530B1 (en) 2019-08-05 2020-08-11 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
US11388072B2 (en) 2019-08-05 2022-07-12 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
US10742677B1 (en) 2019-09-04 2020-08-11 Extrahop Networks, Inc. Automatic determination of user roles and asset types based on network monitoring
US11165823B2 (en) 2019-12-17 2021-11-02 Extrahop Networks, Inc. Automated preemptive polymorphic deception
US11463466B2 (en) 2020-09-23 2022-10-04 Extrahop Networks, Inc. Monitoring encrypted network traffic
WO2022066910A1 (en) 2020-09-23 2022-03-31 Extrahop Networks, Inc. Monitoring encrypted network traffic
US11349861B1 (en) 2021-06-18 2022-05-31 Extrahop Networks, Inc. Identifying network entities based on beaconing activity
US11296967B1 (en) 2021-09-23 2022-04-05 Extrahop Networks, Inc. Combining passive network analysis and active probing
US11843606B2 (en) 2022-03-30 2023-12-12 Extrahop Networks, Inc. Detecting abnormal data access based on data similarity
CN115047835B (zh) * 2022-06-27 2024-06-04 中国核动力研究设计院 基于dcs系统定期试验数据获取方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1294712A (zh) * 1997-03-25 2001-05-09 英特尔公司 计算机间传输的数据的动态代码转换系统
WO2001044933A2 (en) * 1999-12-15 2001-06-21 Sun Microsystems, Inc. System and method for creating a graphical user interface from a filter expression tree
WO2009059420A1 (en) * 2007-11-09 2009-05-14 Vantrix Corporation System and method for rule based content filtering

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226630B1 (en) * 1998-07-22 2001-05-01 Compaq Computer Corporation Method and apparatus for filtering incoming information using a search engine and stored queries defining user folders
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US20020049705A1 (en) * 2000-04-19 2002-04-25 E-Base Ltd. Method for creating content oriented databases and content files
US7242324B2 (en) * 2000-12-22 2007-07-10 Sony Corporation Distributed on-demand media transcoding system and method
US7120702B2 (en) * 2001-03-03 2006-10-10 International Business Machines Corporation System and method for transcoding web content for display by alternative client devices
US7203692B2 (en) * 2001-07-16 2007-04-10 Sony Corporation Transcoding between content data and description data
AU2002304893A1 (en) * 2002-04-12 2003-10-27 Siemens Aktiengesellschaft Representation of boolean expressions for specifying filters using xml
FR2847693B1 (fr) * 2002-11-22 2005-02-25 Bosch Gmbh Robert Procede de conception d'une forme assistee par ordinateur et procede de construction d'une piece ainsi concue
US20040158741A1 (en) * 2003-02-07 2004-08-12 Peter Schneider System and method for remote virus scanning in wireless networks
US20050108176A1 (en) * 2003-04-30 2005-05-19 Jarol Scott B. Configurable rules based content item consumption
US7801874B2 (en) * 2004-10-22 2010-09-21 Mahle Powertrain Llc Reporting tools
US7606832B2 (en) * 2004-11-12 2009-10-20 International Business Machines Corporation System and method for orchestrating composite web services in constrained data flow environments
US9288078B2 (en) * 2005-03-25 2016-03-15 Qualcomm Incorporated Apparatus and methods for managing content exchange on a wireless device
US7545978B2 (en) * 2005-07-01 2009-06-09 International Business Machines Corporation Methods and apparatus for filtering video packets for large-scale video stream monitoring
WO2007082190A2 (en) * 2006-01-06 2007-07-19 Qualcomm Incorporated Apparatus and methods of selective collection and selective presentation of content
US9251520B2 (en) * 2006-02-22 2016-02-02 Google Inc. Distributing mobile advertisements
US10070164B2 (en) * 2008-01-10 2018-09-04 At&T Intellectual Property I, L.P. Predictive allocation of multimedia server resources
US9135363B2 (en) * 2009-06-09 2015-09-15 Gvoto (Hong Kong) Ltd. Methods and systems for automatic content retrieval and organization
US9491409B2 (en) * 2009-10-30 2016-11-08 Comcast Cable Communications, Llc Network interface to content source
US8732784B2 (en) * 2010-12-07 2014-05-20 At&T Intellectual Property I, L.P. Hierarchical storage management for data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1294712A (zh) * 1997-03-25 2001-05-09 英特尔公司 计算机间传输的数据的动态代码转换系统
WO2001044933A2 (en) * 1999-12-15 2001-06-21 Sun Microsystems, Inc. System and method for creating a graphical user interface from a filter expression tree
WO2009059420A1 (en) * 2007-11-09 2009-05-14 Vantrix Corporation System and method for rule based content filtering

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083071A (zh) * 2018-10-19 2020-04-28 安华高科技股份有限公司 灵活交换逻辑
CN111083071B (zh) * 2018-10-19 2022-07-01 安华高科技股份有限公司 灵活交换逻辑包处理方法、交换装置和交换系统
CN109918516A (zh) * 2019-03-13 2019-06-21 百度在线网络技术(北京)有限公司 一种数据处理方法、装置及终端
CN109918516B (zh) * 2019-03-13 2021-07-30 百度在线网络技术(北京)有限公司 一种数据处理方法、装置及终端
CN112100620A (zh) * 2020-09-04 2020-12-18 百度在线网络技术(北京)有限公司 代码安全检测方法、装置、设备和可读存储介质
CN112100620B (zh) * 2020-09-04 2024-02-06 百度在线网络技术(北京)有限公司 代码安全检测方法、装置、设备和可读存储介质

Also Published As

Publication number Publication date
CA3110584C (en) 2023-07-18
WO2012024762A1 (en) 2012-03-01
EP2609720A1 (en) 2013-07-03
WO2012024762A8 (en) 2012-04-12
CN103081430B (zh) 2016-09-14
EP2609720A4 (en) 2014-01-22
KR20130108303A (ko) 2013-10-02
CA3110746C (en) 2023-04-18
JP2013536513A (ja) 2013-09-19
CA3110746A1 (en) 2012-03-01
EP2609720B1 (en) 2018-01-10
US8447718B2 (en) 2013-05-21
CA3110584A1 (en) 2012-03-01
KR101713004B1 (ko) 2017-03-07
CA2805302A1 (en) 2012-03-01
US20100332618A1 (en) 2010-12-30
CA2805302C (en) 2021-09-21
IL224358A (en) 2016-07-31

Similar Documents

Publication Publication Date Title
CN103081430A (zh) 用于过滤流数据的方法和装置
CN101849399B (zh) 用于基于规则的内容过滤的系统和方法
CN106682097A (zh) 一种处理日志数据的方法和装置
CA2936218C (en) Method and apparatus for concurrent filtering of multiple components of streaming data
CN106648859A (zh) 一种任务调度方法和装置
US8442928B2 (en) Method and apparatus for employing rules to filter streaming data
CN116415206B (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