资源预览内容
第1页 / 共78页
第2页 / 共78页
第3页 / 共78页
第4页 / 共78页
第5页 / 共78页
第6页 / 共78页
第7页 / 共78页
第8页 / 共78页
第9页 / 共78页
第10页 / 共78页
亲,该文档总共78页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第十二章Comms和消息传送 1完成本章内容之后我们将能够:掌握Symbian OS 的通讯架构了解多媒体短信业务(MMS)本 章 目 标2本章概述了Symbian OS提供的comms工具, 并详细研究了用于消息传送,特别是用于发 送和接收多媒体消息(MMS)的API。3概述Symbian OS上的comms开发可从3个主要方面考 虑: l 开发与通信硬件(比如串口或电话硬件)对话的 驱动程序。这一类型的开发在手机生产时由手机 开发商承担。Symbian提供与某些特定的基准硬 件(如Intel Lubbock板)一起工作的驱动程序 ,它可用于开发其中的真正手机硬件和驱动程序 。 l 开发协议实现,如用于访问Web的HTTP实现,或 用于红外线协议的红外线。手机开发者和第三方 可以开发协议实现,并扩充到Symbian OS已经提 供的部分中。4概述l 开发使用有效协议的应用程序:手机开发者提供 具有基本通信应用程序的手机,如电话和消息传 送等应用程序。不过,很多领域中的应用程序可 以受益于与通信的集成,其中包括游戏它可 以通过多玩家通过本地通信协议(如蓝牙)或通 过2.5G电话网络上的包数据进行比赛,从而实现 交互。 企业应用与专用应用程序服务器通信。5概述通信组 目前可用的通信组件包括: l串行通信框架。 l套接字框架。 l电话框架。 lTCP/IP栈。 l蓝牙栈。 l红外线栈。 lSMS和EMS栈。 6概述l WAP栈。 l HTTP传输框架。 l Telnet和FTP引擎。 l 消息协议支持,包括MMS、SMTP、POP3和IMAP4。这些组件提供了应用程序可访问的API。 7概述Comms及平台如同其他领域的Symbian OS开发,在进行comms 相关的工作时,需要了解什么是Symbian OS提供 的,什么是UI平台增加的,比如Series 60和UIQ 。基本原则是:Symbian OS提供实现特定通信协 议的引擎组件,并向这些引擎公布API;UI平台 提供使用这些引擎的应用程序。例如,Symbian OS提供了实现因特网电子邮件协议的组件,而 UIQ和Series 60提供允许用户发送和接收电子邮 件的消息传送应用程序。8OS Comms架构要理解Symbian OS的comms,需要理解所提供通用框 架和插入这些框架的特定协议的实现。本节首先 从框架着手。每种关键框架都使用了Symbian OS 的客户端服务器架构。在这种架构中,后台运 行的程序(服务器)为其他多个程序(客户)提 供服务。当手机上的多个客户程序需要访问一些 公共资源时,会选择这种方案。服务器的任务是 控制对资源的访问。对于底层的comms服务器, 所讨论的资源可能是一个硬件资源,比如串口。 资源也可以是共享的数据,比如消息的存储。9尽管框架通常具有服务器本身之外的其他要素 ,如实用工具类的库,但提到整个框架时,通常 还是简称为服务器。某些情况下,API使得客户 端服务器架构的运用变得显而易见。例如,使 用电话功能时,基本的任务就是创建一个 RTelServer对象,它提供与电话服务器的初始连接 (Symbian OS约定就是和RTelServer类似的API 类,它用于访问以R开头的服务器)。如消 息等其他API,提供广泛的客户端类,从客户程 序中隐藏了客户端服务器接口的直接使用。OS Comms架构10核心服务器如下: l 套接字:利用TCP/IP等协议,提供可寻址端点之 间的通信。自Symbian OS的第一版起,即成为它 的一部分,7.0增加了一个新的API,用于创建和 管理连接。 l 串行comms:提供简单串行连接之上的通信,如 用于处理RS232。 l 消息传送:利用因特网电于邮件和SMS这类协议 ,提供消息的发送、检索和存储。 l 电话:提供电话呼叫及服务的控制,以及对电话 功能配置的控制。 OS Comms架构11套接字套接字的概念首次出现于加州大学伯克利分校 的Unix伯克利软件发行中心(BSD),它是以C语言 写的一个API。自此之后,套接字常见于很多操 作系统和语言中。 套接字代表一个通信“信 道”的逻辑端点。它是物理机器的网络地址和逻 辑端口号的组合,另一个套接字可以给它传输数 据。 因为套接字由机器地址和端口号确定, 所以在一个特定的计算机网络中,每个套接字是 惟一标识的。这就允许应用程序惟一地识别网络 中与其通信的另一位置。OS Comms架构12套接字通常用于在运行因特网协议(IP)的网络 上进行通信。这时机器地址就是一个IP地址,端 口将指定一些因特网应用程序,如Web或FTP。与其他操作系统的套接字相比,Symbian OS实 现的套接字有两个主要不同: l 套接字可用于访问多种协议,而不仅访问TCP/IP 。其中包括蓝牙协议L2CAP和 RFCOMM,以及 红外线协议IrDA、IrTinyTP和IrMUX。 l API用C+编写,与传统的BSD C API不同。如果 考虑必须使用C API,例如向其他操作系统移植 代码时,可以考虑Symbian OS的C标准库 (STDLIB)实现中可使用的C API。 OS Comms架构13用于套接字的Symbian OS C+ API是套接字客 户API,发布在头文件es_sock.h和库文件 esock.dll中。与套接字服务器的客户接口由 RSocketServ提供,套接字本身由RSocket封 装。套接字的客户API异步调用套接字服务器, 它协调客户端访问套接字服务,并管理与协议模 块的通信,这些协议模块提供了对特定网络协议 的支持。协议模块是插件DLL,服务器根据需要 进行加载和卸载。OS Comms架构14除与套接字连接,并读写数据外,API还提供了 对其他工具的访问: l 主机名解析(RHostResolver):一些网络类型能 够在适合于给最终用户显示的符号主机地址与协 议内部使用的数字地址之间转换。在TCP/IP中, 主机名解析服务就是域名服务(DNS)。对于蓝牙 和红外线,解析接口可用于发现其他哪些设备在 范围内,并可使用这些协议进行通信。通过 RHostResolver对象产生的查询打包在 TNameEntry描述符中,它保存了包含主机名和地 址的TNameRecord对象。 OS Comms架构15l 协议信息(TProtocolDesc):可以查询手机上支 持哪些套接字协议,并可以得到每个协议的信息 ,比如协议名称和用于表明其性能的标志。 l 套接字API还提供了下述功能,它们可能用得比 较少: l 网络数据库访问(RNetDatabase):用于访问关于 设备的数据库。对于红外线,存在IrDA信息访问 服务(IAS)这种服务。它与TCP/IP或蓝牙没有关 联。 l 服务解析(RServiceResolver):用于查询远程设 备的性能,也就是说,该设备在相应的协议上可 以提供什么服务。它不是为了TCP/IP、蓝牙或红 外线而实现的。蓝牙标准中有种服务,即蓝牙 业务搜寻协议(SDP),但是Symbian OS蓝牙设备 没有为此使用套接字API,因为它有自己专门的 SDP API。 OS Comms架构16在Symbian OS V7.0s以前的版本中,如何构 建网络连接以实现套接字请求,套接字客户 API的调用者不必关心。 连接是隐式建立的,举例如下。例如,应用程序请求与某个远程地址的TCP套 接字。与管理网络接口(NIFMAN)相关的 Symbian OS组件检查没有已存在的网络连接。 它就读取通信设置项数据库(CommDb), 了解怎样建立连接。例如,设置项可以指定拨 号连接到某个服务提供商(ISP)。调用能够完 成拨号的其他组件,并利用适当的协议(如 PPP)连接到ISP。建立连接的所需设置,如 ISP的电话号码和登录信息,也保存在通信数 据库中。OS Comms架构17诸如W-CDMA和最新版本的GPRS等技术都可以 在一个连接中建立多个子连接。这在v7.0s中 是由连接管理接口RConnection来支持的。它 向客户提供创建、配置和监视连接与子连接的 功能。OS Comms架构18串行通信串行通信比套接字要简单一些。数据从手机的 一个端口简单地写入和读取,而不需要连接许多 可能的设备及其服务。习惯上,当Symbian OS设 备通过一根电缆或红外线连接到PC进行同步,或 连接到外部调制解调器,此时使用这种方式。与套接字类似,Symbian OS串行comms的实现使 用了一个服务器,它可以加载插件模块来处理特 定的通信协议。这些插件模块称做CSY模块,它 们被串行通信服务器加载,客户应用程序不能直 接访问。OS Comms架构19Symbian OS手机可能包括许多CSY模块作为标 准配置,比如用于处理RS232和红外线串口通 信的模块。串口协议模块API允许开发新的CSY 模块。 通过服务器会话类RCommServ,可 以找到手机上可用的串口以及它们的协议。一 旦选定了要用的端口,就可以通过串口接口 RComm访问它。该类用于读、写、配置、设置 中断条件和得到端口状态信息。OS Comms架构20通常,使用端口前,要先设置其配置。这包 括设置数据速率、奇偶类型和握手控制等。这 些设置保存在一个TCommConfigV01类型的串口 配置块中。在配置串口前,可以先检查它的性 能,以保证所需配置是可行的。该串口的性能 由一个TCommCapsV01类型的对象进行封装。OS Comms架构21消息传送Symbian OS的消息传送组件为多协议消息传送 提供了一个框架,并且支持特定的消息传送协议 。消息传送为建立高性能消息客户应用程序以及 创建用于支持个别消息传送协议的插件模块提供 了可能。建立这种插件模块的组件集合叫做消息 类型模块(MTM)。与底层通信协议(如TCP/IP) 的所有交互均由MTM完成。OS Comms架构22消息传送架构提供了一些基类,这些基类定 义了用于MTM实现的组件接口。利用基类按口 ,允许客户应用程序发现并动态使用可用的消 息传送协议。 协议提供者为他们的MTM实 现开发新库。这些实现在协议需要时访问底层 通信库。OS Comms架构23消息服务器消息服务器控制对消息数据的访问,并将协 议相关的请求委托给服务器端MTM。由服务器 保存的每条消息部有一个TMsvId类型的整型 标识符。一条消息的状态(例如是否可读或不 可读)和一些常规属性对大多数消息是公用的 ,如日期和主题保存在头部数据对象中,需要 通过TMsvEntry类访问。消息还可以具有: l 一个文件存储:保存消息正文文本、协议相关 的数据:它由CMsvStore类封装。 l 一个目录:可存放相关文件(如消息附件)OS Comms架构24总体上,消息从ID、头部、存储和文件目录 ,都可以访问和操作,并由CMsvEntry封装。除消息本身之外,服务器还保存代表服务和文 件夹的记录。一个服务就是一个收集设置信息 的有用抽象。例如 SMTP,服务将为邮件帐户指定设置。文件夹保存 记录组(消息和其他文件夹)。其中某些文件 夹,如收件箱和草稿箱,总是存在并且在消息 服务器首次启动时创建。用户也可以创建自己 的文件夹。消息以树形结构保存,与文件系统的目录树 形式类似。树中的每条记录代表一个服务、消 息文件夹或消息部分。图8-1给出了一个实例 。OS Comms架构25OS Comms架构图8-1 消息存储26树可以分解为三级: l 根记录:只是用来表示将树结构捆绑在一起。 l 服务记录:有一个本地服务,在它下面保存文件 夹和消息,还有零或多个远程服务。远程服务代 表消息账号。 l 消息和文件夹记录:本地服务下的消息和文件夹 代表存储在设备上的消息。远程服务下的消息和 文件夹代表远程服务器上存在的消息在本地的副 本。例如,在POP3电子邮件服务下面,会有POP3 电子邮件服务器上
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号