IP Library Granted Patent US 12,301,693
Granted Patent B2
US 12,301,693 · App. 18/608,422 · Granted May 13, 2025

Method and system of generating generic protocol handlers

Inventors: John M. VanAntwerp (Normal, IL); Dan Kalmes (Bloomington, IL)
Assignee: State Farm Mutual Automobile Insurance Company
H04L69/08G06F8/20G06F8/60G06F8/70G06F11/3604G06Q10/067H04L67/02H04L67/10H04L67/125H04L67/56G06F3/04817G06F3/0484G06F8/10G06F8/38G06F9/5038G06Q10/0633G06Q40/123H04L67/306H04L67/535
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 12,301,693
App. No.
18/608,422
Granted
May 13, 2025
Kind
B2
Abstract

A method of generating generic protocol handlers includes receiving a user request in a middleware, generating a request payload by analyzing the request in a protocol handler of the middleware, transforming the request payload into a set of canonical types, transmitting the set of canonical types to a path module, receiving a response payload, transforming the response payload in a second protocol handler of the middleware, and transmitting the response to the user.

Claims (72)

1. A method, comprising:

receiving, by a processor and from a client device, a request payload characterized by a first canonical type of a plurality of canonical types;

identifying, by the processor, a step of a workflow corresponding to the request payload;

providing, by the processor and as input to a workflow component, data included in the request payload;

generating, by the processor and by executing the step of the workflow, a response payload, the response payload being characterized by a second canonical type of the plurality of canonical types;

generating, by the processor, a response based on the response payload, the processor formatting the response in accordance with a first communication protocol of the client device; and

transmitting, by the processor, via a network, and in accordance with the first communication protocol, the response to the client device.

2. The method of claim 1 , wherein the request payload is a first request payload, the response is a first response, the client device is a first client device, and a first protocol handler of the processor generates the first response, the method further comprising:

receiving, by the processor and from a second client device associated with a second communication protocol, a second request payload; and

generating, by a second protocol handler of the processor different from the first protocol handler, a second response in accordance with the second communication protocol.

3. The method of claim 2 , wherein the first communication protocol or the second communication protocol comprises one of: an HTTP communication protocol, an HTTPS communication protocol, an SMS communication protocol, an IVR communication protocol, and an SMTP communication protocol.

4. The method of claim 1 , wherein the request payload includes metadata indicating a session identification, the method further comprising:

identifying, by the processor and based on the metadata, the first communication protocol associated with the request payload; and

selecting, by the processor and based on the first communication protocol, a first protocol handler from a plurality of protocol handlers of the processor,

wherein the response is formatted in accordance with the first communication protocol by the first protocol handler.

5. The method of claim 4 , wherein each protocol handler of the plurality of protocol handlers is associated with a respective communication protocol.

6. The method of claim 1 , wherein generating the response payload comprises:

receiving, by the processor and from the workflow component, information indicating a set of fields in the response payload;

identifying, for a field of the set of fields, a transformation function configured to convert the field to a canonical type; and

generating, by applying the transformation function to the field, the second canonical type characterizing the response payload.

7. The method of claim 1 , further comprising:

identifying, by the processor, a port number associated with the client device,

wherein the workflow is identified based on the port number.

8. The method of claim 1 , further comprising:

identifying, by the processor and by querying a database communicatively coupled to the processor, client capabilities associated with the client device,

wherein the response payload is generated based on the client capabilities.

9. The method of claim 8 , further comprising:

determining, by the processor, that at least a portion of the response payload is unsupported by the client capabilities; and

based on determining that at least the portion of the response payload is unsupported, at least one of degrading the response to match the client capabilities, or augmenting the response to include an error message.

10. The method of claim 1 , wherein the plurality of canonical types comprises at least one of:

user interface event,

person name,

address,

person identification number,

telephone number, or

account number.

11. The method of claim 1 , wherein the response is configured such that when executed by the client device, causes the client device to display one or more user interface components.

12. The method of claim 1 , further comprising:

determining, by the processor and from the workflow component, a status of the step; and

determining, by the processor and based on the status, a state of the workflow,

wherein the response is based at least in part of the state of the workflow.

13. The method of claim 1 , wherein the response includes user experience instructions, the user experience instructions being executable by the client device to modify a user interface on the client device, the modifications comprising changing one or more of: a visual indication, an arrangement of components, a number of tabs, or a displayed text of the user interface.

14. A computing system, comprising:

a processor; and

a non-transitory memory coupled to the processor and storing executable instructions that, when executed by the processor, cause the processor to perform operations comprising:

receiving, from a client device, a request payload characterized by a first canonical type of a plurality of canonical types;

identifying a step of a workflow corresponding to the request payload;

providing, as input to a workflow component, data included in the request payload;

generating, by executing the step of the workflow, a response payload, the response payload being characterized by a second canonical type of the plurality of canonical types;

generating a response based on the response payload, wherein the response is formatted in accordance with a first communication protocol of the client device; and

transmitting, via a network, and in accordance with the first communication protocol, the response to the client device.

15. The computing system of claim 14 , wherein at least one canonical type of the plurality of canonical types corresponds to a user interface event, the operations further comprising:

transmitting the response payload to a user experience module; and

receiving, from the user experience module and based on the first communication protocol, a modified response payload,

wherein the response is generated based on the modified response payload.

16. The computing system of claim 14 , wherein the request payload is a first request payload, the client device is a first client device, the response is a first response, and a first protocol handler of the processor generates the first response, the operations further comprising:

receiving, from a second client device associated with a second communication protocol, a second request payload; and

generating, by a second protocol handler different from the first protocol handler, a second response in accordance with the second communication protocol.

17. A non-transitory computer-readable medium storing program instructions that, when executed by a processor of a computing system, cause the processor to:

receive, from a client device, a request payload characterized by a first canonical type of a plurality of canonical types;

identify a step of a workflow corresponding to the request payload;

provide, as input to a workflow component, data included in the request payload;

generate, by executing the step of the workflow, a response payload, the response payload being characterized by a second canonical type of the plurality of canonical types;

generate a response based on the response payload, the response being formatted in accordance with a particular communication protocol of the client device; and

transmit, via a network, and in accordance with the particular communication protocol, the response to the client device.

18. The non-transitory computer-readable medium of claim 17 , the instructions further causing the processor to:

select, based on the particular communication protocol, a protocol handler from a plurality of protocol handlers accessible to the processor,

wherein each protocol handler of the plurality of protocol handlers is associated with a respective communication protocol.

19. The non-transitory computer-readable medium of claim 17 , wherein the response, when executed by the client device, causes the client device to display user interface components configured to allow a user of the client device to interact with the step of the workflow.

20. The non-transitory computer-readable medium of claim 17 , the instructions further causing the processor to:

determine that at least a portion of the response payload is unsupported by client capabilities of the client device; and

