オプティミスティック同時実行制御のサポート
今回のMobile Servicesリリースには、オプティミスティック同時実行のサポートも追加されています。オプティミスティック同時実行を使用すると、アプリケーションは複数のユーザから提出された競合する更新を検出し、解決できます。
例えば、あるユーザが編集するためにMobile Servicesテーブルからレコードを取得し、一方で他のユーザがそのテーブル内でこのレコードを更新した場合、オプティミスティック同時実行サポートがないと、最初のユーザは2番目のユーザのデータ更新を上書きする可能性があります。オプティミスティック同時実行があると、アプリケーションは、矛盾する変更を捕え、手動による競合の解決もしくは解決動作の実装という選択肢をユーザに提供することができます。
新しいテーブルを作成する際に、オプティミスティック同時実行をサポートするために追加された3つのシステムプロパティカラムが確認できると思います。
(1) __version、レコードのバージョン
(2) __createdAt、このレコードがに挿入された時間
(3) __updatedAt、レコードが最後に更新された時刻
コードに2つの変更を行うことで、アプリケーションでオプティミスティック同時実行を使用することができます。
まず、以下のコードスニペットに示すように、データモデルにversionプロパティを追加します。Mobile Servicesは、テーブルに対応するレコードを更新している間に、このプロパティを使用して競合を検出します。
public class TodoItem { public string Id { get; set; } [JsonProperty(PropertyName = "text")] public string Text { get; set; } [JsonProperty(PropertyName = "__version")] public byte[] Version { get; set; } }
次に、MobileServicePreconditionFailedExceptionという新しい例外を捕捉して、競合を処理するようにアプリケーションを修正してください。Mobile Servicesは、競合項目のサーバーバージョンを含めたエラーを送り返します。これにより、アプリケーションは、サーバーにコミットするバージョンを決定して、検出された競合を解決できます。
オプティミスティック同時実行の詳細については、新しいMobile Servicesオプティミスティック同時実行のチュートリアルをご確認ください。また、今回のリリースで追加された新しいCustom IDプロパティのサポートもご確認ください。これにより、さまざまなよりリッチなデータモデリングシナリオ(シャーディングサポートを含む)をよりいっそう簡単に処理することができます。
通知ハブ:プライスダウンとデバッグ送信の改善
8月にWindows Azure通知ハブの一般公開を発表しました。
これは、さまざまなモバイルデバイス(Windows Phone、Windows 8、iOS、Androidデバイスを含む)へ低レイテンシで高容量のプッシュ通知が簡単に送信できる強力なモバイルプッシュ通知サービスです。通知ハブは、あらゆるモバイルアプリのバックエンド(Windows Azure Mobile Servicesを使用して構築されたものを含む)を使用することができ、クラウドおよびオンプレミスで実行されているバックエンドでも使用することができます。
価格更新:通知ハブ有料層からアクティブデバイス制限を削除
通知ハブの価格モデルを簡素化し、お客様にコスト節約していただくため、以前あったアクティブデバイス数の制限を削除しました。例えば、通知ハブ標準層の消費価格は、100万プッシュ当たり月額75ドル、500万プッシュ当たり月額199ドル(日割り)になります。
これらの変更とプライスダウンは、12月15日からすべての有料層で利用可能になります。価格の詳細については、ここからご確認いただけます
デバッグ送信によるプッシュ通知のトラブルシューティング
バックエンド、通知ハブ、プラットフォーム通知サービス、クライアントアプリなど多くのコンポーネントが関わっているため、プッシュ通知のトラブルシューティングが難しいことが時々あります。
それを支援するため、今回のリリースで、Windows Azure管理ポータルから直接テスト通知が簡単に送信できる機能を追加しました。
各通知ハブのDEBUGタブに移動し、すべての登録済みデバイスにブロードキャストするのか、もしくは特定デバイス/デバイスグループだけをターゲットにするタグ(またはタグ式)を提供するのかを指定し、送信したい通知ペイロードを指定し、“Send”を押してください。例えば、以下では、アプリのiOSバージョンを持ち、アプリ内で“sport-scores”の購読を登録しているすべてのユーザに、テスト通知メッセージを送信するという選択をしています。
通知が送信されると、通知ターゲットとなったすべてのデバイス登録一覧と、対応するプラットフォームの通知サービス(WNS、MPNS、APNS、GCM)により報告として送信された具体的な通知結果が取得できます。これにより、問題をデバッグすることがはるかに簡単になります。
通知ハブを使用開始する場合、通知ハブドキュメントセンターをご確認ください。