12.8.2 更仔细地观察基础结构

Symbian操作系统的一个更详细的结构如图12-5所示。这个图基于图12-4的通用结构,原图中的层被细分为Symbian操作系统中使用的可操作单元。

阅读 ‧ 电子书库
图 12-5 Symbian操作系统中的通信设施具有一组丰富的功能

1.物理设备

首先需要注意的是,物理设备层没有变化。如我们之前所述,Symbian操作系统并不直接控制硬件。所以,它兼容所有符合该层的API设计的硬件,但不需指定硬件本身是如何设计和建造的。这一点对Symbian操作系统和其开发人员都有益处。通过将硬件看作抽象结构并通过这一抽象进行通信,Symbian操作系统的设计人员保证了Symbian操作系统可以广泛地兼容现有设备,同时适应未来的硬件。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

2.设备驱动层

如图12-5所示,设备驱动层被分为两层。如我们之前所述,PPD层通过硬件端口直接与硬件设备进行交互。而LDD层与协议实现层交互,实现了Symbian操作系统中与硬件相关的策略。这些策略包括输入输出缓冲、中断机制和流控制。

3.协议实现层

在图12-5中,协议实现层分为了若干子层。在协议实现层中使用了四种模块,列举在下面:

·CSY模块:协议实现层最底层是通信服务,即CSY模块。一个CSY模块直接通过设备驱动程序的PDD部分与硬件通信,实现了协议的许多底层特征。例如,一个协议可能需要向硬件设备传递原始数据,或者需要在传输过程中使用7位或8位的缓存。这些工作模式会被CSY模块处理。

·TSY模块:电话中包含了很大一部分通信基础结构,这些功能需要由特殊的模块来进行实现。电话服务(TSY)模块实现了这些功能。基本的TSY可能在很多的硬件上支持标准的TSY,例如拨打和切断电话。更高级的TSY模块可以支持更高级的硬件,比如支持GSM功能。

·PRT模块:协议实现层的核心模块是协议模块(PRT模块)。该模块由服务器用来实现具体的协议。一个服务器在试图使用协议的时候创建一个PRT模块的实例。例如,TCPIP.PRT模块中实现了TCP/IP相关的协议。蓝牙协议在BT.PRT模块中实现。

·MTM:由于Symbian操作系统被设计用来处理短信息,设计人员专门为处理的所有类型的短信息建立了相应的机制,而这些专门的模块称为信息类型模块(MTM模块)。短信息处理包括多个方面,MTM模块需要处理所有这些需求。用户界面类MTM模块需要实现多种供用户查看和处理短信息的方式,包括如何阅读短信息,如何被告知短信息发送进度等。客户端MTM模块处理寻址、创建、回复短信息;而服务器端MTM模块需要实现面向服务器的相关短信息管理功能,如目录管理、特定信息的管理等。

根据所使用通信类型的不同,这些模块以不同的方式彼此依赖。例如,实现使用蓝牙的协议,我们只需要物理器件上层的PRT模块即可。某些IrDA协议也是如此。而基于PPP的TCP/IP实现则需要使用PRT模块、TSY模块和CSY模块;不基于PPP的TCP/IP协议则不需要TSY模块和CSY模块,但是其PRT模块需要直接连接到网络设备驱动上。

4.结构模块化

基于模块化的思想在这样一个栈式的模型实现中是很有用的。在这个分层的设计中,从例子中可以看出,抽象带来的优势是很明显的。考虑TCP/IP协议的实现。一个PPP连接既可以直接使用CSY模块,也可以选择GSM或普通调制解调器的TSY实现,后者实际底层仍由CSY模块来实现。未来新的电话技术出现后,当前的结构仍然可以起作用,我们只需要为新的电话实现添加一个TSY模块。另外,细调TCP/IP协议栈不需要修改任何其依赖的模块,只需要简单地调整TCP/IP PRT模块。这样广泛的模块化意味着在已有结构上很容易添加新代码、丢弃旧代码,当前代码的修改不会对整个系统带来巨大的变化,也不需要大量的重新安装。

最后,图12-5在应用层添加了子层。应用程序通过CSY模块和协议实现层中的协议模块进行交互。虽然我们可以认为这些模块属于协议实现层的一部分,但更清晰的表示是,这些模块在协助应用程序进行操作。例如,在使用红外接口将短信息发送到手机的过程中,应用程序会在应用程序中使用IRCOMM CSY模块,通过协议实现层的短信息实现模块来完成。同样,在这样一个过程中,模块化带来了很大的优势,应用程序可以关注实现其擅长的功能,而不是通信过程。