IP Library Granted Patent US 11,625,405
Granted Patent B2
US 11,625,405 · App. 17/237,859 · Granted Apr 11, 2023

System and method for object-oriented pattern matching in arbitrary data object streams

Inventor: Paul Peloski (Calgary, CA)
Assignee: TTEC Holdings, Inc.
G06F16/24568G06F16/2379G06F16/289
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,625,405
App. No.
17/237,859
Granted
Apr 11, 2023
Kind
B2
Abstract

A system and method for applying extended regular expressions against arbitrary data objects, wherein a state machine maintains an internal state model for the system, an object analysis server receives data objects from a data source, and the object analysis server analyzes the structure and contents of the objects, compares them against received search pattern, and directs the state machine to update the state model based on either or both of the analysis and comparison operations.

Claims (29)

1. A system for object-oriented pattern matching in arbitrary data object streams, comprising:

at least one state machine comprising at least a plurality of programming instructions stored in the memory of, and operating on at least one processor of, a computing device, wherein the plurality of programming instructions, when operating on the at least one processor, cause the computing device to:

maintain an internal state model; and

return a result when a final state has been reached, the final state being determined by the internal state model; and

an object analysis server comprising at least a plurality of programming instructions stored in the memory of, and operating on at least one processor of, a computing device, wherein the plurality of programming instructions, when operating on the at least one processor, cause the computing device to:

receive a plurality of data objects from a data source;

analyze at least a portion of the data objects to determine at least their information structure and contents;

receive a search pattern comprising at least one element;

compare at least a portion of the data objects against at least one pattern of the search pattern, the comparison operation comprising at least the comparison of at least one element of a search pattern against the contents of a data object;

create a new instance of a state machine when the comparison indicates that the object contains an element associated with the start of a search pattern, and associate that object with that state machine and the object's location in the search pattern for that state machine;

update an instance of a state machine when the comparison indicates that the object contains an element associated with an element of a search pattern for which that state machine is waiting, and associate that object with that state machine and the object's location in the search pattern for that state machine;

return the results of the operation of at least one state machine.

2. The system of claim 1 , wherein the object analysis server is further configured to compare at least a portion of the search pattern against more than one data object at once.

3. The system of claim 1 , wherein the state machines are further capable of receiving data from an input stream.

4. The system of claim 1 , wherein the object analysis server is further configured to utilize a modified Boyer-Moore search algorithm to skip at least a portion of a data object based at least in part on the outcome of a previous comparison.

5. The system of claim 1 , further comprising a message server comprising at least a plurality of programming instructions stored in the memory of, and operating on at least one processor of, a computing device, wherein the plurality of programming instructions, when operating on the at least one processor, cause the computing device to receive at least an update message from a client application; wherein the system updates data objects on the data source based at least on the update message.

6. The system of claim 5 , wherein updated data objects are searchable in real-time.

7. A method for object-oriented pattern matching in arbitrary data object streams, comprising the steps of:

receiving a plurality of data objects from a data source, using an object analysis server;

analyzing at least a portion of the data objects to determine at least their information structure and contents, using an object analysis server;

receiving a search pattern comprising at least one element, using an object analysis server;

comparing at least a portion of the data objects against at least one pattern of the search pattern, the comparison operation comprising at least the comparison of at least one element of a search pattern against the contents of a data object, using an object analysis server;

creating a new instance of a state machine when the comparison indicates that the object contains an element associated with the start of a search pattern, and associating that object with that state machine and the object's location in the search pattern for that state machine, using an object analysis server;

updating an instance of a state machine when the comparison indicates that the object contains an element associated with an element of a search pattern for which that state machine is waiting, and associate that object with that state machine and the object's location in the search pattern for that state machine, using an object analysis server; and

returning the results of the operation of at least one state machine.

8. The method of claim 7 , wherein the object analysis server is further configured to compare at least a portion of the search pattern against more than one data object at once.

9. The method of claim 7 , wherein the object analysis server is further configured to utilize a modified Boyer-Moore search algorithm to skip at least a portion of a data object based at least in part on the outcome of a previous comparison.

10. The method of claim 7 , further comprising a message server comprising at least a plurality of programming instructions stored in the memory of, and operating on at least one processor of, a computing device, wherein the plurality of programming instructions, when operating on the at least one processor, cause the computing device to receive at least an update message from a client application; wherein the system updates data objects on the data source based at least on the update message.

11. The method of claim 10 , wherein updated data objects are searchable in real-time.

Assignments (4)
CHANGE OF PRINCIPAL PLACE OF BUSINESS Recorded Mar 24, 2025
From: TTEC HOLDINGS, INC.
To: TTEC HOLDINGS, INC.
Reel/Frame 070609/0504 →
SECURITY INTEREST Recorded Oct 17, 2024
From: TTEC HOLDINGS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 069206/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2022
From: ARIA SOLUTIONS, INC.
To: TTEC HOLDINGS, INC.
Reel/Frame 059955/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2022
From: PELOSKI, PAUL
To: ARIA SOLUTIONS, INC.
Reel/Frame 058868/0828 →
Continuity (4)
Continuation 16214620 · Dec 10, 2018
Continuation In Part 16160763 · Oct 15, 2018
Provisional Application 62572537 · Oct 15, 2017
Related Publication 20220012249A1 · Jan 13, 2022