TODO ==== Note: this document contains some high level todo's. There are some lower leve ones in todo.txt 0. NioSocket - handle_terminator should probably be isReadComplete() which can be overridden. - termination handling can be done by an extending program. 1. Load Tester: - add incremental bursts and logging for how much succeeded in each burst, how much time it took to return each burst. - similarly, keep incrementing load per second to see how many per sec the server can handle Reporting of performance needs to be added, currently it doesnt give meaningful information. 2. Server: HttpServer: Extend it to make a HttpServer. this would return proper headers based on file found or not, and do file IO. It can also handle things like If-modified-since etc. At some time, need to add some basic ftp access, handling of "ftp://" at the very least. I need to handle mime-types also. Extended Server: It must log how many requests it got in some standard format. - Configure to give a 'try again' after n active concurrent connections - to close immediately after n+m active connections - allocate priority to certain pages, operations, hosts - Periodic thread that checks for old objects and clears them, it can process the list from top in bursts. It can be awoken if the active count goes beyond a number (say 10000) - limit hits from one host per minute or second - listen on multiple ports ?? - two queues of actins, with their pools of threads with different sizez/priorities. We can put processes on each queue based on action /host/operation priority. 3. Proxy Server: - no more to do, but we can make one that takes requests and connects to multiple URLs based on request. Something like our Web Integrator, providing handles for further processing. 4. Reactor: Make a sample based on reactor pattern, or better yet, include it as part of our framework, so no rework. NioSocket should have options of being multithreaded. We can also use the concurrent project of Doug Lea. Rahul Kumar, Oct 2 2003.