Notacja uniwersalna dla procesu

Wiele symboli, grafik, mechanizmów, które nas otacza każdego dnia jest zrozumiała niezależnie od posiadanego wykształcenia, narodowości czy wcześniejszych doświadczeń. Gdy widzimy “+” w wyrażeniu, to wiemy, że coś dodajemy do czegoś. Gdy widzimy czerwone światło na ulicy, to oznacza brak możliwości ruchu. Gdy widzimy pięciolinię to myślimy o muzyce. Podobnie jest z wieloma innymi symbolami. Symbole są mniej lub bardziej upowszechnione. Korzystanie z nich ułatwia komunikację, wymianę pomysłów oraz idei między różnymi odbiorcami. Opisane przykłady wskazują na stosowanie tzw. notacji uniwersalnej, z ang. universal notation.

upn450px

W przypadku procesów biznesowych, także istnieje taka notacja, która pozwala na zaprezentowanie przebiegu procesu w sposób zrozumiały dla większości odbiorców. Jest to tzw. Universal Process Notation, po przetłumaczeniu Uniweralna Notacja dla Procesów. W tej notacji, jak widać na powyższym diagramie są stosowane obiekty (ramki), zawierające informację o nazwie czynności oraz jej wykonawcy oraz połączenia opisujące wejścia i wyjścia poszczególnych czynności. W odróżnieniu od notacji BPMN, którą się często posługuję w ramach diagramów na blogu, zapis jest zdecydowanie uproszczony.

Na powyższym diagramie zapisałem przykładowy proces dot. kolejkowania, gdzie występowały dwie różne role – użytkownik oraz system. Produkty poszczególnych kroków były różne i można je jednoznacznie określić: Otrzymane żadanie klienta, Wypełniony formularz, Zapisane zgłoszenie, Parametry listy ustalone, Sprawa dodana do kolejki. Strzałki informują o kolejności kroków oraz kierunku przekazywania wejść. Dodatkowo mamy ponumerowane kroki, aby łatwiej było się do nich odnosić. Pozwalają też zidentyfikować pierwszy krok (proste zastosowanie uniwersalnej notacji związanej z liczbami).

Reklama

Proces logowania jawny czy w tle?

Czy musisz logować się do każdej aplikacji, z której korzystasz? Ile razy dziennie musisz wpisać swój login/hasło? Ile razy się wylogowujesz? Czy zapamiętujesz swoje dane logowania w przeglądarce? Czy często zmieniasz swoje hasło? Czy masz wiele loginów? Pytań takich można zadać jeszcze wiele. Często jako użytkownicy nie zastanawiamy się wybierając określone aplikacje, co się zadziało, czy aplikacja nie powinna nas spytać hasło. Przyznaję, że jest to wygodne, gdy można się logować raz. Jednakże o co chodzi?

Mamy 2 możliwości podczas korzystania aplikacji – pierwsza logujemy się z każdym razem. Druga możliwość to logujemy się raz i z części aplikacji korzystamy bez dodatkowego logowania. Te dwie możliwości przedstawia poniższy diagram – pierwsza to pełny proces, a druga pomija krok zaznaczony na czerwono.

logowanie450px

Pierwsza część opiera się na tzw. jawnym logowaniu, czyli każdorazowym podaniu swoich danych identyfikacyjnych (ang. credentials). Pozwala to na: po pierwsze rozpoznanie użytkownika (czyli autentykację) a następnie udostępnienie funkcjonalności zgodnie z uprawnieniami (czyli autoryzacja). Logujemy się do poczty elektronicznej i widzimy dane swojej skrzynki pocztowej. Logujemy się do sieci społecznościowej i widzimy swój profil. Podobnie za bankowością elektroniczną czy sklepem internetowym.

Druga część opiera się na tzw. ukrytym logowaniu, czyli podajemy swoje dane identyfikacyjne raz (przeważnie przy logowaniu do stacji roboczej), a wszystkie pozostałe aplikacje, jednego dostawcy lub odpowiednio skonfigurowane, otrzymują te dane identyfikacyjne i na tej podstawie nas rozpoznają. Często takie zachowanie można zaobserwować podczas wykorzystania aplikacji w pracy.

Podstawą takiego funkcjonowania jest tzw. SSO, po angielsku single sign – on, czyli dosłownie jedno logowanie. Dane identyfikacyjne są przekazywane a autentykacja i autoryzacja jest wykonywana całkowicie w tle. Efekt działania SSO można sobie łatwo wyobrazić korzystając z telefonu komórkowego z różnymi aplikacjami opartymi o jedno konto lub też popularnego konta pocztowego i powiązanym z nim serwisów. Podstawą działania SSO jest istnienie odpowiednich modułów lub centralnych rejestrów z danymi identyfikacyjnymi użytkowników, które uczestniczą w przeprowadzaniu tego procesu.

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.

Czas realizacji a “szybkość” procesu

Składając różne elementy procesu, o których pisałem na blogu, można utworzyć uogólniony proces, który:

  • zmienia wejścia procesu w wyjście procesu, na co zwracana jest uwaga w modelu SIPOC.
  • ma wejścia i wyjścia procesu, uzależnione od rodzaju procesu.
  • posiada kroki dodające wartość dla odbiorcy procesu (kroki oznaczone na diagramie jako VAP) lub tylko dla innych interesariuszy zainteresowanych (kroki na diagramie oznaczone jako VAI) procesem.
  • obsługuje wyjątki lub alternatywne ścieżki przebiegu procesu.

Każdy realizowany proces można opisać za pomocą jego czasu realizacji, czyli Delivery Cycle Time. Wartość ta informuje jak długo trwa proces od jego zainicjowania przez Klienta, na przykład poprzez złożenie zamówienia, dostarczenie dokumentu, złożenie zapytania, po zakończenie procesu, rozumiane jako dostarczenie produktu, na przykład przedmiotu zamówienia, akceptacji dokumentu, odpowiedzi na zapytanie.

szybkosc450px

Wartość ta interesuje nie tylko odbiorcę procesu, ale także księgowość, inwestorów oraz inne grupy interesariuszy. Biorąc pod uwagę powtarzalność procesu, najlepszą sytuacją, gdy w danym czasie, na przykład miesiąca, można zrealizować kilka, kilkanaście lub więcej przebiegów procesu.

Na bazie tych informacji można byłoby spróbować obliczyć “szybkość” procesu. Dostarczając 1 produkt w czasie T, możemy potencjalnie policzyć liczbę dostarczanych produktów, obsługiwanych zamówień w czasie jednostki czasu, np. miesiąca, czyli [Miesiąc/T] sztuk/per miesiąc.

Sformułowanie “szybkość” używam w cudzysłowach, aby zaznaczyć potoczne rozumienie tego słowa, przez porównanie na przykład do szybkości drukowania (10 kartek/minut). Obok tego pojęcia funkcjonuje także pojęcie “prędkości” (wartości z wektorem). W przypadku procesów pojęcia te też podlegają próbie rozróżnienia, wychodząc od pojęć z terminologii angielskiej.