Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Erstellung eines Datasnap-Servers mit einem unabhängigen Java-Script Clients (https://www.delphipraxis.net/195226-erstellung-eines-datasnap-servers-mit-einem-unabhaengigen-java-script-clients.html)

Julius123 13. Feb 2018 10:17

Erstellung eines Datasnap-Servers mit einem unabhängigen Java-Script Clients
 
Hallo,

Ich möchte gerne einen Datasnap-Service erstellen, der einfach gesagt Funktionen bereitstellt, die ein beliebiger Client ausführen kann. Dabei ist es wichtig, dass der Server sowohl mit http, als auch mit tcp/ip auskommt.

Wenn ich die Architektur richtig verstanden habe, dann gibt es 2 Arten von Datasnap Services in Delphi. Der eine Service verwaltet nur die Rest Api, der 2. ist in der Lage Webseiten aufzubauen. Mir reicht eigentlich lediglich die RestApi.

Der Aufbau dieser Services ist eigentlich gleich, bis auf das TWebModule beim 2. Service. Und da wird es für mich interessant, da die Anfragen, die der JavaScript Client schickt Cors-Anfragen sind. In Kombination mit dem WebModule ist es einfach mit diesen umzugehen, da ich diese im Ereignis BeforeDispatch einfach abfangen kann. Aber eigentlich brauche ich ja kein WebModule, da ich ja nur eine RestApi bauen möchte, die einem Client Funktionen bereitstellt.

Ich bin nun ein bisschen überfordert mit den vielen Komponenten, die Delphi für Datasnap bereit stellt. Egal ob HTTPService oder WebDispatcher, alle machen gefühlt das gleiche, aber keiner kann mir wirklich genau sagen, was Sinn macht, und vor allem wie Datasnap gennerell mit Cors Anfragen umgeht, (so wie ich es verstanden habe gar nicht).

Ich würde mich freuen, wenn mich jemand des bezüglich aufklären könnte.

Gruß
Julius

MichaelT 13. Feb 2018 18:01

AW: Erstellung eines Datasnap-Servers mit einem unabhängigen Java-Script Clients
 
Besser meine Antwort als keine. Seit dem Bienen, Hummeln und Wespen auf den Blumen usw... weiß man nie genau was man bekommt.

Ich habe kein Delphi Enterprise weswegen ich aus der sich verbalssenden Erinnerung schreibe und die Doku habe ich mir zu Gemüte geführt. Deswegen Vorsicht. Es wird bestimmt jemand hier spezifischere Aussagen können tätigen.

Der Datasnap ist ein Application Server resp. kombiniert mit ehem. Middleware Technologie.

Der Websnap habt mit dem mal gar nichts zu tun. Der kommt aus dem Umfeld Webbroker Application. Die ist jene welche erlaubt Webpages zu erzeugen. Intraweb setzt bspw. auf dem auf. Das Modul von dem du spricht verwirrt schon länger und ich denke ist überflüssig.

Ich vermute das Webmodule wird mitgeneriert um zu zeigen, dass auch Websites (zumeist Intranet Anwendungen) genauso integriert resp. gehostet werden können.

In dem Umfeld wird eine Applikationslogik entweder in einer
a) executable, Standalone Server
b) Service (Windows Service)
c) Webserver in Form eines Modulas (IIS, Apache Windows, Apache unter Linux usw...)

gehostet.

Ein Modul wurde früher am (IBM)Host bspw... immer vom OS geladen resp. dort gehostet. Das war unter MTS Windows oder COM+ auch nicht anders. IBM hat immer 'unter Kontrolle vom OS' ausgeführt. Im Rahmen der Objektorientierung insbesondere kam hinzu dass beinahe jede Anwendung resp. jeder Anwendungstyp zum eigenen hostenden OS werden kann. Der Webserver ist eine 'Mischung' aus beiden.

Allein kommt hinzu, dass die hostende Anwendung zumeist Authentifzierungsdaten muss verwalten. Der Datasnap selbst verfügt zusätzlich noch über die Möglichkeit Berechtigungen bspw. viel filigraner zu verwalten aber autark.

Ursprünglich hatte der Datasnap 'nur' Datenmengen und Funktion über TCP und HTTP (DBX units). Der REST läuft losgelöst davon wird aber gemeinsam in einem oben genannten 'Container' genauso gehostet wie eine Datasnap Application.

Wenn du einen Datasnap Server generierst (Wizard), dann wird für eine Client Library verfügbar auf den mobilen OSes bspw... auch der Code für die Aufrufe generiert.

Der REST Teil von dem du spricht, der wirkt irgendwie isoliert davon. In dem Punkt kann ich keine seriöse Aussage machen. Der geht soviel ich mich erinnere nur über http.

Ich bilde mir ein, dass die REST Client Library am klassischen Datasnap mit Delphi XE2 kam und mit dem REST Teil von dem du sprichst mal potentiell wenig bis gar nichts.

Aber in dem Punkt kann mich meine Erinnerung täuschen.

Die Information von mir ist allein da, da sonst keiner hat geantwortet und damit du dich nicht verläufst.


Zitat:

Zitat von Julius123 (Beitrag 1393722)
Hallo,

Ich möchte gerne einen Datasnap-Service erstellen, der einfach gesagt Funktionen bereitstellt, die ein beliebiger Client ausführen kann. Dabei ist es wichtig, dass der Server sowohl mit http, als auch mit tcp/ip auskommt.

Ich würde mich freuen, wenn mich jemand des bezüglich aufklären könnte.

Gruß
Julius


Julius123 14. Feb 2018 14:37

AW: Erstellung eines Datasnap-Servers mit einem unabhängigen Java-Script Clients
 
Auf jeden Fall schon mal danke für die Antwort.

Was mir jetzt leider immer noch fehlt ist die Antwort auf die Frage, warum der Datasnap Server mit CORS nicht klar kommt. Im Netz habe ich zwar eine Lösung gefunden, jedoch setzt die eben vorraus, dass ich eben eine Rest-Anwendung bauen muss (inkl WebModul, Page Producer, usw), ein DataSnap-Server ist anders aufgebaut. Seine Funktionalität reicht mir theoretisch aus, jedoch habe ich hier keine Lösung, damit auch dieser mit CORS auskommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 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