企业级即时通信系统的开源解决方案内容摘要:

用都是百万元级的,如果它们能引入即时通信系统,既 7 能帮助员工实现互动沟通和协作,又能有效而低成本地获得企业内外的信息。 显然,企业级即时通信工具再好也应该根据具体的经营状况而定。 它对有些企业来说反而是一种累赘。 因为部分企业仅仅把即时通信工具等同于一般的聊天工具,而有的则作为一种日常办公工具。 商业化解决方案 商业化的即时通信软件已形成良好的应用模式,及强大的企业支持。 其抗险能力强,功能完善,且具备较多的成功解决案例。 例如:国内的 GoCom、腾讯 RTX(图 3),国外的 IBM Lotus Sametime、 AOL 的 AIM PBE。 但是企业在实施初期,需要支付高昂的费用。 图 3 腾讯 RTX 新的选择 —— 开源解决方案 自由、安全、社区支持、价格合适,早已是人们对开源产品的印象。 随着开源技术的成熟,个人或企业使用开源软件作为解决方案的数量日趋增加。 在即时通信方面,常用的开源通信协义是 XMPP,它继承了在 XML 环境中灵活的发展性。 目前,常见的开源即时通信软件有 Spark(图 4)、 JeCatJabber、 LinQ、 Instabird、Pidgin 等。 而 MySQL则是典型的开源数据库。 在开源社区中,有很多成熟的解决方案,如: Openfire + Spark +MySQL。 8 完备的开源技术,使得构建开源环境下的企业级即时通信成为可能。 它们不但具备商业化软件同样成熟的解决方案,更重要的是,它们具备自由开源的理念以及开源社区的广泛支持。 图 4 Spark 即时通信工具 9 4 需求分析 不同的企业对即时通信工具的需求都有所不同。 有的需要与 OA 系统产生交互功能 ,有的需要多人视频会议。 因此下文将论述该软件的基本需求,如需扩展,可参阅相关资料。 与传统 IM 相近的功能 企业级即时通信工具,首先是作为即时通信工具来使用,因此必需满足该部份功能。 在通信技术或通信能力上,应该与传统的 IM 相近。 如简单的文字通信、文件传输、查看好友信息等。 而聊天记录、个人头像、截图等扩展功能都是在基本功能的基础上建立起来的。 其次,在架构时,我们应该考虑网络通信问题。 像 和 MSN 那样的聊天工具都是建立在广域网下的,或者有代理服务器。 而企业级 IM 是建立在企业内部局域网内,除非企业的 OA 或应用软件架构在广域网,否则需要解决网间路由的问题(注:可使用 openfire 的路由 插件解决) [15]。 IM 的企业特色 作为企业级软件,首先是具有企业文化特色。 除了企业外部美工形象外,其内部架构也很重要。 比如部门分级, A 部分下设有 A1 和 A2 子部份。 由于 IM 的使用涉及公司里成百上千的员工,所以清晰的部门分级是提高效率的措施之一。 与此同时,个人信息也应当具有企业特色。 在传统 IM 中,个人信息(包括个人资料和个人办公状态)存在着虚拟性以及极端的不真实性。 而企业 IM 应该使用真实信息。 很明显的应用是,当企业 IM与 OA系统集成时,当某员工需要在业务审批流程中签署文件,此时该文件需要具有不可抵 赖性、不可篡改性。 在信息流通上,除了用优质的物理设施来支持外,合理的业务逻辑也很重要。 在传统 IM 上,信息是允许丢失的,但企业 IM则不允许任何重要信息丢失。 如审批业务时,有一小环节的信息丢失,使得下流的任务不能按时开展,而处理上流的业务又得不到反馈,在这个争分夺秒的时代,这是一件很可怕的事。 因此,该系统应该具有信息保存以及信息恢复的能力。 在信息安全上,企业的操作系统应该安装杀毒软件、防火场等软件,除此之外,企业 IM 的信息应该有自身一套安全措施。 比如防修改,防抵赖等。 在此可 10 使用信息加密,指纹识别等技术。 常用 的加密方式是 MD5,验证方面可考虑 CA认证方式。 信息监控是最容内被忽视的一个模块。 因为平常看不出该模块的实际效益。 但在重要环节上,它却是信息安全,维护信息流通性的有力后盾。 信息监控的任务主要集中在流量监控、操作监控、任务流监控等方面。 当发生网络异常时,相关人员可及时采取措施,防止该异常对企业网络环境的破坏。 很多政企的预警系统都是建立在信息监控网络上的。 需求总结 企业 IM更注重信息的传递能力及安全性,它不需要像传统 IM 一样拥有繁多的系统功能。 当然也可以作相应的扩展。 例如多人视频会议、文件夹传输(不 同于一般的文件传输,可传输文件目录结构)、发起问卷调查、项目申报、 SMS 短信服务等。 这些功能都视具体应用环境而定。 11 5 系统分析 系统分析是在需求分析的基础上,构建出具体模型。 本文的系统分析,将对企业 IM 分成客户端及服务端进行设计。 其中涉及的内容有,整体框架、客户端框架、服务器框架。 整体框架 首先假设企业要求把即时通信工具构建在内部局域网(广域网的结构相似)。 其次是企业内部已建立起基本的数据资源(如:部门信息、员工信息,表 展示了其本的数据要求)。 表格 部门、员 工信息 字段属性 数据类型 IS NULL 部门信息 部门 ID (DEPID) INT NOT NULL PK 部门名称 (DEPNAME) VARCHAR(30) NOT NULL 部门父 ID(DEPPID INT NOT NULL FK 员工信息 员工 ID(USERID) INT NOT NULL PK 员工登录名(ULOGINNAME) VARCHAR(20) NOT NULL 员工性名 (USERNAME) VARCHAR(10) NOT NULL 员工 EMAIL(EMAIL) VARCHAR(40) NULL 密码 (PASSWORD) VARCHAR(40) NULL 部门 — 员工信息 部门 ID( DEPID) INT NOT NULL PK FK 员工 ID(USERID) INT NOT NULL PK FK 职称 (TITLE) VARCHAR(20) NULL 针对以上两点, IM 系统的大致结构为: ( 1)中央服务端 要求在局域网中,客户端能够根据服务端 IP 以及服务端口寻找到服务端并 12 进行交互。 通过开源服务端 Openfire,可轻松解决以上问题。 ( 2)资源数据库 资源数据库 中保存着企业内部的基本信息,此处只需使用表 所要求的数据。 一般企业内会使用 Orcale 数所库,同时也可选用开源数据库 MySQL。 ( 3) IM 系统数据库 此数据库与资源数据库不一样,它是专门为 IM 系统而设的。 其中包括消息的存读、用户办公状态的存读等。 ( 4)客户端 如果采用 B/S 结构,则可集中管理客户端,开发及维护成本高,但很难利用本地资源,其实现方式很多,一般使用 javascript 和 css 丰富页面效果。 若采用 C/S 结构,则需要在客户端安装应用程序,虽然维护成本高,但可展现丰富的效果,可使用功能强大的 Java 语言及 Smack API 开发。 ( 5)通信协议 通信协议是沟通客户端与服务端的桥梁。 互相通信的信息都是遵守 XMPP 通信协议并进行封装,使得多种产品(如: MSN、 、 GTalk)互通成为可能。 其中XMPP 是著名的开源通信协议。 通过以上开源产品,则可构建企业 IM 系统,如图 5: 图 5 整体结构 13 客户端框架 客户端采用 MVC 结构设计,应用多种设计模式,如单例模式、门面模式、工厂模式,优化设计过程,使得软件内部低耦合、高内聚,如图 6。 图 6 客户端框架图 服务端框架 服务端主要 由应用服务层及数据层组成,并与客户端进行遵守 XMPP 协议的通信。 其中应用服务层采用 Openfire 集成各种 IM 系统功能,或与 OA 系统集成。 其优点如下 [16]: ( 1) Openfire 内部集成 ResinWeb 服务器,可以设计其于 Web 的管理程序。 ( 2)实现了插件机制,方便扩展。 服务器在运行的时候,会定时地扫描一个特定的录下的文件,当发现有新的 Jar 包出现时,就读入它所有的类,分析类中有没有支持插件接口的类,如果有,就加载并运行它。 ( 3)用户容量方面,单台服务器可支持上万并发用户。 在测试环境下可以支持 5000用户同时在线,每秒可以转发 2020 个包。 ( 4) Openfire 安装和使用都非常简单。 14 6 详细设计 详细设计将根据需求分析及系统分析,对企业即时通信系统进行更细致的设计,为编码阶段作出充分准备。 在详细设计阶段,我们将看到该系统界面的大体轮廓,以及相关技术的解决方法。 开发语言及开发平台 开发语言: Java 选用 Java 作为开发语言,除了它简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言外,由于 Openfire 是由 Java 编写的,所以使用 Java 语言作为开发语言,能够简单地实现相关接口,并制作插件。 同时 Java 有很好的跨平台能力,其客户端能够轻松地运行各种平。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。