AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi DB-Zugriff über Internet kapseln (JSON oder Webservice)
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Zugriff über Internet kapseln (JSON oder Webservice)

Ein Thema von DelphiManiac · begonnen am 7. Apr 2010 · letzter Beitrag vom 28. Apr 2010
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 7. Apr 2010, 09:18
Hallo,

ich habe hier den Tipp bekommen anstatt der direkten Kommunikation mit einem SQL-Server über das Internet einen Webservice oder JSON zu nutzen:
http://www.delphipraxis.net/internal...chungsprogramm

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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#2

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 7. Apr 2010, 09:32
Im Prinzip ist das einfach.

JSON ist Javascript Object Notation. Also im Prinzip eine Art, Objekte zu Serialisieren.
MyObject { Name = 'Mein Name', Age = 13, Address = 'Einbacherstrasse 17' } 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.

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 http://www.dataabstract.com werfen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#3

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 7. Apr 2010, 16:43
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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#4

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 7. Apr 2010, 16:55
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:
myObject := ServerConnector.LoadDataById(irgendeineId);
myObject.Value := 10;
ServerConnector.StoreData(myObject);
Indem Du auf dem Server folgendes zur verfügung stellst:
Delphi-Quellcode:
function LoadDataById(id: integer): IrgendEinTyp;
procedure StoreData(obj: IrgendEinTyp);
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#5

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 7. Apr 2010, 18:07
Moin, moin,

bei SOAP habe ich mich bei unseren Freunden von IBM orientiert, die ein Beispiel auf Ihren Webseiten für Delphi anbieten SOAPund DB2.

Grüße in die Runde // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 7. Apr 2010, 21:08
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von rwachtel
rwachtel

Registriert seit: 26. Aug 2004
Ort: Köln
530 Beiträge
 
RAD-Studio 2010 Pro
 
#7

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 7. Apr 2010, 22:28
Zitat von Bernhard Geyer:
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.
Dennoch kann ich mich bei so einer Aussage nur wieder selbst zitieren:

Zitat von rwachtel:
REST ist in sicherheitsrelevanten Enterprise-Umgebungen auf Grund der fehlenden Unterstützung von Sicherheitsaspekten oder nichtfunktionaler Attribute und damit einhergehend der halbgaren Lösungen für Orchestrierung nun wahrlich nicht das erste Mittel der Wahl.

REST wird ob seines Hypes häufig sehr überbewertet und man verliert dadurch auch schon mal den Blick für die Probleme, die man sich damit ins Haus holt.
Robert Wachtel
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#8

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 8. Apr 2010, 06:39
Zitat von Bernhard Geyer:
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.
Naja, es gibt auch ausreichend Beispiele in denen SOAP keinerlei Probleme macht und wegen der leichteren Integration und Handhabung Einsparungen ermöglicht - eine britische Bank (if.com) wurde IT-seitig komplett auf der Basis von SOAP aufgebaut. (Beschrieben in Krafzig/Banke/Slama "Enterprise SOA - Service Oriented Architecture Best Practices".
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#9

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 8. Apr 2010, 07:28
Liefere hier mal einige Links zu REST und SOAP, damit man das mal selbst testen kann:

Delphi - REST-Client Collection zeigt wie man fremde Rest-Services nutzt.
Video für die Entwicklung eines Delphi-REST-Servers von Embracadero.
SOAP, REST, and the KISS rule ein Vergleich von Marco Cantù.

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
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
hgourvest

Registriert seit: 28. Apr 2010
1 Beiträge
 
#10

Re: DB-Zugriff über Internet kapseln (JSON oder Webservice)

  Alt 28. Apr 2010, 11:01
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:
http://www.delphionrails.com

Regards
  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:32 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