Mobile Service Architectureとは

Mobile Service Architecture(以下、MSA)は、Java MEプラットフォームにおけるワイヤレス機器向けの統一されたアプリケーション環境を定義したものであり、JSR 248として仕様が定められている。もともと、携帯電話などの端末では独自の拡張機能を持つものが多いため、その上で実装されたアプリケーションは端末間の互換性を確保するのが難しいという問題があった。そこで共通で提供するべき機能を定義し端末間の差異を最小限に抑えようというのがMSAの狙いだ。

MSAの前身としてはJSR 185のJTWI(Java Technology for the Wireless Industry)があり、JSR 248はCLDCをターゲットとしてそれを発展させたものとなっている。JSR 249: Mobile Service Architecture 2(以下、MSA 2.0)はその後継仕様にあたるもので、当初はCDCをターゲットとしたMSAという位置づけだったが、後にCLDCとCDCの双方をサポートするように変更されている。MSA 2.0は現在Early Draftが公開されている。

MSA 2.0の概要

MSA 2.0はそれ自身が単一の仕様ではなく、Java SEプラットフォームなどと同様にコンポーネントJSRのセットから構成される。このセットはデバイスの要件に応じてMSA 2.0、MSA 2.0 Subset、MSA 2.0 Limitedの3つに分類されている。そしてMSA 2.0 SubsetはMSA 1.1との、MSA 2.0 LimitedはJTWI 1.0との後方互換性を持つ。

まず、MSA 2.0 Limitedには以下のJSRが含まれる。

  • JSR 139 … CLDC/CDC
  • JSR 118 … MIDP 2.1
  • JSR 135 … Mobile Media API
  • JSR 205 … Wireless Messaging API 2.0
  • JSR 075 … PDA Optional Packages (File API/PIM API)
  • JSR 082 … Java APIs for Bluetooth (*)
  • JSR 238 … Mobile Internationalization API
  • JSR 256 … Mobile Sensor API

MSA 2.0 Subsetには上記に加えて以下のJSRが含まれる。

  • JSR 184 … Mobile 3D Graphics API
  • JSR 287 … Scalable 2D Vector Graphics API 2.0
  • JSR 177 … Security and Trust Services API (SATSA-APDU) (*)
  • JSR 211 … Content Handler API
  • JSR 293 … Location API 2.0 (*)
  • JSR 234 … Advanced Multimedia Supplements
  • JSR 272 … Mobile Broadcast Service API(*)
  • JSR 257 … Contactless Communication API(*)
  • JSR 258 … Mobile UI Customization API (*)
  • JSR 280 … XML API for Java ME

そしてMSA 2.0のフルセットには上記に加えて以下のJSRが含まれる。

  • JSR 172 … J2ME Web Services Specification
  • JSR 177 … Security and Trust Services API (SATSA-CRYPTO)
  • JSR 177 … Security and Trust Services API (SATSA-PKI) (*)
  • JSR 180 … SIP API for J2ME
  • JSR 281 … IMS Services API(*)

これらは原則として必須項目だが、(*)をつけたものについては条件付きの必須項目となっている。たとえばJSR 082については、デバイスがBluetoothをサポートしている場合にはBluetooth APIおよびOBEX over Bluetooth/OBEX APIをサポートしなければならない(MUST)ということになっている。一方で赤外線通信やOBEX over TCPについては、サポートが推奨されるが必須ではない。

また、いくつかのJSRについては曖昧な部分を排除するためのClarification(明確化)が定められており、MSA 2.0との互換性を確保するためにはこれに従う必要がある。Clarificationについてはまだ議論されている最中であり、今後も随時追加していくとのことだ。

今後のロードマップ

Expert GroupではMSA 2.0のリリースの時期を明確に定めておらず、技術が市場に浸透するまでの十分な時間と、関連するJava標準技術の有用性を考慮しながら決めるとしている。MSAは業界標準となった技術の集合でなければならず、リリースサイクルは比較的長いものになるからだという。モバイル機器の分野においてはすでにベンダが独自の実装を多数提供しているため、各方面との調整が難航しているという話もある。MSA 2.0の正式なリリースまでにはまだしばらく時間が必要なようだ。