IM即时通信项目技术方案.docx

上传人:b****4 文档编号:12255235 上传时间:2023-04-17 格式:DOCX 页数:23 大小:197.46KB
下载 相关 举报
IM即时通信项目技术方案.docx_第1页
第1页 / 共23页
IM即时通信项目技术方案.docx_第2页
第2页 / 共23页
IM即时通信项目技术方案.docx_第3页
第3页 / 共23页
IM即时通信项目技术方案.docx_第4页
第4页 / 共23页
IM即时通信项目技术方案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

IM即时通信项目技术方案.docx

《IM即时通信项目技术方案.docx》由会员分享,可在线阅读,更多相关《IM即时通信项目技术方案.docx(23页珍藏版)》请在冰豆网上搜索。

IM即时通信项目技术方案.docx

IM即时通信项目技术方案

第一章技术方案

3.1.工程概述

工程名:

建设单位及项目负责人:

3.1.1.工程背景

随着移动互联网的爆发式发展,手机上的沟通变得越来越重要,即时通讯作为当今互联网时代的一个重要通信手段,互联网时代的人、企业等已基本接受和习惯即时

通讯带来的各种便捷服务,各种即时通讯工具、聊天软件应用也如雨后春笋层出不穷,用户也越来

越习惯利用在手机APP中植入的即时通讯功能服务进行在线即时聊天互动,获取产品或服务的信息,或进行人与人之间的沟通互动,当前四川电信通过积极探索

实践,在移动互联网领域也创新地开发出一些行业重虽级的业务应用,对即时通讯能力服务需求

非常急迫,无专属即时沟通工具,买家与卖家间无即时沟通,订单及物流通知未及时送达;QQ

微信等第三方即时通讯工具,只能解决交流的问题,而无法对用户体验和平台无缝性带来帮助,没有与自身产品线进行的深度集成,应用需求无法真正满足。

因此建立一套统一的IM平台以及专属的聊天产品,对应用的推广与发展有非常重要的意义。

3.1.2.需求概述

鉴于电信自主运营应用对IM即时通讯能力服务有相应的集成需求,需要构建一

套云即时通讯服务平台,为需要IM即时通讯的应用提供基础的即时通讯能力服务,

支持嵌入到电信自主运营开发的业务应用中提供即时通讯服务,实现即时通讯基础服

务能力平台化、SDK类型丰富化,支持多应用接入。

同时基于IM即时通讯平台可以定制一套专属于自己的IM通讯软件,对数据的保

密性、安全性以及功能的多样性都能很好的满足。

3.2.建设目的及原则

构建一套云即时通讯服务平台,为需要IM即时通讯的应用提供基础的即时通讯

能力服务。

同时基于IM即时通讯平台可以定制一套专属于自己的IM通讯软件,对数

据的保密性、安全性以及功能的多样性都能很好的满足。

3.2.1.总体建设原则

11.2.1.1系统可用性原则

系统可用性(Availability)是用来衡虽一个平台系统能提供持续服务的能力,

它表示的是在给定时间系统或者系统某一能力在特定环境中能够满意工作的概率。

采用先进的技术和方法,满足和适应移动互联网技术更新速度,在满足开发时间

节点的要求下,满足用户的交互体验和功能需求,采用智能化的处理特色,满足运营

管理的效率要求。

在系统运行当中可能会影响到系统可用性的因素:

1.操作人员和组织

其实这个地方平台在使用中的管理员,他是否重视运维?

组织是否已经认识平台

带来的价值,把平台的可用性当作自己的一个核心能力来看待。

是否把面向用户的业

务能力和运维很好的对接?

是否建立起用户质虽的组织文化。

2.业务流程

业务管理平台的流程梳理多个角色自己的关系和职责。

我们第一个要去看这个流

程在面对故障的是否起到了积极的作用,比如说能够确保故障信息的准确送达,同时

保证处理人的角色和职责是清晰的。

其次不断去检查流程是否可以自动化驱动,而非

人为驱动。

人是不可靠之源!

我们最终希望形成是一个自动化、标准化的流程,这样

的流程不容易被异化,且能保证预期执行结果一致。

3.后期的运维技术

很多时候大家看到的技术是运维技术,其实恰恰相反对于业务来说,对其高可用

的影响,因此在其中需要遵循很多原则,有一些原则需要有普适的参考价值。

比如说

服务降级、过载保护、服务公共化等等。

这些方法论是否已经融入到研发和运维的架

构设计之中。

业务功能需求优先,而非可运维性优先,可运维性最终就是业务的质虽。

