The C++ Middleware Writer (CMW) is the back tier of a 3-tier system:

  1. CMW (server) (back tier)
  2. CMW Ambassador (CMWA) (UDP server) (middle tier)
  3. genz (runs and exits) (front tier)

The middle and front tiers have to be downloaded and built in order to use the CMW. A C++ compiler with support for std::string_view is needed to build the software.

An account is needed to use the CMW. To get an account send an email to support at and include a password between 10 and 50 characters long for your account. We'll reply by giving you an account number. After receiving your account number, update your cmwAmbassador.cfg file accordingly.

Links to some files in the archive:
cmwAmbassador.cfg -- Middle tier config file.
middle_back.mdl -- Middle file that specifies what to generate.
zz.middle_back.hh -- CMW output based on middle_back.mdl.

Gcc/Clang specific files:

Visual Studio specific files:

Why use a 3-tier architecture?

Originally we used a 2-tier system. We switched to a 3-tier architecture for performance, network administrative and security reasons. In the 2-tier architecture, the front tier had to establish a TCP connection to the back tier each time it ran. In the 3-tier architecture, the middle tier keeps a TCP connection with the CMW and uses it to serve front tier instances.

In the 2-tier architecture, every user had to be given permission to get through your firewall in order to communicate with the CMW. With the 3-tier architecture, all requests are mediated by the ambassador so only the machine the ambassador is running on needs attention from a network administrator.


The C++ Standard Library

What every professional C++ programmer should know about the standard library.

By Rainer Grimm

With C++11 and C++14 we have a lot of new C++ libraries. In addition, the older libraries are greatly improved. The key idea of this book is to give you the necessary information on the new and older libraries in about 200 pages. This book assumes you are familiar with C++. If C++ is new to you, you should start with a textbook about core C++. Once you have mastered a book about the core language, you can take your next step by reading this book. To make the job easier, there are a lot of short code snippets to connect theory and practice.

Read more