based on determining that at least the portion of the response payload is unsupported, modifying the response payload to match the client capabilities.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2024
From: VANANTWERP, JOHN M.; KALMES, DAN
To: STATE FARM MUTUAL AUTOMOBILE INSURANCE COMPANY
Reel/Frame 066856/0846 →
Continuity (5)
Continuation 18117745 · Mar 6, 2023
Continuation 17222221 · Apr 5, 2021
Continuation 16001643 · Jun 6, 2018
Provisional Application 62535613 · Jul 21, 2017
Related Publication 20240223679A1 · Jul 4, 2024
References Cited (82)
US 5640501A · Turpin · 1997 [cited by applicant]
US 6314415B1 · Mukherjee · 2001 [cited by applicant]
US 7752092B1 · Mattice et al. · 2010 [cited by applicant]
US 7818341B2 · Kurien et al. · 2010 [cited by applicant]
US 8533584B2 · Dittmar et al. · 2013 [cited by applicant]
US 9086914B2 · Bolohan et al. · 2015 [cited by applicant]
US 11069001B1 · Mascaro et al. · 2021 [cited by applicant]
US 20020161911A1 · Pinckney, III et al. · 2002 [cited by applicant]
US 20040015578A1 · Karakashian et al. · 2004 [cited by applicant]
US 20040163037A1 · Friedman et al. · 2004 [cited by applicant]
US 20040230636A1 · Masuoka et al. · 2004 [cited by applicant]
US 20060005140A1 · Crew et al. · 2006 [cited by applicant]
US 20060069605A1 · Hatoun · 2006 [cited by applicant]
US 20060074735A1 · Shukla et al. · 2006 [cited by applicant]
US 20060161272A1 · Haller et al. · 2006 [cited by applicant]
US 20070271521A1 · Harriger et al. · 2007 [cited by applicant]
US 20080077530A1 · Banas et al. · 2008 [cited by applicant]
US 20080154935A1 · Draeger et al. · 2008 [cited by applicant]
US 20110004590A1 · Lilley et al. · 2011 [cited by applicant]
US 20110282941A1 · Chan et al. · 2011 [cited by applicant]
US 20120303756A1 · Bolohan et al. · 2012 [cited by applicant]
US 20130036367A1 · DeRoos et al. · 2013 [cited by applicant]
US 20130152001A1 · Lovitt et al. · 2013 [cited by applicant]
US 20130158964A1 · Hall et al. · 2013 [cited by applicant]
US 20130159228A1 · Meijer et al. · 2013 [cited by applicant]
US 20130173719A1 · Ahmed et al. · 2013 [cited by applicant]
US 20140047028A1 · Buth · 2014 [cited by applicant]
US 20140122497A1 · Eigner et al. · 2014 [cited by applicant]
US 20140229898A1 · Terwedo · 2014 [cited by applicant]
US 20150074615A1 · Han et al. · 2015 [cited by applicant]
US 20160132696A1 · Vidhani et al. · 2016 [cited by applicant]
US 20160147729A1 · Sivertson et al. · 2016 [cited by applicant]
US 20160147828A1 · Yu et al. · 2016 [cited by applicant]
US 20160259534A1 · Simons et al. · 2016 [cited by applicant]
US 20160275627A1 · Wang et al. · 2016 [cited by applicant]
US 20160283889A1 · Shukla et al. · 2016 [cited by applicant]
US 20170039046A1 · Henke et al. · 2017 [cited by applicant]
US 20170132200A1 · Noland et al. · 2017 [cited by applicant]
US 20170161855A1 · Schreyer · 2017 [cited by applicant]
US 20170220963A1 · Canaran et al. · 2017 [cited by applicant]
US 20170264566A1 · Namboodiri et al. · 2017 [cited by applicant]
US 20170315782A1 · Chaudhry et al. · 2017 [cited by applicant]
US 20170315789A1 · Lam et al. · 2017 [cited by applicant]
US 20170316363A1 · Siciliano et al. · 2017 [cited by applicant]
US 20170322782A1 · Pakiman et al. · 2017 [cited by applicant]
US 20170344895A1 · Roy · 2017 [cited by applicant]
US 20170357627A1 · Peterson et al. · 2017 [cited by applicant]
US 20180108093A1 · Podgorny et al. · 2018 [cited by applicant]
US 20180210619A1 · Mowatt et al. · 2018 [cited by applicant]
US 20180365025A1 · Almecija et al. · 2018 [cited by applicant]
US 20190355351A1 · Kim et al. · 2019 [cited by applicant]
US 20220286531A1 · VanAntwerp et al. · 2022 [cited by applicant]
US 20230141866A1 · VanAntwerp · 2023 [cited by applicant]
Herbst, et al., “Integrating Machine Learning and Workflow Management to Support Acquisition and Adaption of Workflow Models”, retrieved Dec. 2021, at <<https://onlinelibrary.wiley.com/doi/pdf>>, 2000, pp. 67-92. [cited by applicant]
Machulak, et al., “User-Managed Access to Web Resources”, retrieved Aug. 1, 2023, at <<https://dl.acm.org/doi/pdf/10.1145/1866855.1866855>>, 2010, pp. 35-44. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,629, mailed on Jul. 9, 2021, VanAntwerp, “Method and System for Reconciling User Interactions”, 14 Pages. [cited by applicant]
Final Office Action dated Jul. 23, 2020 for U.S. Appl. No. 16/001,629, “Method and System for Reconciling User Interactions”, VanAntwerp, 9 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,629, mailed on Aug. 4, 2023, John M. VanAntwerp, “Method and System for Reconciling User Interactions”, 13 pages. [cited by applicant]
Final Office Action dated Aug. 6, 2020 for U.S. Appl. No. 16/001,571, “Method and System for Administering Dynamic User Experience Applications”, VanAntwerp, 20 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,602, mailed on Sep. 2, 2021, VanAntwerp, “Method and System for Optimizing Dynamic User Experience Applications”, 25 Pages. [cited by applicant]
Office Action for U.S. Appl. No. 18/094,882, mailed on Sep. 29, 2023, John M. VanAntwerp, “Method and System for Optimizing Dynamic User Experience Applications”, 34 pages. [cited by applicant]
Non Final Office Action dated Jan. 24, 2020 for U.S. Appl. No. 16/001,571 “Method and System for Administering Dynamic User Experience Applications” VanAntwerp, 9 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,571, mailed on Jan. 3, 2023, VanAntwerp, “Method and System for Administering Dynamic User Experience Applications”, 12 Pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,629, mailed on Jan. 3, 2023, VanAntwerp, “Method and System for Reconciling User Interactions”, 11 pages. [cited by applicant]
Office Action dated Jan. 7, 2021 for U.S. Appl. No. 16/001,629, “Method and System for Reconciling User Interactions”, VanAntwerp, 9 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,571, mailed on Dec. 21, 2021, VanAntwerp, “Method and System for Administering Dynamic User Experience Applications”, 12 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,629, mailed Dec. 21, 2021, VanAntwerp, “Method and System for Reconciling User Interactions” 14 pages. [cited by applicant]
Office Action dated Feb. 22, 2021 for U.S. Appl. No. 16/001,571, “Method and System for Administering Dynamic User Experience Applications”, VanAntwerp, 11pages. [cited by applicant]
Office Action dated Mar. 2, 2021 for U.S. Appl. No. 16/001,602 “Method and System for Optimizing Dynamic User Experience Applications” VanAntwerp, 20 pages. [cited by applicant]
Final Office Action dated Mar. 4, 2020 for U.S. Appl. No. 16/001,602 “Method and System for Optimizing Dynamic User Experience Applications” VanAntwerp, 19 pages. [cited by applicant]
Office Action for U.S. Appl. No. 17/750,554, mailed on Apr. 25, 2023, VanAntwerp, “Method and System for Generating Dynamic User Experience Applications”, 21 Pages. [cited by applicant]
Office action for U.S. Appl. No. 16/001,629, mailed on Apr. 3, 2020, VanAntwerp, “Method and System for Reconciling User Interactions”, 8 pages. [cited by applicant]
Non Final Office Action dated May 29, 2020 for U.S. Appl. No. 16/001,643 “Method and System of Generating Generic Protocol Handlers” VanAntwerp, 12 pages. [cited by applicant]
Office Action for U.S. Appl. No. 17/222,221, mailed on Jun. 30, 2022, VanAntwerp, “Method and System of Generating Generic Protocol Handlers”, 6 pages. [cited by applicant]
Office Action for U.S. Appl. No. 18/117,745, mailed on Jul. 13, 2023, VanAntwerp, “Method and System of Generating Generic Protocol Handlers”, 6 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,571, mailed on Jul. 21, 2022, VanAntwerp, “Method and System for Administering Dynamic User Experience Applications”, 13 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,629, mailed on Jul. 21, 2022, VanAntwerp, “Method and System for Reconciling User Interactions”, 14 Pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,571, mailed on Aug. 2, 2023, John M. VanAntwerp, “Method and System for Administering Dynamic User Experience Applications”, 15 Pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,571, mailed Aug. 31, 2021, Kalmes, “Method and System for Administering Dynamic User Experience Applications”, 11 pages. [cited by applicant]
Schaffer, “Common SMS Problems and How to Solve Them, Part 1”, Twillo Cloud Blog, available at <<https://www.twilio.com/blog/2015/08/common-sms-problems-and-how-to-solve-them-part-1.html>>, Aug. 21, 2015, 7 pages. [cited by applicant]
Office Action for US Patent Application Dec. 23, 2024, VanAntwerp, “Method and System for Generating Dynamic User Experience Applications”, 37 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/001,629, Dated Aug. 16, 2024, VanAntwerp, “Method and System for Reconciling User Interactions” 14 pages. [cited by applicant]