SPOT ( Small Programmable Object Technology ) 是运行 Java™ 程序的小型无线设备。SPOT 载有很多传感器,用于监视它的环境,还有一组彩色 LED 用于与外部通信,以及两个用于提供基本反馈的按钮。我使用 LED 来显示构建的状态。可以通过一条 USB 线将一些 SPOT 连接起来,作为一个基站,其他 SPOT 可以通过这个基站访问工作站上的资源,例如数据库或 Web 应用程序。
SPOT 由以下硬件元件组成:
在这样的硬件上,SPOT 运行一个名为 Squawk 的小型 JVM,这个 JVM 几乎完全是用 Java 语言编写的。Squawk 遵从 Connected Limited Device Configuration(CLDC)1.1 Java Micro Edition(Java ME)配置。它无需底层操作系统便可运行 — 也就是所谓的 “在裸机上运行”
用于 SPOT 的应用程序是根据 Java ME MIDlet 编程模型编写的。这意味着每个 SPOT 上的 JVM 以类似于 Java EE 下管理 servlet 和 Enterprise JavaBeans(EJBs)的方式来管理 MIDlet 的生命周期。但是,由于 MIDlet 运行环境的限制,CLDC 以 JDK 1.3.1 作为开始的基础,剥离所有不必要的部分。因此,SPOT 程序不能访问文件流;没有反射,没有串行化,没有本地方法,没有正则表达式,没有 Swing,只有有限的数据类型。唯一可用的集合数据结构是向量栈、枚举和 hash 表。有些特定于 CLDC 的连接类被添加到这个子集中,但是编程过程中仍然要受很多限制。