写点什么

了解 Seam 的嵌套对话和超时

  • 2008-01-17
  • 本文字数:812 字

    阅读完需:约 3 分钟

对 Web 应用开发人员来说,状态管理一直是一个挑战。对话应该在应用层而不是请求层来处理交互。Jacob Orshalick 以 Seam 的酒店预订示例应用为例,论述了 Seam 的对话模型,并解释了如何将嵌套对话运用于该示例。

Seam 的对话模型提供了一个简化方法来处理 continuations。如果你熟悉 continuation server 的概念,你就知道它们提供了包括无缝后退按钮处理和自动状态管理在内的功能。一个用户会话有很多 continuations,它们是执行过程中简单的状态快照,可在任何时候恢复。如果你对这个概念不熟悉,别担心,Seam 使其变得很简单。

这只是模型的一部分,Seam 还允许对话的嵌套:

嵌套对话提供了一个状态容器,它堆叠在最早的对话或外部对话的状态容器之上。任何在嵌套对话状态容器中设置的对象,都不影响可从父对话状态容器中访问的对象。这就允许每个嵌套对话能保持其自己独有的状态。

Orshalick 从定义嵌套对话到确保它被妥善地清空一路演示下来。他用 JBoss Developer Studio 来扩展 Seam 的酒店预订示例应用,生动地完成了嵌套对话的讲解。

Jacob Orshalick 不止澄清了嵌套对话,他还讨论了对话超时的话题:

对话超时似乎是一个普遍被误解的 Seam 概念。在 Seam 论坛上,我常常看见一些帖子宣称对话超时不起作用。实际上它工作得很正常,只不过你必须去理解它的语义。

Orshalick 用与嵌套对话相同的例子说明了,在处理多对话时,只有后台对话会受到对话超时的影响。照这样来说,只有会话本身超时时,前台对话才会超时。

Orshalick 最后总结到:

通过其简单的对话模型,Seam 提供了一个非常有吸引力的方法来管理状态。过去开发人员艰难处理的复杂问题,包括多窗口操作和后退按钮处理,都能处理得天衣无缝了。

查看英文原文 Understanding Seam Nested Conversations and Timeouts - - - - - -

译者简介: 王丽娟(Ivy Wang),一个快乐的程序员,持续从事 Java EE 中间件和 Java EE 企业应用的开发,关注软件架构技术。职业目标是成长为一名优秀的架构师。

2008-01-17 21:481011
用户头像

发布了 151 篇内容, 共 63.4 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

CRM User Status profile中Business Transaction字段的用途

汪子熙

CRM SAP 订单 11月日更

了解一下OpenVINO的API

IT蜗壳-Tango

11月日更

今年双 11,阿里业务 100% 上云,云原生有哪些技术亮点?

阿里巴巴云原生

阿里云 技术 云原生 双11

如何用20分钟就能获得同款企业级全链路灰度能力?

阿里巴巴云原生

阿里云 微服务 云原生 MSE

进击的Java(五)

ES_her0

11月日更

区块链在营销方面的应用探索

石云升

区块链 区块链应用 11月日更

性能测试之问题与思考

刘冉

软件测试 性能测试 软件自动化测试

linux检测系统是否被入侵(下)

入门小站

Linux

软件测试新趋势-2018

刘冉

软件测试 软件自动化测试

quarkus接触研究个人总结

weir威尔

架构 微服务架构 istio Service Mesh 服务网格 Quarkus

.NET6新东西--Random.Shared

喵叔

11月日更

#低码系列#低代码来了,程序员会失业吗?

布鲁

低代码开发 低代码平台

架构实战营-模块四

瓜子葫芦侠

「架构实战营」

聊聊开源精神

baiyutang

11月日更

ALB Ingress 发布!轻松应对云原生应用流量管理

阿里巴巴云原生

阿里云 容器 云原生 ALB

Lua-复合变量

Changing Lin

11月日更

架构训练营 - 模块 3 作业

焦龙

架构实战营

Android C++系列:JNI调用时的异常处理

轻口味

c++ android jni 11月日更

【高并发】深度解析线程池中那些重要的顶层接口和抽象类

冰河

Java 并发编程 多线程 高并发 异步编程

Prometheus HTTP API 查询(七)管理员接口

耳东@Erdong

Prometheus PromQL HTTP API 11月日更

自动化测试之框架分类与思考

刘冉

软件测试 自动化测试

外包学生管理系统设计文档

波波

「架构实战营」

mongoDB 简单的索引类型

liuzhen007

11月日更

学生管理系统详细架构文档练习

御道而行

架构实战营

【LeetCode】检测大写字母Java题解

Albert

算法 LeetCode 11月日更

【Promise 源码学习】第六篇 - 实现 Promise 的链式调用

Brave

源码 Promise 11月日更

一个基于web服务器的PoW案例(二)

Regan Yue

区块链 11月日更 趣讲区块链

在线文本转拼音工具

入门小站

工具

测试策略实践之移动应用的测试策略与测试架构

刘冉

软件测试 软件自动化测试 移动测试

Vue进阶(幺柒捌):延伸阅读Sass、Scss、Less与Stylus编程特性

No Silver Bullet

CSS Vue 11月日更

今天参加了“2021全球架构师峰会”...

后台技术汇

11月日更 全球架构师峰会

了解Seam的嵌套对话和超时_Java_Bryan Clauser_InfoQ精选文章