智能掌上设备代表了嵌入式计算机领域的一个新的发展方向,构件技术是软件领域的近年来最重要思想之一。介绍了一种新型的构件技术———CAR 技术,从系统组成、特色功能等方面阐述了该技术在智能掌上设备操作系统中的应用,总结出构件技术对智能掌上设备的发展带来了新的契机。
随着通讯技术和计算机技术的飞速进步,以PDA、智能手机为代表的智能掌上设备近年来得到了迅猛的发展。不同于一般的嵌入式设备,如今智能掌上设备的运算能力也愈来愈强大,功能也越来越完善,因此,出现了许多面向智能掌上设备的操作系统,以便能够更好地支持应用程序的运行。智能掌上设备操作系统的基本原理与传统的操作系统基本一致,但是由于掌上设备具有特殊应用需求,所以它的设计又有许多独特之处。智能掌上设备操作系统往往根据其功能,对系统进行了最大程度的优化,同时也采用了许多适合于移动计算的新技术,以便增强功能,提高性能。
随着因特网时代的到来,应用程序模型发生了很大的变化,于是提出来了基于软件工厂的构件化编程模型,带来了应用的多样性以及生产力的提高。把构件技术应用在智能掌上设备操作系统中,给移动计算的发展带来了新的契机,迎合了软件发展的方向。本文以构件技术为核心,分析了构件化的优势,阐述了由科泰世纪公司研究的一种典型的二进制构件技术———CAR (Caref ree Application Run - Time) 构件技术,结合基于该技术的国产嵌入式操作系统“和欣”,来对构件化的智能掌上设备操作系统进行了详细分析。
智能掌上设备操作系统
智能掌上设备是对具有较强运算能力的手持设备的统称,主要包括了个人数字助理( PDA) , Smartphone (智能手机) ,以及具有复杂功能的电子书、掌上游戏机等。早期的掌上设备功能比较单一,且少有联网功能。但是微处理器的运算能力日益增强,无线通讯技术也发展神速,使得如今的掌上设备在提供强大运算能力的同时,又提供了丰富的网络功能。其中,智能手机是最为典型的智能掌上设备,它具有普通移动电话的全部功能,同时又提供了PDA 的功能,而且可以通过电信运营商的无线网络,实现电子邮件、上网浏览、网络游戏等增值服务,代表了智能掌上设备的发展方向。
本文所讲述的智能掌上设备以智能手机为主,默认已经在硬件上支持了无线通讯功能。
如今市面上也有不少面对智能掌上设备的操作系统产品。其中比较有名的有Palm Source 的Palm OS ,微软的Windows Mobile 系列, Symbian公司的Symbian OS ,以及多种嵌入式Linux。PalmOS 广泛应用在PDA 产品上面,如今也开始向智能手机领域发展。Windows Mobile 的界面和操作非常接近PC 机使用的Windows 系统,使用方便,对用户有很大的吸引力。Symbian OS 则是一个专门用在智能手机上的操作系统,功能强大,如今已运用在多款手机上面,变得非常成熟了。Linux 是一个开放源代码的操作系统,得到了许多厂商的支持。
在这里以智能手机为例,对智能掌上设备的结构进行初步分析。从主要的硬件上来讲,智能手机分为两个部分:通讯模块和应用处理模块。一般来说,这两个模块是相对独立的,通讯模块用来实现基本的通讯功能,智能手机作为一个手机主要就靠它来体现,它一般有一个独立的CPU ,且具有独立的通讯软件,用来处理通信协议栈。应用处理模块用来完成除基本通讯功能之外的各种功能,比如存储管理、多媒体播放等等,也有一个自己的CPU ,相对于通讯模块来说,它的CPU 更加强劲一些。
本文所提及的智能手机操作系统以及各种应用程序也就运行在这个CPU 上面。应用处理模块和通讯模块之间靠通讯控制模块相连。结构示意图如图1 所示。
CAR 构件技术
构件技术
随着软件复杂度的与日俱增,传统的把整个软件的源程序拿来静态编译的方法显然不适合了。在这个前提下, 产生了软件拼装模式,把软件分成一个个相对独立的目标代码模块, 称之为构件 。
软件开发人员只需要做和自己相关的构件,编译通过,就能够拿来和其他模块组装在一起使用了。通过装卸实现某个功能的构件,就可以实现对系统的灵活升级。
如今,已经成熟且广为使用的构件技术有微软的COM(Component Object Model) ,OMG 组织的CORBA (Common Object Request Broker Architecture) 等等,用它们生成的构件都是基于二进制目标代码的。现在大行其道的Java 和。 NET ,虽然生成的程序都是基于中间代码的,但也处处体现着构件技术的思想。在本文中,所提及的构件都是指的二进制构件。
面向对象技术实现了软件源代码层次的复用,提高了软件开发人员的生产率。构件技术是对面向对象技术的深化,实现了二进制层次上软件的复用,进一步提升了软件开发的效率。根据构件技术,软件系统可以拆分成相对独立的构件,构件之间通过约定的接口进行数据交换和信息传递。构件可以用不同的语言编写,只要符合一组二进制规范即可,这样大大提高了开发的灵活度。
CAR 构件技术
CAR(Caref ree Application Run - Time) 构件技术是面向构件编程的编程模型,它规定了一组构件间相互调用的标准,使得二进制构件能够自描述,能够在运行时动态链接。微软的COM 技术是广为应用的一种构件技术, CAR 兼容微软的COM。但是和微软COM 相比,CAR 删除了COM中过时的约定,禁止用户定义COM 的非自描述接口;完备了构件及其接口的自描述功能,实现了对COM 的扩展;对COM 的用户界面进行了简化包装,易学易用。
CAR 技术能够动态加载构件,最大程度支持软件的二进制复用,进行系统升级的时候也只需要升级相关的构件即可,具有可靠性、容错性、安全性,代表了软件工厂化生产的方向。
CAR 技术采用C/ C + + 语言来编写构件,所以生成的构件直接是以目标平台的二进制代码运行,相比J ava 、。 NET 技术的中间代码和虚拟机机制,在速度上占有明显的优势,更适合系统级构件的编写以及嵌入式系统中的应用。
“和欣”操作系统简介
“和欣”(英文名为Elastos) 是科泰世纪公司研制的一个完全面向构件技术的操作系统,基于灵活内核,具有多进程、多线程、抢占式、基于线程的多优先级任务调度等特性。“和欣”里面集成了CAR构件运行环境,能对软件构件进行充分的支持,且已经广泛地用在各种嵌入式领域中,特别是智能手机等掌上设备领域之中。
CAR 构件技术在智能掌上设备操作系统中的应用
智能掌上设备对构件技术的需求
智能掌上设备在拥有较强的运算功能的同时,具有便携性等特点,通常为用户随身携带。随着技术的进步,集成了许多功能的掌上设备逐步取代了那些功能单一的设备。在新的环境下,用户往往要求掌上设备在保持便携性的同时能够带来更多的功能。所以, 针对智能掌上设备提出了下面的要求:
(1) 可以动态加载应用程序。动态加载应用程序是在因特网时代的需要,因为智能掌上设备的功能越来越多,不能像以前那样由厂家把所有的功能都做好固定在里面,所以必须要求用户能够自己根据自己的兴趣,有选择地从网上下载应用程序。
(2) 随时和动态地实现软件升级。智能掌上设备的功能也是在不断增强的,开发商不必为了添加部分功能而重新发布整套软件,只需要升级部分的功能即可。
(3) 灵活的模块结构,便于移植和裁减。因为掌上设备的配置可能差异非常之大,所以需要针对不同的硬件配置紧凑高效的系统,且添加和删除功能模块也要相当容易。
如果在操作系统中采用构件技术,能够很好地解决上述问题。特别地,利用CAR 构件技术,把应用程序按模块划分做成一个个构件,能够方便地实现网上下载,动态加载,自动升级,且具有结构灵活等特点。CAR 构件的设计初衷,就是面向消费类电子市场,且实现用户零维护的功能,这点从它的名字就可以看出来。下文以“和欣”操作系统为例,讲解了CAR 构件在智能掌上设备中的应用方案。
智能掌上设备操作系统的结构
为了能够很好地支持构件技术,需要在操作系统内部建立对构件技术的支持。在“和欣”中,采用了完全构件化的技术来搭建整个系统应用框架,从操作系统底层就开始支持构件机制,对智能掌上设备来说,形成了一个灵活而高效的解决方案。
图2 描述的是一个采用GPRS 功能的智能手 机的软件构成图。其中智能手机操作系统直接控制的是图2 右边的应用模块。从图中可以看出,CAR 构件平台运行在操作系统内核之上,一方面,它与内核联系紧密,替内核接管了负责整个系统中应用程序运行的任务;另一方面,它又是一个相对独立的模块,这样能够方便地进行移植,让更多的系统都能运行CAR 构件,保持着CAR 构件的软件平台无关性。CAR 构件运行平台支持系统级和应用级两个层次的构件的运行。同时,该系统也提供了一些函数库,比如C 的库函数,在一定程度上兼容以前编写的一些应用软件。另外,如今的智能手机都支持丰富的JAVA 应用程序,所以该系统也提供了专门的构件来运行K- J ava 程序。
图2 左边的通讯模块是相对独立的一部分,虽然不由操作系统直接控制,但是通过它提供的一组通讯协议,可以对它进行全方位的操作。打电话、发短信、收发电子邮件,都是由相应的应用构件通过控制通讯模块来完成的。从功能上来说,可以把GPRS 通讯模块看成一个无线网卡,各个应用构件,就是通过这个无线网卡来实现网络应用的。
CAR 构件运行平台
在“和欣”中,就是由CAR 构件运行平台来提供对构件运行的支持。它让系统中的各种构件天衣无缝地搭配在一起,实现自己的功能,同时又针对掌上设备的硬件特点进行了优化,且提供给构件的是完全的二进制运行环境,所以能够保证系统的高效运行。
每个构件只关心自己的功能实现,构件之间的相互联系由约定的接口来实现 。对于同一个进程内的构件,由于共享同一个地址空间,其方法可以直接调用。但是,对于不同进程的构件,则必须通过代理构件来实现。代理构件由CAR 构件运行平台动态地生成,它可以看成是中间件的一个特例,既解决了跨进程,甚至跨机器的构件通信和方法调用,而且还提供了许多有用的特性。代理构件能对构件的运行状态进行干预和控制,给系统提供了强大的安全保护机制,能对软件的访问权限进行有效地控制,对于加密、解密、防黑客、防病毒的设计提供了必要的条件,为信息系统的安全性提供了坚实的基础。图3 描述了CAR 构件运行平台通过自动生成代理构件来对实际的构件模块进行调用的模型。
系统构件库和应用构件库
有了CAR 构件平台,还必须具有完善的构件库,操作系统的功能才能真正发挥出来。根据实现的功能,一般把构件库分为系统构件库和应用构件库两大类。系统构件库与操作系统内核联系紧密,提供一些通用的功能供应用程序调用,是应用程序的必要支持。应用构件库里的构件与用户直接进行交互,用来实现智能掌上设备里的丰富的应用功能。
“和欣”提供了一套全面的系统构件库,这些构件库在智能掌上设备中不可缺少,为各种应用构件的运行提供了完整的支持。该构件库分为以下几类:
图形系统构件库:提供图形用户操作界面,因为用于掌上设备,所以是一套小巧、紧凑的图形系统。
设备驱动构件库:用于各种输入输出设备的驱动,主要包括LCD 显示屏驱动、触摸屏驱动、声卡驱动、摄像头驱动等等。
文件系统构件库: 提供对各种文件系统的支持,尤其是对采用最为广泛的FAT 文件系统的支持。还提供了对FLASH 存储器等掌上设备最常用的外存储器的支持。
网络系统构件库:用于对TCP/ IP 协议的网络支持,针对无线网络的特性,对协议进行了优化。同时提供了常用的网络应用工具。
CAR 构件对自动下载运行机制的支持
自动下载运行机制是构件技术在智能掌上设备中的典型应用。在传统的计算机中,往往要求事先把应用程序安装在操作系统中,然后才能正常使用它。这种安装机制比较繁琐,而且那些对计算机的操作不是很熟练的人们,使用起来有一定的难度。智能掌上设备作为一种消费类电子产品,面向的是更为普通的消费者,所以要求对它的操作更加简化。考虑到这一点,方便地从网上获取应用程序构件,无需安装就自动运行,就成了CAR 构件的一个重要特性。
CAR 构件都提供了一个属性uunm(UniversalUnique Name) ,用来标识构件在互联网上的地址。uunm 是唯一存在的,所以每个构件都有一个唯一的互联网地址。CAR 构件无需在应用程序启动的时候就装载到内存之中,只有当用到它的时候,才会动态加载。需要加载某个CAR 构件的时候,CAR 构件环境会得到这个构件的uunm。根据uunm ,就能从网上把这个构件下载下来,然后开始自动运行。
同时,由于通过网络进行构件下载,按目前的网络速度需要消耗一定的时间,所以自动下载运行机制针对效率问题进行了优化。对于下载的构件,系统会把它自动放到本机的一个专用目录当中,该目录称作构件缓存。下一次装载这个构件的时候,首先在构件缓存中进行寻找,如果有的话,就直接加载本机的这份拷贝,不用启动网络,大大加快了运行的速度;如果没有找到该构件,则通过uunm从网上下载。当缓存装满的时候,系统会根据一定的算法来清理其中的构件。
CAR 构件的自动下载运行机制,完全不用用户干预而自动执行,方便了用户的使用。此外,通过在构件中加入相应的数字签名机制,解决了自动下载运行的安全性问题。
总结
构件技术是今年来最为重要的软件技术之一,促进了软件生产方式的飞跃,也带来了软件应用模型的重大变化。智能掌上设备作为后PC 时代的一个标志性嵌入式设备,完美地结合了计算机技术和无线通讯技术,且普及程度越来越高。作为当今的构件技术的一个典型代表,CAR构件技术具有自动运行下载等众多优势,用在智能掌上设备操作系统之中,给用户带来了种种新特性,也给智能掌上设备的发展带来了新的契机。
全部0条评论
快来发表一下你的评论吧 !