Browsed by
标签:python

V28与Lua业务

V28与Lua业务

V28版本正式发布!我们在这个版本花费了数月的时间。 本版本的关键特性是新的业务引擎,即“Lua业务引擎”。

如您所知,以前的MSS版本的业务引擎采用Python语言编写,工作得非常好,但是仍然有一些限制。现在新版本中业务引擎采用Lua语言重新编写,我们简单介绍作出这一决定的几个关键因素。

(1)Lua语言更简单。Python是全栈、通用型语言,而Lua是嵌入式语言。Lua比Python少很多特性,但是胜在更简单。我们尽管非常喜欢Python,但是分析后仍然发现Lua更适合用于MSS来实现业务引擎。我们不需要全功能,只需要能封装、提供MSS核心功能和能力即可。

(2)最重要的稳定性。Python业务引擎采用一个Python虚拟机支持所有的业务实例,一旦其中一个业务发生未知异常导致虚拟机崩溃,所有的业务都会收到影响。而在新的业务引擎中,每个业务都会采用一个单独的Lua虚拟机,如果一个业务发生未知异常,其他业务不会受到任何影响。这实在是太棒了!整个MSS系统的稳定性达到了更高水平!

(3)更快!更快!更快!仅仅是语言层面,Lua就比Python更快。由于GIL的存在,Python无法满足高性能的要求,因此只能被局限在业务引擎层面。而Lua没有这个限制,每个Lua虚拟机都很微小而且独立,我们现在只是用Lua替换了业务引擎,后续我们甚至可以考虑实现基本呼叫引擎,未来已来!

在V28版本中,所有的Python业务已经被替换为Lua业务。您可以在“lua/services”子目录中找到这些Lua业务文件。如果您曾经自行修改过Python文件,升级到新版本后您需要自行修改对应的Lua文件。

由于Lua业务引擎只是后端技术的升级,因此默认情况下您不需要更改任何配置。

优化SMTP库

优化SMTP库

在“语音邮箱”业务中,MSS需要采用SMTP库发送语音邮件。考虑到MSS本身支持嵌入Python脚本,因此很容易就直接调用python-smtplib库发送邮件。这正是我们在以前的版本中的实现方式,一直工作得很好,我们也很满意。

然而smtplib库(python2.7携带)有点过时了,无法满足一些现代SMTP服务器的要求。另外,该库也有一个明显的缺陷:它是同步方式。这意味着发送邮件的过程中,会阻塞业务线程,导致性能低下。这在普通PBX应用场景中不是问题,但是在我们的云端通信系统中就显得不太合适了。

事情已经发生改变,我们也希望MSS能更加完美,因此决定开发一个新的SMTP库来发送邮件。新的SMTP库采用异步方式,有更高的性能,符合现代SMTP的各项要求。并且,采用C/C++语言实现。

我们已经更新了V23版本和云通信系统,都采用了最新的SMTP库。希望您能喜欢最新的版本。

另外,自从V23版本发布数月以来,我们得到的反馈非常之好,因此我们想是时候发布新的长期支持版本(即V24版本)以及新的稳定版本(即V25版本)了。按照版本计划,如果没有意外的话,我们将在今年年底或者明年年初完成上述版本的升级,敬请期待!

新的业务引擎

新的业务引擎

今天我们很高兴发布了V15版本。这个版本的主要特性就是提供新的业务引擎。新引擎采用Python脚本语言编写。

这就意味着几乎所有的MSS业务都是采用Python脚本语言了。新的引擎更加灵活,能更好的满足客户不同的定制需求。对于部分高级客户而言,现在甚至可以自己使用Python脚本来编写极为复杂的呼叫业务,满足自身的业务需求。