基于Windows平台的开放和智能的蓝牙系统结构

注:这篇文章是我在2004年起草,2005年作为作业提交给老师的。并没有在公开刊物上发表过。今天就发表在这里,也算是个存档吧

摘要

前言:蓝牙,作为一种实质是电缆替代的解决方案,将会给未来的生活带来更多的方便。但在目前,蓝牙仍然是一种没有得到充分利用的技术,仍然没有得到广泛应用,但它的未来是光明的。。蓝牙如何真正走入百姓家呢?本文从技术实现的角度,讨论蓝牙技术如何与个人计算机系统如何紧密结合,给人们生活带来方便。

1. 引言

据报道[1],2005年是蓝牙技术发展的关键一年。IDC的统计数字表明,2004年全球发运的手机中,约有13%都采用了蓝牙连接技术;而到2008年,这个百分比将超过53%。在汽车市场,ABI Research预计2008年将有超过2200万辆汽车采用蓝牙技术,这一数字占据了全球16%的汽车市场。在中国,蓝牙市场的发展同样速度惊人。有关专家预测,蓝牙技术更适合在中国这样人口密集、商业济活动集中的国家发展。目前中国有2亿多个家庭,近1.5亿台电视,3000多万台电脑,固定电话用户超过2.5亿,网民数量超过7900万;可以预测中国的个人网络终端市场是巨大的,蓝牙技术在中国有着广阔的市场前景。

个人计算机上需要蓝牙吗?普通大众的观点是蓝牙传输速率太低,在无线传输技术中无法与无线局域网相竞争,而比起有限电缆而根本就无法匹敌。作为电缆替代,这似乎是致命的缺点。但实质上,由于很多设备都是依附于PC而增加其附加值的,而蓝牙便是一种简单有效的通讯方案。比如说很多手持设备都需要在PC上做备份,同时,手持设备许多功能也要和PC的应用相结合。总之,PC越来越像一个重型的装备(服务器)而手持设备及其它智能信息家电[2]却像一个轻巧的工具(终端)――它们之间的通讯便靠廉价高效的蓝牙方案来解决。

现在的问题便是:

蓝牙如何和这些种类繁多,功能多样的设备如何智能的结合从而形成统一的界面而让用户容易使用?举例来说,如何在同一个界面里既可提供使用蓝牙开关电灯的简单功能又可以让你的手持设备和PC进行同步的功能?

蓝牙如何真正的支持“智能信息家电”?比如说,怎样支持那种通过网络或手机等远程访问终端来访问家里的控制系统,然后在下班之前远程发出“开空调”的指令,好让用户在回家之后便有一个舒适的温度环境?

本文中所谓的开放性便是指如何满足不同应用程序使用蓝牙接口的需要以及如何满足不同类型蓝牙设备对蓝牙服务需求的多样性需要;而智能性则保证了用户的易用性和界面友好性。

为了行文简单,本文中的蓝牙系统均指在Windows平台下的实现,对于其它操作系统应该没有本质性区别但不做讨论。

2. 新型的蓝牙服务系统结构

目前市场流行的在Windows上运行蓝牙系统主要有微软在Windows XP sp1上所带的蓝牙组件[3], WidCom公司的蓝牙管理器[4],IVT公司的BlueSoleil[5]。但这些软件的结构是面向连接的系统结构,大致系统结构为:


图1Windows XP(SP1)中蓝牙协议
应用方案的系统结构[6]

图2 WIDCOM在Windows上的蓝牙应用方案的系统结构[7]

这两个公司都将蓝牙协议栈及部分的蓝牙Profile在内核态实现了。但总的来说,可以抽象成如下图的结构,在这儿称作传统的蓝牙服务系统结构:

图3传统的蓝牙服务系统结构

传统的蓝牙服务系统结构是面向连接的。即现有蓝牙系统结构设计的目标主要是管理蓝牙的连接,所以其软件系统结构比较简单和单一,其实现实质上是纯蓝牙协议的实现,甚至很多软件的蓝牙服务实现和服务管理实现都是合并在一起的。

这样做的优点是它保持纯洁性,对于所有设备都一致对待,把所有的蓝牙认为都归纳成“查找服务”,“认证”,“连接”,“断开”,“提供服务”等几个任务。

