在多通道上共享应用程序会话信息的方法、装置和系统 【技术领域】
本发明涉及一种在多个终端连接到服务器上的同一个应用程序时在多个通道上共享应用程序会话信息的方法、装置和系统。
背景技术
目前,人们通过例如PDA、移动电话、车载计算机、便携式计算机以及传统计算机等等日益增加的客户机设备访问网页内容和应用程序。不同的设备在接口、存储容量、网络连接、电池能量等等方面具有它们各自的特征。在特定的环境下,人们希望选择适合的设备/通道来访问网页信息并且进行交易。当移动到噪声环境中时,由于语音/声音接口不能够正常工作,因此用户希望切换到文本/图形用户接口,例如WAP或SMS。但是,当回到家或办公室时,最佳的接口方式变为传统的计算机。当前没有一种机制支持这种在多个通道之间的无缝切换,并且同时保持应用程序的会话。从而,当用户在一个通道中进行一些操作,然后切换到另一个通道,或者连接被中断并且由该用户在同一个通道或另一个通道中重新开始,则该网络应用程序服务器不能够保持用户的历史记录,并且用户必须重新开始进行以前的操作。
由于HTTP是一种“无状态”(没有持续性)地协议,因此它不能够区分访问一个网址的不同访问者,除非服务器能够通过某种方式对访问者进行“标记”。这是通过在访问者的浏览器中存储一信息而实现的。在传统的三层或n层网络应用构架中,网络应用服务器保持应用程序状态信息(应用程序会话信息),并且浏览器把该会话信息保持在cookies中,或者通过改写URL而保持该会话信息。这种机构可以支持单个通道的访问,但是不支持多模式或多通道访问。
现在参照图1描述现有的单通道通信系统。
如图1中所示,现有的单通道通信系统包括终端设备5(在图中简称为设备)和网络服务器3。在工作时,终端设备5向网络服务器3发出应用程序服务请求,网络服务器接收到该请求之后提供应用程序服务,例如,网络浏览服务、网上购物、定票等等服务。在接受服务的过程中,用户通过终端设备5输入一些用户信息,如用户名、密码等等。在终端设备5与网络服务器3交互作用过程中,网络服务器3把关于用户的一些信息以cookie(在图中表示为AC)的方式存储在终端设备5上。当该终端设备5下一次向该网络服务器3发出请求时,该网络服务器3从终端设备5的存储器中读出以前所存储的cookie,从而该网络服务器3了解该终端设备5以前所执行的操作或关于用户的信息,以便于向用户提供相应和快捷的服务。
利用cookie可以节省时间,并能实现应用程序会话的连续性。例如,当用户定购某种产品或服务时,只要用户输入电子邮件地址或标识号和密码,网络服务器3把从cookie提取的关于该用户已经提供的信息自动填充到表格中。另外,如果用户通过终端设备5对网络服务器3执行包括五个步骤的一系列操作,当用户通过终端设备3执行步骤1-3之后,因其他原因而暂停并中断与网络服务器3的连接,以后用户又利用相同的终端设备请求该网络服务器3继续执行上述系列操作。此时,该网络服务器3从该终端设备5中读取它以前存储在该终端设备5中的cookie,从而使用户可以继续从步骤4接着该操作。该终端设备5与该网络服务器3之间的连接称为一个通道。利用cookie可以实现在一个通道上保证会话的连续性。但是,如果用户有两个终端设备A和B,用户用终端设备A执行上述操作步骤1-3,则当利用另一个终端设备B时,不能够从步骤4继续该操作过程。因为,在执行步骤1-3之后的会话信息是通过cookie保存在设备A中的,而设备B没有保留该cookie信息,因此网络服务器3不能够从设备B中读取该会话信息。不能继续执行该操作,而只能够从头开始执行步骤1-5。
为了支持多模式或多通道访问,需要一种在多个通道/设备之间共享应用程序会话信息的机制。
为了支持多模式/多通道访问,由于可能有多种情况,例如切换、暂停和重新开始等等,因此将需要比单个通道更加更多的请求状态。需要识别新的请求、正常的下一个请求、重新开始的请求、切换请求和片断请求
【发明内容】
为了解决上述问题,本发明的一个目的是提供一种方法、系统和装置,以允许用户选择最适合于当前情况的接口,可以采用多种设备,可以是无线或有线,并且可以在单个交互过程中透明地切换交互模式。
本发明的另一个目的是提供一种方法、系统和装置,使得用户在使用任何终端设备登录网络时可以选择是否从以前未完成的会话继续执行,还是开始新的会话。
为了实现上述目的,本发明提供一种多通道应用程序会话信息的共享方法,用于管理终端设备和网络服务器之间的通信,该方法包含下列步骤:接收从终端设备发出的用户请求;根据用户请求,恢复该用户的一个先前的应用程序会话信息,并将其连同用户请求一起发送给网络服务器;接收从网络服务器向终端设备返回的响应,截取该响应中的新的应用程序会话信息;生成该用户的一个应用程序会话管理信息,该应用程序会话管理信息包含一个表示发出该用户请求的终端设备的设备标识;将所截取的应用程序会话信息与所生成的应用程序会话管理信息一起保存起来;将所生成的应用程序会话管理信息插入到该响应中;将该响应发送给发出该用户请求的终端设备。
本发明还提供一种多通道应用程序会话信息共享装置,用于管理终端设备与网络服务器之间的通信,该装置包含:应用程序会话管理器(ASM),连接在终端设备与网络服务器之间,用于在终端设备与网络服务器之间接收和转发终端设备发出的用户请求和网络服务器返回的响应;存储装置,与应用程序会话管理器相连,用于存储应用程序会话管理信息(ASMC)以及网络服务器返回的响应中的应用程序会话信息;恢复装置,与应用程序会话管理器相连;截取装置,与应用程序会话管理器相连;其中,应用程序会话管理器接收从终端设备向网络服务器发出的用户请求,根据用户请求控制所述恢复装置从存储装置中恢复该用户的一个先前的应用程序会话信息,然后将所恢复的应用程序会话信息连同用户请求一起发送给网络服务器;应用程序会话管理器接收从网络服务器向终端设备返回的响应后,截取装置截取该响应中的新的应用程序会话信息,应用程序会话管理器生成该用户的一个应用程序会话管理信息(ASMC),其中应用程序会话管理信息包含一个表示发出该用户请求的终端设备的设备标识;然后,将该响应与应用程序会话管理信息一起发送给发出该用户请求的终端设备。
本发明还提供一种多通道应用程序会话信息共享系统,包含一个或多个终端设备和至少一个网络服务器,其特征在于该系统还包括一个连接在所述一个或多个终端设备与所述网络服务器之间的多通道应用程序会话信息共享装置,该装置包含:应用程序会话管理器(ASM),连接在终端设备与网络服务器之间,用于在终端设备与网络服务器之间接收和转发终端设备发出的用户请求和网络服务器返回的响应;存储装置,与应用程序会话管理器相连,用于存储应用程序会话管理信息(ASMC)以及网络服务器返回的响应中的应用程序会话信息;恢复装置,与应用程序会话管理器相连;截取装置,与应用程序会话管理器相连;其中,应用程序会话管理器接收从终端设备向网络服务器发出的用户请求,根据用户请求控制所述恢复装置从存储装置中恢复该用户的一个先前的应用程序会话信息,然后将所恢复的应用程序会话信息连同用户请求一起发送给网络服务器;应用程序会话管理器接收从网络服务器向终端设备返回的响应后,截取装置截取该响应中的新的应用程序会话信息,应用程序会话管理器生成该用户的一个应用程序会话管理信息(ASMC),并将所截取的应用程序会话信息与所生成的应用程序会话管理信息一起保存在存储装置中,其中应用程序会话管理信息包含一个表示发出该用户请求的终端设备的设备标识;然后,将该响应与应用程序会话管理信息一起发送给发出该用户请求的终端设备。
更加具体来说,本发明的多通道会话信息共享装置位于终端设备和网络服务器之间,它截取网络服务器发送给终端设备的应用程序会话信息,替用户保存和管理这些应用程序会话信息。应用程序会话信息不再直接发送给终端设备,而是保存在多通道会话信息共享装置上。当用户从不同的终端设备访问网络服务器上的应用程序,多通道会话信息共享装置找到并恢复该用户的应用程序会话信息,实现了应用程序会话信息在多个终端设备上的共享。
1.多通道会话信息共享装置收到一个请求,识别出用户,为该用户在ASM数据库中创建一个入口。然后将该请求发送给服务器。
2.服务器收到从多通道会话信息共享装置发来的请求,生成一个响应。
3.多通道会话信息共享装置收到从服务器端返回的响应,截取响应中包含的应用程序会话信息(AC),保存在ASM数据库中。同时生成一个ASMC,插入到响应中,发送给用户设备,例如可以用cookie的方式,也可以通过URL Rewriting的方式,将ASMC加在响应中,这是所属技术领域的技术人员所熟知的。
4.当下一个用户请求到达多通道会话信息共享装置时,如果请求中包含有ASMC,多通道会话信息共享装置会找到相应的AC,将ASMC替换成AC,然后将请求发送到服务器。
5.服务器生成一个响应。
6.多通道会话信息共享装置每次收到一个响应,都会截取该响应中的AC,然后对ASM数据库进行更新。
7.多通道会话信息共享装置将响应发送给用户设备。
8.当用户用另一个设备访问的时候(可以是多个设备同时访问,也可以是顺序访问),多通道会话信息共享装置识别出这个用户,发现该用户在ASM数据库已经存在中,从数据库中恢复该用户相应的AC,添加到请求中,发送到服务器端。
9.服务器生成一个响应。
10.多通道会话信息共享装置收到响应,截取该响应中的AC,然后对ASM数据库进行更新。同时,多通道会话信息共享装置为这个新的设备生成一个新的ASMC,添加到响应中。
11.多通道会话信息共享装置将该响应返回给用户。
通过该本发明的方法、装置和系统,多个设备之间可以共享会话信息,用户可以选择最适合于当前情况的接口,采用无线或有线的多种设备,并且在单个交互过程中透明地切换交互模式。
【附图说明】
图1为示出现有的单通道通信系统;
图2为示出本发明的多通道会话信息共享系统的简化示图;
图3为示出根据本发明的一种多终端在多通道上共享应用程序会话信息的系统的示意图;以及
图4为示出根据本发明的多通道共享会话信息的方法的顺序图。
【具体实施方式】
下面参照附图具体描述根据本发明的多个终端在多个通道上共享会话信息的方法、系统和装置(在下文中简称为多通道会话信息共享方法、系统和装置)。
下面参见图2描述本发明的思想。本发明通过利用多通道会话信息共享装置1作为一个终端设备A、B与网络服务器3之间一个中间件而实现多个终端在多通道上共享应用程序会话信息的多通道通信系统。通过本发明的系统可以实现多个终端设备或者通道同时访问一个应用程序,也可以实现多个终端设备或者通道依次持续的访问一个应用程序。
如图2中所示,根据本发明的多通道通信系统包括多个终端设备5(在图中示出三个设备A、B和C)、多通道会话信息共享装置1和网络服务器3。在工作时,终端设备5(A、B或C)向多通道会话信息共享装置1发出应用程序服务请求,多通道会话信息共享装置1把该请求转发到网络服务器3。然后网络服务器3向多通道会话信息共享装置1返回AC信息,多通道会话信息共享装置1中的截取装置16截取该AC信息,并且由应用程序会话管理器11替终端设备5管理这些AC信息,同时生成一个多段(也可以只有一段)的叫做ASMC的Cookie(本文中也称为“应用程序会话管理信息”)。应用程序会话管理器11不再将AC发往终端设备5,而是将ASMC发给终端设备5。多通道会话信息共享装置1在存储装置18中保存AC和ASMC之间的对应关系。当用户请求从终端设备5来到多通道会话信息共享装置1后,根据对应关系,多通道会话信息共享装置1又通过恢复装置17从存储装置18中恢复应用程序会话信息AC,将ASMC替换成相应的AC。在多个会话的应用中,可以将ASMC分段,比如分成两段,第一段确定一个会话标识(Session ID),第二段对应于不同的设备/通道。同一个会话期间由相同的会话标识所表示,而与设备相关的第二段对于每个设备是唯一的。从而由第一段和第二段所组成的ASMC可以使不同的设备对应于相同的会话期间。在图中ASMC1对应于设备A,ASMC2对应于设备B,以及ASMC3对应于设备C。通过多通道会话信息共享装置1,可以实现AC在多个设备5上的共享,在多通道会话信息共享装置1的基础上,可以实现多个终端设备5或者通道同时访问一个应用程序,也可以实现多个终端设备或者通道依次持续的访问一个应用程序。下面是关于ASMC的构成的一个简单的例子:部分1(会话标识)部分2(与设备相关) ASMC1A12def810983208 ASMC2A12def8320980980 ASMC3A12def8331238080
在上表中,三个ASMC的第一部分为相同,它们表示这三个设备都在相同的会话期间中。如果用户通过终端设备A对网络服务器3执行包括五个步骤的一系列操作,当用户通过终端设备A执行步骤1-3之后,因其他原因而暂停并中断与网络服务器3的连接。这时设备A与网络服务器3之间通信的状态信息保存在多通道会话信息共享装置1中。当该用户利用另一个终端设备B访问多通道会话信息共享装置1时,多通道会话信息共享装置1可以通过一系列用户认证或登录处理识别出该用户与先前操作设备A的用户相同,从而在数据库中调用与设备A的以前操作相关的状态信息AC,并且询问该用户是否继续先前的操作还是重新开始其它操作。如果用户要求继续先前的操作,则多通道会话信息共享装置1利用先前执行步骤1-3之后的会话信息与网络服务器3进行通信,从而继续执行步骤4和5,完成整个操作过程。
显然,对于无需区分不同会话的通信,ASMC cookie无需含有表示会话表示的段。所以该段不是必要的。
下面参照图3具体描述根据本发明的系统的结构。如图3中所示,本发明的系统包括5个部分:多通道会话信息共享装置1、认证授权服务器2、网络服务器3、通信通道4、终端设备5。终端设备5通过通信通道4连接到认证授权服务器2,认证授权服务器2连接到多通道会话信息共享装置1,多通道会话信息共享装置1再连接到网络服务器3。终端设备5包括手机、个人计算机、个人数字助理(PDA)等等由用户所使用来进行网络访问和操作的各种设备,例如图3中示出手机51、PDA52以及IP承载的无线网关客户机53这三种终端设备。各个终端设备5通过不同的通信通道4与认证授权服务器2连接。这些通信通道4例如包括第三方网关41、语音服务器42、无线网关43以及防火墙44。
多通道会话信息共享装置1包括:应用程序会话管理器(ASM)11,用于判定用户请求的类型,并根据请求的类型进行相应的处理;转码器12,用于对页面的格式进行转换;模式生成更新模块13,用于模式的生成和更新,当应用程序会话管理器收到服务器端返回的页面的时候,会调用模式生成更新模块13,由该模块从页面中抽出模式(页面中包含的需要用户输入的表单数据),当用户提交数据的时候,应用程序会话管理器会调用模式生成更新模块13,该模块用用户提交的数据对模式进行更新;模式数据库14,用于保存用户提交的历史数据,当用户重新接入到系统中的时候,就可以看到以前填写的数据,应用程序会话管理器11调用该模式生成更新模块13来对该模式数据库14进行操作;应用程序会话管理(ASM)数据库15,用于保存用户的状态、访问过的URL、应用程序的状态以及会话信息(比如cookie)等;截取装置16,用于截取来自网络服务器的响应中的应用程序会话信息;以及恢复装置17,用于从数据库中恢复应用程序会话信息AC。所述应用程序会话管理器11、截取装置16和恢复装置17相互连接。所述模式数据库14和ASM数据库15存储在图2中的存储装置18中。
在终端设备5与多通道会话信息共享装置1之间可以有一个认证授权服务器2,用于当用户的HTTP请求进入的时候,对用户进行认证,认证通过后,将用户信息附加到HTTP请求上,供后面的多通道会话信息共享装置1使用。
下面具体描述多通道会话信息共享装置1的各个部件的功能以及它们之间的连接关系。首先,应用程序会话管理器11与认证授权服务器2相连接,接收来自认证授权服务器2的附加有用户信息的请求,并判定该用户请求的类型,并根据请求的类型进行相应的处理。一般来说,用户的请求可以分为5种:
1.第一次请求(First Request):当一个用户请求进入多通道会话信息共享装置1的时候,如果应用程序会话管理器11没有从模式数据库14和ASM数据库15中发现该用户对该网络应用的任何历史记录,从而将该请求判定为第一次请求。
2.正常的下一次请求(Normal Next Request):除了第一次请求之外,用户用同一个设备(浏览器)对网络服务器3上的应用进行的一系列后续的请求。
3.恢复请求(Resumption Request):用户在完成一定的工作后,主动或者被动的关掉与网络服务器3的连接。然后用户用同一个设备,或者别的不同的设备重新进行连接,并要求继续执行上次连接中断之后的操作。该这样的恢复性的请求称为恢复请求。
4.部分提交请求(Partial Submit Request):用户在对一个页面进行一定的操作后,在没有完成之前,想保存已经输入的数据,他可以主动按某个特定的操作,来将这些数据保存在多通道会话信息共享装置1的数据库中。
5.片断请求(Fragment Request):该请求是因为转码器12将一个大的页面切分成几小的页面造成的,这些小的页面保存在多通道会话信息共享装置1的数据库中,它们之间相互链接,当用户在请求这些保存在多通道会话信息共享装置1的数据库中的小页面时(区别于网络服务器3中的页面),该请求被称为片断请求。
为了区分上述的请求类型,应用程序会话管理器11会生成自己的cookie(ASMC),或者是通过URL改写的方式来实现(为方便起见,我们仍然称之为ASMC)。URL改写的方式是通过对服务器端返回的页面中的所有URL进行改写,将会话信息加入到每个URL中,当用户通过点击该页面中的链接再次请求的时候,该请求的URL就会包含会话信息,从而实现跟cookie一样的功能。当用户登录到系统中后,应用程序会话管理器11会将ASMC发给用户。这样,应用程序会话管理器11就可以将第一次请求、恢复请求与正常的下一次请求区别开来。因为在正常的下一次请求类型的请求中,会包含有ASMC。
应用程序会话管理器11会保存每个用户对每个WEB应用程序的访问记录,所以应用程序会话管理器11可以区分第一次请求与恢复请求。
部分提交请求和片断请求中包含特殊的标记,所以应用程序会话管理器11可以将它们识别出来。
应用程序会话管理器11连接到转码器12,其用于把来自网络服务器3的网页转换为终端设备的格式并通过应用程序会话管理器11发送到相应的终端设备。应用程序会话管理器11连接到ASM数据库15,在ASM数据库15中存储用户的状态、访问过的URL、应用程序的状态以及会话信息。应用程序会话管理器11连接到模式生成更新模块13,模式生成更新模块13又连接到模式数据库14,通过模式生成更新模块13执行数据生成和模式更新并在模式数据库14中保存用户提交的历史数据。
下面结合图4来描述整个系统工作流程。首先,为了便于描述根据图3中的各个部件的功能分为几个工作流程的阶段,表示为F1-F7。F1表示终端设备阶段,F2表示用户认证阶段,F3表示请求类型识别阶段,F4表示应用程序会话信息及数据管理阶段,F5表示应用程序状态记录阶段,F6表示格式转换阶段以及F7表示应用服务阶段。F1在终端设备5中执行,F2在认证授权服务器2中执行,F3和F4都由应用程序会话管理器11所执行,F6在转码器12中执行,F5在模式数据库14和模式生成更新模块13中执行,以及F7在网络服务器3中执行。各个阶段之间的数据交换和执行步骤在图4中由数字1-11所表示。下面具体描述这些步骤:
1.在阶段F1,用户在终端设备5的浏览器中输入一个特定的URL来访问某个WEB应用程序,浏览器会将该用户请求发往后端的认证授权服务器2。
2.在阶段F2,认证授权服务器2要求用户提供用户名和密码,通过认证后,认证授权服务器2会将该用户信息插入到该请求中,供后面的模块使用。
3.当应用程序会话管理器11收到该请求后,在阶段F3根据用户信息以及URL来判定该用户对该应用程序的请求属于何种请求类型。
4.应用程序会话管理器11在阶段F4根据请求类型采取相应的措施,如果不是恢复请求类型,而且用户请求中包含数据,则从请求中提取数据,在阶段F5更新数据库
5.然后,应用程序会话管理器11根据请求的类型对请求进行修改:
a.如果是恢复请求类型,根据应用程序状态重建请求;
b.如果存在合适的应用程序cookie,插入到请求当中;
c.用数据库中的数据更新请求。
6.将用户请求发送到后端的网络服务器3。
7.网络服务器3返回相应的响应结果。
8.应用程序会话管理器11从返回的响应中提取应用程序cookie,保存在数据库中,如果页面中包含初始数据,而且数据库中没有相应页面的历史数据,则提取数据,更新数据库;
9.如果存在对应于该页面的历史数据,则用该数据更新页面,同时对于第一次请求和恢复请求,生成自己的ASMC(或者通过URL改写的方式实现),插入到响应中。
10.转码器12将页面从网络服务器3返回的页面格式转换到用户请求的页面格式。
11.将转码后的页面返回给用户
至此完成一次往返操作。
下面以一个简单的WEB应用为例,来说明我们的系统的工作流程,假设应用程序由四个网页构成:welcome.html,survey1.jsp,survey2.jsp,coupon.jsp。
第一个回合
1.用户在班车上(户外移动环境)打开手机的WAP浏览器,输入网页地址:http://www.crl.ibm.com/demo/welcome.html
2.该请求被发往认证授权服务器2,认证授权服务器2要求用户输入用户名以及密码,当用户输入正确的用户名和密码后,认证授权服务器2将用户信息加入到该请求上,并将该请求发往多通道会话信息共享装置1
3.多通道会话信息共享装置1的核心部分就是应用程序会话管理器11(ASM),应用程序会话管理器11从该请求中提取出用户信息以及用户请求的URL,根据请求的URL得出用户要求访问的WEB应用。根据这些信息去查询模式数据库14和ASM数据库15,看该用户是否已经存在对该WEB应用的历史记录。(现在为空,因为是该用户的第一次请求),应用程序会话管理器11判定该请求类型为“第一次请求”,将该请求发往后端的网络服务器3。
4.应用程序会话管理器11从后端的网络服务器3取得相应的页面后,对该响应(由页面和响应头组成)进行一些相应的操作:
a.截取网络服务器3返回的cookie信息(AC);
b.应用程序会话管理器11生成自己的会话信息,有两种方式可以实现这一点:
i)应用程序会话管理器11生成一个自己的cookie,我们称之为ASMC,将它加到返回的响应头上,返回给用户;
ii)通过URL改写的方式,应用程序会话管理器11可以将自己生成会话信息保存在返回的页面当中;
b.将这些信息更新到ASM数据库15中;
c.如果返回的页面中含有HTML表格,将表格中的初始值提取出来,保存到模式数据库14中;
d.如果需要,调用转码器12对返回的页面进行转码。该转码器会将返回的HTML页面转换成WML的格式;
f.由于手机本身的限制,WAP浏览器只能接受一定大小的页面。所以该转码器根据该手机的参数,进一步将WML页面切割成几个小的页面(每一个小页面称为一个WML deck),deck的大小由手机的参数决定。在这个例子中,我们假定为两个deck。并将这些deck保存在数据库当中,每个deck有一个唯一的URL来检索。
5.应用程序会话管理器11将WML格式的第一个deck返回给用户。
第二个回合
1.用户在对一个deck进行浏览以后,点击继续,请求下一个deck。
2.该请求被发往认证授权服务器2,由于该用户已经通过认证,认证授权服务器2将用户信息加入到该请求上,并将该请求发往多通道会话信息共享装置1。
3.多通道会话信息共享装置1中的应用程序会话管理器11根据其特殊的URL形式判定该请求类型为“片断请求”。
4.应用程序会话管理器11从后端的网络服务器3取得相应的页面后,对该响应进行一些相应的操作:
a.从该请求中提取出用户提交的数据,并用这些数据去更新模式数据库14;
b.根据用户请求的URL,从ASM数据库15中取出相应的deck,返回给用户。
第三个回合
1.用户在对第二个deck进行浏览以后,点击提交,请求下一个页面:http://www.crl.ibm.com/demo/survey1.jsp。
2.该请求被发往认证授权服务器2,由于该用户已经通过认证,认证授权服务器2将用户信息加入到该请求上,并将该请求发往多通道会话信息共享装置1。
3.多通道会话信息共享装置1中的应用程序会话管理器11判定该请求类型为“正常的下一次请求”,因为该用户在ASM数据库15中存在该WEB应用的历史记录,而且在该请求中,包含应用程序会话管理器11在第一个回合中设置的会话信息(在请求头中存在ASMC,或者因为URL改写,在请求的URL中存在会话信息)。
4.应用程序会话管理器11将对该请求进行一些处理:
a.从该请求中提取出用户提交的数据,并用这些数据去更新模
式数据库14;
b.然后将模式数据库14中的完整的数据加入到请求中;
c.将合适的应用程序cookie加入到请求当中;
d.将该请求发往后端的网络服务器3。
5.应用程序会话管理器11从后端的网络服务器3取得相应的页面后,对该相应进行一些相应的操作:
a.截取网络服务器3返回的cookie信息;
b.如果前面应用程序会话管理器11是通过URL改写的方式来
传递自己的会话信息,这里也需要进行URL改写的工作;
c.将这些信息更新到ASM数据库15中;
d.如果模式数据库14中存在与该页面对应的用于以前输入的
值,用这些值对页面进行更新。否则,如果模式数据库14中
不存在相应的数据,而返回的页面中包含一些初始值,则将
这些值提取出来,保存到数据库模式数据库14中;
e.调用转码器12将HTML页面转换成WML格式的页面。
第四个回合
1.用户请求下一个页面:http://www.crl.ibm.com/demo/survey2.jsp。
这时候用户返回到家中,或者办公室,他觉得用PC来输入更舒服一些,这时候他关掉手机,打开PC上的浏览器:
第五个回合
1.用户打开IE浏览器,输入网页地址:http://www.crl.ibm.com/demo/welcome.html
2.该请求被发往认证授权服务器2,认证授权服务器2要求用户输入用户名以及密码,当用户输入正确的用户名和密码后,认证授权服务器2将用户信息加入到该请求上,并将该请求发往多通道会话信息共享装置1。
3.多通道会话信息共享装置1的应用程序会话管理器11从该请求中提取出用户信息以及用户请求的URL,根据这些信息去查询ASM数据库15,发现一个未完成的记录已经存在了。同时,没有在用户的请求中发现ASMC,(如果是URL改写的话,可以从用户的请求中获得),所以,应用程序会话管理器11判定该请求为“恢复请求”类型。
4.由于是“恢复请求”,应用程序会话管理器11会从ASM数据库15中提取相应的信息,构造出一个新的请求:
a.将该请求的URL替换为用户最后访问过的URL:
http://www.crl.ibm.com/demo/survey2.jsp;
b.将应用程序cookie加入到请求中;
c.将该请求发往后端的网络服务器3(也可以从缓存中直接得
到);
5.应用程序会话管理器11从后端的网络服务器3取得相应的页面后,对该响应(由页面和响应头组成)进行一些相应的操作:
a.截取网络服务器3返回的cookie信息(应用程序cookie);
b.应用程序会话管理器11生成一个新的会话信息,有两种方式
可以实现这一点:
i.ASM生成一个自己的cookie,我们称之为ASMC,将
它加到返回的响应的头上,返回给用户;
ii.通过URL改写的方式,应用程序会话管理器11可以将
自己生成会话信息保存在返回的页面当中;
c.将这些信息更新到ASM数据库15中;
d.用模式数据库14中用户已经输入的数据,对该页面进行更新,
这样,用户可以看到他前面用WAP手机输入的数据已经在那
里了;
e.因为在这种情况中,请求的和返回的都是HTML格式的页面,
所以转码器12不做任何事情。
6.应用程序会话管理器11将该页面返回给用户。
通过上述实施例可以看出,本系统实现应用程序的会话信息在不同设备(浏览器)之间的共享。同时保存应用程序的各种状态,比如当前的URL,用户提交过的数据等等。从而实现用户在完成同一个WEB应用的时候,可以根据所处的环境,自己的喜好来选择合适的设备进行操作,当环境发生变化的时候,可以自由的切换使用的设备:比如在移动的环境下使用手持设备,在家里或者办公室的时候使用PC,在安静的环境下使用语音进行输入,在嘈杂的环境下用文本进行输入。同时保证应用程序的在不同设备上的数据同步和连续性。
下面通过图5简要示出本发明的关键部分多通道会话信息共享装置的
尽管在上文中已经参照附图描述本发明的优选实施例,但是本领域的专业人员还可以做出其他改进和变型而不脱离在权利要求书中所限定的本发明的范围。