越来越多的人开始认为经过了许多人共用一台计算机的大型主机时代一人一台计算机的个人PC时代之后下一个时代就是一人多台计算设备的普及计算时代(Ubiquitous ComputingIBM称之为Pervasive Computing)计算设备将从单一的PC扩展到各种各样的大小和功能从家庭消费电子产品到个人随身携带穿着车载的各种移动信息处理设备多样化是这个领域的最大特点
网络是这个领域最重要的增值特性当手机可以随时随地无线上网PDA可以和个人PC同步车载PC可以获得网上GPS地图数据时这些孤立的设备才能够发挥最大的作用而平台无关性和网络功能正是Java的设计目标和能力(事实上Java最初的设计目标就是用于消费电子领域但是后来在PC和服务器上得到了发展)一次编写到处运行的平台无关性对网络多重设备间联网的机制(JINI)显然对这个领域是至关重要的软件条件这个领域内的Java标准就是JME
Java的最大目标和特点就是一次编写到处运行的平台无关性但是很自然的正如Sun认识到的One size doesnt fit all一套标准无法适应各种不同的需求因此Java技术目前共有三套分别针对不同的平台和应用
Standard Edition (JSE标准版)针对桌面端PC和工作站的个人和低端商务应用
Enterprise Edition (JEE企业版)针对服务器端企业级应用支持Servlets JSP和XML等等
Micro Edition (JME袖珍版也有翻译为小型版或者移动版的)针对有限内存显示和处理能力的设备主要是消费电子和嵌入式设备领域(这实际正是Java语言设计最初的目标领域)
针对消费电子和嵌入式设备领域丰富多样的设备和彼此相差极大的计算能力及各种硬件条件JME首先根据最基本的一些特征把它们划分为两类一类是具备间断网络通讯能力的个人移动信息设备如手机双向呼机PDA(Personal Digital Assistant个人数字助理也称掌上电脑)等 另一类是有固定的不间断网络连接的共享连接信息设备如置顶盒(settop boxes)WebTV支持Internet的有屏幕电话汽车娱乐/导航系统等
Sun的JME FAQ(常见问题集)里有一个很好的概括JME技术有两个设计中心――手持的设备和可以插到墙上插座的设备第一类设备往往是个人化的移动的使用电池体积和功耗都有限制因此功能和计算能力有限第二类设备一般是固定的因此体积没有太大限制由于固定可以有持续电源供应因此功耗没有太大问题计算能力相对充裕
计算能力是这两类设备的主要区别对其上可能的应用和环境显然有着本质影响不同类别的设备不可能采用同样的Java平台必须分别定义针对这两大类设备的平台规范就是Configuration第一类设备的Configuration称为CLDC(Connected Limited Device Configuration)第二类称为CDC(Connected Device Configuration)
属于同一类的设备计算能力是相似的但是其他功能和条件还有非常大的区别作为Java平台必须保证相容性这就必须捨弃所有的设备特殊性因此Configuration就是支持一组通用设备的最小Java平台作为这些设备的最小公分母来保证不同设备间的平台相容性这里的Java平台主要是指Java虚拟机(JVM)和核心库
Configuration的分类是根据计算能力的不同来划分的同类设备的计算能力相近Configuration是一个规范定义了这类设备的共同Java平台定义与设备无关的Java虚拟机和核心库是平台相容性的基础Profile的分类是根据设备功能划分的同类功能的设备其他各种硬件条件和需求也相近Profile是一组API在某一Configuration的基础上扩展了针对设备特定功能的API使得标准能够完全适应特殊的设备彻底发挥设备的功能
因此JME体系的一般结构是由Configuration定义的Java虚拟机运行于设备的宿主操作系统之上构成整个平台的基础Configuration提供了基本的语言特性Profile提供针对设备的特殊功能API和扩展类库应用程序的运行环境需要一个Configuration和至少一个Profile多个Profile可以共存也可以叠加