URI stands for Uniform Resource Identifier and provide a format for identifying a resource and even a way of locating that resource within a space. Common examples of URIs are website addresses (http://www.kernel.org), and folder paths on your computer (file://C:/Program Files or file:///usr/local/lib). They are also used in certain databases
The format is logically broken into sections such as scheme, hierarchy, path, data. By using a URI you can describe a resource (files, folders, websites, databases, users) within a certain context and this can eventually be resolved down to how the computers represent the resource. It also means that the same resource can be described using different contexts, so a resource might be a file in one context but then represents a user in another context; Like most things with computers -- it's all about abstraction!
The Spring network uses the URI format to describe and resolve the organisation of nodes and their services in terms of the network and this is part of what we mean by a common communication space -- all the organisations have this common and relevant context.
A Spring URI consists of several components similar to a web site URI
- spring: is the scheme component and tells the network to process the URI components in terms of the network
- //foo.esusx.uk is the authority component and describes a map for locating the target node
- /bulletin/ is the path component and describes the service resource in terms of the authority or node
- ?limit=3&tags=network is a the query component and is used to feed filters, limiters and specifiers to the service