缺点便是没有智能,是一种“傻”电缆,不能适应不同应用软件的需要,不能适应不同设备的需要,对于用户来说不易理解,不易使用。比如说,它对于不同手持设备,它只能知道其提供的服务,如果用户要做基于服务的应用,则先要求用户先连接蓝牙,其次才能使用这个应用。还有,某些应用需要做特殊的要求比如说连接计算机A的蓝牙特定虚拟串口号而现有的蓝牙管理软件就无法完成这种指定而只能按照现有的蓝牙协议顺序分配串口号,这当然不能满足用户的需要。

而本文所提出的新型蓝牙系统结构则完全在不改变蓝牙协议并且传统蓝牙系统结构的只要稍稍改变便能使用的条件下,解决了上述问题,实现开放和智能两个目标。如下图所示:

图4新型的蓝牙服务系统结构

整个系统结构仍采用分层设计。层次设计的优点[8]便是:

  1. 开发者不用了解整个系统的功能就可以理解和使用这个层;如上层应用程序可以不了解蓝牙各个协议就可以使用蓝牙接口。
  2. 整个层可以使用别的实现来代替而不影响系统的整体功能;如可以使用一个C++模块实现的蓝牙智能通讯管理层来代替原先用C实现的该层而不影响系统功能。
  3. 可以降低系统各个模块的依赖性;
  4. 每个层都可以方便的标准化。比如说蓝牙命令(接口)服务层可以设计一套标准的命令格式,而蓝牙智能通讯管理层可以设计一套通用的蓝牙会话语言,如使用SOAP和XML结合的通讯协议。
  5. 每个层都可以方便的重用,即在每个层之上都可以开发各种应用。

整个Bluetooth的服务分为5层,其中各层的具体功能为:

  • 蓝牙命令(接口)服务层:负责应用程序和管理GUI的各种使用请求和将结果以不同形式发送给调用者。比如说,它可以解析命令行格式的命令,也可以支持RPC调用,也可以支持COM调用及其他类型的接口。
  • 蓝牙智能通讯管理层:负责不同机器之间的蓝牙系统的通讯。这样可以支持一种高层的蓝牙交流。比如使用一个蓝牙串口连接,可以将某些需求通过这种方式显示的告知被连接者,从而达到更智能的效果。例如那种串口特定串口号连接的需求就可以迎刃而解。对方使用串口服务究竟是进行同步服务还是使用AT指令对计算机操控的需求也可以明确表达。这是蓝牙“智能”的核心。
  • 蓝牙连接管理层:管理蓝牙的所有连接,是蓝牙系统的逻辑实现部分。
  • 蓝牙协议栈:传统的蓝牙协议栈及应用模型实现。
  • 蓝牙底层驱动:包括射频设备驱动及其它虚拟驱动程序。

当然,层次设计也有其缺点:即层次有时不能明确划分,另外分层太多会影响系统运行性能。为了避免这个缺点,所以上面的蓝牙命令(接口)服务层可能直接会和蓝牙连接管理层交互而不调用蓝牙智能通讯管理层。

3. 新型的蓝牙配置管理界面系统结构

和以往蓝牙配置管理界面(简称GUI)结构不同的是,新型的配置管理界面与蓝牙服务完全分开。也就是说用户不用启动GUI就可以使用蓝牙服务。更重要的是,新型的GUI可以区别不同的设备而做个性化服务。比如说,新型GUI可以识别连接的蓝牙设备是手机的那种型号,根据不同的型号可以提供不同的服务。还比如,对方的智能手机通过蓝牙智能通讯管理层告诉它要使用这个计算机的某种服务,新型GUI可以经过用户允许后打开此服务。

为实现这些需求,新型GUI系统结构如下:

图5新型蓝牙控制界面

新型结构主要包括传统的那些配置界面以及可以扩展的设备相关的插件。插件可以更有针对性的提供更为明确的服务。加之底层的蓝牙智能通讯模块,可以提供开放和智能的特性。

4. 新型蓝牙应用模型

如下图所示,不同设备之间可以通过蓝牙智能通讯模块做高级交流;整个蓝牙服务提供各种形式的蓝牙服务:包括传统的应用程序,命令行管理,使用RPC或COM的蓝牙二次开放程序。

图6两个蓝牙服务通讯示意图

举例来说:

对于普通的应用程序,由于蓝牙服务提供了虚拟的电缆连接,它们可以在其上正常工作。这也就是传统蓝牙服务提供的功能。

