فراهتل

نرم‌افزار هتل هنگام قطع اینترنت چه باید بکند؟

پیشخوان هتل در شب بارانی زیر نور یک چراغ رومیزی

نرم‌افزار هتل باید هنگام قطع اینترنت بتواند پذیرش را سرپا نگه دارد، عملیات را محلی ذخیره کند و بعد از وصل شدن، بدون ثبت تکراری آن‌ها را به مرکز بفرستد. هر چیز کمتر از این یعنی برگشتن به کاغذ، آن هم در بدترین زمان.

ساعت 10 شب است، سه مهمان جلوی پیشخوان ایستاده‌اند و اینترنت قطع شده. اگر سامانه فقط تحت وب باشد، کارمند پذیرش نه اتاق خالی را می‌بیند و نه می‌تواند ورود را ثبت کند. به کاغذ برمی‌گردد و فردا کسی باید همه را دوباره تایپ کند؛ با احتمال خطا، جا افتادن هزینه و اختلاف در صندوق.

چرا برای هتل این موضوع جدی است؟

یک فروشگاه می‌تواند چند دقیقه صبر کند. هتل نمی‌تواند: مهمان خسته است، کلید می‌خواهد و باید اتاقش مشخص شود. برای زنجیره‌ای که شعبه‌هایش در شهرهای مختلف‌اند موضوع سخت‌تر است؛ کیفیت اینترنت هر شعبه با دیگری فرق دارد و نباید کار یک شعبه به خط شعبه‌ی دیگر بند باشد.

چهار چیزی که یک حالت آفلاین واقعی لازم دارد

1. داده‌ی کاری باید روی خود شعبه باشد

نگه‌داشتن چند صفحه در حافظه‌ی مرورگر کافی نیست. رک، رزروها و صورت‌حساب‌های جاری باید روی یک پایگاه داده‌ی محلی در شعبه باشند، تا بعد از خاموش و روشن شدن رایانه هم باقی بمانند.

2. هر عملیات اول محلی نوشته شود

درست‌تر آن است که سامانه همیشه، حتی وقتی اینترنت وصل است، عملیات را اول محلی بنویسد و بعد بفرستد. این طور قطع اینترنت یک وضعیت استثنایی نیست و مسیر کد عوض نمی‌شود.

3. ارسال دوباره نباید چیزی را دو بار ثبت کند

وقتی ارتباط ناپایدار است، گاهی عملیات به سرور می‌رسد ولی پاسخ برنمی‌گردد و سامانه دوباره می‌فرستد. اگر هر عملیات شناسه‌ی یکتا نداشته باشد، نتیجه‌اش دو هزینه‌ی یکسان روی صورت‌حساب است. با شناسه‌ی یکتا، تکرار اثری ندارد.

4. برخورد باید دیده شود، نه پنهان

فرض کنید هنگام قطعی، رزرو مرکزی اتاقی را فروخته و پذیرش شعبه همان اتاق را به مهمان حاضر داده است. سامانه نباید بی‌صدا یکی را پاک کند.

قاعده‌ی درست برخورد چیست؟

یک اصل ساده کار را روشن می‌کند: چیزی که در شعبه واقعاً رخ داده رد نمی‌شود. مهمانی که در اتاق است یک واقعیت است و رزروی که هنوز نیامده یک برنامه. پس:

  • مهمان حاضر بر رزرو نیامده مقدم است و رزرو کنار می‌رود و نیازمند اتاق می‌شود.
  • اگر هر دو طرف ساکن باشند، یکی از اقامت‌ها به‌عنوان نیازمند اتاق علامت می‌خورد.
  • هر برخورد ثبت می‌ماند تا یک انسان تصمیم بگیرد.

بستن شب هنگام قطعی

اگر قطعی طولانی باشد، بستن شب هم باید ممکن باشد؛ وگرنه تاریخ کاری عقب می‌ماند. راه درست این است که بستن شب هم در صف برود و سرور بعد از وصل شدن، روزهای بسته‌نشده را به ترتیب جلو ببرد. سطرهایی که دیر رسیده‌اند هم نباید از حسابداری جا بمانند.

