# US 12,184,623 B2 · Systems and methods for data communications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,184,623 B2
- Document ID: US12184623B2
- Status: Granted
- Kind: B2
- Application number: 18/199,152
- Filed: 2023-05-18
- Published: 2023-11-16
- Granted: 2024-12-31
- Earliest claimed: 2020-05-27
- Assignees: Step Software Inc.
- Applicants: STEP Software Inc.
- Inventors: James Leo Freeman; Robert Jan Nijkamp
- Web page: https://patentgrep.com/patent/US12184623B2

## CPC

- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/3247: {involving digital signatures}
- H04L 51/214: using selective forwarding
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- H04L 63/101: {Access control lists [ACL]}
- H04L 63/123: {received data contents, e.g. message integrity}
- H04L 63/126: {the source of the received data}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A middleware system and corresponding methods are described whereby data communications, either inter-device or intra-device, are coordinated using a set of cryptographic identifiers that correspond to computing elements, such as interfaces, methods, parameters, classes, among others, the identifiers used for authentication against an access control list to determine whether an originator device is permitted to use a computational element. The cryptographic identifiers are coupled to data messages being sent across the middleware system.

## Claims

### Claim 1

A computer implemented system for coordinating data messaging, the system comprising:
a processor coupled to computer memory, the processor configured to:
generate a set of cryptographic identifiers representing one or more interaction characteristics of a computational element associated with a hardware device or a software handler;
receive, from a source device, a new message for routing to a target device or a logical target associated with the target device for processing, the new message including at least one cryptographic identifier of the set of cryptographic identifiers;
process the new message based on the computational element corresponding to the at least one cryptographic identifier of the new message; and
route the processed new message to the target device;
wherein the processing of the new message comprises:
(i) authenticating the new message by comparing the at least one cryptographic identifier of the new message using an access control list (ACL) against an identifier of an originator device of the new message to determine whether the originator device is permitted to use the computational element associated with the at least one cryptographic identifier; and
(ii) transforming the new message to indicate authorization of the utilization of the computational element associated with the at least one cryptographic identifier;
wherein the access control list (ACL) is stored on non-transitory computer readable media and includes a data structure storing a plurality of user accounts mapped to a plurality of role identifier labels, each role identifier label of the plurality of role identifier labels coupled with a permissions list defining a set of available computational elements that the role identifier label is permitted to interact with;
wherein the plurality of role identifier labels include at least two of a user label, an administrator label, and a superuser label, and each identifier label of the plurality of role identifier labels includes different associated cryptographic identifiers indicative of different available computational elements that the role identifier label is permitted to interact with.

### Claim 2 (depends on 1)

The system of claim 1, wherein the set of cryptographic identifiers are generated using cascaded hashing across a plurality of interface interaction layers such that the cascaded hashing provides a hierarchy of hashing interrelationships that can be utilized for validation that a lower cryptographic identifier belongs within a higher cryptographic identifier relative to positioning within the plurality of interface interaction layers.

### Claim 3 (depends on 2)

The system of claim 2, wherein the plurality of interface interaction layers include at least two of:
parameters, programmatic systems that include as arguments the parameters, programmatic interfaces that are comprised of the one or more programmatic systems, programmatic classes that are comprised of the one or more programmatic interfaces, programmatic applications that are comprised of the one or more programmatic classes, and programing services that are comprised of the one or more programmatic applications; and wherein the cascaded hashing incorporates the hashing relationships indicative of the relationships between related elements of the plurality of interface interaction layers.

### Claim 4 (depends on 1)

The system of claim 1, wherein the ACL includes one or more registered cryptographic identifiers.

### Claim 5 (depends on 1)

The system of claim 1, wherein the set of cryptographic identifiers are generated using cascaded hashing across a plurality of interface interaction layers such that the cascaded hashing provides a hierarchy of hashing interrelationships that can be utilized for validation that a lower cryptographic identifier belongs within a higher cryptographic identifier relative to positioning within the plurality of interface interaction layers;
and
wherein the authenticating of the new message by comparing the at least one cryptographic identifier of the new message using the access control list (ACL) against the identifier of the originator device of the new message to determine whether the originator device is permitted to use the computational element associated with the at least one cryptographic identifier includes comparing the at least one cryptographic identifier against another cryptographic identifier within the hierarchy of hashing interrelationships.

### Claim 6 (depends on 5)

The system of claim 5, wherein the hierarchy of hashing interrelationships corresponds to a hierarchy of computational object oriented objects in a computer programming language defining which computational object oriented objects inherit or extend from one another, and wherein another cryptographic identifier for comparison is positioned higher within the hierarchy of computational object oriented objects in the computer programming language such that for a successful validation, a computational object oriented object corresponding to the at least one cryptographic identifier would be validated to extend from a computational object oriented object corresponding to the another cryptographic identifier.

### Claim 7 (depends on 1)

The system of claim 1, wherein the access control list (ACL) is used to control which of the plurality of user accounts are able to use a particular bridging interface or protocol transformation.

### Claim 8 (depends on 7)

The system of claim 7, wherein when the particular bridging interface or the protocol transformation is utilized, usage records are generated to track the usage of the particular bridging interface or the protocol transformation.

### Claim 9 (depends on 1)

The system of claim 1, wherein the system is a computer server adapted for providing a message bus hub configured to support synchronous or asynchronous messaging communicated between a plurality of disparate computing devices across a network such that each of computing device of the plurality of disparate computing devices is capable of being designated a source device or a target device for inter-device communications across the message bus hub.

### Claim 10 (depends on 9)

The system of claim 9, wherein the computer server is one of a plurality of computer servers each hosting a separate instance of the system that interoperate to provide the message bus hub.

### Claim 11

