REMOTE FUNCTION CALL Projektgruppe SAP R/3 auf Linux Cluster

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Eine dynamische Menge, die diese Operationen unterstützt,
C Tutorium – Fehlerbehandlung – Knut Stolze. 2 Grundsatz Also ist auch nach jedem Funktionsaufruf auf Fehler zu prüfen!! Jeder(!) Funktionsaufruf kann.
Attribute Protocol.
Pflege der Internetdienste
Attribute Profile.
Datenbankzugriff im WWW (Kommerzielle Systeme)
SAP R/3 - Speichermanagement
Netzwerkkommunikation von SAP R/3
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Markplätze für Agenten Seminar Softwareagenten Timo Hoelzel.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
ERP.
Modularisierungstechniken
Dialogorientierte Programmierung in ABAP
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Martin MauveUniversität Mannheim1 3.6 User Datagram Protocol (UDP) RFC 768. J. Postel. User Datagram Protocol unzuverlässiges Transportprotokoll.
Einführung MySQL mit PHP
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
PHP Pakete und Beispiele Webengineering Robert Lemke.
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
JDBC: JAVA Database Connectivity
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Mobile Gebäudeservicesteuerung Optimierung des Datentransfers im
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Evaluierung des ITU-T.124 Telekonferenzstandards
Debugging, Logging, Monitoring, Tools
Einführung in die Programmierung
Micrologica Communication Center ®
Steuerung externer Komponenten über ein USB-Interface.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Punkt-zu-Punkt-Kommunikation Oswald Haan
PSI - Überblick und Szenarien
Systemaufbau / Komponenten
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
1 Peer to Peer – GNUTELLA Seminar Innovative Netztechnologien Christophe LE ROQUAIS, den 17. Juni 2002.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Das IT - Informationssystem
CCNA2 – Module 9 Basic Router Troubleshooting
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 19 Version 1.0a Programme - Zusatzsoftware Oracle: –Forms –Reports –Designer –Jdeveloper –APEX (Application Express)
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
Meldungen über Ethernet mit FINS/UDP
Dr. Alois Schütte Definition Middlerware
Montag, 9. Juli 2001  ====!"§==Systems = Seite 1 Projekt SAPscript  Dana Stepanek SAPscript  Symbole MitSymbolen können Programm- bzw. Systemdaten oder.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
->Prinzip ->Systeme ->Peer – to – Peer
Exploiting Web Applications
Das IT - Informationssystem
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
1 Simulation einer Ladesäule für Elektrofahrzeuge nach dem Open Charge Point Protocol Felix Batke 3. Lehrjahr.
Reorganisation und Administration großer SAP-DB Manfred Riemer SAP AG (z.B. MCOD-Systeme)
1.Event Queue.
Ich brauche eine Web-Seite vom Server im Internet
 Präsentation transkript:

REMOTE FUNCTION CALL Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Gliederung des Vortrages Einleitung Synchrone RFCs Asynchrone RFCs Übergabe von Tabellen Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Kommunikation SAP R/3 ist ein offenes System, deshalb unterstützt er unterschiedliche Kommunikationsarten: Kommunikation via Dateien (Lesen/Schreiben von Dateien und deren Austausch) Programm-zu-programm Kommunikation Direkter Datenbankzugriff Unterstützung der standarden Telekommunikationdienste Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Programm-zu-programm RFC ermöglicht programm-zu-programm Kommunikation In der Applikationsebene In der Präsentationsebene RFC Aufruf für ABAP/4 Funktionsmodule in R/2 oder R/3 System Externe Funktion im beliebigen System RFC Server (Callee) und RFC Client (Caller) Bei C-programm zusätzliche Administrationen nötig Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

SAP CPI-C Schnittstelle Beim R/3 Release 2.0 und früheren Versionen existierte nur CPI-C Schnittstelle im ABAP/4 CPI-C Schnittstelle hat folgende Funktionen: Aufbauen von Kommunikationsverbindungen Kontrollierung der Richtung der Datenübertragung Kode-Umwandlung zwischen ASCII und EBCDIC Error Handling Terminierung von Kommunikationsverbindungen Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

