Previous | Table of Contents | Next |
This specification is designed to support scenarios in which a target may be disconnected for a long period of time. It would
be inefficient for a client’s router to need to monitor the availability of all targets for which it holds outstanding requests.
To make this scenario scalable, it is possible for the target to specify a more highly available temporary destination for
its asynchronous requests. This destination is a Router, and the natural place for the target to specify this Router’s location
is within a component of the Target’s IOR. For extensibility, this specification defines a TaggedComponent that contains a
sequence of Router IORs.
module MessageRouting { const IOP::ComponentId TAG_MESSAGE_ROUTERS = 3;
interface Router; typedef sequence<Router> RouterList;
};
A TaggedComponent containing Target routing hints is built by setting the tag member to MessageRouting::TAG_MESSAGE_ROUTERS
and the component_data to a CDR encapsulation of a MessageRouting::RouterList. This component can appear in TAG_INTERNET_IOP
and TAG_MULTIPLE_COMPONENTS profiles.
Routers are listed in this sequence in order from most highly available to least highly available. It is expected that the
least highly available Router will be “closest? to the Target, whereas the most highly available Target Router will be “closest?
to the
Internet. For example, the target in the reference example of Section 22.12, “Section
III - Introduction,? on page 22-44 would have an IOR containing a
TAG_MESSAGE_ROUTERS Component containing a sequence of two Router IORs. The first element in this sequence would be the reference
of TargetRouter1 and the second element would be the reference of TargetRouter.