4.业务管理

把你的平台的业务能力标准化,你可以转换成我们多个业务指标,比如说质虽、

可用性、用户体验、用户满意度、成本,有了这些业务导向性指标,才能把IT能力

和业务更好的对接起来。

否则很容易在组织内,形成运营维护共同认识,而非创造价

值部门。

这一点还有一个重要性,就是让维护人员也要足够的认识到,他们的能力直

接和业务相关,需要增强业务敏感度。

在系统运行当中为了保障系统的可用性所采用的策略:

1.故障发生前,建立运维质H仪表盘

我们一定要建立运维数据看板,这个看板的数据并且要在业务、测试和运维人员

对平台的情况达成一致,让大家足够重视这份数据,这样数据便有了推动力。

建议这

个地方的核心数据指标不要太多,因为涉及到多个团队,大家不能够一致理解,特别

是传达到管理层,太多的指标,容易失去关注的焦点。

通行的做法,就是用可用性来做运维的数据看板。

可用性的计算方法有简单的方

法,也有复杂的方法。

简单的方法就是在监控系统中搞一些探针来模拟用户监控,最

后我们能得出故障的时长和可用性的时间,这样我们可以建立每天、每周、每月、每

Q的可用性,可以做到分业务、分服务(更细粒度)等等;复杂的方法在模拟数据的基础

上,可以把事件系统记录的时间数据拿过来作为评估的标准。

另外可以把可用性上升

到质虽层面,这个里面涉及到的评估维度(成本、用户体验、满意度)就更多了,数据

获取的来源也变得更多,有些是来自于客服系统,有些是来自于舆情监控,有些是来

自于运维容虽系统,有些是来自于事件系统等等,不过最终呈现的指标就是一个

质苗。

2.故障发生前,设定技术准则和要求

运维需要和研发建立整体的技术标准和规范要求。

因此从保障系统可用性的角度

来说,我们需要设定一个路线图,最终服务于这个平台运行的可用性。

比如说之前我

提到的影响系统的因素里面讲到了先做标准化,然后做公共服务化、最终服务无状态

化。

运维一定要把标准化作为核心要务来推进,建立标准化的运维环境,建立标准化

的技术栈,建立标准化的高可用方法论,最终这个业务的可用性一定是有保证的。

3.故障发生时,恢复是第一要务

故障发生的时候,恢复必须是保证系统可用性所必须要时刻记住的。

在故障的当下,定位故障原因是大忌,这往往让故障时长变得不可控,因为会直

接影响MTTR"均修复时间),影响用户的业务使用。

用一些标准的原则去隔离故障,

比如说服务器重启,链路禁用,DNS切换等等。

4.故障发生后即时的排查和复盘问题

每一次故障发生后,运维人需要牵头去复盘故障,刚刚说了我们恢复是第一要务,

所以故障的根本原因我们可能还不知道,此时就需要运维、测试和研发一起仔细的去

看整个的故障过程,看看到底哪儿有什么问题?

基本上也是从刚才说的四个方面来评

估。

不断的审视我们运维的能力和IT的能力,说“故障是运维最好的老师”的原因

也在于此,它能够不断驱使我们走向更高的成熟度。

11.2.1.2系统可维护性原则

系统采用集中部署便于集中维护,提供分权分级的权限管理机制,不同的系统模

块,不同的任务可以设置不同的数据操作、统计和监控查看分析权限。

系统采用构件化设计思想,系统框架与业务逻辑分离,具备开放的体系结构。

系统功能模块均采用插件式方式架构,易于修改,对某一个功能模块的修改,一

般不影响系统其他功能的正常运行;系统分析、调度更多采用的是配置模式,易于扩

展,新增服务时对系统的修改较少,仅需调整配置文件参数即可;系统具备方便且可定期执行、分析结果的业务测试功能。

11.2.1.3系统可靠性原则

系统可靠性指在规定条件下和给定时间内平台能正确运行的概率。

系统可靠性用

下列四个标准来判断:

平台在运行的过程中不为故障所破坏或停止;平台的业务流程

的结果不包括由故障所引起的错误;平台对执行业务的时间不能超过一定的限度;平

台运行在允许的网络内。

系统可靠性保障主要体现在以下两个方面:

系统采用增虽备份和全备份相结合的方式定期备份重要的系统数据;

系统应具有良好的并行处理机制,对存取冲突的竞争具有有效的仲裁和加锁机制,

充分保证事务处理的完整性,并降低系统I/O开销,提高并发用户查询和存取的

性能。

11.2.1.4系统可扩展性原则

