Der bgRFC ermöglicht Anwendungen, Daten aufzuzeichnen, die später von einer aufgerufenen Anwendung empfangen werden. Beim Empfangen der Daten soll sichergestellt werden, dass die Daten entweder genau einmal in beliebiger Reihenfolge (transaktional) oder genau einmal und in der Reihenfolge ihrer Erzeugung (queued) an den Empfänger übergeben werden.
Mit dem bgRFC kann dabei die Asynchronität zwischen Aufrufer und Gerufenem für folgende Optimierungen verwendet werden:
Es wird die Entkopplung und potenziell eine
Parallelisierung erreicht. Dazu erfolgt die Lastverteilung über die zur
Verfügung stehenden Applikationsserver dieses Systems.
Dieses bgRFC-Szenario wird als Inbound-Verfahren bezeichnet.
Es wird die Entkopplung und damit die
physische Aufteilung einer Anwendung oder eines Business-Szenarios erreicht.
Durch die Asynchronität können Unterschiede in den Leistungsmerkmalen der
Applikationsserver von aufrufendem und gerufenem System ausgeglichen werden.
Die Aufzeichnung erfolgt in dem aufrufenden System.
Bei diesem Szenario handelt es sich um das
Outbound-Verfahren.
Hier lassen sich alle Optimierungsmöglichkeiten nutzen. Allerdings erfolgt hier die Aufzeichnung doppelt, sowohl beim Aufrufer (Outbound-Verfahren) als auch beim Aufgerufenen (Spezialfall des Inbound-Verfahrens), wodurch zusätzliche Belastungen für die Datenbank (und durch die Scheduler für die Applikationsserver) entstehen.
Der bgRFC organisiert die verschiedenen Aufrufe über Queues. Ein Aufruf, der gleichzeitig in mehrere Queues gestellt wird, erzeugt eine Abhängigkeit zwischen diesen Queues. Diese führt zu einem Synchronisationspunkt, der ähnlich einer Sperre wirkt.
Die abhängigen Queues können so weit abgearbeitet werden, bis derjenige Eintrag zur Verarbeitung ansteht, der die Abhängigkeit definiert. Dieser Eintrag kann erst verarbeitet werden, wenn er in allen Queues an erster Stelle steht, also verarbeitbar ist.
Es handelt sich hier um eine sehr mächtige Funktionalität (z.B. für die Belegverwaltung in der Logistik), die aber bei unüberlegter Verwendung durch die Anwendungsentwicklung auch zum vermeintlichen Stillstand der Queue-Verarbeitung führen kann.
Der bgRFC stellt für Entwickler ein API zur Verfügung, mit dessen Hilfe die Eigenschaften der Übertragung definiert und die Daten aufgezeichnet werden können.
Die Aufzeichnung erfolgt durch den Aufruf RFC-fähiger Funktionsbausteine. Mehrere Funktionsbaustein-Aufrufe können zu einer Unit gebündelt werden. Die Unit ist dabei die Einheit der Übertragung. Eine Unit ist entweder vollständig übertragen worden oder steht noch zur Übertragung an.
Eine kombinierte Verwendung des bgRFC mit tRFC und qRFC ist innerhalb einer Destination nicht möglich. Sie können aber pro Destination festlegen, welchen Kommunikationstyp Sie verwenden wollen.
Integration
Anwendungen, die vom qRFC auf den bgRFC umstellen, müssen ein Migrations-Szenario unterstützen, in dem eine temporäre Verknüpfung zwischen der Queue des qRFC und der Queue des bgRFC hergestellt wird. Auf diese Weise wird die korrekte Reihenfolge der Ausführung auch beim Wechsel von qRFC zu bgRFC sichergestellt.
Ein Wechsel vom bgRFC zurück zum qRFC ist nicht vorgesehen.
Weitere Informationen
Detailinformationen zur Administration und Programmierung des bgRFC finden Sie unter: