软件开发从和机器沟通的语言开始。Web编程一般比较常用的开发语言,有C、PHP、ASP、PERL、JSP等。语言的发展,也是经历由低级到高级发展。和底层打交道一般用汇编和C,和应用层打交道一般用ASP和JSP。软件开发语言作为一种生产工具,是生产力的最关键要素。软件语言的发展,迅速推动了软件工业的发展。
每一种语言都有最适合的应用环境,靠一种语言解决所以的问题是不可能的。现在大部分ATM机还是使用汇编语言,用汇编开发,效率最高也最稳定,ATM也没有很复杂的业务逻辑,所以用汇编是最合适的。假如用汇编写web页面处理程序,那难度是很大的,也是非常痛苦的。C语言小巧快捷,用来写操作系统和处理网络协议,最合适。
邮件系统有一部分是涉及到网络通信的,金笛邮件采用C/C++解决稳定性和效率问题,还有一部分是和人打交道的,金笛邮件采用JSP来开发。C和JAVA的结合,即可以保证系统的效率和稳定性,又保证上层应用的友好和灵活扩展。
JAVA作为一种优秀的语言,在近年来被迅速接受并广泛应用。使用PERL、PHP缺乏很好的集成调试跟踪工具,不适合做大型的复杂应用;ASP只能跑在windows平台下,Linux、UNIX带来的优异和便利无用武之地。所以,JAVA的迅速普及应用,也是顺理成章的。伴随JAVA的深入应用,一些应用中间件平台,如tomcat/weblogic/websphere/jboss迅速发展成熟,基础开发平台如JBuild、Eclipse非常简便,一些开发框架如Struts 、webwork、Hibernate、Spring也日渐深入人心,一些组件也日益完善,整个软件工业分工初步形成。
金笛邮件在多年以前,就已经考虑到软件这种发展趋势,在webmail层率先采用java技术开发,如今在很多应用的背后,都有jdmail的身影。实践证明,采用JAVA技术开发的邮件系统,可以和其他的业务系统如OA、CRM、ERP、HR很容易整合,为其它业务系统提供基础邮件通讯支撑。
当然,尺有所短,寸有所长。JAVA也不是一个完美的语言。JAVA的执行效率要比C、PHP、PERL低。 由于现在硬件发展很快,JAVA的这个劣势逐渐被忽略。实践证明,采用tomcat单台服务器并发连接可以到150,支持上万邮箱是没有问题的。另外金笛邮件在协议层采用C++技术开发,并发连接可以达到1024,彻底解决JAVA的IO瓶颈。另外JAVA也是一个在不断发展中的技术,版本升级很快,相信会有越来越多的人转向JAVA开发,JAVA跨平台和健壮性在关键业务应用方面也会有持久的生命力。
金笛邮件系统经过多年的研发,不断总结经验,在webmail日益稳定之后,通过不断的优化系统的整体架构来提高系统的性能。国内采用JAVA开发的邮件系统的并不多见,采用perl,php开发的有很多。主要就是因为perl和php都有很多开源的webmail项目,很多可以直接拿过来,再做几套模板就开始卖了。另外,perl和php本身针对邮件都有组件可以调用,开发难度就容易很多。更重要的是,perl和php的运行不需要应用服务器,每次当用户发起请求,就调用一次服务,服务完毕,从内存退出。即使软件有内存泄漏问题,webserver定期清理并重新生成干净的服务,系统运行不会有问题。而Java的jsp都是在应用服务器的容器中运行的,也就是说从硬盘调用后,一直在内存中运行的,因此对内存的使用释放非常严格,也对邮件系统的代码要求很高。这也是国内国外java邮件系统比较少见的主要原因。
一、金笛邮件系统性能设计
衡量一个邮件系统的性能,主要看投递速度。决定投递速度的因素,除了硬件(CPU、内存)、网络带宽外,还要看服务器的并发投递能力,也就是系统的吞吐能力。如果一个邮件系统的吞吐能力不够,即使硬件很好,也不能充分利用,即使网络带宽足够,也不能有效利用。