« Concurrent Programming, C++ vs Java | Main | What's New »

March 13, 2004

Term 8 Project rant

Ok, this is a rant for all you geeks out there who are interested in what I'm doing for a term 8 project. Well to catch your eye and hopefully make you geeks follow the link above I guess I should give you a brief intro eh? My senior design project is a multi-theaded, using ACE (Adaptive Communication Environment), C++ application to simulate and also extract information from the simulated network of clients. Sounds interesting? Well giv'er!! See what's it's about.

Well seems you made it in here so you are now deemed cool in my eyes compared to the 99.99999.... people on the planet. The only people who have read this are me and you! Now doesn't that just feel special? Anyway...

My Senior deisgn project for my T8 course is the design, simulation and implementation of a distributed network with a common user interface to connect into all the servers/clients and extract information as simulation tests are running. The purpose of this project is to mitigate the work that testers have to do by allowing one UI to control each individual client, maybe up to 100 clients. This project is to allow very complex and multi-client (upwards of 10) testing tools to run under one interface over a network. It will provide access to data trends, anomolies, database logging and a lot of other options all over a MFC application.

Ok, so that sounds drab eh? Well how about this...I decided to create a threading-on-demand solution to minimize the overhead associated with processing network connections. When a work message is placed a worker is created which calls back through an interface implemented by the object request a worker. The worker will process the request through the methods it is forced to invoke. The queue for the message objects is also watermarked so when the watermark has been reached the worker threads will stop dying and continuiously process work until the system has reached a normal level. Due to the possibiliy of receiving 10-20 packets at almost the same time we would not want to spawn 20 threads but instead spawn 5 and re-use them. So hey! I guess it's almost like a threadpool eh?

What else am i doing. I'm using the MYSQL++ project to connect to a MYSQL database that I designed for this specific problem. When any new data arrives it is automatically updated and logged into the database for later analysis. This will give testers the ability to generate reports and trends of test's and testing trends. Neat eh?

Well an adaptor class would have to be created to use this in a real world application. Right now all the data that is simulated is passed back and forth through a "network interface" in array of integers. Due to the modular design of the code an adaptor could be created in a matter of hours to ensure this works with a real life network package.

Any questions fire away! I could ramble on for hours here but I think I'll just take off now and acutually do some more work on my project instead of talking about it

Posted by Daryl Martin at March 13, 2004 03:03 PM

Comments