Client's identity, product description and details of the system are not public. What follows is the technologies we used on the project.
The system implements searching for products and wish lists, people search, sorting of search results, chat, favourite users, banners linking to user products, etc.
Initial testing of the EXISTING system revealed that the system crashed with a load of 30 simultaneous clients. By the time we were done with optimizations, each server could handle more than 2800 clients. We implemented the server as a pluggable parallel server architecture, implying that the overall system could linearly scale at the rate of 2800 clients per server.
High-end Technical functionalities implemented.
- Distributed servers.
- Parallel server implementation.
- Server stress tested with specially designed test suite.
- Client features tested with special test suite for client.
- Remote monitoring and control of servers.
Special technical features implemented.
- Parallel servers using JMS. Multiple servers on a network can balance load amongst themselves, so that the total number of clients that can simultaneously be serviced increases.
- Remote monitoring and control of servers using RMI. The monitoring application also assists in debugging while developing by informing about unclean database cursors.
- Extra high efficiency PreparedStatement pooling. Much superior system compared to standard connection pooling systems.
- Thread Management on server to enable multiple sockets to read from the same thread. This removes the problem of having too many threads when the number of connections are large.
- Programmed to avoid deadlock(s) or thread contention (also called deadly embrace by some).
- Special test suites for stress testing server, and features of the client. Tested single server with upto 2800 clients using specially designed load simulator.
- Lazy Instantiation of client gui to improve apparent loading speed.
- Cool looking gui designed specially for certain parts of the system.
- Full use of Design Patterns was made by our team in the implementation of this project.
Technologies used : sockets, jsp, servlets, image thumbnails using JIMI, XML using SAX parser, JDBC, swing, RMI, JMS on SwiftMQ.