可扩展性是软件设计的重要的原则之一,它以添加新功能或修改完善现有功能来

考虑软件的未来成长。

可扩展性是软件拓展系统的能力。

系统采用成熟的框架开发接口服务和后台管理,前端APP可采用Native和HTML5

代码混合实现,整体采用分层设计。

支持开闭原则设计思想,便于系统的灵活配置和

部署;支持插件技术,便于系统纵向延伸和对新技术的接入。

良好的可扩展性设计应该允许更多的业务功能在必要时可以被插入到适当的位

置中。

这样做的目的的是为了应对未来可能需要进行的修改,而造成代码被过度工程

化地开发。

可扩展性可以通过软件框架来实现:

动态加载的插件、顶端有抽象接口的

认真设计的类层次结构、有用的回调函数构造以及功能很有逻辑并且可塑性很强的代

码结构。

3.2.2.Android-SDK目标

实现android客户端接入集成即时通讯基础服务提供相应的SDK提供

android客户端的登录、消息通知、会话、消息、通知、群聊、临时会话讨论组

相关功能接口。

3.2.3.IOS-SDK目标

为实现iOS客户端接入集成即时通讯基础服务提供相应的SDK提供iOS客户

端的登录、消息通知、会话、消息、通知、群聊、临时会话讨论组相关功能接口。

3.2.4.PC-SDK目标

为实现PCH5页面接入集成即时通讯基础服务提供相应的SDK提供PC客户

端的登录、消息通知、会话、消息、通知、群聊、临时会话讨论组相关功能接口。

3.3.系统架构

根据对需求的分析和系统目标的总结,本方案采用面向服务的体系结构技术

来构建统一的IM即时通信平台,软件可以分布式部署在服务器集群上,实现对海虽并发通信的实时转发。

3.3.1.系统架构设计

妙受推思.wx*

目阴醴讯也点幅若说

1袒视

用户

H*

户信里

信恩传送

消息1K务色某町既(Kutleaat)

I

至存可卡

持与炉储时5MfRIifiM肖国的爆・用二反无瑚IE

tfME

系统采用多层体系架构:

分层设计实现“高内聚、低耦合”,易于控制、易于扩展,

分为数据层、服务层、接口层、应用层,具体说明如下:

数据层:

提供持久化数据存储和数据服务,包括即时通信消息数据、用户及关系数据、

平台基础数据等,使用mysql来进行持久化。

服务层:

整个平台的核心层,为平台提供即时通讯基础服务能力,使用SOA

框架来构建系统服务,使用kakfa来进行信息转发,同时为了提高并发能力,

使用redis来进行数据缓存。

接口层:

向第三方业务应用提供即时通讯基础服务能力集成客户端SDKg口

(包括:

android\ios\pc)和服务器端SDK1I口。

应用层:

为需要集成即时通讯基础服务能力的第三方应用。

11.3.1.2SOA匡架

采用SOA架构(面向服务架构),它可以根据需求通过网络对松散耦合的粗粒度应

用组件进行分布式部署、组合和使用。

服务层是SOA勺基础,可以直接被应用调用,

从而有效控制系统中与软件代理交互的人为依赖性,能更迅速、更可靠、更具重用性

顿构整个业务系统。

I

系统软件架构

3.3.2.

rREsi-m

高可用的架构,高并发消息处理

O

使用高性能互联网中间件:

Redis,Kafka,Cassandra,Zookeeper。

移动消息和移动场景深度优化,兼顾消息可靠性和效率。

原生移动端SDK优化,APP完美集成。

基于XMPPB议及成熟的Mina通信架构,性能稳定、效率高;

业务逻辑Module基于总线的设计方式,通过插件及总线驱动扩展业务Module;

数据接入采用hibernate持久化架构,能够接入多种主流数据库;

整个系统设计开发基于标准的J2EE技术,使用标准的HTML,JSP,SOAP,JDB篇技术;

支持TCRUDRHTTP多种协议;

外部系统接入基于SOA#系架构,具备良好扩展性能。

3.3.3.

消息发送拓扑

3.4.系统功能设计

3.4.1.基础IM服务能力

11.4.1.1注册

要使用IM通信功能,首先必须注册成为IM平台的用户,因此IM通信平台提供用户注册功能呢,

注册的用户只是IM通信平台用户,不是属于任何的业务系统用户,因此需要和应用系统用户关联起来,需要接入的应用进行用户关联。

11.4.1.2登录

IM通信的登录功能,就是用户上线功能,IM平台根据用户在线状态进行消息分发。

