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 |