Server / Client Anwendung



  • Hallo,
    mir laufen seit einiger Zeit ein paar Gedanken durch den Kopf. Ich möchte mir eine Server-Anwendung mit dazugehörigen Client schreiben.

    Der Server soll entsprechend auf eine SQL DB zurückgreifen und Anforderungen der Clients nach einem Berechtigungsmodell preisgeben. Ich habe jetzt lediglich zunächst ein paar grobe Fragen an die Gemeinde.

    Ich spekuliere die Server Anwendung für Windows sowie evtl. Linux / UNIX Systeme anzubieten. C++ ist genial, trifft dies aber auch auf mein Projekt zu? Ich denke nur an die Sockets, die sich zwischen den UNIX sowie dem Windows-System unterscheidet. Die Server Anwendung soll als Dienst zur Verfügung stehen. Wie stark ist Java im Bereich der verschiedenen OS? Wie Portabel bin ich zu anderen OS, wenn ich auf C++ setze - wie stark sind die Anpassungen für die Betriebsysteme? Die Client Anwendung möchte ich auf Windows "begrenzen". Sind die Sockets 100% kompatibel (Windows / UNIX)?

    Gibt es Tutorials, die sich mit der Service unter UNIX oder Windows auseinandersetzen?

    Ich bin schon auf eure Antworten gespannt.



  • Thnaxy schrieb:

    Die Client Anwendung möchte ich auf Windows "begrenzen". Sind die Sockets 100% kompatibel (Windows / UNIX)?

    Nein, Du mußt mit anderen Aufrufen neu kompilieren.

    Mit Java hättest Du die Probleme nicht.

    Gibt aber auch schöne Socket Libs für C++.



  • Ich würde RakNet von Rakkarsoft empfehlen. Ist sehr effizient und recht einfach anzuwenden.

    Gruß - Xaron



  • Du weißt aber schon das es das bereits gibt.

    MySQL,MS SQL Server,Postgre, und vile hunterete mehr.
    Als Vergleich. MDB (Access) gehört nicht dazu.



  • Er will ja keinen DB-Server implemntieren. Er will einen Service in C++ implementieren, der auf eine DB zugreift. Sein Problem bzw. seine Frage stellt sich auch ohne das Problem einer DB.

    Die einzige Lösung dürfte das hier sein:
    http://www.cs.wustl.edu/~schmidt/ACE-overview.html
    http://www.cs.wustl.edu/~schmidt/ACE.html

    oder du programmierst es auf der .NET-Plattform, gibts auch für Linux und Unix von Novell. Als Sprache kannste C++/CLI benutzen, wenn es nicht C# sein soll.





  • Ich habe mir heute noch weitere gedanken gemacht und mich entschieden, das mein Projekt zunächst mit einer Win32 Umgebung auskommen muss. Selbstverständlich alles möglichst Modular aufbauen, so dass wenn neue Anforderungen kommen, diese auch recht schnell umgesetzt werden können.

    Als Backend DB werde ich speziell MySQL unterstützen, natürlich offen zu anderen SQL DB.

    Für mich ist es wichtig, das der Benutzer / Administrator später die Möglichkeit hat, möglichst viele Einstellungen vorzunehmen. Deshalb möchte ich meine Server-Anwendung auf einem Rollen-Berechtigungssystem aufbauen. Zudem soll eine Anwednung für die Administration des Servers hinzukommen. Ich möchte ebenfalls alle Einstellungen der Clients in der MySQL DB mit ablegen.

    Client <-> Authentifizierung <-> Server <-> SQL DB

    Die Übertragung soll möglichst verschlüsselt sein, was kommt am besten dafür in Frage?

    Des Weiteren spiele ich mit dem Gedanken, Datensätze der Datenbank zu Archivieren.

    Der Server als aktiver Teil des Systems soll Zeitgesteuert Mails, SMS oder FAXE versenden bzw. den Versand vorbereiten. Der Anwender soll Benachrichtungen erhalten, wirklich Live am geschehen teilhaben und somit auch gezielt eingreifen können.

    Das hört sich nach einem großen Projekt an. 🙂

    Viel Zeit wird sicherlich im Bereich Socket, NT-Service sowie die eigentliche Projektplanung drauf gehen. puuuha 😮

    Kennt ihr Quell die sich mit dem NT-Service beschäftigen? Im Bereich WinSock bin ich bereits fündig geworden. WinSock - richtiger Einsatz - ich denke ebenfalls an eine verschlüsselte Datenübertragung...?



  • Thnaxy schrieb:

    Client <-> Authentifizierung <-> Server <-> SQL DB

    Die Übertragung soll möglichst verschlüsselt sein, was kommt am besten dafür in Frage?

    Ich wiederhole: RakNet von Rakkarsoft wäre mein Favorit. Du musst das Rad ja nicht neu erfinden.

    Gruß - Xaron



  • Das ist nichts anderes als ein Programm vor der eigentlichen DB zu implementieren.

    Um DB-Unabhängig zu sein kann man dann aber gleich ODBC verwenden. Ist dann sogar schneller.

    Ein RDBMS ist so ein Server.
    Ich sehe den Sinn dahinter nicht.


Anmelden zum Antworten