# US 10,372,887 B2 · Broker-based messaging through SQL

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

- Number: US 10,372,887 B2
- Document ID: US10372887B2
- Status: Granted
- Kind: B2
- Application number: 15/168,491
- Filed: 2016-05-31
- Published: 2017-11-16
- Granted: 2019-08-06
- Earliest claimed: 2016-05-11
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Dirk Sabiwalsky; Henrike Schuhart; Christoph Scheiber; Timur Fichter
- Web page: https://patentgrep.com/patent/US10372887B2

## CPC

- G06F 21/31: User authentication
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 16/2455: Query execution
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 67/562: Brokering proxy services
- H04L 63/0884: {by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The disclosure generally describes methods, software, and systems, including a method for publishing messages through a messaging client of a database server. A message to be published to one or more message brokers is received at a server and from a database client. The message is in the form of a SQL statement. The received message is processed at the server. Message broker configurations associated with the received message are determined. The message is published to the one or more message brokers by invoking a messaging client at the server and using at least the message broker configurations.

## Claims

### Claim 1

A computer-implemented method comprising:
defining a message-sending procedure, the message-sending procedure being a built-in procedure in a database and configured to invoke a messaging client at a database server to publish messages to one or more message brokers using at least message broker configurations;
receiving, at the database server and from a database client:
a message in the form of a structured query language (SQL) statement to be published to the one or more message brokers; and
a definition of a message broker destination;
processing, at the database server, the received message;
determining the message broker configurations associated with the received message;
before publishing the message, retrieving information associated with the message broker for use in publishing the message, wherein the definition of the message broker destination includes a schema name, an identifier for a particular message broker, a distribution type, and a connection string identifying a host, a port, and connection parameters for connecting to a particular message broker; and
publishing, by calling a message-sending procedure built into the database and the message-sending procedure invoking the messaging client at the database server, the message to the one or more message brokers using at least the message broker configurations, wherein publishing the message includes using a previously-stored message broker configuration or using a new message broker configuration received from the database client with the message to be published.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the SQL statement is a call statement including a schema name, a message broker identifier, a topic, a quality of service, and the message.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the quality of service is a code that indicates that the message is to be published at least once, at most once, or exactly once.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving, at the database server and from the database client, user credentials for authentication, by the database server, with the message broker prior to publishing the message; and
before publishing the message, authenticating with the message broker using the received credentials.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein receiving the user credentials includes receiving, from the database client, credential creation statements identifying a user identifier and a password for the user.

### Claim 6 (depends on 4)

The computer-implemented method of claim 4, wherein the user credentials are received with the message.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the message further identifies the message broker, and wherein publishing the message include accessing user credentials in a credential store.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein publishing the message does not require that the message be sent, to the message broker, from an application layer outside of the database server.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the message includes one or more of a text message and one or more data elements from database tables.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, further comprising:
executing database triggers in the database server upon a change in a database;
generating, using trigger information from the triggers, a trigger-initiated message to be published; and
publishing, by invoking the messaging client at the database server, the trigger-initiated message to the one or more message brokers using at least the message broker configurations and the trigger information.

### Claim 11

A system comprising:
memory storing user preferences, user contexts and optimized queues; and
one or more servers performing operations comprising:
defining a message-sending procedure, the message-sending procedure being a built-in procedure in a database and configured to invoke a messaging client at a database server to publish messages to one or more message brokers using at least message broker configurations;
receiving, at the database server and from a database client:
a message in the form of a structured query language (SQL) statement to be published to the one or more message brokers;
a definition of a message broker destination;
processing, at the database server, the received message;
determining the message broker configurations associated with the received message;
before publishing the message, retrieving information associated with the message broker for use in publishing the message, wherein the definition of the message broker destination includes a schema name, an identifier for a particular message broker, a distribution type, and a connection string identifying a host, a port, and connection parameters for connecting to a particular message broker: and
publishing, by calling a message-sending procedure built into the database and the message-sending procedure invoking the messaging client at the database server, the message to the one or more message brokers using at least the message broker configurations, wherein publishing the message includes using a previously-stored message broker configuration or using a new message broker configuration received from the database client with the message to be published.

### Claim 12 (depends on 11)

The system of claim 11, wherein the SQL statement is a call statement including a schema name, a message broker identifier, a topic, a quality of service, and the message.

### Claim 13 (depends on 12)

The system of claim 12, wherein the quality of service is a code that indicates that the message is to be published at least once, at most once, or exactly once.

### Claim 14 (depends on 11)

The system of claim 11, the operations further comprising:
receiving, at the database server and from the database client, user credentials for authentication, by the database server, with the message broker prior to publishing the message; and
before publishing the message, authenticating with the message broker using the received credentials.

### Claim 15

A non-transitory computer-readable media encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
defining a message-sending procedure, the message-sending procedure being a built-in procedure in a database and configured to invoke a messaging client at a database server to publish messages to one or more message brokers using at least message broker configurations;
receiving, at the database server and from a database client:
a message in the form of a structured query language (SQL) statement to be published to the one or more message brokers; and
a definition of a message broker destination;
processing, at the database server, the received message;
determining the message broker configurations associated with the received message;
before publishing the message, retrieving information associated with the message broker for use in publishing the message, wherein the definition of the message broker destination includes a schema name, an identifier for a particular message broker, a distribution type, and a connection string identifying a host, a port, and connection parameters for connecting to a particular message broker; and
publishing, by calling a message-sending procedure built into the database and the message-sending procedure invoking the messaging client at the database server, the message to the one or more message brokers using at least the message broker configurations, wherein publishing the message includes using a previously-stored message broker configuration or using a new message broker configuration received from the database client with the message to be published.

### Claim 16 (depends on 15)

The non-transitory computer-readable media of claim 15, wherein the SQL statement is a call statement including a schema name, a message broker identifier, a topic, a quality of service, and the message.

### Claim 17 (depends on 16)

The non-transitory computer-readable media of claim 16, wherein the quality of service is a code that indicates that the message is to be published at least once, at most once, or exactly once.

### Claim 18 (depends on 15)

The non-transitory computer-readable media of claim 15, the operations further comprising:
receiving, at the database server and from the database client, user credentials for authentication, by the database server, with the message broker prior to publishing the message; and
before publishing the message, authenticating with the message broker using the received credentials.
