19
SAP ABAP Push Channel (APC) André Urban Xitera Consulting GmbH

20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

  • Upload
    others

  • View
    40

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

SAP ABAP Push Channel (APC)

André UrbanXitera Consulting GmbH

Page 2: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

Welt vor ABAP Push Channel

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 2

Hallo? Ist da eine Handling 

Unit? 

Page 3: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

Welt vor ABAP Push Channel

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 3

Hallo? Ist da eine Handling 

Unit? 

Page 4: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

Welt vor ABAP Push Channel

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 4

Page 5: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

Welt vor ABAP Push Channel

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 5

Handling Unit gefunden! 

5000000001. 

Page 6: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

ABAP Push Channel

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 6

Page 7: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

ABAP Push Channel

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 7

Handling Unit angekommen: 5000000001. 

Page 8: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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

Page 9: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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

Page 10: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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 

Page 11: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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

Page 12: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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

Page 13: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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

Page 14: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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

Page 15: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

Ablauf für einen PCP-Aufruf

Init

Connect

OnMessage

Close

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 15

Page 16: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

Beispiel-Paket

25.10.2017 @ 2017 Xitera Consulting GmbH. All rights reserved. 16

ZWD_APC

Page 17: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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

Page 18: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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:

Page 19: 20171023 SAP ABAP Push Channels(APC) · ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen APC basiert auf einer Infrastruktur, die es ermöglicht Nachrichten zwischen

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