Jak zintegrować aplikację w chmurze z tą działającą lokalnie

Duże aplikacje eksploatowane w cloud computing rzadko są oderwane od firmowego oprogramowania działającego w sieci lokalnej. Przed inżynierami staje wtedy zadanie integracji obu rozwiązań.

Przy dużych aplikacjach eksploatowanych w modelu cloud computing bardzo często pojawia się zagadnienie integracji aplikacji wyniesionej poza sieć firmową z lokalnie eksploatowanym oprogramowaniem. Ponieważ w modelu usługowym można korzystać z różnego oprogramowania, z contact center włącznie, ograniczenie aplikacji do wyspy jest praktycznie niewykonalne. Zatem większość wdrożeń zawiera element integracji z istniejącym systemem, by uzyskać zasilenie danymi, przekazanie do systemów trzecich czy wykonanie procedur na podstawie sygnałów uruchamianych przez aplikację.

"Przykładowa integracja może obejmować contact center zrealizowane w modelu usługowym. Aplikacja contact center obsługująca IVR przy uwierzytelnieniu dzwoniącego klienta odpytuje system core business. Proces ten wymaga otwarcia kanału komunikacji, przekazania żądania z parametrem, jakim może być wprowadzony identyfikator i hasło, na które otrzymuje odpowiedź TAK-NIE z systemu firmy. W przypadku usług cloudowych obsługiwanych przez przeglądarkę integracja występuje na poziomie serwerów aplikacyjnych i jest całkowicie przezroczysta dla użytkownika" - mówi Piotr Pytlakowski, prezes zarządu Comtrust sp. z o.o.

Zobacz również:

SOAP i XML to standard

Przy integracji mogą pojawić się problemy związane z połączeniem - aby aplikacje mogły wymienić dane, niezbędne jest połączenie za pomocą TCP/IP, czyli musi istnieć wirtualna sieć prywatna od serwerów w LAN czy DMZ firmy, do aplikacji w chmurze. Standardowym połączeniem jest otwarty protokół http, zatem udostępnienie usług webowych umożliwia realizację dwukierunkowej wymiany danych. Stosuje się tutaj SOAP oraz XML, tak udostępnia się udokumentowane odwołania, za których pomocą można wywołać metody systemu czy ładować dane. Jest to metoda sprawdzona, otwarta i łatwiejsza w diagnostyce od własnościowych rozwiązań, o ile tylko komunikaty są dobrze udokumentowane. Jednocześnie można przeprowadzić audyt połączeń, analizować ich strukturę, a także chronić serwery za pomocą narzędzi, które przechwytują i analizują ruch w tym kanale komunikacji.

Serwer, który tłumaczy

Jeśli aplikacja nie może samodzielnie zastosować XML do wymiany danych, gdyż jest napisana w technologii, która wyklucza to - na przykład oprogramowanie działające na stacji roboczej jako natywna aplikacja Windows, łącząca się bezpośrednio z bazą danych - można zastosować serwer, który przetłumaczy komunikaty i żądania dostarczane w kanale usług webowych na natywne wywołania procedur aplikacji. Takie oprogramowanie będzie hubem pośredniczącym, który umożliwi integrację szeregu zewnętrznych aplikacji poprzez SOAP, bez konieczności dobudowywania do zewnętrznego oprogramowania niestandardowych interfejsów.

"Serwerów pośredniczących używamy do komunikacji z bramkami SMS. Każdy z polskich operatorów wykorzystuje inne standardy korzystania z SMSC i używa innego protokołu. Mamy napisany serwlet, z którym się komunikujemy w standardowy sposób, a on wywołuje, co trzeba po stronie operatora telekomunikacyjnego. Jest to znacznie prostsze od budowania interfejsu do każdej z aplikacji z osobna" - mówi Piotr Pytlakowski.

Okienka aplikacji

Gdy aplikacja musi być zintegrowana na poziomie stacji roboczej, można zastosować dwa podejścia. Pierwsze z nich wykorzystuje wywołanie przeglądarki z parametrem w adresie URL. Metoda ta jest niestety jednokierunkowa, ale umożliwia np. odpytanie aplikacji, co w zupełności wystarcza do wyświetlenia informacji na przykład o przychodzącym połączeniu lub innych danych.

Możliwa jest także komunikacja dwukierunkowa. Piotr Pytlakowski wyjaśnia: "W stacji roboczej instaluje się wtyczkę do przeglądarki, która działa na zasadzie klient-serwer. Wtedy zewnętrzna aplikacja, taka jak telefon programowy, wystawia zdarzenia, wtyczka je próbkuje i realizuje funkcje zgodnie z komunikatami tam umieszczonymi. Jest to integracja dwukierunkowa, mogąca służyć do sterowania programowym telefonem VoIP, którą można zaimplementować w aplikacji stworzonej w dowolnej technologii, np. Oracle Forms".

Przy zastosowaniu wtyczki lub wywołaniu URL cała komunikacja między aplikacjami odbywa się na stacji roboczej, przy czym wtyczka daje możliwość dwukierunkowej wymiany informacji, uruchomienia odpowiednich procedur lub przekazania danych.

Baza do bazy

Ostatnim ze sposobów integracji dużych aplikacji jest bezpośrednie połączenie pomiędzy bazami danych. Jeśli obie aplikacje korzystają z bazy tego samego producenta, to istnieje możliwość zrealizowania linku pomiędzy instancjami i wtedy aplikacje komunikują się ze sobą za pomocą współdzielonych tabel. To dość kłopotliwa komunikacja, gdyż rzadko zachowywane jest archiwum komunikacji, ponadto należy zrealizować połączenie ODBC lub natywne, co wymaga przygotowania właściwych reguł na zaporze sieciowej. Takie połączenie stawia o wiele wyższe wymagania zabezpieczeniom baz danych, wymaga ponadto poprawnie skonstruowanego mechanizmu uprawnień.