What problem is mvserver trying to solve?

At Epinions, Inc., we needed to build a layer between the front end (php/httpd) and the backend (database) to sort, cache, filter, and perform traditional middle-layer internet application-server tasks.

We had several choices, including choosing among several Java-based application servers. We did not have enough Java experience in-house, but we had plenty of C-programmers. There was nothing in the public community, so we built this. We contributed mvserver back to the open-source community so that other people would not have to reinvent the wheel, and to give back to a community from which we had taken so many gifts.

So why didn't Epinions just build a server? Why a server-framework? The answer lies in the fact that we wanted to be able to develop several different instances of the same type of servers rapidly, and we were able to abstract out the common tasks each of those application-servers would have to do. Those (large) commonalities were factored into the server-framework, and the (small) differences are contained in each server.

What does the mvserver do for me? It provides command-line processing, configuration-file processing, a preferences interface, threadpooling for efficient parallel execution of work, an abstract, general definition of work to simplify "entity" (independent computational chunks) definitions, and an abstract, general entity registration mechanism.


Brian Moore
Last modified: Wed Apr 4 12:38:09 PDT 2001