Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Buchungsprogramm über Internet (https://www.delphipraxis.net/149199-buchungsprogramm-ueber-internet.html)

DelphiManiac 16. Mär 2010 15:34

Datenbank: SQL Server • Version: 2008 Exp • Zugriff über: ADO

Buchungsprogramm über Internet
 
Hallo,

ich bin gerade dabei mir Gedanken über mein Backend zu machen,
ich habe ein Buchungsprogramm entwickelt, bei dem man mehrere Termine eintragen kann, diese habe ich testweise lokal mit einer Access DB am laufen gehabt.

Ziel ist es jetzt einen Zugriff über das Internet auf einen SQL Server 2008 Express zu realisieren.
Ersteinmal ist das sinnvoll sowetwas über ADO und einer Dyndns zu machen?

Falls nein was würdet ihr mir empfehlen, wie gesagt ich habe schon einige lokale DBs am Laufen gehabt aber noch nie einen Zugriff über das Web...

Vielen Dank

MfG
DelphiManiac

Bernhard Geyer 16. Mär 2010 15:43

Re: Buchungsprogramm über Internet
 
Zitat:

Zitat von DelphiManiac
... Ziel ist es jetzt einen Zugriff über das Internet auf einen SQL Server 2008 Express zu realisieren.
Ersteinmal ist das sinnvoll sowetwas über ADO und einer Dyndns zu machen?...

Sowas nur wenn du gesicherte Zugriff hast (IPSec und Co.). "Offene" SQL-Server sind ein 1A Einfallstor für Würmer bei ZERO-Day-Exploids. Man erinnert nur an den SQL Slammer

DelphiManiac 16. Mär 2010 15:51

Re: Buchungsprogramm über Internet
 
Hallo,

d.h. ich sollte ein VPN Zugriff von den Clients über den Router ermöglichen und dann im Prinzip "lokal" auf die Datenbank zugreifen?! Richtig?
Gruß
DM

Bernhard Geyer 16. Mär 2010 16:19

Re: Buchungsprogramm über Internet
 
Zitat:

Zitat von DelphiManiac
d.h. ich sollte ein VPN Zugriff von den Clients über den Router ermöglichen und dann im Prinzip "lokal" auf die Datenbank zugreifen?! Richtig?

Entweder das oder du erstellst z.B. eine WebService oder JSON-Kompatible Schnittstelle über die du mit der DB kommunizierst.

DelphiManiac 17. Mär 2010 11:32

Re: Buchungsprogramm über Internet
 
Hallo Bernhard,

kannst du mir ein paar Tipps zwecks Umsetzung mit einem Webservice geben.
Mir würde auch ein Link zu einem Tutorial oder ähnlichem helfen.

Habe das so einige Fragen, da ich noch keinen (na gut mit Dot Net vor langer Zeit, zählt also nicht) Webservice entwickelt habe. Aber ich will ja nicht unwissend sterben :-)

Viele Dank
MfG
DelphiManiac

Grolle 17. Mär 2010 11:41

Re: Buchungsprogramm über Internet
 
Hallo,

Zitat:

Zitat von Bernhard Geyer
Entweder das oder du erstellst z.B. eine WebService oder JSON-Kompatible Schnittstelle über die du mit der DB kommunizierst.

daran bin ich im Moment auch interessiert. Im Prinzip stelle ich mir das so vor:
  • Zugriff mit Indy (idhttp) oder ICS auf ein PHP Formular, welches die Daten im JSON Format entgegennimmt und verarbeitet
  • Kommunikation über ssl also https

Wäre das der Weg?

Viele Grüße ...

Bernhard Geyer 17. Mär 2010 12:11

Re: Buchungsprogramm über Internet
 
Zitat:

Zitat von Grolle
daran bin ich im Moment auch interessiert. Im Prinzip stelle ich mir das so vor:
...
Wäre das der Weg?

Eine Möglichkeit.
Jedenfalls ist JSON einfacher mit Delphi als der WebService-Weg.
Kompos sind z.B. unter JSON.org verlinkt. Neuere Delphi-Versionen haben da schon was dabei.

