Ich kann dir leider nichts zu Hosting-Anbietern sagen, nur ein paar Worte aus unserem eigenen Umfeld...
Unsere Produkte werden von Kunden auch in Terminalserverumgebungen genutzt (Windows Server 2003 R2 und Windows Server 2008). Wir selber boten eine Zeit eine Art Hosting für einige wenige unserer kleineren Kunden an, denen ein eigener Windows-Terminalserver zu teuer/administrationsaufwändig war.
Auf unserem eigenen Server, einem inzwischen in die Jahre gekommenen Pentium D mit 3,2 GHz und aus heutiger Sicht lächerlichen 2 GB
RAM und Win Server 2003 R2 Standar, arbeiten bis zu 15 User gleichzeitig, ohne das es zu nennenswerten Geschwindigkeitseinbußen kommt. Bei unserem größten Kunden sind zeitgleich mehr als 50 User angemeldet und hacken ordentlich Daten ein (Callcenter) - entsprechend groß ist deren eigener Server dimensioniert und die Firebird-Datenbanken sind auch auf einem anderen, ebenfalls leistungsstarken Server installiert (auch aus Sicherheitsaspekten) -ebenfalls keine Performance- oder Funktionsprobleme (zumindest nichts, was in unseren Programmen begründet liegt).
Grundsätzlich läuft alles stabil und sauber. Abstriche gibt es bei der Darstellung des
GUI: Unter Windows 2003 sieht die Oberfläche vergleichsweise altbacken aus (z.B. 3D-Rahmen um Edits). Ein anderes Problem ist das Drucken und die Rechtevergabe: es müssen die passenden Druckertreiber auf dem Server installiert sein, damit die Kunden auf ihrem jeweiligen, eigenen Druckern drucken können, plus die Rechtevergabe - nicht das die eigene Rechnung auf einmal bei einem ganz anderen User rauskommt oder jemand das Programm eines anderen Kunden aufruft und in dessen Daten stöbert, oha! Dieser administrative Aufwand kann hoch werden, wenn z.B. seltsame Drucker gewünscht werden - und dieser Aufwand hat uns veranlaßt, das eigene Hosting für Kunden nicht mehr anzubieten (wir setzen jetzt auf's Multitier...).
Unsere Produkte sind in Delphi 2007/XE geschrieben und nutzen Firebird 2.0x/2.5 als Datenbankserver. Zugriffskomponenten sind Devarts IBDAC.
Ob das Gesagte jetzt auch auf deine Anwendungen zutrifft, kann ich natürlich nicht sagen - das ist stark abhängig von der Art deiner Programme. Unsere sind mehr im Bereich Bürotätigkeit (Reisebüros und Reiseveranstalter) angesiedelt, da trödeln unsere Programme die meiste Zeit eher gelangweilt rum anstatt nennenswerte Last zu erzeugen - das Erstellen eines Angebots oder einer Rechnung oder Verbuchung von Kreditoren ist nicht sonderlich rechnerbelastend. Anders sieht es aus, wenn bei uns ein Reiseveranstalter Katalogdaten erzeugt - da kann dann bereits EIN User ausreichen, um einen Terminalserver vollständig für mehrere Stunden zu blockieren - dabei werden aber u.U. abermillionen Datensätze erzeugt (solche Aufgaben werden daher auch nicht in einer Terminalserverumgung ausgeführt). Hier mußt du mal schauen, welche Anforderungen deine Programme stellen - grundsätzlich funktionieren sollten sie aber.
Ach ja, was die Trennung der Userdatenbanken auf PROGRAMMEBENE angeht: Bei uns ist an den Usernamen gebunden, welche
DB-Connection(s) er jeweils benutzen darf. Die Connections werden zentral von uns verwaltet (nicht in den Anwendungsprogrammen, die der Kunde sieht), beim Programmstart werden die Connections, die zum User gehören, beim Login gezogen und danach erst die Verbindung zur Kundendatenbank hergestellt. Nicht ideal, aber für uns ausreichend.
Ich hoffe, du kannst mit diesen Aussagen etwas anfangen.
Viele Grüße
Udo "Kretabiker" Treichel