Internet
Intranet
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


