Angel Development Progress
So, I spent all day yesterday and already a little bit this morning working on Angel. Angel went from a service-only proof-of-concept to a server and client proof of concept in just under 12 hours. I've been stress-testing it a little bit this morning and it ran 10,000 "AddUser" commands in just under 3 minutes. Sounds slow? Well, let me explain everything that goes on in a single "AddUser" command (subject to change):
Â
- Build the SOAP request (translate Angel data objects to SOAP-compatible objects). Request contains user information (Name, Alias, etc.)
- Connect to the Angel web service
- Send the command parameters to the web service
- Service writes a log entry to a text file (very verbosely)
- Service executes a database statement, storing the data
- Service checks for errors, if none, grab the user ID back out of the database (room for optimization here). If errors occured, put error description into the response object.
- Service builds a response object and sends it over the wire back to the client
- Client converts the SOAP-compatible object back to Angel data object types
- Client checks  the response object for success/failure from the server
- Client tears down SOAP connection
Â
Now do that 10,000 times.Â
This is my first time building a C++ SOAP client and I must say, with the help of gSOAP, it works great. It is the first time I've gotten a C# web service and a C++ client to play nicely together. We initially tried this with raw sockets, but it proved to be WAY too much of a hassle and there's too much that could go wrong. This has worked 1000% more reliably than anything else I've tried. I've sort of been having that "mad scientist" feel about me the last few days since I've gotten this work--talking to myself, mumbling, swearing at my code, and then screaming "IT'S ALIVE!!!!!" when it finally worked.


