发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的获取票务信息的方法和装置。
依据本发明的一个方面,本发明实施例提供了一种获取票务信息的方法,包括:
向分布式票务服务器发送第一票务信息获取请求;
判断到分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求;
依据第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求;
向分布式票务服务器发送第二票务信息获取请求使得分布式票务服务器从票务信息中心服务器获取到所请求的票务信息;
从分布式票务服务器接收到从票务信息中心服务器返回的票务信息。
其中,上述向分布式票务服务器发送第一票务信息获取请求包括:
在浏览器侧预置分布式票务服务器的因特网协议IP地址列表,并与服务器侧进行该IP地址列表的更新,其中IP地址列表中包含至少一个分布式票务服务器的IP地址;
从IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求;
以第一IP地址发起的第一票务信息获取请求超过请求时间阈值时,从IP地址列表中获取第二IP地址,向第二IP地址对应的分布式票务服务器发送第一票务信息获取请求。
其中,上述从IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求包括:
在浏览器侧向用户显示包含至少一个分布式票务服务器的IP地址的IP地址列表;接收用户根据IP地址列表发送的IP地址选择指令;根据IP地址选择指令获知用户选择的第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求。
其中,IP地址列表的获取方式包括:通过不同区域的监测点分别对分布式票务服务器进行访问,当对分布式票务服务器访问成功时,获取该监测点所对应的分布式票务服务器的IP地址,并将获取的所有分布式票务服务器的IP地址进行排列,得到IP地址列表。
其中,第一票务信息获取请求中的参数包括如下参数:乘车时间参数、出发站参数、终到站参数、车次信息的获取参数和最新余票数量以及座位情况的获取参数。
其中,上述方法还包括:对分布式票务服务器的配置策略进行监测,确认分布式票务服务器的配置策略发生变化;
当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目减少时,提高第二票务信息获取请求的发送频率;
当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目增多时,降低第二票务信息获取请求的发送频率。
其中,上述判断到分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求包括:
接收分布式票务服务器连续响应第一票务信息获取请求的预定数量的应答;
当预定数量的应答的内容相同,且应答中都包括指示从分布式票务服务器缓存票务信息响应的参数时,确认分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求。
其中,上述预置的使分布式票务服务器不以其缓存票务信息进行响应的参数包括:指示获取分布式票务服务器缓存票务信息无法回应的信息的参数,以及,指示禁止分布式服务器以其缓存票务信息回应的参数。
其中,上述向分布式票务服务器发送第一票务信息获取请求包括:以超文本传输协议获取HTTP Get方式,向分布式票务服务器发送第一票务信息获取请求;
上述向分布式票务服务器发送第二票务信息获取请求包括:以超文本传输协议邮递HTTP Post方式,向分布式票务服务器发送第二票务信息获取请求。
其中,在依据第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求之前,上述方法还包括:
判断分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求的次数是否超过预定频率次数,若超过预定频率次数,启动生成第二票务信息获取请求的操作,否则,不启动生成第二票务信息获取请求的操作。
依据本发明的另一个方面,本发明实施例还提供了一种获取票务信息的装置,包括:
通信单元,适于向分布式票务服务器发送第一票务信息获取请求,向分布式票务服务器发送第二票务信息获取请求使得分布式票务服务器从票务信息中心服务器获取到所请求的票务信息;以及,从分布式票务服务器接收到从票务信息中心服务器返回的票务信息;
判断单元,适于判断到分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求;
穿透请求生成单元,适于依据第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求。
其中,通信单元,适于在浏览器侧预置分布式票务服务器的因特网协议IP地址列表,并与服务器侧进行该IP地址列表的更新,其中IP地址列表中包含至少一个分布式票务服务器的IP地址;从IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求;以第一IP地址发起的第一票务信息获取请求超过请求时间阈值时,从IP地址列表中获取第二IP地址,向第二IP地址对应的分布式票务服务器发送第一票务信息获取请求。
其中,通信单元,适于在浏览器侧向用户显示包含至少一个分布式票务服务器的IP地址的IP地址列表;接收用户根据IP地址列表发送的IP地址选择指令;根据IP地址选择指令获知用户选择的第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求。
其中,通信单元适于通过如下方式获取IP地址列表:通过不同区域的监测点分别对分布式票务服务器进行访问,当对分布式票务服务器访问成功时,获取该监测点所对应的分布式票务服务器的IP地址,并将获取的所有分布式票务服务器的IP地址进行排列,得到IP地址列表。
其中,穿透请求生成单元依据的第一票务信息获取请求中的参数包括如下参数:乘车时间参数、出发站参数、终到站参数、车次信息的获取参数和最新余票数量以及座位情况的获取参数。
其中,上述装置还包括服务器配置策略监测单元和发送频率调整单元。服务器配置策略监测单元,适于对分布式票务服务器的配置策略进行监测,确认分布式票务服务器的配置策略发生变化;发送频率调整单元,适于当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目减少时,提高第二票务信息获取请求的发送频率;当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目增多时,降低第二票务信息获取请求的发送频率。
其中,判断单元,具体适于接收分布式票务服务器连续响应第一票务信息获取请求的预定数量的应答;当预定数量的应答的内容相同,且应答中都包括指示从分布式票务服务器缓存票务信息响应的参数时,确认分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求。
其中,穿透请求生成单元,适于依据第一票务信息获取请求中的参数,和预置的指示获取分布式票务服务器缓存票务信息无法回应的信息的参数,以及,预置的指示禁止分布式服务器以其缓存票务信息回应的参数,生成第二票务信息获取请求。
其中,通信单元,适于以超文本传输协议获取HTTP Get方式,向分布式票务服务器发送第一票务信息获取请求;通信单元,适于以超文本传输协议邮递HTTP Post方式,向分布式票务服务器发送第二票务信息获取请求。
其中,上述装置还包括穿透请求启动单元,适于判断分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求的次数是否超过预定频率次数,若超过预定频率次数,启动生成第二票务信息获取请求的操作,否则,不启动生成第二票务信息获取请求的操作。
由上所述,本发明实施例通过判断出分布式票务服务器处于拥堵状态时,利用预置参数生成禁止该分布式票务服务器用其缓存票务信息响应本请求的第二票务信息获取请求,接收基于该请求从中心服务器返回的票务信息的技术手段,实现了一种电子售票系统中的网络穿透机制,能够将中心服务器中的最新票务信息及时返回至用户,克服了现有技术中由于在一个CDNS处的拥堵而导致购票流程停滞、系统资源利用率较低的问题等,加快电子购票的速度,缩短了购票等待时间,提高了电子售票系统的资源利用率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明一个实施例提供了一种获取票务信息的方法,参见图1,该方法始于步骤S100,包括:
S100:向分布式票务服务器发送第一票务信息获取请求。
例如,浏览器侧向分布式票务服务器连续发送多个第一票务信息获取请求。
S102:判断到分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求。
例如,当浏览器侧接收到的分布式票务服务器对多个第一票务信息获取请求的应答都是相同的且都是从该服务器缓存中响应的,则在本步骤中确认分布式票务服务器在拥堵状态下从该分布式票务服务器的缓存票务信息中响应了第一票务信息获取请求。
S104:依据第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求。
第一票务信息获取请求中的参数包括了发起本次请求的基本信息如乘车日期、起始站和终到站等,需要将这些基本信息设置在第二票务信息获取请求中。而通过预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,则可以使最终生成的第二票务信息获取请求能够不从分布式票务服务器获取响应,即穿透该分布式票务服务器,从票务信息中心服务器直接获取响应。
S106:向分布式票务服务器发送第二票务信息获取请求使得分布式票务服务器从票务信息中心服务器获取到所请求的票务信息。
分布式票务服务器对接收到的第二票务信息获取请求不进行响应,而将该第二票务信息获取请求发送至票务信息中心服务器。
S108:从分布式票务服务器接收到从票务信息中心服务器返回的票务信息。
上述步骤S100至S108可以在浏览器侧执行,如由浏览器侧设置的获取票务信息的装置执行。
由上所述,本发明实施例通过判断出分布式票务服务器处于拥堵状态时,利用预置参数生成禁止该分布式票务服务器用其缓存票务信息响应本请求的第二票务信息获取请求,接收基于该请求从中心服务器返回的票务信息的技术手段,实现了一种电子售票系统中的网络穿透机制,能够将中心服务器中的最新票务信息及时返回至用户,克服了现有技术中由于在一个CDNS处的拥堵而导致购票流程停滞、系统资源利用率较低的问题等,加快电子购票的速度,缩短了购票等待时间,提高了电子售票系统的资源利用率。
本发明另一个实施例提供的一种获取票务信息的方法,参见图2,本实施例以分布式票务服务器采用CDNS(如CDNS1),浏览器向CDNS发送票务信息获取请求的场景为例进行说明。
S200:浏览器生成CDNS列表并智能获取CDNS1的IP地址。
上述CDNS列表为分布式票务服务器的IP(Internet Protocol,因特网协议)地址列表。
本实施例可以采用如下步骤智能获取CDNS1的IP地址:
步骤A)、在浏览器侧预置分布式票务服务器的IP地址列表,并与服务器侧进行该IP地址列表的更新,其中IP地址列表中包含至少一个分布式票务服务器的IP地址;
步骤B)、从IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求;
步骤C)、以第一IP地址发起的第一票务信息获取请求超过请求时间阈值时,从IP地址列表中获取第二IP地址,向第二IP地址对应的分布式票务服务器发送第一票务信息获取请求。
在执行上述步骤A)之前,由监测主机获取得到IP地址列表。其中,在监测主机获取得到IP地址列表之前,需要在世界各个不同区域设置有多个监测点,这些监测点可以是由公益组织或者盈利机构设置的监测主机。
监测主机获取得到IP地址列表的具体过程包括:首先,监测主机会向各个监测点分别发送获取分布式票务服务器IP地址的请求。
其次,各个监测点接收到请求后会分别对该分布式票务服务器的域名进行访问。对所有的监测点中,并非每个监测点都能成功对该分布式票务服务器的域名进行访问,访问不成功的原因可能是网络环境较差等。当监测点对该分布式票务服务器的域名访问成功时,即可得到该监测点对应的分布式票务服务器的IP地址(如IP地址218.85.148.250和IP地址61.191.206.4)。
最后,再由这些监测点将获取到的分布式票务服务器的IP地址返回给监测主机,监测主机汇总这些IP地址,得到IP地址列表。
可选的,监测主机获取到IP地址列表之后,每隔预设时间按照上述监测主机获取IP地址列表的具体过程重新获取每个分布式票务服务器的IP地址,得到新IP地址列表。这样做的好处在于:当分布式票务服务器的数量增加或者减少时,监测主机都能够实时地获取最新的分布式票务服务器的IP地址。
需要说明的是,上文提到的预设时间可以根据季节不同来设定不同的值。例如,春运期间、寒暑假期间属于购票活跃期,这时,可以将上述的预设时间设置为较短时间,例如6小时、8小时等。较短的预设时间能够加速服务器对分布式票务服务器缓存服务器的IP地址的获取,保证了服务器获取的IP地址的实时性。相反,在购票淡季期间,可以将上述的预设时间设置为较长时间,例如48小时、96小时等。较长的预设时间能够减少服务器对应的交互操作,进而减少服务器的处理压力。
对步骤A),在浏览器侧预置分布式票务服务器的IP地址列表,并与服务器侧(如监测主机)进行该IP地址列表的更新的操作,至少可以通过如下两种方式实现。
方式一
当监测主机获取到IP地址列表之后,将获取的IP地址列表发送给浏览器侧,浏览器侧保存该IP地址列表。并且每隔预设时间,监测主机将最新获取到的IP地址列表发送给浏览器侧,浏览器侧保存该最新的IP地址列表。
该方式一中所涉及的预设时间的取值可以参考上文对预设时间取值的介绍,在此不再赘述。
该方式一的好处在于,浏览器侧能够获取最新的IP地址列表,能够实时地为用户提供购票网站最新的分布式票务服务器的IP地址。
需要说明的是,该方式一中,浏览器须处于运行状态(包括前台运行和后台运行)时,方可以实时地接收监测主机发送的最新的IP地址列表。否则,浏览器侧所保存的IP地址列表为上一次浏览器侧运行时,从监测主机获取的IP地址列表。
方式二
当用户点击购票插件(或扩展)时,浏览器侧通过监测主机获取分布式票务服务器的最新IP地址列表,并保存在浏览器侧。
该方式二的好处在于,当用户点击购票插件(或扩展)时,浏览器侧才从监测主机获取IP地址列表,减少了浏览器和监测主机的信息交互,同时降低了监测主机的处理压力。
对于步骤B),从IP地址列表中获取第一IP地址时,可以由浏览器侧自动选择,也可以由用户选择。下面分别对这两种方式进行具体介绍。
方式一,由浏览器侧自动选择第一IP地址。
具体地,为了保证用户能够快速地成功访问分布式票务服务器,浏览器侧可以将IP地址列表中负载状态最低的分布式票务服务器的IP地址作为第一IP地址。
需要说明的是,使用该方式一时,在步骤A)之前还需执行如下步骤:监测主机在每次获取到IP地址列表之后,还预先获取IP地址列表中每个IP地址所对应的分布式票务服务器的负载状态,并按照分布式票务服务器的负载状态由高到低,或由低到高的顺序排列IP地址列表中的IP地址。执行该步骤后,浏览器侧在自动选择第一IP地址时,能够方便地选择出IP地址列表中负载状态最低的分布式票务服务器的IP地址。提高了浏览器选择第一IP地址的速度,同时,该IP地址的选择,还增加了浏览器成功访问分布式票务服务器的几率。
方式二,由用户选择第一IP地址。
可选的,用户选择第一IP地址的具体过程可以通过如下步骤a和步骤b来实现。
步骤a,浏览器侧显示输出分布式票务服务器的IP地址列表供用户选择。
可选的,为了保证用户能够快速地成功访问分布式票务服务器,在步骤a之前还需执行如下步骤:监测主机在每次获取到IP地址列表之后,还预先获取IP地址列表中每个IP地址所对应的分布式票务服务器的负载状态,并按照分布式票务服务器的负载状态由高到低,或由低到高的顺序排列IP地址列表中的IP地址。其中,监测主机获取分布式票务服务器的负载状态的具体方法在上述方式一中已经做出具体介绍,在此不再赘述。
在执行步骤a时,浏览器侧可以将IP地址列表中缓存状态较低的预设个数分布式票务服务器的IP地址显示给用户。
例如,当IP地址列表中的IP地址按照负载状态由低到高的顺序进行排列时,浏览器侧可以将排列在IP地址列表中的前3个IP地址显示给用户。同时,为了使用户更加快捷的选择当前负载状态最低的缓存服务器的IP地址,浏览器侧在向用户显示IP地址时,可以将当前负载状态最低的分布式票务服务器的IP地址重点推荐给用户进行选择(例如,在该IP地址后加一符号“*”以表示该IP地址为推荐使用的IP地址)。
步骤b,将用户选择的IP地址作为第一IP地址,并向第一IP地址发起对分布式票务服务器的网址访问请求。
可选的,在步骤C)之前,本实施例还包括判断是否以第一IP地址发起的网址访问请求超过请求时间阈值的操作。通过该判断步骤可以得出浏览器是否成功通过第一IP地址访问分布式票务服务器。当成功时,继续执行用户的购票流程。当未成功时,用于指示浏览器继续执行步骤C)。避免了浏览器未成功通过第一IP地址访问分布式票务服务器而停止操作的可能。同时增强了浏览器通过切换IP地址访问分布式票务服务器的连贯性。
上述判断是否以第一IP地址发起的网址访问请求超过请求时间阈值的操作至少包括如下两种判断方式。
方式一,判断通过第一IP地址发起网址访问请求之后到接收分布式票务服务器响应的时间间隔是否超出请求时间阈值。
该方式一中,请求时间阈值可以设置为30ms,当在30ms内接收到分布式票务服务器的响应时,说明过第一IP地址访问分布式票务服务器成功。否则,说明第一IP地址对应的缓存服务器处于访问拥堵状态,即通过第一IP地址访问分布式票务服务器失败。
方式二,判断在请求时间阈值内,是否成功通过第一IP地址访问分布式票务服务器。
该方式二中,请求时间阈值可以设置为5s,浏览器侧可以在该5s内重复通过第一IP地址访问分布式票务服务器,当在5s内成功访问分布式票务服务器时,说明通过第一IP地址访问分布式票务服务器成功。否则,说明第一IP地址对应的缓存服务器处于访问拥堵状态,即通过第一IP地址访问分布式票务服务器失败。
若第一IP地址访问失败,则执行步骤C)。对于步骤C),从分布式票务服务器的IP地址列表中获取第二IP地址时,可以由浏览器侧自动选,也可以由用户选择。下面分别对这两种方式进行具体介绍。
方式一,由浏览器侧自动选择第二IP地址。
可选的,为了保证用户能够快速地成功访问分布式票务服务器,浏览器侧可以将IP地址列表中除第一IP地址之外,负载状态最低的缓存服务器的IP地址作为第二IP地址。
方式二,由用户选择第二IP地址。
当浏览器侧将IP地址列表以IP地址的形式显示给用户时,用户可以在IP地址列表中选择除第一IP地址之外的任意一个IP地址,作为第二IP地址。
需要说明的是,本实施例方法中,在判断得到通过第一IP地址发起的网址访问请求超过请求时间阈值时,还可以执行如下步骤:将网址访问请求超过请求时间阈值的第一IP地址发送给服务器。执行该步骤的目的在:能够使服务器获取第一IP地址对应的缓存服务器的用户访问状态,并对此状态进行保存。便于服务器在下一次更新缓存服务器的IP地址列表时,能够根据新获取的IP地址的访问参数和已经保存的IP地址缓存服务器的用户访问状态两个因素对每个IP地址进行排列,使得IP地址的排列顺序更加准确。
还需要说明的是,在执行完上述步骤C)时,仍需判断是否以第二IP地址发起的网址访问请求超过请求时间阈值。其判断方法与上述判断是否以第一IP地址发起的网址访问请求超过请求时间阈值的方法相同,在此不再赘述。通过该判断步骤可以得出浏览器是否成功通过第二IP地址访问分布式票务服务器。当成功时,继续执行用户的购票流程。当未成功时,用于指示浏览器再次执行步骤S106以获取第三IP地址,并发起对分布式票务服务器的网址访问请求,以此类推。避免了浏览器未成功通过第二IP地址访问分布式票务服务器而停止操作的可能。同时增强了浏览器通过切换IP地址访问分布式票务服务器的连贯性。
可选的,根据通过本实施例提供的方法,当通过IP地址列表中的全部IP地址访问所述分布式票务服务器失败时,向服务器侧发起获取IP地址列表更新的请求。在浏览器侧获取更新的IP地址列表之后,继续通过本发明实施例提供的方法步骤A)至C)对分布式票务服务器进行访问。浏览器对于新IP地址列表的获取,增加了用户成功访问分布式票务服务器的可能性。
在CDNS1不拥堵的情况下,当中心服务器开始售票后,系统对于票务信息获取请求的处理流程参见步骤S202至步骤S208。
S202:浏览器侧向CDNS1发送票务信息获取请求,CDNS1将该票务信息获取请求加入处理队列中。图2所示场景中票务信息获取请求为查询请求。
CDNS1在不拥堵的状态下,会按照同步协议及时与中心服务器进行同步,当CDNS1和中心服务器保持同步时,CDNS1中没有最新的数据时会将查询请求发送至中心服务器。
S204:浏览器侧接收返回的查询结果。
CDNS1接收中心服务器根据查询请求返回的查询结果,并将该查询结果发送至浏览器侧。
在处理票务信息获取请求的过程中,中心服务器会根据接收到临时退票信息,实时对中心服务器中的票务数据进行更新。CDNS1也会根据同步协议从中心服务器更新自身的票务数据。
S206:浏览器侧根据返回的查询结果,发送下单请求,CDNS1将来自浏览器侧的下单请求加入订票队列,并将该订票队列发送至中心服务器。
S208:浏览器侧接收CDNS1发送来的订票结果,该订票结果是CDNS1接收中心服务器根据订票队列返回的订票结果得到的。
在CDNS1拥堵的情况下,当中心服务器开始售票后,系统对于票务信息获取请求的处理流程参见步骤S210至步骤S218。
S210:浏览器侧向CDNS1发送第一票务信息获取请求(如查询请求),CDNS1将该票务信息获取请求加入处理队列中。
具体的,浏览器侧以HTTP Get(Hypertext Transfer Protocol Get,超文本传输协议获取)方式,向CDNS1发送第一票务信息获取请求。
其中,第一票务信息获取请求中的参数包括如下基本参数:train_date(乘车时间参数)、from_station_telecode(出发站参数)、from_station_telecode(终到站参数)、train_no(车次信息的获取参数)和seatTypeAndNum(最新余票数量以及座位情况的获取参数)。
可选的,第一票务信息获取请求中还可以包括trainPassType(车次类型参数)、includeStudent(学生票标识)和start_time_str(订票起止时间参数)等一种或多种参数。
S212:浏览器侧接收CDNS1直接从缓存中返回的信息。
由于CDNS1出现了拥堵状态,CDNS1无法及时与中心服务器进行同步,CDNS1从自身的缓存票务信息中对接收到的第一票务信息获取请求进行响应。
S214:浏览器侧判断启动第二票务信息获取请求(如穿透请求)的生成操作。
浏览器侧判断到CDNS1在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求启动穿透请求的生成操作。具体的判断方式包括:当浏览器侧接收到分布式票务服务器(CDNS1)连续响应第一票务信息获取请求的预定数量的应答;当预定数量的应答的内容相同,且应答中都包括指示从分布式票务服务器缓存票务信息响应的参数时,确认分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求,则进入步骤S216启动穿透请求的生成操作。
S216:浏览器侧生成穿透请求,并将该穿透请求发送至CDNS1。
浏览器侧依据第一票务信息获取请求中的基本参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成穿透请求。
上述预置的使分布式票务服务器不以其缓存票务信息进行响应的参数包括两种类型的参数:
第一种类型的参数为指示获取分布式票务服务器缓存票务信息无法回应的信息的参数,这种类型的参数可以为获取某种信息的参数,而要获取的信息是不会存在于CDNS1的缓存票务信息中的,CDNS1无法从其缓存票务信息获取到回应该参数的数据,所以第一种类型的参数能够触发穿透请求的生成操作;
第二种类型的参数为指示禁止分布式服务器以其缓存票务信息回应的参数,虽然在设置了第一种类型的参数后避免了CDNS1会在拥堵状态下从缓存票务信息响应请求,但是仅设置第一种类型的参数并不能完全保证CDNS1对其缓存执行怎样的操作,所以通过设置第二类型的参数,如将CDNS1对缓存的操作方式设置为No Cache,确保了CDNS1不会从其缓存票务信息中响应穿透请求,而是将穿透请求发送至中心服务器进行响应。
浏览器侧可以HTTP Post(超文本传输协议邮递)方式,向CDNS1发送第二票务信息获取请求。
S218:浏览器侧接收CDNS1转发来的中心服务器响应的票务信息。
浏览器侧从中心服务器响应的票务信息中获取到最新的票务信息,在这种情况下,CDNS1仅起到信息转发的功能。
在接收到的响应中可以包括Connection(连接参数)、Content-Encodeing(内容解码)参数、Content-Type(内容类型)参数、Date(日期)参数、Pragma(语法)参数和X-Via(服务器代码名称)参数等等。
需要说明的是,考虑到过多的穿透请求会加大中心服务器的压力,对于多次重复查询的穿透请求,会每隔预定次数的查询才执行一次穿透,则在执行上述步骤S216之前,上述方法还包括:判断分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求的次数是否超过预定频率次数,若超过预定频率次数(如5次),启动生成第二票务信息获取请求的操作,否则,不启动生成第二票务信息获取请求的操作。这种处理方式在保证浏览器侧获取到最新的票务信息时,兼顾了中心服务器的处理压力。
另外,当分布式票务服务器的配置策略变化导致分布式票务服务器对票务信息获取请求的处理方式发生变化时,例如,配置策略变化前,CDNS1对连续接收到的最多8次浏览器侧的请求进行响应,配置策略变化后,CDNS1对连续接收到的最多4次浏览器侧的请求进行响应,则本实施例中也会根据该配置策略的变化调整发送第二票务信息获取请求的频率。首先,本实施例在浏览器侧对分布式票务服务器的配置策略进行监测,例如,监测CDNS1对浏览器侧请求的响应情况,确认分布式票务服务器的配置策略发生变化,然后,当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目减少时,提高第二票务信息获取请求的发送频率;当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目增多时,降低第二票务信息获取请求的发送频率。
本发明又一个实施例结合图3对本方案提供的获取票务信息的方案进行总体上的描述。参见图3,示出了本发明实施例提供的一种获取票务信息的场景示意图。用户通过浏览器侧的浏览器1发送票务信息获取请求。
首先,浏览器1会从获知的CDNS列表中选择发起第一票务信息获取请求的IP地址,图3所示的场景中,浏览器1选择IP1对应的CDNS1以HTTPGet方式发送第一票务信息获取请求。CDNS1接收到第一票务信息获取请求后,若CDNS1处于拥堵状态,CDNS1会从其缓存票务信息中返回对第一票务信息获取请求的响应。浏览器1判断出CDNS1在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求时,生成第二票务信息获取请求。浏览器1将第二票务信息获取请求以HTTP Post方式发送至CDNS1,如图3中虚线段所示,CDNS1接收到第二票务信息获取请求时,不对第二票务信息获取请求进行响应而是直接将第二票务信息获取请求发送至中心服务器,由中心服务器对第二票务信息获取请求进行响应,CDNS1接收中心服务器返回的对第二票务信息的响应结果,并将响应结果发送至浏览器1,从而完成了本次的票务信息获取操作。
本发明又一个实施例还提供了一种获取票务信息的装置400,参见图4,装置400包括通信单元410、判断单元412、穿透请求生成单元414、服务器配置策略监测单元416、发送频率调整单元418和穿透请求启动单元420。下面分别对这些器件进行说明。
通信单元410适于向分布式票务服务器发送第一票务信息获取请求,向分布式票务服务器发送第二票务信息获取请求使得分布式票务服务器从票务信息中心服务器获取到所请求的票务信息;以及,从分布式票务服务器接收到从票务信息中心服务器返回的票务信息。例如,通信单元410以HTTP Get方式,向分布式票务服务器发送第一票务信息获取请求;通信单元410以HTTP Post方式,向分布式票务服务器发送第二票务信息获取请求。
其中,通信单元410可以通过如下方式选取发起第一票务信息获取请求的分布式票务服务器:
通信单元410在浏览器侧预置分布式票务服务器的IP地址列表,并与服务器侧进行该IP地址列表的更新,其中IP地址列表中包含至少一个分布式票务服务器的IP地址;从IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求;以第一IP地址发起的第一票务信息获取请求超过请求时间阈值时,从IP地址列表中获取第二IP地址,向第二IP地址对应的分布式票务服务器发送第一票务信息获取请求。
在选取上述第一IP地址时,通信单元410可以在浏览器侧向用户显示包含至少一个分布式票务服务器的IP地址的IP地址列表;接收用户根据IP地址列表发送的IP地址选择指令;根据IP地址选择指令获知用户选择的第一IP地址,向第一IP地址对应的分布式票务服务器发送第一票务信息获取请求。
其中,通信单元410通过如下方式获取IP地址列表:通过不同区域的监测点分别对分布式票务服务器进行访问,当对分布式票务服务器访问成功时,获取该监测点所对应的分布式票务服务器的IP地址,并将获取的所有分布式票务服务器的IP地址进行排列,得到IP地址列表。
判断单元412适于判断到分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求。具体的,判断单元412适于接收分布式票务服务器连续响应第一票务信息获取请求的预定数量的应答;当预定数量的应答的内容相同,且应答中都包括指示从分布式票务服务器缓存票务信息响应的参数时,确认分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求。
穿透请求生成单元414适于依据第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求。穿透请求生成单元414依据的第一票务信息获取请求中的参数包括如下参数:乘车时间参数、出发站参数、终到站参数、车次信息的获取参数和最新余票数量以及座位情况的获取参数。具体的,穿透请求生成单元414依据第一票务信息获取请求中的参数,和预置的指示获取分布式票务服务器缓存票务信息无法回应的信息的参数,以及,预置的指示禁止分布式服务器以其缓存票务信息回应的参数(No Cache),生成第二票务信息获取请求。
可选的,当分布式票务服务器的配置策略变化导致分布式票务服务器对票务信息获取请求的处理方式发生变化时,为适应这种变化对票务信息的获取造成的影响,上述装置400还包括服务器配置策略监测单元416和发送频率调整单元418。服务器配置策略监测单元416适于对分布式票务服务器的配置策略进行监测,确认分布式票务服务器的配置策略发生变化;发送频率调整单元418适于当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目减少时,提高第二票务信息获取请求的发送频率;当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目增多时,降低第二票务信息获取请求的发送频率。
可以理解,当分布式票务服务器的配置策略固定或者分布式票务服务器的配置策略的变化对票务信息的获取造成的影响可以不计时,服务器配置策略监测单元416和发送频率调整单元418可以略去。
另外,考虑到过多的穿透请求会加大中心服务器的压力,对于多次重复查询的穿透请求,会每隔预定次数的查询才执行一次穿透,则上述装置400还包括穿透请求启动单元420适于判断分布式票务服务器在拥堵状态下从其缓存票务信息中响应了第一票务信息获取请求的次数是否超过预定频率次数(如5次),若超过预定频率次数,启动生成第二票务信息获取请求的操作,否则,不启动生成第二票务信息获取请求的操作。
本实施例的装置400中各单元的具体工作方式可以参见本发明其它实施例中的相关内容,在此不再赘述。
由上所述,本发明实施例通过判断出分布式票务服务器处于拥堵状态时,利用预置参数生成禁止该分布式票务服务器用其缓存票务信息响应本请求的第二票务信息获取请求,接收基于该请求从中心服务器返回的票务信息的技术手段,实现了一种电子售票系统中的网络穿透机制,能够将中心服务器中的最新票务信息及时返回至用户,克服了现有技术中由于在一个CDNS处的拥堵而导致购票流程停滞、系统资源利用率较低的问题等,加快电子购票的速度,缩短了购票等待时间,提高了电子售票系统的资源利用率。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的获取票务信息的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例揭示了A1、一种获取票务信息的方法,包括:向分布式票务服务器发送第一票务信息获取请求;判断到所述分布式票务服务器在拥堵状态下从其缓存票务信息中响应了所述第一票务信息获取请求;依据所述第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求;向所述分布式票务服务器发送所述第二票务信息获取请求使得所述分布式票务服务器从票务信息中心服务器获取到所请求的票务信息;从所述分布式票务服务器接收到从票务信息中心服务器返回的票务信息。A2、根据A1所述的方法,其中,所述向分布式票务服务器发送第一票务信息获取请求包括:在浏览器侧预置分布式票务服务器的因特网协议IP地址列表,并与服务器侧进行该IP地址列表的更新,其中所述IP地址列表中包含至少一个分布式票务服务器的IP地址;从所述IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送所述第一票务信息获取请求;以第一IP地址发起的第一票务信息获取请求超过请求时间阈值时,从所述IP地址列表中获取第二IP地址,向第二IP地址对应的分布式票务服务器发送所述第一票务信息获取请求。A3、根据A2所述的方法,其中,所述从所述IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送所述第一票务信息获取请求包括:在浏览器侧向用户显示包含至少一个分布式票务服务器的IP地址的IP地址列表;接收用户根据所述IP地址列表发送的IP地址选择指令;根据所述IP地址选择指令获知用户选择的第一IP地址,向第一IP地址对应的分布式票务服务器发送所述第一票务信息获取请求。A4、根据A2或A3所述的方法,其中,所述IP地址列表的获取方式包括:通过不同区域的监测点分别对所述分布式票务服务器进行访问,当对所述分布式票务服务器访问成功时,获取该监测点所对应的所述分布式票务服务器的IP地址,并将获取的所有分布式票务服务器的IP地址进行排列,得到所述IP地址列表。A5、根据A1所述的方法,其中,所述第一票务信息获取请求中的参数包括如下参数:乘车时间参数、出发站参数、终到站参数、车次信息的获取参数和最新余票数量以及座位情况的获取参数。A6、根据A1所述的方法,其中,所述方法还包括:对分布式票务服务器的配置策略进行监测,确认分布式票务服务器的配置策略发生变化;当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目减少时,提高所述第二票务信息获取请求的发送频率;当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目增多时,降低所述第二票务信息获取请求的发送频率。A7、根据A1所述的方法,其中,所述判断到所述分布式票务服务器在拥堵状态下从其缓存票务信息中响应了所述第一票务信息获取请求包括:接收所述分布式票务服务器连续响应所述第一票务信息获取请求的预定数量的应答;当所述预定数量的应答的内容相同,且应答中都包括指示从分布式票务服务器缓存票务信息响应的参数时,确认所述分布式票务服务器在拥堵状态下从其缓存票务信息中响应了所述第一票务信息获取请求。A8、根据A1所述的方法,其中,所述预置的使分布式票务服务器不以其缓存票务信息进行响应的参数包括:指示获取分布式票务服务器缓存票务信息无法回应的信息的参数,以及,指示禁止分布式服务器以其缓存票务信息回应的参数。A9、根据A1所述的方法,其中,所述向分布式票务服务器发送第一票务信息获取请求包括:以超文本传输协议获取HTTP Get方式,向分布式票务服务器发送第一票务信息获取请求;所述向所述分布式票务服务器发送所述第二票务信息获取请求包括:以超文本传输协议邮递HTTP Post方式,向分布式票务服务器发送第二票务信息获取请求。A10、根据A1所述的方法,其中,在依据所述第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求之前,所述方法还包括:判断所述分布式票务服务器在拥堵状态下从其缓存票务信息中响应了所述第一票务信息获取请求的次数是否超过预定频率次数,若超过预定频率次数,启动生成所述第二票务信息获取请求的操作,否则,不启动生成所述第二票务信息获取请求的操作。本发明实施例还揭示了B11、一种获取票务信息的装置,包括:通信单元,适于向分布式票务服务器发送第一票务信息获取请求,向所述分布式票务服务器发送第二票务信息获取请求使得所述分布式票务服务器从票务信息中心服务器获取到所请求的票务信息;以及,从所述分布式票务服务器接收到从票务信息中心服务器返回的票务信息;判断单元,适于判断到所述分布式票务服务器在拥堵状态下从其缓存票务信息中响应了所述第一票务信息获取请求;穿透请求生成单元,适于依据所述第一票务信息获取请求中的参数和预置的使分布式票务服务器不以其缓存票务信息进行响应的参数,生成第二票务信息获取请求。B12、根据B11所述的装置,其中,所述通信单元,适于在浏览器侧预置分布式票务服务器的因特网协议IP地址列表,并与服务器侧进行该IP地址列表的更新,其中所述IP地址列表中包含至少一个分布式票务服务器的IP地址;从所述IP地址列表中获取第一IP地址,向第一IP地址对应的分布式票务服务器发送所述第一票务信息获取请求;以第一IP地址发起的第一票务信息获取请求超过请求时间阈值时,从所述IP地址列表中获取第二IP地址,向第二IP地址对应的分布式票务服务器发送所述第一票务信息获取请求。B13、根据B11所述的装置,其中,所述通信单元,适于在浏览器侧向用户显示包含至少一个分布式票务服务器的IP地址的IP地址列表;接收用户根据所述IP地址列表发送的IP地址选择指令;根据所述IP地址选择指令获知用户选择的第一IP地址,向第一IP地址对应的分布式票务服务器发送所述第一票务信息获取请求。B14、根据B12或B13所述的装置,其中,所述通信单元适于通过如下方式获取IP地址列表:通过不同区域的监测点分别对所述分布式票务服务器进行访问,当对所述分布式票务服务器访问成功时,获取该监测点所对应的所述分布式票务服务器的IP地址,并将获取的所有分布式票务服务器的IP地址进行排列,得到所述IP地址列表。B15、根据B11所述的装置,其中,所述穿透请求生成单元依据的所述第一票务信息获取请求中的参数包括如下参数:乘车时间参数、出发站参数、终到站参数、车次信息的获取参数和最新余票数量以及座位情况的获取参数。B16、根据B11所述的装置,其中,所述装置还包括服务器配置策略监测单元和发送频率调整单元,所述服务器配置策略监测单元,适于对分布式票务服务器的配置策略进行监测,确认分布式票务服务器的配置策略发生变化;所述发送频率调整单元,适于当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目减少时,提高所述第二票务信息获取请求的发送频率;当变化后的配置策略指示分布式票务服务器响应的连续接收到的第一票务信息获取请求的数目增多时,降低所述第二票务信息获取请求的发送频率。B17、根据B11所述的装置,其中,所述判断单元,具体适于接收所述分布式票务服务器连续响应所述第一票务信息获取请求的预定数量的应答;当所述预定数量的应答的内容相同,且应答中都包括指示从分布式票务服务器缓存票务信息响应的参数时,确认所述分布式票务服务器在拥堵状态下从其缓存票务信息中响应了所述第一票务信息获取请求。B18、根据B11所述的装置,其中,所述穿透请求生成单元,适于依据所述第一票务信息获取请求中的参数,和预置的指示获取分布式票务服务器缓存票务信息无法回应的信息的参数,以及,预置的指示禁止分布式服务器以其缓存票务信息回应的参数,生成第二票务信息获取请求。B19、根据B11所述的装置,其中,所述通信单元,适于以超文本传输协议获取HTTP Get方式,向分布式票务服务器发送第一票务信息获取请求;所述通信单元,适于以超文本传输协议邮递HTTP Post方式,向分布式票务服务器发送第二票务信息获取请求。B20、根据B11所述的装置,其中,所述装置还包括穿透请求启动单元,适于判断所述分布式票务服务器在拥堵状态下从其缓存票务信息中响应了所述第一票务信息获取请求的次数是否超过预定频率次数,若超过预定频率次数,启动生成所述第二票务信息获取请求的操作,否则,不启动生成所述第二票务信息获取请求的操作。