计算机工程
COMPUTER ENGINEERING
1999年 第25卷 第8期 Vol.25 No.8 1999



一个实用的多点通信部件的设计与实现
王晖，胡晓峰，库锡树，杨冰，黄英君
摘要：从工程实现的角度出发，阐述了如何利用自行研制的多媒体会议系统MMM2000中的多点通信模型，研制开发一个实用的多点通信部件的设计与实现方法。
关键词：多点通信模型；多点通信部件；面积对象方法
Design and Implementation of a Practical Multi-poing Communication Component
Wang Hui,Hu Xiaofeng,Ku Xishu,Yang Bing,Huang Yingjun
(Multimedia R&D Center,National University of Defense Technology,Changsha 410073)
【Abstract】In terms of engineering,this paper describes a method for designing and implementing a practical multi-point communication component based on the multi-point communication model in MMM2000,a multimedia conferencing system developed by us.
【Key words】Multi-point communication model;Multi-point communication component;Object-oriented approach
　　多媒体会议系统区别于会议电视系统的关键在于它不仅具有会议电视系统的实时视音频直接通信和交互功能，而且向用户提供共享工作空间和共享信息空间功能。共享工作空间的典型应用是电子白板，人们可以通过它实时交互式地讨论问题、交换观点直至达到共识。共享信息空间的应用有多点文件传输和多媒体信息的共享存储和检索。以上这些应用中，无论是电子白板还是多点文件传输都涉及多个用户间的数据通信问题，即多点通信问题。因此，可以认为多点通信问题是多媒体会议系统中数据应用和控制的基础，是多媒体会议系统中一项十分重要的研究课题。多点通信问题的研究可分为多点通信模型研究和多点通信技术研究，多点通信模型是核心，多点通信技术是实现这个核心的相应方法和途径。 
1  MMM2000 的多点通信模型简介 
　　多点通信模型是多媒体会议系统中多点数据传输的控制核心，通过它为多媒体会议系统中的数据应用和控制提供一个与具体网络无关的通用多点传输服务接口。我们在研制多媒体会议系统 MMM2000 的过程中，对建立一个有效的多点通信模型应考虑的设计问题和基于标准的多点通信模型进行了深入的研究和探讨，在此基础上，提出了一个能够满足系统研制目标的实用的多点通信模型 [1] ，如图 1 虚框所示。 
1.1 MCU 在模型中的作用 
　　图 1 中的 MCU 功能根据系统研制目标设计得比较简单 ( 但完全能满足系统用户的需求 ) 。 MCU 在此没有对各会议终端传输来的单一数据流进行完全的分接，只对 BAS 码 [3] 进行了提取，具有扩展 BAS 码 [3] 的处理能力，对视频、音频和数据没有进行分接，因此，无法通过在数据通道上建立的多层协议 (MLP) 通道进行会议控制或多点通信控制 [1] 。只能利用扩展 BAS 码通道来进行会议、多点通信及其它有关控制，即扩展 BAS 码通道是系统所有控制信令的通道。该结构中的 MCU 只负责完成多点同步、选择切换及扩展 BAS 码插入与路由选择功能，它对复接的视频、音频和数据不作任何处理。从某种意义上来讲， MCU 更像是一个电路交换设备，只是对控制信令－扩展 BAS 码具有存储转发和路由选择功能。
　　与基于标准的多媒体会议系统结构中作为服务器的 MCU 相比 [1] ， MMM2000 结构中的 MCU 功能明显减少，其中许多功能已移至会议终端中解决。由于在 MCU 无法对数据进行任何处理，多点数据的传输及其质量保证由各会议终端完成，使得多点通信模型具有分布处理特性。 

图 1  MMM2000 系统的多点通信模型 
1.2  模型的组成 
　　(1)  服务接口层   服务接口层负责向上层数据应用和控制应用提供一个一致的、与具体网络接口无关的服务接口。控制应用包括会议控制、远程摄象机控制，数据应用包括电子白板和多点文件传输 [2] 。其中，会议控制、远程摄象机控制是通过多点控制信令传输原语来实现的，电子白板要求多点通信模型提供实时的、小数据量的多点数据传输原语来实现，多点文件传输要求多点通信模型提供可靠的、大数据量的多点数据传输原语来实现。 
　　(2)  网络接口层   网络接口层由各种网络接口的驱动程序或 API 组成，由它提供一个高性能的数据报服务接口。网络接口包括 G.703 、 V.35 、 RS449 、 X.21 和 I.430 [2] 等。数据报的多点传输途径由会议主席终端控制 MCU 的切换来确定。通过 MCU ，网络接口层实际上提供的是不可靠的多点数据广播服务。 
　　(3)  多点传输层   为完成服务接口层的功能，该层的实体必须对上层屏蔽基础的数据网络和分发机制，这意味着该层应完成服务接口层的各类多点通信服务原语的具体实现。多点传输层需要提供一个具有多种服务类型的、端到端的多点传输服务，为此需设计不同的多点数据传输协议，通过不同的差错控制及流控，提供不同的服务类型。 
2  多点通信部件的设计与实现 
　　有了以上多点通信模型，我们从数据应用和控制应用的多点通信需求出发，对多点控制流和数据流进行了详细的分析，采用面向对象的方法设计并实现了一个实用的多点通信部件，如图 2 所示。 

