COSMOS Design 205658: Service Group in Management Domain i8
A management domain is a registry of brokers. It allows clients to look up addresses of brokers, which in turn provides addresses of data managers. Data managers also gets address of the broker from the management domain, where they register themselves. In other words, it's the entry of the system.
In i7, the management domain uses an XML file to hold the addresses brokers. A WS-RP property is used to retrive the "default broker" - the broker named "Default" or the first broker if no broker called "Default" exist. This implementation can be extended to support other kinds of brokers (data broker, service broker, notification broker, etc.), but each type of broker requires a separate property set up at the management domain. The limitation with this approach is that the types of supported brokers need to be configured in the management domain ahead of time.
There are similarities between the functions of the management domain and the broker. They are both address registries with simple indexing, query and data persistence capabilities. There is a proposal to use web services service groups to implement brokers in i8. It is a natural extension to use the same mechanism in the management domain. This approach will allow both management domain and broker to share the same codebase. Only the configuration of the service groups differ.
Clients can search for broker address by the broker capability. We no longer need to pre-configure the broker type value at the management domain. The service group can also be configured to contain other attributes of the brokers, such as the name (Caption), description, etc. The search criteria can also include these attributes. Data persistence of the service group is provided by the MUSE implementation. Each broker type can contain one or more brokers. This will allow the flexibility of having multiple brokers of the same type, for redundancy or other reasons.
Use Case 1: Data Managers query for broker address
- Data manager asked management domain for broker(s) given a broker type (e.g. data broker). The data manager then registers itself with the broker by using the ServiceGroupRegistration add operation. If more than one broker is returned by the broker, the data manager will register with them one by one.
Use Case 2: COSMOS Client query for broker address
- Client look up broker addresses at the management domain by providing a broker type. Zero or more brokers will be returned.