ENGINE FOR RULE BASED CONTENT FILTERING
An engine for editing contents of data containers has a set of processors which hosts a set of controllers, each controller coupled to a respective set of transcoders. A memory device stores an array of Boolean variables characterizing the contents of a container, and an array of encoded rules for determining needed content editing, if any. The Boolean variables are determined according to content descriptors and respective criteria. A graphical user interface enables a user to provide the descriptors, the criteria, and the encoded rules. Each transcoder applies the encoded rules to specific containers. A transcoder also performs container adaptation functions which may modify contents of a container to be compatible with a respective receiver. The engine receives containers from clients through a network and directs each container to a respective controller.
1 . An engine for editing content of containers, the engine comprising:
a network interface for receiving said containers from clients and directing each container to a respective controller from among a plurality of controllers for identifying and parsing said containers;
a memory device for storing:
an array of Boolean variables, each said Boolean variable determined according to a respective operator applicable to a first operand characterizing said content and a second operand specifying a target value of said first operand; and
an array of encoded rules, each rule specifying a respective content-editing action activated by a value of a respective Boolean expression of a respective subset of said Boolean variables;
and
a plurality of processors hosting transcoders, each transcoder for applying at least one of said encoded rules to a subset of said containers.
2 . The engine of claim 1 , further comprising:
an operation manager comprising computer readable instructions stored in a computer readable storage medium for performing operation, administration, and maintenance functions;
a graphical user interface, comprising computer readable instructions stored in a computer readable storage medium, coupled to said operation manager for entering said array of encoded rules and for assigning to each controller a respective subset of said transcoders; and
a configuration memory device for storing identifiers of transcoders assigned to each controller.
3 . The engine of claim 1 , further comprising a sorting module, comprising computer readable instructions stored in a computer readable storage medium, coupled to said network interface, for sorting containers into container types, each container type corresponding to a protocol according to which a container is formulated, and directing containers of a specific type to a specific controller from among said plurality of containers.
4 . The engine of claim 2 , further comprising a controller-load-balancing module, comprising computer readable instructions stored in a computer readable storage medium, coupled to said operation manager, said controller-load-balancing module comprising means for dynamic assignment of transcoders to controllers according to a time-varying flow rate of said containers.
5 . The engine of claim 2 , further comprising a transcoder-load-balancing module coupled to said each controller for equitably assigning container editing requests among transcoders assigned to said each controller.
6 . The engine of claim 1 , further comprising a blade server hosting said each controller and said respective subset of said transcoders, said blade server comprising:
a processor having multiple cores, each core exclusively assigned to a transcoder of said subset of transcoders;
a plurality of memory devices;
an input interface; and
an output interface.
7 . The engine of claim 6 , further comprising:
a transcoder-service module coupled to each transcoder of said plurality of transcoders for receiving new programs from external sources;
a program storage medium for storing a plurality of programs accessible to said each transcoder; and
a program registry, comprising computer readable instructions stored in a computer readable storage medium, for identifying a function of each new program and organizing programs according to respective functions.
8 . The engine of claim 7 , wherein said transcoder-service module further comprises computer readable instructions stored in a computer readable storage medium, which, when executed, cause a core of said processor to:
receive a specific container and an editing request from a specific controller from said plurality of controllers;
select and execute programs relevant to said editing request; and
return a result to said specific controller.
9 . The engine of claim 7 , wherein said program registry comprises computer readable instructions which, when executed, causes a core of said processor to:
organize programs according to respective functions; and
replace existing programs with respective new programs.
10 . The engine of claim 7 , wherein said program storage medium comprises:
resident programs stored in the computer readable storage medium; and
dynamically loaded external programs stored in the computer readable storage medium.
11 . A method of filtering a data container having multiple components, comprising:
selecting a component;
determining a plurality of binary conditions characterizing content of said component;
formulating a set of Boolean expressions, each comprising a Boolean operator and at least two operands selected from said set of binary conditions;
executing each Boolean expression of said set of Boolean expressions to determine a set of content indicators, said indicators having a one-to-one correspondence to said Boolean expressions; and
performing an editorial function relevant to said content corresponding to each of said indicators.
12 . The method of claim 11 , further comprising performing a further editorial function based on a single binary condition.
13 . The method of claim 12 , further comprising arranging said Boolean expressions in an order according to which an indicator resulting from executing a Boolean expression conditionally precludes execution of at least one subsequent Boolean expression.
14 . The method of claim 13 , further comprising determining said Boolean expressions according to:
specified descriptors of said content; and
preset criteria corresponding to said descriptors.
15 . The method of claim 12 , wherein the step of performing the editorial function comprises one of:
scanning said content to detect malicious insertions and removal of detected malicious insertions; and
scanning said content to detect malicious insertions and deletion of said content upon detecting malicious insertions.
16 . A method of editing content of a data container using a computing device, comprising:
formulating a set of descriptors of said content;
specifying a set of criteria corresponding to said descriptors;
specifying a set of operators;
defining a set of Boolean variables, each Boolean variable being an outcome of applying an operator from among said set of operators to a first operand and a second operand, where said first operand is a descriptor selected from among said set of descriptors, and said second operand is a criterion selected from among said set of criteria; and
defining a set of rules, each rule executing a Boolean expression, selected from among a set of Boolean expressions, of a subset of said Boolean variables and performing an action, selected from among a set of actions relevant to said content, according to an outcome of said executing.
17 . The method of claim 16 , wherein said set of descriptors comprises at least one of the following:
a size of said content;
a content family from among a set of predefined content families;
an encoding method; and
a priority designation.
18 . The method of claim 16 , wherein said set of operators comprises one or more of the following:
unary operators;
binary operators;
arithmetic operators;
comparison operators;
logical operators;
set operators; and
user-defined operators.
19 . The method of claim 16 , further comprising entering said set of descriptors, said set of criteria, said set of operators, and said set of Boolean expressions through a graphical user interface comprising computer readable instructions stored in a memory of said computing device.
20 . The method of claim 16 , further comprising selecting said content to include a portion of said data container.