如果用户登录,即用户上线,则IM平台才会将消息发送给用户。

因此应用系统使用IM通信平台需要通过平

台提供的登录接口,登录到IM通信平台,同时平台会为每个用户生成一个会话token,作为通信凭

证。

11.4.1.3单聊

点对点聊天,IM平台单聊支持发送文本消息,图片消息,允许发送附件,附件可以是图片、普通格式文件、音乐文件、视频文件,还支持地位位置发送。

如果是移动

端还支持语音发送,语音聊天以及视频聊天。

11.4.1.4群聊

多对多聊天,支持用户和群里的其他用户进行聊天,支持发送文本消息,图片消息,表情消息;允许发送附件,附件可以是图片、普通格式文件、音乐文件、视频文件,还支持地理位置发送。

如果是移动端还支持语音发送,以及语音聊天。

11.4.1.5讨论组

特殊的群组,临时群会话,用户可以邀请自己的好友进入讨论组进行群聊,创建

讨论组的用户支持删除修改操作,被邀请用户可以退出讨论组,支持群聊的所有聊天

功能。

11.4.1.6已发送消息回执

即时通讯消息的发送,当消息发送到对端用户后,提供已发送消息回执机制,确

保即时通讯消息可靠发送到对方。

11.4.1.7即时通讯消息

即时通讯消息支持支持发送文本消息,图片消息,允许发送附件,附件可以是图片、普通格式文件、音乐文件、视频文件,还支持地理位置发送。

如果是移动端还支持语音发送,以及语音聊天。

11.4.1.8好友管理

好友管理提供对好友的添加,修改基础信息,删除,拉入很名单的功能,同时也

提供对好友申请的同意、拒绝以及忽略的操作

11.4.1.9群组管理

群组管理提供用户对自身群组的新建、修改、解散功能,同时也提供用户搜索群

组,申请入群以及退出群组功能。

3.4.2.产品功能

11.4.2.1注册

该软件提供的注册功能分为两部分注册,一部分是产品自身的业务范围内的用户

注册,一部分是调用IM通信平台接口注册成为通信平台用户。

在IM通信平台注册成

功后,需要将平台返回的用户id与产品业务内的用户进行关联,才能为后续功能提

供服务。

11.4.2.2登录

该软件提供的登录功能分为两部分登录,一部分是产品自身的登录,一部分是当用户在产品登录成功后再调用IM通信平台接口登录上通信平台。

用户两部分登录成功后就可以在软件中使用聊天功能。

11.4.2.3个人信息管理

用户登录成功后可以进入个人中心对自己的信息进行管理,比如修改昵称,或者修改个人头像,同时也允许修改个人登录密码。

11.4.2.4单聊

软件支持点对点聊天,当用户登录成功后,可以看见自己的好友列表,如果用户想和某位好友聊天只需要点击该好友就可以进入聊天页面。

支持发送文本消息,图片消息,允许发送附件,附件可以是图片、普通格式文件、音乐文件、视频文件,还支持地位位置发送。

还支持语音发送,语音聊天以及视频聊天。

11.4.2.5群聊

软件支持群聊功能。

当用户登录成功后,可以看见自己的群组列表。

用户可以点击自己加入的群组进入群里面和群的其他成员进行聊天。

群聊支持发送文本消息,图片消息,允许发送附件,附件可以是图片、普通格式文件、音乐文件、视频文件,还支持地位位置发送。

还支持语音发送,语音聊天。

11.4.2.6已发送消息回执

当用户发送消息后,如果接收方在线,则通信平台会将消息投递到对方,此时平台会给发送发发送一条消息已送达消息回执。

如果接收方没在线,则会将消息投递到

对方的离线消息队列中,并向发送方发送一条已送达的消息回执。

11.4.2.7即时通讯消息

Android客户端发送即时通讯消息支持文字、语音、图片、地理位置、表情消息

的发送和接收,同时也提供发送附件功能。

IOS客户端发送即时通讯消息支持文字、语音、图片、地理位置、表情消息的发送和接收,同时也提供发送附件功能。

PC客户端发送即时通讯消息支持文字、图片、表情消息的发送和接收,同时也

提供发送附件功能。

移动端消息传输采用压缩的二进制流,消息传输效率高,移动弱网络优化,保证移动网络下消息必达

底层基于长连接技术实现,结合Android和IOS平台的推送能力,支持消息即时推送。

同时提

供未读消息提示。

11.4.2.8好友管理

好友管理主要是提供用户对自己好友的管理功能。

包括添加好友,删除好友,将好友拉入黑名单,修改好友备注,已经好友申请消息管理功能。

好友添加:

用户可以通过好友电话号码或者好友昵称来搜索好友,电话号码搜索是唯一结果,好友昵称是多结果。

用户可以点击添加好友,先对方发送好友申请消息。

删除好友:

如果是移动端则在好友列表滑动要删除的好友,就会有删除按钮出现,点击删除按钮就会提示是否删除,点击是将删除好友,点击否取消删除

拉入黑名单:

如果是移动端则在好友列表滑动要拉入黑名单的好友,就会有黑名单按

钮出现,点击黑名单按钮就会提示是否将好友加入黑名单,点击是将好友拉入黑名单,点击否取消操作。

当好友被拉入黑名单后将不能接收好友发送的消息。

修改好友:

在好友列表,点击好友,进入好友的详细信息界面,在该界面右上角有设置按钮,点击进入就可以对好友进行备注修改。

好友申请消息:

当有用户提交好友申请时,你将会收到好友申请消息,此时你就可以进行同意或者拒绝的操作。

11.4.2.9群组管理

群组管理提供用户对自身群组的新建、修改、解散功能,同时也提供用户搜索群组,申请入群以及退出群组功能。

创建群组:

用户可以根据自己需要进行群组的创建,每个用户拥有4个群的

创建权限。

群组修改:

群创建者可以对群名字进行修改。

群组解散:

群创建可以在不需要群时,进行群解散操作。

群组申请:

用户如何想加入群组,可以先通过群名称或者群id进行搜索,当

搜索出来后,用户可以点击申请入群,等待群创建者同意。

退出群组:

普通用户可以直接点击退出群组功能退出群组,创建者如果想退

出则需要向将群转让给群里的某位成员,然后才能退出群组。

3.5.系统运行环境需求

3.5.1.平台硬件需求

系统能力的决定因素主要有两个方面,一个是架构设计,一个是系统硬件能力。

基于本系统的架

构设计,我们对系统能力和硕件做了如下评估:

5台

3台16核128G,2

10万

1

SSD

数据库服务器需要配置

台16核32G

同时配置足够的存储空间来

 

存储日志

20万

5台16核128G,2

数据库服务器需要配置

SSD

台16核32G

同时配置足够的存储空间来

存储日志

50万

7台16核128G,2台数据库服务器需要配置SSD

16核32G

同时配置足够的存储空间来

 

存储日志

100万

13台

11台16核128G,2

数据库服务器需要配置ssd

 

同时配置足够的存储空间来

台16核32G

存储日志

5

200万

23台

21台16核128G,2

台16核32G

数据库服务器需要配置ssd

同时配置足够的存储空间来

存储日志

3.5.2.系统安全要求

11.5.2.1应用层防护的必然性

信息安全正如木桶理论所描术的那样,WEBZ用系统的安全程序并不取决于我们

在某一个方面安全投入的巨大,而在于我们是否针对脆弱的防护御点采取了有效的措

施。

WEB5用系统的防护需要采用专业的针对应用层。

11.5.2.2阻断应用攻击

攻击防护方面要求专业的WEBZ用防护设备进行防护,能通过对输入内容的过滤及请求过滤实现对WE瞄点的保护。

能有效防止跨站脚本攻击、SQL注入等常见攻击。

同时还需要有强大的可定制

功能,针对WEW用系统站点的特性进行定制安全策略,从而最大程序防护WE瞄点。

11.5.2.3屏蔽安全隐患

为了防止服务端敏感信息泄露需要通过有效的技术手段对现有网站的敏感信息进行屏蔽,如备份文件的下载、敏感数据库下载,管理后台的外网尝试等,另外要求能屏蔽编写程序过程中遗留下的程序注释,对服务出错信息进行有效屏蔽。

完善的事件处理

1.事件检查

针对WE区用系统,采用WEE^用扫描器进行一次WE繇统全面的OWASPTOP检

测,可以帮助用户充分了解WEE^用存在的安全隐患,建立安全可靠的WEE3S用服务,改善并

提升应用系统抗各类WEEZ用攻击的能力。

2.事中警告

针对各类攻击行为及异常访问行为,实时告警并通过各类方式通知给安全管理员,便于快速处理安全事件。

3.事后分析

通过系统内部告警日志,实现对攻击源的定位分析,同时提供各类统计分析,方便掌握整个应用系统的动态安全状况及运行状态。

11.5.2.4软件配置建议

 

CentOS764位

操作系统

1

数据库

MySQL5.7版

2

TOMCAT

tomcat8.0+

运行版本

JDK7.0+

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1