Bosch IoT Remote Manager supports three different options for remote tunneling - HTTP Tunnel, JSON-RPC Tunnel and Secure Websocket Tunnel. Through these tunnels, third-party backend servers or applications can use Remote Manager for secure communication with gateways and/or OSGi end devices. For that purpose, they use Remote Manager's publicly available HTTP host and port, as well as its Messaging Service.
The scheme below shows the gateway-side components accessed by each tunnel.
The following table presents the key benefits, similarities and differences between the tunnels in terms of their most important features - security, throughput, etc. The priority features of each use case will determine the most suitable tunnel for it.
Tunnel | General Purpose | Key Benefits | Security / Encryption | Authentication | Genericity | Scalability | Throughput / Latency | Packet size / Overhead |
|---|
JSON-RPC Tunnel | - Tunnels JSON-RPC HTTP requests
- Used by web applications to retrieve data from gateways via JSON-RPC calls
| - Optimized for JSON-RPC requests
- Offers maximum performance but is very specific - the application must be written especially for this tunnel
- Used by applications working with JSON calls to gateways
| - HTTPS from application to Remote Manager
- TLS termination on RM Messaging over TLS or WSS between RM and gateway
- I.e. the data is decrypted and encrypted again on RM
| - Optional HTTP basic user authentication
| - JSON requests to the gateway
| - Offers maximum scalability***
| - Offers maximum throughput and minimum latency ***
| - Lowest data size overhead***
|
HTTP Tunnel | - Tunnels generic HTTP requests to gateways
- Unidirectional (request-response) communication model
| - Browser-friendly
- Simple to use
- Suitable for any type of HTTP resources
| - HTTPS from application to Remote Manager
- TLS termination on RM Messaging over TLS or WSS between RM and gateway
- I.e. the data is decrypted and encrypted again on RM
| - Optional HTTP basic user authentication
| - Generic HTTP requests to the gateway
| - Offers mid-level scalability **
| - Offers mid-level throughput and mid-level latency, due to the stream-based request-response model **
| - Lower data size overhead**
|
Secure Websocket Tunnel | - A general purpose tunnel
- Persistent bidirectional communication via a socket opened on the gateway
- Multiplexing (multiple requests and responses can be sent simultaneously)
- Requires a dedicated module on the application client side, which opens a local server port (application communicates through it); not browser friendly option.
| - Best choice for general purpose tunneling
- Best choice for security and encryption, but slower than other tunnels
| - Offers end-to-end TLS-based encryption of the data (without intermediate decryption on RM)
- Offers maximum security
- Data is always encrypted, transferred as raw binary data
| - Obligatory access tokens, granted on a per-client basis
- Further authentication may still be enforced, if required
| - All kinds of TCP connections
- Tunnels any protocol requests (MQTT, AMQP, REST, etc.)
| - Least suitable option in terms of scalability*
| - Higher latency because of additional component (proxy vpn client)*
| |
The HTTP and JSON-RPC tunnels can be combined with Remote Events Service , which tunnels push event notifications via legacy subscriptions. For details on how to implement it, check the corresponding page in our Programmer's Guide.