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)*
  • Low data size overhead*


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.