论文部分内容阅读
【摘要】针对于目前市面上流行的即时通信软件不适合于企业内部即时通讯的问题,提出了基于Winsock技术P2P与C/S混合模式来实现企业的即时通信,这种通信系统既能实现企业用户间的点对点通讯,又能实现企业内部安全与监督管理。
【关键词】 EIMWinSock技术 P2P C/S模式
1 引言
随着网络的使用越来越广泛,企事业中越来越需要不同系统协同工作,这就要求企事业内部进行即时通信,现在大部分企事业单位采用电话和电子邮件通信手段,它虽然起了很大的沟通作用但还是无法实现即时通信,有的还用市面上流行的即时通信软件,比如ICQ、腾讯QQ、MSN等软件,但这些软件都针对个人通信,由于它们是一种公共服务,处于开放网络环境下,因而它们在为企事业或机构用户提供协作支持的同时,也带来了来自公众网络的信息干扰,存在影响工作效率甚至信息安全的隐患,所以并不太适合企事业内部的通信。在这种情况下,有必要自主开发企事业即时通信软件简称EIM(Enterprise Instant Messaging)。通过调研与分析市面上流行的一些通信软件并结合企业网络通信的实际情况,提出了基于Winsock技术P2P与C/S混合模式来实现企业的即时通信。
2 系统采用的几种关键技术
2.1Winsock技术
Winsock是一套开放的、支持多种协议的Windows环境下网络编程接口,是Windows环境下网络编程事实上的标准。这些接口是一些灵活的函数,应用程序通过调用Winsock的API(应用程序接口)实现相互通信,而Winsock利用下层通迅协议功能和操作系统调用实现实际的通信工作。使用WinSock控件能实现网络通讯的基本功能,既可使用WinSock控件开发面向连接的应用程序, 也可开发无连接的网络应用程序。如聊天室程序, FTP 客户端应用程序, 电子邮件收发程序等, 很多复杂网络应用程序也都是这些基本的应用演变而来的。WinSock技术已经过多年的发展,已经在网络通信领域得到越来越广泛的应用,也取得了越来越多的研究成果。现在在即时通信过程通过调用WinSock的API实现相互之间的通信,而WinSock利用下层的网络通信协议功能和操作系统调用实现实际的通信工作,只要底层的通信协议相同,不同类型的Socket也照样可以通信。
2.2客户/服务器模型
客户机/服务器模型,又称为Client/Server模型,简称C/S架构。这种客户/服务器模型是一种非对称式编程模式。该模式的基本思想是把集中在一起的应用划分成为功能不同的两个部分,分别在不同的计算机上运行,通过它们之间的分工合作来实现一个完整的功能。对于这种模式而言其中一部分需要作为服务器,用来响应并为客户提供固定的服务, 另一部分则作为客户机程序用来向服务器提出请求或要求某种服务。严格说来,客户机/服务器模型并不是从物理分布的角度来定义,它所体现的是一种网络数据访问的实现方式。采用这种结构的系统目前应用非常广泛。如宾馆、酒店的客房登记、结算系统,超市的POS系统,银行、邮电的网络系统等。
服务器在C/S模型中处于一个中心地位。服务器一般同时为多个客户提供服务,这就造成了服务器设计的复杂性。特别是像即时通讯服务器这类具有社区性的服务器,它只有为群体提供服务才有意义。即时通讯服务器是数据中心,它是客户活动的中介,需要同时应对众多客户的请求。
2.3 P2P模型
P2P(peer-to-peer)在某种意义上说是分散式的,不同于网络中心辐射模式,它是分散的设备到设备或者服务到服务的模式系统之间通过直接交互来实现计算机资源和服务的共享。P2P并不是单纯的某种技术,而是一种思想,它是对传统的C/S(Client/Server)模式的突破,P2P将传统的集中的服务分散开来,不再进行统一的处理,使位于网络边缘的实体(泛指用户,机器应用)之间可以相互直接通信,达到充分利用资源的目的。其最直接的功能就是让用户可以直接连接到网络上的其他计算机,进行文件共享与交换,简单的说,P2P应用是由物理上分布的节点组成,以协作完成某些任务,这些节点被称为对等实体(peer),这意味着这些实体在执行计算、提供和消费服务时分担相同的责任,这与C/S(Client/Server)模式不同。我们常用的QQ、MSNMessenger,ICQ等即时通讯软件都是P2P应用的实例--它们允许用户互相交换信息、交换文件。其技术特性如下:
(1)既是S又是C,如何表现取决于用户的要求,网络应用由使用者自由驱动。
(2)信息在网络设备间直接流动,高速及时,降低中转服务成本。
(3)构成网络设备互动的基础和应用。
(4)在使网络信息分散化的同时,相同特性的P2P设备可以构成存在于互联网这张大网中的子网,使信息按新方式又一次集中。
P2P 模式相对于 C/S 模式有如下主要优点:
(1)资源的高度利用率。在 P2P 网络上,闲散资源有机会得到利用,所有节点的资源总和构成了整个网络的资源,C/S 模式下,纵然客户端有大量的闲置资源,也无法被利用。
(2)随着节点的增加,C/S 模式下,服务器的负载就越来越重,形成了系统的瓶颈,一旦服务器崩溃,整个网络也随之瘫痪。而在 P2P 网络中,每个对等体都是一个活动的参与者,每个对等点都向网络贡献一些资源。所以,对等点越多,网络的性能越好,网络随着规模的增大而越发稳固。
(3)基于内容的寻址方式处于一个更高的语义层次,因为用户在搜索时只需指定具有实际意义的信息标识而不是物理地址,每个标识对应包含这类信息的节点的集合。这将创造一个更加精炼的信息仓库和一个更加统一的资源标识方法。
(4)信息在网络设备间直接流动,高速及时,降低中转服务成本。
(5)C/S 模式下的互联网是完全依赖于中心点——服务器的。而 P2P 网络中任意两台 PC 互为服务器及客户机,即使只有一个对等点存在,网络也是活动的,节点所有者可以随意地将自己的信息发布到网络上。
虽然,P2P在许多应用领域都显露出明显的技术优势,但仍然有许多亟待解决的问题:
(1)管理问题:需要建立一个管理机制,预防由恶意请求引发的拒绝服务而导致的系统崩溃。
(2)结构问题:需要构造一个网络拓扑结构,使P2P网络能自适应最佳的互联网络;快速准确地发现对等点;建立数据向请求活跃区移动、有选择性地返回数据文件或请求响应包的机制。
(3)信息共享与知识产权保护问题:P2P技术为网络信息共享带来了革命性的改进,而这种改进如果想要持续长期地为广大用户带来好处,必须以不损害内容提供商的基本利益为前提。这就要求在不影响现有P2P共享软件性能的前提下,在一定程度上实现知识产权的保护机制。
(4)互信问题:为使得P2P技术在更多的商业环境里发挥作用,必须考虑到网络节点之间的信任问题。对分布式环境中信誉度机制的挑战是如何在无中央管理的情况下对局部信誉度进行聚合。
(5)安全问题:随着P2P技术的发展,将来会出现各种专门针对P2P系统的网络病毒。因此,网络病毒的潜在危机对P2P系统安全性和健壮性提出了更高的要求,迫切需要建立一套完整、高效、安全的防毒体系。
(6)隐私保护和匿名通信的问题:利用P2P无中心的特性可以为隐私保护和匿名通讯提供新的技术手段。但是,在匿名与隐私保护和法律监控之间寻找平衡又将带来新的技术挑战。
综上所述,采用P2P与C/S混合模式来实现整个系统的通信架构为最优选择,这样可以确定用户之间通讯模式为P2P模式便于直接通讯进行高效传输信息,用户与服务器之间采用C/S模式用于通讯的初始联接及保存用户信息和通讯过程中的一些相关数据。
3 EIM系统的总体设计
3.1系统总体设计思想
EIM系统是一个P2P与C/S混合系统。它不仅能够将用户的一些重要的信息进行集中而方便管理,而且在系统运行及客户之间通讯时,又能够有效地减轻服务器的负担,提高客户之间的通讯质量和效率。在服务器端,该系统的很多功能都通过服务器来实现,从而有利于以后系统的升级和维护,增加了系统的可扩充性,并且企业可以通过服务器进行集中管理与控制,保证整个系统在安全与互信的基础上通信。在客户端,通过P2P模式,实现客户之间点对点的传送,而不必经过服务器,这样既减轻了服务器的负担,同时又提高了客户之间的通讯效率。
3.2系统的技术路线与实验方案
本系统采用基于WinSock技术P2P与CS混合模式实现的用于企业内部的基于 TCP/IP 协议的一个实时通信系统,如图1所示,该系统在用户与服务器之间采用流行的C/S 架构,而各个用户之间采用的是 P2P 技术进行通信,并且用 ADO 技术实现对数据库的操作与管理。系统的总体架构如图1所示。
对系统的服务端实现方面的研究,根据其主要功能分为两大功能模块:服务器的管理模块与服务器的通讯模块。对客户端实现技术做了以下方面的研究:客户端与服务器端之间的Socket通信、客户端与客户端的点对点的WinSocket通信技术与客户端的主界面实现。其两者间的通讯是在TCP/IP网络环境下应用程序调用的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系见图2。
4 结论
系统实现了企业即时通信要求,即在一台计算机上运行服务端程序,然后就可以在同一网络的其他计算机上运行客户端程序,登录到服务器上,企业内各个用户之间就可以不受外界干扰、安全的环境下进行办公通信等工作,为企业提供更加便捷与安全的服务,提高办公效率、实现企业通信智能化安全管理机制。
企业通信从平常的用QQ等个人即时通讯向企业即时通信的演化,克服了来自公众网络的干扰,存在影响工作效率甚至信息安全的隐患。其主要作用包括以下几个方面:
(1)应用了现在最为流行的即时通讯技术,使员工之间快速,便捷的交流成为可能,将大部分工作由手工处理转变为计算机处理,减少人工错误,减少企业通信成本,提高了工作人员的办事效率。
(2)为用户提供友好的图形界面,特别是部门与员工等列表的显示,能使整个企业的结构明确,增加各个部门之间的交流。增加内部的凝聚力,员工在有Intranet而无Internet的情况下,实现类似QQ的功能,可以在计算机各个终端之间进行各种通讯,以后可扩展到能通过短消息服务器的接口满足计算机终端和手机的通讯 。
(3)建立了一个相对安全的环境, 引入特定的安全机制(如身份认证、公钥加密机制),实现一个相对可控的安全环境, 在该环境外的用户,被拒绝加入这个环境和使用共享资源。加强了企业安全管理,杜绝企业信息外流。
(4)建立了一个局部的管理的环境,通过建立安全对等组,实现一个可在局部范围内从事特定工作的区域。
(5)建立了一个具有监督机制的环境。在安全对等组中,根据安全级别的高低,各个成员对等点的某些特定行为可以被监控并作相应记录。
参考文献
[1]蒋东兴.Windows Sockets网络程序设计指南[M].清华大学出版社
[2] 李远杰等.主流即时通软件通信协议分析术[J].计算机应用研究,2005,(7)
[3]周建军.企业级即时通讯技术及其应用[J].电脑知识与技术,2006(4)
[4] 清水 编译.迎接企业级 P2P 应用[J].计算机世界,2005 ,5
【关键词】 EIMWinSock技术 P2P C/S模式
1 引言
随着网络的使用越来越广泛,企事业中越来越需要不同系统协同工作,这就要求企事业内部进行即时通信,现在大部分企事业单位采用电话和电子邮件通信手段,它虽然起了很大的沟通作用但还是无法实现即时通信,有的还用市面上流行的即时通信软件,比如ICQ、腾讯QQ、MSN等软件,但这些软件都针对个人通信,由于它们是一种公共服务,处于开放网络环境下,因而它们在为企事业或机构用户提供协作支持的同时,也带来了来自公众网络的信息干扰,存在影响工作效率甚至信息安全的隐患,所以并不太适合企事业内部的通信。在这种情况下,有必要自主开发企事业即时通信软件简称EIM(Enterprise Instant Messaging)。通过调研与分析市面上流行的一些通信软件并结合企业网络通信的实际情况,提出了基于Winsock技术P2P与C/S混合模式来实现企业的即时通信。
2 系统采用的几种关键技术
2.1Winsock技术
Winsock是一套开放的、支持多种协议的Windows环境下网络编程接口,是Windows环境下网络编程事实上的标准。这些接口是一些灵活的函数,应用程序通过调用Winsock的API(应用程序接口)实现相互通信,而Winsock利用下层通迅协议功能和操作系统调用实现实际的通信工作。使用WinSock控件能实现网络通讯的基本功能,既可使用WinSock控件开发面向连接的应用程序, 也可开发无连接的网络应用程序。如聊天室程序, FTP 客户端应用程序, 电子邮件收发程序等, 很多复杂网络应用程序也都是这些基本的应用演变而来的。WinSock技术已经过多年的发展,已经在网络通信领域得到越来越广泛的应用,也取得了越来越多的研究成果。现在在即时通信过程通过调用WinSock的API实现相互之间的通信,而WinSock利用下层的网络通信协议功能和操作系统调用实现实际的通信工作,只要底层的通信协议相同,不同类型的Socket也照样可以通信。
2.2客户/服务器模型
客户机/服务器模型,又称为Client/Server模型,简称C/S架构。这种客户/服务器模型是一种非对称式编程模式。该模式的基本思想是把集中在一起的应用划分成为功能不同的两个部分,分别在不同的计算机上运行,通过它们之间的分工合作来实现一个完整的功能。对于这种模式而言其中一部分需要作为服务器,用来响应并为客户提供固定的服务, 另一部分则作为客户机程序用来向服务器提出请求或要求某种服务。严格说来,客户机/服务器模型并不是从物理分布的角度来定义,它所体现的是一种网络数据访问的实现方式。采用这种结构的系统目前应用非常广泛。如宾馆、酒店的客房登记、结算系统,超市的POS系统,银行、邮电的网络系统等。
服务器在C/S模型中处于一个中心地位。服务器一般同时为多个客户提供服务,这就造成了服务器设计的复杂性。特别是像即时通讯服务器这类具有社区性的服务器,它只有为群体提供服务才有意义。即时通讯服务器是数据中心,它是客户活动的中介,需要同时应对众多客户的请求。
2.3 P2P模型
P2P(peer-to-peer)在某种意义上说是分散式的,不同于网络中心辐射模式,它是分散的设备到设备或者服务到服务的模式系统之间通过直接交互来实现计算机资源和服务的共享。P2P并不是单纯的某种技术,而是一种思想,它是对传统的C/S(Client/Server)模式的突破,P2P将传统的集中的服务分散开来,不再进行统一的处理,使位于网络边缘的实体(泛指用户,机器应用)之间可以相互直接通信,达到充分利用资源的目的。其最直接的功能就是让用户可以直接连接到网络上的其他计算机,进行文件共享与交换,简单的说,P2P应用是由物理上分布的节点组成,以协作完成某些任务,这些节点被称为对等实体(peer),这意味着这些实体在执行计算、提供和消费服务时分担相同的责任,这与C/S(Client/Server)模式不同。我们常用的QQ、MSNMessenger,ICQ等即时通讯软件都是P2P应用的实例--它们允许用户互相交换信息、交换文件。其技术特性如下:
(1)既是S又是C,如何表现取决于用户的要求,网络应用由使用者自由驱动。
(2)信息在网络设备间直接流动,高速及时,降低中转服务成本。
(3)构成网络设备互动的基础和应用。
(4)在使网络信息分散化的同时,相同特性的P2P设备可以构成存在于互联网这张大网中的子网,使信息按新方式又一次集中。
P2P 模式相对于 C/S 模式有如下主要优点:
(1)资源的高度利用率。在 P2P 网络上,闲散资源有机会得到利用,所有节点的资源总和构成了整个网络的资源,C/S 模式下,纵然客户端有大量的闲置资源,也无法被利用。
(2)随着节点的增加,C/S 模式下,服务器的负载就越来越重,形成了系统的瓶颈,一旦服务器崩溃,整个网络也随之瘫痪。而在 P2P 网络中,每个对等体都是一个活动的参与者,每个对等点都向网络贡献一些资源。所以,对等点越多,网络的性能越好,网络随着规模的增大而越发稳固。
(3)基于内容的寻址方式处于一个更高的语义层次,因为用户在搜索时只需指定具有实际意义的信息标识而不是物理地址,每个标识对应包含这类信息的节点的集合。这将创造一个更加精炼的信息仓库和一个更加统一的资源标识方法。
(4)信息在网络设备间直接流动,高速及时,降低中转服务成本。
(5)C/S 模式下的互联网是完全依赖于中心点——服务器的。而 P2P 网络中任意两台 PC 互为服务器及客户机,即使只有一个对等点存在,网络也是活动的,节点所有者可以随意地将自己的信息发布到网络上。
虽然,P2P在许多应用领域都显露出明显的技术优势,但仍然有许多亟待解决的问题:
(1)管理问题:需要建立一个管理机制,预防由恶意请求引发的拒绝服务而导致的系统崩溃。
(2)结构问题:需要构造一个网络拓扑结构,使P2P网络能自适应最佳的互联网络;快速准确地发现对等点;建立数据向请求活跃区移动、有选择性地返回数据文件或请求响应包的机制。
(3)信息共享与知识产权保护问题:P2P技术为网络信息共享带来了革命性的改进,而这种改进如果想要持续长期地为广大用户带来好处,必须以不损害内容提供商的基本利益为前提。这就要求在不影响现有P2P共享软件性能的前提下,在一定程度上实现知识产权的保护机制。
(4)互信问题:为使得P2P技术在更多的商业环境里发挥作用,必须考虑到网络节点之间的信任问题。对分布式环境中信誉度机制的挑战是如何在无中央管理的情况下对局部信誉度进行聚合。
(5)安全问题:随着P2P技术的发展,将来会出现各种专门针对P2P系统的网络病毒。因此,网络病毒的潜在危机对P2P系统安全性和健壮性提出了更高的要求,迫切需要建立一套完整、高效、安全的防毒体系。
(6)隐私保护和匿名通信的问题:利用P2P无中心的特性可以为隐私保护和匿名通讯提供新的技术手段。但是,在匿名与隐私保护和法律监控之间寻找平衡又将带来新的技术挑战。
综上所述,采用P2P与C/S混合模式来实现整个系统的通信架构为最优选择,这样可以确定用户之间通讯模式为P2P模式便于直接通讯进行高效传输信息,用户与服务器之间采用C/S模式用于通讯的初始联接及保存用户信息和通讯过程中的一些相关数据。
3 EIM系统的总体设计
3.1系统总体设计思想
EIM系统是一个P2P与C/S混合系统。它不仅能够将用户的一些重要的信息进行集中而方便管理,而且在系统运行及客户之间通讯时,又能够有效地减轻服务器的负担,提高客户之间的通讯质量和效率。在服务器端,该系统的很多功能都通过服务器来实现,从而有利于以后系统的升级和维护,增加了系统的可扩充性,并且企业可以通过服务器进行集中管理与控制,保证整个系统在安全与互信的基础上通信。在客户端,通过P2P模式,实现客户之间点对点的传送,而不必经过服务器,这样既减轻了服务器的负担,同时又提高了客户之间的通讯效率。
3.2系统的技术路线与实验方案
本系统采用基于WinSock技术P2P与CS混合模式实现的用于企业内部的基于 TCP/IP 协议的一个实时通信系统,如图1所示,该系统在用户与服务器之间采用流行的C/S 架构,而各个用户之间采用的是 P2P 技术进行通信,并且用 ADO 技术实现对数据库的操作与管理。系统的总体架构如图1所示。
对系统的服务端实现方面的研究,根据其主要功能分为两大功能模块:服务器的管理模块与服务器的通讯模块。对客户端实现技术做了以下方面的研究:客户端与服务器端之间的Socket通信、客户端与客户端的点对点的WinSocket通信技术与客户端的主界面实现。其两者间的通讯是在TCP/IP网络环境下应用程序调用的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系见图2。
4 结论
系统实现了企业即时通信要求,即在一台计算机上运行服务端程序,然后就可以在同一网络的其他计算机上运行客户端程序,登录到服务器上,企业内各个用户之间就可以不受外界干扰、安全的环境下进行办公通信等工作,为企业提供更加便捷与安全的服务,提高办公效率、实现企业通信智能化安全管理机制。
企业通信从平常的用QQ等个人即时通讯向企业即时通信的演化,克服了来自公众网络的干扰,存在影响工作效率甚至信息安全的隐患。其主要作用包括以下几个方面:
(1)应用了现在最为流行的即时通讯技术,使员工之间快速,便捷的交流成为可能,将大部分工作由手工处理转变为计算机处理,减少人工错误,减少企业通信成本,提高了工作人员的办事效率。
(2)为用户提供友好的图形界面,特别是部门与员工等列表的显示,能使整个企业的结构明确,增加各个部门之间的交流。增加内部的凝聚力,员工在有Intranet而无Internet的情况下,实现类似QQ的功能,可以在计算机各个终端之间进行各种通讯,以后可扩展到能通过短消息服务器的接口满足计算机终端和手机的通讯 。
(3)建立了一个相对安全的环境, 引入特定的安全机制(如身份认证、公钥加密机制),实现一个相对可控的安全环境, 在该环境外的用户,被拒绝加入这个环境和使用共享资源。加强了企业安全管理,杜绝企业信息外流。
(4)建立了一个局部的管理的环境,通过建立安全对等组,实现一个可在局部范围内从事特定工作的区域。
(5)建立了一个具有监督机制的环境。在安全对等组中,根据安全级别的高低,各个成员对等点的某些特定行为可以被监控并作相应记录。
参考文献
[1]蒋东兴.Windows Sockets网络程序设计指南[M].清华大学出版社
[2] 李远杰等.主流即时通软件通信协议分析术[J].计算机应用研究,2005,(7)
[3]周建军.企业级即时通讯技术及其应用[J].电脑知识与技术,2006(4)
[4] 清水 编译.迎接企业级 P2P 应用[J].计算机世界,2005 ,5