论文部分内容阅读
随着信息化技术的发展越来越多的企业决策层依赖软件对企业资源进行管理。一般的企业资源管理系统,可以管理所有资源信息,而不涉及人员之间的协同,人员的协同需要依赖其他协同办公软件。我们需要一个集资源管理与协同办公于一体的系统,而这个系统中需要一个能够支持企业管理的基础服务子系统,这个子系统可以提供讨论交流、消息推送、文件分享等功能。而这个企业管理系统中将所有管理抽象成最基本的事务,一个公司是一个事务,而下面可能有财务、采购、销售等等不同的子事务,甚至采购某件物品也是一个事务。一个公司有许多事务,而一个事务中有大量的讨论交流、消息推送、文件分享这些活动,并且企业之间也可以通过事务进行协同。因此这个子系统需要满足高并发与可扩展性,分布式是必不可少的,我们将开发一个分布式聊天服务子系统来支持这些需求。协同工作需要服务端与客户端可以相互调用,为了方便扩展,讨论交流与消息推送等我们将采用RPC机制。为了缓解服务器处理大量的客户端连接与业务处理的压力,我们将连接服务器与业务处理服务器分离,这样也使得用户只需要保持与一台服务器连接即可,并且消息群发时不需要广播。客户端目前有Java客户端与javascript客户端,服务端可以包括前台服务器与后台服务器,前台服务器是连接服务器,后台服务器是业务逻辑处理服务器。其中网络通信我们使用高性能的Netty框架,这是一个高性能、异步事件驱动的java NIO框架,而且支持多种协议。对于文件分享功能将其独立为网盘模块,使用采用事件驱动、异步编程的nodejs实现。底层数据库持久化也需要支持集群。目前与主业务逻辑相关的,采用关系数据库Mysql集群,使用分布式数据库服务的中间件Cobar Server来管理。而网盘模块的文件信息存储采用非关系数据库MongoDB集群。整个子系统架构清晰,可扩展性好,能够满足高并发的要求。