IM即时通信项目技术方案(参考模板)
即时通信方案

即时通信方案随着互联网技术和移动通信技术的快速发展,即时通信成为人们日常沟通的主要方式之一。
为了满足人们日益增长的通信需求,各大互联网公司都推出了自己的即时通信方案。
本文将就即时通信方案进行详细介绍。
一、IM的基础功能1.1 文字聊天文字聊天可谓IM的基础功能。
用户在即时通信软件上可以通过键盘输入文字进行聊天,发送与接收消息等。
1.2 表情贴纸等辅助聊天功能为了更好地表达情感,IM软件还提供了各种辅助聊天功能,如表情、贴图、动态表情等等。
1.3 群聊功能除了与单个用户聊天,IM软件还支持与多个用户或群组聊天。
群聊功能可以满足用户多方交流的需求。
二、即时音视频通话在信息时代,文字聊天无疑已经不能满足人们对交流的需求。
很多IM软件提供了音视频通话功能,为用户提供更加真实的交流体验。
三、消息撤回、消息阅后即焚等操作很多IM软件都提供了消息撤回、消息阅后即焚等操作。
这些操作在一定程度上可以防止用户发送错误消息。
四、地理位置共享等增值服务为了满足用户日常的沟通与交流需求,很多IM软件还提供了地理位置共享、红包等增值服务,为用户提供更加便捷的交流方式。
五、IM方案的发展前景IM软件已经成为人们日常生活中必不可少的部分。
未来,随着5G技术的快速部署,IM方案将面临更大的机遇与挑战。
各大互联网公司将会不断推陈出新,提高IM软件在智能硬件、行业应用等领域的应用能力,满足人们不断增长的沟通需求。
本文简要介绍了IM的基础功能,即时音视频通话、消息撤回、地理位置共享等增值服务,以及IM方案的发展前景。
未来IM软件将在社交、工作、学习、生活等方面为用户提供更加优质的接触方式。
2024年移动即时通信(IM)市场发展现状

移动即时通信(IM)市场发展现状简介随着智能手机的普及和移动互联网的快速发展,移动即时通信(Instant Messaging,简称IM)市场变得越来越庞大。
IM提供了实时、方便的沟通方式,已经成为人们日常生活和工作中必不可少的工具之一。
本文将对移动IM市场的发展现状进行详细分析。
迅猛发展的移动IM市场移动IM市场呈现出迅猛发展的趋势。
根据统计数据显示,全球移动IM用户数量不断增加,截至2020年底已经超过了50亿,占全球互联网用户总数的70%。
这一数值显示了移动IM市场的庞大潜力和广泛应用领域。
主要移动IM平台微信作为中国最大的移动IM平台,微信拥有庞大的用户基础,并且持续保持着稳定增长。
截至2020年底,微信的月活跃用户达到了11亿,广告和商业化业务收入也在不断增长。
微信提供了丰富的功能,包括即时消息、语音通话、视频通话、小程序等,满足了用户在社交、商务、娱乐等方面的需求。
WhatsAppWhatsApp是全球范围内使用最广泛的移动IM应用之一,其月活跃用户已经超过20亿。
WhatsApp提供了点对点的加密通讯功能,保障了用户的信息安全。
除了基本的即时消息功能,WhatsApp还支持语音通话、视频通话、文件传输等功能,满足用户的多样化需求。
Facebook MessengerFacebook Messenger是Facebook旗下的移动IM平台,用户数量超过10亿。
Facebook Messenger与Facebook账号紧密关联,用户可以与Facebook上的朋友进行即时通信。
该平台还支持多种功能,如语音通话、视频通话、支付等,让用户在社交、商务等方面保持便利的沟通。
TelegramTelegram是一款开源的移动IM应用,用户数量超过4亿。
该应用注重信息安全和隐私保护,提供了点对点的加密通讯功能。
此外,Telegram还提供了各种实用的功能,如群组聊天、频道订阅、文件传输等,满足了用户的多样化需求。
im消息存储方案

