![]() |
Datenbank: MSSQL • Version: 2017 • Zugriff über: FireDAC
RAD-Server oder DataSnap
Ich hoffe mal ich habe die Kategorie korrekt gewählt.
Ich möchte auf unsere MSSQL-Datenbak via Mobiler App zugreifen. Und Frage mich nun, ob ich auf DataSnap oder eher auf den RAD-Server setzten soll. |
AW: RAD-Server oder DataSnap
RadServer basiert ja auf DataSnap (bzw. verwendet es).
Ob DataSnap reicht (oder eine andere REST-basierte Lösung kommt auf den Anwendungszweck an. |
AW: RAD-Server oder DataSnap
RAD Server ist glaube ich eine ganze Middleware inklusive Benutzerverwaltung usw.
Evtl. könnte Herr Eissing hier etwas zu den Unterschieden schreiben... |
AW: RAD-Server oder DataSnap
Hallo!
Oder wenn es auch etwas anderes sein kann, mit mORMot: ![]() ![]() Bis bald... Thomas |
AW: RAD-Server oder DataSnap
Bei Datasnap müsste ich mich um die Benutzerverwaltung selber kümmern korrekt. Bei Rad-Server ist die inkludiert in einer Interbase-DB
|
AW: RAD-Server oder DataSnap
Wir benutzen Dataabstract von Remobjects. Hervorragender Support.
|
AW: RAD-Server oder DataSnap
RAD Server kann "nur" ReST/JSON, DataSnap kann da mehr (direkt, TCP/IP, Binary, ....)
DataSnap ist aber relativ rudimentär (keine Benutzer Autorisierung, Authentifizierung, Statistiken, ....muss man alles selber basteln) DataSnap ist mehr ein "SDK", als eine Turn-Key-Infrastructure RAD Server kosten aber Geld (bei Enterprise Edition ist eine Deployment Lizenz dabei; bei Architect Edition beliebig viele(!!); es lohnt sich also evtl eine Architect Edition sich in den Schrank zu stellen :wink:) ![]() ...ist etwas "dünn". RAD Server zu implementieren ist aber relativ einfach.... auch/insbesondere um bestehende Business-Logik weiterzuverwenden. Lesenswert, Direktlink: ![]() |
AW: RAD-Server oder DataSnap
Schade: Da der RAD-Server ja DataSnap verwendet, wäre ich davon ausgegangen, dass es auch Binär kann und nicht nur REST nutzt.
Zitat:
Diese Ereignisse sind aber leer und man muß darin dann selber den Username+Passwort gegen irgendwas prüfen. (könnte man z.B. einfach über ein SELECT die Nutzerverwaltung seiner Datenbank oder vom Windows verwenden) Die Zugriffskontrolle auf Serverklassen/Methoden kann man über ein Event und/oder via [Attribute] regeln. DataSnap nutzt für Binär das DBX (dbExpress). Will man auch Streams (z.B. von seinem eigenen DMS) mit über DataSnap laufen lassen, dann ist Binär besser, denn über REST ist es extremst-ultra-langsam. Außnahme im DataSnap mit REST-Anbindung: TStream als Result (einziger VAR/OUT-Parameter), dort wird kein JSON ausgegeben, sondern direkt das Binäre. HTTPS gibt es inzwischen auch und man kann sowohl bei Binär (TCP/IP), als auch beim JSON (HTTP/HTTPS), eine Komprimierung (ZLib) und eine Verschlüsselung (RSA) aktivieren. OnUserAuthenticate = beim Connecten des DataSnap-Client das User+Pass prüfen und Valid setzen (optional auch die UserRoles füllen) OnUserAuthorize = bei Aufruf einer Methode die Erlaubnis prüfen (geht auch autoamtisch über
Delphi-Quellcode:
)
[TRoleAuth(...)]
Inzwischen hat man diese Methoden, welche der Experte generiert, mit Kommentaren gefüllt, die auch im TODO-Manager vom Delphi auftauchen. :angle:
Delphi-Quellcode:
// im DataSnap-ServerModul
procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate( Sender: TObject; const Protocol, Context, User, Password: string; var valid: Boolean; UserRoles: TStrings); begin { TODO : Validieren Sie den Client-Benutzer und das Passwort. Wenn eine rollenbasierte Autorisierung erforderlich ist, fügen Sie dem Parameter UserRoles Rollennamen hinzu } valid := True; end; procedure TServerContainer1.DSAuthenticationManager1UserAuthorize( Sender: TObject; EventObject: TDSAuthorizeEventObject; var valid: Boolean); begin { TODO : Autorisieren Sie einen Benutzer zum Ausführen einer Methode. Verwenden Sie Werte von EventObject, wie z.B. UserName, UserRoles, AuthorizedRoles und DeniedRoles. Verwenden Sie DSAuthenticationManager1.Roles zum Definieren von 'Authorized'- und 'Denied'-Rollen für bestimmte Servermethoden. } valid := True; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz