`
fanxiaojun
  • 浏览: 56280 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

企业级即时通讯通信平台的实现

阅读更多

1. 引言 

      即时通信系统是随着互联网的出现而兴起的新型通信手段。即时通信已经成为继电话、电子邮件之后的第三种现代通信方式。即时通信系统作为一种低成本的、集成多种沟通方式 (如即时消息、视音频,文件传输)为企业进行内外联系、提高工作效率、降低沟通成本、拓展商业机会等方面发挥了巨大的作用。
      
目前许多企业的工作人员,利用QQMSNGTalk  等即时通信软件,进行业务沟通与交流,但是由于 QQMSNGTalk 等即时通信软件是处于开放网络环境下一种公共服务,因而它在为企业用户提供协作支持的同时,也带来了来自网络安全相关问题,存在影响工作 效率甚至信息安全隐患。主流IM 系统在企业应用中的不足主要存在以下几个方面:
(1)
不能适应企业网络环境
       QQ
MSNGTalk 在用户验证、通讯、离线消息处理等过程中都高度依赖Internet  网络接入条件,而国内企业部门的内部网络和Internet  的很多通讯端口是被关闭的。
(2)
不能与企业现有的OA 相结合
      
公共IM 系统为扩大用户规模,其设计的功能通用性比较强,但往往无法兼顾一些企业特殊应用环境中的具体需求。
(3)
不能满足安全性要求
      
目前主流IM 在身份认证、信息传输、信息记录等安全性设计方面还不能满足企业部门使用IM通讯进行商业活动的要求。
(4)
对多协议通讯的支持不够
      QQ
MSNGTalk  IM 软件由于各开发商的商业目的考虑,使用各自的协议和标准,在用户和数据传输上都无法实现互联互通。

2.企业级通信平台的需求

      本节针对上节所描述的问题,以整体解决方案方式阐述了包括了网络模型 的选择、网络协议的实现和服务器端、客户端等组件的设计和开发。该系统的设计目的是实现一个企业 级实时通信平台,致力于帮助企业提高运作效率、降低沟通成本、拓展商业机会。

2.1 系统功能性需求

      系统提供了音/视频通信、即时消息通信和文件传输等基础功能,使企业用户可以在此基础上根据自身企业的规范和需求定制业务能力,完成模块化的客户端定制。企业级通信系统提供业务能力包括:即时消息、语音及视频通信、文件传送、多媒体会议、电子白板、应用程序共享、企业通讯录、企业门户、办公助理、自定义web  浏览器、文件加密、短消息互通、网络流量监控、远程桌面控制和邮件收发等丰富的业务功能。

2.2 系统非功能性需求

      作为企业单位内部员工安全、简便的办公和沟通平台,企业通信平台需要保证数据通信的即时性以及通信过程和信息存储的安全性,为企业单位的使用者提供信息安全保障,同时减少系统资源的消耗,保证系统运行的低故障率。在设计开发时需要考虑以下五点:
(1)
数据通信完整性
(2)
通信安全性
(3)
通信效率
(4)
系统快速响应
(5)
系统稳定性

2.3 平台特点

       企业通信平台在语音、视频、数据、文本等媒体流结合的基础能力上设计并扩展了符合下一代网络规范的、能够运行于基于IP  的下一代网络之上,提供众多业务功能,并具备开放性特点,能够灵活集成企业办公系统,是一个针对企业业务的数字化综合通信平台。
(1)
企业级系统架构设计,让企业用户可以根据自身的实际组织架构自由定义部门结构和用户结构
(2)
与企业现有的办公OA 系统无缝连接,完成与企业信息流的集成
(3)
采用实名制用户注册,可以以用户的身份证和工作证的唯一编号作为ID
(4)
平台具有良好的安全性和可靠性,在数据通信中,采用消息加密机制,确保信息在各个通路之间中的传输安全

3. 企业级通信平台的设计

        系统整合了传统的客户端/服务器网络组织模式和P2P 网络模式 ,设计了基于中心服务器模式的P2P 网络模型结构 ,在客户端与服务器建立连接完成以后,通讯在用户友间直接进行,从而大大减轻了服务器端的负荷。

3.1 服务器端设计

       服务器端的最小子集由三台服务器程序组成,分别为:主服务器、信息查询服务器和信息中转服务器。最小子集所包含的多个服务器实质上均为独立的应用程序,每个服务程序可以单独运行在相互独立的计算机上,也可以运行在同一台计算机上,在逻辑上构成一个统一的服务器端。可以根据企业的服务器增加视频服务器、文件服务器和邮件服务器。三个服务器之间通过TCP 连接建立通讯链路。客户端和服务器之间采用TCP 协议实现网络通信。在整个服务器框架中,可以根据负载情况通过级联方式,动态地增加主服务器,信息查询服务器,信息中转服务器的数量。

主服务器其主要功能有:
(1) 监听来自客户端的合法登陆请求;
(2)
和客户端建立TCP 连接,维持客户机在服务器上的状态;
(3)
监听来自管理模块的登陆请求;
信息中转服务器其主要功能有:
(1) 接受客户端中转文件的请求,为客户端中转文件包;
(2)
必要时中转两个或多个客户端的文字信息;

信息查询服务器其主要功能有:
(1) 接受用户身份验证;
(2)
接受客户端查询、读写数据库的请求并执行;

3.2 客户端设计

       客户端按照需求分析中的功能可划分为五个层次。分别为:网络通信层,协议解析层, 基础能力层,业务功能层,用户表示层。

(1) 网络通信层
      
为上层提供网络支持,提供数据包发送的接口,并提供数据包的监听与数据包到达通知。针对本企业级通信平台所采用C/S P2P 混合模型的特点,通信模块与服务器之间采用TCP套接字,而与对等客户端之间的通信采用UDP 套接字。其主要功能如下:
A.
为客户端其他功能模块提供网络的底层连接;
B. 
建立与主服务器之间的TCP 连接,并提供消息的发送和监听; 
C.
建立本地监听的UDP 线程,并提供与其他客户端之间的消息发送和监听。

(2) 协议解析层
       
网络协议解析模块为下层的网络通信模块和上层的功能模块提供承上启下的接口。作为独立模块,它负责将上层的数据按照自定义的格式进行封包并提供给网络传输层,或是从网络传输层中得到通信包,按照自定义格式 进行解包,并将解包后所得到的数据提交给上层的应用。为此,该模块提供了一系列的封包和解包的函数接口,供其他功能模块调用,并与服务器协定了双方的通信协议规则。

(3) 基础能力层
      
实现统一通信系统的基本能力,向上层提供音视频通信能力、即时消息通信能力和文件传输能力,以及数据完整性检查和数据加密能力。
A.
即时消息通信模块:用于在客户间进行即时消息通信。包括在即时消息中各种消息包的解包与封包处理,消息通知与历史记录保存等。
B. 
文件传输模块:用于在客户间进行点对点的文件传输或由服务器中转传输。包括在文件传输中各种消息包的解包与封包处理,与服务器的通信,历史记录保存等。
C. 
视音频处理模块:用于在客户间进行视频、音频通信,以及音视频多播传输。包括视频 采集、压缩编码、发送、接收和回放等功能。同时负责处理视频和音频的二元同步。
 D.
数据安全模块:为保证数据的安全性 ,本系统选用数据加密后再传输的策略,同时也采用密文形式存储数据。密码算法采用了自拟的基于Feistel结构的算法设计,该算法由加密算法、解密算法和密钥生成三部分组成。

(4) 业务功能层
       
在基础能力层上构建一个集成的多媒体办公应用平台,提供语音会议、数据会议、视频会议、视频点播、用户登陆及状态控制、企业通讯录、好友列表、短消息互通、彩信、电子白板、应用共享、企业门户、办公助理、自定义web  浏览器、网络流量监控、远程桌面控制和系统管理等丰富的业务能力。

(5) 用户表示层 
       
该层为用户交互模块,直接与用户进行输入输出的交互,为用户提供各种显示的视图及输入输出的接口。可以根据不同企业或机构的需求个性化自定义用户界面,以满足企业或机构的业务需要。

4. 关键技术及策略

4.1 RTP 包数据格式设计

       RTP 报文用于传送媒体数据,它由RTP 报头和数据两部分组成,RTP 数据部分称为有效载荷;RTCP 报文用于传送控制信息,以实现协议控制功能。RTP 报文和RTCP 报文将作为下层协议的数据单元进行传输。对于音视频来说,帧的设计是实现协议的核心之一。帧的格式也就决定了协议的主要内容和可以完成的功能。音视频信息流经过压缩编码后在前面加上一个 RTP  数据包头封装成RTP 包后再送交下层封装成UDP 包来发送。RTP/RTCP 本身设计了一套通用的帧格式,本平台根据系统要求对其作了增删,同时改变了某些帧的使用方式以满足实际的需要。

4.2 RTCP 包数据格式设计

       RTP RTCP 配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。根据用户间的数据传输反馈信息,可以制定流量控制的策略。RTCP 协议一般是通过计算丢包率和抖动来进行流量的拥塞控制和网络监视。丢包率L:指在一段时间内,接收端丢失的数据包数N 除以本应收到的包数N2 -N1   
                                                                              
数学表达式为L=N /( N2 -N1 ) 
      
当丢包率小于某个阀值,表明这段时间内网络状况良好,服务器可以继续按目前的发送速率发送数据包,无须作任何的调整;如果丢包率L 大于某个阀值,表明当前的网络状况比较拥塞,服务器应放慢发送速度。
        
抖动S:指相邻的音视频包经过网络到达接收端的时延变化现象,量化为两个数据包在发送端的时间差TS2-TS1 与这两个数据包在接收端的时间比值Tr2-Tr1  
                                                                           
数学表达式为S=( Tr2-Tr1)/( TS2-TS1)
      
当抖动大于1 表示接收数据包延迟,说明网络状况比较拥塞,发送端应放慢发送速度;小于1 表示接收数据包超前,说明网络状况很畅通,发送端可以采取某种策略加快发送速度。本系统通过RTCP 包反馈的丢包率和网络延时来估测网络拥塞情况。对丢包率和延时分别设定经验阀值,如丢包率阀值设为q1=3%,往返延时阀值设为r1=300ms,当二者中有一个参数超过设定阀值时,就认为网络发生了拥塞,需要对发送速率调整。每一种RTCP 报文开始的32 位都有固定的格式,简化RTCP 的包,以减少发送和接收RTCP 报文时所需要的处理工作。

4.3 双缓冲区机制

      IP 网络是一个尽最大努力投递的网络,分组在传输过程中可能发生延迟。时延的变化会对接收端正确播放实时流造成一定困难。有效地改善包传输抖动的方法是在接收端设立缓存区,必须对数据进行缓存才交给上层进行处理。
     
本系统采用双缓冲链表进行数据的缓存。其工作原理是:建立两个队列,一个是PoolList 空闲的缓冲队列,用以接收存放数据;另一个是DataList,尚未处理的数据缓冲队列,等待处理。当网络接收端接收到一个包的数据,就从PoolList  队列头拿出一个缓冲,存放数据,然后将这个缓冲放入DataList  的适当位置等待上层程序的读取。上层程序从DataList  队列头拿出一个缓冲,读取数据,将读完的缓冲从重放回PoolList  的尾部,等待再一次地接收数据。 这样DataList  中的待读取包数据量随网络的抖动增加或减少,能够有效地避免抖动的发生。 并且在初始化时就已经确定了链表的大小,内存不会再有增量,避免了由于缓冲区引起的内存泄露。

4.4 视音频同步机制

      对于多媒体通信来说,同步可以划分为两种类型:流内同步和流间同步。 在本系统内,音频与视频流的流内同步实现比较简单,依据RTP 包头的序列号,将数据包在缓冲区内排序。对于流间同步,本系统由于采用简化了的RTP RTCP 协议对数据进行封包,去掉了RTCP 中的绝对时间戳。故采用的方法是在音视频流开始的时候,使用相同的timestamp,对音视频在某一绝对时刻,采集相应的数据,并打上相同的时间戳,以后的播放都以这个时间做基准时间来保证同步。由于音频的传输是连续的,并且一般来说不能丢失;而视频的传输是不连续的,并且允许丢失少数帧。本系统中以音频流为基准,对视频流进行控制。

5.总结

      本文主要对企业级即时通讯通信平台进行了研究,设计并实现了符合当前企业实际应用需求的企业级即时通讯通通信平台。研发过程必须花费大量的时间精力去完成,AnyChat音视频互动开发平台)是一套跨平台的即时通讯解决方案,基于先进的H.264视频编码标准、AAC音频编码标准与P2P技术,整合了佰锐科技在音视频编码、多媒体通讯领域领先的开发技术和丰富的产品经验而设计的高质量、宽适应性、分布式、模块化的网络音视频互动平台。企业通过佰锐提供的可扩展API接口,就可实现由企业自主定制业务逻辑,而通过服务器端的SDK,可以实现与第三方业务系统的集成,如OA系统、MIS系统,或是其它的管理系统等,不需要为AnyChat实现一套单独的用户系统。可将原始的音、视频数据(PCM、RGB、YUV)回调给上层应用,实现特殊的应用。随着应用的深入和推广,提高系统和企业部门的各种办公及业务系统的集成能力将是各企业需要解决的问题。

分享到:
评论

相关推荐

    企业内部即时通讯软件

    此外,企业级即时通讯软件往往还具备权限管理、消息记录、公告发布、工作流集成等功能。权限管理确保了信息安全,只允许特定人员访问特定信息;消息记录则便于追溯沟通历史,防止信息丢失;公告发布能让公司管理层向...

    基于WebSocket的企业级即时通讯WebIM,使用EXTJS做为前端设计工具

    WebSocket是下一代互联网通信协议,它解决了传统HTTP协议在实时性上的局限,提供了全双工、低延迟的通信方式,特别适合构建实时、双向的在线应用,例如企业级即时通讯(IM)系统。EXTJS则是一种强大的JavaScript框架...

    金谷企业即时通讯系统

    即时通讯(Instant Messaging,简称IM)是一种允许用户实时交流的通信技术,它通过网络连接实现文本、语音、视频等多种形式的信息交换。金谷企业即时通讯系统,作为一款专为企业级用户设计的通讯工具,旨在提供高效...

    企业级即时通信系统的开源解决方案参考.pdf

    企业级即时通信系统是现代企业内部协作和沟通的重要工具,它们提供实时的信息交换,促进了团队间的高效合作。开源解决方案在构建此类系统时扮演了关键角色,不仅降低了开发成本,还提高了系统的灵活性和可定制性。...

    企业即时通讯系统

    通过这个C#编写的企业即时通讯系统,我们可以深入学习到如何构建一个高效、稳定且安全的企业级通信平台,同时理解C#在实际项目中的应用和优势。对于想要提升C#开发技能或者了解企业级通讯解决方案的开发者来说,这是...

    企业版即时通讯

    面向企业级的即时通信工具,p2p目前还未完善好,只限于内网使用。

    大中型企业级即时沟通通讯软件平台通用解决方案样本.doc

    总之,汇讯 WiseUC 作为大中型企业级即时通讯平台,以其丰富的功能和定制化的部署方案,有力地支持了企业的日常运营和战略决策,提升了企业整体的沟通效率和协同能力,是企业信息化建设的理想选择。

    大中型企业级即时沟通通讯软件平台通用解决方案.doc

    【大中型企业级即时沟通通讯软件平台通用解决方案】 随着信息技术的发展,大中型企业对于高效沟通和协作的需求日益增强。即时通讯软件平台成为了解决这一问题的关键工具。本文将深入探讨大中型企业即时通讯平台的...

    即时通讯 企业im 即时通信 即时通 云盘 网盘 文档管理 源码

    即时通讯(Instant Messaging,IM)技术是现代企业中不可或缺的一部分,它为企业内部沟通...触点通RTC的引入,尤其是其开发包教程,为开发者提供了实现高效实时通信功能的途径,进一步推动了企业级通信解决方案的发展。

    基于Java EE企业即时通讯工具设计与实现

    1. **Java EE(Java Enterprise Edition)**:Java EE是一个用于构建企业级分布式应用程序的平台。它提供了诸如Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等组件...

    企业即时通讯体统

    综上所述,基于Java的“企业即时通讯系统”项目涵盖了网络编程、数据库操作、并发处理、安全性等多个方面,为学习和理解企业级应用开发提供了良好的实践案例。通过深入研究和实践这个项目,开发者可以提升自己的Java...

    企业即时通讯c#实例

    1. **网络编程**:即时通讯系统的基础是网络通信,C#提供了System.Net命名空间,包括Socket、TcpClient、TcpListener等类,用于实现客户端和服务器之间的TCP/IP通信。此外,UDP协议也可以通过UdpClient和UdpServer类...

    Android即时通讯源码

    Android平台上的即时通讯实现涉及到多个技术层面,包括网络通信协议、数据传输、用户界面设计以及后台服务等。这篇文档将深入探讨Android即时通讯源码的相关知识点。 首先,我们要了解即时通讯的基础架构。IM系统...

    企业IM即时通讯定制平台,百万级高并发、高性能、可扩展、安全、高交互体验的企业通信和协作im平台

    企业IM即时通讯定制平台,百万级高并发、高性能、可扩展、安全、高交互体验的企业通信和协作im平台。包含通讯服务、仿微信客户端(PC、Android、iOS)、Web门户(用于集成企业应用)、WebAPI。

    基于Java的企业即时通讯平台设计源码

    该平台是一个高并发、高性能、可扩展、安全的企业通信和协作IM平台,提供了百万级的高性能即时通讯服务。它包括仿微信客户端(PC、Android、iOS)、Web门户(用于集成企业应用)和WebAPI,旨在为企业提供一个高效、...

    主流即时通讯软件通信协议分析

    基于给定的信息,本文将深入探讨主流即时通讯软件的通信协议分析,重点研究ICQ、AIM、MSN以及Yahoo Messenger等即时通讯(IM)软件的消息传输协议。本文将涵盖以下主要部分:引言、协议分析环境配置、ICQ协议分析、...

    WCF 即时通讯相关完全源码

    **WCF即时通讯详解** Windows Communication Foundation (WCF) 是微软.NET ...它涉及到服务端和客户端的设计、消息传输、安全性和数据库集成等多个方面,是.NET开发人员构建企业级即时通讯解决方案的重要工具。

    如意通RooyeeMessenger企业即时通讯 Delphi源代码 组件包

    建立千万级用户的面向企业(政府,学校,网络组织)可管理的、高度安全的、专属的、可互联互通的企业级即时通讯系统。 基于XMPP(IETF国际标准组织IM通讯标准)、DNS 集群通讯解析,实现S2S(服务器与服务器之间)的...

Global site tag (gtag.js) - Google Analytics