Garść niezawodnych sposobów na niezawodną integrację WEBCON DAYS 2014 Tomasz Batko, WEBCON
1. Źródła danych Słowniki Raportowanie 2. Przesłanie danych do systemu zewnętrznego Synchronicznie Asynchronicznie Szyna danych 3. Przesyłanie danych z systemu zewnętrznego Synchronicznie Asynchronicznie 4. Podsumowanie
1. Źródła danych
Źródła danych - Słowniki Online (sql,oracle) - możliwe użycie linked server Online (custom źródło) - wywołanie webservice - nietypowe dane w źródle Offline (akcja cykliczna, ETL) - cache w bazie danych z webservice
Źródła danych - Raportowanie Sposób raportowania w BPS SQL Row SQL Grid Zastosowanie Weryfikacja mechanizmów integracji Przyspieszenie pracy użytkowników
2. Przesłanie danych do systemu zewnętrznego
Przesłanie danych do systemu zewnętrznego - Synchroniczne Wynik operacji dostępny od razu (często zwracany rezultat, np. Id dokumentu) Komunikacja za pomocą: API WebService SQL/Oracle Sposób realizacji: Akcja na przejściu ścieżką (w transakcji) Akcja na przejściu ścieżką (poza transakcją) Akcja na belce
Przesłanie danych do systemu zewnętrznego - Synchroniczne Sposób realizacji omówienie Akcja na przejście (w transakcji) Akcja na przejście (poza transakcją) Akcja na belce Zalety - Jeśli udało się przejście to wiemy że integracji również się udała - Jeśli wykonanie akcji jest problematyczne dokumenty nie zalegają w kroku oczekiwania na integrację - Małe prawdopodobieństwo znalezienia się dokumentu w kroku następnym mimo że integracji się nie udała Wady - Problem niepowodzenia przejścia ścieżką po integracji (np. nieudana następna akcja lub utworzenie zadań) - Dokumenty w kroku następnym mimo że integracja się nie powiodła - Konieczność robienia dodatkowych kroków, lub raportów opartych na systemie zewnętrznym - Konieczność podwójnego kliknięcia - Wykonanie tylko pojedynczej akcji
Przesłanie danych do systemu zewnętrznego - Asynchroniczne Dwa możliwe przypadki: Rezultat pierwszego wykonania nie jest natychmiastowy, konieczne sprawdzenie wyniku (np. wymiana plików, maili) Nie każde wywołanie kończy się sukcesem Sposób realizacji: CustomMail, Custom Akcja Akcja na timeout
Przesłanie danych do systemu zewnętrznego Szyna danych Szyna zapewnia dwustronną synchroniczną komunikację. Zalety: Zadania przekazane szynie można traktować jako wykonane, pomimo że ich wykonanie może chwilę zająć. Możliwość integracji kilku systemów Wady Jeśli musimy czekać na rezultat operacji, wtedy wywołanie przekształca się w operację asynchroniczną Utrudniona diagnoza błędów
3. Przesłanie danych z systemu zewnętrznego
Przesłanie danych z systemu zewnętrznego Synchronicznie Integracja systemu zewnętrznego z BPS Sposób realizacji Web API SDK
Przesłanie danych z systemu zewnętrznego Asynchronicznie Rezultat pierwszego wywołania nie jest natychmiastowy (integracja za pomocą plików lub e-maili) Sposób realizacji po stronie BPS: Akcja cykliczna HotFolder/HotMailBox Detykowany Serwis
Przesłanie danych z systemu zewnętrznego Asynchronicznie Dane przesyłane są do BPS, ale jednocześnie to BPS inicjuje komunikację. Przykład wykorzystania: Startowanie wielu obiegów Przesunięcie dokumentu po jakieś akcji (np. faktury po zaksięgowaniu) Sposób realizacji po stronie BPS: Akcja cykliczna Akcja na timeout
Przesłanie danych z systemu zewnętrznego - Asynchroniczne Akcja na timeout Operacja wykonywana dla każdego dokumentu z osobna Łatwe sprawdzenie statusu wykonania - historia elementu - tryb administracyjny Możliwość elastycznej definicji czasu Akcja cykliczna Serwis Możliwość uzyskania w jednym zapytaniu informacji o wielu dokumentach Nie musi istnieć konkretny dokument Utrudniony dostęp do loga Konieczność kontroli czy akcji nie wykonuje się zbyt długo Nieograniczony czas wykonania operacji
4. Podsumowanie
1. Źródła danych Słowniki Online (sql,oracle) Online (custom źródło) Offline Raportowanie Weryfikacja Wydajność
2. Przesłanie danych do systemu zewnętrznego Synchronicznie W transakcji Poza transakcją Na belce Asynchronicznie Oczekiwanie na rezultat Oczekiwanie na sukces Szyna danych
3. Przesłanie danych z systemu zewnętrznego Synchronicznie Asynchronicznie Oczekiwanie na rezultat System udostępnia tylko dane
Najlepszy sposób integracji?
Pytania?
Dziękujemy za uwagę Więcej informacji na: kb.webcon.pl!