图 2 多点通信部件的类结构 
　　多点通信服务接口类 Mcomm 定义了多点通信部件向上层提供的基本服务接口原语，如表 1 所示，这些服务接口原语通过下面的多点传输类实现与具体网络接口的无关性，网络接口发生变化，只要替换相应的多点传输类即可。多点传输类是服务接口 Mcomm 的派生类。 Mcomm 类中的基本服务原语是虚拟的，利用类的多态性，其具体的实现分别在多点传输类 G703Comm 和 RS449Comm 等类中提供。下面以 G703Comm 类为例，说明多点通信部件的实现。 
表 1 Mcomm 类提供的基本服务接口原语 
Mcomm类提供的基本服务接口原语
多点通信初始化
多点通信通道建立与同步
多点通信通道关闭
多点控制信令及应答的发送
多点控制信令及应答的接收
白板数据多点发送
白板数据多点接收
大数据量多点发送
大数据量多点接收Com_Initialize()
Com_Connect()
Com_Disconnect()
SendCtrlMsg(LPBYTE CtrlMsg,,BYTR MsgLen
GetCtrlMsg(LPBYTE CtrlMsg,,LPBYTE MsgLen)
SendDataMsg(LPBYTE DataMsg,LPWORD MsgLen)
GetdATAMsg(LPBYTE DataMsg,,LPBYTR MsgLen)
SendLargeData(LPSTR LargeData)
GetLargeData(LPSTR LargeData)

　　多点传输类 G703Comm 在各类 G703 网络接口提供的基本数据报服务的基础上，执行一个多点传输协议以完成服务接口类中的原语功能。在 MMM2000 系统中，我们利用了芬兰的 VistaCom 公司提供的 VistaCom API 完成基本数据报服务功能，并在多点传输类 G703Comm 中具体设计以下的功能： 
　　(1)  多点通信部件的初始化与同步   多点通信环境要建立起来，首先各个通信设备必须完成初始化工作，主要是会议终端的初始化和 MCU 的初始化。多点通信部件负责完成多媒体会议终端的硬件初始化、通信连接初始化和同步工作。 
　　(2)  多点控制传输通道  多点控制通道可用扩展 BAS 码的传送来实现。扩展 BAS 码用 VistaCom API  中的函数 VCI_SendNSMessage (int TYPE, int LEN, LPBYTE MSG) 发送，用函数 VCI_GetNSMessage(int TYPE, int LEN, LPBYTE MSG) 来接收，其中 TYPE  置为多字节扩展的 BAS 码类型， LEN 是非标准消息 MSG 的长度， MSG 为指向消息内存的指针。考虑到 MCU 处理 BAS 命令的方便性， MCU 希望在一个复帧中处理一个扩展 BAS 码。一个复帧包含 8 个子复帧，一个复帧中包含 1 个字节的 BAS 码，因此一个子复帧中包含 8 字节 BAS 码。其中 2 字节系统占用，还有 6 个字节可以用于控制信令及应答，一个复帧长 160ms ，即每秒至少可以发 6.25 个控制信令或应答。复帧、子复帧和 H.221 帧 [3] 的关系如图 3 所示。 

图 3  复帧、子复帧和 H.221 帧的关系 
　　(3)  多点数据传输通道   多点数据通道的实现基础是 VistaCom API 中的基本发送函数 VCI_WriteData(LPBYTE,Buffer,int Length) 和接收函数 VCI_ReadData(LPBYTE Buffer,LPINT Read,int Max_Size) 提供的基本数据报服务功能。这两个函数每调用一次，其发送和接收的最大数据报长度是 512 ，且接收数据不保证无错。因此，必须在此基础上，设计一个能满足多点数据传输服务类型的通信协议 [2] ，在此不再赘述。 
3  结束语 
　　本文在介绍我们自行研制的多媒体会议系统 MMM2000 中的多点通信模型的基础上，重点阐述了采用面向对象的思想设计和实现一个多点通信部件的方法，经应用证明，该多点通信部件是实用的。由于它采用的多点通信模型与基于标准的多点通信模型有很大不同，因此，无论是在模型描述和实现方法上都较独立于标准，这就造成该部件的互操作性、可扩展性较差，这正是以后需努力研究和解决的课题。 
作者单位：国防科技大学多媒体研究开发中心，长沙410073
参考文献 
1 王晖 , 胡晓峰 . 多媒体会议系统中多点通信模型的研究 . 全国第一次  CSCW 学术会议 . 北京：清华大学 ,1998 
2 王晖 . 多媒体会议系统 MMM2000 体系结构及其多点通信技术的   研究与实现 [ 硕士学位论文 ]. 长沙：国防科技大学 ,1998 
3 Frame Structure for a 64 to 1920kbit/s Channel in Audiovisual Tteleservices.ITU-T Rec. H.221. 