CPI-C Handler CPI-C Handler: wird auch SAP Gateway genannt. Zentraler Knoten im R/3 System Alle Programm-zu-programm Kommunikationen werden durch CPI-C Handler geroutet. Protokolle: TCP/IP Protokoll: R/3 <-> R/3, R/3 <-> Externes System LU 6.2: Ein Kommunikationspartner ist R/2 System oder externe Applikation auf dem SNA Host Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Andere Schnittstellen RFC Schnittstelle: Kommunikationspartner unterschiedlicher Typen RFC API: damit implementieren die externe Programme die RFC Funktionalität Das Attribut „remote funtion call supported“ im ABAP/4 Development Workbrench einstellen. (function module stub generierung) Initializierung der Kommunikation: RFC Schnittstelle braucht Informationen für die Initializierung(side information) Im Sideinfo Tabellen gespeichert (Bei R/3 RFCDES Datenbank) Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

SAP Gateway (CPI-C Handler) RFC Interface(based on SAP CPI-C) RFC Konzept Sideinfo File SAP Gateway (CPI-C Handler) TCP/IP TCP/IP LU 6.2 External Program C Program R/3 Application Server R/2 or SNA Host RFC Interface(based on SAP CPI-C) RFC API RFC Interface Function Modules Database Sideinfo File or Table TRFC (R/2) Sideinfo File RFCDES Table Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Gliederung des Vortrages Einleitung Synchrone RFCs Asynchrone RFCs Übergabe von Tabellen Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Integration CALL FUNCTION func DESTINATION dest EXPORTING e_p1 = e_f1 e_p2 = e_f2 ... IMPORTING i_p1 = i_f1 i_p2 = i_f2 ... TABLES t_p1 = itab1 t_p2 = itab2 ... EXCEPTIONS except1 = rc1 except2 = rc2 ... Integration: Work Prozess: SAPMSSY1, PXA ABAP Prozessor: implementiert das ABAP Runtime System RFC Engine: im ABAP Prozessor plaziert Roll Bereich: prozess-spezifische Daten Task Handler: Dienste implementiert für ABAP Prozessor Shared Memory: Dispatcher<->Workprozesse Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Integration RFC ENGINE R/3 Application Server Dispatcher Shared Memory Work Process Taskhandler DYNP ABAP Processor Roll Area PXA RFC ENGINE Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Struktur des RFC Engine 4 perioden im RFC: CALL Schritt: Klient ruft remote function auf CALL RECEIVE Schritt: Nach dem Empfangen des Requests startet Server die Verarbeitung RETURN Schritt: Server sendet Rückgabewerte zurück RETURN RECEIVE Schritt: Klient empfängt die Rückgabewerte Treibertypen: „3“: anderes R/3 System (mit unterschiedlicher Datenbank) „I“: gleiche R/3 System „T“: TCP/IP Verbindung Zum externen Programm Zum SAPGUI „X“: zurück zum ABAP Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Datenstruktur Es existiert ein Datenbereich für jede aufgebaute RFC Verbindung: RFCIO_GLOBAL cntl : Zeiger auf Array alloc_items : Anzahl der Arraykomponente free_slots : index des unbenutzte Arraykomponent RFCIO_OPEN_CNTL act_cntl: Zeigt den aktuellen Arraykomponent handle: Index des Arrays Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Datenstruktur RFCIO_GLOBAL RFCIO_OPEN_CNTL rfc_gl cntl alloc_items free_slots name Logical destination name RFC_TYPE type channel Driver index Buffer administration variables (buffer,...) External handles (icontl, conv_id) Receive data (session, header, sysid[ ]) Caller data Delta manager area RFC_SHARE_CNTL share flags Structure RFCIO_OPEN_CNTL 1 . . . Structure RFCIO_OPEN_CNTL i Structure RFCIO_OPEN_CNTL n act_cntl (rfc_gl.cntl + handle) RFC Data Structure for Existing Connections of an Internal Mode Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Verarbeitung eines RFCs CALL Schritt: Klient sendet Function module Call Daten zum Server mit dem Container CALL RECEIVE Schritt: Dispathcher empfängt APPC request vom SAP Gateway Function module stub wird ausgeführt RETURN Schritt: Nach der Verarbeitung werden Rückgabewerte zurückgeschickt RETURN RECEIVE Schritt: Rückgabewerte werden empfangen Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

