AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

SOAP Webservice in Delphi?

Ein Thema von Elrond · begonnen am 19. Dez 2017 · letzter Beitrag vom 29. Dez 2017
Antwort Antwort
Seite 2 von 3     12 3   
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#11

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 12:36
Für mich ist das wieder ein weiterer Sargnagel für Delphi.
Wohl eher ein Sarg-Nägelchen.
Viele Firmen verlassen den SOAP-Weg (u.a. wegen der Komplexität u.a. bei Sicherheitsanforderungen) und wechseln auf REST/JSON und Co.
Schau mal nach ob es für deine Anforderung auch diese moderner Schnittstelle gibt?
Deine Aussage erscheint mir widersprüchlich, die Firmen verwenden kein SOAP mehr aufgrund der Komplexität bei den Sicherheitsanforderungen. Soweit ich weiß bietet REST aber überhaupt keine einheitliche Sicherheitsanforderungen. In der WSDL steht beschrieben wie die Signatur und Verschlüsselung der Inhaltsdaten zu erfolgen hat, für REST existiert meines Wissens nach sowas überhaupt nicht. Damit könnte jeder REST Service sein eigenes Süppchen kochen, was die Komplexität enorm steigern würde. Eher benötigen die meisten Webservices nicht mehr als eine Transportverschlüsselung und dafür wäre SOAP zu viel.

In den letzten Tagen habe ich noch die Clever Internet Suite ausprobiert.
Probier auch mal die IPWorks-Komponenten aus: http://cdn.nsoftware.com/help/IP9/dlp/SOAP.htm
Wir setzen von IPWorks die Komponenten für http(s)/ftp(s) ein und sind sehr zufrieden damit.
Danke, werde ich mir anschauen.
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
532 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 13:09
Delphi kann mit MTOM und WS* praktisch nicht wirklich umgehen, nicht out of the box.

Jo mei. Im Prinzip haben sich MS und SUN auf den Standard in eher trauter Zweisamkeit geeinigt. Es ist deren Zeug und geht uns mal prinzipiell nichts an.

Integrationsschnittstellen und damit verbundene Technologien gibt es zum Säuefüttern. Ich hätte mal kein Problem damit, dass ich ein .net oder Java Artefakt mitausliefere. Kommt aus dieser Welt, gehört in die Welt.

Musst du halt ausprogrammieren und grad im Umfeld von SOAP wurde dieses 'Ausprogrammieren' eher seitens der Werkzeuge am Ende durch Generierung unterstützt. Dafür brauchst du eine eigene Variante von Eclipse (Add-In) für jeden Schas, das ist die Kehrseite.

WS* hat eigentlich nur genervt und tut es heute auch noch.

Der SOAP Service allein ist in dem Technologiewulst noch nicht genug. Das geht viel weiter in diese absurden Konstrukte von verschachtelten XML Schema Definitionen, XSLT usw... Es haben viele Leute irgendetwas zur Praxis erhoben, das so nicht gemeint war.

Auf eine Third-Party Lösung wirst du zurückgreifen müssen in deinem Fall. Es ist vermutlich der pragmatischere Zugang.

Nicht falsch verstehen. Man kann nicht hergehen und jede vorstellbare Abhängigkeit welche nicht konsequent befriedigt wird in Richtung eines 'Delphi kann nix' auslegen.

Delphi ist in dem Umfeld XML/Java like ergänzt um .net WCF welches selbst seitens Java nicht mehr in letzter Konsequenz unterstützt nicht recht berühmt aufgestellt. In der Praxis gibt es die Ebene Infrastruktur die eigentlich solche Probleme sollte handeln. Die Realität schaut mal so aus, dass eine Applikation sich mit der Vermittlung von Nachrichten nicht hat anzupatzen. Es hat sich allein im Umfeld von Windows und Applikation dies eingebürgert.

Man kann auch die Kenntnis der Facebook API als Kompetenz ansehen, aber sobald nur genug solche Schnittstellen da sind, ändert sich die Sicht eher auf vergebene Liebesmüh.

