Historia pytania:
Potrzeba jasnych specyfikacji integracyjnych pojawiła się wraz z rozwojem krajobrazu IT w firmach, kiedy ich procesy biznesowe zaczęły opierać się na wielu różnych produktach i usługach programowych. W latach 90-tych do wymiany danych powszechnie stosowano dokumenty papierowe i ręczne wyeksportowanie, później pojawiła się wymiana EDI i platformy integracyjne. Dziś specyfikacja interfejsu odgrywa centralną rolę w organizacji efektywnej interakcji.
Problem:
Bez szczegółowo opracowanej specyfikacji integracyjnej często pojawiają się nieporozumienia między zespołami, nieprawidłowe przetwarzanie danych, powtarzająca się praca lub nawet awarie procesów biznesowych. Pojawia się pytanie: Jak dokumentować i utrzymywać specyfikację, aby obie strony (lub kilka stron) rozumiały wymagania jednoznacznie przez cały cykl życia systemu?
Rozwiązanie:
Analityk systemowy opracowuje specyfikację integracyjną, wykorzystując powszechnie uznawane standardy opisu (np. OpenAPI, WSDL, XSD, BPMN), szablony i narzędzia modelowania. W specyfikacji muszą być zawarte:
Kluczowe cechy:
Jaka jest różnica między synchronizowaną a asynchronizowaną interakcją systemów i czy zawsze podejście asynchroniczne jest bardziej odporne na awarie?
Asynchroniczna wymiana rzeczywiście zmniejsza spójność aplikacji i może być bardziej odporna dzięki kolejkom, ale nie we wszystkich scenariuszach jest optymalna: dla zapytań o wysokich wymaganiach dotyczących odpowiedzi lub transakcyjności lepiej stosować interakcje synchronizowane.
Czy opis API i struktura danych są wystarczające dla pełnego zrozumienia integracji między systemami?
Nie, konieczne jest również zarejestrowanie scenariuszy biznesowych, modeli obsługi błędów, wymagań dotyczących monitorowania, SLA, tolerancji na opóźnienia i uzgodnienia wersjonowania.
Czy można opierać się wyłącznie na ustnych ustaleniach między zespołami przy zmianie formatu integracji?
Nie, wszystkie zmiany muszą być sformalizowane w specyfikacji i uzgodnione na piśmie, w przeciwnym razie istnieje ryzyko niezgodności realizacji i potencjalnych incydentów.
Negatywny przypadek: Klient zmienił format danych w API, informując tylko zespół partnerski za pośrednictwem e-maila. Programiści innego zintegrowanego systemu tego nie uwzględnili i część transakcji przestała być przetwarzana. Zalety:
Pozytywny przypadek: Analityk zainicjował wniosek o zmianę, zaktualizował specyfikację Swagger, powiadomił wszystkie zainteresowane zespoły przez wewnętrzny czat i czekał na potwierdzenie wprowadzenia zmian. Zalety: