本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種支持多方聯(lián)網(wǎng)票務(wù)的方法。
背景技術(shù):
目前的公路客運(yùn)集團(tuán)票務(wù)系統(tǒng)主要以集團(tuán)內(nèi)部各站務(wù)公司為單位進(jìn)行獨(dú)立地操作與管理,在各個(gè)站務(wù)公司部署單獨(dú)的票務(wù)服務(wù)器,各站的票務(wù)終端對應(yīng)的鎖票,售票,退票等操作都集中在這個(gè)票務(wù)服務(wù)器中完成,與其它各站互相隔離,從而避免了單點(diǎn)故障導(dǎo)致整個(gè)集團(tuán)票務(wù)活動(dòng)中止的狀況。
同時(shí),各個(gè)站務(wù)公司票務(wù)服務(wù)器本地化,能有效實(shí)現(xiàn)負(fù)載均衡,減小網(wǎng)絡(luò)開銷,從而減少票務(wù)操作的響應(yīng)時(shí)間,很大程度上提升票務(wù)操作的效率和準(zhǔn)確率。
但是,目前的公路客運(yùn)集團(tuán)票務(wù)系統(tǒng)還存在一些問題:
例如,對于若干站務(wù)公司都支持到達(dá),但是單個(gè)站務(wù)公司購票乘客一般極少量的某些站點(diǎn),因?yàn)槊總€(gè)站務(wù)公司是獨(dú)立的票務(wù)服務(wù)器,所以每個(gè)站務(wù)公司都必須發(fā)布到達(dá)相應(yīng)站點(diǎn)的班次并且提供運(yùn)輸車輛進(jìn)行運(yùn)輸,站務(wù)運(yùn)輸成本高而上客率極低。特別是針對相對偏遠(yuǎn)的站點(diǎn),這種高成本低收益的對比更加明顯;
又例如,如果希望能各個(gè)站務(wù)公司單獨(dú)售票,運(yùn)輸公司集中運(yùn)輸?shù)脑挘謽O有可能出現(xiàn)一個(gè)座位在多個(gè)站被多位乘客購買,出現(xiàn)總購票人數(shù)多于車輛總座位數(shù)的不合理情況。
公路客運(yùn)集團(tuán)各站務(wù)公司票務(wù)系統(tǒng)獨(dú)立運(yùn)作,當(dāng)面對在各站務(wù)公司去往某些偏遠(yuǎn)站點(diǎn)的乘客稀少的現(xiàn)狀時(shí),各站務(wù)公司獨(dú)立組織運(yùn)輸車輛方式必然導(dǎo)致高運(yùn)輸成本,低效益的問題。而若采用獨(dú)立售票但集中運(yùn)輸?shù)慕鉀Q方案情況,公路客運(yùn)集團(tuán)內(nèi)各站務(wù)公司之間分布式的票務(wù)服務(wù)器架構(gòu)又無法確保滿足票務(wù)信息的一致性和唯一性要求。因此,十分有必要在維持公路客運(yùn)集團(tuán)各站務(wù)公司票務(wù)系統(tǒng)獨(dú)立運(yùn)作且票務(wù)信息全局一致的前提下,提供一種支持多方聯(lián)網(wǎng)的票務(wù)操作方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中的缺陷,提供一種支持多方聯(lián)網(wǎng)票務(wù)的方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種支持多方聯(lián)網(wǎng)票務(wù)的方法,基于支持多方聯(lián)網(wǎng)票務(wù)的服務(wù)器,所述支持多方聯(lián)網(wǎng)票務(wù)的服務(wù)器,包括票務(wù)客戶端、本地應(yīng)用服務(wù)器、本地票務(wù)服務(wù)器和中心票務(wù)服務(wù)器;包括以下步驟::
1)在各個(gè)站務(wù)公司建立配載線路,建立配載線路的一般步驟如下所述:根據(jù)實(shí)際客運(yùn)需求,在票務(wù)活動(dòng)所涉及到的多方站務(wù)公司內(nèi)建立公用線路模板并關(guān)聯(lián)建立包含若干途經(jīng)站點(diǎn)的配載線路,需要設(shè)定的信息包括:線路名稱,線路代碼,起點(diǎn)站,終點(diǎn)站,所屬線路模板,車型,車級,是否高速,以及線路上各個(gè)途經(jīng)站點(diǎn)的途經(jīng)順序和從起點(diǎn)出發(fā)到達(dá)該站的默認(rèn)價(jià)格信息;
2)在各個(gè)站務(wù)公司內(nèi)建立班次檔案;建立配載班次檔案的步驟如下所述:根據(jù)實(shí)際需求,在多方站務(wù)公司內(nèi),在已有配載線路下,配載班次檔案信息包括:所屬線路,班次號,售賣類型,進(jìn)站口,檢票口;
集團(tuán)范圍內(nèi),將有公共途經(jīng)站點(diǎn)的若干個(gè)不同站務(wù)公司的班次檔案配置成配載組;
3)票務(wù)客戶端根據(jù)用戶需求向本地應(yīng)用服務(wù)器發(fā)送查詢途經(jīng)某站的所有班次的票務(wù)信息的請求;
4)本地應(yīng)用服務(wù)器根據(jù)請求查詢條件、本地票務(wù)服務(wù)器和中心票務(wù)服務(wù)器的配置信息,查找本地班次,獲得本地班次所屬班次組;同時(shí),本地應(yīng)用服務(wù)器向中心票務(wù)服務(wù)器發(fā)送查詢某班次組實(shí)時(shí)票務(wù)信息的請求;
5)中心票務(wù)服務(wù)器根據(jù)班次組編號以及日期等條件查詢票務(wù)信息并返回結(jié)果給發(fā)出請求的本地應(yīng)用服務(wù)器;
6)本地應(yīng)用服務(wù)器在獲取了從本地票務(wù)服務(wù)器和中心票務(wù)服務(wù)器返回的票務(wù)數(shù)據(jù)后,結(jié)合數(shù)據(jù)庫中拿到的班次信息,將包含班次號,發(fā)班時(shí)刻,進(jìn)站口,檢票口,當(dāng)前剩余票數(shù)等信息在內(nèi)的結(jié)果返回給發(fā)出請求的票務(wù)客戶端;
7)票務(wù)客戶端向本地應(yīng)用服務(wù)器發(fā)送對某班次的鎖票請求;票務(wù)客戶端向配置文件中所配置的本地應(yīng)用服務(wù)器發(fā)送查詢某天從某站務(wù)公司出發(fā)到達(dá)某站的所有班次以及這些班次的票務(wù)信息的請求,該請求應(yīng)包含以下參數(shù):日期,終點(diǎn)站,是否查詢配載班次。
8)本地應(yīng)用服務(wù)器向中心票務(wù)服務(wù)器發(fā)送對所查詢班次所屬的班次組進(jìn)行鎖票操作的請求;
9)中心票務(wù)服務(wù)器根據(jù)請求內(nèi)容嘗試鎖票,并且將鎖票操作結(jié)果返回給發(fā)出請求的本地應(yīng)用服務(wù)器;
本地應(yīng)用服務(wù)器將鎖票結(jié)果返回給發(fā)出請求的票務(wù)客戶端;
若鎖票成功,則票務(wù)客戶端可進(jìn)行售票操作,若鎖票失敗,則票務(wù)客戶端給出鎖票失敗提示;
10)若上一步鎖票成功,票務(wù)客戶端向本地應(yīng)用服務(wù)器發(fā)送售票請求;
本地應(yīng)用服務(wù)器根據(jù)請求的本地班次獲取其班次組編號,根據(jù)時(shí)間,座位數(shù)等信息向中心票務(wù)服務(wù)器發(fā)送購票請求;
中心票務(wù)服務(wù)器嘗試將對應(yīng)車票移出配載班次票池,并將結(jié)果返回給發(fā)出請求的本地應(yīng)用服務(wù)器;
本地應(yīng)用服務(wù)器將購票結(jié)果返回給發(fā)出請求的票務(wù)客戶端;票務(wù)客戶端根據(jù)購票結(jié)果進(jìn)行下一步票務(wù)操作。
按上述方案,所述步驟2)中將配載班次檔案配置成配載組的一般步驟如下所述:根據(jù)實(shí)際需求選擇一條線路模板,在給出的各個(gè)站務(wù)公司的屬于此線路模板的配載班次檔案列表中選擇需要的班次檔案,需要為配載班次檔案組設(shè)定的信息包括:配載組編號,總座位數(shù),生效日期,失效日期,運(yùn)行天數(shù),間隔天數(shù),公共途經(jīng)站點(diǎn)以及各個(gè)配載班次檔案的發(fā)班時(shí)刻與次序,其中,生效日期,失效日期,運(yùn)行天數(shù),間隔天數(shù)與配載組某天能否發(fā)布班次組相關(guān);配載組編號作為后續(xù)票務(wù)操作的重要參數(shù)信息,應(yīng)該保證其唯一性;最終途經(jīng)站點(diǎn)應(yīng)該是所有組內(nèi)班次本身的途經(jīng)站點(diǎn)的交集的子集。
本發(fā)明產(chǎn)生的有益效果是:本發(fā)明在維持公路客運(yùn)集團(tuán)各站務(wù)公司票務(wù)系統(tǒng)獨(dú)立運(yùn)作且票務(wù)信息全局一致的前提下,提供一種支持多方聯(lián)網(wǎng)的票務(wù)操作方法。本發(fā)明提供的方法解決了各站務(wù)公司獨(dú)立組織運(yùn)輸車輛方式導(dǎo)致高運(yùn)輸成本,低效益的問題;同時(shí),通過各個(gè)站務(wù)公司票務(wù)服務(wù)器本地化,能有效實(shí)現(xiàn)負(fù)載均衡,減小網(wǎng)絡(luò)開銷,從而減少票務(wù)操作的響應(yīng)時(shí)間,很大程度上提升票務(wù)操作的效率和準(zhǔn)確率。
附圖說明
下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中:
圖1是本發(fā)明實(shí)施例的方法流程圖;
圖2是本發(fā)明實(shí)施例的多方聯(lián)網(wǎng)票務(wù)操作時(shí)序圖;
圖3是本發(fā)明實(shí)施例的多方服務(wù)器集群關(guān)系圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,一種支持多方聯(lián)網(wǎng)票務(wù)的方法,包括以下步驟:
1、多方范圍內(nèi),建立配載線路及配載班次檔案并將配載班次檔案配置成配載組。
其中,建立配載線路的一般步驟如下所述:根據(jù)實(shí)際客運(yùn)需求,在票務(wù)活動(dòng)所涉及到的多方站務(wù)公司內(nèi)建立公用線路模板并關(guān)聯(lián)建立包含若干途經(jīng)站點(diǎn)的配載線路,需要設(shè)定的信息包括:線路名稱,線路代碼,起點(diǎn)站,終點(diǎn)站,所屬線路模板,車型,車級,是否高速,以及線路上各個(gè)途經(jīng)站點(diǎn)的途經(jīng)順序和從起點(diǎn)出發(fā)到達(dá)該站的默認(rèn)價(jià)格等信息。
例如,在武昌站務(wù)公司,“武漢-安慶”線路模板下,建立一條線路名稱為“付家坡-安慶(配載)”,代碼為“wc-aq”,起點(diǎn)站為付家坡,按順序途經(jīng)太湖,月山,潛山,宿松,終點(diǎn)為安慶,車型為座席,車級為高一級的高速配載線路,并且為每個(gè)途經(jīng)站點(diǎn)設(shè)置默認(rèn)價(jià)格。
其中,建立配載班次檔案的一般步驟如下所述:根據(jù)實(shí)際需求,在多方站務(wù)公司內(nèi),在已有配載線路下,建立配載班次檔案,需要設(shè)定的信息包括:所屬線路,班次號,售賣類型,進(jìn)站口,檢票口等。需要說明的是,配載班次檔案所屬的站務(wù)公司與其所在的配載線路所屬的站務(wù)公司是保持一致的,線路模板在多方范圍內(nèi)公用,但是配載線路一定是屬于某站務(wù)公司的;班次號具有唯一性。
例如,在武昌站務(wù)公司的“付家坡-安慶(配載)”線路下,建立一個(gè)班次號為“fj0001p”,售賣類型為全網(wǎng)售,進(jìn)站口為12進(jìn)站口,檢票口為a11檢票口的配載班次檔案,則此配載班次檔案在不主動(dòng)過濾途經(jīng)站點(diǎn)的情況下,將從付家坡出發(fā),按順序途經(jīng)太湖,月山,潛山,宿松,并最終到達(dá)安慶。
其中,將配載班次檔案配置成配載組的一般步驟如下所述:根據(jù)實(shí)際需求選擇一條線路模板,在給出的各個(gè)站務(wù)公司的屬于此線路模板的配載班次檔案列表中選擇需要的班次檔案,需要為配載班次檔案組設(shè)定的信息包括:配載組編號,總座位數(shù),生效日期,失效日期,運(yùn)行天數(shù),間隔天數(shù),公共途經(jīng)站點(diǎn)以及各個(gè)配載班次檔案的發(fā)班時(shí)刻與次序,其中,生效日期,失效日期,運(yùn)行天數(shù),間隔天數(shù)與配載組某天能否發(fā)布班次組相關(guān);配載組編號作為后續(xù)票務(wù)操作的重要參數(shù)信息,應(yīng)該保證其唯一性;最終途經(jīng)站點(diǎn)應(yīng)該是所有組內(nèi)班次本身的途經(jīng)站點(diǎn)的交集的子集。
例如,選定“武漢-安慶”線路模板,選擇預(yù)先創(chuàng)建好的武昌站務(wù)公司的“fj0001p”班次檔案以及宏基站務(wù)公司的“hj0004p”配載班次檔案創(chuàng)建配載組“aqpzs001”,并且設(shè)定座位數(shù)為39,運(yùn)行天數(shù)為1,間隔天數(shù)為2,生效日期為2016-08-29,失效日期為2016-12-31,選取公共途經(jīng)站點(diǎn),設(shè)定途經(jīng)站“fj0001p”班次發(fā)班時(shí)刻為07:30,“hj0004p”班次發(fā)班時(shí)刻為08:10,從發(fā)班時(shí)刻上可以看出,車先經(jīng)過武昌站務(wù)公司,然后到宏基站務(wù)公司,再按照次序到各個(gè)途經(jīng)站點(diǎn)。
需要說明的是,對于座位數(shù),運(yùn)行天數(shù),間隔天數(shù),途經(jīng)站點(diǎn)這樣的信息是控制在一個(gè)配載組上的,對于同一個(gè)配載組內(nèi)的所有班次,上述信息是保持一致的。而對于具體的票價(jià),班次計(jì)劃的開停信息,每個(gè)站務(wù)公司可以各自定義,同組內(nèi)不同班次之間可以不相同。
將配載班次檔案配置成配載組需要至少滿足以下條件:同一個(gè)配載班次檔案至多只能參與到一個(gè)配載組;只有同一個(gè)線路模板下的班次檔案才能配置到同一組;每個(gè)配載組至少包含2個(gè)配載班次檔案;同一個(gè)組內(nèi)不能存在兩個(gè)或兩個(gè)以上同屬于同一站務(wù)公司的配載班次檔案。
配置成功的配載組仍可在滿足上述條件的前提下進(jìn)行重配置操作,包括:增加或刪除組內(nèi)班次檔案;對配載組的座位數(shù),發(fā)班時(shí)刻等信息進(jìn)行調(diào)整等。特別是在后續(xù)配載班次檔案組已經(jīng)發(fā)布過班次的情況下,以上修改能實(shí)時(shí)應(yīng)用。
上述實(shí)體間存在以下約束:一條線路模板下,可以在不同站務(wù)公司內(nèi)或者是同一站務(wù)公司內(nèi)存在多條線路;一條配載線路下,可以根據(jù)實(shí)際需求創(chuàng)建若干個(gè)配載班次檔案。
2、根據(jù)配載組中配載班次檔案,生成班次計(jì)劃,如下所述:
根據(jù)配載組的生效日期,失效日期,運(yùn)行天數(shù),間隔天數(shù)數(shù)據(jù),給出今天及以后的某個(gè)發(fā)班日期能夠發(fā)布的配載組集合;
具體的規(guī)則為,若同時(shí)滿足:發(fā)班日期=生效日期+(運(yùn)行天數(shù)+間隔天數(shù))*m(m>0且為整數(shù))+運(yùn)行天數(shù);生效日期<=發(fā)班日期<=失效日期,則這樣的發(fā)班日期當(dāng)天此配載組是允許發(fā)班的。所選擇的的發(fā)班日期可以比當(dāng)前日期大,即提前發(fā)班開始預(yù)售。例如,2016-8-29號可以發(fā)布2016-9-3號的班次。
在允許發(fā)班的配載組集合中,按照實(shí)際需求,對集合中部分或者全部配載組進(jìn)行發(fā)班操作,這個(gè)操作包含的后臺任務(wù)主要是將班次的靜態(tài)信息存儲入關(guān)系數(shù)據(jù)庫,將票務(wù)信息按照一定的數(shù)據(jù)結(jié)構(gòu)推送至中心票務(wù)服務(wù)器。
具體推送入中心票務(wù)服務(wù)器的車票數(shù)據(jù)格式為“發(fā)班日期:配載組編號:座位號”,還有其它的配套使用的輔助數(shù)據(jù)格式,如“發(fā)班日期:配載組編號:lock”(表示某配載班次組鎖票的集合)以提升票務(wù)操作性能。
實(shí)現(xiàn)這種將票務(wù)信息推送到指定票務(wù)服務(wù)器的功能需要在本地應(yīng)用服務(wù)器上配置一系列的ip地址,端口號等信息,既需要本地票務(wù)服務(wù)器的配置,也需要中心票務(wù)服務(wù)器的配置。此部分重點(diǎn)在于說明配載班次檔案的建立,配載組的配置以及發(fā)布的具體實(shí)施方式,實(shí)際情況下,每個(gè)站務(wù)公司還存在普通本地班次的建立以及發(fā)布的過程,發(fā)布普通本地班次時(shí),票務(wù)信息將被推送到本地票務(wù)服務(wù)器,使用“日期:班次號:座位號”來唯一標(biāo)識一張車票。
根據(jù)配載組中配載班次檔案,生成班次計(jì)劃包括:
根據(jù)實(shí)際班次營運(yùn)日期,預(yù)先(提前一日或數(shù)日)制定班次計(jì)劃并將票務(wù)信息推送到票務(wù)服務(wù)器。站務(wù)公司本地應(yīng)用服務(wù)器保存有本地票務(wù)服務(wù)器以及中心票務(wù)服務(wù)器的編號、及ip地址列表。在生成班次計(jì)劃時(shí),班次信息將保存到數(shù)據(jù)庫中,而票務(wù)信息則將根據(jù)班次的類型,分別推送至不同的票務(wù)服務(wù)器。具體規(guī)則是:各站務(wù)公司普通本地班次票務(wù)信息,推送至本地票務(wù)服務(wù)器;配載班次票務(wù)信息,推送至中心票務(wù)服務(wù)器。
在制定了班次計(jì)劃之后,在票務(wù)活動(dòng)進(jìn)行的過程中,可以隨時(shí)對既定的生成計(jì)劃和中心票務(wù)服務(wù)器實(shí)時(shí)數(shù)據(jù)進(jìn)行調(diào)整。聯(lián)網(wǎng)實(shí)時(shí)票務(wù)數(shù)據(jù)的變更操作包括:
對于中心票務(wù)服務(wù)器中的聯(lián)網(wǎng)實(shí)時(shí)票務(wù)數(shù)據(jù),可以進(jìn)行座數(shù)的增減操作、班次的開停操作,也可以在對配載組基礎(chǔ)信息進(jìn)行修改時(shí),將相關(guān)變更推送至實(shí)時(shí)票務(wù)服務(wù)器,即刻生效。
本地應(yīng)用服務(wù)器在本地保存的票務(wù)服務(wù)器ip地址列表中,查找到中心票務(wù)服務(wù)器的地址;并將實(shí)時(shí)票務(wù)數(shù)據(jù)的變更請求提交至中心票務(wù)服務(wù)器。
同一配載組內(nèi)班次不要求同時(shí)發(fā)布,即可以將屬于同一組的若干班次分幾次發(fā)布,這種異步的方式不會影響到票務(wù)信息的業(yè)務(wù)正確性。
實(shí)際情況下,本地應(yīng)用服務(wù)器,本地票務(wù)服務(wù)器,中心票務(wù)服務(wù)器的關(guān)系結(jié)構(gòu)如圖3所示,其中,票務(wù)服務(wù)器有主票務(wù)服務(wù)器和從票務(wù)服務(wù)器以避免單點(diǎn)故障,同時(shí)采用讀寫分離機(jī)制以有效提高票務(wù)服務(wù)器的運(yùn)行效率。
3、對已經(jīng)發(fā)布成功的配載組進(jìn)行實(shí)時(shí)票務(wù)信息的修改,不論是配載班次組還是各個(gè)站務(wù)公司的普通本地班次,在發(fā)布之后都存在需要調(diào)整的可能性,主要可以通過以下兩種方式實(shí)現(xiàn):
a、可以對某一發(fā)布成功的配載班次組進(jìn)行座位數(shù)的增減操作,途經(jīng)站點(diǎn)的過濾操作,也可以針對組內(nèi)某一特定配載班次調(diào)整其發(fā)班時(shí)刻,到達(dá)站點(diǎn)的價(jià)格,進(jìn)站口,檢票口等信息。
其中對座位數(shù)的調(diào)整應(yīng)滿足:調(diào)整后的座位數(shù)不能小于已售票數(shù)和已鎖票數(shù)的和。座位數(shù)的增減操作對應(yīng)到中心票務(wù)服務(wù)器的動(dòng)作是增加或者減少一批“日期:配載組編號:座位數(shù)”結(jié)構(gòu)的票務(wù)數(shù)據(jù),同時(shí)維護(hù)包含lock集合在內(nèi)的其它輔助數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),來保證票務(wù)信息的一致性。
b、將對配載班次檔案組的修改,實(shí)時(shí)應(yīng)用到與這個(gè)配載班次檔案組對應(yīng)的已發(fā)班的配載班次組上。
這種修改方案下,由于一個(gè)配載班次檔案組可以在若干天里存在與之對應(yīng)的配載班次組,對配載班次檔案組的修改將被應(yīng)用到該配載班次檔案組今天及以后的所有配載班次組,包括以下信息的修改:座位數(shù),途徑站點(diǎn)等,而對于票價(jià),發(fā)班時(shí)刻,進(jìn)站口,檢票口這些與具體班次有關(guān)的實(shí)時(shí)票務(wù)數(shù)據(jù)的修改,可以通過修改其對應(yīng)的配載班次檔案的信息并刷新到已發(fā)班班次上的方式來實(shí)現(xiàn)。
對于座位數(shù)的修改,所有涉及到的配載班次組都應(yīng)該滿足調(diào)整后的座位數(shù)不能小于已售票數(shù)和已鎖票數(shù)的和,如果有一個(gè)不滿足,則整個(gè)操作不能成功完成,此時(shí)需要應(yīng)用a方法對配載班次組進(jìn)行單獨(dú)的修改而不能成功批量調(diào)整。
普通本地班次以及配載班次組成功發(fā)布之后,票務(wù)客戶端可進(jìn)行相應(yīng)的票務(wù)操作,包括查詢票務(wù)信息,鎖票,購票,退票等,如圖2時(shí)序圖所示。
4、票務(wù)客戶端請求獲取班次及相關(guān)票務(wù)信息,如下所述:
票務(wù)客戶端向配置文件中所配置的本地應(yīng)用服務(wù)器發(fā)送查詢某天從某站務(wù)公司出發(fā)到達(dá)某站點(diǎn)的所有班次以及這些班次的票務(wù)信息的請求,該請求應(yīng)包含以下參數(shù):日期,終點(diǎn)站,是否查詢配載班次。
其中,是否查詢配載班的參數(shù)是配置在本地應(yīng)用服務(wù)器配置文件中的,一般情況下,參數(shù)值為true,即允許查詢配載班次,但在由于本地到中心的網(wǎng)絡(luò)出現(xiàn)問題等原因?qū)е卤镜貞?yīng)用服務(wù)器無法訪問中心票務(wù)服務(wù)器的特殊情況下,這個(gè)參數(shù)將被設(shè)置為false,即本地應(yīng)用服務(wù)器不對配載班次進(jìn)行票務(wù)操作。
本地應(yīng)用服務(wù)器根據(jù)所請求的內(nèi)容在關(guān)系數(shù)據(jù)庫中找到滿足條件的所有普通本地班次以及在允許查詢配載班次的條件下的本地配載班次集合。對于普通本地班次,本地應(yīng)用服務(wù)器將逐一向本地票務(wù)服務(wù)器發(fā)送查詢班次的票務(wù)信息,即本地票務(wù)服務(wù)器中“日期:班次號”集合和其它鎖票集合差集的結(jié)果;對于本地配載班次,本地應(yīng)用服務(wù)器將逐一查詢本地配載班次所屬配載班次組的信息,并且向中心票務(wù)服務(wù)器發(fā)送查詢配載班次組票務(wù)信息的請求,即中心票務(wù)服務(wù)器中“日期:配載組編號”集合和其它鎖票集合差集的結(jié)果。
本地應(yīng)用服務(wù)器在獲取了從本地票務(wù)服務(wù)器和中心票務(wù)服務(wù)器返回的票務(wù)數(shù)據(jù)后,結(jié)合本地關(guān)系數(shù)據(jù)庫中拿到的班次信息,將包含班次號,發(fā)班時(shí)刻,進(jìn)站口,檢票口,當(dāng)前剩余票數(shù)等信息在內(nèi)的結(jié)果返回給發(fā)出請求的票務(wù)客戶端。
票務(wù)客戶端根據(jù)上述結(jié)果來進(jìn)行下一步票務(wù)操作。
5、票務(wù)客戶端向本地應(yīng)用服務(wù)器發(fā)送鎖票請求嘗試鎖票,如下所述:
本地應(yīng)用服務(wù)器在本地保存的票務(wù)服務(wù)器ip地址列表中,查找到中心票務(wù)服務(wù)器的地址;對于配載班次,各站務(wù)公司本地服務(wù)器必須將客戶端請求中所包含的班次編號,根據(jù)其所屬的配載組配置信息,轉(zhuǎn)換為對應(yīng)的配載組編號;使用班次營運(yùn)日期加上配載組編號所形成的唯一標(biāo)識符,將票務(wù)查詢請求轉(zhuǎn)發(fā)至中心票務(wù)服務(wù)器。
票務(wù)客戶端在上述查詢請求返回了結(jié)果的前提下,選擇列表中某一班次向本地應(yīng)用服務(wù)器發(fā)送鎖票請求,嘗試鎖票操作,該請求應(yīng)包含以下參數(shù):具體班次,座位數(shù)。
本地應(yīng)用服務(wù)器判斷所請求的班次是普通本地班次還是配載班次,如果是普通本地班次,本地應(yīng)用服務(wù)器將向本地票務(wù)服務(wù)器發(fā)送在某一具體班次上鎖定指定座位數(shù)票的請求,該請求包含以下參數(shù):日期,班次號,座位數(shù)。
本地票務(wù)服務(wù)器將嘗試鎖票,鎖票操作主要包括將座位號加入“日期:班次號:lock”集合,需要說明的是,即使在上述查詢過程中查詢得出的可售余票數(shù)大于此次請求的座位數(shù),仍不能保證此次鎖票成功;或者在上述查詢過程中查詢得出的可售余票數(shù)小于此次請求的座位數(shù),仍不能確認(rèn)此次鎖票必然失敗,因?yàn)槠眲?wù)數(shù)據(jù)實(shí)時(shí)性強(qiáng),其它票務(wù)客戶端在本次查詢操作與鎖票操作間隔時(shí)間內(nèi)可能操作同一班次并已經(jīng)鎖票購票成功或者退票成功,因此當(dāng)前實(shí)時(shí)票務(wù)數(shù)據(jù)和原先查詢出來的結(jié)果可能存在不一致之處。本地票務(wù)服務(wù)器將鎖票操作結(jié)果(成功/失?。┓祷亟o本地應(yīng)用服務(wù)器,本地應(yīng)用服務(wù)器將結(jié)果返回給發(fā)出請求的票務(wù)客戶端。
如果所請求的班次是配載班次,本地應(yīng)用服務(wù)器將首先查詢本地關(guān)系數(shù)據(jù)庫,找到該班次所屬的配載班次組的數(shù)據(jù),將對配載班次的鎖票請求轉(zhuǎn)換成對配載班次組的鎖票請求。本地應(yīng)用服務(wù)器向中心票務(wù)服務(wù)器發(fā)送在某一具體配載班次組上鎖定指定座位數(shù)票的請求,該請求包含以下參數(shù):日期,配載班次組編號,座位數(shù)。
中心票務(wù)服務(wù)器將嘗試鎖票,并且將操作結(jié)果返回給發(fā)出請求的本地應(yīng)用服務(wù)器,本地應(yīng)用服務(wù)器將結(jié)果返回給發(fā)出請求的票務(wù)客戶端。
票務(wù)客戶端根據(jù)鎖票結(jié)果決定后續(xù)操作,例如,若鎖票成功,票務(wù)客戶端可以進(jìn)一步進(jìn)行購票操作;若鎖票失敗,票務(wù)客戶端可以重新選擇其它班次進(jìn)行鎖票購票操作。已經(jīng)被成功鎖定的票,根據(jù)相關(guān)參數(shù)的配置,可以被鎖定一段時(shí)間。
例如,設(shè)定鎖票時(shí)間為8分鐘,當(dāng)票被鎖定之后開始自動(dòng)倒計(jì)時(shí),如果在八分鐘內(nèi),購票操作因?yàn)槟承┰驔]有完成,對票的鎖定將自動(dòng)失效,票又可以被重新鎖定。
6、票務(wù)客戶端向本地應(yīng)用服務(wù)器發(fā)送購票請求嘗試購票,如下所述:
本地應(yīng)用服務(wù)器在本地保存的票務(wù)服務(wù)器ip地址列表中,查找到中心票務(wù)服務(wù)器的地址;對于配載班次,各站務(wù)公司本地服務(wù)器必須將客戶端請求中所包含的班次編號,根據(jù)其所屬的配載組配置信息,轉(zhuǎn)換為對應(yīng)的配載組編號;本地應(yīng)用服務(wù)器向中心票務(wù)服務(wù)器發(fā)送對所查詢班次所屬的班次組進(jìn)行鎖票操作的請求;中心票務(wù)服務(wù)器根據(jù)請求內(nèi)容嘗試鎖票,并且將鎖票操作結(jié)果返回給發(fā)出請求的本地應(yīng)用服務(wù)器;本地應(yīng)用服務(wù)器將鎖票結(jié)果返回給發(fā)出請求的票務(wù)客戶端;
若鎖票成功,則票務(wù)客戶端可進(jìn)行售票操作,若鎖票失敗,則票務(wù)客戶端給出鎖票失敗提示。
客戶端售票請求的處理包括:
本地應(yīng)用服務(wù)器根據(jù)請求的本地班次獲取其班次組編號,根據(jù)時(shí)間、座位數(shù)等信息向中心票務(wù)服務(wù)器發(fā)送購票請求。在此過程中,本地應(yīng)用服務(wù)器需要在本地保存的票務(wù)服務(wù)器ip地址列表中,查找到中心票務(wù)服務(wù)器的地址;對于配載班次,各站務(wù)公司本地應(yīng)用服務(wù)器必須將客戶端請求中所包含的班次編號,根據(jù)其所屬的配載組配置信息,轉(zhuǎn)換為對應(yīng)的配載組編號;
中心票務(wù)服務(wù)器根據(jù)條件嘗試將對應(yīng)票移出票務(wù)服務(wù)器(票池),并將結(jié)果返回給發(fā)出請求的本地應(yīng)用服務(wù)器;班次營運(yùn)日期+配載組編號+車票座位號,可以在中心票務(wù)服務(wù)器中,唯一地標(biāo)識一張配載班次的待售車票。
票務(wù)客戶端在上述鎖票操作成功的前提下,可以放棄購買,手動(dòng)解鎖車票或者等待鎖定時(shí)間到期后車票自動(dòng)解鎖,也可進(jìn)一步執(zhí)行購票操作,嘗試購票,該請求應(yīng)包含以下參數(shù):具體班次,座位號集合。
本地應(yīng)用服務(wù)器判斷所請求的班次是普通本地班次還是配載班次,如果是普通本地班次,本地應(yīng)用服務(wù)器將向本地票務(wù)服務(wù)器發(fā)送在某一具體班次上購買某些座位號的車票請求,該請求包含以下參數(shù):日期,班次號,座位號集合。
本地票務(wù)服務(wù)器將嘗試購票,購票操作主要包括將座位號集合內(nèi)所有票加入“日期:班次號:saled”集合,刪除“日期:班次號:座位號”車票數(shù)據(jù)等。一般來說,鎖票成功后,購票操作基本能成功,本地票務(wù)服務(wù)器將購票操作結(jié)果(成功/失?。┓祷亟o本地應(yīng)用服務(wù)器,本地應(yīng)用服務(wù)器將結(jié)果返回給發(fā)出請求的票務(wù)客戶端。
如果所請求的班次是配載班次,本地應(yīng)用服務(wù)器將首先查詢本地關(guān)系數(shù)據(jù)庫,找到該班次所屬的配載班次組的數(shù)據(jù),將對配載班次的購票請求轉(zhuǎn)換成對配載班次組的購票請求。本地應(yīng)用服務(wù)器向中心票務(wù)服務(wù)器發(fā)送在某一具體配載班次組上購買指定座位號集合的車票請求,該請求包含以下參數(shù):日期,配載班次組編號,座位號集合。
中心票務(wù)服務(wù)器將嘗試購票,并且將操作結(jié)果返回給發(fā)出請求的本地應(yīng)用服務(wù)器,本地應(yīng)用服務(wù)器將結(jié)果返回給發(fā)出請求的票務(wù)客戶端。
票務(wù)客戶端獲取結(jié)果后可進(jìn)行其它票務(wù)操作。
7、票務(wù)客戶端向本地應(yīng)用服務(wù)器發(fā)送退票請求嘗試退票,如下所述:
對于已經(jīng)成功購票但是乘客因?yàn)槟承┰虿荒艹俗枰似钡那闆r,票務(wù)客戶端將根據(jù)需求向本地應(yīng)用服務(wù)器發(fā)送退票請求及嘗試退票操作。
本地應(yīng)用服務(wù)器根據(jù)掃描到的車票票號信息查詢本地關(guān)系數(shù)據(jù)庫中該車票所屬的班次信息,確認(rèn)信息屬實(shí)后可以選擇退票操作,具體的手續(xù)費(fèi)和退款將由售票員根據(jù)實(shí)際情況確定。
本地應(yīng)用服務(wù)器查詢出該車票所屬的班次,座位數(shù)等信息,判斷該退票所屬班次是普通本地班次還是配載班次,如果是普通本地班次,本地應(yīng)用服務(wù)器將向本地票務(wù)服務(wù)器發(fā)送退某一具體班次上已購買的某座位號的車票請求,該請求包含以下參數(shù):日期,班次號,座位號。
本地票務(wù)服務(wù)器將嘗試退票,退票操作主要包括將座位號從“日期:班次號:saled”集合移除,加入“日期:班次號:座位號”數(shù)據(jù),如果此前該班次上票已經(jīng)售完,則可能還需要在本地票務(wù)服務(wù)器中嘗試恢復(fù)“日期:班次號”集合。本地票務(wù)服務(wù)器將退票操作結(jié)果(成功/失?。┓祷亟o本地應(yīng)用服務(wù)器,本地應(yīng)用服務(wù)器將結(jié)果返回給發(fā)出請求的票務(wù)客戶端。
如果該退票所屬班次是配載班次,本地應(yīng)用服務(wù)器將首先查詢本地關(guān)系數(shù)據(jù)庫,找到該班次所屬的配載班次組信息,將對配載班次的退票請求轉(zhuǎn)換成對配載班次組的退票請求。本地應(yīng)用服務(wù)器將向中心票務(wù)服務(wù)器發(fā)送退某一具體配載班次組上已購買的某座位號的車票請求,該請求包含以下參數(shù):日期,配載班次組編號,座位號。
中心票務(wù)服務(wù)器將嘗試退票,并且將操作結(jié)果返回給發(fā)出請求的本地應(yīng)用服務(wù)器,本地應(yīng)用服務(wù)器將結(jié)果返回給發(fā)出請求的票務(wù)客戶端。
票務(wù)客戶端獲取結(jié)果,如果成功則退票成功,該票仍可再次被購買。如果失敗,則給出相應(yīng)提示信息。
應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。