Track
Integracja systemów

Integracja systemów, to ogólnie mówiąc, łączenie ze sobą różnorodnych aplikacji mające na celu automatyzację pewnych zadań. Z integracją systemów kojarzone się takie pojęcia jak EAI (Enterprise Application Integration) - oznaczające właśnie samą integrację, SOA (Service Oriented Architecture) - stanowiące pewien model tworzenia systemów informatycznych, w których poszczególne funkcje bizensowe są udostępnione jako usługi do wykorzystania przez inne aplikacje oraz ESB (Enterprise Service Bus) stanowiący pewien wzorzec dla rozwiązań integracyjnych, w których podejścia oparte na komunikatach, zdarzeniach oraz usługach są ujednolicone.

Jak łatwo zauważyć, integracja systemów jest mocno związana z korporacjami (Enterprise). Wynika to z faktu, że to właśnie one są najbardziej zinformatyzowane, bowiem w ciągu wielu lat istnienia miały szansę wdrożyć różnorodne systemy informatyczne, a których to nie sposób zamienić na jeden wielki system wspierający każdy z działów firmy.

W związku z potrzebą współpracy różnorodnych systemów opracowane zostały tak zwane platformy integracyjne (np. Webmethods, Mule) - pozwalające na integrację systemów niejako "bez ich wiedzy", to znaczy cała logika związana z wykorzystaniem poszczególnych systemów jest zdefiniowana w ramach platformy integracyjnej. W ramach platformy definiowane są zestawy konektorów do każdego z systemów, które udostępniają niezbędne funkcje biznesowe innym elementom platformy w sposób niezależny od protokołu komunikacyjnego z systemem. Dzięki takiemu podejściu możemy w ramach platformy łatwo definiować różne procesy biznesowe.

Case study

Wyobraźmy sobie firmę, która sprzedaje telewizory, posiada sieć punktów handlowych i centralny magazyn. Klient w punkcie handlowym może zamówić telewizor, zamówienie wtedy trafia do centrali (telefonicznie), tam towar jest przygotowywany i wysyłany do punktu handlowego, skąd może zostać dostarczony do klienta lub przez niego odebrany.

Łatwo zauważyć, że:

  • dane o kliencie posiadają wyłącznie punkty handlowe
  • klient aby sprawdzić stan zamówienia musi zadzwonić/przyjść do punktu handlowego, który to z kolei musi zapytać o stan zamówienia w centrali

Najprostsze działania mogące usprawnić firmę to:

  • udostępnienie punktom handlowym strony www, na której mogłyby wpisywać dane klienta oraz jego zamówienia (tzw. ekstranet)
  • przesyłanie do klienta email'a z informacją o statusie zamówienia (przyjęte do realizacji, zamówione u producenta, dostarczone na magazyn, przekazane do punktu handlowego, odebrane w punkcie handlowym, itp.)

Oczywiście, dość łatwo jest napisać aplikację, która korzystając z bazy danych systemu magazynowego będzie realizowała opisaną funkcjonalność, jednak znacznie lepiej jest wykorzystać platformę integracyjną i w niej zdefiniować:

  • konektor do systemu magazynowego, który:
    • potrafi wstawić informację o zamówieniu
    • informuje inne komponenty o zmianie statusu zamówienia
  • konektor do systemu mailingowego, który:
    • potrafi wysłać email pod zadany adres
  • proces polegający na wstawieniu informacji o zamówieniu w reakcji na wpisanie odpowiedniej informacji przez handlowca
  • proces polegający na wysłaniu wiadomości email do klienta w reakcji na zmianę statusu zamówienia

Dlaczego tak jest lepiej? Jeżeli będziemy chcieli udostępnić klientowi stronę internetową na której klient będzie mógł sprawdzić stan realizacji zamówienia, wówczas jedną z rzeczy jakie musimy zrobić to założyć klientowi konto w systemie autentykującym wraz z odpowiednimi uprawnieniami, wówczas w ramach platformy:

  • definiujemy konektor do systemu autentykującego (np. LDAP)
  • modyfikujemy proces reagujący na wstawienie informacji przez handlowca