Pobierz prezentację
1
Integracja aplikacji Wykład 1
Piotr Czapiewski Wydział Informatyki ZUT Integracja aplikacji Wykład 1
2
Plan wykładów Wprowadzenie do integracji aplikacji Web Services
Message Oriented Integration Wzorce projektowe integracji
3
Literatura G. Hohpe, B. Woolf: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley M. Kalin: Java Web Services: Up and Running. O'Reilly 2009 W. Roshen: SOA-Based Enterprise Integration. McGraw-Hill 2009
4
Wprowadzenie Potrzeba integracji aplikacji
Integracja istniejących systemów/aplikacji w celu usprawnienia działania Wprowadzanie nowych aplikacji w ramach istniejącego systemu
5
Definicja EAI – Enterprise Application Integration
Unrestricted sharing of data and business processes among any connected application or data sources in the enterprise (Gartner, Enterprise Applications - Adoption of E-Business and Document Technologies: Worldwide) A strategy for making business processes more valuable... in its simplest form [it] involves passing data between application systems, and at its most complex, [it] involves rationalizing overlapping business processes, disparate data structures and diverse technologies. (Gregg Wright, IMC Inc.)
6
Jak to zwykle wygląda… …czyli integracja po staropolsku Aplikacja A
Drukarka Pani Kasia Pani Basia Klawiatura Aplikacja B
7
Systemy przed integracją
Systemy działające w firmie Opracowane wewnątrz firmy Opracowane na zamówienie przez firmy zewnętrzne Gotowe rozwiązania komercyjne Problemy Różne platformy, technologie, języki programowania, modele programowania Uboga dokumentacja lub jej brak
8
Heterogeniczność systemów (1)
Różnice technologiczne: Architektura – monolityczna, klient/serwer, wielowarstwowa Rozwiązania obiektowe, proceduralne, komponentowe Języki programowania Bazy danych – relacyjne, obiektowe, hierarchiczne, wbudowane w produkt Modele przepływu informacji – publikacja/subskrypcja, żądanie/odpowiedź, konwersacyjne Formaty zapisu i wymiany danych Istniejące mechanizmy integracji
9
Cel: efektywność Główny cel integracji: Problemy:
Uzyskanie (przywrócenie, utrzymanie) efektywności systemu informacyjnego Problemy: Oddzielne aplikacje nie są dłużej w stanie efektywnie wspierać procesów biznesowych Dane są rozproszone między różne aplikacje, każda z nich widzi dane na swój sposób Trudności w ogarnięciu pełnego obrazu Brak możliwości udostępnienia kompletnych danych np. pracownikom zdalnym, partnerom biznesowym, klientom
10
Cel: efektywność Jak zwiększyć efektywność systemu?
Zastąpić stare aplikacje nowoopracowanym systemem Zastąpić stare aplikacje gotowym systemem ERP
11
Cel: efektywność Jak zwiększyć efektywność systemu?
Zastąpić stare aplikacje nowoopracowanym systemem Zastąpić stare aplikacje gotowym systemem ERP Wykorzystać istniejące aplikacje i przeprowadzić ich integrację
12
Wymagania integracji Wymagania – czego oczekujemy od zintegrowanego systemu? Jednokrotne wprowadzanie danych Dostęp do danych z niewielkim opóźnieniem
13
Integracja point-to-point…
…czyli chałupnicze metody integracji Aplikacja A Aplikacja B
14
Integracja point-to-point…
…czyli chałupnicze metody integracji Aplikacja A Aplikacja B Aplikacja C Aplikacja D Aplikacja E Aplikacja F
15
Architektura integracji
Ponowne użycie (reusability) Enkapsulacja Rozproszenie Partycjonowanie Skalowalność Wydajność Niezawodność Zalety solidnie opracowanej architektury integracji
16
Remote Procedure Invocation
Style integracji File Transfer Shared Database Remote Procedure Invocation Messaging
17
File Transfer Przesyłanie plików
Każda aplikacja generuje pliki z danymi, które mają być udostępnione innym aplikacjom Każda aplikacja konsumuje pliki wygenerowane przez inne aplikacje W procesie integracji konieczne jest zagwarantowanie transformacji pomiędzy formatami plików Pliki generowane są w regularnych odstępach czasu, odpowiednich do rodzaju realizowanych funkcji biznesowych
18
File Transfer Przesyłanie plików
Wymagane narzędzia: Nie są wymagane dodatkowe narzędzia czy pakiety integracyjne Zaleta – prostota Wada – więcej do zrobienia dla deweloperów Problemy: Format pliku Semantyka Wydajność Synchronizacja
19
File Transfer Przesyłanie plików
Kwestie do ustalenia: Gdzie trzymać piki? Jak je nazywać? Kto ma kasować stare pliki? Jak decydować, że pliki nie są już potrzebne? Jak zapewnić, że dane trafią do celu dokładnie raz? Transfer pliku (jeśli aplikacje nie mają dostępu do tego samego dysku) Mechanizm blokowania (odczyt dopiero po zakończeniu zapisu) Kiedy generować i konsumować pliki? Jak często?
20
File Transfer Przesyłanie plików
Zalety: Prostota Dostępność na każdej platformie Luźne wiązanie między aplikacjami Wady: Niebezpieczeństwo utraty synchronizacji Niebezpieczeństwo spadku wydajności Kompromis: wydajność czy niezawodność? W bardziej złożonych przypadkach – trudności z zarządzaniem i niezawodnością
21
Shared Database Współdzielona baza danych
Niech wszystkie aplikacje przechowują dane w jednej, wspólnej bazie danych Przewaga nad przesyłaniem plików: Natychmiastowy dostęp do zaktualizowanych danych Łatwiejsze zabezpieczanie przed powstaniem niespójności Łatwiejsze usuwanie powstałych niespójności Brak problemu niezgodności formatów System zarządzania bazą danych zdejmuje z deweloperów wiele problemów (np. problem równoczesnej aktualizacji)
22
Shared Database Współdzielona baza danych
Problemy: Ustalenie wspólnego schematu, odpowiadającego wymaganiom wszystkich aplikacji Konieczność modyfikacji aplikacji, tak by korzystała z nowego schematu (nie zawsze możliwe) Rozproszenie aplikacji Często konieczne kompromisy (np. zwiększenie wydajności jednej aplikacji kosztem innej) Problemy w przypadku dalszego rozszerzania systemu lub integracji z kolejnymi aplikacjami
23
Shared Database Współdzielona baza danych
Problemy, cd.: Wydajność – niebezpieczeństwo powstania wąskich gardeł, a nawet blokad (deadlock) Zalety: Powszechność relacyjnych baz danych i SQL (technologia znana i sprawdzona) Natychmiastowa propagacja zmian danych Problem niezgodności semantycznej – rozwiązywany na etapie integracji
24
Remote Procedure Invocation Zdalne wywoływanie procedur
Integracja danych a integracja funkcjonalności Samo współdzielenie danych nie zawsze wystarczy – modyfikacja danych często pociąga za sobą konieczność podjęcia określonych działań Konieczność współdzielenia logiki biznesowej Współdzielenie bazy danych prowadzi do braku enkapsulacji Zdalne wywoływanie procedur Remote Procedure Invocation Remote Method Invocation (RMI) Remote Procedure Call (RPC)
25
Remote Procedure Invocation Zdalne wywoływanie procedur
Istota zdalnego wywoływania procedur Niech każda aplikacja udostępni pewien podzbiór funkcjonalności jako metody, które można wywołać z poziomu innych aplikacji Enkapsulacja – niech aplikacja stanowi rodzaj obiektu/komponentu dużej skali, ukrywającego wewnątrz dane i udostępniającego określony publiczny interfejs Technologie CORBA, COM, .NET Remoting, Java RMI, Web Services (HTTP, XML, SOAP)
26
Remote Procedure Invocation Zdalne wywoływanie procedur
Zalety: Przewaga nad współdzieleniem bazy danych: aplikacja przechwytuje zmiany danych i może wykonać dodatkowe działania Przewaga nad przesyłaniem plików: natychmiastowa synchronizacja Możliwość łatwego zdefiniowania różnych interfejsów („punktów widzenia”) dla różnych aplikacji Wady: Pułapka czyhająca na deweloperów – wywołanie metod zdalnych nazbyt przypomina wywoływania lokalne Niebezpieczeństwo degradacji stabilności, niezawodności, wydajności Praca synchroniczna – obie aplikacje muszą być on-line, by zdalne wywołanie się udało
27
Messaging Przesyłanie komunikatów
Niech każda aplikacja przesyła małe porcje danych natychmiast po wystąpieniu określonego zdarzenia Messaging to technika częstego, szybkiego, niezawodnego, asynchronicznego przesyłania komunikatów, których format można dostosować do potrzeb
28
Messaging Przesyłanie komunikatów
Zalety: Praca asynchroniczna – aplikacja docelowa nie musi być dostępna w momencie nadania komunikatu Wsparcie ze strony oprogramowania pośredniczącego zapewnia wydajność i niezawodność, umożliwia pracę w stylu send-and-forget Problemy do rozwiązania: Jak przesyłać komunikaty? Skąd wiadomo, do kogo przesłać komunikat? Jakie użyć formatu danych? Jak podłączyć aplikację do systemu przesyłania komunikatów?
29
Style integracji – porównanie
Integracja funkcjonalności Częsta wymiana małych porcji danych Asynchroniczna integracja funkcjonalności lub danych Integracja danych Szybki dostęp do zaktualizowanych danych Przesyłanie dużych ilości danych, stosunkowo rzadko File Transfer Shared Database Remote Procedure Invocation Messaging
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.