Object-Oriented Components for High-speed Network Programming
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 high-bandwidth, low-delay 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, higherlevel 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.
Distributed object computing (DOC) frameworks like the Common Object Request BrokerArchitecture (CORBA) [1], OODCE [2], and OLE/COM [3] are well-suited for applications that exchange richly typed data via request/response or oneway communication. However, current implementations of DOC frameworks may be less suitable for an important class of performance-sensitive applications that stream relatively simple datatypes over high-speed networks. Medical imaging, interactive teleconferencing, and video-on-demand are common examples of this class of streaming applications.
Streaming applications with stringent throughput and delay requirements are ideal candidates for high-speed networks such as ATM and FDDI. However, these applications may not be able to tolerate the overhead associated with contemporary DOC frameworks. This overhead stems from non-optimized presentation layer conversions, data copying, andmemory management; inefficient and inflexible receiverside demultiplexing and dispatching operations; synchronous stop-and-wait flow control; and non-adaptive retransmission timer schemes. Meeting the throughput demands of streaming applications has traditionally required direct access to network programming interfaces such as sockets [4] or System V TLI [5]. These lower-level interfaces are efficient since they omit unnecessary functionality (such as presentation layer conversions for ASCII data). They also allow finegrained control of memory management, protocol buffering, demultiplexing, and flow control.
…
Website: www.cs.wustl.edu | Filesize: 166kb
No of Page(s): 20
Click here to download Object-Oriented Components for High-speed Network Programming.
Related Tutorial
Tags: networking, TCP/IP, Unix, Windows
Comments
Leave a Reply