Hallo Zusammen,
ich versuche mich aktuell an der Implementierung eines SOAP Clients in Delphi.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 13:37
Deine Aussage erscheint mir widersprüchlich, die Firmen verwenden kein SOAP mehr aufgrund der Komplexität bei den Sicherheitsanforderungen. Soweit ich weiß bietet REST aber überhaupt keine einheitliche Sicherheitsanforderungen. In der WSDL steht beschrieben wie die Signatur und Verschlüsselung der Inhaltsdaten zu erfolgen hat, für REST existiert meines Wissens nach sowas überhaupt nicht. Damit könnte jeder REST Service sein eigenes Süppchen kochen, was die Komplexität enorm steigern würde. Eher benötigen die meisten Webservices nicht mehr als eine Transportverschlüsselung und dafür wäre SOAP zu viel.
Bei JSON/REST brauch ich keine in JSON/REST implementierte Sicherheitslösung/Spezifikation. Ich nehme einfach das, was es schon seit Jahrzehnten gibe.
Ich Ruf eine URL auf und ob ich diese Aufruf erlaubt ist wird außerhalb meiner JSON/REST-Schnittstelle gelöst. Ich kann mich voll und ganz auf die eigene Logik konzentrieren.
Und solche Security-Lösung auf URL-Basis gibt es wie Sand am Meer.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#14

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 14:13
Deine Aussage erscheint mir widersprüchlich, die Firmen verwenden kein SOAP mehr aufgrund der Komplexität bei den Sicherheitsanforderungen. Soweit ich weiß bietet REST aber überhaupt keine einheitliche Sicherheitsanforderungen. In der WSDL steht beschrieben wie die Signatur und Verschlüsselung der Inhaltsdaten zu erfolgen hat, für REST existiert meines Wissens nach sowas überhaupt nicht. Damit könnte jeder REST Service sein eigenes Süppchen kochen, was die Komplexität enorm steigern würde. Eher benötigen die meisten Webservices nicht mehr als eine Transportverschlüsselung und dafür wäre SOAP zu viel.
Bei JSON/REST brauch ich keine in JSON/REST implementierte Sicherheitslösung/Spezifikation. Ich nehme einfach das, was es schon seit Jahrzehnten gibe.
Ich Ruf eine URL auf und ob ich diese Aufruf erlaubt ist wird außerhalb meiner JSON/REST-Schnittstelle gelöst. Ich kann mich voll und ganz auf die eigene Logik konzentrieren.
Und solche Security-Lösung auf URL-Basis gibt es wie Sand am Meer.
Irgendwie kann ich dir nicht ganz folgen, was gibt es bereits seit Jahrzehnten und warum ist es besser auf eine einheitliche Spezifikation zu verzichten? Wenn ich mich in meiner Anwendung auch noch um die Validität und Authentizität der Nachricht kümmern muss, dann ist es für mich das gegenteil von ganz auf die eigene Businesslogik zu konzentrieren. In SOAP ist dieses Verfahren genau spezifiziert und idealerweise kümmert sich ein Framework um alles weitere, auch sind die Anforderungen jeden Teilnehmer klar. Da REST zu diesen Thema keine Vorgaben macht (ist ja eigentlich mehr eine Architektur, darunter kann ich auch einfach SOAP Nachrichten verschicken) steigt die Komplexität. Der eine Service verwendeten den Standard X, der andere verwendet eine Eigenentwicklung usw.
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
532 Beiträge
 
Delphi 10.3 Rio
 
#15

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 14:24
Prinzipiell kommt mal die 'Message' Philosophie aus der U.S. Logistik. Bspw. war der Message Broker ein Unternehmenstyp welcher alle Message in Empfang genommen hat, zumeist konvertiert hat und hernach weiterversandt.


Als ein Relikt blieb die EAI Idee.