CALLBACK CALLBACK ist ein RFC für Klient System Destination Name kann explizit angegeben werden, oder vordefiniertes BACK sein Klient prüft ob es ein CALLBACK-Fall ist Übergang vom RETURN RECEIVE zum CALL RECEIVE Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Container Containertypen: Container, die am Anfang des RFCs geschickt werden(Identifizierung) Container, die für die Parameterübergabe zuständig sind Container für ‚End, Exception & Error Handling‘ RFC Engine überprüft das Container ID Für SNA Partner wird keine Container benutzt Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Buffer Manager Pufferung reduziert die Netzwerk Last Pufferung in zwei Fällen: Bevor die Daten geschickt werden Nach dem sie empfangen wurden APPC Bereich als Puffer Jede RFC Verbindung hat ihren eigenen Data Send Buffer mit fixierter Länge Die Variable buffer im RFCIO_OPEN_CNTL zeigt auf Data Send Buffer Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Gliederung des Vortrages Einleitung Synchrone RFCs Asynchrone RFCs Übergabe von Tabellen Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Asynchrone RFCs CALL FUNCTION func IN BACKGROUND TASK DESTINATION dest EXPORTING e_p1 = e_f1 e_p2 = e_f2 ... TABLES t_p1 = itab1 t_p2 = itab2 ... Grober Ablauf: Speicherung auf Tabellen Commit Work Statement Destination Systeme: „3“ und „I“ (R/3 <-> R/3) „T“ (RFC via RFC API) „M“ (CMC X.400 protokoll) Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Struktur Struktur von asynchronen RFCs Für jedes LUW eine Transaktions-ID (TID) RFC Argumente (ARFCSDATA) und RFC Requests (ARFCSSTATE) werden gespeichert RFC Request an Update Work Prozess Verarbeitung von RFCs Start time wird im COMMIT WORK gespeichert Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Im LUW Fallunterscheidung im LUW Update Request findet statt: Neuer Update Request eingefügt Starten vom Scheduler Keine Update Request findet statt: Mehr als zwei Work Prozesse Scheduler wird direkt aufgerufen (Ausführungszeit) Weniger als zwei Work Prozesse Scheduler wird auf einem anderen Applikations-Server gestartet Scheduler eines asyncronen RFCs (Funktionsmodul ARFC_RUN_NOWAIT) Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Datenbanktabellen Datenbanktabelle ARFCSDATA und interne Tabelle SENDDATA Die ersten vier Felder sind von einer include Struktur ARFCTID bestimmt Logical destination name, Zähler des ARFCs, Blocknummer, und Parameterdaten .. IP ID Process ID Time Stamp TID Log Destination Counter Block number ARFC Data ARFC Data Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Datenbanktabellen Datenbanktabelle ARFCSSTATE und interne Tabelle SENDSTATE Ein asynchrone FC status ist mit call ID identifiziert und der Zustand wird im ARFCSTATE gespeichert Restlichen Felder: Funktionsmodul Name, Zeit, Datum und SAP user ARFCRETRYS: Anzahl der (wiederholten) Versuche Aktueller Transaktionskod, Server Host Name und ein Feld für Fehlermeldungen CALLID State Module Name RFC.RET Time Date User Number Of Retrys TID Host Name Return Message Reserved Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Scheduler Workload Restriction Scheduler sammelt RFC Requests des LUW und ordnet den Server Prozesse zu.(Server LUW) Scheduler arbeitet im alternativen Dialog Workprozess Enqueue Mechanismus: Wenn ein Request abgelehnt wird, heißt daß schon ein enqueue für diesen Destination Name bereits läuft (Ziel dabei ist die Reduzierung der Anzahl der Work Prozesse) ARFC_RUN_NOWAIT(gestartet vom Klient) startet ein alternatives Dialog Work Prozess. Aufgenommene Requests werden vom laufenden Scheduler verarbeitet Es gibt ein möglichkeit, daß der Administrator mehr als einen work Prozess zu einem ARFC zuordnet. Dann sind die Logical Destination Namen in einer Tabelle gespeichert. Der Scheduler wählt zufällig einen. Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Scheduler Scheduler Loop Wenn ein Enqueue erhalten ist, Scheduler ruft Funktionsmodul ARFC_RUN auf.(welche LUW startet) Requests werden nachNamen sortiert Der Zustand der aufgenommenen ARFCs wird auf „SENDED“ gesetzt Wenn keine Fehler auftreten, wird der Zustand auf „EXECUTED“ oder „MAILED“ gesetzt Entsprechende Einträge werden dann gelöscht(ARFCSTATE) Wenn Löschoperation fehlt, Zustand wird auf „NO_CONF“ gesetzt Bei der Rückgabe COMMUNICATION_FAILURE, wird auf „CPICERR“ gesetzt (erneutes Versuch) Bei SYSTEM_FAILURE auf „SYSFAIL“ Beim erfolg, alle RFC Daten für dieses LUW werden gelöscht Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Weitere Zustände Der Zustand von einem asynchronen RFC kann im Klient System mit dem SM58 geprüft werden RECORDED SYSFAIL VBRECORD MAILED DEBUG NO_CONF SENDED READ CPICERR EXECUTED Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Zustandsübergänge EXECUTED delete Caller Callee RECORDED SENDED EXECUTED NO_CONF delete COMMIT WORK CALL F. ARFC _DEST_SHIP CALL F. ARFC_DE ST_CONFIRM Caller EXECUTED Entry found Callee ARFC_DEST_SHIP ARFC_DEST_CONFIRM EXECUTED delete Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Gliederung des Vortrages Einleitung Synchrone RFCs Asynchrone RFCs Übergabe von Tabellen Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Delta Manager Delta Manager spielt in der Übergabe von Tabellenparameter eine Rolle Wenn eine interne Tabelle gesendet wird, sendet man die komplette Tabelle zum RFC Server Im RFC Server wird eine lokale Kopie erzeugt Beim Funktionsmodul RETURN oder beim CALLBACK wird nur delta informationen geschickt Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Struktur von Delta Manager Delta Manager ist an RFC Engine angeschlossen Der Handler of internal Tables implementiert alle Tabellenoperationen Delta Manager besteht aus drei Teilen: Register Agent: Registriert Tabellen, die in der Verbindung zum ersten Mal benutzt werden ordnet eine Object ID zu der Tabelle Log Agent: wird vom Table Handler aufgerufen speichert Informationen über Tabellenoperationen in ein Datenbereich (DELTA_LOG enthält high priority entries; die Tabellenoperationen beschreiben) Playback Agent: Empfängt die log entries via Container Agent und spielt die entsprechende Operation ab (Playback) Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Datenstruktur Variablen objects und log sind Zeiger auf die sogenannte Table Headers Urgent Counter Variable ist hinter den Zeigern plaziert Die restlichen Felder sind mit Flags belegt: no_logging, init, logged, trace LOG_OBJECT DELTA_HEAD delta_head LOG_HANDLE next rebuild discard confirm withdrawn playback RFC_SHARE_CNTL objects log urgent no_logging init logged trace off LOG_ENTRY LOG_OBJID log_objid LOG_OPERATION log_operation SAP_UNIT line LOG_INFO log_info Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000

Delta Management CALL Schritt: Zuerst high priority entries gesendet Container: RFCID_DeltaWithdrawn, RFCID_DeltaConfirm Tabelle wird registriert CALL RECEIVE Schritt: Der Name, Object ID, Tabelleninformationen werden gelesen Tabellen Einträge werden empfangen und in die Tabelle eingefügt RETURN Schritt: Die high priority log entries im DELTA_LOG werden wieder gesendet RETURN RECEIVE Schritt: Tabellenoperationen werden abgespielt Projektgruppe SAP R/3 auf Linux Cluster 22.03.2000