h1

Status – informacja dla klienta czy dostawcy?

Styczeń 22, 2011

Zanim odpowiem na pytanie postanowione w komentarzu do poprzedniego wpisu, chciałbym przedstawić jeszcze jeden przykład. Przykład będzie dotyczyć statusów zamówienia w systemie składania zamówień przez klienta. Informacja o statusie może być przydatna zarówno dla klienta, który chce być informowany na jakim etapie jest zamówienie, jak i dla dostawcy, który może na tej podstawie tworzyć raporty. Można także pójść dalej i przechowywać dwa rodzaje statusów – zewnętrzne (biznesowe) i wewnętrzne (systemowe). Obydwa statusy mogą wynikać z wymagań.

Zastanówmy się w takim razie w jakich statusach może być zamówienie w analizowanym systemie składania zamówień:

  • zainicjowane/utworzone (z pierwszym dodanym produktem, klient może dodać kolejne produkty lub zaprzestać na jednym);
  • złożone (klient wysłał zamówienie do realizacji);
  • oczekujące na realizację (klient zrealizował płatność na złożone zamówienie lub potwierdził złożenie zamówienia);
  • w trakcie realizacji/realizowane (gdy realizacja zamówienia została rozpoczęta i jest w trakcie, w systemie obsługi opartym o kolejkowanie, można powiedzieć, że zamówienie zostało podjęte);
  • wykonane (przedmiot zamówienia został przekazany do klienta);
  • anulowane (klient wycofał zamówienie z różnych powodów już po złożeniu zamówienia);
  • wstrzymane (realizacja zamówienia została zatrzymana z różnych przyczyn);
  • usunięte (klient usunął zamówienie przed jego złożeniem);

Poniższy diagram (stanów) w UML prezentuje przejścia między poszczególnymi statusami (stanami Zamówienia).

2 uwag

  1. [...] Wróćmy jednak do tytułu – „Zapomnij” lub „Poczekaj”. Tytuł sygnalizuje dwa wzorce postępowania możliwe do wykorzystania w ramach procesów i realizowanych czynności w ramach procesu. Zapomnij wskazuje na wzorzec Fire and Forget (Strzel/Uruchom i Zapomnij), który oznacza, że proces inicjujący działanie lub inny proces nie czeka na jego zakończenie, wynik działania. Z kolei Poczekaj wskazuje na inny wzorze – Request-Response (Zażądaj Odpowiedzi), który polega na oczekiwaniu na odpowiedź z wykonania procesu, czynności, czy usługi. Obydwa wzorce są wykorzystywane w systemach informatycznych. Pierwszy z nich, jest specyficzny dla długich procesów, związanych z przetwarzaniem danych, z czasami nieokreślonym czasem trwania i niemożliwym wręcz do zdefiniowania tzw. timeoutem. Na powyższym diagramie komunikat „Uruchom proces ETL” jest odpalany bez oczekiwania na odpowiedź przez Harmonogram. Drugi ze wzorców został natomiast zasygnalizowany poprzez komunikaty „Q” i „A” przy poszczególnych krokach procesu Extract. Jest on specyficzny dla czynności, dla których musi wrócić odpowiedź do inicjatora – odpytanie o dostępność („DB”), odpytanie o wielkość („WD”) oraz odpytanie o dane („DZ”). Z czynnościami opartymi o wzorzec Request-Response jest silnie związania obsługa błędów oraz statusów. [...]


  2. [...] przekazywana i analizowana, jest wejściem do procesu i z punktu widzenia poszczególnych jej „uczestników posiada pewien status„. Zastanówmy się jak mógłby wyglądać proces raportowania takiej [...]



Dodaj komentarz

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

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Zmień )

Twitter picture

You are commenting using your Twitter account. Log Out / Zmień )

Facebook photo

You are commenting using your Facebook account. Log Out / Zmień )

Connecting to %s

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.