Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

CORBA Load Balancing with VisiBroker


April 1999/CORBA Load Balancing with VisiBroker/Sidebar

Vendor Approaches to Load Distribution


Both Orbix and VisiBroker include the ability to distribute requests across multiple instances of an interface, albeit in very different fashions. VisiBroker supports request distribution through its Smart Agent architecture, while Orbix's ability relies on an extension to its Naming Service.

The VisiBroker Smart Agent architecture is implemented through the osagent, which, among other things, is a distributed directory service used by clients to locate needed implementations. When a client binds to an interface, the osagent selects from among all known implementations of that interface in a round-robin fashion.

Iona took a different approach by extending its Naming Service to include what it calls Object Groups. An Object Group is a set of objects sharing a common name in the Naming Service. When an application resolves that shared name, the Naming Service returns a reference to one of the objects within that group, based on the group's selection policy defined when the group was created. The only policies available are round robin and random.

Although implemented in decidedly different fashions, both of these mechanisms suffer from the same limitations: they are not portable, intelligent, or extensible. Orbix's Object Groups are not available under any other implementation of the Naming Service. Further, Object Groups require additional management by the application developer, since objects must be manually added to, and removed from, the group. And, in most cases, the developer must ensure that all objects within an Object Group implement the same interface.

That last restriction is difficult to enforce, since anyone can add an object to an Object Group. Smart Agent alleviates management problems associated with Object Groups by providing a dynamic directory service in which all globally scoped objects are automatically registered and unregistered with the osagent. Request distribution and fault tolerance facilities are available only when the application is using the non-portable _bind method to obtain an object reference.

While additional management requirements and lack of portability are concerns, in most situations the lack of control over the selection mechanism is considered the more severe limitation. This relates to a lack of intelligence in that neither VisiBroker nor Orbix take into account any sort of load in making the object selection. In their defense, trying to define a universally acceptable measure of load would be a futile task. The next best approach would be using the ability to customize their selection heuristics. Unfortunately, neither Object Groups nor Smart Agent allow this. Their mechanisms are fixed, and the developer has only limited ability to influence them and no ability to override them.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.