位置:51电子网 » 技术资料 » 嵌入式系统

嵌入式Java运行平台数据库引擎的应用研究

发布时间:2008/5/27 0:00:00 访问次数:339

摘要:介绍某嵌入式java运行平台的总体框架;在此基础上,详细讨论为该平台开发的数据库(db)引擎组件的框架和结构组成,描述该组件实现的sql子集和数据表达方式以及逻辑算法的设计思路;提出该组件今后的改进设想。

关键词:数据库引擎 java 嵌入式系统

引言

随着嵌入式系统cpu硬件从8位到32位的发展,嵌入式系统软件的开发环境也得到迅猛的发展,编程语言从10多年以前的汇编为主流发展到现在c、c++、java为主流。另外,面向对象设计技术、组件技术等在嵌入式系统软件设计中的应用也日益引起人们的重视。

在嵌入式系统软件开发领域,java是一门较新的异军突起的编程语言。其优点是语言本身简洁优美,完全按照面向对象思想设计,并且语言引入许多较为先进的特性,如多线程、自动内存管理和垃圾回收,非常适合于大规模复杂软件系统的开发。其不足点是与硬件结合不够紧密,同时代码运行速度较慢。此外,对于内存的使用,程序难于管理和控制。

由于采用java编程具有如上所述的众多优点,越来越多的嵌入式系统采用java技术来构造软件系统。本文在介绍基于日本某自动售货机产品的控制板的java运行平台基础上,详细讨论笔者为其平台开发的db引擎的组成和设计思路。

1 java运行环境平台

图1所示为java运行环境的总体框架示意图。本系统为克服java的解释执行机制所引起的执行速度慢的问题,在硬件上采用了sun公司开发的pico java芯片。它能够直接执行java的二进制代码,使java的执行速度提高一个数量级以上。在硬件层的上面是os层,本系统采用的是itron(日本东京大学坂村键教授设计的一种嵌入式操作系统,虽然在日本以外的市场影响不大,但在日本本地市场,占有率达90%以上)。由于itron规格制定得比较早,并且为兼顾低端嵌入式应用的场合,itron总体上功能比较简单,并未把诸如tcp/ip、文件系统等内容包含在其里面,因此与嵌入式linux等不一样的是,tcp/ip、文件系统是以独立的组件形式存在的。在os层的上面是jvm层。与其它一般java虚拟机不同的是,本系统的java执行代码不需要由jvm解释执行,而是由cpu硬件直接执行。在jvm的上层是自动售货机的基础平台类库和公共组件层。本文介绍的db引擎组件正是处于这一层。该层的上面是应用程序层,用于实现自动售货机的各种控制、管理机能。

2 嵌入式系统db引擎

2.1 db引擎组件的引入

众所周知,在台式机领域,db是一个十分关键的基础软件。以往嵌入式系统的软件可能更侧重于与硬件的交互与控制,但随着对嵌入式系统功能需求的日益复杂化,嵌入式系统软件中,信息、数据的保存与管理的比重也日益增加。在这样的背景下,嵌入式系统软件开发中,通过引入db组件,对实现软件整体框架结构的组件化与简单化,有着十分明显而重要的意义。

2.2 db引擎组件的总体框架

如图2所示,将整个db组件设计为3层结构,分别为jdbc接口层、sql解释层和动作执行层。这3层之间呈单向依赖关系。也就是说,sql解释层依赖于动作执行层,但动作执行层不依赖于其上面的两层,可以单独存在而直接被使用。如果用户以使用方便为主要目的,可采用完全配置方式,应用程序通过jdbc接口层存取数据。反之,如果用户对空间和效率要求较高,可仅配置动作执行层组件,应用程序直接调用动作执行层的api进行数据的检过和更新等操作。

(1)jdbc接口层

如前文所述是可选组件,旨在为应用程序提供一个标准的db调用接口。

(2)sql解释层

本db组件实现的sql解释层,只实现了标准sql的一个小子集,主要完成select、delete、insert、update、create table、drop table等功能。其中数据操作语句(select、delete、insert、update)的解释要点之一是where条件子句的解释执行,类似于数学表达式求值算法。本文采用简单直观的“算符优先法”。该算法使用两个工作栈,一个称作optr栈,用以寄存运算符;另一个称作opnd栈,用以寄存操作数或运算结果。算法的基本思想是:

