Authentisierung; „Wer bin ich?“
Authentifizierung: “Wer sind Sie?“
Authorisierung; “Was darf ich?“
Das Bezeichne ich als die Trinität, ich werde versuchen diese drei wichtigen Teile zu beschreiben.
Authentisierung; „Wer bin ich?“
Authentifizierung: “Wer sind Sie?“
Authorisierung; “Was darf ich?“
Das Bezeichne ich als die Trinität, ich werde versuchen diese drei wichtigen Teile zu beschreiben.
… Ein Cyber-Physical System (CPS) ist ein System, das reale (physische) Objekte und Prozesse verknüpft mit informationsverarbeitenden (virtuellen) Objekten und Prozessen über offene , teilweise globale und jederzeit miteinander verbundene Informationsnetze. Optional nutzt ein CPS lokal oder entfernt verfügbare Dienste, verfügt über Mensch-Maschine-Schnittstelle und bietet die Möglichkeit zur dynamischen Anpassung des Systems zur Laufzeit.
Für mich wird das CPS immer wichtiger werden um die Verbindung zwischen realen (physischen) Objekte und deren (virtuellen) Darstellungen immer wichtiger wird. Weiters die Verbindung eines Solchen Systems und eines HMI das ich weiterhin als wichtig erachte , nur die Aufgaben werden sich ändern bzw, anders gestalten. Der Mensch wird als Controller auftreten und weniger in den Standard Prozess eingreifen.
Diese drei Säulen bilden für mich den Ausgangspunkt meiner Betrachtung dienen , und werden in weiteren Blogs weiter betrachtet werden.
Cyber-Physical Systems sind permanent vernetzt. Damit wird ermöglicht, eine Information für unterschiedlichste Anwendungen un in unterschiedlichsten Organisations- und Bereichsgrenzen verfügbar zu machen. Ein CPS ist in zwei Richtungen vernetzt horizontal und vertical.
Auf der horizontalen Ebene kommuniziert es mit Systemen auf der gleichen Ebene. Hierbei werden z.B. in einem Produktionssystem die nächsten Fertigungsschritte ausgehandelt oder Daten zum aktuellen Bearbeitungsstand eines Produkt ausgetauscht.Die horizontale Kommunikation kann jedoch auch zwischen Organisationsbereichen, wie beispielsweise zwischen Produktion und Konstruktion , erfolgen.
In vertikaler Richtung kommunizieren CPS mit über- oder untergeordneten Systemen. Dieser Aufbau spiegelt den zentralen Gedanken der verteilten Intelligenz wider: Die Produktion wird nicht länger durch eine zentrale Instanz gesteuert, sondern durch viele kleine Einheiten.
Es gibt folgende Funktionen eines CPS
Sensorik: Mittels Sensoren erfassen CPS die Realität. Dies ist die Basis für ein umfassendes Prozess - Monitoring
Aktorik: CPS können über Aktoren verfügen und Prozesse aktiv beeinflussen. Von besonderer Bedeutung ist dies in Robotikanwendungen.
Steuerung und Kontrolle: Durch eine gewisse Intelligenz können CPS autonom und ohne zentrale Instanzen Entscheidungen treffen und so Prozesse der realen Welt beeinflussen.
Vernetzung: CPS kommunizieren mit anderen CPS , mit Menschen (Bediener) und mit in den Unternehmen und Werschöpfungsketten bereits vorhandene IT-Systemen.
Daten- und Informations-Verarbeitung: CPS können Daten und Informationen verarbeiten. Microcontroller oder Mikroprozessoren sind ein essenzieller Bestandteil eines CPS.
Integration: CPS integrieren die reale und die virtuelle Welt sowohl innerhalb eines Unternehmens als auch unternehmensübergreifend. Basis dazu ist die automatische Identifikation von Objekten.
Anpassungs-Fähigkeit: CPS sollen das eigene Verhalten abhängig vom jeweiligen Kontext auf Basis von gelernten Wissen anpassen und die eigenen Fähigkeiten weiterentwickeln.
In diesen Überlegungen geht es mir darum aufzuzeigen was ich als wichtig erachte um Integration möglich zu machen. Ich werde Versuchen die verschiedenen Komponenten aufzuzeigen und dabei aber immer Technologie Agnostisch zu bleiben. Die Erfahrungen die ich hier zurückgreife kommen aus meiner Funktion im Bereich SAP-Schnittstellen und der Integration dieser mit nicht SAP-Anwendungen.
Eine Programmierschnittstelle (auch Anwendungsschnittstelle, genauer Schnittstelle zur Programmierung von Anwendungen), häufig nur kurz API genannt (von englisch application programming interface, wörtlich, Anwendungsprogrammierschnittstelle), ist ein Programmteil, der von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird. Im Gegensatz zu einer Binärschnittstelle (ABI) definiert eine Programmierschnittstelle zur die Programmanbindung auf Quelltext-Ebene. Zur Bereitstellung solch einer Schnittstelle gehört meist die detaillierte Dokumentation der Schnittstellen-Funktionen mit ihren Parametern auf Papier oder als elektronisches Dokument.
Wikipedia (Programmierschnittstelle – Wikipedia)
So , also wir sehen API gibt es schon sehr lange , aber warum sind sie in den letzten Jahren noch sehr viel mehr ein Thema geworden?
Nun , das hat natürlich etwas mit Vernetzung von unterschiedlichen Systemen zu tun , das ist uns natürlich klar , und um hier Probleme zu vermeiden muss eine Entkopplung passieren. Das hat auch mit dem Siegeszug des Internet zu tun.
Das hat auch dazu geführt das Unternehmen auch viel vernetzter agieren, innerhalb und auch zwischen zwei Unternehmen, hier kann ich nur das Buch Connected Company empfehlen.
Wo ich das große Missverständnis sehe, ist das heute in vielen Besprechungen wenn von API's gesprochen wird nur von einer , maximal zwei Technologien gesprochen wird. Und hier geht es nicht nur um Technologien sondern auch von Paradigmen. Ich sehe das z.B. REST als API Technologien als der heilige Gral angesehen wird, und alles andere oft nicht mehr gesehen wird. Und bitte mich nicht falsch verstehen, natürlich ist REST ein gutes Paradigma und in vielen Anforderungen sinnvoll aber nicht in allen. Ich möchte das jetzt ein wenig Spezifizieren, bei Anforderungen wo zwei Applikationen sehe ich jetzt nicht das eine REST API das Tool das Wahl ist , wenn es darum geht das eine Microservice Architektur aufzubauen sehe ich auch nicht unbedingt das REST die Technologie der Wahl ist , hier geht es nicht darum eine API zur Verfügung zu stellen die für den Konsum von verschiedenen geeignet sind, wo ich als Anbieter die Funktionalität verschiedenen Institutionen zur Verfügung zu stellen in einem genormten Format.
Ich plädiere dafür die verschiedenen Technologien wie Werkzeuge in einem Werkzeugkoffer zu sehen. Indem ich dementsprechend entscheide welches Werkzeug oder Werkzeuge ich benutze um meine Lösung bestmöglich aufbaue.
Es wird in der Zukunft Blueprint's innerhalb eines Unternehmens erfordern, die Kollegen Informationen an der Hand gibt wie das Unternehmen Integration von Systemen sieht , die laufend Review's unterzogen wird um hier auch immer gewährleistet das diese Blueprint's an den neuen Technologien dranbleiben.
Fazit:
Integration wird weiterhin ein Thema bleiben, ich sehe es nicht das diese Entscheidungsprozesse durch Software-Agenten abgenommen werden können , da sind die Variationen zu groß, und hier liegt die stärke des erfahrenen Mitarbeiter im Unternehmen der auch die Domaine des Unternehmens versteht und auch die Kultur kennt.
Das ist Teamarbeit, das Thema ist zu vielfältig das einer dieses Thema , vollständig erfassen kann.
Ich beschäftige mich schon länger mit Integration, aber jetzt ist die Zeit gekommen wieder einmal zu reflektieren wie es in Zukunft weiter gehen könnte.
Deswegen habe ich mich einwenig mit SAP S/4HANA Architektur und in welche Richtung es in Zukunft gehen soll.
Also um gleich etwas klarzustellen die herkömlichen Technologien gibt es alle noch, ( IDocs, BAPIs und RFCs). Aber in Zukunft werden wohl SOAP und OData die Technologien der Wahl werden.
SAP hat in der Cloud die in allem die Marschrichtung vorgibt , folgende Strategie verwendet.
Bei Neuentwicklungen konzentriert sich SAP auf SOAP und OData - Service und verzichtet in derZukunft auf die Weiterentwicklung der BAPIs , IDocs und RFC.
Wie schaut die Verwendung nun im Detail aus :
SOAP - Dienste werden für asynchrone Dienste (wo früher IDOCs verwendet worden wären) genutzt:
Kurz zur Erklärung: SOAP Dienste sind Dienste die das http-Protokoll und das XML -basierte SOAP Nachrichtenformat verwendet.
Es werden typischerweise asynchrone , transaktionale Kommunikation verwendet, mit einweg Nachrichten die keine Antwort haben. Hier geht es einfach darum blockierung zu vermeiden.
Synchrone SOAP-Dienste werden nur in Ausnahmefällen verwendet.
Der zweite Player bei Integrations-Technologien ist OData-Service , sie übernehmen den Part den früher die BAPI übernommen haben.
OData - API sind resourcenbasierte API's das ergebnis der operation wird sofort im BODY der http -Antwort zurückgegeben wird.
Gemeinsam mit ABAP RESTful Application Programming Model (werde spätern noch mehr darüber schreiben ist es eine gute Abstraktionsschicht
Hier ist auch wichtig zu sagen das auch diese API über das Open API Spezifikation auf einem API Getway zur verfügung gestellt werden kann. Um diese API zur verfügung zu stellen.
Fazit:
Für mich war es etwas ein Aha Erlebnis auf der einen Seite leichtgewichtige asynchrone SOAP Service, weiter OData Service die Business Logik kapselt. Die Trennung der layer passiert noch effizienter, es geht wie immer um Entkopplung und Austauschbarkeit.
Natürlich wird man nicht jede bestehende Schnittstelle ändern, aber bei neuen Schnittstellen ist es schon anzudenken diese Vorgehensweise zu wählen.
Es ist auch zu überlegen welchen Stellenwert SAP PO einnimmt, sofern eine solche verwendet wird.
Diese Fragen wann verwende ich eine API wann macht es Sinn SAP PO zu verwenden sind wichtig und sollten auch im Unternehmen besprochen werden.
Um diese Fragen klären , wird es wichtig sein auch zu definieren mit welche Integration Domain , Integration Style haben wir im Unternehem und welche technischen Möglichkeiten haben wir hier.
Das SAP System ist nicht isoliert , sondern eingebettet in den Gesamtkontext der Unternehmens-Architektur.