写点什么

了解 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:481144
用户头像

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

关注

评论

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

RavenDB起步--安装以及示例数据库

喵叔

ReactNative进阶(三十一): IoC 框架 InversifyJS 解读

No Silver Bullet

​React Native 1月月更 InversifyJS

事件驱动架构在 vivo 内容平台的实践

vivo互联网技术

微服务 云原生 事件驱动架构

架构实战营毕业设计

VegetableBird

架构实战营 #架构实战营 架构师实战营 「架构实战营」

RavenDB起步--第一个 RavenDB 程序

喵叔

架构实战营模块六作业

Jude

架构实战营

架构训练营 毕业设计

dog_brother

「架构实战营」

华青融天加入,龙蜥社区再添科技风险监测领域新伙伴

OpenAnolis小助手

Linux 开源 合作伙伴

MySQL 如何解决幻读(MVCC原理分析)

Ayue、

MySQL InnoDB 1月月更

Redis:我是如何与客户端进行通信的

华为云开发者联盟

redis 通信 协议 指令 客户端

架构实战营 - 毕业设计

lucian

为什么ConcurrentHashMap是线程安全的?

王磊

一个cpp协程库的前世今生(二十三)env自动回收

SkyFire

c++ cocpp

架构训练营 week6 课程总结

红莲疾风

「架构实战营」

一、数据结构

喵叔

Gsub Blocks、Partitions和 StringScanners,哦,天哪!

吴脑的键客

ruby

分享四款H5怀旧小游戏魔塔+伏魔记+三国霸业+寻仙纪

echeverra

前端 游戏

TDSQL-A技术架构演进及创新实践

腾讯云数据库

tdsql 国产数据库

为数据库性能调优插上 AI 的翅膀 | 调优测试框架 Matrix 团队访谈

PingCAP

Go 语言快速入门指南:Go 读取文本文件

宇宙之一粟

Go 数据读取 Go 语言 1月月更

电商秒杀系统

🌾🌾🌾小麦🌾🌾🌾

架构实战营

RavenDB起步--使用 RavenDB Studio

喵叔

项目管理之可行性研究

williamcai

再谈:我对测试行业发展和自我价值诉求的思考

老张

测试工程师 职场发展

模块1作业

卡西毛豆静爸

架构实战营

RavenDB起步--客户端API(一)

喵叔

1月月更|推荐学java——Spring事务

逆锋起笔

spring事务管理 spring ioc java 编程 Spring Java Spring事务

TDSQL PostgreSQL执行计划详解

腾讯云数据库

tdsql 国产数据库

看过来!腾讯文档上架优麒麟软件商店啦

优麒麟

Linux 开源 腾讯 操作系统 麒麟操作系统

TDSQL-C PostgreSQL版的高可用特性

腾讯云数据库

tdsql 国产数据库

Mac 上制作 SSL 证书

编程三昧

JavaScript openssl 1月月更

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