IM消息存储方案引言随着即时通信(IM)应用的普及,消息存储成为了IM系统中的重要组成部分。
IM消息存储方案主要负责将用户发送和接收的消息进行持久化存储,以实现消息的可靠传递和历史记录的保存。
本文将介绍IM消息存储方案的基本原理、常见的存储方案以及其优缺点。
基本原理IM消息存储方案的基本原理是将用户发送和接收的消息存储在持久化存储介质中,以便在需要时能够进行查询和检索。
常见的持久化存储介质包括关系型数据库、NoSQL数据库和分布式文件系统等。
在设计IM消息存储方案时,需要考虑以下几个方面:1.数据模型:消息存储方案需要定义合适的数据模型来存储用户的消息,包括消息内容、发送者、接收者、时间戳等信息。
合理的数据模型能够提高查询效率和降低存储成本。
2.存储引擎:选择合适的存储引擎对于消息存储方案来说非常重要。
常见的存储引擎包括关系型数据库的MySQL、NoSQL数据库的MongoDB和分布式文件系统的Hadoop等。
不同的存储引擎有不同的特性和适用场景,需要根据需要进行选择。
3.数据一致性:在IM系统中,消息的可靠传递是很重要的,因此需要保证数据的一致性。
消息存储方案需要采用合适的事务管理机制,保证消息的发送和接收的原子性和一致性。
常见的存储方案关系型数据库关系型数据库是一种基于关系模型的数据库,具有良好的数据一致性和事务支持。
在IM消息存储方案中,可以使用关系型数据库来存储用户的消息,例如使用MySQL或PostgreSQL。
关系型数据库能够提供较高的查询性能和数据一致性,但在大规模的消息存储场景下可能存在扩展性和性能瓶颈。
NoSQL数据库NoSQL数据库是一种非关系型的数据库,具有高扩展性和高性能的特点。
在IM消息存储方案中,可以使用NoSQL数据库来存储用户的消息,例如使用MongoDB或Cassandra。
NoSQL数据库适合存储大规模的非结构化数据,能够提供高吞吐量和低延迟的数据访问,但在数据一致性和事务支持方面可能存在一些限制。
即时通讯(IM)工具功能介绍及需求

即时通讯(IM)工具功能介绍及需求263、TOM、中国电信在短时间内以不同的方式进入即时通讯市场,而腾讯、MSN等角色也正在不断的变脸过程当中,即时通讯的格局陡然间有些模糊了从2004年6月腾讯在中国香港主板完成上市开始,即时通讯市场上一直动静不断。
7月,新浪收购了UC即时通讯技术平台,9月21日,263网络集团在北京正式宣布收购多媒体通讯软件e话通,而就在此前不久,广东电信在省内开始测试“CALL ME”。
即时通讯市场在转瞬间变得十分拥挤的同时也变得有些险象环生。
目前,国内最为流行的即时通讯软件是OICQ(简称QQ)。
它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。
Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。
作为Windows XP的一部分,Messenger 整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。
它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视,此外还有许多有特点的IM软件。
即时通讯的原理我们经常听到TCP/IP和UDP(用户数据报协议)这两个术语,它们都是建立在更低层的IP协议上的两种通讯传输协议。
前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。
而后者是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的文件传输协议。
QQ就是使用UDP协议进行发送和接收“消息”的。
当你的机器安装了OICQ以后,实际上,你既是服务端(Server),又是客户端(Client)。
当你登录OICQ时,你的OICQ作为Client连接到腾讯公司的主服务器上,当你“看谁在线”时,你的OICQ又一次作为Client从QQ Server上读取在线网友名单。
当你和你的OICQ伙伴进行聊天时,如果你和对方的连接比较稳定,你和他的聊天内容都是以UDP的形式,在计算机之间传送。
通信项目建议书

通信项目建议书一、项目背景随着信息化时代的到来,通信技术的发展日新月异。
在这个信息爆炸的时代,人们对通信技术的需求越来越高。
因此,通信项目的建设成为了各个行业的重要议题。
在这样的背景下,我们提出了以下通信项目建议书,希望能够为您的企业或组织提供一些建设性的建议。
二、项目目标1. 提高通信效率:通过引入先进的通信技术,提高企业或组织内部的通信效率,加快信息传递和决策速度。
2. 降低通信成本:通过优化通信设备和网络结构,降低通信成本,提高通信效益。
3. 提升通信安全:加强通信设备和网络的安全性,防范各类网络攻击和信息泄露。
三、项目内容1. 通信设备更新换代:针对企业或组织现有的通信设备进行全面的更新换代,引入最新的通信设备,提高通信效率和质量。
2. 网络结构优化:对企业或组织内部的网络结构进行优化,提高网络的稳定性和安全性,降低通信成本。
3. 通信安全加固:加强对通信设备和网络的安全防护,防范各类网络攻击和信息泄露,确保通信的安全可靠。
四、项目实施计划1. 项目启动阶段:确定项目目标、范围和需求,成立项目组织机构,制定项目计划和预算。
2. 项目实施阶段:进行通信设备更新换代、网络结构优化和通信安全加固等工作,确保项目的顺利实施。
3. 项目验收阶段:对项目的实施效果进行全面评估和验收,确保项目达到预期的效果和目标。
五、项目预期效果1. 提高通信效率:通过通信设备更新换代和网络结构优化,提高企业或组织内部的通信效率,加快信息传递和决策速度。
2. 降低通信成本:通过通信设备更新换代和网络结构优化,降低通信成本,提高通信效益。
3. 提升通信安全:通过通信安全加固,加强通信设备和网络的安全防护,防范各类网络攻击和信息泄露。
六、项目投资与收益分析1. 项目投资:根据项目的具体规模和范围,制定合理的项目投资预算,确保项目的顺利实施。
2. 项目收益:通过提高通信效率、降低通信成本和提升通信安全,带来的直接和间接收益,确保项目的经济效益。
IM即时通讯实现原理

