Abstracting Low-Level Network Programming with ACE, A Pattern-Oriented Network Programming Framework.
Michael LeMay, Jack S.E. Tan · 2004
Abstract — Network protocols such as the File Transfer Protocol (FTP) have been vital to the success of the Internet. Network operating systems have developed APIs to allow application programmers to easily implement these protocols. The most popular API in usage today is the BSD Sockets API. This API provides low-level operations for performing connection establishment, message transmission and reception and provides ways to configure various low-level network parameters. However, this low-level API forces network programmers to duplicate code in and between applications, lends itself very poorly to common Object-Oriented and Pattern-Oriented software design methodologies and reduces the level of abstraction present in an application, making the application much more difficult to comprehend, extend and maintain. By applying a popular C++ network programming framework, ACE, it is possible to retain all the lowlevel detail and flexibility offered by the Sockets API while addressing its shortfalls.