①首先置操作数栈为空,表达式起始符“#”为运算栈的栈底元素;

摘要:介绍某嵌入式java运行平台的总体框架;在此基础上,详细讨论为该平台开发的数据库(db)引擎组件的框架和结构组成,描述该组件实现的sql子集和数据表达方式以及逻辑算法的设计思路;提出该组件今后的改进设想。

关键词:数据库引擎 java 嵌入式系统

引言

随着嵌入式系统cpu硬件从8位到32位的发展,嵌入式系统软件的开发环境也得到迅猛的发展,编程语言从10多年以前的汇编为主流发展到现在c、c++、java为主流。另外,面向对象设计技术、组件技术等在嵌入式系统软件设计中的应用也日益引起人们的重视。

在嵌入式系统软件开发领域,java是一门较新的异军突起的编程语言。其优点是语言本身简洁优美,完全按照面向对象思想设计,并且语言引入许多较为先进的特性,如多线程、自动内存管理和垃圾回收,非常适合于大规模复杂软件系统的开发。其不足点是与硬件结合不够紧密,同时代码运行速度较慢。此外,对于内存的使用,程序难于管理和控制。

由于采用java编程具有如上所述的众多优点,越来越多的嵌入式系统采用java技术来构造软件系统。本文在介绍基于日本某自动售货机产品的控制板的java运行平台基础上,详细讨论笔者为其平台开发的db引擎的组成和设计思路。

1 java运行环境平台

图1所示为java运行环境的总体框架示意图。本系统为克服java的解释执行机制所引起的执行速度慢的问题,在硬件上采用了sun公司开发的pico java芯片。它能够直接执行java的二进制代码,使java的执行速度提高一个数量级以上。在硬件层的上面是os层,本系统采用的是itron(日本东京大学坂村键教授设计的一种嵌入式操作系统,虽然在日本以外的市场影响不大,但在日本本地市场,占有率达90%以上)。由于itron规格制定得比较早,并且为兼顾低端嵌入式应用的场合,itron总体上功能比较简单,并未把诸如tcp/ip、文件系统等内容包含在其里面,因此与嵌入式linux等不一样的是,tcp/ip、文件系统是以独立的组件形式存在的。在os层的上面是jvm层。与其它一般java虚拟机不同的是,本系统的java执行代码不需要由jvm解释执行,而是由cpu硬件直接执行。在jvm的上层是自动售货机的基础平台类库和公共组件层。本文介绍的db引擎组件正是处于这一层。该层的上面是应用程序层,用于实现自动售货机的各种控制、管理机能。

2 嵌入式系统db引擎

2.1 db引擎组件的引入

众所周知,在台式机领域,db是一个十分关键的基础软件。以往嵌入式系统的软件可能更侧重于与硬件的交互与控制,但随着对嵌入式系统功能需求的日益复杂化,嵌入式系统软件中,信息、数据的保存与管理的比重也日益增加。在这样的背景下,嵌入式系统软件开发中,通过引入db组件,对实现软件整体框架结构的组件化与简单化,有着十分明显而重要的意义。

2.2 db引擎组件的总体框架

如图2所示,将整个db组件设计为3层结构,分别为jdbc接口层、sql解释层和动作执行层。这3层之间呈单向依赖关系。也就是说,sql解释层依赖于动作执行层,但动作执行层不依赖于其上面的两层,可以单独存在而直接被使用。如果用户以使用方便为主要目的,可采用完全配置方式,应用程序通过jdbc接口层存取数据。反之,如果用户对空间和效率要求较高,可仅配置动作执行层组件,应用程序直接调用动作执行层的api进行数据的检过和更新等操作。

(1)jdbc接口层

如前文所述是可选组件,旨在为应用程序提供一个标准的db调用接口。

(2)sql解释层

本db组件实现的sql解释层,只实现了标准sql的一个小子集,主要完成select、delete、insert、update、create table、drop table等功能。其中数据操作语句(select、delete、insert、update)的解释要点之一是where条件子句的解释执行,类似于数学表达式求值算法。本文采用简单直观的“算符优先法”。该算法使用两个工作栈,一个称作optr栈,用以寄存运算符;另一个称作opnd栈,用以寄存操作数或运算结果。算法的基本思想是:

①首先置操作数栈为空,表达式起始符“#”为运算栈的栈底元素;

-->
相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!