URI Schema » History » Version 45

« Previous - Version 45/59 (diff) - Next » - Current version
J. Moringen, 05/26/2011 03:39 AM
initial restructuring


URI Schema

Use Cases

URIs or URLs are used in the following situations
  • Specifying how to connect to the bus
  • Naming a thing on the bus
    • A channel
    • A participant
      • A service

Generic

Syntax and Semantic

rsb://[PATH][#FRAGMENT]

Components of the URL are interpreted as follows:

  • SCHEME -> has to be "rsb"
  • PATH -> A scope which designates a one of the following things
    • A channel
    • A participant
      • A service (which is-a participant)
  • FRAGMENT ->
    • Not allowed when designating a channel
    • ID of a participant otherwise

This may resolve to:

  • Service and/or Participant
    • If there is only one of these entities this is enough for resolving it
    • If multiple entities reside on this scope, a single instance can be selected using their UUID.
      rsb:///hierarchical/service/definition/further/to/participant#UniqueIDOfParticipant [UUID]
  • Nothing

These generic URIs require a global naming service.

Rationale

Usually location transparency should be available.

Transport-Specific

Syntax and Semantic

[SCHEME://][HOST][:PORT][PATH][#FRAGMENT][?QUERY]
transport://<location.transport.specific[:PORT]>/hierarchical/service/definition/further/to/participant

Components of the URL are interpreted as follows:
  • SCHEME -> transport name (e.g spread)
  • HOST -> Transport-specific "host" option (e.g. host that runs the daemon for Spread)
  • PORT -> Transport-specific "port" option (e.g. port on which Spread daemon listens)
  • PATH -> A scope which designates a one of the following things
    • A channel
    • A participant
      • A service (which is-a participant)
  • FRAGMENT ->
    • Not allowed when designating a channel
    • ID of a participant otherwise
  • QUERY -> "freestyle" transport options

What does this mean?

Location uniquely identifies a single participant or service, hence an ID part is not required any more.
Specific IDs can be resolved by the respective connectors and do not require a global naming.

Rationale

  • Transport-specific access is possible without naming service.
  • UUIDs should ideally not be required to keep URIs simple