TWI851985B - Blockchain-based hotel room inventory management system, method, and non-transitory computer readable media thereof - Google Patents
Blockchain-based hotel room inventory management system, method, and non-transitory computer readable media thereof Download PDFInfo
- Publication number
- TWI851985B TWI851985B TW111112806A TW111112806A TWI851985B TW I851985 B TWI851985 B TW I851985B TW 111112806 A TW111112806 A TW 111112806A TW 111112806 A TW111112806 A TW 111112806A TW I851985 B TWI851985 B TW I851985B
- Authority
- TW
- Taiwan
- Prior art keywords
- room
- blockchain
- smart contract
- block
- hotel room
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 50
- 238000007726 management method Methods 0.000 claims description 168
- 238000007667 floating Methods 0.000 claims description 73
- 238000004891 communication Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 17
- 238000012550 audit Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 6
- 230000015654 memory Effects 0.000 description 50
- 101100462365 Aspergillus niger (strain CBS 513.88 / FGSC A1513) otaA gene Proteins 0.000 description 23
- 101100462367 Aspergillus niger (strain CBS 513.88 / FGSC A1513) otaB gene Proteins 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000001052 transient effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 235000013361 beverage Nutrition 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
本發明相關於一種房間庫存管理系統,尤指一種基於區塊鏈技術的房間庫存管理系統。 The present invention relates to a room inventory management system, and in particular to a room inventory management system based on blockchain technology.
對飯店或旅遊代理們來說,房間預訂是一個重要的服務。在一般的房間預訂服務中,預訂引擎(Booking Engine)或線上旅遊代理(Online Travel Agency)會代表飯店方,並提供顧客一個遠端使用者介面,以使顧客可事先在計畫的時間,預訂飯店中的可用房間。 Room reservation is an important service for hotels or travel agencies. In general room reservation services, the booking engine or online travel agency will represent the hotel and provide customers with a remote user interface so that customers can book available rooms in the hotel in advance at the planned time.
線上旅遊代理是指專門販賣旅遊商品給顧客的旅遊網站,且該些旅遊商品包含房間預訂服務。該線上旅遊代理與房間提供方(例如飯店)簽訂有線上代理合約,以代銷其房間預訂服務。在這樣的情況下,線上旅遊代理會接收到預定至少一間可用房間之顧客的付款,並將預訂房間的淨款項轉付給飯店方。 An online travel agent is a travel website that specializes in selling travel products to customers, and these travel products include room reservation services. The online travel agent signs an online agency contract with a room provider (such as a hotel) to sell its room reservation services on behalf of the room provider. In this case, the online travel agent will receive payment from customers who have reserved at least one available room and transfer the net amount of the reserved room to the hotel.
用於飯店房間預訂服務之預訂引擎是指使顧客可預訂可用房間之網站。該預訂引擎亦將客製化的價格及/或付款規則介紹給顧客,以使其在預訂房間服務時可較容易地作出決定。 A booking engine for hotel room reservation services refers to a website that enables customers to book available rooms. The booking engine also introduces customized prices and/or payment rules to customers to make it easier for them to make decisions when booking room services.
然而,若在短時間內出現多於一位顧客登入該遠端使用者介面‧並預定一飯店中的同一可用房間時,可能會較容易發生房間超售事件(Overbooking)。房間超售事件會對顧客方及飯店方同時造成明顯的損害。舉例來說,為了因應房間超售事件,飯店方必須安排額外的房間、服務、及/或補償措施。同樣地,房間超售事件也會迫使顧客在有限的時間內改變其旅遊計畫,並破壞其旅遊體驗。這些不便之處在旅遊旺季時會越發頻繁且嚴重。然而,飯店方會受限於現行的線上旅遊代理及/或預訂引擎在處理房間超售事件時所面對的科技上限制。因此,飯店方需要透過科技上的解方來有效率地減緩房間超售事件。 However, if more than one customer logs into the remote user interface in a short period of time and reserves the same available room in a hotel, overbooking may occur more easily. Overbooking may cause significant damage to both the customer and the hotel. For example, in order to cope with overbooking, the hotel must arrange additional rooms, services, and/or compensation measures. Similarly, overbooking may force customers to change their travel plans within a limited time and ruin their travel experience. These inconveniences become more frequent and severe during peak travel seasons. However, the hotel is limited by the technological limitations faced by existing online travel agencies and/or booking engines in handling overbooking. Therefore, hotels need to use technological solutions to effectively mitigate room overbooking incidents.
本發明揭露一種用於基於區塊鏈的旅館房間庫存管理系統的方法,包含:在旅館房間庫存管理系統中的多個節點的各節點中,維護區塊鏈,該區塊鏈儲存對於特定旅館房間物件的所有成功交易,其中,該區塊鏈包括以按照時間順序(Chronological)單獨地鏈結的數個區塊,各區塊加密地參照其直接往前的區塊,使得在未改變所有隨後區塊之下,無法改變任何區塊內的資料,各區塊儲存關於該特定旅館房間物件的成功交易;在從計算機網路通信耦接至該旅館房間庫存管理系統接收房間預訂事件時,由該多個節點中的主節點,通過提交代表該房間預訂事件的新交易至儲存在該區塊鏈中的智能合約,以確定房間預訂事件是否可以成功,其中,該智能合約包括程式化標準,其經配置為基於該特定旅館房間物件的目前數量餘額,以確定所提交交易在當下儲存在該區塊鏈中的關於該特定旅館房間物件的所有既存成功交易中是否代表衝突;在基於該智能合約確定表示該房間預訂事件的該新交易可成功時,由該主節點創建將要附加到該區塊鏈的新區塊,其中新區塊儲 存代表該新交易的資料為成功的,其中,該新區塊的創建使得該新區塊添加到該旅館房間庫存管理系統中該多個節點的每個節點中的該區塊鏈;以及當該房間預訂事件導致該目前數量餘額滿足預定浮動閾值時,該智能合約根據預定浮動參數自動調整該特定旅館房間物件的市場價格。 The present invention discloses a method for a hotel room inventory management system based on a blockchain, comprising: maintaining a blockchain in each of a plurality of nodes in the hotel room inventory management system, the blockchain storing all successful transactions for a particular hotel room object, wherein the blockchain comprises a plurality of blocks individually linked in a chronological order, each block cryptographically references its direct predecessor. The block before the previous block is changed so that the data in any block cannot be changed without changing all subsequent blocks. Each block stores a successful transaction related to the specific hotel room object; when a room reservation event is received from the computer network communication coupling to the hotel room inventory management system, the master node among the multiple nodes submits a new transaction representing the room reservation event to the smart contract stored in the blockchain to confirm the room reservation. The smart contract includes a programmed standard that is configured to determine whether the submitted transaction represents a conflict among all existing successful transactions for the specific hotel room object currently stored in the blockchain based on the current quantity balance of the specific hotel room object; when the new transaction representing the room reservation event is determined to be successful based on the smart contract, the master node creates a new transaction to be attached to the room reservation event. A new block of the blockchain, wherein the new block stores data representing the new transaction as successful, wherein the creation of the new block causes the new block to be added to the blockchain in each of the multiple nodes in the hotel room inventory management system; and when the room reservation event causes the current quantity balance to meet a predetermined floating threshold, the smart contract automatically adjusts the market price of the specific hotel room object according to the predetermined floating parameter.
本發明之另一實施例亦揭露一種旅館房間庫存管理系統,包括:多個節點,其中,該多個節點中的各節點經配置為維護區塊鏈,該區塊鏈儲存對於特定旅館房間物件的所有成功交易,以及其中,該區塊鏈包括以按照時間順序(Chronological)單獨地鏈結的數個區塊,各區塊加密地參照其直接往前的區塊,使得在未改變所有隨後區塊之下,無法改變任何區塊內的資料,各區塊儲存關於該特定旅館房間物件的成功交易;儲存在該區塊鏈中的智能合約,其中,該智能合約包括程式化標準,其經配置為基於該特定旅館房間物件的目前數量餘額,以確定所提交交易在當下儲存在該區塊鏈中的關於該特定旅館房間物件的所有既存成功交易中是否代表衝突;以及主節點經配置為:從計算機網路通信耦接至該旅館房間庫存管理系統接收房間預訂事件;通過提交代表該房間預訂事件的新交易至儲存在該區塊鏈中的智能合約,以確定房間預訂事件是否可以成功;在基於該智能合約確定表示該房間預訂事件的該新交易可成功時,創建將要附加到該區塊鏈的新區塊,其中新區塊儲存代表該新交易的資料為成功的,以及其中,該新區塊的創建使得該新區塊添加到該旅館房間庫存管理系統中該多個節點的每個節點中的該區塊鏈;以及其中,當該房間預訂事件導致該目前數量餘額滿足預定浮動閾值時,該智能合約根據預定浮動參數自動調整該特定旅館房間物件的市場價格,該預定浮動閾值包括該目前數量餘額或預定時間段。 Another embodiment of the present invention also discloses a hotel room inventory management system, comprising: a plurality of nodes, wherein each of the plurality of nodes is configured to maintain a blockchain, the blockchain storing all successful transactions for a particular hotel room object, and wherein the blockchain comprises a plurality of blocks individually linked in chronological order, each block cryptographically references its immediately preceding block so that the block is not altered. a smart contract stored in the blockchain, wherein the smart contract includes programmed criteria configured to determine whether a submitted transaction represents a conflict among all existing successful transactions for the particular hotel room object currently stored in the blockchain based on a current quantity balance of the particular hotel room object; The master node is configured to: receive a room reservation event from a computer network communication coupled to the hotel room inventory management system; submit a new transaction representing the room reservation event to a smart contract stored in the blockchain to determine whether the room reservation event can be successful; when the new transaction representing the room reservation event is determined to be successful based on the smart contract, create a new block to be attached to the blockchain, wherein the new block stores the new transaction representing the new transaction. The transaction data is successful, and wherein the creation of the new block causes the new block to be added to the blockchain in each of the multiple nodes in the hotel room inventory management system; and wherein, when the room reservation event causes the current quantity balance to meet the predetermined floating threshold, the smart contract automatically adjusts the market price of the specific hotel room item according to the predetermined floating parameter, and the predetermined floating threshold includes the current quantity balance or the predetermined time period.
本發明之再一實施例亦揭露一種用於旅館房間庫存管理系統的、非暫時性計算機可讀取媒體,其包括多個指令,當由計算機化旅館房間 庫存管理系統的一或多個處理器執行時使系統:在旅館房間庫存管理系統中的多個節點的各節點中,維護區塊鏈,該區塊鏈儲存對於特定旅館房間物件的所有成功交易,其中,該區塊鏈包括以按照時間順序(Chronological)單獨地鏈結的數個區塊,各區塊加密地參照其直接往前的區塊,使得在未改變所有隨後區塊之下,無法改變任何區塊內的資料,各區塊儲存關於該特定旅館房間物件的成功交易;在從計算機網路通信耦接至該旅館房間庫存管理系統接收房間預訂事件時,由該多個節點中的主節點,通過提交代表該房間預訂事件的新交易至儲存在該區塊鏈中的智能合約,以確定房間預訂事件是否可以成功,其中,該智能合約包括程式化標準,其經配置為基於該特定旅館房間物件的目前數量餘額,以確定所提交交易在當下儲存在該區塊鏈中的關於該特定旅館房間物件的所有既存成功交易中是否代表衝突;以及在基於該智能合約確定表示該房間預訂事件的該新交易可成功時,由該主節點創建將要附加到該區塊鏈的新區塊,其中新區塊儲存代表該新交易的資料為成功,其中,該新區塊的創建使得該新區塊添加到該旅館房間庫存管理系統中該多個節點的每個節點中的該區塊鏈;以及其中,當該房間預訂事件導致該目前數量餘額滿足預定浮動閾值時,該智能合約根據預定浮動參數自動調整該特定旅館房間物件的市場價格,該預定浮動閾值包括該目前數量餘額或預定時間段。 Yet another embodiment of the present invention also discloses a non-transitory computer-readable medium for a hotel room inventory management system, comprising a plurality of instructions, which when executed by one or more processors of a computerized hotel room inventory management system, causes the system to: maintain a blockchain in each of a plurality of nodes in the hotel room inventory management system, the blockchain storing all successful transactions for a particular hotel room item, wherein the blockchain comprises a chronological order of the transactions. A plurality of blocks individually linked in a blockchain, each block cryptographically references its immediately preceding block so that the data in any block cannot be changed without changing all subsequent blocks, each block storing a successful transaction for the particular hotel room item; upon receiving a room reservation event from a computer network communicatively coupled to the hotel room inventory management system, a master node among the plurality of nodes, by submitting a new transaction representing the room reservation event to an intelligent node stored in the blockchain, The smart contract is configured to determine whether the room reservation event can be successful, wherein the smart contract includes a programmed standard that is configured to determine whether the submitted transaction represents a conflict among all existing successful transactions for the specific hotel room object currently stored in the blockchain based on the current quantity balance of the specific hotel room object; and when it is determined based on the smart contract that the new transaction representing the room reservation event can be successful, a new block to be attached to the blockchain is created by the master node. Block, wherein the new block stores data representing the new transaction as successful, wherein the creation of the new block causes the new block to be added to the blockchain in each of the multiple nodes in the hotel room inventory management system; and wherein, when the room reservation event causes the current quantity balance to meet a predetermined floating threshold, the smart contract automatically adjusts the market price of the specific hotel room item according to a predetermined floating parameter, and the predetermined floating threshold includes the current quantity balance or a predetermined time period.
100、200:房間庫存管理系統 100, 200: Room inventory management system
120、210:物業管理系統模組 120, 210: Property management system module
130:記憶體 130: Memory
140、218、268、RI1、RI2、…、RIX、RIT:房間庫存紀錄 140, 218, 268, RI1, RI2, …, RIX, RIT: room inventory records
150:頻道管理器 150:Channel Manager
212:主收發器 212: Main transceiver
214:主處理器 214: Main processor
216:主記憶體 216: Main memory
250:中間伺服系統 250:Intermediate servo system
260:交易代理伺服器 260: Trading agent server
262:中間收發器 262:Intermediate transceiver
264:中間處理器 264:Intermediate processor
266:中間記憶體 266: Intermediate memory
402、NPT_H:雜湊模組 402, NPT_H: hash module
404、NPT_TS:時間戳記模組 404, NPT_TS: Timestamp module
406、NPT_B:區塊產生模組 406, NPT_B: Block generation module
OTA1、OTA2、OTAM:線上旅遊代理模組 OTA1, OTA2, OTAM: Online travel agency module
BE1、BE2、BEN:預訂引擎 BE1, BE2, BEN: Booking engine
NS1、NS2、NST、NSX:節點伺服器 NS1, NS2, NST, NSX: Node Server
NT1、NT2、NTX、NTT:節點收發器 NT1, NT2, NTX, NTT: Node transceiver
NP1、NP2、NPX、NPT:節點處理器 NP1, NP2, NPX, NPT: Node Processor
NM1、NM2、NMX、NMT:節點記憶體 NM1, NM2, NMX, NMT: Node memory
BL1、BL2、BLY、BLXY:區塊 BL1, BL2, BLY, BLXY: Blocks
S1、S2、S2.1、S3、S4:步驟 S1, S2, S2.1, S3, S4: Steps
S5、S6、S7、S8、S8.1、S8.2:步驟 S5, S6, S7, S8, S8.1, S8.2: Steps
第1圖圖示一般房間庫存管理系統如何與各線上旅遊代理模組及/或預訂引擎合作來處理顧客預訂房間的服務。 Figure 1 shows how a general room inventory management system works with various online travel agency modules and/or booking engines to handle customer room booking services.
第2圖根據本發明之一實施例,圖示一種基於區塊鏈的房間庫存管理系統。 FIG. 2 illustrates a room inventory management system based on blockchain according to one embodiment of the present invention.
第3圖圖示第2圖之房間庫存管理系統中一主記憶體、一中間記憶體、及多個節點記憶體之間的資料交流之概略示意圖。 Figure 3 is a schematic diagram showing the data exchange between a main memory, an intermediate memory, and multiple node memories in the room inventory management system of Figure 2.
第4圖圖示第2圖之房間庫存管理系統中一中間處理器產生一新進區塊的示意圖。 Figure 4 is a schematic diagram showing a new incoming block generated by an intermediate processor in the room inventory management system of Figure 2.
第5圖根據本發明之一實施例,圖示一種將主控節點伺服器之責任轉移於各個節點伺服器之間且基於區塊鏈的房間庫存管理系統。 FIG. 5 illustrates a room inventory management system based on blockchain that transfers the responsibility of the master node server to each node server according to an embodiment of the present invention.
第6圖圖示第5圖之房間庫存管理系統中一主記憶體、一暫態主控節點記憶體、及其餘多個節點記憶體之間的資料交流之概略示意圖。 Figure 6 is a schematic diagram showing the data exchange between a main memory, a temporary master node memory, and other node memories in the room inventory management system of Figure 5.
第7圖圖示第5圖之房間庫存管理系統中一暫態主控處理器產生一新進區塊的示意圖。 Figure 7 shows a schematic diagram of a temporary master processor generating a new incoming block in the room inventory management system of Figure 5.
第8圖圖示本發明用於管理基於區塊鏈的旅館房間庫存管理系統的流程圖。 Figure 8 illustrates a flow chart of the present invention for managing a blockchain-based hotel room inventory management system.
第9圖圖示本發明動態定價的流程圖。 Figure 9 shows a flow chart of the dynamic pricing of the present invention.
第1圖圖示一般房間庫存管理系統100如何通過一個中間頻道管理器150,與各線上旅遊代理模組及/或預訂引擎合作來處理顧客預訂房間的服務,其中中間頻道管理器150連接於房間庫存管理系統100與該些線上旅遊代理模組及/或預訂引擎之間,並由飯店方來控制。舉例來說,房間庫存管理系統100與M個線上旅遊代理模組OTA1、OTA2、...、OTAM及/或N個預訂引擎BE1、BE2、...、BEN共同作業,其中M與N皆為正整數。請注意,在上述例子中,與房間庫存管理系統100共同運作之至少一個線上旅遊代理模組及/或至少一個預訂引擎可由至少一個全球分銷系統(Global Distribution System,GDS)及/或至少一個元搜尋引擎(Metasearch Engine)所替換。然而,飯店方使用上述全球分銷系統及/或元搜尋引擎的成本遠高於租用線上旅遊代理模組及/或預訂引擎的成本,且使 用全球分銷系統及/或元搜尋引擎的成本可包含至少建置及維護一客製化應用程式介面(Application Programming Interface,API)及由大量顧客所索取的服務費。因此,一般的飯店方傾向尋求線上旅遊代理模組或預訂引擎的服務,而非全球分銷系統或元搜尋引擎。以下敘述將集中於使用線上旅遊代理模組及/或預訂引擎的情況,然而仍適用於使用全球分析系統及元搜尋引擎的狀況。 FIG. 1 illustrates how a general room inventory management system 100 cooperates with each online travel agent module and/or booking engine to process a customer's room booking service through an intermediate channel manager 150, wherein the intermediate channel manager 150 is connected between the room inventory management system 100 and the online travel agent modules and/or booking engines and is controlled by the hotel. For example, the room inventory management system 100 cooperates with M online travel agent modules OTA1, OTA2, ..., OTAM and/or N booking engines BE1, BE2, ..., BEN, wherein both M and N are positive integers. Please note that in the above example, at least one online travel agent module and/or at least one booking engine that operates with the room inventory management system 100 can be replaced by at least one global distribution system (GDS) and/or at least one metasearch engine. However, the cost of using the above-mentioned global distribution system and/or metasearch engine for the hotel is much higher than the cost of renting the online travel agent module and/or booking engine, and the cost of using the global distribution system and/or metasearch engine may include at least building and maintaining a customized application programming interface (API) and service fees charged by a large number of customers. Therefore, general hotels tend to seek services from online travel agent modules or booking engines rather than global distribution systems or metasearch engines. The following description will focus on the use of online travel agent modules and/or booking engines, but is also applicable to the use of global analytics systems and metasearch engines.
房間庫存管理系統100設置於飯店方管理的領域中。線上旅遊代理模組OTA1、OTA2、...、OTAM及/或預訂引擎BE1、BE2、...、BEN一般來說設置於遠離旅館方的位置且並不屬於旅館方的控制。頻道管理器150對每一線上旅遊代理模組OTA1、OTA2、...、OTAM及每一預訂引擎BE1、BE2、...、BEN個別維護了一個通訊頻道,以轉譯及轉傳其請求至房間庫存管理系統100,也就是飯店方。然而,在一般的情況下,每一線上旅遊代理模組OTA1、OTA2、...、OTAM及/或每一預訂引擎BE1、BE2、...、BEN會使用不同的應用程式介面及不同的通訊協定來轉達不同型態的變數及參數。因此,飯店方或中間頻道管理器150總是會需要耗費大量成本在設計客製化應用程式介面於中間頻道管理器150個別維護的多個通訊頻道,以期符合每一線上旅遊代理模組OTA1、OTA2、...、OTAM及/或每一預訂引擎BE1、BE2、...、BEN在應用程式介面及通訊協定上的不同需求。 The room inventory management system 100 is set in the domain managed by the hotel. The online travel agent modules OTA1, OTA2, ..., OTAM and/or the booking engines BE1, BE2, ..., BEN are generally set in a location far away from the hotel and are not under the control of the hotel. The channel manager 150 maintains a communication channel for each online travel agent module OTA1, OTA2, ..., OTAM and each booking engine BE1, BE2, ..., BEN to translate and forward its request to the room inventory management system 100, that is, the hotel. However, in general, each online travel agent module OTA1, OTA2, ..., OTAM and/or each booking engine BE1, BE2, ..., BEN will use different application programming interfaces and different communication protocols to convey different types of variables and parameters. Therefore, the hotel or the intermediate channel manager 150 always needs to spend a lot of money to design a customized application program interface for multiple communication channels maintained by the intermediate channel manager 150, in order to meet the different requirements of each online travel agency module OTA1, OTA2, ..., OTAM and/or each booking engine BE1, BE2, ..., BEN in terms of application program interface and communication protocol.
房間庫存管理系統100包含一傳統的物業管理系統(Property Management System,PMS)模組120及一記憶體130。 The room inventory management system 100 includes a traditional property management system (PMS) module 120 and a memory 130.
用於飯店預訂房間服務的傳統物業管理系統模組包含一電腦化系統來促進飯店方的房間預訂服務。該傳統物業管理系統模組是一個全方位的軟體應用,其用來涵蓋如飯店方的前端管理、銷售業務、企劃、報告等功能之目標。該傳統物業管理系統模組使得飯店方的運作得以自動化,包含顧客房間預訂服務、顧客資訊細節、線上預訂服務、收費通知、銷售熱點、電話、應收帳款、 銷售與營銷、事件、食物飲品花費、物資管理、人力資源與薪資管理、維護管理、品質管理及其他設施。飯店的物業管理系統模組可以被整合於或製作成介面於第三方解決方案,例如中央預訂系統及收益率管理系統、線上預訂引擎、後端系統、銷售熱點、門禁系統、房間服務優化、能源管理、支付卡授權及頻道管理系統。藉由雲端計算科技的幫助,飯店的物業管理系統模組可以擴展其功能至直接對顧客的服務,例如線上入住服務、房間服務、房間內控制、住客與櫃檯間的通訊、及虛擬門房(concierge)等。該些擴充功能主要是被顧客使用於其持有的手機或是由飯店方於其大廳及/或房間內提供。傳統的物業管理系統模組總是需要針對飯店方的營運基礎績效指標,提供正確且即時的資訊,例如每日平均費率或是住房率等。傳統物業管理系統模組亦在食物與飲品管理上控制儲藏空間中的存貨、並決定購買哪些存貨、及決定購買的量與頻率等。如此一來,傳統物業管理系統模組120使得顧客可以在飯店本地端透過物業管理系統模組120或遠端地透過上述的線上旅遊代理模組及/或預訂引擎,來完成其對於飯店所做的房間預訂。 The traditional property management system module for hotel room reservation service includes a computerized system to facilitate the hotel's room reservation service. The traditional property management system module is a comprehensive software application that is used to cover the hotel's front-end management, sales operations, planning, reporting and other functional objectives. The traditional property management system module automates the hotel's operations, including guest room reservation services, customer information details, online reservation services, fee notices, sales hotspots, telephones, accounts receivable, sales and marketing, events, food and beverage expenses, material management, human resources and salary management, maintenance management, quality management and other facilities. The hotel's property management system module can be integrated or made to interface with third-party solutions, such as central reservation systems and yield management systems, online booking engines, back-end systems, sales hotspots, access control systems, room service optimization, energy management, payment card authorization and channel management systems. With the help of cloud computing technology, the hotel's property management system module can expand its functions to direct services to customers, such as online check-in services, room services, in-room control, communication between guests and front desk, and virtual concierge. These extended functions are mainly used by customers on their mobile phones or provided by the hotel in its lobby and/or room. Traditional property management system modules always need to provide accurate and timely information on the hotel's basic operating performance indicators, such as average daily rates or occupancy rates. Traditional property management system modules also control the inventory in storage space in food and beverage management, and decide which inventory to purchase, and decide the quantity and frequency of purchases. In this way, the traditional property management system module 120 allows customers to complete their room reservations for the hotel locally through the property management system module 120 or remotely through the above-mentioned online travel agent module and/or booking engine.
記憶體130儲存一房間庫存紀錄140,其儲存房間庫存管理系統100(亦即飯店方)所管理之所有房間的可用度。根據所管理之所有房間的可用度,房間庫存管理系統100可將被管理的房間分類為可用房間、已預訂房間、及已住客房間。當顧客預定了可用房間,該可用房間即變成已預訂房間。當顧客入住已預訂房間,該已預訂房間即變成已住客房間。當顧客由飯店辦理退房時,該已住客房間變為可用房間。 The memory 130 stores a room inventory record 140, which stores the availability of all rooms managed by the room inventory management system 100 (i.e., the hotel). According to the availability of all managed rooms, the room inventory management system 100 can classify the managed rooms into available rooms, reserved rooms, and occupied rooms. When a customer reserves an available room, the available room becomes a reserved room. When a customer checks into a reserved room, the reserved room becomes an occupied room. When a customer checks out from the hotel, the occupied room becomes an available room.
同樣地,每一線上旅遊代理模組OTA1、OTA2、...、OTAM各自具有一個房間庫存紀錄。且每一預訂引擎BE1、BE2、...、BEN各自具有一個房間庫存紀錄。 Similarly, each online travel agency module OTA1, OTA2, ..., OTAM has a room inventory record. And each booking engine BE1, BE2, ..., BEN has a room inventory record.
然而,線上旅遊代理模組OTA1、OTA2、...、OTAM及預訂引擎BE1、 BE2、...、BEN並沒有動機去將各自的房間庫存紀錄內容與房間庫存紀錄140的內容動態地進行同步。這是因為動態地與房間庫存紀錄140的內容進行同步會明顯地增加其等待傳統物業管理系統模組120之回應的負擔。再者,因為頻道管理器150僅負責轉譯及轉達要求,頻道管理器150無法對傳統物業管理系統模組120減除上述負擔。更嚴重的是,如果越來越多的線上旅遊代理系統模組及預訂引擎持續詢問房間庫存紀錄140的內容,傳統物業管理系統模組120遲早會無法負荷這樣的詢問量、並引發其系統當機。為了避免這樣的系統當機情形,傳統物業管理系統模組120僅能給予較長的等待時間,來允許線上旅遊代理系統模組及預訂引擎提出較小程度的詢問量,其中該等待時間的長度可由至少數分鐘到數個小時,並根據飯店方請求服務的線上旅遊代理系統模組及/或預訂引擎數量來決定。舉例來說,在飯店方請求服務的線上旅遊代理系統模組及/或預訂引擎數量較少的情況下,線上旅遊代理或預訂引擎可被限制每半小時或每二小時才能夠詢問房間庫存紀錄140一次。在旅遊旺季中,在飯店方請求服務的線上旅遊代理系統模組及/或預訂引擎數量更多時,上述的等待時間會設定得更長。如此一來,會無可避免地迫使線上旅遊代理系統模組及/或預訂引擎數量具有之房間庫存紀錄的內容與房間庫存紀錄140之內容間出現不一致的現象,這是因為線上旅遊代理系統模組及/或預訂引擎在處理顧客發出的房間預訂請求時,其房間庫存紀錄的內容可能並不正確。即使在某些極端情況下,為了減輕雙方的無謂負擔並集中處理陸續到來的房間預訂請求,線上旅遊代理系統模組及/或預訂引擎也有可能會不定時地或更為頻繁地跳過對傳統物業管理系統模組120的詢問,以節省其詢問房間庫存資訊的龐大成本。更糟的是,如果飯店方實際上已用盡可用房間,而線上旅遊代理系統模組及/或預訂引擎並未及時詢問傳統物業管理系統模組120以獲知該資訊,接下來會發生的房間超售事件(Overbooking)是無可避免的。 However, the online travel agent modules OTA1, OTA2, ..., OTAM and the booking engines BE1, BE2, ..., BEN have no motivation to dynamically synchronize the contents of their respective room inventory records with the contents of the room inventory record 140. This is because dynamically synchronizing with the contents of the room inventory record 140 will significantly increase their burden of waiting for the response of the traditional property management system module 120. Furthermore, since the channel manager 150 is only responsible for translating and conveying requests, the channel manager 150 cannot reduce the above burden on the traditional property management system module 120. More seriously, if more and more online travel agency system modules and booking engines continue to query the content of the room inventory record 140, the traditional property management system module 120 will sooner or later be unable to handle such a large number of queries and cause its system to crash. In order to avoid such a system crash, the traditional property management system module 120 can only give a longer waiting time to allow the online travel agency system module and booking engine to make a smaller number of queries, wherein the length of the waiting time can be from at least several minutes to several hours, and is determined by the number of online travel agency system modules and/or booking engines that the hotel requests services from. For example, when the number of online travel agency system modules and/or booking engines requesting services from the hotel is relatively small, the online travel agency or booking engine may be limited to querying the room inventory record 140 once every half an hour or every two hours. During the peak travel season, when the number of online travel agency system modules and/or booking engines requesting services from the hotel is larger, the above-mentioned waiting time may be set to be longer. As a result, it is inevitable that the contents of the room inventory records held by the online travel agency system module and/or the booking engine are inconsistent with the contents of the room inventory record 140, because when the online travel agency system module and/or the booking engine processes the room reservation request issued by the customer, the contents of its room inventory record may be incorrect. Even in some extreme cases, in order to reduce the unnecessary burden of both parties and concentrate on processing the incoming room reservation requests, the online travel agency system module and/or the booking engine may occasionally or more frequently skip the query to the traditional property management system module 120 to save the huge cost of querying the room inventory information. Even worse, if the hotel has actually used up all available rooms, and the online travel agency system module and/or the booking engine does not promptly query the traditional property management system module 120 to obtain the information, the subsequent overbooking of rooms is inevitable.
傳統房間庫存管理系統中發生房間超售事件的起源 The origin of room overbooking incidents in traditional room inventory management systems
第1圖圖示了傳統科技中房間超售事件是如何引起的細節。 Figure 1 shows the details of how room overbooking events are caused in traditional technology.
假設一第一顧客透過線上旅遊代理模組OTA1存取物業管理系統模組120,以預訂房間庫存管理系統100所管理之可用房間R1。首先,線上旅遊代理模組OTA1先行確認其持有的房間庫存紀錄,以確認飯店方是否有可用房間,其中線上旅遊代理模組OTA1持有的房間庫存紀錄不見得與房間庫存紀錄140的內容一致。若線上旅遊代理模組OTA1確認到飯店方有可用房間,線上旅遊代理模組OTA1會將該第一顧客的房間預訂請求轉傳至傳統物業管理系統模組120。傳統物業管理系統模組120接著查驗房間庫存紀錄140的內容,以確認其是否的確有可用房間來滿足該第一顧客的房間預訂請求。若傳統物業管理系統模組120的確在房間庫存紀錄140的內容確認到有可用房間,傳統物業管理系統模組120會將該第一顧客的房間預訂請求轉譯為一成功交易(Successful Transaction),並對應更新房間庫存紀錄140的內容以紀錄該成功交易。此次房間庫存紀錄140的內容更新包含改變房間R1的可用性至已預訂狀態、及減少飯店方的可用房間額度。 Assume that a first customer accesses the property management system module 120 through the online travel agency module OTA1 to reserve an available room R1 managed by the room inventory management system 100. First, the online travel agency module OTA1 first confirms the room inventory record it holds to confirm whether the hotel has available rooms, wherein the room inventory record held by the online travel agency module OTA1 may not be consistent with the content of the room inventory record 140. If the online travel agency module OTA1 confirms that the hotel has available rooms, the online travel agency module OTA1 will forward the room reservation request of the first customer to the traditional property management system module 120. The traditional property management system module 120 then checks the content of the room inventory record 140 to confirm whether there are indeed available rooms to meet the room reservation request of the first customer. If the traditional property management system module 120 does confirm that there are available rooms in the content of the room inventory record 140, the traditional property management system module 120 will translate the room reservation request of the first customer into a successful transaction (Successful Transaction) and update the content of the room inventory record 140 accordingly to record the successful transaction. The content update of the room inventory record 140 this time includes changing the availability of room R1 to a reserved state and reducing the hotel's available room quota.
然而,若一第二顧客透過預訂引擎BE1存取傳統物業管理系統模組120,以在該第一顧客發出房間預訂請求的稍後預訂同一房間R1,而使得預訂引擎BE1來不及被告知該第一顧客已成功預訂房間R1的事實,並使得預訂引擎BE1誤確認房間R1仍為可用房間。接著,預訂引擎BE1將該第二顧客的房間預訂請求轉傳至傳統物業管理系統模組120。顯然地,傳統物業管理系統模組120將會在檢查房間預訂紀錄140的內容後,很快的決定該第二顧客並未成功預訂房間R1。然而,傳統物業管理系統模組120仍需等到預訂引擎BE1再次向房間預訂紀錄140進行查詢時,才能夠向預訂引擎BE1告知該第二顧客並未成功預訂房間的狀況。若不幸地,該第二顧客在預訂引擎BE1的再次查詢前,便已至飯店方辦理 入住手續,該第二顧客與飯店方都勢必要面對房間超售的問題。 However, if a second customer accesses the traditional property management system module 120 through the reservation engine BE1 to reserve the same room R1 after the first customer issues the room reservation request, the reservation engine BE1 does not have time to be informed of the fact that the first customer has successfully reserved the room R1, and the reservation engine BE1 mistakenly confirms that the room R1 is still available. Then, the reservation engine BE1 forwards the room reservation request of the second customer to the traditional property management system module 120. Obviously, the traditional property management system module 120 will quickly determine that the second customer has not successfully reserved the room R1 after checking the content of the room reservation record 140. However, the traditional property management system module 120 still needs to wait until the booking engine BE1 queries the room booking record 140 again before it can inform the booking engine BE1 that the second customer has not successfully booked the room. If, unfortunately, the second customer has already gone to the hotel to check in before the booking engine BE1 queries again, the second customer and the hotel will inevitably face the problem of overbooking.
若該第二顧客運氣夠好,飯店方仍然可以準備替代用的可用房間給該第二顧客,並給予適當的補償。然而,若不巧飯店方在確認該第一顧客之房間預訂要求為成功交易且正好用盡所有可用的房間時,該第二顧客仍然需要面對房間超售的問題,並需要立即搜尋其他飯店的可用房間。在強烈的不確定性下,該第二顧客的旅遊體驗很可能因此被徹底破壞,且這也會反向損傷飯店方及預訂引擎BE1的商譽。更糟的是,如以上所述,若飯店方與更多的線上旅遊代理模組及/或預訂引擎合作,或若處於旅遊旺季,上述的房間超售問題其嚴重性會越來越大。 If the second customer is lucky enough, the hotel can still prepare an alternative available room for the second customer and give appropriate compensation. However, if the hotel confirms that the first customer's room reservation request is a successful transaction and happens to use up all available rooms, the second customer still needs to face the problem of overbooking and needs to search for available rooms in other hotels immediately. Under strong uncertainty, the second customer's travel experience is likely to be completely destroyed, and this will also reversely damage the reputation of the hotel and booking engine BE1. Worse, as mentioned above, if the hotel cooperates with more online travel agency modules and/or booking engines, or if it is in the peak travel season, the above-mentioned room overbooking problem will become more and more serious.
以科技觀點來說,傳統的房間庫存管理系統100具有以下缺點: From a technological perspective, traditional room inventory management systems 100 have the following disadvantages:
(1)線上旅遊代理模組與預訂引擎無法動態地詢問傳統物業管理系統模組120,來確定各自房間庫存紀錄之正確性。 (1) The online travel agent module and the booking engine cannot dynamically query the traditional property management system module 120 to determine the accuracy of their respective room inventory records.
(2)若線上旅遊代理模組與預訂引擎各自增加詢問傳統物業管理系統模組120的頻率,傳統物業管理系統模組120自身的計算量及/或通訊頻寬將無法負荷,而因此更容易造成計算錯誤或通訊錯誤。 (2) If the online travel agency module and the booking engine each increase the frequency of querying the traditional property management system module 120, the traditional property management system module 120's own computing workload and/or communication bandwidth will not be able to cope with the load, and thus it is more likely to cause computing errors or communication errors.
(3)傳統房間庫存管理系統100與線上旅遊代理模組及/或預訂引擎之間的資料不一致,將會導致飯店方的房間超售事件。房間超售事件會在飯店方與更多線上旅遊代理模組及/或預訂引擎合作或旅遊旺季時更加惡化。 (3) The inconsistency between the data of the traditional room inventory management system 100 and the online travel agency module and/or booking engine will lead to the hotel's room overbooking incident. The room overbooking incident will be more serious when the hotel cooperates with more online travel agency modules and/or booking engines or during the peak travel season.
(4)飯店方必須付出更大的成本在研發客製化應用程式介面及通訊協定上,以由線上旅遊代理模組及/或預訂引擎接收所需的變數與參數來處理各自的房間預訂請求,甚至處理房間退訂請求或退房請求。 (4) Hotels must spend more money on developing customized application programming interfaces and communication protocols so that online travel agency modules and/or booking engines can receive the required variables and parameters to process their own room reservation requests, and even process room cancellation requests or check-out requests.
本發明之房間庫存管理系統:為了有效率地減緩上述傳統房間庫存管理系統100所發生的房間超售事件,本發明根據一實施例揭露一種基於區塊鏈的房間庫存管理系統,亦即 如第2圖所示之基於區塊鏈的房間庫存管理系統200。房間庫存管理系統200引入一個中間伺服系統,該中間伺服系統可減緩傳統物業管理系統模組與線上旅遊代理及/或預訂引擎之間的資料不對稱,並可減輕傳統物業管理系統模組的負擔。再者,房間庫存管理系統200有效率地為各個飯店方降低了線上旅遊代理模組、預訂引擎、甚至是上述全球分銷系統及元搜尋引擎所帶來的通訊成本及維護成本。 Room inventory management system of the present invention: In order to effectively reduce the room overbooking incidents caused by the above-mentioned traditional room inventory management system 100, the present invention discloses a room inventory management system based on blockchain according to an embodiment, that is, the room inventory management system based on blockchain 200 as shown in Figure 2. The room inventory management system 200 introduces an intermediate server system, which can reduce the data asymmetry between the traditional property management system module and the online travel agency and/or booking engine, and can reduce the burden of the traditional property management system module. Furthermore, the room inventory management system 200 effectively reduces the communication and maintenance costs of online travel agency modules, booking engines, and even the above-mentioned global distribution systems and meta-search engines for each hotel.
區塊鏈包含了多個實體節點,每一實體節點理論上保存了相同的內容(例如多個區塊),例如每一節點各自保存了複數個區塊,且每一節點各自保存的複數個區塊具有相同的內容。為了應對特定事件的發生,例如發生成功交易時,會產生一個新區塊來記錄該特定事件。在越多的區塊產生後,可建立起一成功交易歷史,並可於該區塊鏈中追蹤該成功交易歷史。因此,採用區塊鏈技術的第一個好處即為可追朔性。再者,如果某一實體節點中某一特定區塊被成功竄改,由於所有的實體節點理論上包含一樣的內容,亦即包含一樣的區塊,因此這樣的成功竄改可以很容易地被偵測到、並藉由參考其他未被竄改之實體節點中的區塊來修復。換言之,應用區塊鏈的第二優點在於其抵禦竄改行動的能力。 The blockchain contains multiple physical nodes, each of which theoretically stores the same content (e.g., multiple blocks). For example, each node stores multiple blocks, and the multiple blocks stored by each node have the same content. In order to respond to the occurrence of a specific event, such as a successful transaction, a new block will be generated to record the specific event. As more blocks are generated, a successful transaction history can be established, and the successful transaction history can be tracked in the blockchain. Therefore, the first benefit of using blockchain technology is traceability. Furthermore, if a specific block in a physical node is successfully hacked, since all physical nodes theoretically contain the same content, that is, the same block, such a successful hack can be easily detected and repaired by referring to the blocks in other physical nodes that have not been hacked. In other words, the second advantage of applying blockchain lies in its ability to resist hacking.
當應用區塊鏈技術時,基於區塊鏈的房間庫存管理系統200可有效地確保每一成功交易的正確性,亦即確保每一房間預訂事件的正確性。因此,基於區塊鏈的房間庫存管理系統200可有效地解決使用傳統房間庫存管理系統所引起的房間超售問題。 When blockchain technology is applied, the room inventory management system 200 based on blockchain can effectively ensure the correctness of each successful transaction, that is, ensure the correctness of each room reservation event. Therefore, the room inventory management system 200 based on blockchain can effectively solve the problem of room overbooking caused by using traditional room inventory management systems.
再者,基於區塊鏈的房間庫存管理系統200使用基於以太坊(Ethereum)的智能合約(Smart Contract)來產生一個共同的應用程式介面(Application Programming Interface,API)及/或一共同的通訊協定來與該些線上旅遊代理及/或該些預訂引擎進行通訊。在某些例子中,該共用之應用程式介 面是用於基於以太坊的多個線上旅遊代理及/或多個預訂引擎,且該共同的通訊協定是用於非基於以太坊的多個線上旅遊代理及/或多個預訂引擎。如此一來,該些線上旅遊代理及/或該些預訂引擎所產生的系統維護成本及通訊成本可大幅度的削減,其中該些系統維護及通訊包含向線上旅遊代理模組及/或預訂引擎傳輸房間預訂事件或更新房間庫存紀錄等。這是因為基於以太坊的智能合約在編程語言設計上的開放及易於上手等性質,其包含轉傳具有較少且較易於理解之變數及參數。上述有關降低成本方面的好處,基於同樣的理由,也成立於當基於區塊鏈之房間庫存管理系統200與全球分銷系統及/或元搜尋引擎共同合作的狀況。 Furthermore, the blockchain-based room inventory management system 200 uses a smart contract based on Ethereum to generate a common application programming interface (API) and/or a common communication protocol to communicate with the online travel agencies and/or the booking engines. In some examples, the shared API is used for multiple online travel agencies and/or multiple booking engines based on Ethereum, and the common communication protocol is used for multiple online travel agencies and/or multiple booking engines that are not based on Ethereum. In this way, the system maintenance costs and communication costs incurred by the online travel agencies and/or the booking engines can be significantly reduced, wherein the system maintenance and communication include transmitting room booking events or updating room inventory records to the online travel agency modules and/or booking engines. This is because the Ethereum-based smart contracts are open and easy to use in programming language design, including the transfer of fewer and easier to understand variables and parameters. The above-mentioned cost reduction benefits are also valid for the same reason when the blockchain-based room inventory management system 200 cooperates with the global distribution system and/or meta-search engine.
智能合約是在以太坊下發展的技術,也是本發明所應用之區塊鏈科技中的重要輔助技術。以太坊是一種開源、基於區塊鏈的分散式計算系統及作業系統,特徵在於智能合約的功能性。以太坊提供一種去中心化且符合圖靈完備(Turing-Complete)的虛擬機器,也就是以太坊虛擬機器,其可使用節點網路來執行指令碼(Script)。 Smart contracts are a technology developed under Ethereum and are also an important auxiliary technology in the blockchain technology used in this invention. Ethereum is an open source, blockchain-based distributed computing system and operating system characterized by the functionality of smart contracts. Ethereum provides a decentralized and Turing-complete virtual machine, namely the Ethereum virtual machine, which can use a node network to execute scripts.
以太坊的智能合約基於不同的電腦語言,開發者使用這些電腦語言來編程各自的功能。智能合約是高階的編成抽象化,其被轉譯為以太坊虛擬機器字節碼(Bytecode)、並部署於以太坊區塊鏈中來執行。智能合約可開啟證明功能性的可能性,例如自含可證明公平性(Provably Fair)之賭場。以太坊區塊鏈應用通常指向去中心化的應用,這是因為它們基於去中心化以太坊虛擬機器與其智能合約的緣故。以太坊區塊鏈的應用實例包含:數位簽章演算法、證券化代幣(Securitized Token)、數位權利管理、集資(Crowdfunding)、預測市場、匯款、線上賭博、社群媒體平台、金融交易及身份系統等。因為以太坊的圖靈完備性質,智能合約得以提供功能設計及實施上的高度彈性。再者,因為基於以太坊的智能合約所具有的開源及易於實施等性質,基於區塊鏈的房間庫存管 理系統200在與線上旅遊代理模組及/或預訂引擎進行通訊時,在基於以太坊的智能合約輔助下,具有上述提及之各種優點。 Ethereum's smart contracts are based on different computer languages, which developers use to program their own functions. Smart contracts are high-level programming abstractions that are translated into Ethereum virtual machine bytecode and deployed in the Ethereum blockchain for execution. Smart contracts can open up the possibility of proving functionality, such as a self-contained provably fair casino. Ethereum blockchain applications generally point to decentralized applications because they are based on the decentralized Ethereum virtual machine and its smart contracts. Application examples of the Ethereum blockchain include: digital signature algorithms, securitized tokens, digital rights management, crowdfunding, prediction markets, remittances, online gambling, social media platforms, financial transactions, and identity systems. Due to the Turing-complete nature of Ethereum, smart contracts can provide high flexibility in functional design and implementation. Furthermore, due to the open source and easy-to-implement nature of Ethereum-based smart contracts, the blockchain-based room inventory management system 200 has the above-mentioned advantages when communicating with online travel agency modules and/or booking engines with the assistance of Ethereum-based smart contracts.
基於區塊鏈的房間庫存管理系統200包含一新穎之物業管理系統模組210及一中間伺服系統250。物業管理系統模組210可設置於一旅館內,使得旅館方可直接控制物業管理系統模組210。中間伺服系統250可設置於物業管理系統模組210的遠方。在一例子中,中間伺服系統250為物業管理系統模組210事先處理或處理房間預訂事件,使得中間伺服系統250可為物業管理系統模組210大幅減輕處理上的負擔。在一例子中,房間預訂事件包含至少由旅館方發出的內部房間預訂請求及內部房間取消/退房請求,以及由線上旅遊代理模組及/或預訂引擎所發出的外部房間預訂請求及外部房間取消請求。外部房間預訂請求及外部房間取消請求可透過線上旅遊代理模組及/或預訂引擎發出,以在該應用程式介面或該通訊協定的輔助下,預訂或取消飯店方至少一個房間,其中該應用程式介面及該通訊協定是使用基於以太坊的智能合約所開發。該內部房間預訂/內部房間退房請求發生在顧客直接在飯店內辦理房間預訂手續、或是當飯店內的顧客決定辦法退房手續之時。再者,中間伺服系統250使用基於以太坊的智能合約來就房間預訂事件進行通訊,以實現與線上旅遊代理模組及/或預訂引擎之間小成本通訊,此係因用來通訊的應用程式介面及/或通訊協定是使用基於以太坊的智能合約來實作,因而使得設計簡單之故。 The room inventory management system 200 based on blockchain includes a novel property management system module 210 and an intermediate server system 250. The property management system module 210 can be set in a hotel, so that the hotel can directly control the property management system module 210. The intermediate server system 250 can be set remotely from the property management system module 210. In one example, the intermediate server system 250 pre-processes or processes room reservation events for the property management system module 210, so that the intermediate server system 250 can greatly reduce the processing burden for the property management system module 210. In one example, a room booking event includes at least an internal room booking request and an internal room cancellation/check-out request issued by a hotel, and an external room booking request and an external room cancellation request issued by an online travel agent module and/or a booking engine. The external room booking request and the external room cancellation request can be issued by an online travel agent module and/or a booking engine to book or cancel at least one room of the hotel with the assistance of the application programming interface or the communication protocol, wherein the application programming interface and the communication protocol are developed using smart contracts based on Ethereum. The internal room booking/internal room check-out request occurs when a customer directly handles a room booking procedure in the hotel, or when a customer in the hotel decides to check out. Furthermore, the intermediate server system 250 uses an Ethereum-based smart contract to communicate about room reservation events to achieve low-cost communication with the online travel agency module and/or the reservation engine. This is because the application programming interface and/or communication protocol used for communication is implemented using an Ethereum-based smart contract, which makes the design simple.
在一例子中,物業管理系統模組210特別設計藉由與中間伺服系統250共用同一應用程式介面,亦即同一遠端程序呼叫(Remote Procedure Call,RPC)程序,而與中間伺服系統250共同運作。如此一來,物業管理系統模組210與中間伺服系統250之間的通訊可僅用去較少的處理時間,而達成更高的效率。在房間庫存管理系統200需要在短時間內處理大量房間預訂事件時,例如旅遊旺季時,這樣的高效率會更明顯。 In one example, the property management system module 210 is specially designed to work with the intermediate server system 250 by sharing the same application program interface, that is, the same remote procedure call (RPC) program. In this way, the communication between the property management system module 210 and the intermediate server system 250 can take less processing time and achieve higher efficiency. This high efficiency will be more obvious when the room inventory management system 200 needs to process a large number of room reservation events in a short time, such as during the peak travel season.
物業管理系統模組210包含一主收發器212、一主處理器214、及一主記憶體216。在本發明之各個例子中,主處理器214是一個電腦處理器,且主記憶體216是一個非揮發式電腦可讀取記憶體。主收發器212可處理與中間伺服系統250之間的通訊,但並不直接與線上旅遊代理OTA1、OTA2、...、OTAM及/或預訂引擎BE1、BE2、...、BEN進行通訊。主記憶體216會為物業管理系統模組210維護一個房間庫存紀錄218(如第3圖所示),以作為飯店方管理其房間之用。房間庫存紀錄218記錄了至少飯店中每一房間的可用度及飯店中可用的房間計數。主處理器214可應對於一房間預訂事件的發生,參照及/或更新房間庫存紀錄218。舉例來說,主處理器214可對應於一房間預訂請求,減少飯店中可用的房間計數及/或關閉被預訂之房間的可用度。主處理器214亦可應對於一房間預訂取消請求或一退房請求來增加飯店中可用的房間計數及/或開啟被預訂之房間的可用度。 The property management system module 210 includes a main transceiver 212, a main processor 214, and a main memory 216. In each example of the present invention, the main processor 214 is a computer processor, and the main memory 216 is a non-volatile computer readable memory. The main transceiver 212 can handle the communication with the intermediate server system 250, but does not directly communicate with the online travel agent OTA1, OTA2, ..., OTAM and/or the booking engine BE1, BE2, ..., BEN. The main memory 216 maintains a room inventory record 218 (as shown in Figure 3) for the property management system module 210 for the hotel to manage its rooms. The room inventory record 218 records at least the availability of each room in the hotel and the number of available rooms in the hotel. The main processor 214 can refer to and/or update the room inventory record 218 in response to the occurrence of a room reservation event. For example, the main processor 214 can reduce the number of available rooms in the hotel and/or turn off the availability of the reserved room in response to a room reservation request. The main processor 214 can also increase the number of available rooms in the hotel and/or turn on the availability of the reserved room in response to a room reservation cancellation request or a check-out request.
中間伺服系統250應用了區塊鏈技術。再者,中間伺服系統250包含一交易代理伺服器260及複數個節點伺服器,例如第2圖所示X個節點伺服器NS1、NS2、...、NSX,其中X是正整數。節點伺服器NS1、NS2、...、NSX會形成一個區塊鏈,每一節點伺服器會保存實質相同的資料,以確保彼此之間的資料一致性及資料可追朔性。 The intermediate server system 250 applies blockchain technology. Furthermore, the intermediate server system 250 includes a transaction proxy server 260 and a plurality of node servers, such as X node servers NS1, NS2, ..., NSX as shown in FIG. 2, where X is a positive integer. The node servers NS1, NS2, ..., NSX will form a blockchain, and each node server will store substantially the same data to ensure data consistency and data traceability between each other.
交易代理伺服器260如同中間伺服系統250的核心,並包含一中間收發器262、一中間處理器264、及一中間記憶體266。在某些例子中,交易代理伺服器260會扮演被信任之節點的角色,用來被授權在中間伺服系統250所形成的區塊鏈中產生新區塊。同樣地,在某些例子中,中間處理器264是一個電腦處理器,且中間記憶體266是一個非揮發式電腦可讀取記憶體。當線上旅遊代理模組OTA1、OTA2、...、OTAM、預訂引擎BE1、BE2、...、BEN、或物業管理系統模組210中任一者發出一房間預訂請求時,中間收發器262會接收該房間預訂請 求、並轉傳至中間處理器264。在某些例子中,中間收發器262可被實施為一應用程式介面伺服器,且該應用程式介面伺服器會基於中間記憶體266所儲存基於以太坊的智能合約,將該房間預訂請求轉譯為物業管理系統模組210及中間伺服系統250可輕易理解的形式,亦即取代了頻道管理器150的功能。中間記憶體266維護了一個如第3圖所示的房間庫存紀錄268,其中房間庫存紀錄268是以至少一個基於以太坊的該智能合約所實施,使得中間處理器264可基於相容於該些基於以太坊之智能合約的指令來操作(例如存取、更新、或稽核)房間庫存紀錄268。中間伺服系統250(特別是交易代理伺服器260)、線上旅遊代理模組OTA1、OTA2、...、OTAM、及/或預訂引擎BE1、BE2、...、BEN之間的通訊是由中間記憶體266中所儲存之智能合約所支援。中間處理器264使用該些智能合約中至少一個智能合約來存取及/或更新房間庫存紀錄268的內容。在某些例子中,中間收發器262可以設置於離中間處理器264及/或中間記憶體266有一段距離的遠處,以將應用程式介面伺服器的轉譯程序分離於房間庫存紀錄的管理程序之外,來避免交易代理伺服器260的系統負擔超載。 The transaction proxy server 260 is like the core of the intermediate server system 250, and includes an intermediate transceiver 262, an intermediate processor 264, and an intermediate memory 266. In some examples, the transaction proxy server 260 plays the role of a trusted node, which is authorized to generate new blocks in the blockchain formed by the intermediate server system 250. Similarly, in some examples, the intermediate processor 264 is a computer processor, and the intermediate memory 266 is a non-volatile computer readable memory. When any of the online travel agent modules OTA1, OTA2, ..., OTAM, booking engines BE1, BE2, ..., BEN, or property management system module 210 issues a room reservation request, the intermediate transceiver 262 receives the room reservation request and forwards it to the intermediate processor 264. In some examples, the intermediate transceiver 262 can be implemented as an application programming interface server, and the application programming interface server translates the room reservation request into a form that can be easily understood by the property management system module 210 and the intermediate server system 250 based on the Ethereum-based smart contract stored in the intermediate memory 266, that is, replaces the function of the channel manager 150. The intermediate memory 266 maintains a room inventory record 268 as shown in FIG. 3 , wherein the room inventory record 268 is implemented by at least one of the smart contracts based on Ethereum, so that the intermediate processor 264 can operate (e.g., access, update, or audit) the room inventory record 268 based on instructions compatible with the smart contracts based on Ethereum. The communication between the intermediate server system 250 (especially the transaction agent server 260), the online travel agent module OTA1, OTA2, ..., OTAM, and/or the booking engine BE1, BE2, ..., BEN is supported by the smart contracts stored in the intermediate memory 266. The intermediate processor 264 uses at least one of the smart contracts to access and/or update the content of the room inventory record 268. In some examples, the intermediate transceiver 262 can be located at a distance from the intermediate processor 264 and/or the intermediate memory 266 to separate the translation process of the application programming interface server from the management process of the room inventory record to avoid overloading the system burden of the transaction agent server 260.
在某些例子中,中間處理器264決定一個房間預訂事件是否為一成功交易,其中該房間預訂事件可能是一個房間預訂請求、一個退房請求、或是一個房間取消請求,且發出該房間預訂事件的主體可為物業管理系統模組210、線上旅遊代理模組OTA1、OTA2、...、OTAM、及/或預訂引擎BE1、BE2、...、BEN其中之一。由線上旅遊代理模組OTA1、OTA2、...、OTAM、及/或預訂引擎BE1、BE2、...、BEN其中之一所發出的房間預訂事件,可為由顧客所發起的一個外部房間預訂請求或一個外部房間取消請求(在該顧客先前已成功預訂一個房間的情況下)。物業管理系統模組210所發出之房間預訂事件可為一個內部房間預訂請求、一個內部房間取消請求、或一個內部退房請求。在接收到一個房間預訂請求時,中間處理器264會檢查房間庫存紀錄268來確認該房間預訂請求是否可 獲准,例如根據被請求預訂之房間的可用度或根據若准許該房間預訂請求後是否會引起該飯店之超售現象來決定是否准許該房間預訂請求。若該中間處理器264准許該房間預訂請求,中間處理器264會對應產生一個成功交易。同樣地,在接收到一內部退房請求、一內部房間取消請求、或一外部房間取消請求時,中間處理器264會檢查房間庫存紀錄268、釋放被取消或被退房之該房間、並對應產生一成功交易。 In some examples, the intermediate processor 264 determines whether a room booking event is a successful transaction, wherein the room booking event may be a room booking request, a check-out request, or a room cancellation request, and the subject that issues the room booking event may be one of the property management system module 210, the online travel agency module OTA1, OTA2, ..., OTAM, and/or the booking engine BE1, BE2, ..., BEN. The room booking event issued by one of the online travel agency modules OTA1, OTA2, ..., OTAM, and/or the booking engine BE1, BE2, ..., BEN may be an external room booking request or an external room cancellation request initiated by a customer (when the customer has previously successfully booked a room). The room reservation event issued by the property management system module 210 may be an internal room reservation request, an internal room cancellation request, or an internal check-out request. When receiving a room reservation request, the intermediate processor 264 checks the room inventory record 268 to confirm whether the room reservation request is approved, for example, based on the availability of the requested room or based on whether the hotel will be oversold if the room reservation request is approved. If the intermediate processor 264 approves the room reservation request, the intermediate processor 264 generates a successful transaction accordingly. Similarly, upon receiving an internal check-out request, an internal room cancellation request, or an external room cancellation request, the intermediate processor 264 checks the room inventory record 268, releases the room being canceled or checked out, and generates a successful transaction accordingly.
為了支援在區塊鏈技術下運行的各種複雜功能,中間伺服系統250應用了至少一個儲存於中間記憶體266之基於以太坊的智能合約。如先前所述,藉由智能合約在設計及實施功能上的彈性,中間伺服系統250可結合傳統房間預訂需求及大部分最新的區塊鏈科技來實現多種不同的功能。 In order to support various complex functions running under blockchain technology, the intermediate server system 250 applies at least one Ethereum-based smart contract stored in the intermediate memory 266. As mentioned earlier, through the flexibility of smart contracts in designing and implementing functions, the intermediate server system 250 can combine traditional room reservation requirements and most of the latest blockchain technology to achieve a variety of different functions.
在某些例子中,在中間處理器264決定該房間預訂事件是一個成功交易後,中間處理器264將該成功交易加入至房間庫存紀錄268中,以更新房間庫存紀錄268。再者,中間處理器264可以將已更新之房間庫存紀錄268的內容同步至每一節點伺服器NS1、NS2、...、NSX,亦即更新節點伺服器NS1、NS2、...、NSX所形成之該區塊鏈。因此,節點伺服器NS1、NS2、...、NSX可作為房間庫存紀錄268的備份紀錄。 In some examples, after the intermediate processor 264 determines that the room reservation event is a successful transaction, the intermediate processor 264 adds the successful transaction to the room inventory record 268 to update the room inventory record 268. Furthermore, the intermediate processor 264 can synchronize the content of the updated room inventory record 268 to each node server NS1, NS2, ..., NSX, that is, update the blockchain formed by the node servers NS1, NS2, ..., NSX. Therefore, the node servers NS1, NS2, ..., NSX can be used as backup records of the room inventory record 268.
在某些例子中,如廣為所知之區塊鏈科技所展現,上述節點伺服器NS1、NS2、...、NSX的區塊更新可包含同一區塊鏈中不同節點伺服器之間的區塊競爭,使得某些區塊被加入該區塊鏈之部分節點伺服器後被拋棄。然而,此處所述節點伺服器NS1、NS2、...、NSX的區塊更新亦假設包含此種加入區塊後又拋棄的情形,而不另行贅述。因此,每一節點伺服器NS1、NS2、...、NSX在此被假設包含實質相同的多個區塊,該些區塊最終包含實質相同的交易歷史。 In some examples, as shown by the widely known blockchain technology, the block updates of the node servers NS1, NS2, ..., NSX mentioned above may include block competition between different node servers in the same blockchain, so that some blocks are added to some node servers of the blockchain and then abandoned. However, the block updates of the node servers NS1, NS2, ..., NSX described here are also assumed to include such a situation where blocks are added and then abandoned, and will not be elaborated separately. Therefore, each node server NS1, NS2, ..., NSX is assumed to include multiple substantially identical blocks, and these blocks ultimately include substantially identical transaction history.
如此一來,房間庫存紀錄268的內容可更佳地防止被竄改或破壞,此係因中間處理器264總是可以在節點伺服器NS1、NS2、...、NSX的任何一個節 點伺服器中找到房間庫存紀錄268的正確備份。 In this way, the content of the room inventory record 268 can be better protected from being tampered with or destroyed because the intermediate processor 264 can always find the correct backup of the room inventory record 268 in any node server of the node servers NS1, NS2, ..., NSX.
每一節點伺服器NS1、NS2、...、NSX各自具有一個節點收發器、一個節點處理器、以及一個節點記憶體。該節點處理器係為一個電腦處理器。且該節點記憶體係為一個電腦可讀取式記憶體。該節點收發器可在發生對應於一房間預訂請求之一成功交易時,接收由中間處理器264傳出之指令、並傳輸資料至中間處理器264。該節點記憶體可儲存房間庫存紀錄268之內容備份,以作為未來更新及/或稽核之用。該節點處理器可處理由中間處理器264傳出之指令、並決定使用哪些資料來回應中間處理器264。如第2圖所例示,舉例來說,節點伺服器NS1具有一節點收發器NT1、一節點處理器NP1、及一節點記憶體NM1;節點伺服器NS2具有一節點收發器NT2、一節點處理器NP2、及一節點記憶體NM2;且節點伺服器NSX具有一節點收發器NTX、一節點處理器NPX、及一節點記憶體NMX。 Each node server NS1, NS2, ..., NSX has a node transceiver, a node processor, and a node memory. The node processor is a computer processor. And the node memory is a computer readable memory. The node transceiver can receive instructions from the intermediate processor 264 and transmit data to the intermediate processor 264 when a successful transaction corresponding to a room reservation request occurs. The node memory can store a backup of the content of the room inventory record 268 for future updates and/or audits. The node processor can process instructions from the intermediate processor 264 and decide which data to use to respond to the intermediate processor 264. As shown in FIG. 2, for example, the node server NS1 has a node transceiver NT1, a node processor NP1, and a node memory NM1; the node server NS2 has a node transceiver NT2, a node processor NP2, and a node memory NM2; and the node server NSX has a node transceiver NTX, a node processor NPX, and a node memory NMX.
第3圖圖示主記憶體216、中間記憶體266、及節點記憶體NM1、NM2、...、NMX各自的房間庫存紀錄間的關係之概念示意圖,亦即房間庫存紀錄218、房間庫存紀錄268、及房間庫存紀錄RI1、RI2、...、RIX之間的關係。每一節點記憶體NM1、NM2、...、NMX儲存了與房間庫存紀錄268所儲存相同的複數個智能合約。且房間庫存紀錄RI1、RI2、...、RIX亦各自使用節點記憶體NM1、NM2、...、NMX儲存之該些智能合約來實施。與中間處理器264及中間記憶體266相同,每一節點處理器NP1、NP2、...、NPX各自使用實施房間庫存紀錄RI1、RI2、...、RIX的該些智能合約,來存取及更新房間庫存紀錄RI1、RI2、...、RIX的內容。 FIG. 3 is a conceptual diagram showing the relationship between the main memory 216, the intermediate memory 266, and the room inventory records of the node memories NM1, NM2, ..., NMX, that is, the relationship between the room inventory record 218, the room inventory record 268, and the room inventory records RI1, RI2, ..., RIX. Each node memory NM1, NM2, ..., NMX stores the same plurality of smart contracts as those stored in the room inventory record 268. And the room inventory records RI1, RI2, ..., RIX are also implemented using the smart contracts stored in the node memories NM1, NM2, ..., NMX. Similar to the intermediate processor 264 and the intermediate memory 266, each node processor NP1, NP2, ..., NPX uses the smart contracts implementing the room inventory records RI1, RI2, ..., RIX to access and update the contents of the room inventory records RI1, RI2, ..., RIX.
在某些例子中,中間處理器264首先對應於一成功交易的產生,更新房間庫存紀錄268。再者,中間處理器264將房間庫存紀錄268的已更新內容透過主收發器212轉傳至物業管理系統模組210,使得主處理器214可據以更新房間庫 存紀錄218,而使房間庫存紀錄218的內容與房間庫存紀錄268的已更新內容同步。中間處理器264亦對應房間庫存紀錄268的已更新內容來產生一個新區塊,該新區塊保存了物業管理系統模組210至少所有最新的成功交易。在某些例子中,中間處理器264需要至少一個儲存於中間記憶體266的智能合約來執行完整的指令(例如計算或更新變數),以產生該新區塊。舉例來說,碰到有Y個不同但依時間順序(Chronological Order)發生的成功交易時,中間處理器264可在時間t1產生區塊BL1、在時間t2產生區塊BL2、...、以及在時間tY產生一個最新近區塊BLY,其中Y是一個正整數。時間t1早於時間t2。時間t2早於時間t(Y-1),且時間t(Y-1)早於時間tY。時間tY代表發生成功交易的最新近時間點。區塊BL1包含了所有在時間t1時已發生的成功交易。區塊BL2比區塊BL1多包含了一個發生在時間t2的成功交易,亦即區塊BL2包含了所有在時間t2時已發生的成功交易。同樣地,區塊BLY包含所有在時間tY時已發生的成功交易。 In some examples, the intermediate processor 264 first updates the room inventory record 268 in response to the generation of a successful transaction. Furthermore, the intermediate processor 264 transmits the updated content of the room inventory record 268 to the property management system module 210 through the main transceiver 212, so that the main processor 214 can update the room inventory record 218 accordingly, and synchronize the content of the room inventory record 218 with the updated content of the room inventory record 268. The intermediate processor 264 also generates a new block in response to the updated content of the room inventory record 268, and the new block stores at least all the latest successful transactions of the property management system module 210. In some examples, the intermediate processor 264 requires at least one smart contract stored in the intermediate memory 266 to execute a complete instruction (such as calculating or updating a variable) to generate the new block. For example, when encountering Y different successful transactions that occur in chronological order, the intermediate processor 264 may generate block BL1 at time t1, block BL2 at time t2, ..., and a most recent block BLY at time tY, where Y is a positive integer. Time t1 is earlier than time t2. Time t2 is earlier than time t(Y-1), and time t(Y-1) is earlier than time tY. Time tY represents the most recent time point at which a successful transaction occurred. Block BL1 contains all successful transactions that have occurred at time t1. Block BL2 contains one more successful transaction that occurred at time t2 than block BL1, that is, block BL2 contains all successful transactions that occurred at time t2. Similarly, block BLY contains all successful transactions that occurred at time tY.
在區塊鏈科技下,每一節點伺服器NS1、NS2、...、NSX有義務使各自包含的房間庫存紀錄RI1、RI2、...、RIX同步更新,以使其內容與房間庫存紀錄268的內容同步。因此,在透過各自的節點收發器NT1、NT2、...、NTX接收到最新近產出區塊BLY後,節點處理器NP1、NP2、...、NPX各自將最新近產出區塊BLY併入自己的房間庫存紀錄RI1、RI2、...、RIX。在某些例子中,節點處理器NP1、NP2、...、NPX需要至少一個智能合約的協助,來同步執行最新近之成功交易中所涉及的指令,以完成各自之房間庫存紀錄RI1、RI2、...、RIX的內容更新。這些更新可包含更新特定本地端(Local)變數或特定廣域(Global)變數。該些本地端變數可包含各個房間的可用度或價格。該些特定廣域變數可包含條件式的折扣或動態調整的房間價格。 Under blockchain technology, each node server NS1, NS2, ..., NSX is obliged to synchronize and update the room inventory records RI1, RI2, ..., RIX contained therein so that the contents thereof are synchronized with the contents of the room inventory record 268. Therefore, after receiving the most recently produced block BLY through the respective node transceivers NT1, NT2, ..., NTX, the node processors NP1, NP2, ..., NPX each merge the most recently produced block BLY into their own room inventory records RI1, RI2, ..., RIX. In some examples, the node processors NP1, NP2, ..., NPX require the assistance of at least one smart contract to synchronously execute the instructions involved in the most recent successful transaction to complete the content update of their respective room inventory records RI1, RI2, ..., RIX. These updates may include updating specific local variables or specific global variables. The local variables may include the availability or price of each room. The global variables may include conditional discounts or dynamically adjusted room prices.
第4圖圖示中間處理器264如何產生一個新區塊的細節。中間處理器264包含一雜湊(Hashing)模組402、一時間戳記(Timestamp)模組404、及區 塊產生模組406。如先前所述,中間處理器264應對於一成功交易來產生一個新區塊。在中間處理器264確認該成功交易後,雜湊模組402為該新區塊產生一個雜湊值,且時間戳記模組404為該新區塊產生一個獨特的時間戳記。舉例來說,雜湊模組402會為Y個區塊BL1、BL2、...、BLY各自產生一個實質獨特的對應雜湊值HS1、HS2、...、HSY,且時間戳記模組404會為Y個區塊BL1、BL2、...、BLY各自產生一個實質獨特的對應時間戳記TS1、TS2、...、TSY。 FIG. 4 illustrates the details of how the intermediate processor 264 generates a new block. The intermediate processor 264 includes a hashing module 402, a timestamp module 404, and a block generation module 406. As previously described, the intermediate processor 264 generates a new block in response to a successful transaction. After the intermediate processor 264 confirms the successful transaction, the hashing module 402 generates a hash value for the new block, and the timestamp module 404 generates a unique timestamp for the new block. For example, the hash module 402 generates a substantially unique corresponding hash value HS1, HS2, ..., HSY for each of the Y blocks BL1, BL2, ..., BLY, and the timestamp module 404 generates a substantially unique corresponding timestamp TS1, TS2, ..., TSY for each of the Y blocks BL1, BL2, ..., BLY.
產生雜湊值的方法對熟知區塊鏈技術領域者已廣為所知,因此,此處不再特地贅述該些方法。然而,每個被產生的雜湊值具有其隨機性,使得每個被產生的雜湊值可為實質獨特。在某些例子中,被產生的時間戳記可對應於中間處理器264確認該成功交易的當下、或是對應於,例如,由物業管理系統模組210、線上旅遊代理模組OTA1、OTA2、...、OTAM、或預訂引擎BE1、BE2、...、BEN發出該房間預訂請求的當下。如此一來,每一區塊BL1、BL2、...、BLY會各自具有一個實質獨特的雜湊值及一個實質獨特的時間戳記。且最新近產生的區塊BLY會具有所有已產生區塊中最新的時間戳記。 Methods for generating hash values are well known to those skilled in the art of blockchain technology, and therefore, these methods are not specifically described here. However, each generated hash value has its own randomness, so that each generated hash value can be substantially unique. In some examples, the generated timestamp may correspond to the moment when the intermediate processor 264 confirms the successful transaction, or to, for example, the moment when the room reservation request is issued by the property management system module 210, the online travel agent module OTA1, OTA2, ..., OTAM, or the booking engine BE1, BE2, ..., BEN. In this way, each block BL1, BL2, ..., BLY will each have a substantially unique hash value and a substantially unique timestamp. And the most recently generated block BLY will have the latest timestamp among all generated blocks.
對應於該成功交易,區塊產生模組406由雜湊模組402引入了一個實質獨特的雜湊值,並從時間戳記模組406引入了一個實質獨特的時間戳記,來產生一個區塊標頭(Block Header)。舉例來說,在發生一個最新近成功交易時,區塊產生模組406為了將被產生的區塊BLY,引入雜湊值HSY及時間戳記TSY來產生區塊標頭BHY。如此一來,區塊產生模組406可個別產生區塊標頭BH1、BH2、...、BHY。 Corresponding to the successful transaction, the block generation module 406 introduces a substantially unique hash value from the hash module 402 and a substantially unique timestamp from the timestamp module 406 to generate a block header. For example, when a recent successful transaction occurs, the block generation module 406 introduces the hash value HSY and the timestamp TSY to generate a block header BHY for the block BLY to be generated. In this way, the block generation module 406 can generate block headers BH1, BH2, ..., BHY respectively.
再者,應對於該成功交易,區塊產生模組406產生了一個新區塊,其整併了一個對應的區塊標頭、該成功交易的內容、至少一個智能合約、以及前一個產生區塊的內容。舉例來說,應對於一個最新近的成功交易,區塊產生模組406所產生的區塊BLY會包含區塊標頭BHY、至少一個由中間記憶體266所載 入的智能合約、以及前一個區塊BL(Y-1)的內容,其中區塊BL(Y-1)因圖示簡略的需求而未標示。如此一來,最新近產生之區塊BLY可包含先前所有區塊BL1、BL2、...、BL(Y-1)的內容。除此以外,所有先前產生之區塊BL1、BL2、...、BL(Y-1)所對應所有目前已存在的成功交易,也可透過僅參照最新近產生區塊BLY的方式來完成稽核(Audit)。 Furthermore, in response to the successful transaction, the block generation module 406 generates a new block, which integrates a corresponding block header, the content of the successful transaction, at least one smart contract, and the content of the previous generated block. For example, in response to a recent successful transaction, the block BLY generated by the block generation module 406 includes the block header BHY, at least one smart contract loaded from the intermediate memory 266, and the content of the previous block BL(Y-1), wherein the block BL(Y-1) is not marked due to the need for simplicity of the diagram. In this way, the recently generated block BLY can include the content of all previous blocks BL1, BL2, ..., BL(Y-1). In addition, all previously generated blocks BL1, BL2, ..., BL(Y-1) corresponding to all existing successful transactions can also be audited by only referring to the most recently generated block BLY.
最後,區塊產生模組406將該新區塊加入節點伺服器NS1、NS2、...、NSX所形成之區塊鏈,以更新該區塊鏈。舉例來說,區塊產生模組406將最新近產生區塊BLY加入至已包含多個區塊BL1、BL2、...、BL(Y-1)的區塊鏈,以更新該區塊鏈。 Finally, the block generation module 406 adds the new block to the blockchain formed by the node servers NS1, NS2, ..., NSX to update the blockchain. For example, the block generation module 406 adds the latest generated block BLY to the blockchain that already includes multiple blocks BL1, BL2, ..., BL(Y-1) to update the blockchain.
在某些例子中,每一線上旅遊代理模組OTA1、OTA2、...、OTAM及/或預訂引擎BE1、BE2、...、BEN被允許以直接或透過交易代理伺服器260的方式,存取節點伺服器NS1、NS2、...、NSX所形成之區塊鏈。如此一來,藉由使用總是實質維持最新近交易的該區塊鏈,每一線上旅遊代理模組OTA1、OTA2、...、OTAM及/或預訂引擎BE1、BE2、...、BEN可總是透過及時參照一最新進產生之區塊的方式,主動地確認可用房間的數量及/或特定房間的可用性。如此便可實質解決房間超售事件的問題。 In some examples, each online travel agent module OTA1, OTA2, ..., OTAM and/or booking engine BE1, BE2, ..., BEN is allowed to access the blockchain formed by node servers NS1, NS2, ..., NSX directly or through the transaction agent server 260. In this way, by using the blockchain that always substantially maintains the latest transactions, each online travel agent module OTA1, OTA2, ..., OTAM and/or booking engine BE1, BE2, ..., BEN can always actively confirm the number of available rooms and/or the availability of a specific room by timely referring to a recently generated block. In this way, the problem of room oversale events can be substantially solved.
另外,由於物業管理系統模組210的大部分任務都轉移至中間伺服系統250,先前技術中物業管理系統模組的過載問題也可被有效且實質的避免。 In addition, since most of the tasks of the property management system module 210 are transferred to the intermediate server system 250, the overload problem of the property management system module in the prior art can also be effectively and substantially avoided.
在某些例子中,存取節點伺服器NS1、NS2、...、NSX所形成之區塊鏈包含的多個區塊是透過各自的區塊標頭(更精確的說,是透過各自的雜湊值)來建立與稽核。在某些例子中,存取節點伺服器NS1、NS2、...、NSX所形成之區塊鏈是使用梅克爾樹(Merkle Tree)技術,使得該區塊鏈之每一區塊具有一個實質獨特的梅克爾根(Merkle Root)。若某一區塊(例如區塊BL1)在節點伺服器NS1、NS2、...、NSX其中之一遭到竄改,任何可存取該區塊鏈的個體可簡單 地稽核該區塊鏈、並進而找到在該特定節點伺服器上被竄改的區塊BL1。該稽核程序包含:(1)在節點伺服器NS1、NS2、...、NSX上各自計算區塊BL1的梅克爾根之值;(2)比較節點伺服器NS1、NS2、...、NSX各自計算出來區塊BL1的梅克爾根之值,以找到至少一個節點伺服器上被竄改之區塊BL1的不一致。更精確的說,由於被竄改的區塊BL1一定會具有一個與其他節點伺服器上未被竄改之區塊BL1不同的梅克爾根值,因此上述的比較程序可以輕易地找出這樣的不同梅克爾根值。被竄改的區塊BL1亦可藉由參照其他節點伺服器上未被竄改的區塊BL1來獲得修正。如此一來,該區塊鏈上的區塊皆可被保證其正確性,使得每一節點伺服器上保存的房間庫存紀錄亦可被保全。在某些例子中,一個個體被授權可存取該區塊鏈,以稽核或甚至修正該區塊鏈,其中該個體可為物業管理系統模組210、交易代理伺服器260、或節點伺服器NS1、NS2、...、NSX之任一者的處理器。上述有關於稽核與修正區塊BL1的例子,亦適用於該區塊鏈中的其他區塊。 In some examples, the multiple blocks included in the blockchain formed by the access node servers NS1, NS2, ..., NSX are established and audited through their respective block headers (more precisely, through their respective hash values). In some examples, the blockchain formed by the access node servers NS1, NS2, ..., NSX uses Merkle Tree technology, so that each block of the blockchain has a substantially unique Merkle Root. If a block (e.g., block BL1) is tampered with on one of the node servers NS1, NS2, ..., NSX, any individual with access to the blockchain can simply audit the blockchain and find the tampered block BL1 on the specific node server. The auditing process includes: (1) calculating the Merkle root value of block BL1 on each of the node servers NS1, NS2, ..., NSX; (2) comparing the Merkle root values of block BL1 calculated by each of the node servers NS1, NS2, ..., NSX to find inconsistencies in the tampered block BL1 on at least one of the node servers. More precisely, since the hacked block BL1 will definitely have a different Merkle root value from the unhacked block BL1 on other node servers, the above comparison procedure can easily find such different Merkle root values. The hacked block BL1 can also be corrected by referring to the unhacked block BL1 on other node servers. In this way, the blocks on the blockchain can be guaranteed to be correct, so that the room inventory records stored on each node server can also be preserved. In some examples, an individual is authorized to access the blockchain to audit or even modify the blockchain, where the individual may be a processor of the property management system module 210, the transaction agent server 260, or any of the node servers NS1, NS2, ..., NSX. The above examples of auditing and modifying block BL1 are also applicable to other blocks in the blockchain.
在某些例子中,每一個成功交易可經由參照任一節點伺服器NS1、NS2、...、NSX上任一區塊BL1、BL2、...、BLY的區塊標頭(更精確的說,經由區塊各自的時間戳記),而被正確的追蹤,其為上述稽核程序的一部份。該追蹤程序亦可使用中間記憶體266或每一節點記憶體NM1、NM2、...、NMX所儲存之至少一個稽核用智能合約來實施,其主導者可為上述被授權存取該區塊鏈的個體。這樣的個體可包含交易代理伺服器260包含的中間處理器264、或任一節點伺服器NS1、NS2、...、NSX的節點處理器。較佳地,這樣的稽核程序是由中間處理器264所主導,以進行即時且不致混淆的更新。該追蹤程序包含:(1)搜尋區塊BL1、BL2、...、BLY各自的區塊標頭BH1、BH2、...、BHY;(2)追蹤區塊BL1、BL2、...、BLY各自的時間戳記TS1、TS2、...、TSY,以成功辨識導致區塊BL1、BL2、...、BLY產生的各個成功交易。藉由時間戳記TS1、TS2、...、 TSY的輔助,各個成功交易的發生先後順序可正確的依照時間排列來確認。如此一來,超售事件可以被更佳地確認及避免,其中該超售事件是起因於未能及時通知線上旅遊代理模組或預訂引擎一筆較早的成功交易,導致錯誤地接受另一筆較晚的成功交易。 In some examples, each successful transaction can be correctly tracked by referring to the block header of any block BL1, BL2, ..., BLY on any node server NS1, NS2, ..., NSX (more precisely, by the respective timestamp of the block), which is part of the above-mentioned auditing process. The tracking process can also be implemented using at least one auditing smart contract stored in the intermediate memory 266 or each node memory NM1, NM2, ..., NMX, and its host can be the above-mentioned individual authorized to access the blockchain. Such an individual may include the intermediate processor 264 included in the transaction proxy server 260, or the node processor of any node server NS1, NS2, ..., NSX. Preferably, such an auditing process is led by the intermediate processor 264 to perform real-time and non-confusion updates. The tracking process includes: (1) searching for the block headers BH1, BH2, ..., BHY of blocks BL1, BL2, ..., BLY; (2) tracking the time stamps TS1, TS2, ..., TSY of blocks BL1, BL2, ..., BLY to successfully identify each successful transaction that caused the blocks BL1, BL2, ..., BLY. With the help of the time stamps TS1, TS2, ..., TSY, the order of occurrence of each successful transaction can be correctly confirmed according to the time arrangement. In this way, overbooking events can be better identified and avoided, where the overbooking event is caused by the failure to promptly notify the online travel agent module or booking engine of an earlier successful transaction, resulting in the erroneous acceptance of another later successful transaction.
在某些例子中,多個儲存於房間庫存紀錄268的智能合約包含至少一個動態定價智能合約,其可根據房間庫存紀錄268所儲存的一個暫態可用房間數量,來決定至少一個暫時且可變的房間價格。中間處理器264動態地調整該暫態房間價格、並將調整過的房間價格經由中間收發器262轉傳至物業管理系統模組210、線上旅遊代理模組OTA1、OTA2、...、OTAM及/或預訂引擎BE1、BE2、...、BEN。同樣地,在主收發器212接收調整過的房間價格之後,主處理器214亦動態地將調整過的房間價格更新至房間庫存紀錄218。 In some examples, the multiple smart contracts stored in the room inventory record 268 include at least one dynamic pricing smart contract, which can determine at least one temporary and variable room price based on a temporary number of available rooms stored in the room inventory record 268. The intermediate processor 264 dynamically adjusts the temporary room price and transmits the adjusted room price to the property management system module 210, the online travel agent module OTA1, OTA2, ..., OTAM and/or the booking engine BE1, BE2, ..., BEN via the intermediate transceiver 262. Similarly, after the main transceiver 212 receives the adjusted room price, the main processor 214 also dynamically updates the adjusted room price to the room inventory record 218.
相較於傳統的房間庫存管理系統100,房間庫存管理系統200具有下列優點:(1)藉由確保所有的成功交易都依照發生時間順序被記錄起來,克服了超售事件帶來的問題;(2)在中間伺服系統250的輔助下,在確認成功交易及/或更新房間庫存紀錄上,減輕了物業管理系統模組的負擔、處理時間及頻寬;及(3)增進了房間庫存紀錄的正確性及可追朔性。 Compared to the conventional room inventory management system 100, the room inventory management system 200 has the following advantages: (1) by ensuring that all successful transactions are recorded in chronological order, the problem of overselling is overcome; (2) with the assistance of the intermediate server system 250, the burden, processing time and bandwidth of the property management system module in confirming successful transactions and/or updating room inventory records are reduced; and (3) the accuracy and traceability of room inventory records are improved.
在上述的實施例中,房間庫存管理系統200應用了一個中央模組(亦即交易代理伺服器260)來管理中間伺服系統250所包含節點伺服器NS1、NS2、...、NSX之間的主要任務。然而,本發明的另一實施例將管理上述任務的責任,更佳地平衡於節點伺服器NS1、NS2、...、NSX之間。更精確的說,任一節點伺服器NS1、NS2、...、NSX都可被暫時地指定為一個主控節點伺服器(Master Node Server),用來管理所有的節點伺服器NS1、NS2、...、NSX一段時間,且在該段時間結束後,可指定另一節點伺服器來作為新的主控節點伺服器,以繼續在另一段時間中管理所有的節點伺服器NS1、NS2、...、NSX。在某些例子中, 在節點伺服器NS1、NS2、...、NSX之間轉換主控節點伺服器之責任可以時而進行(from time to time)、週期性地進行、或隨機地進行。再者,由節點伺服器NS1、NS2、...、NSX中指定主控節點伺服器的方式可包含選舉、照順序輪流(Sequential)、或根據一預定規則。該預訂規則可包含動態地指定一個具有較小負擔或最小負擔的節點伺服器作為主控節點伺服器,其中該負擔的計算可根據包含即時的系統負荷、即時資料儲存量、及/或即時傳輸頻寬等資訊來決定。因此,任一節點伺服器NS1、NS2、...、NSX可避免承擔無法負荷的負擔,甚至避免引起故障。 In the above-mentioned embodiment, the room inventory management system 200 applies a central module (i.e., the transaction agent server 260) to manage the main tasks between the node servers NS1, NS2, ..., NSX included in the intermediate server system 250. However, another embodiment of the present invention will better balance the responsibility of managing the above-mentioned tasks between the node servers NS1, NS2, ..., NSX. More precisely, any node server NS1, NS2, ..., NSX can be temporarily designated as a master node server (Master Node Server) to manage all node servers NS1, NS2, ..., NSX for a period of time, and after the end of the period, another node server can be designated as a new master node server to continue to manage all node servers NS1, NS2, ..., NSX for another period of time. In some examples, the transfer of the master node server responsibility between node servers NS1, NS2, ..., NSX can be performed from time to time, periodically, or randomly. Furthermore, the method of designating the master node server among node servers NS1, NS2, ..., NSX can include selection, sequential rotation, or according to a predetermined rule. The predetermined rule can include dynamically designating a node server with a smaller burden or the smallest burden as the master node server, wherein the calculation of the burden can be determined based on information including real-time system load, real-time data storage, and/or real-time transmission bandwidth. Therefore, any node server NS1, NS2, ..., NSX can avoid bearing an unbearable load or even causing a failure.
第5圖根據本發明之另一實施例,圖示了房間庫存管理系統500。房間庫存管理系統500包含物業管理系統模組210及中間伺服系統520。物業管理系統模組210的性質與佈置與之前第2圖所述相同,故不再另行贅述。中間伺服系統520如先前第2圖所示,包含多個節點伺服器NS1、NS2、...、NSX。然而,房間庫存管理系統200與房間庫存管理系統500之間的主要差異在於,在共識(Consensus)演算法的輔助下,房間庫存管理系統500可選擇多個節點伺服器NS1、NS2、...、NSX中任一者作為主控節點伺服器,以取代交易代理伺服器260。主控節點伺服器以及其包含之各元件繼承了與交易代理伺服器260及其元件至少相同的結構與功能。因此,該主控節點伺服器與交易代理伺服器260相同的部分,以下不再另行贅述。 FIG. 5 illustrates a room inventory management system 500 according to another embodiment of the present invention. The room inventory management system 500 includes a property management system module 210 and an intermediate server system 520. The nature and layout of the property management system module 210 are the same as those described in FIG. 2 above, so they will not be described separately. As shown in FIG. 2 above, the intermediate server system 520 includes a plurality of node servers NS1, NS2, ..., NSX. However, the main difference between the room inventory management system 200 and the room inventory management system 500 is that, with the assistance of a consensus algorithm, the room inventory management system 500 can select any one of the plurality of node servers NS1, NS2, ..., NSX as a master node server to replace the transaction agent server 260. The master node server and the components it contains inherit at least the same structure and function as the transaction proxy server 260 and its components. Therefore, the parts of the master node server that are the same as the transaction proxy server 260 will not be described in detail below.
用來在多個節點伺服器NS1、NS2、...、NSX中選出主控節點伺服器的共識演算法,可包含依序決定、隨機決定、及/或經由引入所有節點伺服器的輪詢(Polling)共識來決定。被選出的主控節點伺服器會負擔管理工作一段時間,在該段時間結束後,會再另外舉行一次選舉來決定下一個主控節點伺服器,使得先前被選出的主控節點伺服器可被解除其責任,直到再次被選為主控節點伺服器為止。以下的敘述是基於節點伺服器NST暫時被選為主控節點伺服器並執行 與先前交易代理伺服器260相似的功能來描述。 The consensus algorithm used to select the master node server from multiple node servers NS1, NS2, ..., NSX may include sequential determination, random determination, and/or determination by introducing polling consensus of all node servers. The selected master node server will be responsible for management work for a period of time. After the end of the period, another election will be held to determine the next master node server, so that the previously selected master node server can be relieved of its responsibilities until it is selected as the master node server again. The following description is based on the node server NST being temporarily selected as the master node server and performing functions similar to those of the previous transaction agent server 260.
第6圖圖示主記憶體216包含之多個房間庫存紀錄與其他節點記憶體NM1、NM2、...、NMX(其包含主控節點伺服器MNS所包含的主控節點記憶體NMT在內)具有之多個房間庫存紀錄間的關係概略示意圖,亦即房間庫存紀錄218與多個房間庫存紀錄RI1、RI2、...、RIX(其包含主控節點記憶體NMT具有的房間庫存紀錄RIT)之間的關係示意圖。同樣地,多個房間庫存紀錄RI1、RI2、...、RIX是以節點記憶體NM1、NM2、...、NMX各自儲存的多個智能合約所實施。且節點處理器NP1、NP2、...、NPT、...、NPX會使用該些智能合約來存取及/或更新各自的房間庫存紀錄RI1、RI2、...、RI。X。在某些例子中,主控節點處理器NST首先會對應於成功交易的發生,更新暫態主控房間庫存紀錄RIT。再者,主控節點處理器NST將暫態主控房間庫存紀錄RIT的更新內容,透過主控節點收發器NTT及主收發器212,轉傳到物業管理系統模組210,使得主處理器214得以更新房間庫存紀錄218至實質同步於暫態主控房間庫存紀錄RIT之更新內容。主控節點處理器NPT亦對應於暫態主控房間庫存紀錄RIT之更新內容,產生一個保存了物業管理系統模組210之至少所有目前已成功交易的新區塊。需要說明的是,每一節點伺服器NS1、NS2、...、NSX各自的記憶體NM1、NM2、...、NMX中儲存的智能合約,皆近似於中間記憶體266所儲存的智能合約。因此,在某些例子中,主控節點處理器NPT可以載入主控節點記憶體NMT所儲存的至少一個智能合約,以執行完整的指令來產生新區塊,例如計算及更新變數。舉例來說,在發生Y次依時間順序發生的不同成功交易後,前一個主控節點處理器及/或暫態主控節點處理器NPT可以在時間點t1產生一區塊BL1、在時間點t2產生一區塊BL2、...、及在時間點tY產生一最新近區塊BLY,其中Y是一個正整數。時間點t1早於時間點t2、時間點t2早於時間點t(Y-1)、時間點t(Y-1)早於時間點tY。時間點tY代表最新近成功交易所發生的時間點。區塊BL1包含直到 時間點t1為止的所有成功交易。區塊BL2相較於區塊BL1,多包含了一個發生在時間點t2的成功交易,也就是說,區塊BL2包含了直到時間點t2為止的所有成功交易。相似地,區塊BLY包含了直到時間點tY為止的所有成功交易。 FIG. 6 is a schematic diagram showing the relationship between the multiple room inventory records included in the main memory 216 and the multiple room inventory records in other node memories NM1, NM2, ..., NMX (including the master node memory NMT included in the master node server MNS), that is, a schematic diagram showing the relationship between the room inventory record 218 and the multiple room inventory records RI1, RI2, ..., RIX (including the room inventory record RIT in the master node memory NMT). Similarly, the multiple room inventory records RI1, RI2, ..., RIX are implemented by multiple smart contracts stored in the node memories NM1, NM2, ..., NMX respectively. And the node processors NP1, NP2, ..., NPT, ..., NPX will use these smart contracts to access and/or update their respective room inventory records RI1, RI2, ..., RI. X. In some examples, the master node processor NST will first update the temporary master room inventory record RIT in response to the occurrence of a successful transaction. Furthermore, the master node processor NST will transfer the updated content of the temporary master room inventory record RIT to the property management system module 210 through the master node transceiver NTT and the main transceiver 212, so that the main processor 214 can update the room inventory record 218 to substantially synchronize with the updated content of the temporary master room inventory record RIT. The master node processor NPT also corresponds to the updated content of the temporary master room inventory record RIT, generating a new block that stores at least all currently successful transactions of the property management system module 210. It should be noted that the smart contracts stored in the respective memories NM1, NM2, ..., NMX of each node server NS1, NS2, ..., NSX are similar to the smart contracts stored in the intermediate memory 266. Therefore, in some examples, the master node processor NPT can load at least one smart contract stored in the master node memory NMT to execute complete instructions to generate a new block, such as calculating and updating variables. For example, after Y different successful transactions occurred in chronological order, the previous master node processor and/or transient master node processor NPT may generate a block BL1 at time point t1, a block BL2 at time point t2, ..., and a most recent block BLY at time point tY, where Y is a positive integer. Time point t1 is earlier than time point t2, time point t2 is earlier than time point t(Y-1), and time point t(Y-1) is earlier than time point tY. Time point tY represents the time point when the most recent successful transaction occurred. Block BL1 contains all successful transactions up to time point t1. Compared with block BL1, block BL2 contains one more successful transaction that occurred at time point t2, that is, block BL2 contains all successful transactions until time point t2. Similarly, block BLY contains all successful transactions until time point tY.
如先前所述,在區塊鏈技術中,每一節點伺服器NS1、NS2、...、NSX需要使各自持有的房間庫存紀錄RI1、RI2、...、RIX同步更新於當時之主控房間庫存紀錄RIT的內容。因此,在透過各節點收發器NT1、NT2、...、NTX(除了當時的主控節點收發器NTT外)接收到最新近產生區塊BLY之後,各節點處理器NP1、NP2、...、NPX(除了當時的主控節點處理器NPT以外)將最新近產生之區塊BLY整合至每一房間庫存紀錄RI1、RI2、...、RIX(除了當時的主控房間庫存紀錄RIT之外)。在某些例子中,節點處理器NP1、NP2、...、NPX需要至少一個智能合約的輔助來同步執行該最新近成功交易所涉入的指令,以完成每一房間庫存紀錄RI1、RI2、...、RIX的更新。該些更新可例如包含某些本地端變數的更新(例如房間可用性或各房間的價格)、或包含某些全域變數的更新(例如條件式的折扣或動態調整的房間價格)。 As mentioned above, in blockchain technology, each node server NS1, NS2, ..., NSX needs to synchronize the room inventory records RI1, RI2, ..., RIX held by each node with the contents of the master room inventory record RIT at that time. Therefore, after receiving the most recently generated block BLY through each node transceiver NT1, NT2, ..., NTX (except the master node transceiver NTT at that time), each node processor NP1, NP2, ..., NPX (except the master node processor NPT at that time) integrates the most recently generated block BLY into each room inventory record RI1, RI2, ..., RIX (except the master room inventory record RIT at that time). In some examples, node processors NP1, NP2, ..., NPX require the assistance of at least one smart contract to synchronously execute the instructions involved in the most recent successful transaction to complete the update of each room inventory record RI1, RI2, ..., RIX. These updates may, for example, include updates to certain local variables (such as room availability or room prices), or include updates to certain global variables (such as conditional discounts or dynamically adjusted room prices).
第7圖圖示了暫態主控節點處理器NPT如何產生一個新區塊的細節。暫態主控節點處理器NPT包含一個雜湊模組NPT_H、一時間戳記模組NPT_TS、以及一區塊產生模組NPT_B。如先前所述,暫態主控節點處理器NPT會對應於一成功交易來產生一個新區塊。在暫態主控節點處理器NPT確認該成功交易時,雜湊模組NPT_H為該新區塊產生一個實質獨特(unique)的雜湊值,且時間戳記模組NPT_TS為該新區塊產生一個實質獨特的時間戳記。舉例來說,雜湊模組NPT_H為了Y個區塊BL1、BL2、...、BLY產生Y個實質獨特的雜湊值HS1、HS2、...、HSY,且時間戳記模組NPT_TS為了Y個區塊BL1、BL2、...、BLY產生Y個實質獨特的時間戳記TS1、TS2、...、TSY。 FIG. 7 illustrates the details of how the transient master node processor NPT generates a new block. The transient master node processor NPT includes a hash module NPT_H, a timestamp module NPT_TS, and a block generation module NPT_B. As previously described, the transient master node processor NPT generates a new block corresponding to a successful transaction. When the transient master node processor NPT confirms the successful transaction, the hash module NPT_H generates a substantially unique hash value for the new block, and the timestamp module NPT_TS generates a substantially unique timestamp for the new block. For example, the hash module NPT_H generates Y substantially unique hash values HS1, HS2, ..., HSY for Y blocks BL1, BL2, ..., BLY, and the timestamp module NPT_TS generates Y substantially unique timestamps TS1, TS2, ..., TSY for Y blocks BL1, BL2, ..., BLY.
與先前的實施例相似,產生雜湊值的方法已被熟習區塊鏈技術領域 者所廣為周知,因此,產生雜湊值的方法此處不再贅述。再者,在某些例子中,所產生的時間戳記可對應暫態主控節點處理器NPT確認該成功交易的時間點或該房間預訂事件發起的時間點,其中該房間預訂事件可由物業管理系統模組210、線上旅遊代理模組OTA1、OTA2、...、OTAM、及/或預訂引擎BE1、BE2、...、BEN其中之一所發起。如此一來,每一區塊BL1、BL2、...、BLY應具有其實質獨特的雜湊值及時間戳記。且最新近產生區塊BLY在當時所有的區塊中具有一最新近時間戳記。 Similar to the previous embodiments, the method of generating hash values is well known to those skilled in the art of blockchain technology, and therefore, the method of generating hash values will not be described in detail here. Furthermore, in some examples, the generated timestamp may correspond to the time point when the transient master node processor NPT confirms the successful transaction or the time point when the room booking event is initiated, wherein the room booking event may be initiated by one of the property management system module 210, the online travel agent module OTA1, OTA2, ..., OTAM, and/or the booking engine BE1, BE2, ..., BEN. In this way, each block BL1, BL2, ..., BLY should have its substantially unique hash value and timestamp. And the most recently generated block BLY has the most recent timestamp among all the blocks at that time.
區塊產生模組NPT_B對應於該成功交易,會由雜湊模組NPT_H引入該實質獨特雜湊值及由時間戳記模組NPT_TS引入該實質獨特時間戳記,以產生一新區塊標頭。舉例來說,為了對應於一最新近成功交易的發生來產生將被產生之最新近區塊BLY,區塊產生模組NPT_B引入雜湊值HSY及時間戳記TSY產生一區塊標頭BHY。如此一來,區塊產生模組NPT_B各自產生區塊標頭BH1、BH2、...、或BHY。 The block generation module NPT_B generates a new block header by introducing the actual unique hash value from the hash module NPT_H and the actual unique timestamp from the timestamp module NPT_TS corresponding to the successful transaction. For example, in order to generate the latest block BLY to be generated corresponding to the occurrence of the latest successful transaction, the block generation module NPT_B introduces the hash value HSY and the timestamp TSY to generate a block header BHY. In this way, the block generation module NPT_B generates block headers BH1, BH2, ..., or BHY respectively.
再者,應對於該成功交易,區塊產生模組NPT_B產生一個新區塊,其中該新區塊包含對應之一區塊標頭、該成功交易的內容、至少一個智能合約、及其前一個產生的區塊之內容。舉例來說,應對於一最新近成功交易,區塊產生模組NPT_B產生區塊BLY,其包含區塊標頭BHY、該最新近成功交易的內容、由暫態主控節點記憶體NMT所載入之至少一個智能合約、及其前一個產生的區塊BL(Y-1)的內容(為了簡化圖示而未繪出)。如此一來,最新近產生區塊BLY會包含先前所產生之所有區塊BL1、BL2、...、BL(Y-1)的內容。再者,先前所產生之所有區塊BL1、BL2、...、BL(Y-1)所對應先前發生過之所有成功交易可藉由僅參照最新近產生區塊BLY的方式來進行稽核。 Furthermore, in response to the successful transaction, the block generation module NPT_B generates a new block, wherein the new block includes a corresponding block header, the content of the successful transaction, at least one smart contract, and the content of the previously generated block. For example, in response to a recent successful transaction, the block generation module NPT_B generates a block BLY, which includes a block header BHY, the content of the recent successful transaction, at least one smart contract loaded by the transient master node memory NMT, and the content of the previously generated block BL(Y-1) (not shown for the sake of simplifying the diagram). In this way, the recently generated block BLY will include the content of all previously generated blocks BL1, BL2, ..., BL(Y-1). Furthermore, all previously generated blocks BL1, BL2, ..., BL(Y-1) corresponding to all previously generated successful transactions can be audited by only referring to the most recently generated block BLY.
最後,區塊產生模組NPT_B會將該最新近產生區塊加入至由節點伺服器NS1、NS2、...、NSX所形成之該區塊鏈中,以更新該區塊鏈。舉例來說, 區塊產生模組NPT_B會將最新近產生區塊BLY加入至已包含區塊BL1、BL2、...、BL(Y-1)的區塊鏈,以更新該區塊鏈。 Finally, the block generation module NPT_B will add the most recently generated block to the blockchain formed by the node servers NS1, NS2, ..., NSX to update the blockchain. For example, the block generation module NPT_B will add the most recently generated block BLY to the blockchain that already contains blocks BL1, BL2, ..., BL(Y-1) to update the blockchain.
與房間庫存管理系統200類似,房間庫存管理系統500具有實質相同的變化實施例、性質、及優點,也就是如同先前房間庫存管理系統200被提及的敘述。另外,擔任主控節點伺服器的責任會以偶爾、隨機、週期性地、或根據一預定規則決定的方式來轉移於節點伺服器NS1、NS2、...、NSX之間,其中該預定規則用來平衡該主控節點伺服器的責任於節點伺服器NS1、NS2、...、NSX之間。如此一來,節點伺服器NS1、NS2、...、NSX可更佳地平衡各自的負擔、並避免不需要的故障事件。 Similar to the room inventory management system 200, the room inventory management system 500 has substantially the same variation embodiments, properties, and advantages as previously described for the room inventory management system 200. In addition, the responsibility of the master node server is transferred between the node servers NS1, NS2, ..., NSX occasionally, randomly, periodically, or according to a predetermined rule, wherein the predetermined rule is used to balance the responsibility of the master node server between the node servers NS1, NS2, ..., NSX. In this way, the node servers NS1, NS2, ..., NSX can better balance their respective burdens and avoid unnecessary failure events.
本發明的較佳實施例中,如圖8的流程圖所示,本發明基於區塊鏈的房間庫存管理系統200的管理方法包括以下步驟:步驟S1,在旅館房間庫存管理系統200的多個節點伺服器中的各節點伺服器中維護區塊鏈,區塊鏈儲存關於特定旅館房間物件的所有成功交易,其中,旅館房間庫存管理系統200具有多個節點伺服器且各節點伺服器都維護區塊鏈的副本。區塊鏈包括嘟個按照時間順序單獨地鏈接的區塊BLY,各個區塊都以加密方式引用其直接在前的區塊,因此在未更改所有後續區塊BLY的情況之下,任何區塊中的數據都無法更改,各區塊儲存關於特定旅館旅館房間物件的成功交易資料。 In a preferred embodiment of the present invention, as shown in the flow chart of Figure 8, the management method of the room inventory management system 200 based on the blockchain of the present invention includes the following steps: Step S1, maintaining a blockchain in each of the multiple node servers of the hotel room inventory management system 200, the blockchain storing all successful transactions regarding specific hotel room items, wherein the hotel room inventory management system 200 has multiple node servers and each node server maintains a copy of the blockchain. The blockchain consists of 10 blocks BLY that are individually linked in chronological order. Each block cryptographically references its immediate preceding block, so the data in any block cannot be changed without changing all subsequent blocks BLY. Each block stores data on successful transactions for a specific hotel room item.
在步驟S2中,通過計算機網路,通信耦合到旅館房間庫存管理系統200以接收到房間預訂事件,由多個節點伺服器中的主節點伺服器確定房間預訂事件是否可透過提交表示房間預訂事件的新交易至基礎智能合約,基礎智能合約儲存在區塊鏈中。透過計算機網路,房間預訂事件從旅館、訂房引擎、線上旅行社(OTA)、全球分銷系統和/或元搜尋引擎所接收。經由計算機網路,旅館房間庫存管理系統200的通訊至少部分地遵循遠端程序呼叫(remote procedure call,RPC)協定。交易代理伺服器260維護房間庫存記錄268,並且在步驟S2之前,還 檢查目前的房間庫存記錄268是否滿足房間預訂事件(房間庫存記錄268和目前房間庫存是基於前一筆房間預訂事件所記錄且可能不完全等同於區塊鏈中的實際房間庫存)。當房間庫存記錄268滿足房間預訂事件時,在步驟S2.1中,基礎智能合約接收房間預訂事件的新交易,並基於來自區塊鏈的特定旅館房間物件的實際數量餘額,執行程式化標準以確認提交的新交易是否在目前儲存在區塊鏈中的關於特定旅館房間物件的全部既存成功交易中有衝突。在較佳實施例中,基於編程標準,基礎智能合約會確認儲存在區塊鏈的最新區塊中的目前數量餘額、特定旅館房間物件的旅館地點、特定旅館房間物件的房間類型、及/或房間預訂事件中關於特定旅館房間物件的時間範圍,以確定提交的新交易是否引起任何衝突。 In step S2, a room reservation event is received by a master node server among a plurality of node servers by being communicatively coupled to the hotel room inventory management system 200 via a computer network, and a room reservation event is determined by submitting a new transaction representing the room reservation event to a basic smart contract, which is stored in a blockchain. The room reservation event is received from a hotel, a reservation engine, an online travel agency (OTA), a global distribution system, and/or a meta-search engine via a computer network. The communication of the hotel room inventory management system 200 via the computer network at least partially complies with a remote procedure call (RPC) protocol. The transaction agent server 260 maintains the room inventory record 268, and before step S2, it also checks whether the current room inventory record 268 satisfies the room reservation event (the room inventory record 268 and the current room inventory are recorded based on the previous room reservation event and may not be completely equivalent to the actual room inventory in the blockchain). When the room inventory record 268 satisfies the room reservation event, in step S2.1, the basic smart contract receives a new transaction of the room reservation event, and based on the actual quantity balance of the specific hotel room object from the blockchain, executes a formatted standard to confirm whether the submitted new transaction conflicts with all existing successful transactions for the specific hotel room object currently stored in the blockchain. In a preferred embodiment, based on programming standards, the underlying smart contract confirms the current quantity balance stored in the latest block of the blockchain, the hotel location of the specific hotel room item, the room type of the specific hotel room item, and/or the time range of the room reservation event with respect to the specific hotel room item to determine whether the submitted new transaction causes any conflict.
交易代理伺服器260可被認為是預言機(oracle)。當基於區塊鏈的房間庫存管理系統200建立在私有區塊鏈上時,預言機不是必要的。然而,若基於區塊鏈的房間庫存管理系統200是建立在公共區塊鏈上,例如以太坊,則交易代理伺服器260可能必須是基於去中心化共識演算法的預言機。 The transaction proxy server 260 can be considered as an oracle. When the blockchain-based room inventory management system 200 is built on a private blockchain, an oracle is not necessary. However, if the blockchain-based room inventory management system 200 is built on a public blockchain, such as Ethereum, the transaction proxy server 260 may have to be an oracle based on a decentralized consensus algorithm.
步驟S3中,基於基礎智能合約,確定代表房間預訂事件的新交易能夠成功時,由主節點伺服器創建要附加至區塊鏈的新區塊。只有當代表房間預訂事件的新交易可被基礎智能合約確任為成功時,才會創建新區塊。其中,新區塊儲存表示新交易成功的資料,且新區塊的創建會讓新區塊被添加到旅館房間庫存管理系統200的多個節點伺服器的各節點伺服器中的區塊鏈。若提交交易表示衝突,該交易將被視為失敗且立即丟棄。區塊鏈的區塊BLY可能包含有房間預訂請求、房間取消請求或房間結帳請求之一的成功交易,且其按時間順序與時間戳記鏈接,以在成功交易發出/接收時進行登記。所有成功的交易都記錄在區塊鏈中且不可更改。 In step S3, when it is determined based on the basic smart contract that the new transaction representing the room reservation event can be successful, the master node server creates a new block to be attached to the blockchain. A new block is created only when the new transaction representing the room reservation event can be confirmed as successful by the basic smart contract. The new block stores data indicating the success of the new transaction, and the creation of the new block causes the new block to be added to the blockchain in each of the multiple node servers of the hotel room inventory management system 200. If the submitted transaction indicates a conflict, the transaction will be considered failed and immediately abandoned. Block BLY of the blockchain may contain successful transactions of one of room booking request, room cancellation request or room checkout request, and it is linked in chronological order with a timestamp to register when the successful transaction was issued/received. All successful transactions are recorded in the blockchain and cannot be changed.
步驟S4中,基礎智能合約經配置為,響應於通過計算機網路或交易 代理伺服器260接收到關於特定旅館房間物件的目前數量餘額的查詢,聯繫在區塊鏈中最新區塊(或根據如Merkle樹的驗算法的對應區塊)表示特定旅館房間物件的實際數量餘額,給查詢的發送者。交易代理伺服器260將目前數量餘額推送或同步至PMS模組210以保持追踪使房間庫存記錄268與PMS模塊210的房間庫存記錄218相同,以讓OTA模塊M和預訂引擎BEN可以存取房間庫存的目前數量餘額。 In step S4, the basic smart contract is configured to, in response to a query about the current quantity balance of a specific hotel room item received through a computer network or transaction proxy server 260, contact the latest block in the blockchain (or the corresponding block according to a verification algorithm such as a Merkle tree) representing the actual quantity balance of the specific hotel room item to the sender of the query. The transaction proxy server 260 pushes or synchronizes the current quantity balance to the PMS module 210 to keep track of the room inventory record 268 and the room inventory record 218 of the PMS module 210, so that the OTA module M and the booking engine BEN can access the current quantity balance of the room inventory.
除了新交易之外,儲存在新區塊中的資料更表示關於特定旅館房間物件的所有先前成功交易。儲存在新區塊中的資料包括獨特表頭、表示新交易的日期、及表示新區塊直接前一區塊內容的加密數據。獨特區塊表頭包括新區塊的獨特哈希值,表示新交易發出或接收的時間的獨特時間戳記。特定旅館房間物件是選定日期或選定時段的選定旅館中的選定房型。房間預訂事件可以是房間預訂/訂房請求、房間結賬請求或房間取消請求。 In addition to the new transaction, the data stored in the new block further represents all previous successful transactions for a specific hotel room object. The data stored in the new block includes a unique header, a date representing the new transaction, and encrypted data representing the contents of the block immediately preceding the new block. The unique block header includes a unique hash value of the new block, a unique timestamp representing the time when the new transaction was issued or received. The specific hotel room object is a selected room type in a selected hotel on a selected date or a selected time period. A room booking event can be a room reservation/booking request, a room checkout request, or a room cancellation request.
在較佳實施例中,各旅館都有自己的區塊鏈,不同旅館分別有不同的區塊鏈。在另一較佳實施例中,所有不同旅館可以共享同一區塊鏈。來自不同旅館房間物件的另一成功交易可能與新交易基本上同時發生,且不同旅館房間物件的所有成功交易可能基本上與新交易同時發生在旅館房間庫存管理系統200內作為關於旅館房間物件的新交易,其被基礎智能合約所確認且被主節點伺服器封裝成為新區塊。 In a preferred embodiment, each hotel has its own blockchain, and different hotels have different blockchains. In another preferred embodiment, all different hotels can share the same blockchain. Another successful transaction from a different hotel room object may occur substantially at the same time as the new transaction, and all successful transactions of different hotel room objects may occur substantially at the same time as the new transaction in the hotel room inventory management system 200 as a new transaction about the hotel room object, which is confirmed by the basic smart contract and encapsulated into a new block by the master node server.
當基礎智能合約接收到房間預訂事件並且房間預訂事件是房間訂房請求時,基礎智能合約的程式化標准在執行房間訂房請求後驗證特定旅館房間物件的目前數量餘額是否為超過預定的最大閾值(以確保房間庫存足額)。基礎智能合約計算實際數量餘額,主節點伺服器將實際數量餘額、獨特時間戳記、獨特哈希值、及房間訂房請求封裝到一新區塊中。新區塊被附加到主節點伺服器的區塊鏈並廣播至其他節點伺服器。當新區塊成功被附加到區塊鏈時,交易代 理伺服器260自動從區塊鏈中的新區塊(透過基礎智能合約)更新其房間庫存記錄268,以使目前數量餘額接近於實際數量餘額,以便用戶可以預訂/訂房旅館房間。房間庫存記錄268(或目前數量餘額)可能與實際數量餘額不同,因為下一個新區塊會不時廣播,交易代理伺服器260通過基礎智能合約只能從新添加到區塊鏈且得到大多數節點伺服器確認的區塊中獲取資訊。在將新區塊添加到區塊鏈之後,房間庫存記錄268的特定旅館房間物件上的當前數量餘額減少了在新交易中所指定的數量。如果有幾個新區塊BL1Y、BL2Y...BLXY由主節點伺服器所產生,它們是來自不同OTA(或用戶)的相同或重疊的房間預訂事件,則幾個新區塊BL1Y、BL2Y...BLXY經廣播後且被大多數節點伺服器接受的一個,才是最新/最遲的區塊。只有當最新/最遲區塊被確認時,房間預訂請求才算完成,其他新區塊將被丟棄。類似地,房間取消請求和房間結帳請求通過相同的程序處理。 When the base smart contract receives a room booking event and the room booking event is a room booking request, the programmatic standards of the base smart contract verify whether the current quantity balance of a specific hotel room item exceeds the predetermined maximum threshold after executing the room booking request (to ensure that the room inventory is sufficient). The base smart contract calculates the actual quantity balance, and the master node server encapsulates the actual quantity balance, unique timestamp, unique hash value, and room booking request into a new block. The new block is attached to the blockchain of the master node server and broadcast to other node servers. When a new block is successfully appended to the blockchain, the transaction agent server 260 automatically updates its room inventory record 268 from the new block in the blockchain (through the underlying smart contract) to make the current quantity balance close to the actual quantity balance so that the user can reserve/book a hotel room. The room inventory record 268 (or the current quantity balance) may be different from the actual quantity balance because the next new block is broadcast from time to time, and the transaction agent server 260 can only obtain information from the block that is newly added to the blockchain and confirmed by the majority of node servers through the underlying smart contract. After the new block is added to the blockchain, the current quantity balance on the specific hotel room item in the room inventory record 268 is reduced by the quantity specified in the new transaction. If there are several new blocks BL1Y, BL2Y...BLXY generated by the master node server, which are the same or overlapping room reservation events from different OTAs (or users), then the one of the several new blocks BL1Y, BL2Y...BLXY that is broadcast and accepted by the majority of the node servers is the latest/latest block. Only when the latest/latest block is confirmed, the room reservation request is considered complete, and the other new blocks will be discarded. Similarly, room cancellation requests and room checkout requests are processed through the same procedure.
當房間預訂事件是房間取消請求或房間結賬請求時,程序化標準驗證在執行房間取消請求或房間結賬請求之後,特定旅館房間物件的當前數量餘額是否低於預定值最低閾值。將新區塊添加到區塊鏈之後,房間庫存記錄268的特定旅館房間物件的目前數量餘額增加了新交易中指定的數量。在一較佳實施例中,預定最小閾值為零。由於所有的成功交易利用獨特時間戳記而紀錄在區塊鏈上且僅當新區塊的交易為成功時新區塊才附加於區塊鏈上,紀錄在區塊鏈上的目前數量餘額是可信賴且可倚靠的。本發明的基於區塊鏈的房間庫存管理系統200將不會有超訂問題發生。 When the room reservation event is a room cancellation request or a room checkout request, the programmatic standard verifies whether the current quantity balance of the specific hotel room item is lower than the predetermined minimum threshold after executing the room cancellation request or the room checkout request. After the new block is added to the blockchain, the current quantity balance of the specific hotel room item in the room inventory record 268 is increased by the quantity specified in the new transaction. In a preferred embodiment, the predetermined minimum threshold is zero. Since all successful transactions are recorded on the blockchain with a unique timestamp and new blocks are appended to the blockchain only when the transactions of the new blocks are successful, the current quantity balance recorded on the blockchain is reliable and dependable. The blockchain-based room inventory management system 200 of the present invention will not have overbooking problems.
在一較佳實施例中,基於區塊鏈的房間庫存管理系統200的管理方法還包括審計程序,其是基於讀取區塊鏈中各個區塊的表頭來定位每個區塊的直接前一區塊;及確認區塊鏈中各區塊的時間戳記,以識別執行各區塊的成功交易,從而通過驗證所有區塊BLY中按時間順序列出的時間戳記以保證區塊鏈的完整性。 In a preferred embodiment, the management method of the blockchain-based room inventory management system 200 also includes an audit procedure, which is based on reading the header of each block in the blockchain to locate the immediate previous block of each block; and confirming the timestamp of each block in the blockchain to identify the successful transaction of executing each block, thereby ensuring the integrity of the blockchain by verifying the timestamps listed in chronological order in all blocks BLY.
基於預定的選擇規則,從旅館房間庫存管理系統200的多個節點伺服器伺服器中的特定節點伺服器組中,選出主節點伺服器,且主節點伺服器是房間庫存管理系統200的所有節點伺服器NS1-NSX中的唯一節點伺服器,可包裝所有記錄和內容以創建新塊BL1Y、BL2Y...BLXY。預定選擇規則包括基於下列一或多種規則以選擇主節點伺服器:順序、隨機次序、選舉、涉及輪詢多個節點伺服器的共識、系統當前工作量的比較、可用儲存大小、及/或現有主節點伺服器相對於新候選節點伺服器的傳輸帶寬。 Based on the predetermined selection rules, a master node server is selected from a specific node server group among the multiple node servers of the hotel room inventory management system 200, and the master node server is the only node server among all the node servers NS1-NSX of the room inventory management system 200, which can package all records and contents to create new blocks BL1Y, BL2Y...BLXY. The predetermined selection rules include selecting the master node server based on one or more of the following rules: sequence, random order, election, consensus involving polling multiple node servers, comparison of the current workload of the system, available storage size, and/or the transmission bandwidth of the existing master node server relative to the new candidate node server.
動態定價 Dynamic pricing
如圖9中所示的步驟S5示意,當具有房間預訂事件的區塊附加到區塊鏈時,根據成功交易目前數量餘額由基礎智能合約所計算且達到預定浮動閾值(可以是更低或高於閾值的數值),預定浮動閾值可以是房間庫存的未預訂房間數量與預訂房間數量的比率、目前日期接近預定日期、特定期間、或特定假期。基礎智能合約觸發浮動智能合約。浮動智能合約可以集成為基礎智能合約的一部分,也可以是模塊化為存儲在區塊鏈中不同區塊中的另一個智能合約。基礎智能合約中寫入的原始房間價格乘以預定浮動參數,包括價格折扣參數或漲價參數,其可預先寫入浮動智能合約中(例如,當房間庫存記錄268在一定時期內目前數量餘額的房間庫存/存量為五分之一時,浮動智能合約由基礎智能合約所觸發,然後這些剩餘房間的價格乘以折扣參數,例如50%的折扣,用以刺激銷售)。交易代理伺服器260可以在與房間預訂事件的交易導致目前數量餘額發生變化以觸發浮動智能合約時,透過基礎智能合約或浮動智能合約從區塊鏈的新區塊中獲取並顯示調整後的價格。預定浮動參數可以寫入浮動智能合約或寫入區塊鏈的另一個區塊。浮動智能合約可搜索/追踪寫入區塊鏈相應區塊中的新預定浮動數。 As shown in step S5 of FIG. 9 , when a block with a room reservation event is attached to the blockchain, the current amount balance is calculated by the basic smart contract based on the successful transaction and reaches a predetermined floating threshold (which may be a lower or higher value than the threshold), and the predetermined floating threshold may be the ratio of the number of unreserved rooms in the room inventory to the number of reserved rooms, the current date is close to the scheduled date, a specific period, or a specific holiday. The basic smart contract triggers the floating smart contract. The floating smart contract may be integrated as part of the basic smart contract, or it may be modularized into another smart contract stored in a different block in the blockchain. The original room price written in the basic smart contract is multiplied by a predetermined floating parameter, including a price discount parameter or a price increase parameter, which can be pre-written in the floating smart contract (for example, when the room inventory record 268 has a room inventory/stock of one-fifth of the current quantity balance in a certain period, the floating smart contract is triggered by the basic smart contract, and then the price of these remaining rooms is multiplied by a discount parameter, such as a 50% discount, to stimulate sales). The transaction agent server 260 can obtain and display the adjusted price from a new block of the blockchain through the basic smart contract or the floating smart contract when the transaction with the room reservation event causes the current quantity balance to change to trigger the floating smart contract. The scheduled float parameter can be written to the float smart contract or written to another block of the blockchain. The float smart contract can search/track the new scheduled float amount written to the corresponding block of the blockchain.
在執行若干具有房間預訂事件的成功交易後,例如房間取消請求或 房間結賬請求,基礎智能合約在處理新交易時計算實際增加的數量餘額以達到遠離預定浮動閾值的數量,基礎智能合約停止觸發浮動智能合約,而使用原始房間價格,原始房間價格可初始寫入基礎智能合約。當表示房間預訂事件的新交易的新區塊被附加到區塊鏈時,交易代理伺服器260透過基礎智能合約(及主節點伺服器)從新區塊獲取更新的房間價格。 After executing several successful transactions with room booking events, such as room cancellation requests or room settlement requests, the base smart contract calculates the actual increased amount balance when processing new transactions to reach the amount far away from the predetermined floating threshold, and the base smart contract stops triggering the floating smart contract and uses the original room price, which can be initially written to the base smart contract. When a new block representing a new transaction of a room booking event is appended to the blockchain, the transaction proxy server 260 obtains the updated room price from the new block through the base smart contract (and the master node server).
在步驟S6中,透過基礎智能合約可提交新交易作為附加到區塊鏈的新區塊以更新預定浮動閾值及/或預定浮動參數。新交易代表將要更新的新預定浮動規則及/或新預定浮動參數。當新預定浮動規則及/或新預定浮動參數的內容被確認時,基礎智能合約接受新的交易。主節點伺服器將新交易封裝為附加到區塊鏈的新區塊。當基礎智能合約計算出目前數量餘額並獲得剩餘房間數量時,基礎智能合約檢查新的預定浮動閾值,查看目前數量餘額是否在新的預定浮動閾值範圍內。在步驟S7中,當程式化標準經配置基於特定旅館房間物件的目前數量餘額以確定所提交的新交易時,基礎/浮動智能合約檢查預定浮動參數/閾值是否為新近更新的。在較佳實施例中,當浮動智能合約經觸發以確保基於動態定價的房間價格是新的且正確的,浮動智能合約檢查預定浮動參數是否為新的(通過Merkle樹搜尋相應的區塊)。在步驟S8中,浮動智能合約(或者,通過基礎智能合約)可響應對市場價格的詢問,不論市場價格是否針對特定旅館房間物件進行調整。如果市場價格被調整(步驟S8.1),浮動智能合約可以從區塊鏈的新區塊(或對應區塊)搜索表示調整後市場價格(使用Merkle樹演算法)的資料發送給查詢的發送者。當市場價格未調整時,基礎智能合約可以從基礎智能合約本身搜索資料發送給查詢的發送者(步驟S8.2)。本發明的智能合約的動態地價是紀錄在區塊鏈上且是公開可讀取的,對於顧客及旅遊代理商都是公正的。基於區塊鏈的特性,市場價格是自動調整不受到任何人暗中操縱,而能真實反映出基於市場機制的價格。 In step S6, a new transaction can be submitted as a new block attached to the blockchain to update the scheduled floating threshold and/or the scheduled floating parameter through the basic smart contract. The new transaction represents the new scheduled floating rule and/or the new scheduled floating parameter to be updated. When the content of the new scheduled floating rule and/or the new scheduled floating parameter is confirmed, the basic smart contract accepts the new transaction. The master node server encapsulates the new transaction as a new block attached to the blockchain. When the basic smart contract calculates the current quantity balance and obtains the remaining room quantity, the basic smart contract checks the new scheduled floating threshold to see if the current quantity balance is within the new scheduled floating threshold range. In step S7, when the programmed criteria are configured to determine the new transaction submitted based on the current quantity balance of a specific hotel room object, the base/floating smart contract checks whether the predetermined floating parameter/threshold is newly updated. In a preferred embodiment, when the floating smart contract is triggered to ensure that the room price based on dynamic pricing is new and correct, the floating smart contract checks whether the predetermined floating parameter is new (searching the corresponding block through the Merkle tree). In step S8, the floating smart contract (or, through the base smart contract) can respond to inquiries about market prices, regardless of whether the market price is adjusted for a specific hotel room object. If the market price is adjusted (step S8.1), the floating smart contract can search for data representing the adjusted market price (using the Merkle tree algorithm) from the new block (or corresponding block) of the blockchain and send it to the sender of the query. When the market price is not adjusted, the basic smart contract can search for data from the basic smart contract itself and send it to the sender of the query (step S8.2). The dynamic land price of the smart contract of the present invention is recorded on the blockchain and is publicly readable, which is fair to both customers and travel agents. Based on the characteristics of the blockchain, the market price is automatically adjusted and is not secretly manipulated by anyone, but can truly reflect the price based on the market mechanism.
在另一較佳實施例中,本發明基於區塊鏈的房間庫存管理系統200包括多個節點伺服器、基礎智能合約及主節點伺服器。多個節點伺服器中的各節點伺服器經配置為維護區塊鏈,該區塊鏈儲存對於特定旅館房間物件的所有成功交易。該區塊鏈包括以按照時間順序(Chronological)單獨地鏈接的數個區塊BLY,各區塊加密地參照其直接往前的區塊,使得在未改變所有隨後區塊BLY之下,無法改變任何區塊內的資料,各區塊儲存關於該特定旅館房間物件的成功交易。基礎智能合約存儲在區塊鏈中。基礎智能合約包括程式化標準,程式化標準經配置為基於該特定旅館房間物件的目前數量餘額,以確定所提交交易在當下儲存在該區塊鏈中的關於該特定旅館房間物件的所有既存成功交易中是否代表衝突。主節點伺服器被配置為:從計算機網路通信耦接至該旅館房間庫存管理系統接收房間預訂事件;通過提交代表該房間預訂事件的新交易至儲存在該區塊鏈中的基礎智能合約,以確定房間預訂事件是否可以成功;在基於該基礎智能合約確定表示該房間預訂事件的該新交易可成功時,創建將要附加到該區塊鏈的新區塊,新區塊儲存代表該新交易的資料為成功的。該新區塊的創建使得該新區塊添加到該旅館房間庫存管理系統200中該多個節點伺服器的每個節點伺服器中的該區塊鏈中。當該房間預訂事件導致該目前數量餘額滿足預定浮動閾值時,基礎智能合約可觸發浮動智能合約,該浮動智能合約根據預定浮動參數自動調整該特定旅館房間物件的市場價格,該預定浮動閾值包括經該智能合約計算該特定旅館房間物件的該當前數量餘額、接近特定日期的目前日期、或特定時間段:並透過計算機網路,將關於特定旅館房間物件的調整後市場價格通訊給特定旅館物件的代理商或管理者。 In another preferred embodiment, the room inventory management system 200 based on blockchain of the present invention includes multiple node servers, basic smart contracts and master node servers. Each node server in the multiple node servers is configured to maintain a blockchain that stores all successful transactions for a specific hotel room object. The blockchain includes a number of blocks BLY that are individually linked in chronological order, each block cryptographically references its immediate preceding block, so that the data in any block cannot be changed without changing all subsequent blocks BLY, and each block stores successful transactions for the specific hotel room object. The basic smart contract is stored in the blockchain. The basic smart contract includes a programmatic standard, which is configured to determine whether the submitted transaction represents a conflict among all existing successful transactions for the specific hotel room object currently stored in the blockchain based on the current quantity balance of the specific hotel room object. The master node server is configured to: receive a room reservation event from a computer network communication coupled to the hotel room inventory management system; submit a new transaction representing the room reservation event to the basic smart contract stored in the blockchain to determine whether the room reservation event can be successful; when it is determined based on the basic smart contract that the new transaction representing the room reservation event can be successful, create a new block to be attached to the blockchain, and the new block stores data representing that the new transaction is successful. The creation of the new block causes the new block to be added to the blockchain in each of the multiple node servers in the hotel room inventory management system 200. When the room reservation event causes the current quantity balance to meet the predetermined floating threshold, the basic smart contract can trigger the floating smart contract, which automatically adjusts the market price of the specific hotel room object according to the predetermined floating parameters. The predetermined floating threshold includes the current quantity balance of the specific hotel room object calculated by the smart contract, the current date close to a specific date, or a specific time period: and the adjusted market price of the specific hotel room object is communicated to the agent or manager of the specific hotel object through a computer network.
在另一個優選實施例中,本發明的非暫時性計算機可讀取媒體,其包括多個指令,當由計算機化旅館房間庫存管理系統200的一或多個處理器執行時使系統:在旅館房間庫存系統200中的多個節點的各節點中,維護區塊鏈,該 區塊鏈儲存對於特定旅館房間物件的所有成功交易。該區塊鏈包括以按照時間順序(Chronological)單獨地鏈接的數個區塊BLY,各區塊加密地參照其直接往前的區塊,使得在未改變所有隨後區塊BLY之下,無法改變任何區塊內的資料,各區塊儲存關於該特定旅館房間物件的成功交易。在從計算機網路通信耦接至該旅館房間庫存管理系統200接收房間預訂事件時,由該多個節點中的主節點,通過提交代表該房間預訂事件的新交易至儲存在該區塊鏈中的基礎智能合約,以確定房間預訂事件是否可以成功。該基礎智能合約包括程式化標準,其經配置為基於該特定旅館房間物件的目前數量餘額,以確定所提交交易在當下儲存在該區塊鏈中的關於該特定旅館房間物件的所有既存成功交易中是否代表衝突。在基於該基礎智能合約確定表示該房間預訂事件的該新交易可成功時,由該主節點創建將要附加到該區塊鏈的新區塊,其中新區塊儲存代表該新交易的資料為成功。該新區塊的創建使得該新區塊添加到該旅館房間庫存管理系統200中該多個節點的每個節點中的該區塊鏈。當該房間預訂事件導致該目前數量餘額滿足預定浮動閾值時,該基礎智能合約可觸發浮動智能合約,根據預定浮動參數自動調整該特定旅館房間物件的市場價格,該預定浮動閾值包括該目前數量餘額或預定時間段。 In another preferred embodiment, the non-transitory computer-readable medium of the present invention includes a plurality of instructions, which when executed by one or more processors of the computerized hotel room inventory management system 200 causes the system to: maintain a blockchain in each of a plurality of nodes in the hotel room inventory system 200, the blockchain storing all successful transactions for a particular hotel room item. The blockchain includes a plurality of blocks BLY individually linked in a chronological order, each block cryptographically references its immediately preceding block, so that the data in any block cannot be changed without changing all subsequent blocks BLY, and each block stores successful transactions for the particular hotel room item. When receiving a room reservation event from a computer network communicatively coupled to the hotel room inventory management system 200, a master node among the plurality of nodes submits a new transaction representing the room reservation event to a basic smart contract stored in the blockchain to determine whether the room reservation event can be successful. The basic smart contract includes a programmed standard that is configured to determine whether the submitted transaction represents a conflict among all existing successful transactions for the specific hotel room object currently stored in the blockchain based on the current quantity balance of the specific hotel room object. When the new transaction representing the room reservation event is determined to be successful based on the basic smart contract, a new block to be attached to the blockchain is created by the master node, wherein the new block stores data representing the new transaction as successful. The creation of the new block causes the new block to be added to the blockchain in each of the multiple nodes in the hotel room inventory management system 200. When the room reservation event causes the current quantity balance to meet the predetermined floating threshold, the basic smart contract can trigger the floating smart contract to automatically adjust the market price of the specific hotel room object according to the predetermined floating parameter, and the predetermined floating threshold includes the current quantity balance or the predetermined time period.
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。 The above is only the preferred embodiment of the present invention. All equivalent changes and modifications made according to the scope of the patent application of the present invention shall fall within the scope of the present invention.
S5、S6、S7、S8、S8.1、S8.2:步驟 S5, S6, S7, S8, S8.1, S8.2: Steps
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111112806A TWI851985B (en) | 2022-04-01 | 2022-04-01 | Blockchain-based hotel room inventory management system, method, and non-transitory computer readable media thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111112806A TWI851985B (en) | 2022-04-01 | 2022-04-01 | Blockchain-based hotel room inventory management system, method, and non-transitory computer readable media thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202341056A TW202341056A (en) | 2023-10-16 |
TWI851985B true TWI851985B (en) | 2024-08-11 |
Family
ID=89856053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111112806A TWI851985B (en) | 2022-04-01 | 2022-04-01 | Blockchain-based hotel room inventory management system, method, and non-transitory computer readable media thereof |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI851985B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW588852U (en) * | 2003-01-22 | 2004-05-21 | Hon Hai Prec Ind Co Ltd | Switch device |
TWM591231U (en) * | 2019-10-05 | 2020-02-21 | 國立臺中科技大學 | Intelligent Travel and Accommodation System |
CN111727428A (en) * | 2017-11-20 | 2020-09-29 | 欧簿客科技股份有限公司 | Blockchain-based room inventory management system |
CN112561105A (en) * | 2020-12-16 | 2021-03-26 | 深圳市大中华区块链科技有限公司 | Hotel reservation transfer transaction system and method based on block chain technology |
-
2022
- 2022-04-01 TW TW111112806A patent/TWI851985B/en active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW588852U (en) * | 2003-01-22 | 2004-05-21 | Hon Hai Prec Ind Co Ltd | Switch device |
CN111727428A (en) * | 2017-11-20 | 2020-09-29 | 欧簿客科技股份有限公司 | Blockchain-based room inventory management system |
TWM591231U (en) * | 2019-10-05 | 2020-02-21 | 國立臺中科技大學 | Intelligent Travel and Accommodation System |
CN112561105A (en) * | 2020-12-16 | 2021-03-26 | 深圳市大中华区块链科技有限公司 | Hotel reservation transfer transaction system and method based on block chain technology |
Also Published As
Publication number | Publication date |
---|---|
TW202341056A (en) | 2023-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI688907B (en) | Blockchain-based room inventory management system | |
US12288168B2 (en) | Blockchain-based room inventory management system and method | |
CA3041188C (en) | Blockchain smart contract updates using decentralized decision | |
CN112767158B (en) | Transaction execution method and device based on blockchain, and electronic device | |
US10679152B2 (en) | Method and system for travel itinerary bidding via blockchain | |
US20190362287A1 (en) | Real time updates and predictive functionality in block chain | |
CN100558038C (en) | Service logger and related system and method | |
US20050257197A1 (en) | Role-based object models | |
US20080262878A1 (en) | Systems, methods, and computer program products for generating and updating a cache of price and availability information for travel packages and components | |
TW202001608A (en) | Intelligent contract invocation method and device based on block chain, and electronic device | |
WO2017197000A1 (en) | Systems and methods for achieving reduced latency | |
US20050283410A1 (en) | Automated configuration catalog | |
US9697042B2 (en) | Extensibility of business process and application logic | |
US20080104008A1 (en) | Common data broker method, system, and program product | |
US12099520B2 (en) | Minimizing read and update conflict errors in blockchains | |
US9547878B1 (en) | Central reservation system availability engine | |
KR101690288B1 (en) | Method and system of storing and retrieving data | |
CN108573024A (en) | Coordinated Interrupt Handling | |
CN117391338A (en) | Resource allocation method, device and equipment | |
JP7368531B2 (en) | Room inventory management system based on blockchain | |
TWI851985B (en) | Blockchain-based hotel room inventory management system, method, and non-transitory computer readable media thereof | |
CN115686869B (en) | Resource processing method, system, electronic device and storage medium | |
US20120179583A1 (en) | Electronic Commerce Platform with Staging to Production and Bundles | |
CN110930206A (en) | Method, apparatus and storage medium for matching invoices | |
CN114077598B (en) | Data processing method and related equipment |