URI Schema » History » Version 47

J. Moringen, 05/26/2011 03:48 AM
examples for generic URIs

1 1 J. Wienke
h1. URI Schema
2 1 J. Wienke
3 45 J. Moringen
h2. Use Cases
4 1 J. Wienke
5 45 J. Moringen
URIs or URLs are used in the following situations
6 45 J. Moringen
* Specifying how to connect to the bus
7 45 J. Moringen
* Naming a thing on the bus
8 45 J. Moringen
** A channel
9 45 J. Moringen
** A participant
10 45 J. Moringen
*** A service
11 1 J. Wienke
12 46 J. Moringen
h2. Generic URIs
13 45 J. Moringen
14 45 J. Moringen
h3. Syntax and Semantic
15 45 J. Moringen
16 1 J. Wienke
<pre>
17 45 J. Moringen
rsb://[PATH][#FRAGMENT]
18 1 J. Wienke
</pre>
19 45 J. Moringen
20 45 J. Moringen
Components of the URL are interpreted as follows:
21 45 J. Moringen
22 45 J. Moringen
* @SCHEME@   -> has to be "rsb"
23 45 J. Moringen
* @PATH@     -> A [[Glossary|scope]] which designates a one of the following things
24 45 J. Moringen
** A channel
25 45 J. Moringen
** A participant
26 45 J. Moringen
*** A service (which is-a participant)
27 45 J. Moringen
* @FRAGMENT@ -> 
28 45 J. Moringen
** Not allowed when designating a channel
29 45 J. Moringen
** ID of a participant otherwise
30 45 J. Moringen
31 1 J. Wienke
This may resolve to:
32 44 J. Wienke
33 1 J. Wienke
* Service and/or Participant
34 1 J. Wienke
** If there is only one of these entities this is enough for resolving it
35 1 J. Wienke
** If multiple entities reside on this scope, a single instance can be selected using their UUID.
36 43 J. Wienke
   @rsb:///hierarchical/service/definition/further/to/participant#UniqueIDOfParticipant [UUID]@
37 1 J. Wienke
* Nothing
38 43 J. Wienke
39 1 J. Wienke
These generic URIs require a global naming service.
40 1 J. Wienke
41 47 J. Moringen
Examples:
42 47 J. Moringen
<pre>
43 47 J. Moringen
rsb: -> The channel designated by the scope "/"
44 47 J. Moringen
rsb:/// -> The channel designated by the scope "/"
45 47 J. Moringen
rsb:///foo/bar -> The channel designated by the scope "/foo/bar"
46 47 J. Moringen
rsb:///foo/bar#10838319-09A4-4D15-BD59-5E054CDB4403 -> The participant with UUID 10838319-09A4-4D15-BD59-5E054CDB4403
47 47 J. Moringen
</pre>
48 47 J. Moringen
49 45 J. Moringen
h3. Rationale
50 1 J. Wienke
51 45 J. Moringen
Usually location transparency should be available.
52 45 J. Moringen
53 46 J. Moringen
h2. Transport-specific URLs
54 45 J. Moringen
55 45 J. Moringen
h3. Syntax and Semantic
56 45 J. Moringen
57 30 S. Wrede
<pre>
58 46 J. Moringen
[SCHEME://][HOST][:PORT][PATH][?QUERY][#FRAGMENT]
59 1 J. Wienke
transport://<location.transport.specific[:PORT]>/hierarchical/service/definition/further/to/participant
60 1 J. Wienke
</pre>
61 45 J. Moringen
Components of the URL are interpreted as follows:
62 1 J. Wienke
63 45 J. Moringen
* @SCHEME@   -> transport name (e.g spread)
64 45 J. Moringen
* @HOST@     -> Transport-specific "host" option (e.g. host that runs the daemon for Spread)
65 45 J. Moringen
* @PORT@     -> Transport-specific "port" option (e.g. port on which Spread daemon listens)
66 45 J. Moringen
* @PATH@     -> A [[Glossary|scope]] which designates a one of the following things
67 1 J. Wienke
** A channel
68 45 J. Moringen
** A participant
69 45 J. Moringen
*** A service (which is-a participant)
70 46 J. Moringen
* @QUERY@    -> "freestyle" transport options
71 45 J. Moringen
* @FRAGMENT@ -> 
72 45 J. Moringen
** Not allowed when designating a channel
73 45 J. Moringen
** ID of a participant otherwise
74 45 J. Moringen
75 45 J. Moringen
What does this mean?
76 45 J. Moringen
77 45 J. Moringen
 Location uniquely identifies a single participant or service, hence an ID part is not required any more.
78 42 J. Wienke
Specific IDs can be resolved by the respective connectors and do not require a global naming.
79 14 S. Wrede
80 45 J. Moringen
h3. Rationale
81 42 J. Wienke
82 45 J. Moringen
* Transport-specific access is possible without naming service.
83 1 J. Wienke
* UUIDs should ideally not be required to keep URIs simple