I've just noticed a problem with downloading the XP versions of WASP.
This is now fixed. The XP versions can now be downloaded correctly again from here. Sorry for any inconvenience caused.
We've just released a new version of WASP, our pluggable application server platform. This release is built with release 6.5.2 of The Server Framework and includes support for secure TCP connections using SSL/TLS via our SChannel Option pack.
Setting up a secure TCP endpoint with WASP is easy, simply add the Secure configuration option to the <EndPoint> node like this:
<?xml version="1.0" encoding="Windows-1252"?> <Configuration> <WASP> <TCP> <Endpoints> <EndPoint Name="Echo Server" Port="5050" HandlerDLL="[CONFIG]\EchoServer.dll" Secure="true"> </EndPoint> </Endpoints> </TCP> </WASP> </Configuration>
This tells WASP to secure the endpoint using a default certificate called "Wasp" that is located in the "MY" certificate store. You can add a self signed test certificate using the standard Microsoft "make cert" utility, makecert.exe and a simple script which creates and installs the correct type of certificate can be downloaded from here.
if you do not want to use a certificate called "Wasp" in the "MY" certificate store then you can configure the certificate used by adding the StoreName, CertificateName and UseMachineStore config values.
<?xml version="1.0" encoding="Windows-1252"?> <Configuration> <WASP> <TCP> <Endpoints> <EndPoint Name="Echo Server" Port="5050" HandlerDLL="[CONFIG]\EchoServer.dll" Secure="true" StoreName="OurSpecialStore" CertificateName="OurCertificate" UseMachineStore="true"> </EndPoint> </Endpoints> </TCP> </WASP> </Configuration>
Testing your new secure endpoint can be done using either our OpenSSL server test or our SChannel server test. These are example clients that ship with The Server Framework and that allow you to create thousands of concurrent connections and control how they send data to a server. This is an easy way to build a test system for your server as all of the complexity of managing and controlling the connections is done for you and you simply have to adjust the messages that are generated and how the response validation is done. The default message that is built is an network byte order integer length prefixed message and so this program can be used to stress test WASP with either of the first two example plugins that were discussed in the tutorial.
WASP is, at heart, simply another example server for The Server Framework, but it's also something a little new. Up until now potential clients have been able to look at the example servers source code and ask for pre-built executables for testing. The thing is, the examples are just that, examples and whilst release 6.2 of The Server Framework ships with over 70 examples (see here) they still only show small pieces of functionality in isolation. So, whilst it may be great for me to be able to test the number of concurrent connections that The Server Framework can maintain using a simple server example that doesn't do anything much else it's often not enough to convince people that they're right to choose The Server Framework for their networking layer.
WASP allows potential clients, and non-commercial operations who don't wish to license The Server Framework to build a server that does what they need it to do rather than what I want to show them. WASP will grow into a showcase for functionality that is available within The Server Framework. By writing your own DLLs you can plug your own business logic into our networking layer and to see just what The Server Framework can do for you.
But everything has to start somewhere. Right now WASP is fairly simple. It's a Windows Service that exposes Performance Counters and which can be configured using an XML config file. You get to write a DLL which you configure WASP to load and once loaded your DLL is passed networking events as they happen. Right now this is purely an unmanaged TCP solution with no SSL but, going forward, I hope to add a host of features to WASP so that you can try out all of the key features of The Server Framework.
If your project is non-commercial then you can use WASP however you want to otherwise you need to buy a license to the pieces of The Server Framework that you need before you go live. WASP will give you the confidence that you need that The Server Framework can do all of your networking for you.