基于Web服务的Communication Portal平台设计与实现

时间:2022-10-19 09:57:55

基于Web服务的Communication Portal平台设计与实现

摘要:在大型跨国企业内部,各分公司的信息独立,如何实现各分公司之间的信息共享并且提高通信效率是一个重要的课题。此外,在日常工作中,每位员工需要维护包括电话簿,Mail地址簿,MSN地址等多种联系人信息,并且每种联系系人信息里又可能包含有多种联系方式,这就造成了存储信息的冗余和维护上的困难。Communication Portal系统能够实现企业内部信息的共享并且提供联系人信息的一元化平台。本文将介绍基于Web服务的Communication Portal的实现,并且对服务器端和客户端的具体实现进行讲解。

关键词:Communication Portal Web服务 冗余 一元化

中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2012)09-0157-03

1、前言

随着企业规模的扩大,企业内部各子公司之间信息相对独立,各分公司之间的沟通较为闭塞,总公司也不能共享其下子公司的信息,当总公司的管理者需要联络分公司某位不认识职员时,需要首先联络该公司与总公司进行联络的部门,查询该员工的信息,并通过该部门将查询到的信息反馈到总公司,然后才能建立与那位职员的联络。这果过程不论使用电话,还是电子邮件进行都导致了极大的浪费,而且无形的加重了分公司联络部门的工作负担,造成了时间的浪费,通讯效率的低下。

对于企业内部各分公司间信息的共享和通信一体化平台的需求日益显现出来。Communication Portal系统是基于Web服务的综合通信平台。通过在各个子公司部署Communication Portal服务器端,任意子公司任意员工(在企业认证服务器中已经注册),就可以通过Communication Portal客户端访问其他子公司的服务器来获取所需联系人的信息。Communication Portal系统能够综合物理电话,手机,电子邮件,MSN等通信手段使用户面向同一平台进行多种手段的通信,可以很大程度提高通信效率,减轻员工的联系人信息维护工作。

2、Communication Portal系统结构

系统分为Server端和Client端两部分。如图1所示,Server端分布在企业各地分公司的服务器上。Client通过访问这些服务器可以获取该服务器所管理的资源。Client端通过访问不同的Server端来获取企业内不同地区分公司的信息。Server端通过访问本地的认证EDS服务器进行登陆认证,并通过读取本地的企业电话帐EDS服务器取得所有企业电话帐数据。当两个分公司间有业务联系时,需要在各分公司本地的认证服务器中为所涉及的其他分公司的人员添加认证ID。当数据量很大时Server端支持将数据分布在多个的RDB服务器上存储。其中RDB服务器支持Oracle和SQLServer数据库等。(如图1)

上面提及的EDS服务器是以目录树结构存储数据的数据服务器,目前在有许多大的跨国公司中广泛应用于企业员工数据的存储。本系统为了兼容企业现有数据故采用EDS服务器存储用户认证信息和企业电话帐数据。

3、Communication Portal服务器端详细设计及实现

3.1 表结构设计

由于本系统数据量庞大,因此将每个电话帐Service的数据分别存放在不同的表中,并且将多值属性和二进制属性分离出来,既便于操作,也提高了数据访问效率。以下提供的表结构为Oracle9i下运用的表结构,其他数据库环境下的表结构与此表结构大同小异。

(1)UserInfo表。用于存储企业认证EDS服务器中用户的单值属性的映射数据。

(2)UserInfoValues表。用于存储企业认证EDS服务器中用户的多值属性的映射数据。

(3)UserInfoBinary表。用于存储企业认证EDS服务器中用户的二进制属性的映射数据。

(4)GroupInfo表。用于存储企业认证EDS服务器中组的单值属性的映射数据。

(5)GroupInfoValues表。用于存储企业认证EDS服务器中用户的多值属性的映射数据。

(6)AgentInfo表。用于存储电话帐的关系数据。

(7)PoneBookMember表。存储个人电话帐单值数据。

(8)PoneBookMemberValues表。存储个人电话帐多值数据。

(9)PoneBookMemberBinary表。存储个人电话帐二进制值数据。

(10)PoneBookFolder表。存储个人电话帐Folder数据。

(11)GroupPoneBookMember表。存储组共有电话帐单值数据。表结构除将UserIndex换为GroupInde(GroupInfo表的外键),其他与PoneBookMember表相同。

(12)GroupPoneBookMemberValues表。存储组共有电话帐多值数据。表结构除将UserIndex换为GroupInde(GroupInfo表的外键),其他与PoneBookMemberValues表相同。

