Skip to content

Latest commit

 

History

History
139 lines (92 loc) · 6.94 KB

glossary.md

File metadata and controls

139 lines (92 loc) · 6.94 KB

Glossary

When you are new to RelayServer or coming from an older version, there can be a lot of words to learn. This glossary aims to give you a 25.000-feet overview of common terms and what they mean in the context of RelayServer.

A | B | C | I | M | R | S | T

A

Authentication

RelayServer v3 supports different types of authentication for different use cases. Connectors, by default, use OAuth 2 client credential authentication to be able to securely communicate with the RelayServer. However you can customize and change that.

When you want to use the Management API or the Statistics API, we suggest that you use your own existing OIDC-based Identity Provider and configure your clients and the APIs to use this. The demo service uses API keys authentication as an example.

B

Body Store

The Body Store is a storage where the body contents of Requests and Responses are stored while a request is being processed. By default a file-based storage is used. An in-memory store is available, too. Bodies are only written to the Body Store when they are too large to be sent inline through the configured Transport.

C

Client

A Client is an external application or a service, which is sending a Request to a Target, that is made accessible through the RelayServer.

Connector

The Connector is a piece of software that runs on a physical location where you want to access local services (aka Targets). The network where the Connector is located in, is usually not publicly accessible from the internet. The Connector creates a connection to the RelayServer, through which the server can send a Request to the connector. The connector then requests the internal Target and relays its Response back to the server, which then relays it back to the requesting Client.

For reasons of higher availability and load balancing, the Connector can be run multiple times at the same location / network. All Connectors on a specific physical location are logically referred to as a Tenant.

The Connector was formerly called OnPremisesConnector (short OPC) in RelayServer v2.

I

Interceptor

An Interceptor is a piece of code that you can provide via dependency injection which is able to intercept

Interceptors are a flexible way of extending the RelayServer functionality and can be used to modify the corresponding Requests or Responses by changing the url, method, http headers or the body ( payload).

Note: In RelayServer v2 there was also the concept of Interceptors that were executed within the OnPremisesConnector (OPC), before and after a request was passed to the Target. In RelayServer v3 this was changed and you can now implement a custom RelayTarget class to provide the same functionality.

M

Management API

The Management API is a separate service that you can host publicly alongside the RelayServer or only on your private network. The Management API allows the management (creation, configuration, removal) of Tenants.

In RelayServer v2, similar endpoints were an integral part of the RelayServer host process.

R

RelayServer

The RelayServer is a service that usually is publicly available on the internet. Its main purpose is to receive Requests from Clients, and pass them to a Connector that belongs to the corresponding Tenant. It then waits for the Response to be sent back, and passes it back to the Client. This process is referred to as Relaying.

RelayTarget

A RelayTarget is a class that implements handling of a Requests within a Connector. The default RelayWebTarget implementation simply executes the Http(s) Requests against the Target and returns the Response. In order to provide the same functionaly as you could with RelayServer v2 Connector-Side Interceptors, you now can implement your own RelayTarget and add your custom logic here.

Request

The Request represents an external request from a Client. It can be intercepted and modified while being processed by the RelayServer. It will be passed on to a Target via the Connector.

Response

A Response always corresponds to a Request. When the Request was executed by the Target, the Connector will receive the Response and send it back to the RelayServer to be passed back to the Client.

S

Statistics API

The Statistics API is a service that you can host publicly alongside the RelayServer or only on your private network. The Statistics API will provide you with statistical data about the whole system, i.e. how many Requests have been handled in what time frame, for what Tenant these were handled, how many bytes were transferred, how many Connectors are connected and a lot of more data.

In RelayServer v2, similar endpoints were an integral part of the RelayServer host process.

T

Target

A Target describes a service that is usually not directly exposed to the internet. Instead it is accessible via a Request sent to the RelayServer. This Request is then relayed through a Connector into the Tenants network and then executed. The Response of the Target is then sent back to the RelayServer, which will then relay it back to the Client.

Tenant

The Tenant describes a physical location (on-premises) where one or more Connectors are installed and ready to relay requests to local Targets that are provided by the Tenant.

The Tenant was formerly called Link in RelayServer v2.

Transport

Different communication channels between Connectors and the RelayServer as well as between multiple RelayServer instances are called Transport. By default, RelayServer uses three different Transports: RabbitMQ for communication between RelayServer instances, SignalR for communication from a RelayServer to a Connector and HTTPS for communication from a Connector back to the RelayServer.