Is it possible to have several applications (servers or clients) in one process?
By default it is not possible to have several applications in the same process, the limitation is caused by several singletons which are accessible from the entire process.
The closest approach is to use several Client::Sessions or Server::Endpoints and configure them with individual application instance certificates (see Client::Session::setInstanceCertificate() and Server::Endpoint::setInstanceCertificate()), but all will share the same ApplicationDescription and all servers will share the same address space.
Note: The application instance certificates shall have the same ApplicationUri as the ApplicationDescription, thus all certificates must use the same ApplicationUri.
There is another possible approach to produce several applications in one process by separating the different applications into several DLLs (Windows) or shared objects (Linux).
Different DLLs or shared objects have separate code and don't conflict if they know symbols of the same name, but it is important to load the SDK as static library into the DLLs or shared objects to have duplicate instances.
Note: For Windows the binaries are only available as DLLs. A source code license is needed to produce static libraries for Windows. Please contact the support for additional help how to configure projects for static libraries.