このページの本文へ

製品版が待ちきれない! Windows 8 Consumer Preview特集 第3回

Metroアプリを動かすWindows 8の新環境 WinRTの秘密

2012年03月06日 12時00分更新

文● 山本雅史

  • この記事をはてなブックマークに追加
  • 本文印刷

WinRTは従来のAPIを
Metro向けにラッピングしたもの

 新しいフレームワークとは言うものの、WinRTはWin32や.NET Frameworkが持つ機能を、まったく新たに作り直したわけではない。ある意味ではWin32や.NET Frameworkの機能を、ラッピングしなおしたのがWinRT用のAPIである。ただし、単純にラッピングするだけでは問題が出るため、OSのコア部分にあるWin32や.NET Frameworkは改良されている。

 Metroスタイルアプリケーションは動作する際に、個々のアプリケーションごとにカプセル化される。このカプセル化により、Metroスタイルアプリケーションは別のMetroスタイルアプリケーションと直接通信できない。デスクトップアプリケーションとも通信できない。Metroスタイルアプリケーションは、必ずWinRT APIを経由してOSと通信することになる。もしほかのアプリケーションと通信したければ、直接ではなくOS経由で、間接的に通信する必要がある。

Metroスタイルアプリケーションは、WinRT APIからしかOSのAPIにアクセスできなくなっている。カプセル化することで、Metroスタイルアプリケーションのセキュリティーは向上する

 またMetroスタイルアプリケーションは、WinRT以外のAPIを使ってOSへアクセスすることもできない。例えばMetroスタイルアプリケーションでは、Win32 APIを呼び出して独自にウインドウを作成する、なんてことはできない。

 このカプセル化により、Metroスタイルアプリケーションはセキュリティーも高くなる。もしMetroスタイルアプリケーションのマルウェアが開発されたとしても、カプセル化された中でしか動作しないため、OS上のレジストリにアクセスしたり、システムに常駐する形でキー操作やパケットなどを盗まれる可能性は少なくなる。

非同期呼び出しでWindows 7よりも
バッテリー駆動時間が長くなる?

WinRTでは非同期呼び出し(Async)がサポートされた

 WinRTでは、APIでの「非同期呼び出し」がサポートされた。プログラムがAPIを呼び出して作業をOSに渡す場合、今までのプログラムではOSから処理が帰ってくる(リターン)のを待ち続ける、という仕組みになっていた。その場合、プログラムの待ち時間は大きくなる。例えばキー入力やファイルの選択などでは、ユーザーが操作する間にCPUにとっては膨大な待ち時間ができる。CPUは無駄に待たされるわけだ。

 待ち時間であっても、CPUは動作し続けている。そうなるとノートパソコンやタブレットなどでは、バッテリーを無駄に消費し続けることになる。そこでWinRTでは、非同期呼び出しによってAPIを呼び出すと、プログラムはOSからのリターンをただ待つのではなく、別の処理ができるようになった。

 非同期呼び出しでは、APIを呼び出してリターンがあるまで、別の処理を行なえる。もしリターンがあれば、どの非同期呼び出しのリターンなのかをチェックして、リターンされたデータを処理する。プログラムによってはリターンで渡されるデータが重要で、このデータがないと処理が先に進まない場合がある。そんな時も、OS全体で考えれば別のプログラムの処理をしたり、処理がなければ不要なCPUの一部を省電力化のために寝かせて、バッテリーを節約することもできる。

 WinRTの非同期呼び出しやWindows 8の省電力化機能をアプリケーションがうまく活用できれば、同じバッテリーでもWindows 7よりWindows 8の方が、長時間使用できるようになる。逆に言えば、Windows 8でも従来のデスクトップアプリケーションを中心に使用していると、バッテリー駆動時間は変わらないだろう。

 もうひとつ、WinRTで新しく提供される機能に、Metroスタイルアプリケーションの“有効期間”をチェックする機能が追加されている。iOSやAndroidでは、開発者が機能や利用期間を限定した試用版を、正式版とは別途作成する必要があった。そこでWinRTでは、Windows 8がアプリケーションの有効期間をチェックする機能を搭載。開発者は試用版を別に作成する必要がなくなった。

 WinRT側でもMetroスタイルアプリケーションのバージョンを認識しているため、Windows Storeにアクセスした際にそのアプリケーションのアップデートがあれば、自動的にアップデートに関する情報を教えてくれる。

 今までのWindowsアプリケーションでは、ユーザーがソフトウェアベンダーのHPを確認して、アップデートがあればダウンロードしてインストールする必要があった(あるいは、アプリケーション自身が確認するかだ)。しかしMetroスタイルアプリケーションなら、OSが確実にアップデートをチェックしてくれるわけだ。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン