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