Angel 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.


Comments are closed.