温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
年安卓
操作系统
SEED
分布式
数据库
数据
中的
应用
安卓操作系统下SEED分布式数据库在大数据中的应用
【】在德州仪器推出SEED通用嵌入系统后,其强大的计算功能正在迅速的占领嵌入式和移动式设备的市场,成为目前市面上最常见的硬件设备之一。同时,因为安卓系统与SEED系统的完美结合,使得目前SEED系统借助安卓通用软件减轻软件编写压力的做法比比皆是。本文建立在SEED硬件系统和安卓操作系统平台下的分布式数据库系统的设计,较为完美的解决了大数据在智能家居网络中的应用,使得智能家居的数据库系统形成较为完善的大数据系统。
【关键词】SEED通用嵌入系统;安卓操作系统;分布式数据库;大数据;
1. 智能移动的开展背景
2. SEED对于智能移动的推进作用
德州仪器是一个传奇的企业,1958年,德州仪器开发了世界上第一片集成电路,而此引起世界电工学变革的里程碑式创造,德州仪器的开发人员从最初设想的提出到产品完成市场转化,仅用了100天时间。随后,1971年德州仪器开发了第一片单芯片微型计算机,也就是今天说的SCM架构。1978年,德州仪器研制了世界上第一个声音合成芯片,从此我们拥有了LPC。从某种意义上,德州仪器已经是当今自动化行业的真正引导者,而SEED拥有完全正统的德州仪器血统,这与ARM架构相比,虽然SEED在推出时间上落后于ARM,但是,ARM从工程意义上仅仅是德州仪器原有产品的组合应用,而SEED是正统的德州仪器产品。所以,SEED近年得到了业内的广泛认可,并且迅速抢占已经被ARM几乎完全占领的移动智能化设备的市场。
SEED占领市场的最关键的原因有三个方面:
1)强大的主机计算能力
目前的SEED设备已经拥有了8核2.4GHz的计算能力外加支持1666MHz的DDR3RAM总线,最大运行内存支持已经到达了32GHz,这种单机计算能力已经到达了目前市面上的主流台式工作站的计算水平。但即便是最高配置的SEED的体积可以封装进45公分见方的壳体内,全面的支持了移动设备。特别是SEED设备对于单个赋存的支持也已经到达了64GB以上,在搭载辅处理机的前提下,SEED可以支持TB级别的辅存管理。
2)大跨度的市场定位
目前市面上的SEED设备裸机,在预装安卓操作系统的前提下,售价从200元人民币到20万人民币不等,这些设备因为模块集成数量的多少和计算能力的强弱进行市场运营,可以适应几乎全部水平和系统的嵌入和移动设备的功能开发。本文研究的系统主要采用中低档SEED系统开发的电冰箱、空调机、热水器、感光窗帘等系统的安卓控制平台,同时,本文研究的系统也可以应用于其他的基于安卓的系统中,比方家庭平安监测系统、家用数据中心、智能路由器等。这些系统因为较广泛的采用了安卓系统和SEED硬件架构,所以较为适合本文的系统。
3)强大的云计算和互联能力
SEED的最大特点就是支持几乎所有的网络模块和网络通讯模式,ZIGBEE、BLUETEETH、WIFI是SEED最常用的互联网形式,而在有线通讯方面,ZIG可以支持10/100/1000以太网、光纤的单双工、同轴、杜邦等多种通讯协议。甚至通过高速的SATA、1394、SICI等高速通讯总线,我们可以实现较大规模的SEED阵列。也就是说SEED的最大市场驱动力在于,其在多机协同处理过程中的强大表现,使得其计算能力的可扩展性到达了最高,与其他系统之间的兼容性可以到达最完美的程度。
3. 安卓数据库的需求分析
SQLite是运行在安卓系统上的较为成熟的数据库系统,仅需要几百K的RAM空间就可以几乎完美运行,所以,虽然SQLite是面向UNIX的平台开发,且初衷是应用在更高计算能力的平台上,但是,SQLite的功能以及他对linux系统的同步支持,使得其在包括安卓系统在内的基于linux的所有系统中得到了广泛的应用。
表1:SQLite的常用SQL方法
序号
功能
序号
功能
1
ATTACH DATABASE
14
DROP TRIGGER
2
BEGIN TRANSACTION
15
DROP VIEW
3
comment
16
END TRANSACTION
4
COMMIT TRANSACTION
17
EXPLAIN
5
COPY
18
expression
6
CREATE INDEX
19
INSERT
7
CREATE TABLE
20
ON CONFLICT clause
8
CREATE TRIGGER
21
PRAGMA
9
CREATE VIEW
22
REPLACE
10
DELETE
23
ROLLBACK TRANSACTION
11
DETACH DATABASE
24
SELECT
12
DROP INDEX
25
UPDATE
13
DROP TABLE
数据来源:SQLite官方说明书
安卓系统下的SQLite系统系统大小仅为4.43MB,但能较完美的支持2TB的数据库的管理,所以,在其指令集的支持下,基于linux内核的安卓系统可以完美的运行。本文系统主要有以下几点具体要素:
1)开发与运行平台
基于SEED系统开发,要求SEED系统的运行频率在600MHz以上,运行内存512MB以上,数据库容量2GB左右。实际运行中,该系统可以运行在更高水平的SEED设备上,实际上,目前市面上的SEED设备,均已经远超过了该配置。即便是千元左右的SEED-MSP430F5529中低档SEED系统,其主频也到达了2.4GHz以上,前段总线1000MHz。
图1:SEED-MSP430F5529外形图
表2:SEED-MSP430F5529硬件模块设计参数
模块
组成局部
集成 MSP430F5529:
128KB 闪存 / 8KB SRAM(如禁用 USB,那么为 10kB)
16 位 RISC 架构,高达 25MHz
3 个 Timer_A 块、1 个 Timer_B 块。
2 个 USCI (UART/SPI/I2C) 块。
16 通道 12 位 ADC12_A、12 通道 Comp_B、63 I/O
,USB 开发平台。
5 块电容触摸条(按钮或滑块功能)。
microSD Card 插槽,附 1GB 内存卡。
102x64 灰阶点-矩阵 LCD,带背光。
4 个按钮(2 个用户配置按钮、1 个复位按钮、1 个 USB 自举按钮)。
3 个通用 LED、5 个用于电容触摸按钮的 LED 和 1 个 LED 电源指示灯。
滚轮/分压器。
集成的 EM 接头可支持 TI 低功耗射频无线评估模块和 eZ430-RF2500T。
当前支持的模块:
CC1100/CC1101EMK - 低于 1GHz 无线电。
CC2500EMK - 2.4GHz 无线电。
CC2420/CC2430EMK - 2.4GHz 802.15.4 无线电。
CC2520/CC2530EMK - 2.4GHz 802.15.4 无线电。
集成 eZ-FET,可用于 Spy-Bi-Wire(2 线 JTAG)编程和调试。
JTAG 接头,可用于完整的 4 线 JTAG 编程和调试。
多个电源选项,包括 USB、JTAG、电池或外部电源。
可轻松访问 F5529 I/O 引脚。
数据来源:SEED-MSP430F5529官方说明书
软件支持方面,我们要求系统已经部署有安卓2.0以上系统,对于安卓2.0以后系统兼容支持,同时建议使用较新的安卓4.4操作系统。同时,系统中已经部署的SQLite系统是必备的根底软件。因为本文系统是建立在安卓操作系统的系统平台之上,且直接通过调用系统中的硬件API及其他资源进行工作,所以,本文系统除了能在部署了安卓系统的SEED平台上运行,也可以在部署了安卓系统的ARM平台上运行。
安卓系统给我们带来的最大契机就是可以像在通用计算机平台上一样开发移动平台软件甚至开发嵌入式平台软件。本文采用的开发环境为VC++,直接通过USB调试接口直接在SEED上完成调试。
2)应用平台
因为CREATE INDEX、CREATE TABLE、CREATE TRIGGER、CREATE VIEW等方法的存在,且配合DROP INDEX、DROP TABLE、DROP TRIGGER、DROP VIEW等方法,可以实现在同一个数据库CONNECTION之下,较为自由的根据不同的软件数据同步需求,在不同系统之间形成镜像数据库。
因为该系统是一个底层平台,所以,系统虽然允许用户自行安装或者卸载,但是,应该侦测到数据被调用的不容软件,在系统卸载软件时,可以弹出提示,告知用户卸载该软件可能造成的系统运行不稳定或者其他相关软件受到影响。
4. 大数据的实现
本文对于数据库的数据表设计并没有具体要求,因为本文系统仅仅提供隔一个接口,允许设备用户和APP应用软件提出数据库操作要求,而此要求在操作本机SQLite的同时,对于局域网内安装了本文系统的所有设备的SQLite进行操作。也就是说,其数据库局部并不是本文系统的主体,而是运行本文系统要求前置安装SQLite数据库。
1)应用程序访问:
应用程序提交SELECT方法、DELETE方法、INSERT方法、UPDATE方法等具体的SQL方法时,本文系统会同步轮询网络中的所有SQLite数据库,当其中一个SQLite数据库发生访问错误时,本文系统会对这些数控库进行同步,然后进行操作。本文系统倾向于使局域网中所有设备的数据库同步为相同的镜像。
2)应用程序卸载:
在某一个应用程序访问过本文系统时,本文系统会对该程序进行建档管理,这个档案同样写入到SQLite系统中,同样在本系统中进行同步管理。而在这些系统中的相关软件卸载后,本文系统会对这些软件访问过的数据表进行判断,查看局域网中所有的其他软件是否曾经访问过该系统。如果该系统访问的数据表没有其他软件关联,本文系统会自动清空这些数据表,以减轻系统的压力。安卓系统中的大局部软件都对垃圾信息的处理能力不强,这是导致不少用户周期性的刷写操作系统的主要原因之一。
3)应用程序安装:
当安装了新软件时,软件对于数据库的读写动作会被本文系统捕捉,从而建档。特别是本文系统会根据经常读写数据库的软件制作台账表格,对于多数终端设备已经安装但是少数设备没有安装的软件,本文系统会推荐其他系统安装。同时,用户可以根据本文系统列表建立的台账,选择某系统不会安装的软件,这个软件唯一关联的数据表就会被删除,同时这些数据不会对该终端进行同步。
4)系统结构调整:
当系统软件被调整后,特别是SQLite升级或者删除后,本文系统会作出警告,提示客户对本文系统做出配置,或者提醒本文系统已经无法找到需要连接的数据库。也就是说,本文系统是一个中间软件,其主要功能是应用程序与SQLite之间的一个外挂软件。
5)访问失败:
在应用程序向着本文系统发出数据库操作指令后,本文系统不能作出正确的动作,特别是本文系统不能得到数据库的正确响应时,应该对数据库的数据表结构和数据库连接的有效性进行判断,并且一次遍历其他终端设备的数据库,找到可以正常响应的数据库后,对所有数据库进行该表的同步,以防下次出现类似问题。或者说,在正常访问的过程中,是每次访问后由本文研究的系统以本机数据库为蓝本对外同步所有数据库,而在本机发生数据库读取错误时,系统会根据全网数据库的响应,根据能够正确反响该数据的系统同步全网数据库。
6)被动优化
因为应用程序仅在请求一个数据表时,该数据表才会面向该应用程序的近端系统的存储器中同步,所以,本文系统很可能会将整个智能家居互联网形成一个分布式的大数据硬件支持系统,这个系统充分利用所有连接了智能家居网络的系统的硬件资源进行数据的存储,而充分利用智能家居网络的软件时间进行网络同步优化。同时,在其中跟一个系统的近端硬件存储空间出现资源紧张时,