ESFramework 是一套性能卓越、稳定可靠、可高度伸缩、灵活易用而又功能强大的.NET通信框架。采用ESFramework框架,开发人员将不再需要了解Socket、也不用再关心底层与通信相关的一切琐碎事情,而是可以在一个更 高的层次上更快地开发高效稳定的网络通信应用。ESFramework具有如下优点:
ESFramework底层使用IOCP模型,使得数据收发与处理达到最高性能。当前主流配置的服务器(如至强4核双CPU、4-8G内存)可轻松处理10000个同时在线连接,每秒处理50000个以上的请求。当然,最终能达到的并发,更取决于具体应用的业务逻辑,如果业务逻辑复杂、处理单个请求都对CPU和内存的消耗都比较高,那么就会导致并发数下降,这时也许就要优化我们的业务逻辑代码了、或者使用更多的服务器来分担负载(比如迁移到ESPlatform)。关于ESFramework的性能测试的更多内容可以参见ESFramework 4.0 性能测试。
ESFramework起始于2004年,从0.1版本不断完善和优化到今天4.0版本已经有8年时间,其内核(ESFramework.dll)已经相当成熟稳定,所有已经发现的内核bug都已被解决,而且自2009年以来,没有新的内核的bug被发现。另外,ESFramework只会在需要时才使用必要的资源(如CPU、内存),并且会及时释放持有的资源,不会有内存泄露等情况发生。如果您的业务逻辑代码没有bug,那么基于ESFramework的服务端正常运行一年,都不用重启一次。
现有的大多数通信框架仅仅解决了通信层的问题,而且几乎都是部分地解决。而ESFramework不仅仅完整地解决了通信层的需求,并且也解决了绝大多数通信系统中都关注的应用层的重要问题,这使得基于ESFramework开发分布式通信系统更迅速、更高效。
在通信层:ESFramework 支持TCP/UDP、文本协议/二进制协议、服务端/客户端以及它们组合的任意方式,并提供多种通信引擎供服务端开发人员和客户端开发人员使用。
在应用层:ESFramework 内置了在线用户管理、消息拦截、消息同步调用、回复异步调用、通道智能选择、客户端登录验证、心跳检测、消息优先级、断线自动重连、在线状态改变自动通知(好友与组友)、重登陆模式选择、完整的异常日志、文件传送(支持断点续传)、组广播、带ACK机制的信息发送、高效的二进制序列化器、等等功能。
在安全性:ESFramework 内置了常见的重要安全机制以防止恶意用户在应用层对服务端进行试探或攻击。这些机制有:消息格式完整验证、消息加密、验证未绑定的消息、绑定连接、关闭空连接等。
ESFramework提供了基于TCP和UDP的P2P通信(不仅是局域网,还支持广域网P2P通信),而且基于UDP的P2P做了增强,以保证基于UDP的P2P通信也像TCP一样可靠。在客户端之间需要高频通信的分布式系统中(如IM系统等),可靠的P2P通信将为您节省巨大的带宽和服务器成本。
ESPlatform平台支持基于ESFramework的应用程序的Cluster(群集),其内置了3种最常用的负载均衡策略。仅仅通过修改几行代码就可以将一个基于ESFramework的应用程序平滑迁入到ESPlatform平台中,以实现多台应用服务器的Cluster,从而应对日益增长的巨大并发。使用ESPlatform群集,我们可以非常方便地在运行时动态添加/移除应用服务器(AS)实例节点。
跨平台是ESFramework体系的重要目标之一,ESFramework通过提供多平台的客户端引擎来实现这一点。 当跨平台全面实现后,基于ESFramework开发的不同平台的客户端之间可以相互通信,如此,异构环境将变得透明化。
目前提供的客户端引擎包括:.NET客户端引擎是基于.NET 2.0构建的,可直接在Windows应用程序和WPF应用程序中使用;ESFramework.SL 是基于Silverlight 3.0构建的,ESFramework.WP 是基于windows phone OS 7.1构建的。我们尽可能地采用较低版本的运行库构建客户端引擎,利用运行库的向下兼容性,使ESFramework能被尽可能多的开发者使用。
另外,ESFramework的flash客户端引擎、iphone 客户端引擎、android客户端引擎正在开发中,敬请期待。
ESFramework规定了消息处理的骨架流程,并在骨架中提供了足够多的扩展点,使您可以轻松地挂接您自己开发的组件(比如加密/解密组件、或消息监控组件等)。另外,ESFramework在设计和实现时采用了接口分离原则,使得大多数内置组件都可以被自定义的组件所替代。
ESFramework 可以用于任何需要分布式通信的软件系统中,而且其群集功能还可以支持那些同时在线用户数巨大的系统。比如,即时通讯系统(IM),大型多人在线游戏(MMORPG)、在线网页游戏(WebGame)、文件传送系统(FTS)、数据采集系统(DGS)、分布式OA系统等等。
ESFramework提供的所有接口和API都具有良好的编码风格,与.NET Framework完全一致。我们提供了MSDN风格的帮助文档、Demo源码、ESFramework开发手册系列文章供您研究和学习使用ESFramework进行开发。
ESFramework 虽然功能强大丰富,但是使用非常简单,因为其采用了优秀的架构设计和实现,将复杂性都屏蔽在了框架的内部,暴露给使用者的都是简单易用、清晰明确的API。而且,ESFramework还提供了Rapid引擎给使用者进行快速开发,从未接触过ESFramework的人,也可以在1-2个小时之内便上手使用Rapid引擎开发分布式通信系统。
关于ESFramework更详细的介绍,请参见详细说明。