从SuperSocket开源到现在已经经历了近两年时间。对比现在的代码和两年前第一次签入Codeplex代码库的代码,可以看SuperSocket的改进还是很多的。过去的一年(2011)对于SuperSocket来说是很重要的一年,年初的1.3 stable,年中的1.4 stable和年底的1.4 SP2都是里程碑式的版本。SuperWebSocket在2011年里也从一个SuperSocket的示例项目成长为一个知名的WebSocket服务器实现,而且获得了不少用户的好评。在过去的一年里,有很多用户通过使用SuperSocket和SuperWebSocket搭建起了稳定、可靠的Socket服务器,我对此甚感欣慰,我投入的精力没有白费,我的工作是有价值的。很多用户给SuperSocket和SuperWebSocket提出了一些问题,有些是缺陷,有些是新的功能需求,也有一些用户提出了对性能方面的关切,这些都是我在2012年里在自己的开源项目方面前进的动力。
在2012年,SuperSocket将发布1.5版本,该版本将在如下面做一些改进:
易用性: 更简洁、直接的API和更容易实现的自定义协议接口
可控性: SuperSocket将提供服务器管理工具,能够对一台服务器上的SuperSocket实例或者多台服务器上的SuperSocket实例进行管理(启动,停止,监控日志),同时具备扩展性
动态性: 动态语言的支持
高性能: 更好的异步编程支持,更少的CPU和内存占用
隔离性: 实现服务器实例之间的应用程序域级别的隔离,进程级别的隔离
SuperWebSocket在拥有SuperSocket的改进带来的优点的同时,也会提供更好的协议兼容性和扩展性,成为一个真正成熟的WebSocket服务器产品。在2012年里,SuperWebSocket将会在多个测试版本发布之后,最终发布1.0的稳定版,它将是SuperWebSocket的第一个稳定版本。
在客户端方面,WebSocket4Net将会得到很大的改进,特别是在大量连接并发和连接池的场景下的能够保持较高的性能。而且我将会在移动平台(Windows Phone, Mono for Android, MonoTouch)上为WebSocket4Net做更多测试。SuperSocket服务器管理工具将使用WebSocket4Net作为客户端连接器,这将为WebSocket4Net提供实验场,同时它也可作为WebSocket4Net的高级使用示例。
在2011年,有一个新的,很有趣的想法,但是没有机会去实现。它是一个分布式的任务执行系统,客户端运行在多个计算机上,这些客户端与服务器保持实时通信,服务器端会分配任务给客户端执行,客户端执行完后把执行结果返回给服务器端。这些任务可以是客户端程序集中定义好了的方法,也可以是一段动态语言的脚本,服务器端也可以把包含任务的程序集发送给客户端来执行。总之任务的定义在服务器端,客户端只需执行任务并返回结果。这样的系统可以应用于很多场景,模拟多个客户端的性能、功能测试,多服务器的管理,等等。
商业化的想法其实早就有了,但必须遵循一个原则,那就是SuperSocket本身必须是开源的。FTP服务器可能是商业化的一个切入点,我自己实现了一个基于SuperSocket的FTP服务器的基本实现,但时还缺少管理工具,SuperSocket 1.5出来之后我的FTP server将会基于SuperSocket管理工具来开发FTP服务器的管理功能。FTP服务器很简单,IIS直接可以提供FTP功能,但是必须与Windows用户集成,好像IIS7有API可以定制,但是在Linux上我们无法使用IIS。所以我的FTP服务器将主打易于集成现有系统和跨平台这两个特性,而且它可能会自带几个最常见的系统的集成,比如说DiscuzNT。上面提到的分布式的任务执行系统,也可能将是一个商业的解决方案。质量很烂的东西,你卖得再便宜,人家也不一定会买,相反质量高的产品,你的出价稍高,也会有很多人掏腰包。所以产品的质量上去了,商业化水到渠成。
2012年目标很多,但都是可以实现的,我把他们简单的罗列在这里,这样可以让我理清一下思路,用户也可以发表一下自己的看法。在2012年底,让我们来一起验证这些目标是否都已经实现吧!