![]() |
SOAP: MYSQL-DB Zugriff
Hallo Zusammen
Ich hab da mal eine Frage bezüglich SOAP und MYSQL-DB Zugriff. -Bevor ich noch in die falsche Richtung los programmiere 8-): Ich habe mich etwas mit SOAP auseinander gesetzt und bekomme auch eine einfach Client-Serveranwendung zum laufen. (siehe Tutorial: ![]() Zum Hintergrund: Ich will eine SOAP-Anwendung schreiben, mittels welcher man vom Client aus (nebenbei der Client soll in einer Androidapp laufen) dann über "SOAP: Client --> Server" am Schluss auf eine MYSQL-DB zugreifen kann und von dort einige Tabellen mit Inhalten in die Clientanwendung geladen werden sollen. Diese Tabellen/Inhalte sollen/können dann ergänzt werden und nachher wieder zurückgespielt werden. Zu meiner Idee: Ich dachte mir das könnte so ablaufen, dass der Zugriff auf die DB im Server programmiert wird und im Client die Funktion, die die Abrufspezifikationen aufnimmt und an den Server weitergibt. Dann muss ja der Server die Tabellen schicken? (hier habe ich noch keine Idee oder geht das automatisch?) Der Client muss dann 'nur' noch die empfangen Daten richtig in die Darstellung packen. Und am Schluss wieder schicken (Weiss ich auch noch nicht wie...) und der Server muss sie richtig an die DB weiterleiten. Sorry, sind mal wieder 100 Fragen in einem Thema, aber ich hoffe doch jemand kann mir hierbei helfen. Es geht mir vor allem um das Verständnis, was wo (Server-/Client-Seitig) laufen soll, und wie die Daten übergeben werden sollten. Gruss und Danke schon im Voraus sephraina |
AW: SOAP: MYSQL-DB Zugriff
Ist SOAP zwingend gefordert / gewünscht? Falls es auch mit Android etc. laufen soll, wäre eine RESTful API (JSON über HTTP/S) ein gängiger Weg.
|
AW: SOAP: MYSQL-DB Zugriff
Hier würde sich doch eher rein Rest(ful) Service anbieten.
|
AW: SOAP: MYSQL-DB Zugriff
Reicht dafür nicht auch dies Aüp tethering?
![]() |
AW: SOAP: MYSQL-DB Zugriff
Aber nur, wenn er die App im Betrieb ( wenn WLAN) oder in der Nähe seines PCs ( wenn BlueTooth) verwenden will.
|
AW: SOAP: MYSQL-DB Zugriff
SOAP um einen indirekten DB-Zugriff zu ermöglichen.
Und da wundert man sich das alles immer langsamer wird und mehr speicher benötigt ... Wenn du eh schon einen Webserver hast: Wieso nicht gleich die Anwendung als Web/Browserlösung implementieren? |
AW: SOAP: MYSQL-DB Zugriff
Zitat:
|
AW: SOAP: MYSQL-DB Zugriff
Hmmm, zuerst mal Danke an Alle für die Antworten.
Dann doch eher REST... Habe ich mir schon vorher überlegt, aber die Tutorials (vor allem von embarcadero) gehen so ziemlich schnell auf DataSnap über. Leider wird aber DataSnap in meiner Delphiversion nicht unterstütz, was heissen würde, ich müsste alles neu schreiben, oder gibts da Vorarbeiten (Codeschnipselbeispiele für die ganzen GET, POST usw.), die mir einen Anhaltspunkt/Starthilfe geben könnten? Gruss und Danke |
AW: SOAP: MYSQL-DB Zugriff
|
AW: SOAP: MYSQL-DB Zugriff
Zitat:
![]() ![]()
Delphi-Quellcode:
Serverseitig hat man dann natürlich auch noch ein wenig zu tun, im Beispiel wird httpbin.org verwendet, an dem man einfache Tests für GET, POST, PUT, etc. vom Client aus durchführen kann.
program JSONPostExample;
{$APPTYPE CONSOLE} uses IdHTTP, IdGlobal, SysUtils, Classes; var HTTP: TIdHTTP; RequestBody: TStream; ResponseBody: string; begin HTTP := TIdHTTP.Create; try try RequestBody := TStringStream.Create('{"日本語":42}', TEncoding.UTF8); try HTTP.Request.Accept := 'application/json'; HTTP.Request.ContentType := 'application/json'; ResponseBody := HTTP.Post('https://httpbin.org/post', RequestBody); WriteLn(ResponseBody); WriteLn(HTTP.ResponseText); finally RequestBody.Free; end; except on E: EIdHTTPProtocolException do begin WriteLn(E.Message); WriteLn(E.ErrorMessage); end; on E: Exception do begin WriteLn(E.Message); end; end; finally HTTP.Free; end; ReadLn; ReportMemoryLeaksOnShutdown := True; end. |
AW: SOAP: MYSQL-DB Zugriff
Zitat:
Viel einfacher und deutlich handlicher, weil "einfache Proceduren" aufrufen... Größere Daten einfach vorher packen! Klar hat man mehr Overhead... Würde auch nur Dif's schicken... Mavarik |
AW: SOAP: MYSQL-DB Zugriff
Habe bei einem aktuellen Projekt auch Soap durchgesetzt. Performance und Skalierbarkeit reichen bei dem Projekt dicke. Habe bei mal vier Anfragen pro Sekunde getestet, lag alles im Bereich von 300ms.
|
AW: SOAP: MYSQL-DB Zugriff
Zitat:
|
AW: SOAP: MYSQL-DB Zugriff
Da hängt ne komplexe Rechnung hinter... Die dauert schon seine Zeit. Die Werte waren nicht die reine Antwortzeit!
|
AW: SOAP: MYSQL-DB Zugriff
Zitat:
Dafür ist natürlich SOAP ganz gut geeignet wenn man das so zusammenfast das alles über eine Abfrage übertragen angefragt und wieder zurück übertragen wird. Dann hat man "nur" den großen Overheader der XML-Übertragung gegenüber eine JSON-Lösung. |
AW: SOAP: MYSQL-DB Zugriff
Zitat:
Aber 4 gleichzeitig? Von selben Gerät? Wie viele Anfragen der Server bewerkstelligt, hängt doch nur von der Netzwerkanbindung ab und ggf. von der Prozessorleistung... Und da müssen es echt viele Anfragen sein um zu sagen... Hätten wir nicht den XML Overhead würde es noch gehen... Mavarik |
AW: SOAP: MYSQL-DB Zugriff
Zitat:
Mit REST kann man auch komplexe Business-Objekte übertragen, am Server auswerten, durchnudeln, ... und ist nicht auf JSON beschränkt. Eigentlich auf gar nichts beschränkt, der REST-Server muss es nur verstehen, was ich dem schicke |
AW: SOAP: MYSQL-DB Zugriff
Zitat:
Delphi-Quellcode:
Liest sich deutlich besser im Source...
Var
SoapFace : IMySoapInterface; NR : Integer; begin SoapFace := HTTPRIO as IMySoapInterface; NR := SoapFace.HoleneueRechnungsNummer; // SoapFace.ErzeugeNeueRechnung(NR,Daten,Kunde,Lieferanschrift); SoapFace.VersendeRechungsPDFPereMail(Kunde.eMail); SoapFace.ErgänzeLastSchriftliste; end; Klar kann man sich dafür auch Proceduren schreiben die JSON erzeugen... Mavarik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 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-2025 by Thomas Breitkreuz