DelphiManiac 17. Mär 2010 12:20

Re: Buchungsprogramm über Internet
 
Wie ist denn der generelle Aufbau?

Client -> Webservice -> Datenbank

Also vermittelt der Webservice oder JSON die Anfragen der Clients und leitet sie an die Datenbank weiter?!
Ist das richtig?

Würde dann der Client folgendes machen:
Client :Gebe mir alle Datensätze xyz
Webservice "SELECT * FROM xyz"
Result: hier hast du alle Datensätze...

Ist der Hintergrund dieser Geschichte, dass der DB-Zugriff nur über die gekapselten Funktionen des Webservices möglich ist und so z.B.: kein SQL-Injection etc möglich ist?
Bzw. JSON ist ja nur das Datenformat das genutzt wird für die Übertragung von Daten? Oder Befehelen?


Gruß
DM

DelphiManiac 3. Mai 2010 10:29

Re: Buchungsprogramm über Internet
 
Hallo,

ich will den Thread nochmal aufwärmen und ein paar zusätzliche Infos mitteilen.

Ich nutzte eine Komponente der Firma TMS (tmssoftware.com) und zwar den
TDBPlanner, das ist ein Ressourcenplaner mit dem man z.B.: Belegung von Hotelzimmern zeitlich darstellen kann.
Ich nutze ihn für die Möglichkeit um Buchungen (Start-Ende + Infotext und noch ein paar zusätzliche Daten (Anzahl Personen)
einer Spalte zu zuordnen.

Das passiert alles über eine Datasource Zuweisung und das Tool liest die Datensätze aus der DB in die Darstellung und wenn man was hinzufügt dann wieder in die DB,
alles Klasse :-) Jedoch will ich ja den Datenbankzugriff über das Web machen ohne VPN, so dass ich die DB nicht direkt öffne, der Zugriff muss also gekapselt werden.

Da habe ich ja jetzt schon ein paar gute Tipps bekommen (Stichwort: Webservice)

Ich müsste dann aber wahrscheinlich die Komponente ohne DB-Anbindung nehmen (gibts aus TPlanner) und dafür selbst sorgen, dass die Buchungen angezeigt werden oder?

Wäre es denn auch möglich die Datenbank bei einem Webhoster zu nutzen (Webpaket + inkl 2 MySQL DB's) und dort dann ein Webservice für den Zugriff laufen zu lassen?

Ist das denn möglich? (Strato), Also kann man Exe-Dateien ohne Weiteres in ein CGI Verzeichnis laden?

Folgendes müsste ich umsetzen:

1. Webservice
- Funktion : Gib mir alle Buchungen von Tag (X)
- Funktion : Füge Buchung an Tag X Uhrzeit X-Y hinzu
- Funktion : Lösche Buchung an Tag X Uhrzeit X-Y
- Funktion : Login ?????

Wie könnte ich denn einen Login realisieren, damit nur derjenige die Funktionen aufrufen kann der sich vorher authentifiziert hat?


Oh je ich glaub ich habe wieder zuviel geschrieben sorry :-)

Vielen Dank schonmal

Gruß
DM

mjustin 3. Mai 2010 10:58

Re: Buchungsprogramm über Internet
 
Zitat:

Zitat von DelphiManiac
- Funktion : Login ?????

Wie könnte ich denn einen Login realisieren, damit nur derjenige die Funktionen aufrufen kann der sich vorher authentifiziert hat?

Amazon Web Services (http://aws.amazon.com) haben dazu ein ganz simples Konzept und auch die komplette Doku online: es gibt kein Login und keine Sessions, sondern jeder Aufruf einer Web Service Methode enthält ein Authentifizierungstoken. Dieses erstellt man indem bestimmte Daten verschlüsselt werden (Name der Methode, aktuelle Uhrzeit). Der Server entschlüsselt dieses Token. Man kann also nicht einfach einen Aufruf abfangen und später noch einmal senden, da der Server erkennt dass er 'veraltet' ist.

Nachteil: der Key zum verschlüsseln des Tokens muss beim Client liegen (aber das ist ja ein generelles Problem)


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