Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Prism Webseite oder XML-datei an Server übertragen (https://www.delphipraxis.net/134597-webseite-oder-xml-datei-server-uebertragen.html)

eddie11 25. Mai 2009 14:46


Webseite oder XML-datei an Server übertragen
 
Hallo allerseits,

wir haben einen Webshop mit Delphi Dotnet entwickelt, soweit alles ok. Nun müssen wir die Daten des Warenkorbes per OCI-Protokoll an den Server des Kunden übertragen. Das haben wir erst mal mit Indy gelöst, funtioniert auch soweit, wenn der Kundenserver aus dem Web erreichbar ist. Ist der Kundenserver aber nur lokal auf der Kundenseite aus dem Netzwerk des Kunden erreichbar, dann geht das natürlich nicht, denn unser Webserver kann ja den (dort lokalen) Kundenserver nicht erreichen. Das müsste als irgendwie browserseitig beim Kunden geschehen, geht das denn überhaupt mit Indy oder müssen wir das irgendwie anders lösen?

Vielen Dank im voraus für Eure Hilfe.

Phoenix 25. Mai 2009 14:53

Re: Webseite oder XML-datei an Server übertragen
 
Ich denke das müsstest ihr andersrum machen.
Euer Webserver mit dem WebShop sollte einen WebService anbieten, der (Passwortgeschützt) dieses XML ausliefert.

Der Kundenserver braucht dann nur in regelmässigen Abständen aus dem eigenen Netz diesen Webservice im Internet abzufragen um zu gucken ob neue Bestellungen vorliegen. Das geht mittels den ganz normalen Delphi-Hausmitteln zu Webservices.

mjustin 25. Mai 2009 18:19

Re: Webseite oder XML-datei an Server übertragen
 
Zitat:

Zitat von eddie11
Hallo allerseits,

wir haben einen Webshop mit Delphi Dotnet entwickelt, soweit alles ok. Nun müssen wir die Daten des Warenkorbes per OCI-Protokoll an den Server des Kunden übertragen. Das haben wir erst mal mit Indy gelöst, funtioniert auch soweit, wenn der Kundenserver aus dem Web erreichbar ist. Ist der Kundenserver aber nur lokal auf der Kundenseite aus dem Netzwerk des Kunden erreichbar, dann geht das natürlich nicht, denn unser Webserver kann ja den (dort lokalen) Kundenserver nicht erreichen. Das müsste als irgendwie browserseitig beim Kunden geschehen, geht das denn überhaupt mit Indy oder müssen wir das irgendwie anders lösen?

Vielen Dank im voraus für Eure Hilfe.

Je nach den sonstigen Rahmenbedingungen kann man hier auch einen kleinen Message Broker (ActiveMQ, OpenMQ oder xmlBlaster) einsetzen. Die Nachrichten werden dabei auf einer Message Queue zwischengespeichert, und können von dieser an Clients ausgeliefert werden.

Clients für Message Broker gibt es für viele Programmiersprachen, für ActiveMQ zum Beispiel auch als Open Source für Delphi.

Zwischen Kundenserver und Message Broker würde also eine Delphi Anwendung stehen, an die der Message Broker aktiv neue Nachrichten sendet. Verarbeitete Nachrichten kann der Client dann beim Message Broker als 'erledigt' kennzeichnen.

Der Message Broker garantiert, dass die Clients die Nachrichten erhalten. Die Clients müssen nicht ständig online sein, falls sie ausfallen, puffert der Broker die Nachrichten und kann sie auch in einer Datenbank persistent machen, für den Fall eines Serverausfalls - je nach Anforderungen an Ausfallsicherheit.

Die Open Source Message Broker ActiveMQ, OpenMQ und xmlBlaster sind schnell installiert und sehr performant, und für den Einsatz in Unternehmensanwendungen geeignet.

Mehr dazu steht z.B. in der Wikipedia:

http://de.wikipedia.org/wiki/Message...ted_Middleware

eddie11 26. Mai 2009 07:20

Re: Webseite oder XML-datei an Server übertragen
 
ja danke, aber leider sind wir an diese OCI-Schnittstelle gebunden. Wenn der Kunde im Webshop auf "Warenkorb abschicken" klickt, dann soll die Übertragung an seinen Server stattfinden, der Browser wird dann von dort automatisch geschlossen und die Verarbeitung geht im Bestellsystem des Kunden weiter. Wir haben also keine Möglichkeit, irgendwelche anderen Schnittstellen zur Verfügung zu stellen.

Phoenix 26. Mai 2009 07:31

Re: Webseite oder XML-datei an Server übertragen
 
Zitat:

Zitat von eddie11
Wir haben also keine Möglichkeit, irgendwelche anderen Schnittstellen zur Verfügung zu stellen.

Dann habt ihr ein Problem. Der Endkunde (der, der Bestellt) fällt aus. Sicherheitsverfahren verhindern, dass etwas im Browser auf einmal mit einem anderem Server Kontakt aufnimmt. Das heisst 'Browserseitig' kann da gar nichts passieren - zumal auch hier ja sowieso keine Verbindung zum Kundenserver besteht, wenn der aus dem Internet nicht erreichbar ist.

Fakt ist: Ihr müsst die Bestellung irgendwie von Eurem Webserver in das Kundennetz reinbringen, damit ihr sie beim Kundenserver abliefern könnt.

Die einfachste Lösung wäre eben, einen Dienst in diesem Netz zu installieren, der regelmäßig auf dem Webserver nach neuen Bestellungen pollt und diese dann an den Kundenserver mittels OCI (das ist ein SAP-Protokoll, richtig?) abliefert. Ihr baut also sozusagen eine Art Proxy.

Ansonsten müsstest Ihr bei Eurem Kunden dafür sorgen, dass die Schnittstelle halt vom Internet aus erreichbar ist.

eddie11 26. Mai 2009 08:37

Re: Webseite oder XML-datei an Server übertragen
 
Ja, OCI ist ein von SAP entwickeltes Protokoll (Open Catalog Interface) zum Austausch von Warendaten.

Wir haben das schon gelöst mit einer dynamisch erzeugten HTML-Seite, deren Postback Adresse wir auf den Server des Kunden umleiten, das funktioniert. Da es dann aber eine HTML-Seite ist, geben wir die Kontrolle aus ASP ab und können nicht checken ob alles ordnungsgemäß abgelaufen ist...


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