(13)GroupPoneBookMemberBianry表。存储组共有电话帐二进制值数据。表结构除将UserIndex换为GroupInde(GroupInfo表的外键),其他与PoneBookMemberBianry表相同。

(14)GroupPnoeBookFolder表。存储组共有电话帐Folder数据。表结构除将UserIndex换为GroupInde(GroupInfo表的外键),其他与PnoeBookFolder表相同。

(15)ContactPoneBookMember表。存储ContactList电话帐单值数据。表结构同PoneBookMember表。

(16)ContactPoneBookMemberValues表。存储ContactList电话帐多值数据。表结构同PoneBookMemberValues表。

(17)ContactPoneBookMemberBianry表。存储ContactList电话帐二进制值数据。表结构同PoneBookMemberBianry表。

(18)ContactPnoeBookFolder表。存储ContactList电话帐Folder数据。表结构同PnoeBookFolder表。

3.2 体系结构

Server端根据功能的不同分别实现两个WebService实例,CPService和CPDataAccess。

3.2.1 CPService服务

CPService提供访问认证服务器的接口,如图2所示。CPService中实现对认证EDS服务器的访问,为Client端获取认证服务器上的数据信息提供了充分的接口。(如图2)

3.2.2 CPDataAccess服务

CPDataAccess提供电话帐数据操作的接口,如图3所示。根据客户的需求,目前本系统包括:个人电话帐,ContactList电话帐,企业电话帐,Group电话帐。各电话帐的操作都大为不同,因此将各个电话帐以独立的类进行实现。为了提高系统的可扩展性,便于日后用户增加新的电话帐功能,系统采用反射技术,实现各电话帐Service的运行时加载。(如图3)

3.3 层次结构

服务器端的结构分为四层。Web接口层,电话帐控制层,电话帐实现层,数据访问层。如图4所示:

3.4 调用流程

下面以SearchEntry方法为例说明Server端接口的具体实现。

首先,Client端通过调用CPDataAccess服务的SearchEntry Web方法,然后,CPDataAccess调用CPDllMgr对象的SearchEntry方法,CPDllMgr根据电话帐的不同种类加载相应的电话帐服务,然后调用电话帐的SearchEntry方法。各电话帐在通过PBRdbAccess类和DirContext类提供的方法进行数据访问操作。

以下为CPDllMgr类的SearchEntry的实现。

3.5 接口详细设计

Server端提供的接口接口主要分为两大类:一是访问认证服务器提供的接口,二是电话帐数据操作提供的接口。

1.访问认证服务器提供的接口包括:

4、结语

本系统提供了集电话、Web会议、e-mail等通信方式于一身综合平台,是用户很方便的实现上述操作,而且是以通过EDS数据库存储数据,系统可以兼容原有数据,能够很方便的实现。

本系统特点:基于WebService,实现客户端与服务器的分离,实现客户端开发独立化。数据的共享,通过对遍布各地的服务器端进行访问可以充分的实现数据共享。本系统层次结构清晰,各电话帐操作相对独立。很好的运用了反射技术实现电话帐服务的动态注册。使系统的可扩展性大大的提高。认证系统使用现如今很多大型企业使用的EDS服务器。能够最大限度的兼容企业原有数据。本系统为企业内部提供综合的通信平台使通信效率大大提高。

本系统也有许多不足之处,目前系统只支持EDS服务器认证,其他的认证还暂不支持,尤其现在有很多企业采用RDB数据库进行存储数据。因此需要在认证支持上进行扩展。由于采用了WebService实现,系统地运行会有一定的延迟,虽然本系统的功能很多,但还不够强大有待于进一步加强,例如目前企业内部很多员工之间是用MSN,QQ,Skype的工具进行交流,如果能够将本系统与这些工具进行连协,实现共享数据,实现以上多种通讯方式将会对通信效率通信效果有进一步的提高。

参考文献

[1]郑阿奇,梁敬东,C#程序设计教程 第2版 [M],机械工业出版社,2011年.

[2]Jeffrey Richter,MICROSOFT .NET框架程序设计[M],北京:清华大学出版社,2006年.

[3]苏金国,王小振译,Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构(第2版)[M],人民邮电出版社,2011年.

[4]钟鸣等译,Oracle Database 11g数据库管理艺术 [M],人民邮电出版社,2010年

[5]袁和金等编著,数据结构(C语言版)(第二版)[M],中国电力出版社,2012年.

上一篇:汽车电子系统软件可靠性参数研究 下一篇:数据挖掘技术在移动通信中的应用