Können bestehende SQLWindows-Anwendungen sinnvoll erweitert werden?

sql-windows-anwendung-analyse-wsdl-datei-proxy-funktion-soap-request-response-integration-md-consulting
sql-windows-anwendung-analyse-wsdl-datei-proxy-funktion-soap-request-response-integration-md-consulting

Mehr als zwanzig Kunden haben in den letzten achtzehn Monaten die Zusammenarbeit mit MD Consulting gesucht, um in ihre bestehenden, aber teilweise auch neuen Anwendungen Funktionalitäten zu integrieren, die über das Internet als „blackbox“-Funktionen zur Verfügung gestellt werden.
Unter dem zusammenfassenden Begriff „Webservice“ gibt es mittlerweile eine Vielzahl von Diensten, die sich – die Kommunikation mit Webservices verläuft über ein Standard-Protokoll – auch für die Integration in bestehende SQL-Windows-Anwendungen eignen.
In diesem Papier soll beispielhaft beschrieben werden, was die Beschäftigung mit Webservices bringen kann. Zur Veranschaulichung haben wir den Webdienst von eBay ausgewählt.
Stellen wir uns folgendes Szenario vor: Eine Firma vertreibt Produkte an seinen Kundenstamm. Die Firma möchte bestimmte Artikel aus seinem Lagerbestand zusätzlich einem größeren Interessentenkreis anbieten, um die Kosten für die Lagerhaltung zu reduzieren und bessere Liquidität zu erhalten.
Stellen wir uns des Weiteren vor, dass diese Firma mit einem Warenwirtschaftssystem arbeitet, das mit SQL-Windows entwickelt wurde und der Source Code für diese Anwendung vorliegt. Wenn grundsätzlich geklärt ist, dass die Vermarktung von bestimmten Artikeln oder Artikelgruppen über eBay vorgenommen wird, stellt sich als nächstes die Frage, wie dabei vorgegangen werden soll.
Händischer Ansatz
Zunächst können erste Erfahrungen gewonnen werden, indem man einen Account bei eBay beantragt und dort händisch einen Artikel einstellt, der sich aufgrund der Analyse des Lagerbestands besonders dafür eignet. Ein Mitarbeiter wird dann mit der Aufgabe betraut, den Verlauf der Auktion zu verfolgen und im Falle des Zuschlags zugunsten eines Kunden die entsprechende Abwicklung vorzunehmen.
Integration der eBay-Dienste
Tatsächlich stellt eBay die Funktionalitäten, die ein Anwender händisch über die Website vornehmen kann, auch für Programmierer in Form von so genannten Webservices zur Verfügung. Ein Programmierer muss ebenfalls einen Account bei eBay beantragen, was den Vorteil hat, dass für seine Tätigkeiten ein nicht produktiver Teil der eBay-Anwendung als „Sandkasten“ zur Verfügung gestellt wird. Der Programmierer kann in diesem Bereich seine Anwendung entwickeln, ausprobieren und testen, bevor sie produktiv für die tatsächliche eBay-Plattform durch ihn selbst freigeschaltet wird.
Technisch besteht die Integration von Webservices in der Nachbildung von SOAP-Kommunikation („Simple object access protocol“), bei dem über http von der Anwendung an den Webservice SOAP-Requests geschickt werden, die vom Webservice mit SOAP-Responses beantwortet werden. Das Austauschformat dieser Nachrichten liegt in Form einer XML-Struktur vor, die mit Hilfe eines entsprechenden Parsers erzeugt bzw. analysiert werden kann.
Der Anbieter eines Webservice – in diesem Fall eBay – beschreibt die zur Verfügung gestellten Funktionalitäten wie beispielsweise „Füge einen Artikel hinzu“, „Zeige den Verlauf der Auktion“, usw. in Form einer öffentlich zugänglichen Webservice Description Language (WSDL)-Datei. Auch diese Datei liegt in einer XML-Struktur vor.
Ein Programmierer kann nun mit Hilfe des geeigneten Parsers den Nachrichtenaustausch zwischen dem Webservice und der eigenen Anwendung händisch nachbilden oder – so hat es MD Consulting gemacht – einen entsprechenden Parser entwickeln, der die Informationen einer WSDL-Datei ausliest und automatisch aufgrund der ausgelesenen Informationen eine entsprechende Bibliotheksdatei erzeugt.
Der Vorteil des zweiten Ansatzes besteht darin, dass die gesamte Kommunikation zwischen SQLWindows-Anwendung und dem entsprechenden Webservice gekapselt wird. Somit muss nur eine entsprechende Funktion – als entfernte Funktion („proxy“)  – aufgerufen werden, um den Versand der SOAP-Request-Message auszuführen, die zurück erhaltene SOAP-Response auszuwerten und die erhaltenen Informationen in das eigene Programm zu integrieren.
Beispiel
Weiter oben hatten wir beschrieben, dass sich ein Mitarbeiter unter seinem Account bei eBay anmelden kann, um dort ein Produkt für eine Versteigerung zur Verfügung zu stellen. Hier soll jetzt gezeigt werden, wie ein derartiger Arbeitsschritt über eine eigene Anwendungsfunktionalität erledigt werden kann.
In der Abbildung 1 sehen sie die Oberfläche des Beispiel-Accounts. Auf dem Reiter „Activity“ unter der Überschrift „Active Selling“ wird angezeigt, dass derzeit kein Produkt bei eBay angeboten wird.

