Comparison of Media Server and Library Server and why we're changing.
Library Server was introduced to handle two key problems with Media Server:
First, Media Server loaded a separate copy of the database for TiVo so there were multiple copies in memory at once. It also required that Media Server's copy be completely read-only (changes made on the client were lost on exit).
Second, Media Server was suffering from bloat. It had control of the Media Center client, the TiVo client, and any other clients that I happened to be working on. The architecture wasn't designed to support this in a convenient way.
Library Server and TiVo Server (and more servers to come) address these issues by using MC's database, and running as a plugin. This has lots of benefits:
You'll only load the servers you need.
Manufacturers of devices and other interested parties will be able to write MC servers. We will make an SDK and provide reference source.
Most servers will see the current database by default, including changes made on the fly. The only one that won't is Library Server, but it will be easier for us to make a "library changed" notification appear on the client.
It will be easier for us to make small changes to the DB (like playcounts) and large changes are easier as well.
There has sometimes been a misconception that running Media Center as a daemon/startup-style program is inefficient. This is not true.
In the past, when Media Center and Media Server were running at the same time, there were two copies of the database in memory. This typically used the most of the resources.
In addition, MC11 already has a lot of nice unloading capabilities to reduce system impact (even if it's not running as a daemon), so running it does not cause system bloat.
I hope this may help you understand why we chose the path we did, and addresses concerns raised above. Please let me know if it doesn't.
j