و اگر هیچ راهی نبود؟

برای وقتی که کار روی ترمینال هم ممکن نیست، یک نسخه‌ی اضطراری لازم است: تصویری فقط‌خواندنی از وضعیت هتل که بشود چاپش کرد. مدیر با آن می‌داند امشب چه کسی کجاست.

برای قطعی‌های طولانی از قبل تصمیم بگیرید

بخشی از آمادگی، نرم‌افزاری نیست. از پیش تعیین کنید هنگام قطعی چه کسی به مرکز خبر می‌دهد، رزروهای تلفنی چطور ثبت می‌شوند و کارتخوان اگر به شبکه‌ی همان خط وابسته باشد، چه می‌شود. یک بار در سال این سناریو را با تیم تمرین کنید. قطعی واقعی همیشه در شلوغ‌ترین شب پیش می‌آید و آن شب وقت یاد گرفتن نیست.

رایانه‌ی پذیرش هم باید جدی گرفته شود: برق پایدار یا منبع برق اضطراری، نسخه‌ی پشتیبان از داده‌ی محلی و یک رایانه‌ی جایگزین که بشود سریع راهش انداخت. نرم‌افزار آفلاین اگر روی رایانه‌ای باشد که خودش خاموش می‌شود، کمکی نمی‌کند.

مرز میان شعبه و مرکز

در زنجیره، پرسش دیگری هم هست: وقتی شعبه قطع است، رزرو مرکزی چه ببیند؟ مرکز موجودی آن شعبه را تا لحظه‌ی قطع می‌داند و بعد از آن حدس می‌زند. بهتر است تیم رزرو مرکزی بداند کدام شعبه ارتباطش قطع است و برای آن شعبه با احتیاط بیشتری بفروشد. هر برخورد هم که پیش آمد باید ثبت شود تا بعداً بشود الگوی آن را دید و شعبه‌هایی را که بیشتر قطع می‌شوند شناخت.

چطور این را پیش از خرید آزمایش کنیم؟

  1. در دمو از فروشنده بخواهید کابل شبکه را بکشد و یک ورود ثبت کند.
  2. رایانه را خاموش و روشن کنید و ببینید داده مانده است یا نه.
  3. بعد از وصل کردن، صف را ببینید و بررسی کنید چیزی دو بار ثبت نشده باشد.
  4. یک برخورد عمدی بسازید و ببینید سامانه با آن چه می‌کند.

فراهتل این کار را چطور انجام می‌دهد؟

در فراهتل، فرادسک ترمینال ویندوزی شعبه است. هر عملیات را اول روی پایگاه داده‌ی محلی می‌نویسد، با شناسه‌ی یکتا در صف می‌گذارد و بعد از وصل شدن، خودکار به رأس هلدینگ می‌فرستد. برخوردها برای تصمیم انسان نشان داده می‌شوند و پنل وب هم نسخه‌ی اضطراری فقط‌خواندنی و قابل چاپ دارد. همین چهار آزمایش بالا را در دمو از ما بخواهید.

پرسش‌های پرتکرار

اگر اینترنت هتل قطع شود نرم‌افزار کار می‌کند؟

نرم‌افزار تحت وب تنها معمولاً نه. برای ادامه‌ی کار باید ترمینالی با داده‌ی محلی در شعبه باشد، مثل فرادسک در فراهتل.

اطلاعات زمان قطعی از بین می‌رود؟

در سامانه‌ای با ذخیره‌ی محلی نه. عملیات روی شعبه می‌ماند و بعد از وصل شدن فرستاده می‌شود.

ارسال دوباره باعث ثبت تکراری نمی‌شود؟

اگر هر عملیات شناسه‌ی یکتا داشته باشد، تکرار آن اثری ندارد.

اگر یک اتاق هنگام قطعی دو بار فروخته شود چه می‌شود؟

برخورد ثبت می‌شود. مهمان حاضر بر رزرو نیامده مقدم است و تصمیم نهایی با یک انسان است.