最终项目 X-Messenger Servers
2010-07-26 10:33
X-Messenger是 轩辕高端IT培训中心 推出的即时通信(Instant Messenger)工具,支持文字聊天、文件传输、好友管理等即时通信功能。作为 Linux C++系列 课程的最终项目之一,旨在锻炼学员对C++基础、C++标准库、Boost类库或ACE(二者选其一)、数据库开发的掌握程度,同时通过该项目的实现,充分了解高吞吐量、低延迟的高性能服务器应用的设计和实现套路以及应用层通信协议的制定和实现。
服务器端实现的功能:
- 即时消息:支持即时消息、离线消息(其中即时消息系P2P方式实现);
- 文件传输:以P2P方式实现;
- 好友管理:添加、删除、修改好友;添加、删除、修改好友分组;
- 用户状态管理:好友上线、离线,状态改变通知。
服务器端架构:
X-Messenger服务器群由多组功能不一的Server组成,各组Server分别承担各自的任务,以下是X-Messenger服务器端的网络拓扑示意图和服务器端架构图:
X-Messenger 服务器网络拓扑图
Router Server 架构图
该项目所涉及的技术:
- C++:使用C++语言实现,充分融合面向对象和泛型编程模式;
- Boost:Boost.Asio、Boost.Thread、Boost.SmartPtr、Boost.Function、Boost.Bind、Boost.StringAlgo、Boost.Unordered、Boost.PropertyTree、Boost.Format 等类库;
- ACE:Reactor、Acceptor-Connector、Task等Frameworks;
- OTL:访问MySQL或Oracle数据库;
- 数据库:Oracle或MySQL;
- Linux Shell Script:服务器启动和守护脚本;
- 应用层通信协议:自定义的XMMEP(X-Messenger Message Exchanging Protocol)协议。
项目部署:
- 操作系统:Linux 2.6.x;
- 数据库:MySQL 5.1+ / Oracle 10g(二者选其一)。