Die Abbildung 2 zeigt eine mit SQL-Windows erstellte Beispielanwendung nach erfolgreicher Übergabe des Produkts an die eBay- Plattform.

 

Nach wiederholtem Aufruf der vorher schon dargestellten Seite der eBay-Anwendung enthält die Oberfläche nunmehr auch den von mir bei eBay eingestellten Artikel, den wir zum Einstiegspreis von 1,00 € für eine bestimmte Dauer anbieten.

 

Geschäftsprozess
Mit diesem kleinen Beispiel sollte gezeigt werden, dass die Integration der eBay- Dienste in einer SQLWindows-Anwendung möglich ist. In diesem Beispiel wurde die Funktion „AddItem“ (über eine generierte Bibliotheksdatei) integriert und aufgerufen.
Es sollte leicht vorstellbar sein, dass durch weitergehende Integration von Funktionalitäten wie z.B. GetMyeBay-Selling(), GetMyeBay-Buying(), GetItem-Transaction(), GetSeller-Transaction(), usw. eine vollständige Integration des Verkaufsprozesses in eine bestehende Warenwirtschaftsanwendung mit einem Aufwand möglich ist, der in vielen Fällen den eingangs formulierten betriebswirtschaftlichen Anforderungen entsprechen kann.
Der Webservice Proxy-Generator
Seit der Version 5.1 wird im Team Developer ein eigener Webservice Proxy-Generator angeboten. Die Erfahrungen von MD Consulting zeigen allerdings, dass mit diesem zum Produkt gehörenden Generator nicht in jedem Fall funktionierende Aufrufe erstellt werden können.
Der Ansatz von MD Consulting ist daher ein anderer: Wir haben eine Sammlung von Funktionalitäten erstellt, mit der eine gegebene WSDL-Datei analysiert und eine entsprechende SQLWindows-Bibliotheksdatei (mit Hilfe des CDK) erstellt wird. Da wir über den Source Code dieses Generators verfügen, sind wir auch in der Lage, den Generator auf Besonderheiten (z.B. Authentifizierung) und Abweichungen vom SOAP-Standard (z.B. eBay) anzupassen.
Der Generator wurde von MD Consulting in unterschiedlichen Projekten an die Spezifika verschiedener Anbieter (Oracle Webservices, SAP Webservices, usw.) angepasst. Hierdurch konnte der Anwendungsprogrammierer von der Codierung des SOAP-Nachrichtenaustausches freigestellt werden, sodass er sich auf die Implementierung der notwendigen, betriebswirtschaftlichen Funktionalitäten konzentrieren konnte. Der MD Webservice Proxy-Generator enthebt den Anwendungsprogrammierer von lästiger und fehleranfälliger Programmierung und beschleunigt somit den Prozess der Anwendungsentwicklung maßgeblich.
Ausblick
Selbstverständlich stellt die Integration der Vermarktungsplattform eBay in die eigene Anwendung nur einen ersten Schritt einer möglichen betriebswirtschaftlichen Optimierung dar. Auch der Zahlungsverkehr mit dem Kunden, der das bei eBay eingestellte Produkt erworben hat, kann durch die Integration von PayPal überwacht und damit der Auslieferungsprozess automatisiert werden.
MD Consulting bietet eine Reihe von Dienstleistungen im Umfeld von Webservices an. Die Palette reicht vom Seminarangebot (Stichwort: XML) über Beratungsdienstleistungen bis hin zur Übernahme der Entwicklung von SQL-Windows-Anwendungen, in die öffentliche, aber auch branchen- und funktionsspezifische Webdienste in Anwendungen integriert werden.
Sollten Sie Fragen zu diesem Thema haben, wenden Sie sich an uns.

Der Webservice Proxy-Generator von MD Consulting benötigt als Input eine WSDL-Datei, die aus dem Dateisystem oder über http geladen werden kann.
Der Generator analysiert die in der WSDL-Datei hinterlegten Informationen. Mit Hilfe des CDK wird eine Bibliotheksdatei (APL) erstellt, in der die Aufruf-Funktionalitäten und die Definition der verwendeten (komplexen) Datentypen abgebildet werden.
Die erzeugte Bibliotheksdatei wird in den Code der Anwendung eingebunden und an den entsprechenden Stellen werden die Proxy-Aufruf codiert.
Notwendigen Anpassungen an eventuelle Abweichungen vom Standard können im Generator vorgenommen werden. Die entsprechende Fehlersuche kann durch optionale Speicherung des SOAP requests und der entsprechenden SOAP response einer Methode erleichtert werden.

Client-/Server-Projekt

Consulting
2 Manntage
Softwareentwicklung
120 Manntage

Technologie:
GUPTA Team Developer 5.1
Webservice
XML
GUPTA CDK
eBay
SOAP

4. Januar 2017