Previous Table of Contents Next


22.13 Routing Object References

   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.