Middleware — po co warstwa pośrednia między systemami

Kamienny most łukowy nad rzeką

Dwa systemy da się połączyć bezpośrednio. Przy pięciu systemach połączeń bezpośrednich jest już dziesięć, a każde trzeba osobno utrzymywać.

Skąd bierze się problem

Sklep, magazyn, platforma sprzedażowa, przewoźnik i księgowość mówią różnymi językami. Połączenie każdego z każdym oznacza liczbę powiązań rosnącą szybciej niż liczba systemów.

Problem nie jest wyłącznie arytmetyczny. Każde połączenie ma własne poświadczenia, własny sposób obsługi błędów i własnego autora. Po roku nikt nie wie, które z nich przenosi stany magazynowe, a które tylko statusy. Dodanie kolejnego systemu wymaga wtedy przejrzenia wszystkiego, co już działa.

Co daje warstwa pośrednia

Każdy system łączy się z jednym miejscem, a nie z pozostałymi. Zmiana po stronie przewoźnika wymaga poprawki w jednym punkcie, a nie w każdej integracji z osobna.

Druga korzyść to jedno miejsce, w którym widać, co się dzieje. Zamiast pytać kilku dostawców oprogramowania, gdzie utknęło zamówienie, sprawdza się przebieg w jednym rejestrze.

Co powinna zawierać

  • przekształcanie danych do wspólnego formatu,
  • kolejkowanie i ponawianie nieudanych operacji,
  • zapis przebiegu wymiany,
  • obsługę błędów partnera,
  • reguły zależne od kanału.

Każdy z tych elementów ma własną logikę. Tłumaczenie pól i słowników odpowiada za zgodność formatów, a kolejka z ponawianiem za to, żeby chwilowa niedostępność partnera nie kończyła się utratą zamówienia.

Ślad po każdej operacji

Zapis przebiegu wymiany to element, który najczęściej pomija się przy budowie i którego najbardziej brakuje później. Powinien odpowiadać na trzy pytania: co wysłano, co odpowiedział partner i kiedy. Bez tego rozmowa o reklamacji sprowadza się do słowa przeciw słowu, a rozbieżność w stanach trzeba odtwarzać z pamięci. Zapis warto ograniczyć czasowo i pozbawić danych, których nie musimy przechowywać — dziennik integracji potrafi urosnąć szybciej niż same dane.

Czego nie powinna zawierać

Wiedzy o tym, jak firma liczy marżę ani zasad rozliczania rabatów. Logika biznesowa umieszczona w warstwie pośredniej sprawia, że nie da się jej wymienić bez odtwarzania całej wiedzy o firmie.

Granica bywa nieostra. Reguła mówiąca, że przesyłki pobraniowe z danego kanału idą innym przewoźnikiem, jest regułą operacyjną i może tam zostać. Reguła mówiąca, którym klientom przysługuje inny cennik, należy do systemu handlowego.

Co jest potrzebne po stronie firmy

Przede wszystkim uporządkowane kartoteki i wspólny sposób identyfikowania towaru w każdym systemie. Dalej: dostępy do interfejsów wszystkich stron, zgoda na testy poza produkcją oraz osoba, która rozstrzyga wątpliwości merytoryczne. Warstwa pośrednia nie naprawia bałaganu w danych — przenosi go tylko szybciej.

Kiedy nie jest potrzebna

Przy dwóch systemach i jednej wymianie danych warstwa pośrednia jest kosztem bez zwrotu. Sens pojawia się przy trzecim systemie albo przy drugim kanale sprzedaży.

Nie warto jej też budować, gdy istnieje gotowe narzędzie spinające używane kanały. Wtedy pracą do wykonania jest konfiguracja i sprawdzanie, czy wymiana rzeczywiście przechodzi, a nie pisanie własnej warstwy od zera.