摘 要 文章论述了如何采用vc++语言实现协会管理系统中多媒体即时通信过程,并给出了协会之间多媒体即时通信的具体实现技术和方法。该系统改变了会员信息交互时数据交互途径,实践证明提高了协会工作效率,减少了会员的通讯费用和出差频次。
1 引言
为了实现协会之间的业务沟通和联系渠道,畅通协会对会员的教育、管理、服务的渠道,更有效的提高协会的工作效率,根据各级协会工作的实际情况和现代办公的特点及要求,开发了协会信息管理系统。将以Internet网络及有线、无线网络为基础的实时通信方式加入到协会信息管理系统,可以改变传统的交流方式。
协会即时通信不同于个人即时通信,协会IM主要面向协会内部成员之间协同即时通信,不会让与工作无关的人进入办公室工作,是一种低成本的、集成多种沟通方式(文字,语音,视频,文件传输,文件共享)的企业内部通讯工具。这样,开发的协会管理系统会更加方便、沟通便捷。
2 协会信息管理系统架构
2.1 协会信息管理系统结构选择
Intranet模型是C/S模型上发展而来的,即浏览器/Web服务器/数据库服务器(B/W/D)三层模型。B/W/D三层模型的各层次都有较强的独立性,在系统软、硬件环境发生变化时,比二层C/S模型有更强的适应能力,即具有更强的可伸缩性。
协会信息管理系统采用B/W/D模型,把友好图形界面交客户端处理,而服务器只处理数据管理。把C/S模型中的服务器(S)进一步分解成一个Web服务器(W)和一个或多个数据库服务器(D),而在客户机(C)上则通过浏览器(B)来存放和显示服务器端的数据。系统低端用户采用ACCESS数据库,可大大降低成本。在省级和国家级采用ORACLE底层数据库,保证了数据量大时系统的安全和可靠。
2.2 应用系统整体结构
协会管理信息系统拓扑结构如图1,企业内网(Intranet)用户使用企业的网络设施进行即时通信,利用认证方式进行控制;Intranet同时用接入设备与Internet相通,在与Internet的接入时,Intranet设置严格的“防火墙”机制来制约企业外部数据访问和传入。采用Internet协议标准和全球信息网技术与设备来构筑Web信息服务应用及连接数据库等其它服务应用的内部网络,企业内网在表现形式上和Internet一致, Web服务器与浏览器的组合。
3 即时通信技术及其工作原理
3.1 即时通信工作原理
即时通信在各个用户之间采用的是P2P技术进行通信。每一个对等点具有相同的地位,既可以请求服务也可以提供服务,同时扮演着C/S模式中的服务器和客户端两个角色,还可以具有路由器和高速缓冲存储器的功能,从而弱化了服务器的功能,甚至取消了服务器。采用P2P技术有许多优点见文献[1]。
3.2 采用的P2P关键技术
P2P 通信时需要解决的最基本的问题即是如何连接其它的终端获得信息、资源和服务。该问题可分为:①P2P 网络的拓扑结构和Peer节点的功能角色划分;②进行资源查找时如何进行Peer定位;③P2P 网络中Peer节点的动态变化的处理;④如何穿越NAT(Network Address Translation)和防火墙进行Peer 节点之间的直接通信。
采用有中间服务器的网络拓扑结构,通过集中认证,建立索引机制,各节点之间可以直接建立连接。中间服务器仅用于辅助对等点之间建立连接,各节点之间直接进行通信,通过分布式文件系统,建立完全开放的可共享文件目录,运用相对的自由来兼顾安全和可管理性。根据拓扑结构,相应的Peer定位方式采用服务器模型间接定位方式,该模型是基于混杂型的P2P拓扑结构。充当服务器的peer节点提供资源查询,采用动态DNS查找用户的IP地址。
在服务器模型的P2P网络中,由于Peer节点的状态信息和管理的资源信息直接记录在服务器中,Peer节点的登录和退出仅需和服务器进行交互,由服务器进行协调处理。在本系统中,Peer节点往往是与用户绑定的。服务器接收到用户的登录消息或退出消息后,通知订阅该用户在线状态的所有在线用户。
软件使用系统选用Windows 2000 Professional/Server开发平台,开发语言为Visual C++6.0。用MFC类中的CAsyn cSocket类的派生类进行实现底层通讯,底层利用UDP数据报协议进行通讯,便于客户端之间直接通讯,传送消息效率高,采用ADO技术访问数据库。
4.2 即时通信主要过程分析
系统的网络应用程序共分为服务器和客户端两部分,运行流程如图4:
对于服务器端,为了能对并发请求进行处理,需要构造两个套接字,即要从CSocket类派生出两个套接字类。一个用于侦听连接请求,用其创建一个对象,并用获得的端口侦听,另一个负责与不同的客户机建立连接,并进行数据信息的发送和接受工作。在处理并发请求时,服务器的侦听套接字不需要重复创建,只需要一个侦听套接字对设定的端口进行侦听即可,这种侦听是在服务器程序一运行就开始的,对于侦听到的连接请求交由应用程序去处理。侦听程序
CListeningSocket m_pSocket;
m_pSocket-Create(dlg.m_nPort);
CListeningSocket::OnAccept(int nErrorCode)
{
CSocket::OnAccept(nErrorCode);
m_pDlg-OnAccept();m_pDlg//是用于指向应用程序的一个指针
}
CConnectingSocket *pSocket=new CConnectingSocket(this);
//应用程序用连接套接字类创建一个连接套接字。
4.3 数据库的访问操作的实现
ADO技术是基于通用对象模型(COM),它提供了多种语言的访问技术,用VC++建立数据库连接的部分程序
BOOL CADOConnection::Open(LPCTSTR lpConn)
{
ASSERT(m_pConnection != NULL);
ASSERT(AfxIsValidString(lpConn));
if (strcmp(lpConn, _T("")) != 0)
{
m_strConnect = lpConn;
}
if (m_strConnect.IsEmpty())
{
ASSERT(FALSE);
return FALSE;
}
if (IsOpen()) Close();
try
{
// 连接数据库
m_pConnection-CursorLocation = adUseClient;
return (m_pConnection-Open(_bstr_t(LPCTSTR(m_strConnect)), "", "", NULL) == S_OK);
}
catch (_com_error e)
{
TRACE(_T("警告: 连接数据库发生异常. 错误信息: %s; 文件: %s; 行: %d“n"), e.ErrorMessage(), __FILE__, __LINE__);
return FALSE;
}
catch (...)
{
TRACE(_T("警告: 连接数据库时发生未知错误:"));
}
return FALSE;
}
4.4 安全隐患及对应的解决办法
(1) 协会信息管理系统通过员工实名制,通过网络设置和认证进行人员权限控制。将会员与业务进行结合分类,设置不同的权限,保证系统安全进行。
(2)即时通信系统漏洞可能会给黑客入侵提供便利,从而偷窃数据或者用病毒攻击等。所以需要在防火墙中应用配置,对IM和P2P进行限制和拦截。
(3)设置实时信息网关(Messaging Gateway),会员通信通过即时信息网关对信息进行过滤和管理,任何进出的即时通信信息都留下记录(日志文件),必要时信息管理人员可以根据这些记录追查来龙去脉。同时,监控IM流量,对超时超量占用带宽的某个用户群,利用程序进行提醒或者强制中止。
5 结论
通过对协会现代办公的特点及要求分析,应用多媒体即时通信技术,建立了具有具有多媒体即时通信功能的协会信息管理系统。该系统的使用,可使协会之间真正的实现零距离工作、指导。实现了协会与会员之间的信息同步,增强了协会信息共享和沟通能力,提高了工作效率,减少了通讯费用和出差频次。由于IM特有的亲和力和便捷性,在畅通客服渠道及提高会员工作效率方面也有明显帮助。
参考文献
[1]李祖鹏, 赵修斌,黄道颖等. Peer-to-Peer 网络中安全对等组的实现. [J] 计算机工程与应用. 2003.24 51~53
Dana Moore, John Hebeler, 苏忠,战晓雷等译,《.对等网》.清华大学出版社, 2003年2月
Muninder P Singh,Peering at Peer-to-Peer Computing,[J].IEEE Internet computing, 2001
Anjana Susarla, Andrew B Whinston,P2P Networking: An Information-Sharing Alternative Manoj Parameswearan , [J] computer, 2001:34(7) 31~38