Papers on Smart Pointers in C++
and Evolutionary Delivery and a more detailed consideration
of idiomatic use of the STL are also available
at this site. For more information on the author, please take a look at
my software and home
pages.
Experiences with ORBs
Report on a Birds of a Feather session at Object
Technology 97
Oxford, England, 15 April 1997
David Harvey
(c) 1997 David Harvey. All rights reserved.
This BOF session brought together nearly thirty people to share their
experiences of building distributed systems with ORB technology. A third
of the group had implemented one or more ORB-based systems, another third
were involved in evaluating the technology, the remainder came to see what
was going on in the field. Here are some conclusions and observations.
Products
Unsurprisingly, the most widespread product reported in evaluation and
use was Iona Technologies' Orbix. Other vendors represented (generally
as singletons) were ICL (DAIS), ParcPlace (Distributed Smalltalk) and Visigenic
(VisiBroker).
Criteria for evaluation
These included
-
support for COSS services
-
scalability
-
interoperability
A significant problem with evaluation was the lack of reference sites with
significantly-sized implementations ('large' appears to mean 10-20 clients
in many cases). I was surprised at the number of single-vendor evaluations
in progress (to me, these are investigations, not evaluations).
Uses
The technology is being evaluated and used for a variety of systems, including
-
Data warehousing
-
Telecommunications
-
Live data-feed processing
-
Financial systems
-
Integration of legacy systems
Motivations for using the technology (beyond basic distribution support)
included location transparency (deferring the decision on whether an object
should reside in a client or server process) and integration with underlying
ODB products.
Observations
-
Management distrust the technology.
-
For small-scale relatively simple architectures, a couple of individuals
reported that 'out of the box' usage was considerably simpler than expected.
Hints
-
Limit ambition
-
Freeze interfaces
-
Keep interfaces simple (the narrower the better)
-
Take great care with transactional issues. Restrict resource locking
to the duration of a single call at a server.
Problems
-
Quality and stability of implementations (particularly with respect to
memory management)
-
Performance (marshalling of complex data caused one distributed system
to become effectively CPU-bound)
-
Security (lack of support)
-
Scalability (lack of current support for transactions, no built-in load-balancing,
or indeed tools to enable load to be determined)
-
Interoperability (between C++ and Java versions of ORBs, and between different
vendors' products)
-
Lack of tools to assist in deployment and management of ORB-based systems
-
Recovery behaviour
Conclusion
At a final show of hands, the response to the question "Is this technology
currently stable enough to support large-scale distribution" was hardly
encouraging to the developers of this technology: only four of the group
answered yes, and in all cases with reservations.
Maybe next year we'll have a more optimistic picture to present. Many
thanks to all who attended!