Ich persönlich habe mal probiert die EAI Patterns inkl laufendem Server Environment umzusetzen und ehrlich, es ist zuviel 'Hockn' (österr. für Arbeit). Das entschuldigt zwar nicht die Abwesenheit dieser Funktionalität in Delphi, ... Weise Voraussicht war nicht der Treiben, aber es war schon zu Zeiten von Delphi 7 REST stammt aus 2000 und SOAP 1.0 und 1.1 waren damals noch aktuell. Borland hatte damals eher REST im Foku und möglw. .net im Focus mit Delphi 2005. Vermutung meinerseits.

Weswegen auch im Falle von SOAP ein SOAP Proxy habe mir zu Gemüte und der aus Deutschen Landen von Thomas Bayer ist bis heute noch immer die erste Wahl. Membrane EAI

Ehre wem Ehre gebührt.

Ich habe damals auch alle möglichen und gängigen auf Java aufbauenden Stacks inkl. deren Erweiterungen mit ins Kalkül aufgenommen und dann wird die Sache schon massiv aufwendig. Eine WSDL ist eine Sache und ob ein Feld optional oder zwingend hängt stark von der Serverseite ab. SAP sofern der Server in ABAP implementiert pfeift sich auf dem Eck exakt gar nichts. Mittlerweile ist der externe RFC Server und der gepufferte RFC für so manchen Methodenaufruf schon wieder eine wesentlich praktikablere Option.

Leider hat die inkonsequente Umsetzung dazu geführt, dass eine saubere Defintion einer WSDL in der Praxis ad absurdum wurde geführt.

Damit muss man die Messages wieder 'mit der Hand' anpassen.

Es hat sich allein herausgestellt, dass die ursprüngliche Vision der User mapped die Nachrichten selbst ins kanonische Unternehmensmodell (sofern so eines überhaupt existiert) in Ermangelung von Werkzeugen defakto nicht praktikabel ist. Damit wurde auf einmal wieder die Programmierung interessant. Der Trend ist eher bezogen auf WS* eher neu (wenn auch schon lange her). CAMEL Umfeld ...

Weites hat sich in der Praxis (nicht nur bei einem Kollegen in dessen Company) gezeigt, wenn der Client nicht auf einem Knopfdruck generiert wird fällt die Akzeptanz relativ schnell grad auch beim Programmierer. Ergänzt wurde das ganze noch um den Java Debugger welcher dann erlaube die Nachrichten zu debuggen.

Das alles ewig auf Stand halten ... und dann geht wieder einer auf einen andere Backentechnologie und es fehlt ein Stück vom Glück. Davon mal abgesehen hinkt man noch weiter hinterher als eh schon jetzt und so wechselfreudig sind die Infrastrukturbetreiber in dem Umfeld auch nicht mehr. Man muss ewig und 3 Tage mit Gott und der Welt kompatibel bleiben.

Alles andere bewegt sich stark in Richtung REST oder ähnlich gelagerten Alternativen wie als ein Beispiel unter einer Myriade erwähnt.

macchina.io im IoT Umfeld als ein Beispiel aus Kärnten.


Ewig und 3 Tage bleibt die Legacy eine Plage und die Kompatibilität wird eher über Infrastruktur am Leben gehalten. Im großen Bild ist eher eine der Infrastruktur nahe Lösung wahrscheinlicher.

Wenn ich von dem Bild ausgehe hätte einerseits kein Problem weder mit Third-Party noch mit jvm oder .net verwandten ausgelieferten Artfakten. Es wird in Europa halt noch dauern bis die Einsicht kommt, dass nicht jede Applikation mit jedem Backend können kann. Im Moment haben die kleinen Unternehmen bspw. aus dem Automotive Umfeld eine normierte Schnittstelle, aber nichts desto trotz schicken die ERP und 'WAWI' Software Hersteller allesamt auf ein Backend bei einem Message Broker der diese Nachrichten im Rahmen von Infrastruktur handelt.

Ich habe gearbeitet in einem E-Fullfillment Center in Los Angeles und dort habe ich zumindest mitbekommen was die tatsächlichen Probleme damals waren. Wenn mal die Trucks kommen zum Lagerhaus, ausladen auf einem Ende und am anderen wieder ein. Dazwischen werden ein paar Zehntausend Päckchen bis zu einer Mio. Pakete (Päckchen) mit eigenen Aufklebern werden versehen und wenn das Pickerl drauf ist, knattert eine Message raus übers Netz, dann sind wir eher in der Realität von dem was kommt. Ein paar hunderttausend mal ein paar Cent läppert sich . Das war/ist das Geschäft der Message Broker und Converter.

