




已阅读5页,还剩57页未读, 继续免费阅读
(计算机软件与理论专业论文)windows平台上通信软件的设计原理与实践.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 win d o w s操作系统为开发计算机一电话集成通信应用程序提供 了 稳定而健壮的平台 和丰 富的 应用程序接口 。以t a p i ( 电 话 应用程序接口 ) 为 核心, 结 合m a p i ( 消息 应用程序 接口 ) ,s a p i ( 语音 应用 程序接口 ) , 多 媒 体a p i 等等, 用户可以方 便地开发出 性能丰富, 易于使用的通信软件。 本文由 分析win d o w s 的通信体系结构开始, 由于其组成模块都以wo s a ( 即w in d o w s 开放式服务 体系 ) 模型 为基础, 接下 来我 们详细讨论了w o s a模型。然后分别阐述了 t a p i、 ma p i 、以及 s a p i 的实现原理和工作方式。最后, 结合我们的实际工作 ,介绍 了一个个人通信助理软件的设计和实现。 另外, 在即将随同wi n d o w s n t 5 .0 一起发布的t a p i 3 .0 是 一 个革命性的应用程序接 口,具有许多新特性。其中最重要的一点是集成了.l p 电话技术,对此我们也作了介绍。 关键 词:w in o d w s 开放 服务 体系 ( w o s a ) , 电 话 应用程 序接口 ( t a p d , 消息 应用程序接口 ( m a p i ) , 语 音 应用 程序 接口 ( s a p i ) , 计 算 机与电 话集 成 ( c t i ) ab s t r a c t c o m m u n i c a t i o n s p r o g r a m mi n g o n t h e wi n d o w s p l a t f o r m :p r i n c i p l e s a n d p r a c t i c e c o m p u t e r a n d t e le c o m m u n ic a t i o n s in d u s t r i e s a r e t e c h n o l o g ic a l l y c o n v e r g i n g . t h e o p e n s t a n d a r d s o f t h e wi n d o w s p l a t f o r m a n d t a p i p r o v i d e a r ic h f o u n d a t i o n u p o n w h i c h t h e c t i ( c o m p u t e r - t e l e p h o n y i n t e g r a t i o n ) in d u s t ry c a n b u i ld . c o m p l e m e n t in g t a p i i s a p o w e r f u l c o l l e c t i o n o f o t h e r wi n d o w s a p i s a n d wi n 3 2 f u n c t i o n s i n c l u d i n g t h e me s s a g i n g a p i ( ma p i ) , t h e s p e e c h a p i ( s a p i ) , a n d c o m m u n i c a t i o n , wa v e a u d i o , a n d me d i a c o n t r o l i n t e r f a c e ( m c i ) f u n c t io n s . t h i s t h e s i s d i s c u s s e s t h e m a i n win d o w s c o m m n u c a t i o n c o m p o n e n t s i n d e t a i l , i n c l u d i n g t a p i , m a p i , s a p i , e t c . i t s e m p h a s i s i s t o d e m o n s t r a t e h o w t o i n t e g r a t e a ll t h e c o m m p o n e n t s t o g e t h e r t o c o n s t r u c t c o m m n u n i c a t i o n s o ft w a r e k e y w o r d s : wo s 戌 t a p i , ma p i , s a m, c t i 第二章 win d o w s 开放服务体系 ( w o s a ) 2 . 1 wo s a是什么? w i n d o w s 开放服务体系结构是m i c r o s o ft 为实现“ 信息 就在你指尖( i n f o r m a t i o n a t y o u r f in g e r t ip s ) ”而 提出的 体系 结构w o s a 为企业计 算 环境提供了 一 个单 一的系 统级的接口, 它对终端用户和开发人员隐藏了异种环境的复杂性。 利用wo s a接口, win d o w s 应用程序不再需要为任何一种所使用的网络类型、计算机类型和后台服务类 型而包含特定的代码 , 就能无遗漏地访问信息。其结果是,即使网络、计算机或后台 服务发生变化, 应用程序仍不必修改, 换句话说 ,wo s a使 wi n d o w s 应用程序能够 在多种计算环境中连接所有的服务。 wo s a的关键要点是设计一种方式, 通过这种方式获得wi n d o w s 操作系统的扩展 服务, 而操作系 统仅需了 解该服 务的最少量的 信息。 比 如, 利用m a p i ( m e s s a g i n g a p i , 即 消息a p i ) 模型, 开 发人员可以 抛开实现于 各种w in d o w s 平台 之上的 消息系 统 所包含 的硬件和软件的繁琐细节, 而专注于利用这些服务设计应用程序。 wo s a模型不仅仅是提供了以一种单一的方式获取wi n d o w s 操作系统的扩展服务 的 途径w o s a还可以 在多操作系 统环境下z 作比 如,m ic r o s o ft r p c ( r e m o t e p r o c e d u r e c a l l , 即远程过程调用) 接口 是一种wo s a 服务, 它支持和其它的与o s f / d c e r r c兼容的系统互操作的能力, 而不必考虑对方位于何种操作系统之上。 为实现这种灵活性,wo s a模型定义了两类截然不同的接口: 客户a p i 和服务器 s p i ( s e r v i c e p r o v i d e r i n t e r f a c e , 服务提供者接口 ) 。 它们由一个可以同时与a p i 和s p i 应 用程序通信的单一的接口 模块连接在一起。这样, 所有的客户端应用程序需要做的就 是遵循统一的 a p i 规范;而所有的服务器端应用程序需要做的就是遵循统一的 s p i 规 范。无论客户端和服务器端程序如何变化, 只要它们继续遵循 a p u s p i 模型并使用通 用的接口,二者就能协调一致地工作。 f 面我们将详细讨论wo s a模型并给出一些现有的wo s a服务的实例口 2 . 2 wo s a模型 wo s a模型由三部分不同的模块组成。每个模块各自 独立,而都至关重要, 并且 协同工作为应用程序提供服务。这三个 wo s a组件是: . 客户 a p t: 应用程序接口, 应用程序通过它提出服务请求。 . 服务器s p i : 服务提 供者接口, 通过它提供扩展的 服 务( 比 如, 电子邮 件、 电话、 语 音服务等) 。 . a p u s p i 接口:连接 a p i 和 s p i 的单 一 模块。在 wi n d o w s 环境下通常以d l l的形 式存在 。 这样,a p i 调用和s p i 分离, 从而避免了由于将来可能的因客户或服务器端的变 化所带来的负面影响。 2 .2 . 2 服务器s p i 响应服务请求 服务器 s p i 接受服务请求并针对请求作出相应的处理。s p i 并非直接与客户端应 用程序交互。大多数的 s p i 服务位于网络服务器上,或作为桌面 p c机 r 的独立服务 运行。用户几乎从不与这些服务提供者直接打交道,除非提通过客户端服务请求。 s p i 的一个 优秀 实例是o d b c ( o p e n d a t a b a s e c o n n e c t iv i t y , 即开放数据库互连 ) 接 口 。 尽管程 序员 在 程序中 利用a p i 调用( 或者某些要求o d b c 服务的其它方法 ) , 这些 调用只是同一个外部程序请求服务。比 如,o d b c向m i c r o s o ft s q l s e r v e r 的调用, 仅是要求s q l s e r v e r 去执行一些数据库操作, 然后将结果返回 给客户端应用程序。当 向s q l s e r v e r 发出。 d b c 请求时, 客 户端实际上 并没有 执行 任何数据库操作。 实际的 数据库工作是由s q l s e rv e : 来完 成的 。 在前面我们已经提到 ,服务提供者很少会把接口直接暴露给客户端应用程序。它 们的工作是响应服务请求。 这些请求甚至不是直接来自客户端应用程序。 在wo s a模 型中, 所有的请求均直接来自d l l接口,s p i 只与接口d l l直接通话。所有s p i 要 提供的针对服务请求的信息均发往接口d l l。 而把这些信息向上发送给客户端应用的 任务是由接口d l l来完成的。 还有一点非常重要, 就是wo s a模型的服务提供部分允许多个客户请求服务。 d l l接口通知 s p i 是哪个客户发出了服务请求。s p i 必须具备处理来自同个, 或多个用户的服务请求的能力。 2 . 3 接口d l l与a p i 和 s p i 通话 由于wo s a模型的设计要点之一是客户a p i 和服务器 s p i 的分离, 在这两个模块 之间 需要 一 个单 一 的 接口 。 这 个 单 一的 接口 通常以w in d o w s 动 态连 接库 ( d l l ) 的方 式 实现。 d l l可以使应用程序在运行时刻, 而不是在编译时刻与存在的服务获得连接。 使用 d l l的优越之处, 是程序在编译时刻不必对接口的一切都很清楚。 这样, 程序员 可以对d l l模块进行更新,而不必重新编译使用接口的应用程序。 接口d l l的重要职责是对客户 a p i 的服务请求和服务器 s p i 的服务响应作出解 析。d l l实际上并不为客户程序提供任何实际的服务,同时, 也不向 s p i 发出请求。 ( 实际上, 接口d l l在启动时会向 底 层的s p i 服务提出一些基本的服务请求, 比如某 项服务是否 存在, 以 及其他满足客户端服务请求所需的 信息 ) 。 接口d l l是wi n d o w s 环境下唯一的即与 “a p i ” 又与 ,s p i ” 交互的应用。d l l 的任务就在于充当客户和服务器之间的翻译。 在过去 ( w o s a之 前),这些d l l 充当 的是 客户a p i 与某 个特定的后台 服务 器 直接 通话的翻译。 换句话说, 每个接口d l l只懂得如何向一个特定的后台服务通话。 比如, 早期的ma p i 接口, 它的实现方法是, 为每种类型的ma n 服务都提供 了 相应的d l l o 如 果 一 个 程序 要与m ic r o s o ft m a p i 服 务 提 供者 通 话,m a p i .d ll 将作为 客 户和 服 务器 之 问的接口 。 然而, 如果这个程序需要与其它的消息服务提供者( 比如u n iv e r s a l c o m m o n m e s s a g e c a l l s ( c m c ) ) 通话 , 就必须 使用另外一 个接口d l l , 以 用来 连接客户 端的 服务 请 求和后台的服务提供者。 而在wo s a模型中, 接口d l l可以与遵循s p i 调用规范的任何服务提供者通话。 这点非常重要。 现在, 一个单独的接口d l l可以被多个不同的服务所利用。 这个单 独的接口d l l能够将客户应用程序与任意厂家的任何版本的服务提供者连接起来。 而 实现这一点的关键在于,所有的服务提供者都使用 s p i 而不是某个特定的接口规范。 2 . 4 wo s a服务 目前,有三种类型的wo s a服务。它们是: . 通用应用程序服务。 . 通信服务。 . 垂直市场服务。 2 .4 . 1 通用应用程序服务 通用应用程序服务使应用程序获取多个生产商提供的服务。 这类wo s a服务集中 于为所有的w in d o w s 应用程序提 供一个 统一的 接口, 而 程序员 ( 及 用户) 可以 选择 最适 合自己需要的生产商所提供的产品。这类服务的例子有: * l i c e n s e s e r v i c e a p p l ic a t i o n i n t e r f a c e : 提供软件许可管理服务接口。 . 消息 应用程序接口 ( m a p d : 提供电 子邮 件服务和 其它消息 服务 接口 。 . 开放 数 据互 连 ( o d b c ) : 提供 数 据 库 服 务接口 。 . 语音应用程序接口 ( s a p d : 提供语音识别 服务接口 。 . 电话应用程序接口 ( t a p i )提供电 话服务 接口 2 . 4 . 2通信服务 通信服务提供了网络服务接口。 通过在p c和下层网络之间定义一个统一的接口, win d o w s 应用程序可以与任何遵从wo s a模型的网络操作系统交互。 下面是一些通信 服务的实例: . wi n d o w s s n a应用程序接口:提供 i b m s n a服务接口。 . w in d o w s 套 接口 ( w i n d o w s s o c k e t s ) : 提供了 支持多 种网 络 协议的网 络 服务 接 口, 包括t c p / i p 、i p x / s p x、以 及a p p l e t a l k 等。 . mi c r o s o ft r p c: 提供远程过程调用接口。mi c r o s o ft r p c与o s f / d c e模型兼 容。 2 .4 . 3 垂直市场服务 该类wo s a服务为某一特定市场内常用的资源定义了访问接口。目 前, 主要有两 类垂直市场服务: o wo s a金融服务扩 一 展: 提供银行工业通用服务接口。 o wo s a实时市场数据扩展: 提供证券、股票等实时市场数据的访问接口。 2 . 5 wo s a模型的优点 wo s a模型为终端用户和开发人员提供了许多好处 , 在这儿我们卞要谈二点。 分离开发 实际上,wo s a模型的所有好处都在于服务提供者的细节与客户端应用程序的分 离。客户端应用程序的开发人员可以将服务器端的开发留给别人去做。而只要服务提 供者遵循wo s a的兼容性原则, 客户端应用程序就可以使用新的服务。同样地, 服务 器端的开发人员可以致力于以最有效, 最实用得方式提供服务,而把客户端应用程序 的实现留给其它人。 多供应商支持 在 wo s a模型下, 实现的情况下编制软件。 以使用它提供的服务。 由于获取服务的接口是一致的, 程序员可以在不管服务是如何 这样, 只要某个服务提供商遵循 wo s a模型, 客户程序就可 升级保护 wo s a模型的另一个好处就是它提供了对客户或服务器软件在升级和移植时的保 护。由于获取服务的一致性的调用被集中到一个单独的d l l中, 用户可以从容地计划 和实施软硬件的升级。比如,当用户决定把其数据库服务由i b m v s a m 系统向一个 d b 2 和s q l s e r v e r 系 统 移植时, 只要 数据 库 访问 接口 是用w o s a模型实现的, 客户 端应用程序就会感觉不到太大的变化。 第三章 t a p i : 功能强大的电话应用程序平台 3 . 1 t a p i 概述 t a p i ( t e le p h o n y a p i , 电话 应 用 程序 接口 ) 是m ic r o s o ft 发 布的 最 重要 的 应用 程序 接 口之一。 t a p i 与wi n d o w s 操作系统紧密集成, 提供了开发和使用 c t i 应用程序的最 强大、最灵活的平台。 t a p i 对硬件层进行了抽象, 从而为用户和开发人员提供了电话网络和硬件的独立 性。 它是使应用程序在p s t n , i s d n. p b x、 以及 i p网络上以一致的方式运行的唯 平台。 wi n d o w s电话应用平台之所以重要, 是因为电子通信和计算机技术正在相互融 合。这为应用程序开发人员、电话网络、交换机和硬件生成商、以及最终用户创造 r 巨大的机会。wi n d o w s 电话应用平台与其它a p i 一道 , 为开发功能丰富的 c t i 应用程 序提供了基础。 另外 , mi c r o s o ft a c t i v e x 控制也使更多的开发人员有机会开发易于实现的 “ 插 件”式软件组件。a c t i v e x控制使开发人员使用图形开发工具, 并集中精力于开发易 用的,真正满足用户需要的应用程序。 t a p i 与 wi n d o w s 操作系统紧密集成。这样, 开发人员开发的应用程序就具备了 极为广阔的应用范围。所有这些都使t a p i 成为一个优秀的电话应用平台。 3 . 2 t a p i 模型 t a p i 的设计目标是在 wi n d o w s 平台上为获取电话服务提供一个抽象层。也就是 说,t a p i 提供了一组函数, 通过这些函数, 可以在wi n d o w s 平台上获得各式各样的 电话服务。 这是一项巨大的工程。 t a p i的目 标是实现电话网络与硬件设备的独立性。开发 人员不必关心在物理上与p c相连的电话媒体。 利用t a p i 编制的应用程序直接获取电 话服务 ,其工作方式无论在模拟线路, 还是在数字线路上都将是一致的。 t a p i 模型分为两个领域, 每个领域都有各自的a p i 调用。 每组a p i 都集中在 t a p 定义的设备之上。这两种 t a p i 设备是: 线路( l i n e ) 线路设备用来模拟真正物理意义上的电话线。在 t a p i中, 线路设备并不是真正 意义上的电话线, 而只是代表物理线路的一个模拟对象。 t a p i 应用程序可以同时映 射多个线路设备,每个设备均与实际的物理线路相连。而同一个程序也可以模拟超过 与p c相连的实际物理线路总数的线路设备。 比如 , 一 个单独的t a p i 应用程序可以同时为用户提供语音、传真、和数据链路。 3 . 6 . 1 t a p 1 3 . 0的新特性 c o m 模式 t a p i 3 .0 首次以一组c o m对象的方式实现。 将t a p i 移植到面向对象的c o m模 式可以充 分享受c o m模型 所带来的 好 处。 同 时,t a p i 3 . 0 提 供对自 动 化( a u t o m a t i o n ) 的全面支持。这意味着开发人员可以用c , c + + 之外的语言 来编制电话应用程序,比 如v i s u a l b a s ic , j a v a , v b s c r i p t 等。 下图 显示了t a p i 3 .0 定义的主要对象及其接口。 i tce 1 h 图 3 .4 t a p i 3 .0 对象及接口 从上图可以看出,t a p t 定义了五个对象, 它们是: tapi *ad d r e s s *t e r mi n a l *c a l l gc al t hu b t a p i 对象是t a p i 3 . 0 的入口, 它通过c o c r e a t e i n s t a n c e ( ) 来创建。a d d r e s s 对象大 致相当于t a p i 先前版本中的线路设备, 可以被用来接收和产生呼叫。 通过t a p i 对象, 应用程序可以枚举所有的a d d r e s s 对象及其能力。 比如, 某应用程序可能只对支持h . 3 2 3 协议的a d d r e s s 对象感兴趣。a d d r e s s 对象拥有c al l 对象。c a l l 对象代表了本地地址和 另外一个或多个地址的连接。a d d r e s s 对象还拥有t e r m i n al对象。 通过 t e r m i n a l 对象 , 应用程序可以选择使用何种媒体和媒体设备。c a ll h u b 对象代表了一组相关的c a l l 对 象。下面,我们给出一个产生呼叫的基本过程, 从中我们可以了解 t a p i 3 . 0的 c o m 对象间的基本关系。 .创律并初始化 t ap i 对象。 使用t a p i 对象来枚举机器上所有的a d d r e s s 对象( 比 如,m o d e m、i s d n线路 等等) 。 枚举每个a d d r e s s 对象所支持的 地址类型( 比如, 电话号码、i p 地址等等) 。 根据所支持的 媒体( a u d i o,v i d e o 等等) 及地址类型选择一个a d d r e s s 对象。 利用a d d r e s s 对象的c r e a t e c a ll ( ) 方法创建与a d d r e s s 对象相连的c a l l 对象。 选择合适的t e r m i n a l 对象。 调用c a ll 对象的c o n n e c t ( ) 方法产生呼叫。 . 媒体控制( m e d i a c o n t r o l ) t a p i 3 . 0 的一个最主要的改进之一就是加入了媒体控制。t a p i 的先前版本基本 上是一个呼叫 控制( c a l l c o n t r o l ) 平台。为了 提供媒体控制,t s p一般要实现 一 个 w a v e 设备,t a p i 提供一种通用的方法获取改设备i d o 然后, 应用程序利用多媒体 a p i 进行媒体控制。这一点,我们在第一章和本章的u n im o d e m v一节都做了说明。 虽然这种方法是有效的, 但是应用程序必须确定 t s p是否实现了wa v e设备。 而 且, 如 果出 现一 种新的 媒 体流 ( m e id a s t r e a m i n g ) 模型, 除非 有 新的t s p 支持 这 种 新 的模型,否则应用程序将无法使用它。这样, 应用程序只能在一个或少数几个 t s p 之 上工作。 为解决这一问 题,t a p i 3 .0 引入了m s p ( m e d i a s e r v i c e p r o v id e r ) . ms p一 般与 t s p成对出现, 它将通常的媒体控制任务进行了抽象, 并使用 t e r m i n a l 对象的接口来 完成这些任务。 在底层,t a p i 3 .0 引入d i r e c t s h o w ( 以 前称 作a c t i v e m o v i e ) 作为 进行 媒体控制的途径。 d i r e c t s h o w 本身是一个庞大的主题 ,我们无法在本文进行详细讨 论。在这儿, 我们只简单介绍其工作方式。d i r e c t s h o w提供了在本地和网络上进行多 媒体数据播放和采集的方法。 d i r e c t s h o w 服务是一个模块式的系统, 它由一些称为 fi lt e r 的 可装 卸的 模块 组 成, 这些fi lt e r 组 合到 一 起, 称为fi lt e r g r a p h 。 每 个fi lt e r 的 能 力由 一 些称 为p in 的 特 殊的c o m接口 来描 述。 每 个p in 可以 消 费 或 产生 收 据 流, 比 如 数字音频信号。通过 d i r e c t s h o w a p i 的c o m 接c7 , t a p i 3 . 0 实现了对媒体流的一致 性地控制。 对l p 电 话( i p t e l e p h o n y ) 的 支持 i p电话技术是计算机技木与电话技术集成的最新成果。 利用 i p电话技术 , 人们可 以在现有的基于i p的l a n , wa n、及i n t e rne t 网络上使用语音、 收据、和视频进行 协同工作。 它使用i e t f和i t u的标准在在任何使用i p的网络上传输多媒体收据。i p 电话技术使得组织和个人在降低现有的通信费用的同时, 拓宽了通信的形式,比如使 用视频会议、应用程序共享、以及白 板工具等等。 过去,声音、收据、和视频收据使用不同的网络来分别处理。这三种网络都有自 己的传输协议 ,其安装、维护都非常昂贵。通过使用统一的传输协议 :1 p,i p电话 技术融合了声音、收据、和视频收据。这样,有效地实现了三网合一。其结果是较低 的支持费用, 改善的可管理性, 新一类的协作工具。 应用 i p电话技术的可能的应用程 序有视频会议, 视频点播, 远程教学, 实时文档协作等等。 目前看来,由昂贵的、不灵活的基于线路交换的公共电话网络向智能的、灵活而 便宜的i p网络的转移是不可逆转的趋势。mi c r o s o ft认识到这一点, 在 t a p i 3 . 0中提 供了对i p电话的支持。 当然,t a p i 3 .0 仍保留了对传统的p s t n网络的支持。 如下图 所 示。 t e le p h o n y a p i 丁 a p i ) c l a s s i c t e le p h o n y mnnn aim i p t e l e p h o n y hymak 图3 . 4 i p和p s t n电话的融合 具体来说 ,t a p i 3 . 0 提供了对 11 . 3 2 3 会议和 i p mu l t i c a s t 会议的支持。在下一节 我们以11 .3 2 3 会议为例来说明t a p i 3 .0 是如何支持i p电话技木的。 3 . 6 .2 t a p i 3 .0 对 11.3 2 3的支持 11 . 3 2 3 简介 11 .3 2 3 是国 际电 信联 盟( i t u ) 制定的 一个在不 提供质量保 证的无连 接网 络上, 比 如 基 于i p的m 络和i n t e rn e t , 进行多 媒 体( 声音、 视 频、 及收据 ) 通 信的的 标准。 它提供 了点对点和多点会议的呼叫控制,多媒体管理, 和带宽管理。11 .3 2 3 提供音频和视频 编码和解码标准, 并通过t . 1 2 0 标准实现收据共享。为抵销网络延时,11 . 3 2 3 使用实 时 传 输协 议 ( r e a l- t im e t r a n s p o rt p r o t o c o l, r t p ) 以 保 证多 媒体 收据的 实时 传 输。 下图 显 示了1 1 3 2 3 体系结构。 卿ksetup gnekeeper :1q1 system carard au d io co d e c g 71 1 0 7 2 3 0. 7 2 9 1 d a leird e rfa c e c o rn .ah 2 g 5 。r a s c a ll 5 的月 q93 有 r e e d a 奋 t r a n s p o r t rt pc a r ro lr t c p 卜 洛 石 沁 改吞 比卜 刘浴 苏 双类联 邪 留 像1 洲 扮袋 别捻 妓拍资 李 熬 余称舫哟亏 兴汾加嵌故粥洛 夜 份 致今 旅 段撼 然习 炸 毖 ; 弥 支 苏 3瀚 游袭莽令拐浓裕派沃 袄 千 洛浴 澎 价 出汐次七 芥 卜 t c p 比日wo r k 图 3 . 5 h. 3 2 3体系结构 t a p i 3 . 0 h . 3 2 3 服务提供者 h 3 2 3 t s p ( 以 及与 其 相连 的m s p ) 使得 基 于t a p i 3 .。 的 应 用 程 序可以 与 局 域网 络 r 的任何 h. 3 2 3 终端进行多媒体交互。 具体来说 ,h . 3 2 3 t s p实现了h. 3 2 3 信号栈。t s p接受不同格式的地址 ,包括名 字, 机器名 ,e - ma i l 地址等。 h .3 2 3 ms p 负责为h .3 2 3 连 接实现d ir e c t s h o wfi l t e r g r a p h , 当 两个h . 3 2 3 用户建 立连接之后 , 所有的收据流将由d i r e c t s h o w来处理。 下图显示了h . 3 2 3 t s p体系结构。 h 3 2 3 c o n f e r e n c l n g 仙已口 日 . 1 吐. 1 . : . 图 3 . 6 h . 3 2 3 t s p体系结构 2 4 与操作系统的集成 目的很明确: 消息处理将成为所有应用程序中很自然的一部分, 是交换信息的 种简单方式 , 就象从一台计算机上打印输出一样。但是,实现这一方式的唯一途径是 消息a p i 与底层操作系统功能的紧密集成。ma p i 实现 了 与wi n d o w s 操作系统的紧密 集成。所有与ma p i 兼容的应用程序可以与任何消息系统通信, 只要该消息系统的服 务提供者已经被安装在系统内。 跨平合的可用性 利用特定操作系统的特殊能力对高级企业级的消息处理是至关重要的, 但与不同 操作系统跨平台通信的能力也同样重要。因此, 任何以操作系统为基础的消息a p i 都 应支持交叉平台工业支持。 丰富而易于使用的特征 最后 ,工业标准消息a p i 必须能够处理应用程序的各种需求,同时还要易十使用 与推广, 才能解决各种消息处理的挑战。ma p i 被特别设计用来解决工业标准消息a p i 的每一个重要要 求, 工 业标准消息a p i 能 够满 足不同 开发团 体( 从公司 开发人员到消息 系 统供应商 ) 的 各 种需求。 4 . 3 m a p i 体系结构 ma p i 定义了一个模块式体系结构。如下图所示 : cl i e n t i n t e f f e c e s 图4 . 3 ma p 1 体系结构 4 . 3 . 1 三类客户应用程序 ma p i 定义了三类基本的客户应用程序_ 它们分别是: . 消息感 知 ( m e s s a g in g - a w a r e ) 应 用 程序 . 具有消息传 递功能的 ( m e s s a g in g - e n a b l e d ) 应 用程 序 . 基于 消息 的 ( m e s s a g in g - b a s e d ) 工 作 组 应用 程 序。 它们之所以被称作 “ 客户”应用程序是因为它们都是ma p i 子系统的客户。 消息感知和具有消息功能的应用程序通常不是以消息传递作为自己的主要特性 , 而只是把它当作一项附加的功能。比如,具备文档发送功能的字处理和电子表格应用 程序。基于消息的工作组应用程序是消息应用程序的最高类型。这类应用程序以消息 处理为中心,需要全面地访问所有后台消息服务, 包括消息存储、地址簿或目 录,以 及传输函数。电子邮件、工作流自动化程序都是基于消息的工作组应用程序的例子。 4 .3 .2 n i a p i 子系统( n i a p i s u b s y s t e m ) ma p i 不仅仅是一个工业标准 a p i 调用集,它也是wi n d o w s 操作系统提供的 一 个 消息子系统。消息子系统是计算机操作系统的一部分,响应a p i 调用并执行相应的操 作。因为它是整个操作系统代码的一个子集所以称为子系统。这种创新的结构允许前 台消息应用程序和后台消息系统真正地独立。 m a p i 子系统由一 个m a p i 假脱 机( s p o o l e r ) , 一 个 通 用用户界 面, 和 程序接口 组 成。ma p i 假脱机是一个单独的进程, 它负责从消息系统中接受和向消息系统发送消 息。通用的用户界面是一组对话框, 这些对话框使各客户应用程序有一致的用户界面 和工作方式。 4 . 3 .3 n i a p i 的程序接口 ma p i 子系统、 客户应用程序以及服务提供者应用程序使用不同的程序接口。 最根 本的程序接口被称为 ma p i编程接口, 它是一个面向对象的接口, 其实现基于o l e 的 组件对象模式( c o m ) a m a p i 子系 统、 基 于消息的 工 作 组 应用程 序、以 及服务提供者 应用程序使用ma n编程接口。 客户应用程序可以使用四种接口, 它们是: . 简单m a p i ( s im p le m a p i )基 于函 数的 客 户 接口, 适 用 于c,c + + , 或v is u a l b a s i c。 . 通用消息 调用( c o m m o m m e s s a g i n g c a ll , c m c )基 于函 数的客户 接口, 适 用于 c或 c + + e . 活动消息 库( a c t i v e m e s s a g e i n g l ib r a ry , 以 前 被 称为o l e m e s s a g i n g l ib r a ry ) 面向 对象的客户接口, 适用于 c,c + + , v i s u a l b a s i c , 或 v is u a l b a s i c f o r a p p li c a t i o n s 等支持自 动化的 语言。 . ma p i :支持功能丰富的客户应用程序和服务提供程序, 适用c,c + + o 简单 ma p i . c mc和活动消息库接口主要用于消息感知和具有消息传递功能的 客户应用程序。这些接口相对简单: 需要少量消息服务的应用程序可以非常方便和快 速地使用这些接口。 客户应用程序开发人员可以直接通过 ma p i 编程接口,也可以通过上述前三种专 门为客户端应用程序提供的接口间接地进行 m a p i 调用。一个应用程序可以同时使用 任何一种接口的方法或函数。 服务提供者编程接口是面向对象的ma n编程接口的一部分,专门用于服务提供 者的编制。服务提供者位于 ma p i 子系统和底层消息系统之间, 它负责把ma p i 客户 的服务请求翻译为某特定消息系统可以理解的形式。当任务完成以后, 服务提供者又 把特定于消息系统的状态和信息翻译成 ma p i 的格式。对某客户应用程序来说,可以 有不同类型的服务提供者。每种服务提供者处理不同的信息系统服务。比如, 地址簿 服务提供者负责管理目 录信息; 而消息传递服务提供者负责消息的传递和接收。 下图显示了简单 ma n . c mc以及活动消息库位于ma p i 和客户程序之间。 基于 消息的客户应用程序直接调用 ma p i:而消息感知和具有消息传递功能的应用程序则 调用简单ma p i . c mc或活动消息库。 而对这些高层接口的调用最终被转换位ma p i 调用 。 c l ie n t a p p lic a t io n s c l ie n t i n t e rf a c e s 图4 .4客户应用程序与客户接口 第五章 语音技术在电话应用程序中的应用 5 . 1 为什么要使用语音技术 语音技术包括语音识别( s p e e c h r e c o g n i t i o n , 简称s r ) 和文本一语音转换( t e x t - t o - s p e a c h, 简称t t s ) 两类技术。 尽管语音技术, 尤其是语音识别技术目 前还远未达到完 美的程度, 但恰当地使用它将使许多应用程序受益非浅。有人甚至预言,语音将成为 卜 一代操作系统和应用程序的用户界面。目前,语音技术已经被广泛应用到各类应用 程序当中, 具体的例子有: . 游戏软件。通过 s r和 t t s, 用户可以真正地与游戏中的人物进行对话, 大 大提高了游戏的真实感,从而使游戏更有趣味。 . 办公室应用。可以用 s r功能来输入文字材料 ,代替键盘输入。 . 有声的多媒体标题使用户有欣赏电视般的乐趣。 然而,从 s r和 t t s技术中获益最大的还是电话应用程序。这是因为语音几乎是 用户与电话应用程序之间交互的唯一途径。未采用语音技术的电话应用程序使用预先 录 制的 信息 播 放 给用 户, 并等 待 用户的d t m f ( 即 在双 音 频电 话上 按键 ) 响 应。 与 之相 比,使用语音技术有以下一些优势。 . 语音识别比d t m f 有更多的 输入集。d t m f 仅可以 提供 1 2 种选择( 0 - 9, * , # ), 而语音识别可以 允许用户有 成百上千 种可能的响应。 .采用 d t mf命令, 用户必须记住所有的d t mf命令 , 否则就只好求助于冗长 的提示信息。而语音识别的用户就不必这样。对用户来说,记住要说的语音 命令比记住d t mf 命令要容易得多。 .有大量的电话是脉冲方式的。这类电话无法产生 d t mf 信号 ,而语音识别则 不存在这一问题。 . 文本一语音合成可以读取任何内容,诸如名字、地名等。另外,不需要专业 录音人员也节省了一笔费用。 5 . 2语音技术基本原理 前面已经提到, 语音技术包括语音识别和语音合成两种技术。这取决于是谁在讲 话: 是 用户还是 计算 机。 语音合 成通常被称为文 本一语音 转换 ( t t s ) , 这是由 于 语音通 常是从文本数据合成的 缘故。下图显示了 一个典型的文本一 语音转换器( t t s e n g i n e ) 的 工作过程。 在匕 . j一 匀 已 己 ,日 日/、返 碑 个人通信助理软件的设计和实现 p c a ( p e r s o n a l c o m m u n i c a t i o n a t t e n d a n t ) 是我们开发的一个远程电子邮件查 询系 统。使用该系统 , 用户可以在远程 , 利用任何 一 部普通电话机, 通过电话网络和语音/ 数据调制解调器, 访问自己的电子邮件信箱并执行相应的操作。比如, 读取信件内容, 删除或保留信件等。 用户与系统之间的交互完全用语音实现。 这包合两层含义。 首先, 系统通过 t t s, 即文本一语音转换后, 将电子邮件内容等用户所需的信息以语音的形 式 “ 读”给用户 :而另一方面,系统对用户的语音命令进行识别,并根据识别结果执 行相应的操作。在该系统的开发过程中, 用到了本论文讨论的wi n d o w s 通信体系的几 乎所有的模块。即: 1 )用t a p i 管理电话的接听, 外播等所有与电话相关的操作。 2 )用n i a p i 管理电 子邮 件的 下载, 拆 析, 删除等操 作。 3 )合成语音识 别( s r ) 和文本 一语 音 转换( t t s ) 技术, 将语 音作为用 户与p c a交1f - 的界面。 6 . 1 基本功能 p c a有以下一些主要功能。 1 ) p c a可以自 动登陆到预先设定的e n t a i l 服务器, 并下载电子邮件。 2 ) p c a可以接听电话。 3 ) p c a要求用户输入d t iv 密 码及语音密码, 以 鉴别用户身份, 禁止非法用户 的访 问。 4 ) p c a可以 分析电 子邮件头, 并 抽取时间, 发信人, 主 题等信息。 5 ) p c a 将文 本合 成为语音, 并通过电 话读出。 6 ) p c a可以 识别特定用户的 语音命令, 所有命令应当有 相应的d t mf 命令作为 备份。 7 )用户可以 通过d t m f 命令终止或中 断t t s 信息。 8 ) a u t o p a g e 功能。 即当 新的电 子邮 件到达时,p c a可以 播打 用 户事先设定的电 话 ,以通知用户。该功能可以通过语音命令禁止或使之生效。 在下一页,我们给出一个用户与 p c a 交互的实例。这可以使我们更清楚地了解 p c a的功能和工作流程。 p c a : we l c o m e t o t h e p e r s o n a l c o m m u n i c a t i o n s a t t e n d a n t . p l e a s e e n t e r y o u r p i n n u mb e r ” u s e r : ( f o u r d i g it d t mf e n t ry ) p c a : ma y i h a v e y o u r p a s s w o r d p l e a s e ? u s e r : ( v o i c e p a s s w o r d ) p c a : ” h e l l o ( u s e r n a m e ) , y o u h a v e ( n u m b e r ) n e w e - ma il m e s s a g e s . s h a l l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实训室教育培训
- 福建省福州市鼓楼区延安中学2026届英语九年级第一学期期末考试试题含解析
- 印刷企业岗前培训
- 社区保密文件培训
- 湖南长沙市长郡教育集团2026届英语九上期末质量跟踪监视试题含解析
- 2026届四川省重点中学化学九上期末联考试题含解析
- 江苏省常熟市第一中学2026届九年级化学第一学期期中达标检测试题含解析
- 安徽省安庆市太湖县2026届英语九年级第一学期期末达标测试试题含解析
- 2026届吉林省重点中学九年级化学第一学期期中检测试题含解析
- 金融分析师考试题库及答案解析
- 智能采矿导论PPT完整全套教学课件
- 腹壁整形课件
- 过盈配合压装力计算
- ECMO IABP完整版可编辑
- 华为项目管理10大模板Excel版可直接套用-非常实用
- 部编版五年级上册语文教案1-6单元(表格式)
- HPLC高效液相色谱解读课件
- 移动通信5G关键技术分析课件
- 理想与前途教育主题班会
- 无人机操作与使用教案
- 自悯量表中文版
评论
0/150
提交评论