`
happmaoo
  • 浏览: 4505900 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[OTA]制作OTA短信来配置手机与服务器同步

阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

[OTA]制作OTA短信来配置手机与服务器同步

编写者

日期

关键词

郑昀@ultrapower

2005-9-26

sms ota 同步 空中下载 手机 WDP WSP WBXML sync4j 同步设置

本文档讲解了OTA的概念,给出了如何发送“同步设置”的OTA短信的步骤,并附带Java编写的源代码(http://www.cnblogs.com/Files/zhengyun_ustc/SyncSettingBuilder.rar)

空中下载(OTA)的概念

OTA的基础概念可以参考我的[SMS&WAP]实例讲解制作OTA短信来自动配置手机WAP书签。下面简单介绍一下:

OTA,即Over The Air,国内翻译为空中下载

OTA标准由爱立信和诺基亚共同制订。OTA涵盖了许多范围,比如Kjava中的应用程序下载也是通过OTA我们这篇文章主要讲的是,通过短信方式空中下载同步配置信息,参考的文档是OTA_settings_general_7_0.pdf

https://secure.forum.nokia.com/main/1,6566,1_47_50_10,00.html

你可以看到许多Nokia - Ericsson OTA Documents

下载OTA Setting规范:

http://sw.nokia.com/id/3377eb33-cb1d-490e-a1cb-8735d785e1d3/OTA_settings_general_7_0.pdf

下载OTA Setting示范:

http://sw.nokia.com/id/bf5f034f-be06-4506-87b7-22788de5c316/OTA_service_settings_example_v11.pdf

规范中定义了三种Setting

l 浏览器设置

l 浏览器的书签设置

l SyncML设置

也就是说,你通过发送短信可以帮助用户手机设置SyncSettings,从而可以让手机与服务器同步信息(如电话本、日程和记事本等)。

商业应用示范:无忧通讯录

手机无线同步服务--无忧通讯录,支持SyncML,最专业的手机号簿备份服务:

http://www.51txl.com:8080/51txl/

它提供的服务还是非常简单易用的:“无忧通讯录是一种方便使用的无线同步服务,它可以安全地将您手机上的电话簿备份到网络上。假如您的手机丢掉了、被偷或者损坏,这时您不用着急,无忧通讯录上保存有您的电话簿可立即被恢复,而且所有的操作都可方便地在无线状态下完成。

注册它的时候,它给你的手机上发送一个短信“同步设置”,你用“存入设置”菜单命令保存这个短信到同步菜单里,这样你就可以利用这同步设置和她的服务器端做数据同步了。

我们下面具体讲解一下“同步设置”的OTA短信生成办法。

简单粗暴直奔主题

原则上,你只要看了OTA_settings_general_7_0.pdf,并参照OTA_service_settings_example_v11.pdf,就可以轻松地制作出符合规范的OTA短信

但是,本文档的目的就是让你简单粗暴地直奔主题,运行本文档附带的源代码后,就可以制造出同步设置的短信的各个包了。

首先,你需要构造出这样的Sync Settings XML,如下所示:

Sync Settings XML

SyncSettings>

Version>1.0Version>

HostAddr>http://10.18.168.183:8080/sync4j/syncHostAddr>

Port>80Port>

RemoteDB>

CTType>text/x-vcardCTType>

CTVer>2.1CTVer>

URI>./scardURI>

Name>sync4jName>

Auth>

AuthScheme>1AuthScheme>

Username>guestUsername>

Cred />

Auth>

RemoteDB>

Name>Sync4jName>

Auth>

AuthLevel>2AuthLevel>

AuthScheme>1AuthScheme>

Username>guestUsername>

Cred />

Auth>

ConRef>

ConType>1ConType>

RefID>4jSvrRefID>

ConRef>

SyncSettings>

其次,对这个XML文档,通过以下代码转译为WBXML

OTAMessage的构造过程

File xmlDir = new File("C:\\opt\\xml\\sync4jsyncsettings.xml");

String xml = IOTools.readFileString(xmlDir);

SyncSettingWriter writer = new SyncSettingWriter();

vWriter.addElement(writer);

XmlParser xmlp = new XmlParser(new StringReader(xml));

// 遍历XML解析

traverseXML(xmlp);

/*

* 对于Vector中的每一个Writer都做关闭动作

*/

int nIndex = 0;

for(SyncSettingWriter writerSync : vWriter)

{

nIndex++;

writerSync.close(vWriter.size(), nIndex);

System.out.println(encodeHex(writerSync.getBytes()));

}

上面的代码最后来打印出了短信二进制内容,比如:

第一个短信包:

0b0504c34cc00200030402010106060502020b81ea01016a00555803312e3000015003687474703a2f2f3231392e3233382e3136382e3138333a383038302f73796e63346a2f73796e630001520338300001544e03746578742f782d766361726400014f03322e31000156032e2f73636172640001510373796e63346a000147490331000157037a68656e6779756e0001

其中的“0201”代表共有两个短信包,这是第一个包;

第二个短信包:

0b0504c34cc00200030402024d010101510353796e63346a0001474803320001490331000157037a68656e6779756e00014d01014b4c033100015303346a53767200010101

其中的“0202”代表共有两个短信包,这是第二个包;

这样,手机收到这两个包之后,就知道按照顺序组合到一起,然后再解析了。

下面,我们来铺垫:

你要给目的手机发送一条短信,它必须是二进制格式的,这样手机才能够识别出来。

发送短信,可以通过

UltraBinarySMS

UltraBinarySMS.SendSMS sendsms = new UltraBinarySMS.SendSMS();

string strResponse = sendsms.send(content, destmobile);

发送短信,你就可以立即在手机上看到效果。

这几条短信内容差不多分为三块:

l WDP Layer的包头;

l WSP Layer的包头;

l WBXML

同步SyncSettings XML的真正内容是用WBXML表述的。

WDPWSP

什么是WDPWSP呢?

WDPWireless Datagram ProtocolWSPWireless Session Protocol

更多信息可以参考http://www.protocols.com/pbook/wap.htm

WAP Forum 在设计1.x版本的时候是经过深思熟虑的,但它和我们熟知和喜爱的3W协议(比如HTTP, SSL HTML)并不兼容。

WAP1.x堆栈被定义为五层,自底向上依次是:

u WDP (Wireless Datagram Protocol),

u WTLS (Wireless Transport Layer Security),

u WTP (Wireless Transaction Protocol),

u WSP (Wireless Session Protocol),

u WAE (Wireless Application Environment,包括 Wireless Markup Language WML, 以及 WMLScript )

每一层都和3W堆栈层面大致吻合:

n WDP->IP,

n WTP->TCP,

n WTLS->SSL/TLS,

n WSP->HTTP,

n WML->HTML

这时你可以参考

http://www.protocols.com/pbook/images/wapstack.gif

The OSI Model for Wireless Communication

由于WSP相当于HTTP层,那么WSP层所肩负的职责是:

1).提供HTTP 1.1的功能和语义

2).能力协商

3).会话状态长期保存

4).会话挂起和恢复

5).可靠以及不可靠的Push的公共机制

等等。

在我们的OTA实现中,WSP Header其实就是声明两个内容:PDU typeMIME Type至于WDP,就是声明一个端口号,并说明本数据包是整条短信的第几个包。

WBXML

WBXML,就是WAP Binary XML

简单地说,它就是一个定义好的XML片断,可以表述出同步服务器地址、远程数据库名称、登录账号等等内容。

比如,这样一个实例:

Nokia给出的SyncSettings例子

<syncsettings><p></p></syncsettings>

<version>1.0</version>

<hostaddr>http://www.syncserver.com/sync</hostaddr>

<port>8080</port>

<remotedb><p></p></remotedb>

<cttype>text/x-vcard</cttype>

<ctver>2.1</ctver>

<uri>./Contacts?CLASS=PRIVATE</uri>

<name>Private Contact DB</name>

<auth><p></p></auth>

<authscheme>1</authscheme>

<username>james</username>

<cred>cHdk</cred><!-- Base64 coded 'pwd' -->

<remotedb><p></p></remotedb>

<cttype>text/x-vcalendar</cttype>

<ctver>1.0</ctver>

<uri>./Calendar</uri>

<name>Calendar DB</name>

<name>PIM Service</name>

<auth><p></p></auth>

<authlevel>2</authlevel>

<authscheme>1</authscheme>

<username>james</username>

<cred>Ym9uZA==</cred><!-- Base64 coded 'bond' -->

<auth><p></p></auth>

<authlevel>1</authlevel>

<authscheme>1</authscheme>

<username>bond</username>

<cred>Ym9uZA==</cred><!-- Base64 coded 'bond' -->

<conref><p></p></conref>

<contype>1</contype>

<refid>My AP</refid>

这样指明一个和服务器http://www.syncserver.com/sync进行数据同步

很简单不是吗?

margin: 0cm 0cm 0pt; text-ind

分享到:
评论

相关推荐

    OTA配置数据生成说明文档

    在移动通信领域中,Over The Air (OTA) 技术被广泛应用于远程配置手机等移动设备。本文档主要介绍OTA配置中的XML格式及其对应的WBXML(Wireless Binary XML)文档格式,重点讲解如何利用这两种格式进行GPRS配置、...

    OTA技术大全,全部技术文档

    OTA(Over-The-Air Technology)技术是一种通过无线网络进行软件更新和数据传输的方法,广泛应用于移动设备如智能手机和平板电脑。这项技术允许设备制造商和运营商远程推送系统更新、应用程序升级或者配置新的服务...

    OTA下载技术资料编程使用

    - **功能**:OTA服务器与客户端之间通过通知保持同步,如更新可用通知、下载进度通知等。 #### 四、OTA下载协议命令格式 **1. GET命令** - **请求定义**:客户端向服务器发送请求,获取特定资源。 - **响应定义...

    中国联通G网OTA业务组织管理指导意见

    - **情况一**: 当分公司自建有OTA下载平台和本地CP接入平台时,地方业务放置在本地OTA服务器上,全国业务通过总部服务器同步。 - **情况二**: 若仅具备本地CP接入平台,则所有业务均放置在全国OTA服务器上,并按省...

    OTA流程说明1

    在OTA流程中,客户端设备通过订阅特定的主题来接收固件更新通知,当有新的固件版本可用时,服务器会发布相应的消息。 5. **HTTP/HTTPS**:HyperText Transfer Protocol (HTTP) 和其安全版本 HTTPS 也是常见的固件...

    移动设备管理(MDM)与OMA OTA DM协议向导(三)——AAA服务器

    它确保了设备的安全性,同时允许IT管理员执行远程配置、数据同步、应用程序管理以及安全策略实施。在这个系列的第三部分,我们将深入探讨AAA服务器在MDM和Open Mobile Alliance (OMA) Over-the-Air (OTA) Device ...

    sim卡程序和应用OTA下载技术规范.pdf

    11. 与STK卡梦网短信业务荣单OTA上下载实现方案(V2.0.0)的兼容性。 12. 二期规划以及附录中的BIP承载组网和示意图。 此技术规范为中国移动通信集团开展SIM卡程序和应用OTA下载业务提供了技术依据,并确保了业务...

    Laravel开发-laravel-ota-distribution-ios

    Laravel项目会提供一个生成清单文件的功能,确保其与实际的iOS应用保持同步。 2. **创建HTML下载视图**:Laravel框架允许开发者创建自定义的视图来展示应用的下载页面。这个视图通常包含一个指向清单文件的链接,...

    STM32_OTA_Demo-master.zip

    8. **编程模型**:这个示例可能使用了FreeRTOS或μCOS-II等实时操作系统,提供多任务调度和同步机制,以支持复杂的OTA更新过程。 9. **调试工具**:开发过程中,可能使用J-Link、ST-Link等调试器进行程序的烧录和...

    otatool_newest_version.rar

    相比于增量升级(只更新部分改变的分区),整包升级虽然数据量大,但能确保设备完全与新的系统版本同步,避免了因增量更新可能导致的兼容性问题。otatool可以方便地处理这种类型的升级,无论是对于开发还是用户来说...

    行业文档-设计装置-OTA网站的用户填写信息的缓存方法及系统.zip

    为了提供高效、便捷的服务,OTA网站通常会采用缓存技术来优化用户填写信息的过程。本文档将详细探讨一种针对OTA网站的用户信息缓存方法及其系统设计,旨在提高用户交互效率,降低服务器负载,同时确保数据安全性和...

    FTP远程文件同步更新程序

    FTP远程文件同步更新程序的工作原理基于FTP协议,该协议定义了客户端与服务器之间的通信规范。在使用这种程序时,用户通常需要设置FTP服务器的地址、端口号、用户名和密码。一旦连接建立,程序会自动检测本地和远程...

    车载软件的OTA方案需求确认内容

    ### 车载软件的OTA方案需求确认内容 随着汽车行业的快速发展,车联网技术的应用日益广泛,其中OTA(Over-the-Air)技术作为一种重要的远程软件更新手段,在提高用户体验、降低成本方面发挥着重要作用。为了确保车载...

    教育科研-学习工具-OTA网站的用户填写信息的缓存方法及系统.zip

    在教育科研领域,学习工具的开发与应用是一个重要的分支,特别是在在线旅游代理(Online Travel Agency,简称OTA)网站上,优化用户体验是至关重要的。本文将深入探讨OTA网站中用户填写信息的缓存方法及其相关系统设计...

    电信设备-服务器、移动通信系统及其中的数据更新方法.zip

    这包括软件更新、配置更改、数据库同步以及安全补丁的应用。自动化的数据更新系统可以减少人工干预的需求,提高效率,同时降低错误发生的可能性。例如,OTA(Over-the-Air)技术允许通过无线网络对移动设备进行软件...

    SlothIOT:存放将使用OTA更新同步的ESP8266客户端文件的存储库

    SlothIOT是一个专为ESP8266微控制器设计的存储库,其核心功能是实现通过Over-the-Air(OTA)更新来同步客户端文件。本文将深入探讨SlothIOT的工作原理,以及如何利用Python进行相关的编程操作。 ESP8266是一款低...

    (源码)基于ESP8266微控制器的固件更新与验证系统.zip

    3. 固件自动检测与OTA更新: 通过HTTPS连接服务器,检测固件版本信息,并自动进行OTA更新。 4. 固件版本验证: 利用CICD(Continuous IntegrationContinuous Deployment)流程,确保JSON文件中指定的固件版本与二进制...

    (源码)基于ESP32的GIF播放智能显示系统.zip

    该系统支持多种叠加小部件,如时钟、天气预报等,并可通过Web服务器进行简单配置和OTA更新。 ## 项目的主要特性和功能 GIF动画播放支持流畅的GIF文件播放。 多重叠加小部件 时钟支持NTP时间同步。 天气预报对接...

Global site tag (gtag.js) - Google Analytics