A computer implemented method for coordinating data messaging, the method comprising:
generating a set of cryptographic identifiers representing one or more interaction characteristics of a computational element associated with a hardware device or a software handler;
receiving, from a source device, a new message for routing to a target device or a logical target associated with the target device for processing, the new message including at least one cryptographic identifier of the set of cryptographic identifiers;
processing the new message based on the computational element corresponding to the at least one cryptographic identifier of the new message; and
routing the processed new message to the target device;
wherein the processing of the new message comprises:
(i) authenticating the new message by comparing the at least one cryptographic identifier of the new message using an access control list (ACL) against an identifier of an originator device of the new message to determine whether the originator device is permitted to use the computational element associated with the at least one cryptographic identifier; and
(ii) transforming the new message to indicate authorization of the utilization of the computational element associated with the at least one cryptographic identifier;
wherein the access control list (ACL) is stored on non-transitory computer readable media and includes a data structure storing a plurality of user accounts mapped to a plurality of role identifier labels, each role identifier label of the plurality of role identifier labels coupled with a permissions list defining a set of available computational elements that the role identifier label is permitted to interact with;
wherein the plurality of role identifier labels include at least two of a user label, an administrator label, and a superuser label, and each identifier label of the plurality of role identifier labels includes different associated cryptographic identifiers indicative of different available computational elements that the role identifier label is permitted to interact with.

### Claim 12 (depends on 11)

The method of claim 11, wherein the set of cryptographic identifiers are generated using cascaded hashing across a plurality of interface interaction layers such that the cascaded hashing provides a hierarchy of hashing interrelationships that can be utilized for validation that a lower cryptographic identifier belongs within a higher cryptographic identifier relative to positioning within the plurality of interface interaction layers.

### Claim 13 (depends on 12)

The method of claim 12, wherein the plurality of interface interaction layers include at least two of:
parameters, programmatic methods that include as arguments the parameters, programmatic interfaces that are comprised of the one or more programmatic methods, programmatic classes that are comprised of the one or more programmatic interfaces, programmatic applications that are comprised of the one or more programmatic classes, and programing services that are comprised of the one or more programmatic applications; and wherein the cascaded hashing incorporates the hashing relationships indicative of the relationships between related elements of the plurality of interface interaction layers.

### Claim 14 (depends on 11)

The method of claim 11, wherein the ACL includes one or more registered cryptographic identifiers.

### Claim 15 (depends on 11)

The method of claim 11, wherein the set of cryptographic identifiers are generated using cascaded hashing across a plurality of interface interaction layers such that the cascaded hashing provides a hierarchy of hashing interrelationships that can be utilized for validation that a lower cryptographic identifier belongs within a higher cryptographic identifier relative to positioning within the plurality of interface interaction layers;
and
wherein the authenticating of the new message by comparing the at least one cryptographic identifier of the new message using the access control list (ACL) against the identifier of the originator device of the new message to determine whether the originator device is permitted to use the computational element associated with the at least one cryptographic identifier includes comparing the at least one cryptographic identifier against another cryptographic identifier within the hierarchy of hashing interrelationships.

### Claim 16 (depends on 15)

The method of claim 15, wherein the hierarchy of hashing interrelationships corresponds to a hierarchy of computational object oriented objects in a computer programming language defining which computational object oriented objects inherit or extend from one another, and wherein another cryptographic identifier for comparison is positioned higher within the hierarchy of computational object oriented objects in the computer programming language such that for a successful validation, a computational object oriented object corresponding to the at least one cryptographic identifier would be validated to extend from a computational object oriented object corresponding to the another cryptographic identifier.

### Claim 17 (depends on 11)

The method of claim 11, wherein the access control list (ACL) is used to control which of the plurality of user accounts are able to use a particular bridging interface or protocol transformation.

### Claim 18 (depends on 17)

The method of claim 17, wherein when the particular bridging interface or the protocol transformation is utilized, usage records are generated to track the usage of the particular bridging interface or the protocol transformation.

### Claim 19 (depends on 11)

The method of claim 11, wherein the method is conducted on a computer server adapted for providing a message bus hub configured to support synchronous or asynchronous messaging communicated between a plurality of disparate computing devices across a network such that each of computing device of the plurality of disparate computing devices is capable of being designated a source device or a target device for inter-device communications across the message bus hub.

### Claim 20

A non-transitory computer readable medium storing machine interpretable instructions, which when executed by a processor, cause the processor to perform a method for coordinating data messaging, the method comprising:
generating a set of cryptographic identifiers representing one or more interaction characteristics of a computational element associated with a hardware device or a software handler;
receiving, from a source device, a new message for routing to a target device or a logical target associated with the target device for processing, the new message including at least one cryptographic identifier of the set of cryptographic identifiers;
processing the new message based on the computational element corresponding to the at least one cryptographic identifier of the new message; and
routing the processed new message to the target device;
wherein the processing of the new message comprises:
(i) authenticating the new message by comparing the at least one cryptographic identifier of the new message using an access control list (ACL) against an identifier of an originator device of the new message to determine whether the originator device is permitted to use the computational element associated with the at least one cryptographic identifier; and
(ii) transforming the new message to indicate authorization of the utilization of the computational element associated with the at least one cryptographic identifier;
wherein the access control list (ACL) is stored on non-transitory computer readable media and includes a data structure storing a plurality of user accounts mapped to a plurality of role identifier labels, each role identifier label of the plurality of role identifier labels coupled with a permissions list defining a set of available computational elements that the role identifier label is permitted to interact with;
wherein the plurality of role identifier labels include at least two of a user label, an administrator label, and a superuser label, and each identifier label of the plurality of role identifier labels includes different associated cryptographic identifiers indicative of different available computational elements that the role identifier label is permitted to interact with.
