说说Continuation Server

2008-02-23 09:17:28来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

Continuation Server是在一本叫做《Beyond Java》的书上面看到的。这本书写得还不错,只是前面几章略显的罗嗦了一点,反复的讨论着同一个主题。
后面的几章才开始转入主题,讨论了一些比较新的咚咚,例如ruby,rails,continuation server,metaprogramming。其他几个之前都接触过,所以也就算是看了个小结而已,而continuation server则是第一次听说,所以比较留意。他的理念也是比较有创意的。我们的Web开发,一般都是以客户端作为主动的,客户端发请求,然后接收响应,然后再发请求...整个流程都是由客户端作推动方。这样的一个结果就是,一般的web框架都是把他们的控制器分成一个个的方法调用,客户端的请求就对应到这些方法调用当中。
continuation server的创新之处就是把这个逻辑反了过来,让服务器作为主动方,服务器发回响应,然后等待客户端输入之后,继续执行,然后发回响应...,整个流程是服务器通过发回响应进行推动。整个过程就像是函数调用那样,服务器发送响应就是函数调用开始,而用户发送请求就是函数的返回。要实现这个效果,就需要服务器端可以在收到请求之后能返回到之前的发送响应的后一语句。
这里的核心就是服务器端需要能够动态的获取运行栈,在发送响应前,先对当前的运行栈作一个快照,然后在响应到达时,重新从快照那里执行,这样就相当于实现了刚才所说的函数调用效果。使用continuation server之后服务器端就只需要一个方法调用,对应初始请求。
public void index(){
snap shot();
发送响应;
if(输入 = ...){
...
}else{
...
}
snap shot();
发送响应;
}
continuation server的工作就是在每次请求到达后,通过之前的快照值,返回到这个方法调用内部。

上一篇: 采用POI和ANTLR提取WORD文档数据
下一篇: 一个检查原代码括号配对的程序,栈的应用

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[Portal参考手册]Portlet持久化

下一篇:一个检查原代码括号配对的程序,栈的应用