一、 存在问题
我们觉得,选择做 JAVA 的开发人员是幸福的,为什么?因为在 JAVA 环境下,有各种 WEB 应用服务器可以选择使用,随便写个 JSP ,或者 .class 类,部署到 WEB 服务器下,可以讲不到一分钟时间,就可以实现一个功能,提供远程网络服务;而且 JAVA 下也有很多著名的成熟开发框架和应用框架,方便开发人员进行开发,测试和部署。
而 C++ 的开发人员运气似乎就没有这么好了, C++ 开发环境下没有类似 Apache , Tomcat 甚至昂贵的 WebLogic 应用服务器,要实现一个网络应用服务,都得从最基本的 SOCKET 通讯写起,虽然有 ACE 、 boost::asio 等相关类库,但同样要考虑端口连接管理,多线程管理,内存分布,访问调度以及通讯协议等问题。
等到解决完所有这些技术细节,开始做业务设计、开发的时候才发现项目进度已经去了一大半,说不写客户已经在开始提第二期的需求;并且这种系统的稳定性和维护性对开发人员来说也将是一个很大的挑战。
可以说,做 C++ 网络编程的都是很牛的人,只是有时实在太累了;“能不能休息一下?头儿!”,“ …… ”;而这也是很多 C++ 开发人员转行做 JAVA 开发的一大原因之一吧。
二、 解决方案
那是不是意味着我们都要选择放弃高效、稳定和熟悉的 C++ 语言,而选择那让我们曾经有点看不起的 JAVA 语言呢?答案是‘ No ’。
基于自身项目的需要,以及看到目前 C++ 开发网络应用的落后局面,我们设计并开发了 MyCP (原名 CWSS ,即 C++ Web Service Server ,顾名思义,就是一套基于 C++ 的 WEB 应用服务器)。
MyCP 是一套成熟的网络应用开发、组件化可部署框架应用平台,提供前后端组件开发、部署、运行全套解决方案。 MyCP 的技术描述如下:
利用 C++ 语言的高效,稳定和灵活性,创建一个通用的通讯平台;服务器端以插件配置方式动态加入功能组件。
三、 MyCP 的优势特点
a. 系统
集成的 C++ 通用通讯平台,类似于 JAVA 的 WEB 服务器 ( 如 TOMCAT 、 JBOSS 等 ) ;组件化统一管理网络通信、协议解析、多线程管理和调度管理等;
完全开源,跨平台部署;
b. 通讯
完善的通讯协议 , 通讯协议跟传输层无关 , 目前 MyCP 支持 TCP, UDP 和 RTP 三种传输访问;组件化通信接入,方便实现其他通信;
客户端可以方便应用于各种环境平台和硬件平台,如 Windows 、 Linux , PDA 等开发应用环境中。
c. SOTP 协议
简单:真正意义上的简单协议,完全开放;
有效: SESSION 会话式管理通讯协议;
完善:支持各种数据类型,传输大数据流附件(可实现断点续传);
d. 开发
业务专注:简便的网络应用开发,企业可以专注于业务开发,而不必考虑数据传输,通讯,管理等技术细节;
开发模式:类似 JSP/ASP 开发模式,同样内置 response, request, session, application 和 system 对象;
组件化:通信接入、协议解析、业务调度组件化开发;组件参数,开发接口,验证帐号,打印日志等全部功能可配置,可编程;
客户端:运行环境,开发语言不限;支持 TCP/UDP/RTP 等通信能力即可;可以根据项目需要开发自己的客户端库 ;
e. 安全
具客户端帐号验证功能,支持帐号直接配置和可编程管理二种验证方式;
四、 MyCP 的目标
让企业不用编写一行代码,就可以提供高性能、稳健和跨平台的多种网络通信能力,提供标准开发接口和功能丰富的类库,让企业方便开发、部署运行网络应用客户端和服务端。
让企业更专注于业务逻辑开发,使业务系统快速开发,并且高效、稳定和易于维护!