One Note Jam

S60開発・開発者から見たS60 3rd Edition (2006-06-30)

S60 3rd Edition端末、日本でも続々登場(予定)

先日「Vodafone 804NK」が発表されました。ベースとなる機種は「Nokia N71」とのことです。さらに、「Nokia E60」と「Nokia E61」をベースとした端末のリリースも予定されています。また、ノキアからも「Nokia E60」と「Nokia E61」のスタンダードバージョンを発売予定とのことです。ここにきて、日本でもNokia端末がいろいろ登場してきそうです。

個人的に気になるところは、これらすべての端末のプラットフォームが「S60 3rd Edition」であるという点です。最近のS60端末は、ほとんどが3rd Editionになっているようですね。ちょっと見聞きしたところでは、ネイティブアプリケーションの導入に何かと難があるとのこと。S60 3rd Editionではセキュリティ面が強化されたため、そのあおりを受けて、ネイティブアプリケーションの開発が困難になっているようです。

開発者から見たS60 3rd Edition

ところで、S60 3rd Editionにおけるセキュリティ面の強化は、S60 3rd EditionのベースとなるSymbian OSのバージョンがv9.1にバージョンアップしたことが要因となっています。Symbian OS v9の勉強も兼ねて、S60 3rd Editionについて(ユーザー側の視点からではなく)開発者側の視点から調べてみました。

すべてのアプリケーションに署名が必要

S60 3rd Editionプラットフォームでは、すべてのアプリケーションに署名が必要となります。趣味の開発者や独立系開発者にとっては、ここが最も敷居が高く思える部分です。しかしながら、「自己署名証明書」というものがあり、これを使えば面倒な手続きなしに、アプリケーションに署名を行えるようです。とはいえ、問題点がないわけではありません(これについては後述)。

機能が制限される

従来のS60プラットフォームでは、ネイティブアプリケーションはほとんどすべてのAPIを使うことができ、ほとんどすべてのファイルにアクセスすることができます。しかし、S60 3rd Editionでは「プラットフォームセキュリティ(Platform Security: PlatSec)」と呼ばれるシステム保護モデルを導入しているため、アプリケーションの機能がいろいろと制限されます。

例えば、他ウィンドウへのキー入力をキャプチャする機能を持つAPIがありますが、S60 3rd Editionプラットフォームでは、権限のないアプリケーションがこのAPIを使用することはできなくなっています(APIをコールした時点で強制終了)。これは、キーロガーのようなプログラムを作られることを防ぐための制限です。

このような制限のかかったAPIを使用するためには、アプリケーション側でAPIの使用許可を得ている必要があります。これらは「ケイパビリティ(Capability)」と呼ばれていて、APIの種類ごとにさまざまなカテゴリに分かれています。例えば、先ほど挙げたキー入力キャプチャのAPIですと、そのAPIを含めたキー入出力関連のAPIは「ケイパビリティ"SwEvent"が必要」と定義されています。アプリケーションはケイパビリティ"SwEvent"があれば、これらキー入出力関連のAPIを使うことができるわけです。

これらのケイパビリティを得る手段ですが、ここで先ほどの「署名」の話が関係してきます。先ほどの「自己署名証明書」による署名を行ったアプリケーションでは、限られたケイパビリティしか使用できません。ちゃんとした署名、例えば「Symbian Signed」による署名であれば、さらに多くのケイパビリティを使用できるようになります。また、端末メーカーが電話機の基本機能として搭載するアプリケーションでは、すべてのケイパビリティを使用できるようです。

ファイルアクセスが制限される

S60 3rd Editionでは、ファイルアクセスについてもいろいろと制限があります。この仕組みは「データケージング(Data Caging)」と呼ばれていて、重要なシステムファイルや他のアプリケーションのプライベート領域にはアクセスできないようになっています。また、アプリケーションのインストールディレクトリにも手を出すことはできません。そのため、702NKで行われていたような「正規のインストール手順を踏まずに、アプリケーションファイルを“手で”コピーしてインストール」といった抜け道も使えません。

なお、ファイルアクセスの制限についても、先ほどの「ケイパビリティ」によって、制限を解除することはできます。しかしながら、「システム全体で重要なファイル」の操作を可能にするためのケイパビリティは、普通のアプリケーションでは取得することができません(たとえSymbian Signedによる署名があり、Symbian Signedのテストに合格したとしても)。

バイナリ互換性が完全に失われる

ユーザー側としては、S60 3rd Editionで最も大きいのはこの点でしょう。従来のアプリケーションはまったく使えなくなってしまうため、開発者側から3rd Edition対応版がリリースされるのを待つしかありません。

開発者側からしてみれば、ソース互換性さえ保たれていれば、3rd Edition環境でリビルドすれば済むはずなので、たいして問題ないように思われるのですが……そう簡単にはいかないようです。

「廃止予定(deprecated)」とされていたAPIが本当に廃止されてしまっている

Symbian OSはバージョンアップのたびにさまざまな機能が追加され、それにともない多くのAPIが追加されています。それはいいのですが、「APIの置き換え」というのもあちこちの機能で行われています。書籍『Symbian OS/C++プログラマのためのNokia Series 60アプリケーション開発ガイド』を読むと、特にマルチメディア関連の機能では、1st Editionと2nd Editionの間でAPIが大きく異なっていることがわかると思います。とはいえ、旧来のAPIは「廃止予定」とされましたが、多くのAPIは引き続きサポートされていて、下位互換性は保たれていました。

ところが、3rd Editionではバイナリ互換性がなくなったことを契機として、これらの廃止予定のAPIが本当に廃止されてしまいました。

開発環境や開発プロセスが大きく変わった

S60 3rd Editionアプリケーションの開発においては、バイナリ互換性の喪失にともなってコンパイラも変更になりますし、プラットフォームセキュリティの導入により、署名やらケイパビリティやらいろいろと面倒なことも増えました。

この点については、今後私の方でも身をもって体験することになりそうです。まずは、3rd Edition用SDKのダウンロードからはじめますか……。

参考文献

posted at 2006-06-30 | Permalink

© 2004-2008 ENDO