AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Simpler Application Server
Thema durchsuchen
Ansicht
Themen-Optionen

Simpler Application Server

Ein Thema von Linor · begonnen am 23. Nov 2011 · letzter Beitrag vom 23. Nov 2011
Antwort Antwort
Benutzerbild von Linor
Linor

Registriert seit: 19. Mai 2008
Ort: Holzwickede
60 Beiträge
 
Delphi 2010 Professional
 
#1

Simpler Application Server

  Alt 23. Nov 2011, 11:31
Hallo Zusammen,

ich habe zur Zeit eine Anwendung die als Client/Server programmiert ist. Als ein (Rich)-Client der sich im LAN an eine Datenbank anmeldet und damit arbeitet...

Mein anliegen ist jetzt das ich von "irgendwo" per TCP auf diesen Server zugreifen möchte, oberste Intention ist der Zugriff von einem PC im Internet auf die Datenbank. Dabei werfen sich eine Menge Fragen und auch Erfahrung auf:

- Datenbank-Server-Port freischalten: Nix gut! Einmal in Bezug auf Sicherheit und Tests haben gezeigt das die Latenzzeiten den Client alles andere als brauchbar machen...

- Dann benötigt der Client auch Dateien aus dem lokalen Netz von einem FileServer: Freischaltung ist unmöglich!

- VPN Verbindungen sind eine alternative, aber der administrative Aufwand ist zu hoch und je nach Leitung auch nicht praktikabel, wieder mal die Latenzzeiten...

Als denke ich an einen Application Server, habe da auch schon viele Sächelchen gefunden, Midas, DataSnap, RemObjects etc etc. Alle diese Teile würden eine komplette Neuprogrammierung des Clients erfordern, da die Business-Logiken ja neu definiert werden um App-Server abgelegt werden müssten. Das ganze dann noch im Zusammenspiel mit dem Rich-Client.

Der nächste Gedanke also: Ok, fange einen neuen und abgespeckten Client an, der mit "irgendwas" kommuniziert, und genau darum geht es mir

Da ich aber keine fertige AppServer-Lösung, unter anderem wegen des finanziellen Aufwandes, nehmen möchte wollte ich einen einfachen Server selbst programmieren, Anforderungen (nach den ersten Überlegeungen):

- Multithreaded
- Robust Robust Robust! Vor allem in Sachen Verbindungsstabilität...
- Soll als Dienst laufen

Vom reinen Ablauf Stelle ich mir das so vor: Der Client wird gestartet und Verbindet sich mit dem Server auf Port XYZ. Setzt einen "Befehl" ab und bekommt eine Antwort, also in etwas wie bei einem RPC. Dazu habe ich die nun für mich wichtigsten Fragen:

- Sicherheit: Würde es reichen die Daten mittels AES zu verschlüsseln? Oder ist da sowas wie SSL und Zertifikate notwendig? Ich denke eine Art Zertifikat wird man eh benötigen um vom ersten Byte der Übertragung an gesichert zu arbeiten, sonst müsste ja erst ein Handshake stattfinden der "erschnüffelt" werden könnte?

- Komponenten: Welche Komponenten sind dafür notwendig ohne sich großartig um die reine Kommunikation kümmern zu müssen. Also einfachsterweise so was Client.Connect, Client.SendCommand, Client.WaitForAnswer und Client.ReceiveData. Auf dem Server Server.OnConnect, Server.OnCommand, Server.SendAnswer, Server.OnDisconnect.

- Protokoll: Dachte an Senden von Command-Strings die der Server parst, und als Ergebis eine XML-Datei liefert, die unter anderem auch Binärdaten als UUencoded liefert. Hauptsache wird die Übertragung von SQL-Befehlen, oder entsprechende Synomyme, und das liefern eines ResultSet, in welcher Form auch immer. Ist XML gut dafür? Der Overhead für das generieren könnte groß sein? TQuery > XML...

So, das war jetzt recht viel, aber ich denke man gut erkennen worauf ich hinauswill? Bitte keine Antworten wie "TSocket verwenden" oder "Nutze Indy", ich weiss das es all diese Komponenten gibt, man sich aber sehr sehr tief darin einarbeiten muss um einen wirklich stabilen Server zu erhalten
Gruß, Kai
Imabas - see you on http://www.pixandmore.de
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Simpler Application Server

  Alt 23. Nov 2011, 11:49
Bitte keine Antworten wie "TSocket verwenden" oder "Nutze Indy", ich weiss das es all diese Komponenten gibt, man sich aber sehr sehr tief darin einarbeiten muss um einen wirklich stabilen Server zu erhalten
Ja eben. Du hast's selbst weiter oben erwähnt. RemObjects nimmt Dir alles ab.
Du kannst Dich aufs wesentliche konzentrieren. Wir setzen RemObjects seit Jahren ein.
Nicht zu vergessen: Gibts auch für .net und neu auch für Ios.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Simpler Application Server

  Alt 23. Nov 2011, 11:59
Genau das geht auch mit mORMot
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Simpler Application Server

  Alt 23. Nov 2011, 14:11
Webservices. Ich würde da auf SOAP mit WS* gehen. Wenn die Daten sensitiv sind, dann Authentifikation mit Zertifikaten.

Als Alternative würde ich aber auch noch Terminal Server mit Remote Application in den Raum werfen. Dann brauchst du auch keinen neuen Client schreiben.
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Simpler Application Server

  Alt 23. Nov 2011, 15:54
Hab mal eine Zeitlang mit kbmMW rumgemacht. Ging extrem gut wenn man den Dreh mal raushatte und der Wechsel von "normalem" TDataset dorthin war recht einfach.

Da ich eigentlich weg bin aus der Windows-Welt hab ich das dann nicht mehr so beachtet, nutze aber immer noch kbmMemtable vom selben Hersteller.

Gruß
Luggi
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Simpler Application Server

  Alt 23. Nov 2011, 16:06
Nicht zu vergessen: Gibts auch für .net und neu auch für Ios.
Auch für Objective-C/XCode
Lars
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz