Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Bitte um Hilfe für Webservice/Gateway/PortListener (https://www.delphipraxis.net/170493-bitte-um-hilfe-fuer-webservice-gateway-portlistener.html)

Bali 20. Sep 2012 06:02

Bitte um Hilfe für Webservice/Gateway/PortListener
 
Hallo zusammen,

ich weis leider nicht den genauen Namen für das, was ich bauche, deswegen schrieb ich im Titel Webservice/Gateway und PortListener.

Ihr müsst euch bitte vorstellen, es gibt ein System A und ein System B und diese beiden Systeme können nicht dirket miteinander sprechen.
Deswegen brauch ich ein Zwischenprogramm (Webservice/Gateway/PortListener), das zwischen System A und System B steht.
System A soll Informationen in einem String an das Zwischenprogramm schicken, dieses wiederum parst den String, bereitet ihn auf und schickt in passend an System B.
System A schickt in unterschiedlichsten Zeiträumen solche Informationen.

Ich hoffe es kommt einigermaßen verständlich rüber, von was ich rede und was ich brauche :)

Für jede Hilfe oder Hinweis, womit ich mein Problem lösen kann, wäre ich sehr Dankbar.

MfG
Bali

mkinzler 20. Sep 2012 06:48

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Es existiert aber ein System C auf das beide Zugrifff haben? Welches Os hat dieses?

mjustin 20. Sep 2012 06:54

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Zitat:

Zitat von Bali (Beitrag 1183648)
System A soll Informationen in einem String an das Zwischenprogramm schicken, dieses wiederum parst den String, bereitet ihn auf und schickt in passend an System B.
System A schickt in unterschiedlichsten Zeiträumen solche Informationen.

Können denn beide Programme um Funktionen erweitert und neu kompiliert werden?
(Oder haben sie schon irgendeine Möglichkeit, Daten zu senden (A) oder zu empfangen (B)?)

Denn der WebService müsste ja A bekannt gemacht werden, damit A dahin senden kann, und B muss eine Eingangsschnittstelle haben, damit der Webservice B ansprechen kann.

Auf welche Weise (Übertragungsprotokoll) sendet A seine Informationen zur Zeit?

Angenommen, beide Systeme sind änderbar, kommen verschiedene Techniken in Frage. Hier ein Beispiel mit HTTP:

Schritt 1:
* Anwendung A kann über ein Protokoll wie HTTP Daten an C senden. Dazu benötigt A einen HTTP Client und C einen HTTP Server, der auf einem freien Port läuft. (Internet Direct (Indy) enthält einen einfachen HTTP Server)

Schritt 2:
* Anwendung C verarbeitet die erhaltenen Daten um sie für B passend zu machen.

Schritt 3:
* um die Daten von C an B zu übermitteln, gibt es zwei konträre Möglichkeiten, je nachdem, welcher Partner die Verbindung herstellen darf (d.h. wer Client und wer Server ist):

- wenn die Anwendung B auch einen integrierten HTTP Server starten darf, dann kann C als HTTP Client mit B kommunizieren. (C sendet den HTTP Request an B)

- falls die Anwendung B keinen integrierten HTTP Server enthalten darf (z.B. wegen Firewall), kann sie stattdessen als HTTP Client in regelmäßigen Abständen auf den Server C zugreifen und auf neue Nachrichten prüfen. Der Server auf C puffert die Nachrichten dazu bis sie von B abgerufen werden. Um Datenverlust zu vermeiden, kann C die Daten persistent machen (z.B. in einer kleinen lokalen Datenbank).

Bummi 20. Sep 2012 07:05

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Eine Art Proxy?

Bali 20. Sep 2012 07:40

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
OK, nennen wir das Zwischenprogramm C.

C liegt auf einem Windows 2008 Server.

Damit C die aufbereiteten Daten nach B schicken kann, ist kein Problem für mich.

Wichtig wäre für mich erstmal, wie A die Informationen nach C schicken kann.

A kann die Informationen über einen http oder xml String senden.

Aber wenn ich das richtig verstehe, muss auf C ein HTTP Server laufen, damit sich A und C verständigen können, richtig ?
Könnte ich nicht ein Programm schreiben, was wie ein Service läuft und ständig einen Port überwacht, und sobald der Port angesprochen wird, bzw. eine Info geschickt wird, nimmt das Programm die Info entgegen und bearbeitet sie.

Sorry, ist für mich in dem Thema alles ziemlich Neuland :(

Bummi 20. Sep 2012 07:49

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Muss IMHO kein HTTP-Server sein. Wie Du beschreibst, ein Dienst der auf einem Port (SS) lauscht, die Daten von 1 transformiert und an 2 weiterreicht (CS), das was von 2 zurückkommt gegf. wieder transformiert und an 1 zurückgibt.

Bali 20. Sep 2012 07:55

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Richtig, an sowas denke ich, ich würde halt nur gern wissen, wie ich das umsetzen kann :)

Jumpy 20. Sep 2012 07:55

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Zitat:

Zitat von Bali (Beitrag 1183654)
A kann die Informationen über einen http oder xml String senden.

Ist A denn ein Programm, das du verändern kannst, oder ist a eine "fremde" Software, die du nur konfigurieren kannst, sprich du kannst da z.B. eine IP-Adresse angeben, wohin es die Daten schickt, o.ä.?

Wir haben z.B. hier eine Telefonanlage, die zu Login-Zwecken jedes Ereignis z.B. in eine Logdatei schreibt, man kann es aber stattdessen auch (über HTTP.Get) an einen HTTP-Server schicken lassen. Das haben wir ausgenutzt, um ein Programm C zu schreiben, an das die Daten geschickt werden. Das Leitet diese dann direkt und unverfälscht als HTTP-Client, ebenfalls via Get an eine Drittsoftware zur Gebührenerfassung weiter, speichert die Daten aber in aufbereiteter Form zusätzlich für uns ab. Wir haben C also dazwischengeschaltet.

Bali 20. Sep 2012 08:08

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
A ist eine externe Software und ich kann dort nur sagen, wohin sie den String schicken sollen, also IP und Port Angabe.

Hört sich nach dem an, was ich auch gebrauchen könnte, aber ich möchte ungern jetzt auf dem System wo C läuft einen HTTP Server einrichten.

mjustin 20. Sep 2012 08:14

AW: Bitte um Hilfe für Webservice/Gateway/PortListener
 
Zitat:

Zitat von Bali (Beitrag 1183654)
OK, nennen wir das Zwischenprogramm C.

C liegt auf einem Windows 2008 Server.

Damit C die aufbereiteten Daten nach B schicken kann, ist kein Problem für mich.

Wichtig wäre für mich erstmal, wie A die Informationen nach C schicken kann.

A kann die Informationen über einen http oder xml String senden.

HTTP ist also als Protokoll vorgesehen? Das ist ja wie bestellt :) Und XML als "Dateiformat" ist für Delphi auch kein Problem, also ok.

Zitat:

Zitat von Bali (Beitrag 1183654)
Aber wenn ich das richtig verstehe, muss auf C ein HTTP Server laufen, damit sich A und C verständigen können, richtig ?
Könnte ich nicht ein Programm schreiben, was wie ein Service läuft und ständig einen Port überwacht, und sobald der Port angesprochen wird, bzw. eine Info geschickt wird, nimmt das Programm die Info entgegen und bearbeitet sie.

Ja, so ein Programm heisst auch HTTP Server :)

Man kann es als Dienst laufen lassen, und es muss so eingestellt sein dass es auf dem Port lauscht der in A hinterlegt ist.

Wenn dann A eine HTTP Nachricht an diesen Port sendet, empfängt der Dienst den XML String. Im Dienst kann dann die Kommunikation mit B folgen.

Zitat:

Zitat von Bali (Beitrag 1183654)
Hört sich nach dem an, was ich auch gebrauchen könnte, aber ich möchte ungern jetzt auf dem System wo C läuft einen HTTP Server einrichten.

Wenn HTTP vom System A untersützt wird, ist das wohl die beste Möglichkeit. Man muss keinen IIS oder Apache HTTP Server installieren, es ist alles in einem kleinen Delphi Serviceprogramm machbar. Gefühlt mit weniger als hundert Zeilen Quellcode für einen einfachen Server.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.
Seite 1 von 3  1 23      

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