Integracja aplikacji Wykład 1

Slides:



Advertisements
Podobne prezentacje
Mechanizmy pracy równoległej
Advertisements

Decyzje projektowe w .NET Framework
WEB SERVICE Stefan Rutkowski.
e-commerce jako efektywny rozwój dystrybucji
CORBA Łukasz Wnęk.
EControl – prostsze zarządzanie tożsamością pracowników Twórz Zarządzaj Audytuj Wolfgang Berger Omni Technology Solutions
Horyzontalne scenariusze pracy
ADAM Active Directory w trybie aplikacyjnym
Artur Jonak empolis Polska Sp. z o.o.
XML w integracji aplikacji
XML w integracji aplikacji 11 grudnia XML w integracji aplikacji Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły.
Projektowanie Aplikacji Komputerowych
Architektura systemu Gra strategiczna „Strusia Jama”
Opracował: Patryk Kołakowski(s1715)
Tomasz Smieszkoł - 15 stycznia
Dokumentowanie wymagań w języku XML
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
ETL – wymiana danych Michał Jabłonka
mgr inż. Marek Kamiński Katedra Inżynierii Oprogramowania WETI PG
Information Bridge Framework platforma integracji Microsoft Office 2003 z aplikacjami Line of Business Krzysztof Michalski10/01/2005.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Artur Szmigiel Paweł Zarębski Kl. III i
Rozproszone bazy danych
Współczesne systemy informacyjne
Systemy zarządzania treścią CMS
7. Platformy informatyczne przyszłości (wizja SAP)
Analiza i ocena procesów wdrożeniowych systemów klasy MRP/ERP w firmie
Modele baz danych - spojrzenie na poziom fizyczny
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Analiza, projekt i częściowa implementacja systemu obsługi kina
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
Web Serwisy w praktyce Technologie internetowe ( )
Systemy zarządzania treścią Wykład 1
Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki,
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Technologie tworzenia aplikacji internetowych Wykład 3
Zarządzanie danymi biznesowymi za pomocą usług EIM serwera SQL 2012, czyli jak SSIS, MDM i DQS rozwiązują problem błędnych danych Marcin Szeliga
EasyMOD kontrola modyfikacji i rozszerzeń systemu SAP
Integracja aplikacji Wykład 1
Prezentacja i szkolenie
Projekt i implementacja uogólnionego mechanizmu Java RMI
Rynek tłumaczeń i lokalizacji w Polsce, Wrocław marca 2009r. Małgorzata Haas-Tokarska Maksymilian Nawrocki MORAVIA IT.
Wybrane zagadnienia relacyjnych baz danych
Systemy zarządzania treścią Wykład 5
dr Łukasz Murowaniecki T-109
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji.
CRM – wady i zalety UŁ, WMiI, Katedra Analizy Matematycznej i Teorii Sterowania 2008.
Service Oriented Architecture
Temat 4: Funkcje Systemu Zarządzania Bazą Danych (SZBD)
System Zarządzania Bazą Danych
Technologie programowania systemów internetowych
Systemy Business Intelligence – warunki użytkowania Halina Tańska Wydział Matematyki i Informatyki Uniwersytet Warmińsko-Mazurski „e-commerce” Olsztyn.
Systemy informatyczne
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
XML w bazach danych.
XML w serwisach webowych. Zapotrzebowanie na serwisy XML.
Komponentowe i rozproszone Interludium czyli krótki wykład o rozpraszaniu.
Systemy zarządzania przepływem pracy i systemy zarządzania procesami biznesowymi Karolina Muszyńska.
Struktura systemu operacyjnego
Zintegrowany monitoring infrastruktury IT w Budimex
Sławomir Staśkiewicz JBossAS i EJB 3.1 Sławomir Staśkiewicz
Usługi webowe & Service- Oriented Architecture (SOA) S2523 Anna Jenerowicz.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Analiza, projekt i częściowa implementacja systemu wspomagania pracy Referatu Reprografii Promotor: mgr inż. Dariusz OlczykWykonała: Katarzyna Ściwiarska.
JavaBeans by Paweł Wąsala
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Integracja aplikacji Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT Integracja aplikacji Wykład 1

Plan wykładów Wprowadzenie XML Web Services Messaging Istota integracji aplikacji, potrzeby i cele Wprowadzenie XML, XML Schema, XPath, XSLT Przetwarzanie XML XML SOAP REST Web Services Message Oriented Integration Wzorce projektowe, narzędzia Messaging

Literatura G. Hohpe, B. Woolf: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley 2003 http://www.enterpriseintegrationpatterns.com P. Kazienko, K. Gwiazda: XML na poważnie. Helion 2002 M. Kalin: Java Web Services: Up and Running. O'Reilly 2009

Wprowadzenie Potrzeba integracji aplikacji Wprowadzanie nowych aplikacji w ramach istniejącego systemu Integracja istniejących systemów/aplikacji w celu usprawnienia działania

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: 2000-2001 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.)

Jak to zwykle wygląda… …czyli integracja po staropolsku Aplikacja A Drukarka Pani Kasia Pani Basia Klawiatura Aplikacja B

Brak integracji – problemy Oddzielne aplikacje nie są dłużej w stanie efektywnie wspierać procesów biznesowych Dane 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 Skutek: System informacyjny nie jest efektywny Główny cel integracji: Uzyskanie (przywrócenie, utrzymanie) efektywności systemu informacyjnego

Brak integracji – rozwiązanie Jak zwiększyć efektywność systemu? Zastąpić stare aplikacje nowoopracowanym systemem Zastąpić stare aplikacje gotowym systemem ERP

Brak integracji – rozwiązanie 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ę

Brak integracji – rozwiązanie Jak zwiększyć efektywność systemu? Zastąpić stare aplikacje nowoopracowanym systemem

Brak integracji – rozwiązanie Jak zwiększyć efektywność systemu? Zastąpić stare aplikacje nowoopracowanym systemem Wykorzystać istniejące aplikacje i przeprowadzić ich integrację

Wymagania integracji Czego oczekujemy od zintegrowanego systemu? Jednokrotne wprowadzanie danych Dostęp do danych z niewielkim opóźnieniem

Systemy przed integracją Pochodzenie systemów Systemy działające w firmie – pochodzenie 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

Systemy przed integracją Heterogeniczność systemów Języki i paradygmaty programowania Architektura – monolityczna, klient/serwer, wielowarstwowa Bazy danych – relacyjne, obiektowe, hierarchiczne, wbudowane w produkt Istniejące mechanizmy integracji Modele przepływu danych – publikacja/subskrypcja, żądanie/odpowiedź, konwersacyjne Formaty zapisu i wymiany danych

Integracja point-to-point… …czyli chałupnicze metody integracji Aplikacja A Aplikacja B

Integracja point-to-point… …czyli chałupnicze metody integracji Aplikacja A Aplikacja B Aplikacja C Aplikacja D Aplikacja E Aplikacja F

Architektura integracji Ponowne użycie (reusability) Enkapsulacja Rozproszenie Partycjonowanie Skalowalność Wydajność Niezawodność Zalety solidnie opracowanej architektury integracji

Style integracji

Remote Procedure Invocation Style integracji File Transfer Shared Database Remote Procedure Invocation Messaging

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

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

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?

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ą

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)

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

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

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)

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)

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

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

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?

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