企业统一通信平台的设计.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业 统一 通信 平台 设计
- 资源描述:
-
wireless network service providers) to provide messages to the proxy server API, address, port and to the achievement of competence. Video / audio conversations to achieve, the use of a foreign AxPhone components, used to capture the visual compression / audio frames. Key word: Instant messaging 、Unified communications platform、Video / audio conference、Web Service 一、引言 1.1软件开发背景 1.1.1 社会背景 统一通信平台,将视频,语音、传真、电子邮件、WEB,移动短消息和多媒体数据等所有信息类型集合为一体,可用传统电话、IP电话,传真、手机、3G手机,PC、掌上电脑、Outlook,PDA等通信设备中的任何一种接收,在有线、无线、互联网之间架构起一个信息互联通道。 统一通信 (简称UC即Unified Communications )是指把计算机技术与传统通信技术融为一体的新通信模式,作为一种解决方案和应用,其核心内容是:让人们无论任何时间、任何地点,都可以通过任何设备、任何网络,获得数据、图像和声音的自由通信。也就是说,统一通信系统将语音、传真、电子邮件、移动短消息、多媒体和数据等所有信息类型合为一体,从而为人们带来选择的自由和效率的提升。(例如,传统的电话将被取代以支持基于软电话屏幕的客户端软件。)它区别于网络层面的互联互通,而是以人为本的应用层面的融合与协同,是更高一个层次的理念,新一代通信与IT产业。 统一通信带来的革命性未来:三年后将有1亿人使用鼠标进行通讯,10年以后,当你在电影中看到一部桌面电话的时候,你会回忆起你的桌面曾经有过这种电话的时光。 统一通信是一种综合的信息服务,能够充分发挥两网的优势,以企业电视台,VoIP、视频通信、即时通信和协同办公等核心业务能力,通过多样化的终端,向用户提供随时随地、随心随意并可融合语音、数据和视频的多媒体通信手段。 统一通信有效地整合了各种通信设备、媒体和应用,并且使通信更加方便,更加具有组织性、计划性、可扩展性。通信不仅仅是打电话,而是综合了即时通信、VoIP、视频会议、远程培训、网上客服等应用;通信不再局限于语音,而是融合即时消息、手机短信、邮件、语音、视频、数据等多种媒体;通信不再局限于电话机,而是扩展到PC、PDA、电话、手机、H323/SIP终端等设备;通信不再内外割断,而是以网站为桥梁实现内外通信的一体化。统一通信的发展潜力巨大。2008年,中国统一通信市场将达到51亿元人民币,而从2008年到2012年,未来五年的时间里,国内统一通信市场将保持较快的增长趋势,其年增长率将达到46.4%,截至2011年,世界统一通信市场份额有望突破145亿美元,国内统一通信市场的规模将达到212亿元人民币。 让人们轻松地通过统一通信来查询、联系和协作,促进创新,提高工作灵活性。本平台通过提供开放的、可扩展的软件平台,对企业的感知、即时消息、电子邮件、统一消息、web、语音、视频进行整合,实现此目标。 1.1.2 技术背景 本统一通信平台,目前有3种形式的客户端,PC上的C/S、PC上的B/S和无线通信设备,前两者依靠Internet的IP地址进行通信,后者无线网络运营商提供的“信号频端”。 本平台在C/S终端之间的通信中,采用了Socket协议,因为可控性最强,稳定性最高,从地层通信协议到通信格式都很灵活,而且值要遵守协议,跨平台/语言不是问题。而在Web中的通信采用了WebService,通过HTTP协议进行通信,以XML为载体,所以跨平台特性和语言无关性是最好的,而且可以轻便地跨越不同的网络。无线网络上的通信,主要通过SP(网络服务提供商)提供的网关端口和权限,从而传输信息。 如果将视频以图像的形式在网络上传播,那么传输的质量、效率、稳定性都是很差的,本系统将采用AVPhone组件,将在客户端的视频以帧的形式读取,然后经过压缩,再以数据包的形式在网络上传输。 在开发平台上,我选用.NET,一来自己熟悉.NET,二来.NET有其本身的优势,C#保留了对底层操作系统API的直接调用和指针。普通应用都是调用.Net的程序集,对于速度敏感,或者平台相关型应用,直接通过特定声明来调用Windows API。这样就可以在功能,效率和速度都兼顾,解决各种各样的应用层问题和系统层问题,用一种语言来解决所有场合的大部分问题;而且在Windows平台上的.Net CLR,开发工具IDE,再加上C#的程序集,开发方便和快捷的难以想像,。在数据库选择上也是用微软的产品MS SQL2005。 二、需求分析 2.1市场分析 统一通信不但是网络的融合,而且是应用的融合。它不仅能改善企业的办公模式,更重要的是它可以渗透到企业的生产系统中,带来整个企业运作模式的变革。中国通信标准协会网络交换技术工作委员会主席赵慧玲表示,统一通信带给用户的是成本的降低、工作效率的提升以及整个运行机制的改变。 据微软的抽样调查结果显示,80%的企业管理者认为,企业运行时出现的问题来自于企业的内部沟通问题。员工日常工作所需的信息有50%到75%是直接从其他员工那里获得的。企业有80%以上的数据化的信息分散在各个员工的设备上,如果没有良好的沟通,企业就不能正常运作。随着信息技术的发展,企业员工拥有了越来越多的通信设备。是不是通信手段越丰富通信效果就越好呢?据Sage数据研究机构发布的报告显示,尽管目前平均每人拥有6.4种不同的通信设备(包括固定电话、手机、电子邮件、即时通信、办公电话等),但企业员工仍有36%的几率无法在第一时间与对方取得联系。因为,这些通信设备往往是独自工作,它们之间没有建立起一个统一的通信体系。可见,只有将各种通信手段有效地整合到一起,才能使企业内部的沟通更舒畅、资源共享更容易。统一通信能够为企业打造一个综合信息服务的平台,整合多种通信手段,有效地提高员工的工作效率和企业对资源的利用率,降低生产成本。同时,统一通信改变了传统的商业模式,企业可快速实现与客户及合作伙伴的即时沟通,这有助于企业抓住稍纵即逝的商业机会。 2.2 功能分析 由于本系统是一个企业统一通信系统,系统对不同部门的用户进行分组,在C/S客户端,任何两个同事可以进行文字、视频会话、文件传输和邮件收发,当其中一个同事不在线的时候,文字信息将发送到不在线同事的手机。而在B/S客户端,有一个大厅会议区,公开给所有用户,此外可以选择与某个用户单独会话。 而短信群发功能是提供给每一位用户的,可将短息发送到你选定的用户的移动电话。 而邮件群发功能是提供给每一位用户的,可对用户注册的邮箱进行邮件收发功能。 会议也是分部门的,其部门定义为创建该会议的同事的部门,创建该部门的同事作为该会议的管理员,可以命令会议中的任两个同事将他们的视频公开给所有同事,可以设置会议只对本部门公开还是对所有部门公开,拥有是设置用户进出会议的权限。 而在服务端,系统管理员可以管理用户、会议,设置系统,如服务端的地址、短信服务提供商的配置等。 2.3 环境需求 1、硬件环境 CPU 内存 硬盘 其他 服务端 2.00GHz 以上 1GB+ RAM 以上 SATA 160G 以上 客户端 500 MH以上 64 MB以上(推荐使用128 MB) 安装需要50MB的硬盘空间 若要使用语音视频聊天功能,还需配置声卡、音箱、话筒、摄像头等多媒体设备 表2.1硬件环境表 2、软件环境 操作系统 数据库 其他软件 服务端 Windows Server 2003 Microsoft SQL Server 2005 IIS6.0、 NET Framework 2.0 客户端 Windows Server 2000、Windows Server 2003、Windows XP 表2.2软件环境表 3、网络环境 局域网使用 数据库 服务端 在局域网络中 互联网公网地址,2M/mps 客户端 在局域网络中 任何能连接到互联网的网络 表2.3 网络环境表 三、主要技术概述 3.1 面向对象 在这个部分,先概述面向对象,因为整个系统的系统都是基于面向对象分析和设计的,面向对象设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。 瀑布模型把设计进一步划分成概要设计和详细设计两个阶段,类似地,也可以把面向对象设计再细分为系统设计和对象设计。系统设计确定实现系统的策略和目标系统的高层结构。对象设计确定解空间中的类、关联、接口形式及实现操作的算法。 3.1.1面向对象设计的启发规则 1、设计结果应该清晰易懂 使设计结果清晰、易懂、易读是提高软件可维护性和可重用性的重要措施。显然,人们不会重用那些他们不理解的设计。 要做到:用词一致;使用已有的协议;减少消息模式的数量;避免模糊的定义。 2、设计简单类 应该尽量设计小而简单的类,这样便以开发和管理。为了保持简单,应注意以下几点:避免包含过多的属性;有明确的定义;尽量简化对象之间的合作关系;不要提供太多的操作。 3、.使用简单的协议 一般来说,消息中参数不要超过3个。 4、使用简单的操作 面向对象设计出来的类中的操作通常都很小,一般只有3至5行源程序语句,可以用仅含一个动词和一个宾语的简单句子描述它的功能 7、把设计变动减至最小 通常,设计的质量越高,设计结果保持不变的时间也越长。即使出现必须修改设计的情况,也应该使修改的范围尽可能小。 3.2 UDP协议 3.2.1 UDP协议概述 用户数据报协议(UDP)是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议,IETF RFC 768是UDP的正式规范。 UDP 协议基本上是IP协议与上层协议的接口。 UDP 协议适用端口分别运行在同一台设备上的多个应用程序。 与TCP不同,UDP并不提供IP协议的可靠机制、流控制以及错误恢复功能等。由于UDP比较简单,UDP头包含很少的字节,比 TCP 负载消耗少。 3.2.2 UDP协议的结构 UDP协议结构 16 32bit Source port Destination port Length Checksum Data 表3.1 UDP协议结构表 · Source Port — 16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。 · Destination Port — 16位。目标端口在特殊因特网目标地址的情况下具有意义。 · Length — 16位。该用户数据报的八位长度,包括协议头和数据。长度最小值为8。 · Checksum — 16位。IP 协议头、UDP 协议头和数据位,最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位复合而成。 · DATA层。包含上层数据的信息。 3.2.3 UDP协议的特点 1、UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。 2、UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。 3、UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。 4、UDP传送数据较TCP快速,系统开销也少。 5、由于缺乏拥塞控制(congestion control),需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。 3.3 SOCKET 编程技术 3.3.1 Socket套接字 进程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD中的管道(pipe)、命名管道(named pipe)和软中断信号(signal),UNIX system V的消息(message)、共享存储区(shared memory)和信号量(semaphore)等,但都仅限于用在本机进程之间通信。网间进程通信要解决的是不同主机进程间的相互通信问题(可把同机进程通信看作是其中的特例)。为此,首先要解决的是网间进程标识问题。同一主机上,不同进程可用进程号(process ID)唯一标识。但在网络环境下,各主机独立分配的进程号不能唯一标识该进程。例如,主机A赋于某进程号5,在B机中也可以存在5号进程,因此,“5号进程”这句话就没有意义了。 其次,操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同。因此,网间进程通信还要解决多重协议的识别问题。为了解决上述问题,TCP/IP协议引入了端口和地址的概念。 1、端口 网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。 按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信能力。从这个意义上讲,网络通信的最终地址就不仅仅是主机地址了,还包括可以描述进程的某种标识符。为此,TCP/IP协议提出了协议端口(protocol port,简称端口)的概念,用于标识通信的进程。 2、地址 网络通信中通信的两个进程分别在不同同的机器上。在互连网络中,两台机器可能位于不同的网络,这些网络通过网络互连设备(网关,网桥,路由器等)连接。因此需要三级寻址: a. 某一主机可与多个网络相连,必须指定一特定网络地址; b. 网络上每一台主机应有其唯一的地址; c. 每一主机上的每一进程应有在该主机上的唯一标识符。 通常主机地址由网络ID和主机ID组成,在TCP/IP协议中用32位整数值表示;TCP和UDP均使用16位端口号标识用户进程。 3.3.3 C# Socket编程原理 首先从原理上解释一下采用Socket接口的网络通讯,这里以最常用的C/S模式作为范例,首先,服务端有一个进程(或多个进程)在指定的端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传输。客户端在需要的时刻发出向服务端的连接请求。这里为了便于理解,提到了一些调用及其大致的功能。使用socket调用后,仅产生了一个可以使用的socket描述符,这时还不能进行通信,还要使用其他的调用,以使得socket所指的结构中使用的信息被填写完。 NetFrameWork为Socket通讯提供了System.Net.Socket命名空间,在这个命名空间里面有以下几个常用的重要类分别是: •Socket类 这个低层的类用于管理连接,WebRequest,TcpClient和UdpClient在内部使用这个类。 •NetworkStream类 这个类是从Stream派生出来的,它表示来自网络的数据流 •TcpClient类 允许创建和使用TCP连接 •TcpListener类 允许监听传入的TCP连接请求 •UdpClient类 用于UDP客户创建连接(UDP是另外一种TCP协议,但没有得到广泛的使用,主要用于本地网络) 本系统使用UDP协议,一旦创建 Socket,在客户端,不用Connectd到服务端,但最好指定绑定一个端口,如果不事先Bind端口号的话,系统会默认在1024到5000随机绑定一个端口号,并通过Send方法向远程服务器发送数据,然后可以通过Receive从服务端接收数据;而在服务器端,也需要使用Bind方法绑定所指定的接口使Socket与一个本地终结点相联,使用Receive等待接收来自客户端的数据。使用完 Socket 后,使用 Close 方法关闭 Socket。 3.4 UDP穿透NAT 3.4.1 NAT的概念和意义 NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。 最开始NAT是运行在路由器上的一个功能模块。最先提出的是基本的NAT,它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接(呵呵,这是在上世纪90年代中期提出的)。那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。 因此,基本的NAT实现的功能很简单,在子网内使用一个保留的IP子网段,这些IP对外是不可见的。子网内只有少数一些IP地址可以对应到真正全球唯一的IP地址。如果这些节点需要访问外部网络,那么基本NAT就负责将这个节点的子网内IP转化为一个全球唯一的IP然后发送出去。(基本的NAT会改变IP包中的原IP地址,但是不会改变IP包中的端口) 另外一种NAT叫做NAPT,从名称上我们也可以看得出,NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。基本NAT的设备可能我们见的不多,NAPT才是我们真正讨论的主角。看图3.1: Server S1 18.181.0.31:1235 | ^ Session 1 (A-S1) ^ | | 18.181.0.31:1235 | | v 155.99.25.11:62000 v | | NAT 155.99.25.11 | ^ Session 1 (A-S1) ^ | | 18.181.0.31:1235 | | v 10.0.0.1:1234 v | | Client A 10.0.0.1:1234 图3.1 NAPT工作表 3.4.2 NAT的实现过程 有一个私有网络10.*.*.*,Client A是其中的一台计算机,这个网络的网关(一个NAT设备)的外网IP是155.99.25.11(应该还有一个内网的IP地址,比如10.0.0.10)。如果Client A中的某个进程(这个进程创建了一个UDP Socket,这个Socket绑定1234端口)想访问外网主机18.181.0.31的1235端口,那么当数据包通过NAT时会发生什么事情呢? 首先NAT会改变这个数据包的原IP地址,改为155.99.25.11。接着NAT会为这个传输创建一个Session(Session是一个抽象的概念,如果是TCP,也许Session是由一个SYN包开始,以一个FIN包结束。而UDP呢,以这个IP的这个端口的第一个UDP开始,结束呢,呵呵,也许是几分钟,也许是几小时,这要看具体的实现了)并且给这个Session分配一个端口,比如62000,然后改变这个数据包的源端口为62000。所以本来是(10.0.0.1:1234->18.181.0.31:1235)的数据包到了互联网上变为了(155.99.25.11:62000->18.181.0.31:1235)。 一旦NAT创建了一个Session后,NAT会记住62000端口对应的是10.0.0.1的1234端口,以后从18.181.0.31发送到62000端口的数据会被NAT自动的转发到10.0.0.1上。(注意:这里是说18.181.0.31发送到62000端口的数据会被转发,其他的IP发送到这个端口的数据将被NAT抛弃)这样Client A就与Server S1建立以了一个连接了。那么再看看下面这些关键的部分: Server S1 Server S2 18.181.0.31:1235 138.76.29.7:1235 | | | | +----------------------+----------------------+ | ^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^ | 18.181.0.31:1235 | | | 138.76.29.7:1235 | v 155.99.25.11:62000 v | v 155.99.25.11:62000 v | Cone NAT 155.99.25.11 | ^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^ | 18.181.0.31:1235 | | | 138.76.29.7:1235 | v 10.0.0.1:1234 v | v 10.0.0.1:1234 v | Client A 10.0.0.1:1234 图3.2 NAT实现过程解析表 接上面的例子,如果Client A的原来那个Socket(绑定了1234端口的那个UDP Socket)又接着向另外一个Server S2发送了一个UDP包,那么这个UDP包在通过NAT时会怎么样呢? 这时可能会有两种情况发生,一种是NAT再次创建一个Session,并且再次为这个Session分配一个端口号(比如:62001)。另外一种是NAT再次创建一个Session,但是不会新分配一个端口号,而是用原来分配的端口号62000。前一种NAT叫做Symmetric NAT,后一种叫做Cone NAT。 3.4.3 UDP穿洞方法 通过NAT,子网内的计算机向外连结是很容易的(NAT相当于透明的,子网内的和外网的计算机不用知道NAT的情况)。但是如果外部的计算机想访问子网内的计算机就比较困难了,而这正是本系统所需要的。 那么我们如果想从外部发送一个数据报给内网的计算机有什么办法呢?首先,我们必须在内网的NAT上打上一个“洞”(也就是前面我们说的在NAT上建立一个Session),这个洞不能由外部来打,只能由内网内的主机来打。而且这个洞是有方向的,比如从内部某台主机(比如:192.168.0.10)向外部的某个IP(比如:219.237.60.1)发送一个UDP包,那么就在这个内网的NAT设备上打了一个方向为219.237.60.1的“洞”,(这就是称为UDP Hole Punching的技术)以后219.237.60.1就可以通过这个洞与内网的192.168.0.10联系了。 3.5 AVPhone 组件 3.5.1 AVPhone组件介绍 AVPhone ActiveX controls被定义为实时视频和音频应用, 这使视频和音频采集,压缩,传输和提供方便。AVPhone controls单独控制的标准,除了操作系统,不需要任何的如h263 MPEG4 G723的VCM or ACM 编码.它可以压缩数据在内存中而不需要写入文件中,指明压缩控件名称进行压缩. 使用VidCap控制捕获视频和AudCap控制捕获音频,然后通过采集的数据的VidCodec或AudCodec控制压缩它. 您可以保存数据的压缩AVI文件体积小的AVIFile控制或发送到远程端的UDPSocket 。因此,在您收到的数据也可以读取数据备份从AVIFile控制,您可以写入到VidRnd控制或AudRnd控制播放它。在复杂的网络,您可能需要将它写为VidCodec控制或AudCodec控制,以解压缩它,然后播放它。下图3.4是AVPhone组件的整合网络图。 图3.3 AVPhone说明图 3.6 WebService 3.6.1Web service 本平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。在传统的分布式系统中,基于界面(interface)的平台提供了一些方法来描述界面、方法和参数(译注:如COM和COBAR中的IDL语言)。同样的,Web service平台也必须提供一种标准来描述Web service,让客户可以得到足够的信息来调用这个Web service。最后,我们还必须有一种方法来对这个Web service进行远程调用。这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。 1、SOAP Web service建好以后,你或者其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的RPC方法来调用Web service。实际上,SOAP在这里有点用词不当:它意味着下面的Web service是以对象的方式表示的,但事实并不一定如此:你完全可以把Web service写成一系列的C函数,并仍然使用SOAP进行调用。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。 2、WSDL 你会怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。 3、UDDI 为加速Web Service的推广、加强Web Service的互操作能力而推出的一个计划,基于标准的服务描述和发现的规范(specification)。 3.6.2 Ajax的使用 将Ajax与WebService结合起来Web的通信系统是很好的选择,我们可以在服务器架一个WebService的客户端,在客户端通过发出Soap向服务端发送信息,在发送完直到服务端的response返回之前,这个等待过程是异步的,期间客户端用户可以继续操作进行,等到服务器的response返回到时异步更新对应的数据。 图3.4 Ajax原理图 3.7 Hibernate Hibernate是一个目前应用的最广泛的开放源代码的对象关系映射框架,它对Java的JDBC(类似于ADO.Net)进行了非常轻量级的对象封装,使得程序员可以随心所欲的使用对象编程思维来操纵数据库。 NHibernate 是一个基于.Net的针对关系型数据库的对象持久化类库。NHibernate 来源于非常优秀的基于Java的Hibernate 关系型数据库持久化工具。NHibernate 从数据库底层来持久化你的.Net 对象到关系型数据库。使用NHibernate,可以让应用层程序不直接操作数据库,而是操作NHibernate提供的类库,使得应用程序对数据库的可移植性大大增强了。 四、 系统概要设计 4.1 系统模型 4.1.1 多层系统结构模型 多层结构的应用程序把业务逻辑独立出来,组成一层或多层。形成客户层界面、中间业务处理层(可由多层组成)和后端数据服务层,应用系统开发模式变为: (1)客户端人机界面的开发。开发大大简化,只注重人机界面的设计,不必关心业务逻辑和数据库的访问,可以是瘦客户机。 (2)中间业务逻辑层。提供客户端程序调用的业务逻辑规则,以完成其业务操作,业务逻辑改变时,客户端界面可以不作变化。 (3)数据库服务层。提供对数据库进行各种操作的方法,被中间业务逻辑层调用完成业务逻辑。 多层结构中,层次的划分不是物理上的划分,而是结构逻辑上的划分,按应用目标划分。如果客户端要求响应速度很快,业务组件的体积较小,业务组件可以放在客户端;如果业务组件包含大量对数据库的操作,可以配置在数据库服务器上,以减少网络负载,提高运算速度;如果业务组件可供大多数客户机程序访问,则可以使用业务组件构成一个应用服务器,供大家访问。 多层结构的优点是:(1)可伸缩性好。可按应用要求部署逻辑层次,适应于本地网和广域网。(2)网络效率高。经过合理的布局,通过网络的传输数据量大大减少,提高了网络效率。(3)可管理性强。系统客户层基本实现“零维护”,主要管理工作集中在应用逻辑层,业务逻辑的修改对客户层没有影响。(4)可重用性好。按可提供的服务构筑应用,每种服务可以被不同的应用重用。由于采用面向对象的组件构成,进一步增加了系统的可重用性。(5)安全性较好。 4.1.2 多层的实现方式 这个部分的实现,主要依靠面向对象的思想和设计,把本平台的外部和内部具有相同性质的物体抽象成类,任何一个实体都是某个类的实例。 为什么要在多层开发上对面向对象的要求那么高呢?因为将不同的实体封装起来,任两个实体之间相互独立,有彼此的属性;跟其他实体的联系,可通过封装所定义的规则进行;平台是由外部实体需要的内部实体所构成的。从而实现了很高的聚合和低耦合。 基于面向对象,本人写了不少组件组间,因为外部实体可以写成普通的类形式,但是在内部不是实体是需要展现给外部实体的。在系统逻辑上,系统的客户端只负责接收数据,以及显示输出的数据,表现给用户。客户端不需对数据进行逻辑的处理,即进行怎样的处理和完成处理,是交给中间层处理的,中间层的DataArrival组件用来判别要进行怎样的处理,然后把这个处理命令交给具体一个组件,那么那个组件就会完成一系列的处理。通过这种方式,对系统的功能修改,在组件里作修改就行了,并不需要对表现层作改动。 4.1.3主要组件 1.开源的组件AVPhone AudCap control,用于视频压缩和解压。 AudRnd control, 用于音频渲染。 AudCodec control, 用于音频压缩和解压。 VidCap control, 用于视频捕捉。 VidRnd control, 用于视频渲染。 VidCodec control, 用于视频压缩和解压。 UDPSocket control,用于数据传输。 2.自开发的组件 DataArrivalOperate Control,当有数据到达时出作处理。 UdpSocket,使用.NET的类封装起来的网络传输、控制的程序集。 ChatTabControlPanel,个人聊天打开的聊天对话框。 ConfTabControlPanel,集体会议打开的聊天对话框。 UserTreeView,用户树列表,单击一个节点,会打开一个对话框。 MessageLinkLabel,用于询问是否同意接收视频聊天。 ConfLinkLabel,用于询问是否同意将视频公开。 FileDelivery,传输文件的控件。 4.2系统基本功能 4.2.1 功能结构图 1.C/S客户端: C/S 客户端 个人聊天 集体会议 短信群发 系统设置 传输文件 视/音频会话 发送文字 发送短信 创建会议 设置公开视频/语音的用户 管理用户参与会议的权限 获取某用户的视频/语音 邮件群发 图4.1 C/S功能结构图 2、B/S客户端 B/S客户端 大厅会议 个人聊天 短信群发 邮件群发 图4.2 B/S功能结构图 3、服务端: 服务端 开启服务 服务端配置 用户设置 会议设置 图4.3 服务端功能结构图 4.3 功能介绍 4.3.1 C/S客户端 1、单人聊天 ◆双击同事树列表中某一同事的节点,即可打开与该同事聊天的对话框。 ◆在信息输展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




企业统一通信平台的设计.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2654610.html