RFC宛先に接続タイプWを使用して、HTTP/WebSocketを介してRFC呼び出しを実行します。
コンテクスト
従来のRFC通信は、CPI-Cインターフェイスに基づいています。または、RFCoverWebSocketを専用の目的で使用することもできます。
接続タイプWのRFC宛先を使用すると、HTTP/WebSocketを介して通信できます。これには次の利点があります。
- 会社のネットワークやファイアウォールを越えてリモート対応の汎用モジュール(RFM)を呼び出すために、VPN接続は必要ありません。
- WebSocket RFCは、SAProuterおよびGateway(RFC用)コンポーネントに基づいていませんが、アップグレードされたHTTPリバースプロキシを表します。したがって、HTTPにはルーターやその他のコンポーネントを使用できます。
制限
- WebSocket RFCを使用する場合、WebSocketセッションタイプはdynproを開くように設計されていないため、SAPGUIポップアップまたは他のSAPGUIベースのUIを開くRFMを呼び出すことはできません。
- 同じ理由で、SAPGUIログオン画面による認証はできません。
- RFC over CPI-Cで行うことができるように、ABAPデバッガで1つのシステムから別のシステムに切り替えることはできません。代わりに、リモートシステムに手動でログオンし、そこに外部ブレークポイントを設定する必要があります。
- コールバック(CALLFUNCTION…DESTINATION’BACK’)はサポートされていません。
安全
WebSocket RFC通信は、次のセキュリティ機能に基づいています。
- WebSocketRFCは常にSSLを介して転送されます。したがって、WebSocketRFCを使用するようにSSLを構成する必要があります。
- 標準のS_RFC権限チェックは、WebSocketRFCを介してRFMを呼び出すときに実行されます。
- ユニファイドコネクティビティ(UCON)ツールを使用すると、RFC(CPI-C)とWebSocketRFCに別々の許可リストを構成できます。
デフォルトでは、UCONはWebSocket RFCに対して有効になっています(デフォルトではセキュリティ)。対応するUCON許可リストが空である限り、WebSocketを介してリモートシステムからRFMを呼び出すことはできません。許可リストに明示的に追加されたRFMのみを外部から呼び出すことができます。専用のプロファイルパラメータを使用して、WebSocketRFCのUCONを有効化/無効化することができます。
詳細については、WebSocket RFCシナリオ:プロセスを参照してください。
WebSocketを介したRFMの呼び出し
RFM over WebSocket RFCを呼び出すには、通常のCALLFUNCTIONステートメントを使用できます。
- 汎用モジュール設定で<リモート有効>チェックボックスを選択すると、CPI-CおよびWebSocketを介してRFMを公開するのに十分です。
- RFC宛先の接続タイプによって、WebSocketRFCがRFC呼び出しに使用されるかどうかが決まります。RFM over WebSocket RFCを呼び出すには、タイプWebSocket RFC(W)の宛先を選択する必要があります。
- 宛先ログオンについては、ユーザー/パスワードログオンと信頼関係のどちらかを選択できます。宛先タイプWebSocketRFCのパラメータを参照してください。
シリアル化
WebSocket RFCは、高速シリアル化のみをサポートします。これは、WANシナリオではより高い圧縮を使用し、LANシナリオではより低いがより高速な圧縮を使用します。レイテンシーが高い場合、SSLハンドシェイクでの自動レイテンシー測定に基づいて、デフォルトでより高い圧縮が選択されます。ただし、トランザクションSM59の宛先詳細でチェックボックス<高圧縮を適用>を選択することにより、LANシナリオの高圧縮を手動で選択することができます。この設定により、常に少量のデータを送信することで帯域幅を節約できます。
特別オプションも参照してください。
パフォーマンスに関する考慮事項
デフォルトでは、WebSocketRFCはHTTP/2に基づくマルチプレクサを使用しようとします。これは、2つのシステム間の最初の呼び出しが多重化されたWebSocket接続を開き、必要なすべてのラウンドトリップでTLSおよびWebSocketハンドシェイクを実行することを意味します。同じ2つのシステム間の他のすべてのWebSocket接続は、この多重化された接続を再利用し、追加のハンドシェイクを必要としません。
マルチプレクサは、すべてのネットワークコンポーネントがHTTP/2をサポートしている場合にのみ機能します。SAP Web Dispatcherを使用する場合は、HTTP /2WebSocket多重化をサポートするWebDispatcherバージョン777が少なくとも必要であることを確認してください。