Additional Blogs by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 

このページは、以下の英語ページの抄訳です。最新の情報については、英語ページを参照してください。

https://wiki.scn.sap.com/wiki/display/SAPMOB/Apple+%28APNS%29+notification+queuing

目的

この文書では、SAP Afaria / Mobile Secure から iOS デバイスに通知を送信する時に、行われていることを明らかにすることを目的としています。

概要

SAP Afaria 7 Service Pack 15 Mobile Secure 1606 から、特に大量のiOS 端末に対して、通知キューイング処理が改善され、よりよいパフォーマンスとレスポンスタイムが期待できます。


イントロダクション

通知には複数のタイプ(‘apply policies’, ‘unlock’, ‘remove control’ , ‘wipe device’)がありますが、これらはすべては同じ手順に従って実行されます。実際の通知準備は、MDMキューを生成し 通知の Payload/Message を構築させることを意味します。

  • 通知は、MDMキュー(Afaria データベースの A_IPHONE_MDM_QUEUE テーブル)にストアされます。
  • 通知のタイプに関係なく、Apple 通知プロセス(アップルにペイロードを送信すること)をトリガーします。


Afaria 2つのタイプのメッセージ・ペイロードを Apple に送信します。


  • MDMキューを空にして、Afaria サーバに接続することを強制するMDM
  • アプリケーションバッチを付けるために使用される APS。( 例えば、アプリケーションがクローズ中に通知を送信する際、アプリケーションアイコンに赤いバッチでユーザに知らせます。ユーザがアプリケーションをオープンするとすぐにすべてのバッチはクリアされます)
    この時、Afairaデータべースにはなにも保存されず、すべての情報はペイロードの中に存在します。


Afaria 処理とデータベーステーブルの改善


通知処理を担当する2つの Afaria プロセス(XsOutboundServer XsNotifyClient ) が存在します。

X台の端末に対する通知リクエストを受けた時(例えば、ユーザが 台の端末に'Apply Policies'を実行した時など)MDMキューは生成され、
すぐにN
台分の通知ペイロードがスレッドによって構築されます。(通知のために APNSキューが作成されると考えることができます)

通知を送信するために必要なすべての情報とAppleとの 'talk' は、証明書のサムプリント、クライアント・テナント情報、実際のペイロードを含みます。XsOutboundServer.exe XsNotifyClient.exe は通知を一切 Apple に送信しません。


XsQueue.APNS Apple への通知の送信を蓄積するプロセスです。ファーム中の Afaria サーバが、通知ペイロードをキューから見つけだし、アップルに送信する処理を行います。


呼び出し時間についてはプロセスベースのポーリングレート設定できます。さらに、スロッティングを、ファーム全体もしくはファームのサーバ毎に設定することができます。通知が失敗した時、 XsQueue.APNS ストアドプロシジャを通じて、通常処理(Appleへの通知の新しい試み)でオリジナルキュー(A_Q_APNS A_Q_APNS_PRIORITY DBテーブル) まで 'retry' キュー( A_Q_APNS_RETRY A_Q_APNS_PRIORITY_RETRY DBテーブル)に一時的に追加します。リトライ処理は複数回実行されて終了します。この設定は変更できます。すべての基本的な設定データ 各々キュータイプごとに A_Q_TYPE テーブルにあります。


Apple APNS によって用意された、2つのキュータイプが存在します。 APNS ( Apply policies 等、管理者によって実行される) APNS_PRIORITY です。これらの値は A_Q_TYPE.Name カラムに保持されます。APNS_PRIORITY タイプはユーザ起動型:もしユーザがMDMを使ってアプリケーションをインストールするリクエストは保持されます、プライオリティキューに、それで、それは既にAPNSキューにあり処理される、他のリクエストを待つ必要はありません。

二つのAPNSタイプの唯一の違いは、APNSキュータイプはデフォルトで1分あたり50個までに制限されますが、APNS_PRIORITY は制限されせん。(可能ならすぐに実行されます)

A_SERVICE テーブルにはサービス (XsQueue.APNS, XsOutboundServer, XsNotifyClient)保持され、それはコンシューマのキューです。

その他の重要なテーブルは、A_SERVICE_Q_TYPE A_SERVICE キューのタイプが含まれるA_Q_TYPE の関係を定義します。


構成設定


ここまでに説明した設定を変更するために、Afaria Administrator console を利用します。

特に、制限の設定は、Server > Configuration > Outbound Notification > Queue Throttling で可能です。

Administrator initiated actions throttling rate APNS キュータイプ、一方 user initiated actions APNS_PRIORITY キュータイプに関連します。Throttling Scope チェックボックスは、スロッティングをサーバ毎に有効にする際に使用します。デフォルトではファーム内のすべてのサーバで有効です。言い換えれば、デフォルトでは、1分間に50 Notification ファームから送信されます。"Per Server" オプションにチェックすると、1分間に50 Notification がファーム内の各サーバから送信されます。(例えば、ファームに2つのアクティブなサーバがある場合、1分間に100 Notification が送信されます)



Server > Configuration > Enrollment Server 内で、Apple Notification XsQueue.APNS プロセスが使用するAPNS ドメイン ポートを ‘APNS / Feeedback Configuration’ に指定できます。 SYSTEM テナントの設定のみが有効になり、他のテナントの設定は無視されます。

スロッティングとAPNSの両方の設定は変更できます、それらはAfaria Serviceを再起動することなく、概ね1分後にシステムで有効になります。



XsQueue.APNS APNS接続を管理します。APNS Notification Apple に送信されるとき、 Afariaサーバ、エンドポイント、証明の特定のポートへのコネクションがオープンします。コネクションはオンデマンドで最大1分間はオープンされたままです。もし使用されなければ、コネクションはクローズされます。

しかし、Afaria  Server は、コネクションがエラー状態の場合(例えば、証明書の未インストール、証明書の期限切れ、認証失敗、 APNS反応、切断、接続先到達不能) 、XsQueue.APNS Appleへのコネクションを再度確立できないような場合は、通知 はリトライキューに移されます。