20171023 SAP ABAP Push Channels(APC) ABAP Push Channel bietet Echtzeitkommunikation mit ABAP Systemen

  • View
    10

  • Download
    0

Embed Size (px)

Text of 20171023 SAP ABAP Push Channels(APC) ABAP Push Channel bietet Echtzeitkommunikation mit ABAP...

  • SAP ABAP Push Channel (APC)

    André Urban Xitera 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 UI Benutzer

    1 Benutzer

    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 Umfeld ABAP 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 zum WebSocket 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_APC STOP_APC

    HTML Container

    WebSocket (JavaScript) ABAP Push Channel /ABAP Message Channel

    APC-Handlerklasse ON_START ON_MESSAGE

    CHANNEL_EXTENSION_ID e.g. Workstation01

    SEND_MESSAGE CHANNEL_EXTENSION_ID e.g. Workstation01, Workstation02

    CHANNEL = WORKSTATION CHANNEL_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-Schnittstelle SEND_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é Urban Xitera Consulting GmbH andre.urban@xitera.de +49 (0) 9180 - 9393141