Object-Oriented Components for High-speed Network Programming
Douglas C. Schmidt, Tim Harrison, and Ehab Al-Shaer
schmidt@cs.wustl.edu, harrison@cs.wustl.edu, and ehab@cs.wustl.edu
Department of Computer Science
Washington University
St. Louis, MO 63130
(314) 935-7538
Abstract
This paper makes two contributions to the development and evaluation
of object-oriented communication software. First, it reports
performance results from benchmarking several network programming
mechanisms (such as sockets and CORBA) on Ethernet and ATM networks.
These results illustrate that developers of bandwidth-intensive and
delay-sensitive applications (such as interactive medical imaging or
teleconferencing) must evaluate their performance requirements and the
efficiency of their communication infrastructure carefully before
adopting a distributed object solution. Second, the paper describes
the software architecture and design principles of the ACE
object-oriented network programming components. These components
encapsulate UNIX and Windows NT network programming interfaces (such
as sockets, TLI, and named pipes) with C++ wrappers. Developers of
object-oriented communication software have traditionally had to
choose between high-performance, lower-level interfaces provided by
sockets or TLI or less efficient, higher-level interfaces provided by
communication frameworks like CORBA or DCE. ACE represents a midpoint
in the solution space by improving the correctness, programming
simplicity, portability, and reusability of performance-sensitive
communication software.
Download the full text of this paper in
ASCII (62,217 bytes) and
POSTSCRIPT (403,566 bytes) form.
To Become a USENIX Member, please see our
Membership Information.