Ich persönlich sehr Delphi und auch SOAP in dem Umfeld eher bedingt.

Ich selbst habe dann noch mit dem 4Tier Open-Mom Message Broker experimentiert usw... Ging, aber war ein wenig zu bald. Messages zu konvertieren war auch schon damals eine Python Domäne.

Mit dem Ansatz trenne die Applikation vom Message Routing selbst und meine Uni-Kollege mit seiner Company auf Dauer wesentlich besser gefahren.

Das mal Abseits der SOAP Frage ... allein da das Thema gut passt.


Hallo Zusammen,

ich versuche mich aktuell an der Implementierung eines SOAP Clients in Delphi.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 14:45
Irgendwie kann ich dir nicht ganz folgen, was gibt es bereits seit Jahrzehnten
z.b. Http Basic Authentication (über https)
Cookies and session management
Token in HTTP headers (z.B. OAuth 2.0)

und warum ist es besser auf eine einheitliche Spezifikation zu verzichten?
Es wird doch nicht auf eine einheitliche Spezifikation verzichtet. Es wird halt einfach eingenommen die schon (teilweise) schon sehr lange existiert.

Wenn ich mich in meiner Anwendung auch noch um die Validität und Authentizität der Nachricht kümmern muss,
Musst du nicht. Diese ist letztendlich komplett außen vor. In Delphi sind über die Jahre für die ganzen schon existierenden Verfahren (wie OAuth) Komponenten dazu gekommen, so das der Implementierungsaufwand sehr überschaubar wird.

In SOAP ist dieses Verfahren genau spezifiziert
Vermutlich Leitet auch SOAP über ein Art Überspezifikation. Statt etwas zu verwenden das es schon gibt meint man es in SOAP neu erfinden zu müssen.

und idealerweise kümmert sich ein Framework um alles weitere, auch sind die Anforderungen jeden Teilnehmer klar.
Dann nimm doch so ein Framework. Bei Delphi/Emba wird es in diesem Bereich sehr wahrscheinlich keine Erweiterungen geben. Dazu ist SOAP hinter JSON/REST und Co. mittlerweile relativ unbedeutend geworden ist. Die Zukunft ist JSON/REST. SOAP ist mittlerweilen (fast) CORBA 2.0 zu nennen.
Evtl. ist auch der Schlusssatz in diesem Heise-Artikel ganz gut

Da REST zu diesen Thema keine Vorgaben macht (ist ja eigentlich mehr eine Architektur, darunter kann ich auch einfach SOAP Nachrichten verschicken) steigt die Komplexität.
Klar kannst du über normale http-Abfragen auch SOAP-Nachrichten verschicken.
Du kannst dich aber auch gleich ins Knie schießen. Kommt aufs gleiche raus.

Der eine Service verwendeten den Standard X, der andere verwendet eine Eigenentwicklung usw.
Nö. Passiert eigentlich nicht. Es gibt eine Hand voll Standards die man Einsetzen kann. Aber den Aufwand einer Eigenentwicklung wird sich keiner antun.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EmWieMichael

Registriert seit: 28. Mär 2012
103 Beiträge
 
#17

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 14:51
Elrond, hast Du diesen Thread, insbesondere Seite 3, gesehen. Funktioniert bei mir seit Jahren einwandfrei im gesicherten Deutschland-Online-Netz (DOI), mit Client-Zertifikaten.
Vielleicht hilfts Dir...
  Mit Zitat antworten Zitat
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#18

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 15:21
@MichaelT

Ein Interessanter Einblick, auch kommen mir einige Punkte bekannt vor.

