Remote Function Call
Remote Function Call (RFC) ist ein Begriff aus dem Umfeld der SAP-Software (speziell der SAP-ABAP-Systeme, z. B. R/3 und dessen Nachfolger).
RFC ist einerseits ein Synonym für das Remote-Procedure-Call-Konzept (kurz RPC). Dieses bezeichnet Verfahren, mit denen Funktionen in einem entfernten System aufgerufen werden. RFC ist andererseits auch der Überbegriff für die SAP-eigenen Protokolle und Schnittstellen zur Abwicklung solcher Funktionsaufrufe bis hin zu deren Implementierung.
Die Kommunikation ist sowohl zwischen SAP-Systemen als auch zwischen einem SAP-System und einem Nicht-SAP-System möglich. Letzteres verwendet hierbei typischerweise eine von SAP bereitgestellte RFC-Bibliothek für die jeweilige Ablaufumgebung bzw. Programmiersprache.
Man unterscheidet zwischen dem sRFC, der eine synchrone Kommunikation durchführt, dem tRFC (transaktionaler RFC) für eine asynchrone Kommunikation und dem qRFC (queued RFC). Der qRFC ist eine Weiterentwicklung des tRFC, die dafür sorgt, dass die von der Anwendung definierte Reihenfolge der Bearbeitung einzelner Einheiten erhalten bleibt.
Die Einsatzmöglichkeiten sind vielfältig. Daten können in ein oder aus einem SAP-System transportiert werden und so in nahezu jedem beliebigen Umfeld verfügbar gemacht werden. Ein wichtiger Anwendungszweck ist die Abwicklung von Transaktionen über Systemgrenzen hinweg, z. B. für die Replikation/Synchronisation von Datenbeständen (siehe SAP ALE).
Alle RFC-Typen werden über die standardisierte Schnittstelle CPI-C (Common Programming Interface-Communication) oder TCP/IP übertragen. Letzteres wird heutzutage immer verwendet für die Kommunikation zwischen verschiedenen Systemen. Im Detail: SAP-Server nehmen RFC-Verbindungen unter den TCP-Ports 33NM (NM ist hierbei die zweistellige Instanznummer/Systemnummer des SAP-Systems; Eintrag in Services-Datei: sapgwNM) an. Das heißt, der TCP-Port-Bereich von 3300 bis 3399 ist von SAP für diesen Zweck vorgesehen; es gibt aber keine IANA-Registrierung hierfür.
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Remote Method Invocation – das entsprechende Gegenstück aus der Java-Welt