我们创建计算机和通信技术是用来简化生活的,不是吗?尽管表面看起来并非如此 — — 这些技术的确带来了其自身的一些复杂性 —— 但它们的确可以让我们实现一些原来所 不能实现的事情,从这个意义上讲,它们确实让人们的生活变得简单和方便了。
例如,现在您可以从早餐桌走到起居室的电脑旁来查看一下当前的气象雷达或道路状况 ,或者订购一盆新的室内植物,当然也可以结算支票簿、支付账单等等,而这在几十年前 (花如此少的力气)简直是不可想象的。这确实是一种进步,但其产生也少不了路途中的 一些磕磕绊绊。
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 时,状 态问题就解决了一半。很快,服务器软件能够用各种有用信息定制页面,如个人化的欢迎 页面或首选的偏好页面。还会显示一份与用户过去购买的产品相似的产品清单和一些诱人 的折扣,这些折扣基本上向用户传达了这样的信息,即他或她是一名宝贵的客户,因而公 司非常欢迎该用户的再次光顾,希望其购买更多的东西。