Współbieżność a proces biznesowy

Proces rezerwacji pokoju realizowany jest wielokrotnie w danym przedziale czasu i dla tego samego hotelu. Wielu użytkowników w danym momencie przegląda oferty oraz rozpoczyna proces rezerwacji. Jedni przeprowadzają go do końca a inni rezygnuja w trakcie, z różnych wzlędów – komunikatu systemu, zmiany planów lub innych powodów. Może się zdarzyć, że dwóch użytkowników chce zarezerwować pokój określając identyczne parametry graniczne. Uproszczony proces jest zapreznetowany na poniższym diagramie.

W opisanej sytuacji, tylko jeden z użytkowników powinien otrzymać potwierdzenie rezerwacji, więc powinien być w systemie obsługującym rezerwacje stworzony mechanizm, który to zapewni. Fizycznie każda rezerwacja trafia do określonej bazy rezerwacji i patrząc z poziomu tego poziomu możemy mówić o różnych mechanizmach obsługi współbieżności rezerwacji. Istotne jest to, że aplikacja komunikująca sie z użytkownikiem, musi umieć zinterpretować komunikat przesłany przez aplikację obsługującą bazę rezerwacji (danych).

wspolbieznosc420px

Można wyobrazić sobie przykładowe warianty postępowania w ramach systemu obsługi rezerwacji, oznaczonym na powyższym diagramie:

  • wszystkie rezerwacje (dla bazy danych transakcje) przychodzące od użytkowników są umieszczane na kolejce oczekujących do obsłużenia, która jest, co określony czas, sprawdzana, pod kątem istnienia dwóch identycznych rezerwacji. Jeżeli takie są, obydwie odrzuca z odpowiednim komunikatem lub realizuje losowo wybraną.
  • wszystkie rezerwacje (czyli transackje) zapisuje w taki sposób jak przychodzą, a w zależności od ustawień bazy danych i obsługi zakleszczeń, któraś z rezerwacji może zostać odrzucona lub nadpisana. Z punktu widzenia aplikacji obsługującej może ona sprawdzać, czy rezerwacja nastąpiła (powiązanie pokoju, rezerwacji i klienta).

Każde rozwiązanie można sprowadzić z perspektywy użytkownika do jednego z dwóch komunikatów: “zapisana” lub “odrzucona”. Dla procesu biznesowego obsługa współbieżności oznacza wystąpienie wyjątków lub dedykowanych komunikatów dla użytkownika. Proces biznesowy może obsługiwać różne sytuacji a sama aplikacja może krokowo sprawdzać w tle, czy pokoje o definiowanej przez użytkownika konfiguracji są dostępne. Powyższe zachowania aplikacji można bardzo łatwo zaobserwować korzystając z mechanizmów/procesów udostępnianych i wykorzystywanych przez szersze grono użytkowników.

Reklama

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s