[ English version is here ]
Sun Labs Open House 2008 初日です。今回このイベントに参加するために Menlo Park Sun Labs にやってきました。Sun Labs へ来るのは昨年6月に2週間 Sun SPOT の技術習得およびデモ作成のために来て以来になります。そういう関係上、やはり今回もメインは Sun SPOT 関連が中心ですが、それ以外にも最先端の技術が目白押しでした。ここではできる限りそれをお伝えできればと思います。
午前中は JVM に関するいくつかの興味深い話を聞きましたが、すべて internal only のセッションのため、ここでは割愛します。午後は次のようなセッション・デモに参加しました。
- Sun Small Programmable Object Technology (SPOT)
- Project Live* [live star]
- Project Squawk
以下、要約です。
Sun Small Programmable Object Technology (SPOT)
このセッションは Sun SPOT の Overview、デモ、最新の "in-the-field" の説明が中心でした。アジェンダはいくつかのトピックに分かれており(introduction, hardware, squawk, networking, security, solarium, emulator, in the field and hands on labs)、各担当エンジニアがそれぞれのトピックを説明するという形式でした。
Sun SPOT デバイスは3層に分かれており、それぞれバッテリー、プロセッサーボード(無線)、センサーボードになります。プロセッサーボードはそれ単体でベースステーションとして機能します。ベースステーションとは他の Sun SPOT と通信するために USB 経由で PC に接続される(センサーボードのない) Sun SPOT です。ユーザーはこのデバイスを標準的な Java のツール・IDE(NetBeans など)を用いてプログラムすることが可能です。
以下はプロセッサーボード("eSPOT" とも呼ばれます)のスペックです。
- 180 MHz 32 bit ARM920T core processor (Atmel AT91RM9200)
- 512K RAM/4M Flash PROM
- 2.4GHz 802.15.4 Radio Transceiver (TI CC2420)
- USB interface - mini-b connector
- Real Time Clock and Power Management Processor (Atmega88)
- 3.6V rechargeable 750 mAh lithium-ion battery
- 30 pin high density interboard connector
- “Java on the metal” - No OS. Squawk VM runs on the bare metal
eDemoboard(センサーボード)のスペックは↓です。
- 2G/6G 3-axis accelerometer
- Light sensor
- Temp sensor
- 2 push buttons
- 8 RGB 24 bit LEDS, power/control LED
- 6 analog inputs readable by a 12 bit ADC
- 5 General Purpose I/O pins (GPIO) and 4 high current output pins w/ Atmega88 IO processor
Sun SPOT ハードウェアは自作することもできます。eDemoboard は Sun SPOT developer's kit で現在出荷されているこのような実装の一種にすぎません(詳しくは eBones project を参照ください)。
Sun SPOT developer's kit は以下のものを含みます。
- 2 x Full Sun SPOTs with eDemoSensor boards and batteries
- 1 x base-station Sun SPOT
- Software (Squawk VM, Java SDK, Netbeans)
- Other equipments (USB cable, Mounting clips, 2 x wall mounts, 1 x PC board mount)
Sun SPOT の無線機能は IEEE 802.15.4 (Zigbee) をベースにしており Bluetoosh (802.15.1) や Wi-Fi (802.11) と比較して速度は遅いが低コスト・低電力という特徴があります。スペック的には 128 バイトパケット、レンジ ~70m、250kbps、2.4GHz そして通信範囲を動的に拡大可能なメッシュネットワークです。また HTTP、TCP/IP* 経由でインターネットに接続されたデバイスと簡単に接続することが可能です(* ただし TCP/IP の実装は現在進行中です)。
セキュリティー関連の新機能(将来の SDK で予定)は SSL のサポートです。SSL をサポートするためには現在の radio stream 接続をオープンするための以下の構文を
conn = Connector.open(“radiostream://” + addr + “:” + port);
次のように変更するだけです。
conn = Connector.open(“sradiostream://” + addr + “:” + port);
Sun SPOT SDK には素晴らしいエミュレーターも含まれてますのでたとえ実際にSun SPOT をもっていなくてもプログラムを作成することができます!
"In-the-field" セッションでは Sun SPOT を実際に使用したプロジェクトが紹介されていました。例えば "Project Blackbox" では移動中の状態監視に利用したり、Yggdrasil というプロジェクトではデータ収集の共通フレームワークとして利用されたりしているようです。
Project Live* [live-star]
Projct Live* はソフトウェアの配布と構成に関する新しい手法に関するプロジェクトです。Live* ではソフトウェアは "immutable" なファイルシステムイメージ(CD イメージのようなもの)として構成されます。そのイメージは OS、データベース、アプリケーションサーバーなどのコンポーネントで構成されます。起動時に Live* は動的にこれらのモジュール(コンポーネント)を集めてひとつの仮想ソフトウェア環境として構成します。シンプルなファイルシステムの仮想化技術を使用することによって、Live* はこれらの構成をすべての既存のソフトウェアに対して完全に透過的に実行することができます。
家電などで使用されるソフトウェア同様に Live* ではシステムのカスタマイズや構成をオリジナルのソフトウェアとは別のリポジトリにおきます(あくまでオリジナルのソフトウェアは "immutable" です)。この技術ではソフトウェアの配布の概念をいわゆる LiveCD のようなイメージの形に拡張し、純粋なカスタマイズの "modularity" と柔軟性を提供します。
デモのコーナーでは、Linux distribution のアップグレードに関する以下のようなデモを行ってました。
- ユーザーが xVM 上で Live* に対応した Red Hat version A を動作させています。
- このユーザーはネットワークやフォントの設定などさまざまなカスタマイズを Red Hat version A 上で行います。
- ユーザーは新バージョンの Red Hat version B (Live* 対応)にアップグレードします。
- インストール後、普段は最初から上記の各種設定(ネットワークの設定など)をやりなおす必要がありますが、設定内容はディストリビューション上でなく Live* リポジトリに保存されてるので透過的に前回の設定のまま Red Hat version B を使用することができます。
Live* はVMware、xVM (Xen)、Virtual Box などと組み合わせて使用するとより利点がでます。ロバスト性とセキュリティーを改善しつつ管理をより簡素化することができます。
Project Squawk
Squawk は Sun SPOT のようにリソースの制限が厳しいデバイス用に設計された Virtual Machine です(また現在のところ LEGO Mindstorms NXT や Custom FPGA に移植される予定です)。Squawk は以下のような特徴をもってます。
- J2ME CLDC 1.1/IMP 1.0 Profile 実装
- Runs on the bare metal (No OS)
- メモリー制限の厳しいデバイス向けに設計
- 主に Java を使って実装
- 複数のアプリを実行可能(isolates)でデバイスをまたがってアプリの移行が可能
- Solaris, Linux, Mac, Windows 対応
- 移植が容易