Geronimo!第3部分: 状态问题

我们创建计算机和通信技术是用来简化生活的,不是吗?尽管表面看起来并非如此 — — 这些技术的确带来了其自身的一些复杂性 —— 但它们的确可以让我们实现一些原来所 不能实现的事情,从这个意义上讲,它们确实让人们的生活变得简单和方便了。

例如,现在您可以从早餐桌走到起居室的电脑旁来查看一下当前的气象雷达或道路状况 ,或者订购一盆新的室内植物,当然也可以结算支票簿、支付账单等等,而这在几十年前 (花如此少的力气)简直是不可想象的。这确实是一种进步,但其产生也少不了路途中的 一些磕磕绊绊。

Web 过去的好时光

在过去,从某种意义上讲,万维网(World Wide Web)就是一个电子的超级高速公路, 在这里,那些敢于开拓的公司用特异的布告牌,以当时能够实现的最佳视觉方式展示其产 品。人们被其吸引进而会阅读这些布告牌,然后打电话给这些公司了解更多关于产品的信 息,再通过传统的方式来完成交易:电话交易或亲自前往(购买)。

没过多久,计算机程序员们就为发生在布告牌(其实是 Web 站点本身)上的买卖双方 的交易创建了一种更为交互的方式。从而,联系我们 窗体、粗糙的购物车及其他简单的 Web 应用程序就诞生了。

从前,Web 站点只需要对超文本标记语言(HTML)编码的Web 页面的请求做出响应。现 在,Web 站点必须记住访客的信息,这些信息是同该访客进行交易所必需的。

突然间,人们不得不在登录 Web 站点的时候提供这样的信息,即是谁、想买什么、想 以什么方式购买,Web 站点必须维护这些信息。Web 服务器再也不能这样简单地答复其调 用者了,即向他/她发送一个页面后就完事大吉。按照计算机界的说法,这些任务即状态问 题 ,这个问题将 Web 在其幼年时期曾经享用的那种简单的请求-响应的模式复杂化了。

如今,我们都处在这样一个时代,每个想要让其商业及其业务模式在 21 世纪能够生存 下来的公司都有一个 Web 站点,状态问题(由此变得)至关重要。如果用户 12317 不能 在线购买 1437 公司的8945 号产品,该用户就能够在从起居室的电脑旁走到厨房找些吃的 东西之前,利用搜索引擎找到能够将该商品卖给他/她的4783 公司,换言之,一切都太方 便了。

但为购买产品的用户简化了购买过程即意味着要有其他人为这部分无形的价 格买账,世上没有免费的午餐,这是一个不言而喻的道理。Web 服务器和 Web 应用程序是 包含了许多独立组件的复杂系统,这些组件本身又有其复杂性:数据库引擎、安全机制、 信用卡验证引擎等等。

减轻职业 IT 人的负担

免费(软件)市场像往常一 样出来救援了。如今的Internet 工程师们能够从大量工具和供应商产品中挑选,这些工具 和产品让商业的车轮仍旧能够向前滚动并一路高歌。要获取针对状态问题的行业水准的解 决方案,请考虑由 Apache Geronimo 为代表的Java 2 Platform, Enterprise Edition(J2EE)引擎。

在典型的大型业务程序中,每个小时中,都会调用单独的应用程序来对成千上万的匿名 浏览器发出的无休止的请求系列做出响应。当然,几百个左右的浏览器自身会带有一些服 务器软件所熟悉的信息,这些浏览器就是那些带 cookie 的客户机浏览器。

这些 cookie 最初就被植入到匿名的用户 Web 浏览器上,从而可以确认用户这次是否是再次光 顾 —— 辨认出老客户对公司来说是件好事!客户机状态集就是在这里存储的 。Cookie 也许仅仅由一个简单的键值组成,该值用于解锁存储于公司数据库中有关此用户 的大量信息。

当一个已知客户再次光顾且(服务器)认出了该用户的浏览器所提供的cookie 时,状 态问题就解决了一半。很快,服务器软件能够用各种有用信息定制页面,如个人化的欢迎 页面或首选的偏好页面。还会显示一份与用户过去购买的产品相似的产品清单和一些诱人 的折扣,这些折扣基本上向用户传达了这样的信息,即他或她是一名宝贵的客户,因而公 司非常欢迎该用户的再次光顾,希望其购买更多的东西。

时间: 2024-11-05 16:40:56

Geronimo!第3部分: 状态问题的相关文章

使用JavaServer Faces构建Apache Geronimo应用程序,第2部分