IM即时通讯实现原理即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进⾏通讯的,TCP/IP和UDP都是建⽴在更低层的IP协议上的两种通讯传输协议。
前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建⽴起的虚电路,进⾏连续的、双向的、严格保证数据正确性的⽂件传输协议。
⽽后者是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的⽂件传输协议。
QQ就是使⽤UDP协议进⾏发送和接收消息的。
当你的机器安装了OICQ以后,实际上,你既是服务端(Server),⼜是客户端(Client)。
当你登录OICQ时,你的OICQ作为Client连接到腾讯公司的主服务器上,当你看谁在线时,你的OICQ⼜⼀次作为Client从QQ Server上读取在线⽹友名单。
当你和你的OICQ伙伴进⾏聊天时,如果你和对⽅的连接⽐较稳定,你和他的聊天内容都是以UDP的形式,在计算机之间传送。
如果你和对⽅的连接不是很稳定,QQ服务器将为你们的聊天内容进⾏中转。
其他的即时通信软件原理与此⼤同⼩异。
⼀般的步骤:⾸先,⽤户A输⼊⾃⼰的⽤户名和密码登录即时通讯服务器,服务器通过读取⽤户来验证⽤户⾝份,如果⽤户名、密码都正确,就登记⽤户A的IP地址、IM客户端软件的版本号及使⽤的TCP/UDP端⼝号,然后返回⽤户A登录成功的标志,此时⽤户A在 IM系统中的状态为在线(Online Presence)。
其次,根据⽤户A存储在IM服务器上的好友列表(Buddy List),服务器将⽤户A在线的相关信息发送到也同时在线的即时通讯好友的PC 机,这些信息包括在线状态、IP地址、 IM客户端使⽤的TCP端⼝(Port)号等,即时通讯好友PC机上的即时通讯软件收到此信息后将在PC 桌⾯上弹出⼀个⼩窗⼝予以提⽰。
第三步,即时通讯服务器把⽤户A存储在服务器上的好友列表及相关信息回送到他的PC机,这些信息包括也在线状态、IP地址、IM客户端使⽤的TCP端⼝(Port)号等信息,⽤户A的PC机上的IM客户端收到后将显⽰这些好友列表及其在线状态。
IM即时通信需求分析说明书

企业用户
02
以企业为单位,使用IM即时通信工具进行内部沟通、协作和管
理的用户。
政府机构用户
03
以政府机构为单位,使用IM即时通信工具进行内部沟通、协作
和管理的用户。
用户需求调研
01
通过问卷调查、访谈、焦点小组讨论等方式,了解各类用 户对IM即时通信工具的需求和期望。
02
调研内容应包括用户对功能、界面、安全性、稳定性等方 面的需求。
源分配,确保项目可控。
持续改进
总结需求变更管理经验教训,优化需 求变更管理流程,提高管理效率。
06
结论
需求分析总结
用户需求
用户需要一个能够即时发送和接收消息的 通信工具,支持文字、语音、视频等多种
形式的信息传递。
性能需求
IM应具备良好的稳定性、实时性和安全性, 确保用户能够快速、准确地接收和发送消 息,同时保护用户隐私和数据安全。
响应时间
用户发送信息后,系统应尽快做出响应,减少用户等待时间。
并发处理能力
IM系统应具备良好的并发处理能力,能够同时处理大量用户请 求。
可用性需求
界面友好
IM界面应简洁明了,易于操作,符合用户使用习惯。
适应性
IM系统应适应不同设备和操作系统,提供一致的用户 体验。
可扩展性
IM系统应具备可扩展性,能够随着用户规模和功能需 求的变化而进行升级和扩展。
步骤4
实施变更:根据确认的变更内容,调整项 目计划、资源分配等,确保项目顺利进行 。
步骤3
确认变更:与相关干系人沟通,确认是否 接受变更,并达成共识。
需求变更跟踪与控制
跟踪方法
建立需求变更跟踪表,记录每次需求 变更的内容、时间、责任人等信息。
即时通讯聊天软件需求规格说明书

