Search My Blog & Website

Tuesday, December 23, 2008

Is there a difference between a SOA repository and a SOA registry?

Generally speaking a registry is a location that stores information about registered entities. A few of examples of registries could be a town's birth registry which records all births in the town, a College class registration office, and an annual article index of a publication which lists all articles that appeared in the publication during a particular year.

Registry is defined in the Webster's College Dictionary as the "place where a register is kept", and the dictionary defines register as "a book in which records of events, names, etc., are kept".

In the examples provided above we see that the birth registry will contain a list of all names of people who were born in the town, their dates of birth and maybe some other information like the address at the time of birth, ages of parents, names of parents, etc. We do not expect to see the actual people in the registry ! The people will be in their offices, homes or wherever else.

Similarly, in the case of the annual article index, which is another form of registry we expect to see the titles and dates of publication of articles that appeared in the publication during that year. We do not expect to find the articles themselves in the index of articles.

A repository on the other hand is a location where actual artifacts are stored. We can guess that for the example of the birth registry, the actual repository would be hospitals, delivery clinics and places where people give birth. This is where we can actually find the babies.

Similarly in the case of the article index, the actual articles would be find in the various issues of the publication throughout the year, and would be stored in a library.

Repository is defined in the Webster's College Dictionary as " a place where things are deposited, stored or offered".

So now in the context of SOA, we can define the Service Registry and Service Repository as follows.

Service Registry
A comprehensive list of all SOA services available to an enterprise to achieve a business objective. The list would include the service identification information, location of the service, service classification (purpose), and information about how to interact with the service.

Service Repository
A storage location that houses the SOA service and its components, is involved in controlling access to the service and the presentation of the service to its users

If we ponder for a moment we notice that some key areas of a SOA service are neither part of a service registry or service repository - at least by defintion. For example a service's history, statistics about the the service, performance reports, etc.. by definition are not part of the repository. Some SOA implementations or frameworks might decide to store such service management reports and information in the repository, others might wish to develop a SOA Service Management Repository which will house that kind of informaton.