Java EE:迎合Web 2.0 - 编程入门网
完成操作后,它会获得一个值或者出现 错误。
任何对象都可以接收消息并进行本地调用。本地对象可以通过即时的调用操作进行同步调用,也可以通过最终的发送操作进行异步调用。只能使用最终的发送操作对远程对象进行调用。最终的调用将生成一个 promise。. 操作符用于即时调用,而 <- 操作符用于最终调用。 Promise 也可通过显式方式创建。此时,将提供对解析器对象的引用,并传递给其他 vat。这个对象有两个方法:resolve 和 smash。 when 操作符允许您在 promise 执行 resolve 或 smash 时调用一些代码。when 操作符中的代码被处理为闭包,并且通过访问外围范围中的定义执行。这种方式类似于匿名的内部 Java 类访问一些方法范围内的定义。 这几个概念构成了一个功能强大的可用系统,允许轻松地创建异步组件。即使不是在生产环境中使用该语言,仍然可以使用它原型化复杂并发性问题。它执行一种消息传递规程并提供方便的语法来处理并发性问题。其操作符也十分简单,并且可以在其他编程语言中进行模仿,虽然产生的代码很可能不及原始代码那么优雅和简单。 E 增强了异步编程的可用性。该语言提供的并发支持与其他语言特性毫不相关,并且它可能对现有语言进行了改进。在 Squeak、Python 和 Erlang 开发环境中已经对这些语言特性进行了讨论。与更加特定于域的语言特性(如 C# 中的迭代器)相比,这种语言特性可能更为有用。 AsyncObjects 框架 AsyncObjects 框架项目侧重于使用纯 Java 代码创建可用的异步组件框架。该框架尝试将 SEDA 和 E 编程语言结合在一起。与 E 相同,它提供了基本的并发性机制。同样,它也仿效 SEDA 来提供机制集成同步 Java API。该框架的第一个原型版本发行于 2002 年。自此之后,该框架的开发变得消极起来,但是最近,该项目重新开始活跃。E 已经展示了异步编程的可用性,而这个框架将试图使用纯 Java 代码获得同样的可用性。 和 SEDA 相同,应用程序被分为若干个事件循环。但是,该项目目前还没有实现任何类似 SEDA 的自管理特性。与 SEDA 不同的是,它对 I/O 使用了更加简单的负载管理机制,因为组件更加细粒度化并且 promise 可用来接收操作结果。 框架实现了与 E 编程语言相同的异步组件概念、vat、和 promise。因为不能使用纯 Java 代码引入新的操作符,并不是任意一个对象都是异步组件。实现需要扩展某个基类,并且应该提供由框架实现的异步接口。由框架提供的异步接口实现将向组件的 vat 发送消息,而 vat 稍后将消息分配给组件。 该框架的当前版本(0.3.2)与 Java 5 兼容并且支持泛型。如果当前平台支持的话,也将使用 Java NIO。但是,框架能够返回到普通套接字。 该框架最大的一个问题是类库非常匮乏,因为很难实现与同步 Java API 的集成。目前,只实现了网络 I/O 库。但是,最近作出的一些改进 — 例如 Axis2 中的异步 Web 服务和前面描述的 Tomcat 6 的 Comet Servlet— 可以简化这种集成。 Waterken 的 ref_send Waterken 的 ref_send 框架是使用 Java 编程语言实现 E 思想的又一尝试。它主要通过 Java 语言的一个子集(称为 Joe-E)实现。 该库支持最终的操作调用。然而,与 AsyncObjects 中的支持相比,这种支持的自主性较低。该框架的当前版本还存在线程安全问题。 它只发布了一些核心类和一些非常小的示例,并且没有提供重要的应用程序和类库。因此,关于如何在更大的范围内实现框架思想仍不明确。框架构建者宣称目前正在实现一个完整的 Web 服务器并且即将发布。等到发布之后在重新审视这个框架可能会更加有趣。 Java EE:迎合Web 2.0(9)时间:2011-01-26 IBM Constantine PlotnikoFrugal Mobile Objects Frugal Mobile Objects 是另一种基于 actor 模型的 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |