Windows 8ユーザーズ・ワークベンチ

Windows 8の皆まで言うな

 Windows 8を複数のデバイスで使った場合、それぞれのデバイスでのアプリ使用状況を同期することができる。ユーザーが、デバイスからデバイスへと渡り歩き、特定のアプリを個々のデバイスで使うことをローミングと呼ぶ。今回は、Windows 8とローミングについて見ていくことにしよう。

ゲームの続きを別のデバイスで

 Windows 8は、1つのMicrosoftアカウントに対して、10台までのPCを信頼済みPCとして関連付けることができ、さらに、同じWindows 8ストアアプリを、そのうち5台までにインストールできる。

 ストアアプリは、「アプリケーションデータ」と呼ばれるアプリ固有のデータを持ち、Windowsに対してそれをローミングすることを宣言しておくだけで、Windowsが各PCに対し、Microsoftアカウントのクラウドサービスを使ってそれを同期してくれる。

 例えば、ストアアプリの1つに、Microsoftが無償配布している「Microsoft Solitair Collection」というゲームがある。さまざまなタイプのソリティアを集めたゲーム集だ。ソリティアといえばWindowsというくらいに、昔からWindowsではソリティアが遊ばれてきた。

 このゲームを自宅で楽しんでいるときに、でかける時間がやってきたとしよう。そのとき使っているパソコンをそのまま持ち出せればいいが、あいにくその日は一体型の据え置きPCで始めてしまったため、カバンに入れてでかけるというわけにはいかない。

 そこで、今、プレイしているゲームを止めるために、Windowsのスタートスクリーンを表示させる。この状態にすれば、バックグラウンドでゲームが動き続けることはなく、プレイタイムもそこでポーズする。

 さて、駅に着いて電車に乗り込み、運良く座れたとする。カバンの中には、Windows 8タブレットが入っている。ネットワーク接続もスマートフォンのテザリングでカバーできる。そこで、タブレットを取り出し、インストールしてあるソリティアを起動すると、さっきまでプレイしていた画面が表示され、プレイタイムのカウントが再開し、ゲームを続けることができるのだ。

アプリデータのローミング

 Windowsそのものも、ブラウザのお気に入りや各種の設定情報を同期し、どのPCを使う場合も再設定が最小限で済むようになっている。それも同じ仕組みを使ったものだ。

 ゲームの例ではスコアやプレイタイム、プレイ中のゲームの同期が行なわれたが、他のアプリでは、それぞれさまざまなデータがローミングされる。

ストアアプリとして無償配布されているMicrosoft Solitaire Collection。Windowsといえばソリティアだ
さまざまな1人遊びトランプゲームからオーソドックスなKlondikeをプレイ
中断したゲームを別のデバイスでプレイしようとすると、保存済みゲームを利用するかどうかを問い合わせられる。ここでクラウドストレージを使うように設定することで、デバイスをまたがって同じゲームをプレイできる

 ほとんどのストアアプリは、この仕組みを利用しているので、2台目以降のPCにインストールした場合も、改めてユーザーが設定などをする必要がない。Windows 8でちょっと驚くのが、1台のPCで設定したWi-Fiアクセスポイントに対するパスワードが、別のPCにローミングされ、何もしていないのにつながってしまうことだ。ここにも同様の仕組みが利用されている。

 Microsoftでは、ユーザーがデバイスを持ち替えても、作業を続けられるようにローミングされる例として次のようなものをあげている。

・アプリのコンテキストにおける最後の位置(読書アプリのページ番号など)
・ハイスコアやゲームのレベルの情報
・ナビゲーションのバックスタック
・To Doリストの作成
・メールの作成

 ただし、ガイドラインとしてローミングを使わないように推奨されている項目もある。

・デバイスに対してローカルの情報
・サイズの大きいデータセットの移動
・瞬間的な同期や頻繁に変更される情報

 サイズについては、1つのアプリケーションにつき、概ね100KB程度のようだ。それを超える場合はローミングは行なわれない。アプリの側で小さくなるように工夫する必要がある。また、アプリケーションデータの同期は、Windowsが、そのタイミングを支配し、適切なタイミングで行なうようになっている。アプリがそれをコントロールすることはできないため、予期せぬことが起こる可能性も想定しなければならない。

 そんなケースに対応するために、アプリがデータをローミングすることを宣言する際に、タイムクリティカルな状況でも的確なローミングができるように、「ハイプライオリティ」を宣言することができるようになっている。Windows 8のローミングエンジンは、その設定に基づき、他のデータよりも高速にローミングを行なう。

 こうした例外処理ができるようになってはいても、Microsoftとしては、例えば動画の再生位置などの同期は推奨していない。だから、動画における先頭からの再生位置について、秒やフレーム単位での同期は保証されないと思った方がいい。モバイルデバイスで見ていた映画の続きを、その瞬間からデスクトップPCで見る場合、せいぜいチャプタ単位での続行程度のことしかできないわけだ。

マルチデバイス体験を高めるWindows 8

 Windows 8をユーザーとして使う場合、そこで扱うデータはユーザーデータとアプリデータの2種類に分かれる。ローミングデータとして扱うことができるのは、設定やアプリの状態、スコア、位置といったアプリデータだけだ。これらの情報は、その当該アプリだけがアクセスできる。

 その一方で、ユーザーデータは、アプリを使ってユーザーが作成するが、他のアプリが参照することもできる。そして、ローミングの対象とはならず、必要に応じてSkyDriveなどを介して同期を明示的に指示する必要がある。

 Windows 8は、クラウドと組み合わせて使うことで、個人がマルチデバイス環境にいる時の体験を、これまでとは大きく異なるものにしようとしている。ユーザーから見たときに完全に個々のデバイスがシームレスに連携しているようにするには、アプリそのものが、SkyDriveによるユーザーデータの参照と、Windows OSに委ねる設定等のアプリデータのローミングを、きちんと活用できるようにすればいい。絵を描くアプリなら、絵のデータはSkyDriveに置き、最後に何をしていたかをアプリデータとしてローミングするといった具合だ。

 こうした仕組みがうまく使えるのであれば、1つのMicrosoftアカウントにつき、10台の信頼済みPC、ストアアプリのインストール5台までという制限は、リーズナブルなものなのかもしれない。こうした記事のためにPCを使っていると、この台数制限はアッという間に超えてしまうが、制限のおかげで得たいの知れないPCが関連付けられたままで放置されるということがなくなる。いったん関連付けを解いても、再び関連付ければ、最新の環境が瞬時に戻ってくると保証されるのであれば、だが。

ストアアプリは5台のPCにインストールできる。それぞれのPCを削除すれば別のPCにインストールできる。ローミングがうまく機能すれば、この台数で困らないというのがMicrosoftの考え方のようだが……

(山田 祥平)