The C++ framework for developing highly scalable, high performance servers on Windows platforms.


Licensing Overview

The Server Framework is available for licensing with a 'per company' license (you can have any number of developers working with the code at one time). Licensing terms are such that you have an unrestricted license to use and modify the source code and a royalty free license to distribute anything built from the code in compiled form. If you need to be able to distribute our source code to your clients then we'll need to discuss further licensing options (note that this usually takes the form of you having to purchase a license for the source code from us on your client's behalf, or purchasing a "restricted source license" for the client.).

The code in The Server Framework has evolved from our free IOCP Server Framework code, The Free Framework, which is available from here. Note that The Server Framework is considerably different from The Free Framework and that whilst starting development with The Free Framework and then moving to The Server Framework at a later date is certainly viable it will involve some effort. The Server Framework has been in use with our clients since 2001 and is the basis for many varied high performance servers that run 24/7. Our online client list is available here and a full client list is available on request and you are more than welcome to ask us to provide client contact details for reference purposes if required. There are many example servers available for The Server Framework, see here for details, and these can be downloaded prior to licensing so that you can get a feel for how a server (or client) is built from the libraries.

A license to The Server Framework provides unlimited updates as and when they become available and unlimited email support for The Server Framework. We currently do not publish a road map for future development directions for The Server Framework as development tends to be driven by client demand; So, if there are features that we don't currently support that you'd like supported, do get in touch by email. Likewise we don't have a schedule for releases to the framework, but as you'll see from The Server Framework blog and from Len's earlier postings on his technical blog, we have recently been releasing new versions around once a quarter. Bug fixes and change notifications are available from this RSS feed and the release notes of previous versions are available here in the documentation pack. We can provide consultancy to help with the integration of your business logic if you require help, but most clients don't require this as the framework is very easy to use and the points at which you would link to your business logic are limited and clearly indicated in the examples.

The Server Framework builds with all versions of Microsoft Visual Studio from Visual Studio 2005 through to Visual Studio 2013 and builds as x86 or x64 native code on all compilers. We no longer support Visual C++ v6.0, Visual Studio .Net (2002) or Visual Studio .Net (2003): The last version of The Server Framework to support Visual C++ v6.0 was 5.2.4. The last version of The ServerFramework to support Visual Studio .Net (2002) or Visual Studio .Net (2003) was 6.5.9. We can, of course, supply you with these earlier versions if you require them.

The Server Framework builds for versions of Windows from Windows XP through to Windows 8.1, including server operating systems, of course. The last version of The Server Framework to support Windows 2000 was 6.5.9.

Licensing Options

The Server Framework is licensed as a 'core framework' with optional extras. You can select which options that you require and add them to a 'core framework' license at any time. You can always download all examples for all options and you may find this useful to determine which options you need. See here for details of pricing and here for how you can reduce your costs by purchasing an option bundle.

  • Windows Service Option - Many of our clients find that their servers should really run as Windows Services. We have a library of code that makes this easy. To allow for easy debugging the library includes the option of running the service in "debug" mode which runs the services as a normal executable (without using the SCM) and allows external control via an event based system; this means that you can run the service inside the Visual Studio debugger without any code changes. The Windows Service Option also supports 'instances' of services which allows you to install the same service multiple times (with different 'instance names') on a machine. This can be used to run multiple copies of your server with different configuration parameters. See here for full details.
  • Performance counters. We find that the best way to tune our servers is to add appropriate monitoring using performance counters so that you can view the activity of the server using the standard Windows performance monitoring tool, "perfmon". The performance counter library supports multiple instances of performance objects, and multiple language performance counter text strings. It works on all versions of windows that support "perfmon" and includes code that allows 'side by side' x64 and x86 counter dll installation to allow monitoring of x64 machines from x86 machines. It comes with examples that demonstrate integrating both single and multiple instance counters into servers. See here for full details.
  • SSL/TLS (https style encryption and security). With the addition of our SSL library, The Server Framework can use SSL to protect the data stream. The encryption/decryption all occurs within the framework and the users development interface to the framework doesn't change so it's trivial to add SSL to an existing server or to write a server that listens on one port with SSL and another without. We offer SSL/TLS support using either OpenSSL OR Microsoft's SChannel (note that you can purchase a license for either the OpenSSL code or the SChannel code, or both. See here for full details.
  • SSPINegotiate. This option allows you to use the Windows "Negotiate" Security Service Provider to negotiate a secure connection between Windows machines using either NTLM or Kerberos for authentication and security. This allows you to implement 'windows authentication' style sign ons to your server. See here for full details.
  • CLR Hosting. With this option you can host managed code inside your C++ server. This allows you to write your business logic, or some of it, in a managed language such as C# and still retain all of the advantages of using The Server Framework for your I/O. See here for full details.
  • WebSockets. With this option you can add the ability to establish and accept WebSocket connections to your clients or servers. This allows your servers to accept inbound connections from HTML5 clients and also to establish connections to WebSocket servers. At present the WebSocket protocol RFC is still a work in progress but many web browsers support various versions of the emerging standard. The WebSockets Option Pack supports the most popular deployed versions of the protocol and we are actively tracking the emerging standard; see here for full details.

In addition we can provide POP3 server and client code, simple web server code (for status or monitoring servers), simple reliable UDP using the 'Carmack unreliable delta' technique and bluetooth client/server code that uses the Winsock Bluetooth support that is available with Windows XP Sp2 and later.

See the numerous example projects for the above options here.

Contact us by email for details of more details. See here for pricing and here for standard terms and conditions or contact us to talk to us about custom server development.

Generated on Sun Sep 12 19:06:45 2021 for The Server Framework - v7.4 by doxygen 1.5.3