Upload
others
View
40
Download
0
Embed Size (px)
Citation preview
SAP ABAP Push Channel (APC)
André UrbanXitera Consulting GmbH
Welt vor ABAP Push Channel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 2
Hallo? Ist da eine Handling
Unit?
Welt vor ABAP Push Channel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 3
Hallo? Ist da eine Handling
Unit?
Welt vor ABAP Push Channel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 4
Welt vor ABAP Push Channel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 5
Handling Unit gefunden!
5000000001.
ABAP Push Channel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 6
ABAP Push Channel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 7
Handling Unit angekommen: 5000000001.
Was versteht man unter ABAP Push Channel (APC)
ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen
APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen User Kontext und UI Sitzungen innerhalb des selben Systems auszutauschen.
APC werden als Repository Objekte implementiert, und setzen sich aus einem Service und einer APC Handler Klasse zusammen
In Verbindung mit ABAP Messaging Channels (AMC) wird der ABAP Push Channel verwendet, um die WebSocket Kommunikation zwischen einem AS ABAP sowie dem Internet unabhängig vom aktuellen Applikationsserver zu ermöglichen
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 8
Echtzeitkommunikation mit ABAP Channel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 9
ABAP System
Applikationsserver A Applikationsserver B
Session Session
UI UIBenutzer
1Benutzer
2
ABAP Push Channel
ABAP Push Channel
Update in UI
Datenänderung
HTTP HTTP
ABAP Messaging Channel
Datenänderung
Warum ABAP Push Channel ?
Um Daten vom ABAP Backend zum Browser zu übertragen, gibt es verschiedene Möglichkeiten:
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 10
Aufruf Vor/Nachteile
Automatische Abfrage innerhalb eines definierten Zeitintervalls ( Data Polling)
Hoher Ressourcenverbrauch Verwendung des Timed Triggers um Veränderungen
im ABAP Backend festzustellen Schlechte Performance Benutzerinteraktion in Echtzeit
ABAP Push Channels Technologie + kein ressourcenintensives Polling + Push Benachrichtigungen + Verwendung von WebSockets+ Echtzeitkommunikation + bessere Performance
Use Case für ABAP Push Cannel
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 11
ABAP Channels
WebSocket Client A WebSocket Client B
WebSocket Session A WebSocket Session BABAP Sesssion C
APC APC
AMC AMC
Collaboration Collaboration
ABAP Push Channel (APC) WebSocket Implementierung im ABAP UmfeldABAP Messaging Channel (AMC) Event Framework für den Austausch zwischen verschiedenen Websessions
Collaboration Szenario Unter Verwendung von APC und AMC werden Meldungen von ABAP Sessions zumWebSocket durch die Verwendung von publish/subscribe Channels versendet
Beispielhafte APC Implementierung mit Web Dynpro
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 12
Web Dynpro-Anwendung
ABAP-Push Channel Komponente
Methoden:START_APCSTOP_APC
<<uses>>
HTML Container
WebSocket(JavaScript) ABAP Push Channel /
ABAP Message Channel
APC-HandlerklasseON_STARTON_MESSAGE
<<uses>>
CHANNEL_EXTENSION_IDe.g. Workstation01
SEND_MESSAGE CHANNEL_EXTENSION_IDe.g. Workstation01, Workstation02
CHANNEL = WORKSTATIONCHANNEL_EXTENSION_ID
Open/Close
Backup-Polling:Das Event APC_MSG_RCV wird auch nach einem konfigurierbaren Zeitintervall ausgelöst. Damit reagiert die äußere Komponente automatisch ebenfalls und löst damit quasi ein Polling aus, falls Events verloren gegangen sind, z.B. nach 2 Minuten
Trigger
Event: APC_MSG_RCV
MFS-SchnittstelleSEND_MESSAGE
Push Channel Protokoll (PCP)
Kommunikationsformat zum Austausch von Nachrichten in ABAP Channels
PCP Nachrichten ähneln einer einfachen HTTP-Nachricht (Kopffelder für Metadaten und ein Nachrichtenkörper )
Implementierung der ABAP Message Channels
PCP wird für die Kommunikation mit AMC und APC empfohlen, aufgrund des einheitlichen Formats und der Möglichkeit Kontextinformationen als Metadaten in den Kopffeldern zu versenden und auszuwerten
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 13
PCP Standard API
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 14
• Diese Standard-API wird verwendet, um einen WebSocket mit PCP zu instanziieren
Ablauf für einen PCP-Aufruf
Init
Connect
OnMessage
Close
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 15
Beispiel-Paket
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 16
ZWD_APC
Weitere Neuerungen
ABAP Push Channel Browser [SAPC]
ABAP Messaging Channel Browser [SAMC]
WebSocket Monitor [SMWS]
Neue ABAP Befehle:WAIT FOR PUSH CHANNELS UNTIL lv_message IS NOT INITIAL
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 17
Ein kleines Kochrezept für eine APC-Implementierung
Einen ABAP Message Channel
Einen ABAP Push Channel
Ein JavaScript zur PCP-Instanziierung und Rücksprung ins ABAP
Eine APC Handler-Klasse
Optional: Absicherung über Data Polling
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 18
Man nehme:
Vielen Dank für Ihre Aufmerksamkeit!
25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 19
Kontakt:André UrbanXitera Consulting [email protected]+49 (0) 9180 - 9393141