Introduction to C++ Network Programming A significant concept in network programming is to understand how C++ and middleware can help us to address key challenges associated with developing networked applications. Middleware is computer software that connects software components or applications. It is used most often to support complex, distributed applications. It includes web servers, application servers, content management systems, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web services, and service-oriented architecture (SOA). Therefore in order to address key challenges associated with developing networked applications you will need to review the core native OS mechanisms available on popular OS platforms and learn how C++ and patterns are applied in Adaptive Communication Environment (ACE) to encapsulate these mechanisms in class library wrapper facades (frontage/face) that improve application portability and robustness. The ACE is an open-source cross-platform framework of object oriented classes to help the development of communication software. ACE is one of many solutions to a common problem: making easy the use of powerful but complex features of modern operating systems like inter-process communication, thread management, efficient memory management and so on. It was developed by Douglas C. Schmidt and his research group at University of California, Irvine, Vanderbilt University, and Washington University, St. Louis.
1
A wrapper pattern (such as a driver wrapper) is a design pattern where a piece of code allows classes to work together that normally could not because of incompatible interfaces. The wrapper acts as an interface between its caller and the wrapped code. This may be done for compatibility, e.g. if the wrapped code is in a different programming language or uses different calling conventions, for security, e.g. to prevent the calling program from executing certain functions, to provide a level of emulation, e.g. a DirectX API which hides the functions of the video card driver. The implication is that the wrapped code can only be accessed via the wrapper. An application programming interface (API) is the interface that a computer system, library or application provides in order to allow requests for services to be made of it by other computer programs, and/or to allow data to be exchanged between them. ACE is written in C++ and runs on a wide variety of operating systems (most Unixes, Microsoft Windows various versions, real-time systems like VxWorks and QNX, high end systems like OpenVMS). It has enjoyed some success in the communication industry, notably for Motorola Iridium satellites.
2