A service repository is a catalogue in which you can see what services are available on a network. For instance, imagine you have a service oriented architecture in a bank. In the beginning when the number of services is low it might be possible to keep track of what services are running where in spreadsheets etc. But when the number of services grow, this method may not continue to be suitable.
Instead of keeping track of services manually, you can register the services in a service repository. To find out what services are available on the network you query the service repository. This can be done via a standardized interface, meaning computerized clients can do this. It does not have to be done by a human. The following diagrams illustrates this:
|A client looks up a service location in a repository, and calls the service afterwards.|
Several service oriented technologies have a service repository mechanism. For instance, in the web service world you have UDDI repositories, and in Jini you have a service registry.
Easier Service Relocation
If clients lookup the services they need via a service repository, relocating a service becomes easier. You just update the service repository with the new location of the service, and instruct all clients to lookup the service location again (e.g. by simply restarting each client application). This is somewhat easier than having to update the configuration of each client with the new network location of the relocated service.