Irgendwie kann ich dir nicht ganz folgen, was gibt es bereits seit Jahrzehnten
z.b. Http Basic Authentication (über https)
Cookies and session management
Token in HTTP headers (z.B. OAuth 2.0)
Wir reden grad aneinander Vorbei, du bezieht sich die ganze Zeit auf den Transportweg und ich auf den Inhalt. Die WSS-Spezifikation beschreibt nicht nur wie der Transport zu erfolgen hat sondern auch die Anforderungen an den Inhalt. Die Validität und Authentizität der Nachricht ist auch nach den Empfang gegeben, Beispielsweise während einer internen Weiterleitung und nur der Leser hat Zugriff auf den Inhalt. Soweit ich weiß gibt es in REST so etwas nicht, da der Inhalt unabhängig ist, es ist wie soll ich sagen eine rein technische Schnittstelle.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 15:30
Die WSS-Spezifikation beschreibt nicht nur wie der Transport zu erfolgen hat sondern auch die Anforderungen an den Inhalt.
Und welche Teile davon? Und wann ist das IRL (in Real Live) relevant?
Für Viele Anwendungsfälle ist das einfach überspezifiziert.

Die Validität und Authentizität der Nachricht ist auch nach den Empfang gegeben,
Was genau davon? Wenn ich ein Nachricht per https verschicke (und die Verschlüsselung/Sicheheit durch lokale Firewalls/Virenscanner kaputt gemacht wurde ist die Authentizität gegeben.
Jetzt wäre die Frage was du mit Validität genau meinst?

Beispielsweise während einer internen Weiterleitung
Jetzt mal konkret. Was soll hier wie kaputt gemacht werden/gefälscht werden.

und nur der Leser hat Zugriff auf den Inhalt.
Solange du keine Transportverschlüsselung aktiv hast kann jeder den Inhalt lesen

Soweit ich weiß gibt es in REST so etwas nicht
Ich denke das was du bisher angesprochen hast wird von (fast) keinen vermisst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#20

AW: SOAP Webservice in Delphi?

  Alt 28. Dez 2017, 15:59
Die WSS-Spezifikation beschreibt nicht nur wie der Transport zu erfolgen hat sondern auch die Anforderungen an den Inhalt.
Und welche Teile davon? Und wann ist das IRL (in Real Live) relevant?
Für Viele Anwendungsfälle ist das einfach überspezifiziert.
Es ist für alle Fälle relevant wo die Transportverschlüsselung nicht mehr ausreicht. Wurde diese ausgehebelt, vielleicht durch eine MITM-Attacke, dann sind die Daten weiterhin geschützt durch ihre eigene Verschlüsselung. Auch eine Mehrfachverschlüsselung kann in Frage kommen um sicherzugehen das alle Leser "anwesend" sind. In meinen konkreten Fall werden sensible personenbezogene Daten übermittelt.

Die Validität und Authentizität der Nachricht ist auch nach den Empfang gegeben,
Was genau davon? Wenn ich ein Nachricht per https verschicke (und die Verschlüsselung/Sicheheit durch lokale Firewalls/Virenscanner kaputt gemacht wurde ist die Authentizität gegeben.
Jetzt wäre die Frage was du mit Validität genau meinst?
Das die Nachricht unterwegs nicht verändert wurde.

Beispielsweise während einer internen Weiterleitung
Jetzt mal konkret. Was soll hier wie kaputt gemacht werden/gefälscht werden.
Server (Empfänger) wurde kompromittiert, ist der Leser aber intakt kann die Sicherheit der Nachricht noch gewährleistet werden.

und nur der Leser hat Zugriff auf den Inhalt.
Solange du keine Transportverschlüsselung aktiv hast kann jeder den Inhalt lesen
Natürlich sollte die Transportverschlüsselung aktiv sein, aber wenn nicht, dann kann eben nicht jeder den Inhalt lesen, weil der Inhalt verschlüsselt und ggf. noch signiert ist.

Soweit ich weiß gibt es in REST so etwas nicht
Ich denke das was du bisher angesprochen hast wird von (fast) keinen vermisst.
Für die meisten ist es egal, wenn die Sicherheit jedoch solche Forderungen stellt, sieht es anders aus.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:47 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