Mobile Computing 的定义
在后 PC 时代,各种手机及 PDA 装置风起云涌的潮流中,如何让使用者可以透过不同装置,在不同的地点存取交换及运算资料库中的资料与程式,便相形重要。所谓的「行动计算 ( Mobile Computing)」这个新名词,便因应而生。
何谓 Mobile Computing?以浅显易懂的广义解释之,Mobile Computing 就是要创造出一个单一系统操作的环境,让您可以突破时空的限制,不管何时、何地,均可使用不同的硬体设备,用您习惯的操作环境,撷取到相同的资源( 可以是资料库和程式库)。而支撑这个环境背后所需要用到的网路及通讯技术,都可以泛称为 Mobile Computing。
而Mobile Computing 的研究主题,也可以无所不包,从连线技术如无线网路及行动通讯,到硬体设备如笔记型电脑、手机和PDA,以及软体平台与使用者界面,甚至考虑到Mobile Host 的运算能力与Power 的承载问题时,VLSI 的技术与RISC 的电脑架构也都是讨论的范畴。
Mobile Computing 与传统电脑运算的不同,在于前者必须要有在异质网路系统(Heterogeneous network system) 中,完全自主的选择在某一时间从原来主机迁移( migrate ) 至另一主机和其他代理者及分散资源系统,这有点像是行动电话的运作原理,使用者在移动地点的同时,手机必须随时与附近的基地台进行对话程序( handshake )。
升阳与微软掀跨平台之战
除了硬体及各种无线通讯之基础建设外,建立此系统成功的关键,便在于寻找一合适的程式撰写工具,因为在此异质网路系统中可能包含不同之工作平台( 含硬体规格及软体作业系统),因此一个可以跨平台的程式发展环境,便成为必要选择。以目前情况而言,升阳的 Java 是市场上主要热门首选,当然学术界中也有不错的选择,如 Dartmouth College 的 Agent Tcl. 或是Imperial College 的April。
从市场上的热门话题看来,后PC 时代一开始,便是升阳将微软拉下来的最佳契机,在Java 开始成为流行的跨平台程式工具后,微软也开始「尊重他人」起来,标榜即将问世的软体作业平台「.Net」,所开发出来的软体也可以跨Java 平台( 只不过还是有点「笑里藏刀」,微软让「.Net」只可跨旧版的Java平台,而和新版的J2EE 与JMEE还是不能相容,摆明了有意限制Java 爱好者对Java 平台的忠诚度,就好比当年的Browser ( 浏览器) 大战,微软如何用小手段,让他的Internet Explorer,可以取代原来盛行的Netscape )。
但持平而论,在这场微软和升阳的大战中,升阳的Java 卡位早,在微软「.Net」还在「只闻楼梯响」的阶段,升阳就已经推出了J2ME 平台标准( Java 2 Micro Edition ),其新加进的JVM ( Java Virtual Machine ),使得资料可以互相在不同装置上畅通无阻。此外,并有许多程式开发界面,可以在手机及内建系统上使用。这样的进步,对无线通讯技术如 Bluetooth 的发展,以及不同装置间的沟通,有相当正面的贡献。
因此,在微软的「.Net」还没正式问世、接受广大市场考验及使用者测试之前,我们无从比较,只能对 Java 先「歌功颂德」一番,看看 Java 对 Mobile Computing 的贡献为何?
Java 作业系统执行任务的过程
首先,Java 可以在行动通讯中做平行运算( Parallel Computing with Java Mobile Agents,简称PaCMAn ),在这系统中包含着三个因子:伺服器端( Servers ),用户端( Clients )以及仲介端( brokers ),这个过程和无线通讯的基地台概念相类似,伺服器端与用户端透过仲介端来联系。用户端可以多工启动 Java 行动控制指令 ( Java Mobile Agents ),透过仲介端寻找指定之网际网路伺服器,以执行特定的工作。
在这一连串的过程中,仲介端会不停的执行整个要求 ( request )与下载 ( download )以及用户端与伺服器端登入与登出之工作,请参考 ( 图一 )。接下来大家的问题应该是:这样简单的架构概念,Java 能技援任何语言,Java到底强在哪里?
首先,吸引大家用Java 作业系统的首要原因,就在它可以随时改变的连线作业环境中,提供了稳定、弹性而有效率的非同步方法,让资料的存取,不因连线环境的转变而导致传输不完全。
其次,此系统可以允许间歇性连结 ( intermittent connectivity ) ,纵使在不良的传输环境中,它还是可以接续性的完成资料存取及程式的执行。而更令人着迷的地方,在于使用者可以透过任何随身助理系统( PDA ) 、行动电话来启动伺服器端的软体,一旦程式启动后便可离线,应用程式将在伺服器端继续执行,等到使用者再度上线,应用程式可以马上传回执行的结果。
拥有这样的特色,就可以知道为何提到Mobile Computing,就会令人想起Java,因为Java 的功能,可以克服Mobile Computing 环境中的不确定因素,包含硬体装置、应用软体之作业系统,以及连线品质之优劣。
除此之外,多工、跨平台及透过仲介端的运作模式,使Java 平台成为天生的资料采矿( Data Mining ) 者,例如使用者透过PaCMAn,可以发出任何数量的行动指令( Mobile Agent ) ,在网路上到处搜寻相关资料,分享知识。
Java的应用现况
最近,又流行起所谓的 Java 手机。传统的手机,乃是使用无线网路系统连接到伺服器启动 Java 相关软体后,将相关资料传回到手机,增加手机内容的可看性和读取资料的便利。而Java 手机,则是以J2ME 的技术,在手机内装置KVM,所谓「VM」,就是Java 的虚拟环境,KVM 可比喻是装在手机上Java 心脏,可以在KVM 上直接执行Java 程式,使Java可以在任何环境底下,让不同的作业系统来执行。装有 KVM 的 Java 手机,在执行图形档时,比起传统手机在效果及速度上,都有优异的表现。
如果在 Java 手机上已内建许多 Java 图形和程式,只执行离线游戏或运算,效果的确会让人耳目一新。不过话说回来,KVM 是阳春版的 VM,是为因应机器性能相较伺服器薄弱许多的手机而设计,而功能强大的 JVM,还是要架设在伺服器端,才有办法执行。所以若是手机使用者的最大需求,是必须经常连线到伺服器端来存取最新资讯,那么,手机内建KVM的功能,就相形没有那么重要。
谈到这里,Java 在 Mobile Computing 中扮演的角色,也就不言可喻。除非未来微软的「.net」推出后,有更好的系统架构及更吸引人的功能,否则 Java 在 Mobile Computing 的战场上,仍将保有大片江山。