• Client Session State 客户会话状态.
    • 在Client端保存会话状态.
    • 运行机制
      • Client在每次请求时会把所有的会话数据传给Server,Server在响应时把所有的会话状态传给Client.
      • 可以是完全无状态的Server.
      • 通常使用可序列化的DTO对象来传递数据.
      • 在HTML中,可选的是:URL参数,表单的隐藏域,Cookie.
    • 使用时机
      • 支持无状态的Server对象.从而提供了最大的集群性能和容错恢复.
      • 适合于小数据量.当数据量大时,保存和传输会有较大的延迟.
      • 安全问题.所有送到客户的数据都很容易泄露或被篡改.而加密又会影响性能.
      • 会话标识号一般使用Client会话状态.
  • Server Session State服务器会话状态
    • 将会话状态以序列化的形式存放在Server端.
    • 运行机制
      • 最简单的方法是把会话数据放在应用Server的内存中.

        • 将会话数据以会话标识号为键存在内存映射表中.
        • Server以客户给出的会话标识号取出会话数据.
        • 这种方式,需要足够的内存.且没有Server集群.
      • 不吧会话数据放在内存中,而是序列化后持久保存.
        • 序列化方式:二进制,文本(XML).
        • 持久化到哪里.
          • 最简单的是放在应用Server的文件系统或者本地数据库中.
          • 为了支持集群和故障恢复.需要放在公共访问的地方.如共享服务器.问题是需要更长的事件激活服务器.
        • 保存到DB中:以会话标识号为键值,序列化LOB来存放序列化后的会话状态.
          • 需要对作废的会话进行处理.
      • 应用服务器已经开始提供自动的支持.
        • .Net已经内建了会话状态功能的实现.
    • 使用时机
      • 最大的好处是简单,已有内建的支持.
      • 需要编程来实现会话维护.
  • DataBase Session State
    • 将会话数据作为已提交数据保存到DB中.
    • 运行机制
      • 会话的局部数据.即不能在整体提交到DB之前影响系统的其他部分的数据.

        • 在每个数据行上加上ispending来区分是否是会话数据.
        • 将会话ID保存为一个临时字段(先不存到DB中).查询时过滤SessionID不为空来获取真正的记录,来滤掉临时数据.
        • 使用临时表来暂存会话数据.当会话提交时再写会真实表.
      • 同时,需要在会话取消时有清除会话数据的机制.
    • 使用时机
      • DB会话状态和Server会话状态的唯一区别是会话数据是否存储在DB中.

        • 选择时,取决于便于集群和故障恢复的程度.
      • 性能.
        • 无状态的对象提供了Server性能,时缓冲和集群更容易.但是在处理每个请求时需要多花时间来进行DB读/写.

Session State Pattern会话状态模式的更多相关文章

  1. State Pattern -- 状态模式原理及实现(C++)

    主要参考<大话设计模式>和<设计模式:可复用面向对象软件的基础>两本书.本文介绍命令模式的实现. 问题出发点 在实际开发中,我们经常会遇到这种情况:一个对象有多种状态,在每一个 ...

  2. 十一个行为模式之状态模式(State Pattern)

    定义: 当一个对象有多个状态,并且在每个状态下有不同的行为,可以使用状态模式来在其内部改变状态时改变其行为,而客户端不会察觉状态的改变,仍使用同样的方法或接口与对象进行交互. 结构图: Context ...

  3. 深入浅出设计模式——状态模式(State Pattern)

    模式动机 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的 (stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的.当一个这样的 ...

  4. 二十四种设计模式:状态模式(State Pattern)

    状态模式(State Pattern) 介绍允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它所属的类. 示例有一个Message实体类,对它的操作有Insert()和Get()方法, ...

  5. 乐在其中设计模式(C#) - 状态模式(State Pattern)

    原文:乐在其中设计模式(C#) - 状态模式(State Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 状态模式(State Pattern) 作者:webabcd 介绍 允 ...

  6. 第20章 状态模式(State Pattern)

    原文 第20章 状态模式(State Pattern) 状态模式  概述:   当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表 ...

  7. C#设计模式之十九状态模式(State Pattern)【行为型】

    一.引言   今天我们开始讲"行为型"设计模式的第六个模式,该模式是[状态模式],英文名称是:State Pattern.无论是现实世界,还是面向对象的OO世界,里面都有一个东西, ...

  8. 状态模式-State Pattern(Java实现)

    状态模式-State Pattern 在状态模式(State Pattern)中,类的行为是基于它的状态改变的.当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. State接口 ...

  9. C#设计模式之十八状态模式(State Pattern)【行为型】

    一.引言 今天我们开始讲“行为型”设计模式的第六个模式,该模式是[状态模式],英文名称是:State Pattern.无论是现实世界,还是面向对象的OO世界,里面都有一个东西,那就是对象.有对象当然就 ...

随机推荐

  1. NHibernate讲解

    第1章 NHibernate体系结构 总览 对NHibernate体系结构的非常高层的概览: 这幅图展示了NHibernate使用数据库和配置文件数据来为应用程序提供持久化服务(和持久化的对象). 我 ...

  2. IOS开发之路三(XML解析之KissXML的使用)

    最近再做一个项目需要用到xml的解析.今天查了一些资料自己做了一个小demo.纯OC没有界面.. 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用 ...

  3. easyui datagrid 列拖拽2

    1.拖动前 2.拖动中 3.拖动后 5.代码1 $("#corp-grid").datagrid({ title:"泥头车企业管理", toolbar:&quo ...

  4. java解析excel2003和excel2007:The supplied data appears to be in the office 2007+XML Polonly supports OLE2 office documents

    上传excel解析存到数据库时报: org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears ...

  5. 共享锁(S锁)和排它锁(X锁)

    1 什么叫数据库共享锁[S]锁和[X]锁 共享锁[S锁]    又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁.这保 ...

  6. ProgressBar的Indeterminate属性

    Indeterminate ProgressBar默认是白色的,如果容器的背景也是白色的,这样就根本看不到Progressbar. 简单解决方案: 用style属性设定反转的颜色. <Progr ...

  7. 结合源码看nginx-1.4.0之nginx模块组织结构详解

    目录 0. 摘要 1. nginx模块组织结构 2. nginx模块数据结构 3. nginx模块初始化 4. 一个简单的http模块 5. 小结 6. 参考资料 0. 摘要 nginx有五大优点:模 ...

  8. 使用keil建立标准STM32工程模版(图文详细版!)

    1.   模板工程的创建(超级详细版,使用的是keil 4.5版本) 1.1创建工程目录 良好的工程结构能让文件的管理更科学,让开发更容易更方便,希望大家养成良好的习惯,使用具有合理结构的工程目录,当 ...

  9. 未能正确加载“radlangsvc.package,radlangsvc.vs,version=10.0.0,culture=neutra

    1: 参考 http://blog.csdn.net/woaizhoulichao1/article/details/6911809 2: 开 始-->所有程序 -->Mircosoft  ...

  10. What are definitions of ​Model, Inference and Algorithm and its associations ?

    1.拿初中的二元一次方程来说明: 1.1)说model就好比一元二次方程,它是个方程模型: 1.2)再说inference是求解该方程的某种方法--加减消元法(重在推理): 1.3)最后说algori ...