在 JavaServer Faces 中使用 Tomahawk 本教程是分 5 部分的教程系列的第 2 部分.本教程讲解 Apache Tomahawk.在这个系列的第 1 期 中,介绍了 JavaServer Faces(JSF),并在 Apache Geronimo 上构建和成功地部署了一个简单的 JSF 应用程序.JSF 是一种基于 Java 的新框架,它使 Java Platform, Enterprise Edition(Java EE)应用程序图形用户界面(GUI)的构建工作变得更为

使用JavaServer Faces构建Apache Geronimo应用程序,第1部分

使用 Eclipse 和 Apache MyFaces Core 构建基本的应用程序 开始之前 本教程向 Java 程序员介绍如何使用 JSF 组件来构建具有高度交互性的部署在 Apache Geronimo 上的 Java EE 应用程序.本教程假定 读者使用 Eclipse 集成开发环境(IDE)作为开发平台. 关于本教程 本教程介绍了 Apache Geronimo,它是一个纯 Java EE 应用服务器.还介绍了使用 Eclipse IDE 和 Apache MyFaces(这是一个开放

将Java Swing应用程序连接到Geronimo服务器

创建可以与 Geronimo EJB 应用程序对话的独立客户端 简介 本文将展示如何开发可以与运行在 Geronimo 应用服务器内部的 EJB 应用程 序通信的独立(胖)客户端.基于我的前两篇文章 --"将数据库连接到 Geronimo 应用服务器的三种方法"(developerWorks,2005 年 6 月)和"利 用 Geronimo 深入 EJB Web 应用程序"(developerWorks,2005 年 7 月)- - 本文向您展示一个连接到使用 G

使用Apache Geronimo和JMS构建事件驱动的框架

使用 Java 反射定义事件类型 当实时更改和事件发生时,对其作出响应是企业框架的重要需求.本文介绍了 Apache Geronimo 框架中采用的技术和机制,它们使应用程序和服务能够有效地响应实时刺激,然后跨架构虚拟层发送和接收事件. 开发人员试图使用传统顺序处理方法设计和构建动态工作流和集成系统时会遇到麻烦,因此,急需更适合的.事件感知的技术和工具.SOA 和事件驱动的编程可以解决这一复杂的难题. SOA 给出一个松散耦合的开发模型和运行时环境.它使服务提供者和服务消费者能够使用动态组件交互

在Apache Geronimo中创建登录和注册系统,第1部分

在Apache Geronimo中创建登录和注册系统,第1部分 使用J2EE 声明式安全性和Geronimo内置的Derby 数据库 简介 Geronimo 除了完全兼容 J2EE.开放源码.打包了 Apache 许可证之外,它最棒的一件事就是它的极端模块化.它的内核很紧凑,允许像 Apache Derby 这样的框架通过 Geronimo Bean (GBean)添加到内核或从内核删除.实际上,Derby 默认内置在 Geronimo 之中,所以对于 Geronimo 应用程序来说,Derby

权衡Apache Geronimo EJB事务选项,第2部分: Bean管理事务

既然您已经在 第 1 部分 学习了有关 Enterprise JavaBeans (EJB) 容器管理的事务的所有细节,那么您可能对 EJB bean 管理的事务以及如何在 Apache Geronimo 应用服务器中实现它感到好奇.在由三部分组成的 系列文章 的这一期文章(第 2 部分)中,您可以获得所有细节. 简介 本系列分为三部分,将探索 Geronimo 和 OpenEJB 可以为您提供什么帮助,以及在 EJB 2.1 中现在可以实现的 EJB 事务概念(让您顺利进入 EJB 3.0).

权衡Apache Geronimo EJB事务选项,第1部分: 容器管理事务

本系列分为三部分,将探索 Apache Geronimo 中的 Enterprise JavaBeans (EJB) 容器管理事务和 bean 管理事务.在第 1 部分中,将找出两种事务之间的差异,其中包括了解容器管理事务如何帮助您避免事务逻辑和管理的复杂性,从而使您可以专注于企业 bean 的业务逻辑.您还将学会如何在 Geronimo 应用服务器中实现容器管理事务,以及如何使用 Geronimo.OpenEJB 和 XDoclet 将自己从繁重的 EJB 编码工作中解放出来. 简介 Open

深入RESTful无状态原则

前言 在上篇RESTful基础知识中整体的介绍了RESTful架构设计思想的框架,在往后的RESTful主题博文中,我们在这个框架的基础上不断的为其填充更加深入的知识材料.  RESTful基础知识,传送门:http://blog.csdn.net/jmilk/article/details/50452595 无状态原则 Statelessness:无状态原则是RESTful架构设计中一个非常重要的原则,无状态是相对于有状态而言的.在理解什么是无状态的交互请求之前,首先我们需要了解什么是有状态,

HTTP状态码集

1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应. 这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动. 100 Continue 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个