![]() |
DB-Zugriff über Internet kapseln (JSON oder Webservice)
Hallo,
ich habe hier den Tipp bekommen anstatt der direkten Kommunikation mit einem SQL-Server über das Internet einen Webservice oder JSON zu nutzen: ![]() Leider habe ich mit beiden noch keine Erfahrungen, will das aber ändern. Mir geht es erstmal um das Prinzip, wie kann ich z.B.: über JSON meinen DB-Zugriff realisieren?! Mir reicht Pseudocode, echtes Pascal wäre aber auch nicht schlimm :-), oder einfach eine Skizze, wie gesagt, ich will keine fertige Lösung, nur hoffe ich das mir jemand die Funktionsweise ein wenig erläutert. Vielen Dank schoneinmal. Gruß DelphiManiac |
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Im Prinzip ist das einfach.
JSON ist Javascript Object Notation. Also im Prinzip eine Art, Objekte zu Serialisieren.
Delphi-Quellcode:
Ist im Prinzip genau ein Objekt Namens MyObject, mit drei gesetzten Eigenschaften Name, Age und Address mit den jeweiligen Werten. Selber implementieren ist schwachfug, ich würde da auf existierende Bibliotheken setzen.
MyObject { Name = 'Mein Name', Age = 13, Address = 'Einbacherstrasse 17' }
Webservices nutzen halt kein JSON sondern SOAP - also XML - in dem diese Daten stehen. Dazu kommen dann noch Informationen was der Server machen soll (Daten lesen und liefern, Daten schreiben ect.). In jedem Fall bedingt dies, das irgendeine Anwendung auf dem Server läuft und Anfragen annimmt und diese beantwortet. Am einfachsten (IMHO) geht das mit ASP.NET Webservices (.asmx). Du schreibst also im Prinzip Funktionen, die Du als Webservice markierst. ASP.NET sorgt dann automatisch dafür, dass diese Funtionen über einen Webservice aufgerufen werden können. Dabei kommt dann eine .wsdl-Datei (Web service description language) raus, die Du z.B. in eine Delphi-Anwendung importieren kannst. Dort rufst Du dann die aus der WSDL generierten Funktionen einfach nur auf. Das ganze Kommunikationsgeraffel und das SOAP siehst Du gar nicht. Willst Du das ganze etwas flexibler und mehr RAD-like (und vielleicht sogar 100% Delphi) haben, dann kannst Du auch mal einen Blick auf ![]() |
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Hallo Phoenix,
danke für deine Antwort, wi würde das denn in meinem konkreten Beispiel aussehen mit JSON? Ich habe einen Terminplaner der für jeden Eintrag ein Start und Enddatum hat und einen Text. Das Objekt ist ja hier schnell definiert: Buchung { Start = '01.01.2010 13:00:00', End = '01.01.2010 14:00:00', Address = 'Irgendein langer Text.....' } D.h. jetzt könnte ich dieses Objekt über das Netz verschicken und würde dann in meiner Server Anwendung (Webservice oder ähnliches) darauf reagieren und einen DB-Zugriff basteln, oder wie? Client: sendet Buchung { Start = '01.01.2010 13:00:00', End = '01.01.2010 14:00:00', Address = 'Irgendein langer Text.....' } WebServer: empfängt Buchung { Start = '01.01.2010 13:00:00', End = '01.01.2010 14:00:00', Address = 'Irgendein langer Text.....' } Webservice verarbeitet und macht evtl DB-Zugriffe?! Ist das so richtig?! Danke |
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Eigentlich nein.
Webservices können nur SOAP. Wenn Du JSON benutzen willst, dann müsste Dein Server ein REST-Interface zur Verfügung stellen. Ganz ehrlich: Such Dir eine Technologie aus, die das ganze Übertragungsgeraffel und die Protokolle für Dich handeln. Du willst kein JSON bauen. Du willst sowas hier machen:
Delphi-Quellcode:
Indem Du auf dem Server folgendes zur verfügung stellst:
myObject := ServerConnector.LoadDataById(irgendeineId);
myObject.Value := 10; ServerConnector.StoreData(myObject);
Delphi-Quellcode:
Der ganze Rest soll automatisch passieren. Wenn Du das selber baust, dann handelst Du Dir mindestens ein paar MannMonate an Arbeit ein, und hast noch nichtmal eine einzige Methode implementiert.
function LoadDataById(id: integer): IrgendEinTyp;
procedure StoreData(obj: IrgendEinTyp); |
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Moin, moin,
bei SOAP habe ich mich bei unseren Freunden von IBM orientiert, die ein Beispiel auf Ihren Webseiten für Delphi anbieten ![]() Grüße in die Runde // Martin |
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Nimm JSON/REST. WS/SOAP hat einige Nachteile die auch dafür gesorgt haben das auch die Großen wie Google/Amazon/... diverse schon als WS/SOAP bereitgestellten Schnittstellen wieder eingestampft haben.
|
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Zitat:
Zitat:
|
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Zitat:
|
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Liefere hier mal einige Links zu REST und SOAP, damit man das mal selbst testen kann:
![]() ![]() ![]() Bin übrigens der Meinung, dass es eher eine Frage ist welche Infrastruktur bedient werden soll. SOA ist im Java-Umfeld doch sehr verbreitet und da bietet Delphi eine gute Anbindung. Rest ist sicherlich der modernere Weg, aber die Aufgabe war hier lediglich eine Datenbank über Internet anzubinden. Grüße |
Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)
Hi,
I also would like to suggest an opensource project for Delphi 2010: "Delphi On Rails", it is a MVC/REST server that natively handle JSON. It use the new RTTI from Delphi 2010 for data marshalling and method invocation. It can be used as a web server and/or application server. There is also - a Firebird and SQLite JSON data connector, - CAIRO, an open source vectorial library to produce SVG, PNG, PDF ... - Lua scripting language The google code repository: ![]() Regards |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:59 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