蓝牙服务提供了命令行支持,同时将结果返回给终端。这可以帮助蓝牙服务测试自动化。

对于依赖于蓝牙服务的应用程序,它们可以使用蓝牙服务提供的RPC或COM接口。

用户通过手机或网络浏览器来使用蓝牙服务接口。

而所有的蓝牙参数配置和环境设置,都可以通过蓝牙控制面板来完成。

对于蓝牙如何智能的工作,特举以下三例:

  • A)用户要将机器A蓝牙的虚拟串口3和机器B的蓝牙虚拟串口5相连:

    在传统条件下,客户端不能选择服务端的串口号。而现在有了蓝牙智能通讯层,便可以达到这个目的。显然的,在做连接之前,机器A和机器B的蓝牙智能通讯层会建立一个蓝牙链路(如一个统一规定的虚拟串口连接),两个蓝牙服务因此具备对话的条件;其次,双方通过统一的语言交互从而知道对方的需求;第三,双方依据需求建立真正的蓝牙连接。
  • B) 智能手机现在要建立一个虚拟串口连接,用来做通过手机控制计算机的应用而不是同步应用:

    在传统条件下,计算机端是不能区别这两种应用的。但现在智能手机服务先通过蓝牙智能通讯层告诉目标计算机当前要做的是手机控制计算机应用。所以计算机开启手机控制计算机应用服务而不是同步服务,监听特定端口,从而完成任务。
  • C) 用户家里装有蓝牙控制的监视系统,他现在要通过PC打开它;他还要将他的普通的蓝牙手机上的通讯录在PC上备份;还有一个现代的智能手机,这个智能手机需要PC上运行一个特殊的插件(非蓝牙应用的插件)才能使用某一个功能;还有一个具有智能通讯的电冰箱(信息家电)请求使用因特网服务;面对这些应用,新型蓝牙服务如何分别针对这些设备做出具体的响应?

首先要说明的是,新型的蓝牙服务控制面板提供了针对不同设备的插件,所以是可以扩展的。现在的问题便是如何智能安装这些插件了,而这可以通过蓝牙服务的智能通讯层来完成。所以,当用户从新型的蓝牙服务控制面板选择了蓝牙控制监视系统图标后,界面自动装载蓝牙控制监视系统插件,让用户进行操作;同样的,这样的方式可以完成蓝牙手机的备份通讯录的工作;由于智能手机本身就可以下载插件,所以它只要将这个插件通过蓝牙传入PC,并且通过蓝牙智能通讯层控制PC并装载该插件,最后完成任务;对于智能通讯的冰箱则通过蓝牙通讯层请求PC提供网络访问服务,然后使用蓝牙的LAP或PAN连接完成任务。

5. 总结

本文主要讨论了传统蓝牙应用方案的系统结构模型的优缺点,并针对其缺点提出了一个基于分层的服务模型。通过添加智能通讯层而解决了两个蓝牙服务的“傻电缆”缺点。并且,通过插件技术,来克服使用场景,用途多变而且日益增多的蓝牙设备与在Windows平台下的蓝牙服务通讯问题。从而给出一个提高蓝牙可用性,易用性方案,也是蓝牙服务更加易于维护,易于开发。

 

6. 参考文献

[1] 解放网北京讯,蓝牙联盟协助中国研发国标,http://www.jfdaily.com/gb/node2/node142/node15312/userobject1ai843999.html

[2] DHWG (Digital Home Working Group), http://www.dhwg.org/

[3] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bluetooth/bluetooth/bluetooth_start_page.asp

[4]http://www.broadcom.com/products/Bluetooth/Bluetooth+RF+Silicon+and+Software+Solutions/BCM1000-BTW

[5]http://www.bluesoleil.com

[6] Andy Glass, Bluetooth PC Stacks, Bluetooth Developers Conference, December 11, 2001

[7] WidCom.inc, Bluetooth for Windows DK API Reference Guide, March 15, 2002

[8] (英)Ian Sommerville ,Software Engineering 6th,机械工业出版社,图字:01-2003-1010 Patterns of Enterprise Application Architecture,Martin Fowler等,Addison Wesley,November 05, 2002

 

【作者: Goooder】


转载于:https://www.cnblogs.com/goooder/archive/2006/04/04/366764.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值