InteilIM 1.0 设计文档 - 理 论(修订)

1.理 论

1.1. 客户/服务器模式应用程序的设计
当前网络应用程序架构通常可分为客户-服务器模式,浏览器-服务器模式和P2P模式。在企业即时通讯系统中,为了信息的集中管理,采用客户-服务器模式比较适合。故在该系统中利用这种模式将用户注册信息和其他大部分资料都保存在服务器端,这样不管在哪里登陆,不用在客户端存储相关信息,同一个用户只要登陆了正确的服务器,就可以得到唯一的数据和信息表示。

1.2. .NET 中UDP 协议的实现
该系统采用了 UDP (用户数据报协议)实现底层网络通讯。

在.NET 中System.Net.Sockets 命名空间中的UdpClient 类提供了一些简单的方法,用于在阻塞同步模式下发送和接收无连接 UDP 数据报。

因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接。但您可以选择使用下面两种方法之一来建立默认远程主机:

使用远程主机名和端口号作为参数创建 UdpClient 类的实例。

创建 UdpClient 类的实例,然后调用 Connect 方法。

可以使用在 UdpClient 中提供的任何一种发送方法将数据发送到远程设备。使用 Receive 方法可以从远程主机接收数据。

UdpClient 方法还允许发送和接收多路广播数据报。使用 JoinMulticastGroup 方法可以将 UdpClient 预订给多路广播组。使用 DropMulticastGroup 方法可以从多路广播组中取消对 UdpClient 的预订。

1.3. .NET 中的XML 对象序列化
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,就使得数据能够被轻松地存储和传输。

.NET Framework 提供两种序列化技术:

l 二进制序列化 保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。您可以将对象序列化到流、磁盘、内存和网络等等。远程处理使用序列化“通过值”在计算机或应用程序域之间传递对象。

l XML 序列化 仅序列化公共属性和字段,且不保留类型保真度。当您希望提供或使用数据而不限制使用该数据的应用程序时,这很有用。由于 XML 是一个开放式标准,因此,对于通过 Web 共享数据,它是一个有吸引力的选择。SOAP 同样是一个开放式标准,这使它也成为一个颇具吸引力的选择。

该系统考虑到扩展性和应用程序之间互通的需要,采用 XML 来序列化对象,比如即时消息,语音数据,文件数据等等。

XML 序列化将对象的公共字段和属性或者方法的参数和返回值转换(序列化)为符合特定 XML 架构定义语言 (XSD) 文档的 XML 流。XML 序列化产生强类型类,并为存储或传输目的将其公共属性和字段转换为序列格式(在此情况下,为 XML)。

由于 XML 是一种开放式标准,因此无论使用什么平台,任何应用程序都可根据需要处理 XML 流。例如,用 ASP.NET 创建的 XML Web services 使用 XmlSerializer 类创建 XML 流,用来在整个 Internet 中或 Intranet 上的 XML Web services 应用程序之间传递数据。相反地,反序列化获取这样的 XML 流并重新构造对象。

XML 序列化还可用于将对象序列化为符合 SOAP 规范的 XML 流。SOAP 是一种基于 XML 的协议,它是专门为使用 XML 来传输过程调用而设计的。

1.4. .NET 多线程程序设计
要使应用程序能够快速响应用户操作,同时在用户事件之间或者甚至在用户事件期间利用处理器,最强大的方式之一是使用多个执行线程。

在系统实现过程中为了提高客户端响应速度,多处采用了多线程程序设计。

在.NET 框架中,多线程的使用是比较简单明了的。命名空间 System.Threading 提供了与线程操作相关的类。

一个进程可以创建一个或多个线程以执行与该进程关联的部分程序代码。使用 ThreadStart 委托指定由线程执行的程序代码。System.Threading.Thread 类用来创建并控制线程,设置其优先级并获取其状态。

创建线程时,将使用采用 System.Threading.ThreadStart委托作为其唯一参数的构造函数创建 Thread 类的新实例。但线程在调用 Start 方法前不会开始执行。调用 Start 后,将从由 ThreadStart 委托引用的方法的第一行开始执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值