即时通讯聊天软件需求规格说明书编写:审核:审批:2017年2月28日第1章前言1.1编写目的此需求规格说书名对《即时通讯》聊天软件做了全面细致的用户需求分析,明确所要开发的软件应该具有的功能,使系统分析人员、软件开发人员能够清楚地了解用户的需求,并再次基础上进一步提出设计与开发工作。
本说明书的预期读者为客户、系统分析设计人员,开发人员,项目管理人员,测试人员。
1.2编写背景随着集团近几年信息化加速的发展,原有OC即时通讯工具已经不能满足当前的需求,催生新的即时通讯工具的诞生。
新的即时通讯工具集成原OA平台,全面提高企业员工沟通效率和办公效率,提高企业信息化水平。
1.3词汇表即时通讯--(Instant Messaging,简称IM)是一个终端服务,允许两人或多人使用网络及时的传递文字、文件、语音等信息。
B/S结构--(Browser/Server)浏览器/服务器模式,客户机上只要安装一个浏览器(Browser),浏览器通过Web Server 同数据库进行数据交互。
C/S结构--(Client/Server)客户机/服务器模式,客户端需要安装专用的客户端软件。
第2章项目概述2.1系统目标即时通讯系统能完成端对端的即时通讯,信息在企业内部的广播,方集团内部员工信息沟通和交流。
2.2软件使用范围集团内部全体员工,预计人数约1万人。
2.3系统结构系统包括两种终端:服务器端、客户端。
●服务器端提供基本的IM服务,如推送系统信息,机构用户管理,分布式配置,负载均衡等;●客户端和客户端之间,客户端和服务器之间可以点对点进行通信;●一个局域网内服务器端只能启动一个;2.4软件功能2.4.1软件功能概述C/S端B/S端第3章客户端功能需求3.1软件更新系统在启动时候判断软件的版本号,如果软件有新的版本,提示用户更新软件。
基本流程3.2登录/退出3.2.1用户登录用户启动程序,输入用户名和密码,服务器验证登录信息,验证成功可进入IM主界面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章技术方案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.故障发生前,建立运维质量仪表盘我们一定要建立运维数据看板,这个看板的数据并且要在业务、测试和运维人员对平台的情况达成一致,让大家足够重视这份数据,这样数据便有了推动力。
建议这个地方的核心数据指标不要太多,因为涉及到多个团队,大家不能够一致理解,特别是传达到管理层,太多的指标,容易失去关注的焦点。
通行的做法,就是用可用性来做运维的数据看板。
可用性的计算方法有简单的方法,也有复杂的方法。
简单的方法就是在监控系统中搞一些探针来模拟用户监控,最后我们能得出故障的时长和可用性的时间,这样我们可以建立每天、每周、每月、每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目标为实现PC H5页面接入集成即时通讯基础服务提供相应的SDK。
提供PC客户端的登录、消息通知、会话、消息、通知、群聊、临时会话讨论组相关功能接口。
3.3. 系统架构根据对需求的分析和系统目标的总结,本方案采用面向服务的体系结构技术来构建统一的IM即时通信平台,软件可以分布式部署在服务器集群上,实现对海量并发通信的实时转发。
3.3.1.系统架构设计11.3.1.1系统架构图系统采用多层体系架构:分层设计实现“高内聚、低耦合”,易于控制、易于扩展,分为数据层、服务层、接口层、应用层,具体说明如下:➢数据层:提供持久化数据存储和数据服务,包括即时通信消息数据、用户及关系数据、平台基础数据等,使用mysql来进行持久化。
➢服务层:整个平台的核心层,为平台提供即时通讯基础服务能力,使用SOA 框架来构建系统服务,使用kakfa来进行信息转发,同时为了提高并发能力,使用redis来进行数据缓存。
➢接口层:向第三方业务应用提供即时通讯基础服务能力集成客户端SDK接口(包括:android\ios\pc)和服务器端SDK接口。
➢应用层:为需要集成即时通讯基础服务能力的第三方应用。
11.3.1.2SOA框架采用SOA架构(面向服务架构),它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。
服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性,能更迅速、更可靠、更具重用性架构整个业务系统。
3.3.2.系统软件架构➢高可用的架构,高并发消息处理。
➢使用高性能互联网中间件:Redis,Kafka,Cassandra,Zookeeper。
➢移动消息和移动场景深度优化,兼顾消息可靠性和效率。
➢原生移动端SDK优化,APP完美集成。
➢基于XMPP协议及成熟的Mina通信架构,性能稳定、效率高;➢业务逻辑Module基于总线的设计方式,通过插件及总线驱动扩展业务Module;➢数据接入采用hibernate持久化架构,能够接入多种主流数据库;➢整个系统设计开发基于标准的J2EE 技术,使用标准的HTML, JSP, SOAP, JDBC 等技术;➢支持TCP、UDP、HTTP多种协议;➢外部系统接入基于SOA体系架构,具备良好扩展性能。