Wprowadzenie do usług internetowych

Podobne dokumenty
Wybrane działy Informatyki Stosowanej

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Programowanie Komponentowe WebAPI

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Komunikacja i wymiana danych

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Usługi sieciowe REST. Instytut Informatyki Politechnika Poznańska

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Oprogramowanie dostosowane do potrzeb użytkownika. Skrócenie czasu wejścia na rynek

Usługi sieciowe (Web Services)

Rozproszone systemy internetowe

Komunikacja międzysystemowa

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Dostęp do komponentów EJB przez usługi Web Services

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

SOA Web Services in Java

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Programowanie komponentowe

Ministerstwo Finansów

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Programowanie współbieżne i rozproszone

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Wybrane działy Informatyki Stosowanej

Web Services. Technologie Biznesu Elektronicznego. Konrad Kunicki. Politechnika Wrocławska, Wydział Informatyki i Zarządzania

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Wybrane działy Informatyki Stosowanej

Rozproszone systemy Internetowe

Modelowanie i Programowanie Obiektowe

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Wybrane działy Informatyki Stosowanej

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Wybrane problemy modelu usługowego

Wprowadzenie. Dariusz Wawrzyniak 1

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

Zaawansowane narzędzia programowania rozproszonego

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

Middleware wprowadzenie października 2010

Komunikacja systemów informatycznych przy pomocy usług sieciowych

Plan wykładu. Technologia Web Services. Web Services a WWW

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Platforma Informatyczna Wdrażania Oprogramowania Dedykowanego w PL-Grid

XML w elektronicznej wymianie danych i integracji aplikacji

WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski

XML w elektronicznej wymianie danych i integracji aplikacji

problem w określonym kontekście siły istotę jego rozwiązania

Programowanie obiektowe

Licencjonowanie serwerów do zarządzania wydajnością. Office Web Apps Server

Systemy obiegu informacji i Protokół SWAP "CC"

Historia modeli programowania

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

Web Services wykład 9

OSGi Agata Hejmej

Zaawansowane aplikacje internetowe. Wykład 6. Wprowadzenie do Web Services. wykład prowadzi: Maciej Zakrzewicz. Web Services

Modele sprzedaży i dystrybucji oprogramowania Teoria a praktyka SaaS vs. BOX. Bartosz Marciniak. Actuality Sp. z o.o.

Usługi danych przestrzennych w GEOPORTAL-u. Marek Szulc , Warszawa

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Virtual Grid Resource Management System with Virtualization Technology

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g

Architektura aplikacji

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Web Services / Gridy

JBPM [JUG] Tomasz Gratkowski [GRATKOWSKI SOFTWARE]

Systemy Rozproszone Technologia ICE

Zagadnienia projektowania aplikacji J2EE

Spis treúci. 1. Wstęp... 11

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Bazy danych 2. Wykład 1

egroupware czy phpgroupware jest też mniej stabilny.

1 Wprowadzenie do J2EE

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

System DiLO. Opis interfejsu dostępowego v. 2.0

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

Korporacyjna Magistrala Usług na przykładzie Mule ESB

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Simple Object Access Protocol

Architektury rozproszonych baz danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Dni Użytkowników Aplikacji QAD Interoperacyjność z QXtend

Procesowa specyfikacja systemów IT

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Transkrypt:

Wprowadzenie do usług internetowych Tomasz Pawlak

2 Plan prezentacji Wprowadzenie do usług internetowych Technologie usług internetowych Architektura usług internetowych Statystyki

3 Usługa internetowa Wiele definicji Aplikacja dostępna przez interfejs internetowy Każdy fragment kodu z przypisanym URI! Aplikacja ze stabilnym i dobrze udokumentowanym (samopisującym) API Konsorcjum UDDI Samodzielna, modułowa aplikacja biznesowa, wyposażona w interfejs bazujący na otwartych, internetowych standardach Źródło: UDDI ConsorPum, UDDI ExecuPve White Paper, 2001

4 Usługa internetowa (2) Konsorcjum World Wide Web (W3C) Aplikacja identyfikowana przez URI, której interfejsy i wiązania mogą być zdefiniowane, opisane i zaprezentowane jako dokumenty XML. Usługa internetowa wspiera bezpośrednią interakcję z innym oprogramowaniem wykorzystując komunikaty XML wymieniane przy użyciu protokołów internetowych. Źródło: W3C, Web Services Architecture Requirements, 2002

5 Usługa internetowa cechy W założeniu zewnętrzny punkt wejścia do lokalnego systemu Redukcja heterogeniczności systemu Nowe paradygmaty programowania Nowe architektury Service- Oriented Architecture (SOA) Słabe powiązanie komponentów systemu Możliwość wielokrotnego wykorzystania

6 Architektura nastawiona na usługi Service- Oriented Architecture (SOA) Usługa Założenie Firma realizuje swoją ofertę za pośrednictwem usługi Procedura, metoda, obiekt Stabilne API Opublikowany interfejs Możliwość wywołania przez klienta (inną aplikację) Autonomiczna i izolowana od innych usług

7 Usługa internetowa vs middleware Usługa internetowa Usługi w middleware Ogólnie obowiązujące standardy Własne standardy lub niepełne implementacje ogólnych standardów Zdecentralizowana architektura Brak globalnego zarządcy Każdy podmiot zarządza swoją częścią systemu Brak zaufania między podmiotami Zcentralizowana architektura Middleware pełni rolę globalnego zarządcy Istnieje podmiot posiadający władzę nad systemem Jedna domena zaufania Słabe powiązanie między usługami Mocne powiązanie między usługami Stan systemu może utrzymywać się długo (np.: akcje powodujące długotrwałe operacje fizyczne, opóźnienia) Stan systemu zmienia się szybko (małe, krótkie akcje)

8 Transakcyjność Blokowanie dwufazowe (2PC) Wymaga centralnego zarządcy Blokady na zasobach zarządzane przez jeden podmiot Problemy Brak zaufania między podmiotami Poufność informacji Długi czas trwania blokad w procesach biznesowych Rozwiązane: Protokoły koordynacji transakcji rozproszonej

9 Rozproszone transakcje Każda usługa posiada własnego zarządcę transakcji Peer- to- peer Usługi wspólnie negocjują przeprowadzenie transakcji Podział na Transakcje atomowe Krótkie operacje Aktywności biznesowe Długie operacje Wiele usług

10 Usługi internetowe w sieciach lokalnych Ta sama architektura, mniejsza skala Wiele komponentów Luźno powiązane Mało zależności Brak centralnego zarządcy Brak konieczności kupna systemu middleware Ale: Brak jednego miejsca zarządzania systemem Dobra integracja heterogenicznych komponentów systemu Standaryzacja Brak adapterów Brak problemów biznesowych Odpowiedzialność za system spoczywa po jednej stronie

11 Technologie usług internetowych

12 Opis usługi (middleware) Interface DefiniPon Language (IDL) Własne standardy producentów W middleware opisuje dostępne funkcje Typy argumentów Typ wartości zwracanej Brak informacji o semantyce Założenie: znana z innego źródła Dokumentacja Od twórcy usługi Brak informacji o sposobie komunikacji Realizowany przez middleware

13 Elementy opisu usługi internetowej Wspólny język bazowy (ang. common base language) Meta- język Pozwala na opis każdego aspektu usługi (ogólność) Otwartość Maszynowe przetwarzanie Popularne rozwiązanie: XML JSON

14 Elementy opisu usługi internetowej (2) Interfejs Wykorzystanie języka bazowego Opisują dostępne metody Argumenty Typ zwracany Struktury i typy danych Adres usługi (URI) Protokół dostępu (np.: HTTP) Występuje w middleware Kontekst Przykład Web Services DescripPon Language (WSDL) Web ApplicaPon DescripPon Language (WADL)

15 Elementy opisu usługi internetowej (3) Protokół biznesowy Zbiór reguł dla konwersacji Sekwencja operacji wymagana do osiągnięcia celu biznesowego, np.: Zapytanie ofertowe Złożenie zamówienia Realizacja płatności Odbiór towaru Operacje dostępne w danym stanie przetwarzania Kompozycja usług Standardy Web Services ConversaPon Language (WSCL) Business Process ExecuPon Language for Web Services (BPEL)

16 Kompozycja usług Usługa podstawowa (ang. basic service) Samodzielnie wykonuje wszystkie operacje Usługa złożona (ang. composite service) Korzysta z innych usług Różni dostawcy Różne fizyczne lokalizacje Z punktu widzenia klienta usługi podział nie ma znaczenia

17 Elementy opisu usługi internetowej (4) Właściwości i semantyka Dodatkowe informacje o działaniu usługi, np.: Koszt korzystania z usługi Polityka zwrotów zakupionego towaru Universal DescripPon, Discovery and IntegraPon (UDDI) Standard opisu właściwości usługi Rejestr usług W założeniu globalny W praktyce stosowany wewnątrz przedsiębiorstw Wymaga centralnego zarządcy

Universal Description, Discovery and Integration (UDDI) 18 White pages Sposób uzyskania dostępu do usługi Nazwa usługodawcy Koszty Polityki Yellow pages klasyfikacje przemysłowe usług Standard Industrial ClassificaPon (SIC) North American Industry ClassificaPon System (NAICS) United NaPons Standard Products and Services Code (UNSPSC) Green pages URI Opis interfejsu Inne informacje techniczne

19 Protokoły komunikacji usług Protokół transportowy Ukrywa aspekty techniczne komunikacji Najczęściej HTTP TCP SMTP Named pipes Windows Obsługa komunikacji między komputerami

20 Protokoły komunikacji usług (2) Protokół wymiany wiadomości Ustandaryzowany sposób przekazania danych między usługami Np.: Simple Object Access Protocol (SOAP) REpresentaPonal State Transfer (REST)

21 SOAP Format wiadomości: XML Nagłówek Informacje specyficzne dla aplikacji Uwierzytelnienie Płatność Ciało Wywołanie procedury Argumenty Wartość zwracana Błąd = Wyjątek Binarne załączniki Koperta SOAP Nagłówek (opcjonalny) Ciało (wymagane) Błąd (opcjonalny) Załącznik (opcjonalny)

22 REST Brak narzuconego formatu wiadomości, zazwyczaj XML JSON Operacje typu CRUD na zasobach Zasób charakteryzowany przez URI Metody HTTP POST (C) Wstawienie GET (R) Odczyt PUT (U) nadpisanie DELETE (D) usunięcie Rzadziej PATCH częściowa aktualizacja OPTIONS lista dostępnych operacji

23 Protokoły komunikacji usług (3) Meta- protokoły (infrastruktura) Koordynacja wykonania usług Negocjacja protokołu wymiany wiadomości Wybór strony nadzorującej wykonanie usługi Ustalenie sposobu osadzenia identyfikatorów we wiadomościach Kontrola wykonania usług Zgodność z protokołami biznesowymi Przydział wiadomości do konwersacji Rozliczenia Np.: WS- CoordinaPon Precyzuje sposób użycia WSDL i SOAP

24 Protokoły komunikacji usług (4) Protokoły pośredniczące (poziome) Zapewnienie niezawodności Np.: WS- Reliability Transakcyjność Np.: WS- TransacPon Zarządzane przez infrastrukturę Ukryte przed programistą

25 Standardy WS- * Wymienione wcześniej to tylko wierzchołek góry lodowej Patrz: następny slajd

26 Biznesowe Systemy Rozproszone Źródło: hlps://www.innoq.com/resources/ws- standards- poster/

27 SOAP vs REST co lepsze? SOAP Stanowość usług Możliwa Zdalne wywołanie procedur Tak Operacje na zasobach (np.: usługi typu CRUD) Format wiadomości Tak Standaryzowany XML Ograniczenia: XML Schema REST Tak Brak ograniczeń Zazwyczaj JSON, XML Dostępne operacje Dowolne Ustalone GET, POST, PUT, DELETE, OPTIONS Transakcyjność Infrastruktura Ręczna Kompozycja usług Infrastruktura Ręczna Zapewnienie niezawodności Infrastruktura Infrastruktura* W zakresie redundancji serwerów, HTTP Brak wsparcia na poziomie aplikacyjnym

28 REST plusy? Niska złożoność infrastruktury Wiele rozwiązań open source Powszechne technologie Niskie koszty wejścia Brak opłat licencyjnych Niewielki nakład pracy Proste założenia Zasoby i kolekcje zasobów Operacje CRUD Łatwość integracji nieskomplikowanych usług

29 SOAP vs REST wnioski SOAP REST Zastosowanie Zastosowanie Skomplikowany interfejs usługi Dużo metod Rozbudowane typy danych Kompozycja usług Komunikacja systemów Prosty interfejs usługi Wyrażalny przez CRUD Niska złożoność typów danych Samodzielne usługi Usługi dodatkowe Np.: Strony internetowe

30 Architektura usług internetowych

31 Dwie perspektywy architektury SOA Perspektywa wewnętrzna Usługa internetowa jest punktem wejścia do wewnętrznego systemu Ukrywa złożoność systemu System zarządzany przez middleware Wiele usług składowych (innych niż internetowe) Raczej homogeniczne Perspektywa zewnętrzna Wiele usług internetowych Brak centralnego zarządcy Meta- protokoły koordynacji usług Zazwyczaj udostępnione publicznie

32 Dwie perspektywy architektury SOA (2) Perspektywa zewnętrzna Dostawca usług A Perspektywa wewnętrzna Usługa internetowa Adapter Middleware Klient Aplikacja kliencka Internet Dostawca usług C Usługa C1 Usługa C2 Usługa C3 Usługa 1 Usługa 2 UDDI Dostawca usług B Dostawca usług D Usługa B1 Usługa B2

33 Dwie perspektywy architektury SOA (3) Podział architektury Nie musi wynikać z różnych dostawców Można wykorzystać podobne rozgraniczenie wewnątrz jednego przedsiębiorstwa Ważny dla zrozumienia przeznaczenia technologii Technologie/produkty wyłącznie do zastosowań wewnętrznych Technologie dla zastosowań zewnętrznych Standaryzacja Głównie perspektywa zewnętrzna

34 Perspektywa wewnętrzna Usługa internetowa Kolejny poziom w architekturze n- Per Spina funkcjonalność poziomów niższych Rola komponentu prezentacji Rola adaptera formatu wiadomości

35 Perspektywa zewnętrzna Usługa internetowa Autonomiczny, izolowany komponent Połączenia peer- to- peer Katalog usług (UDDI) Może być postrzegany jako globalny zarządca Opcjonalny Brak wglądu w szczegóły implementacyjne usługi Brak kontroli nad wykonaniem usług Kontrola nad dostępem do definicji interfejsów usług, ale nie do usług!

36 Wiązanie usług internetowych Statyczne Dynamiczne

37 Wiązanie statyczne Lokalna konfiguracja klienta URI usługi Dane dostępowe Opis interfejsu Parametry protokołów biznesowych Silne związanie klienta z usługą Dobra wydajność Nie trzeba wyszukiwać usługi Ponowne wdrożenie (zmiana konfiguracji) klienta Przerwy techniczne, awarie Zmiana adresu usługi Zmiana interfejsu usługi Zmiana parametrów protokołów biznesowych Trudno zapewnić jawne równoważenie obciążenia (przez świadomy wybór innej usługi przez klienta)

38 Wiązanie dynamiczne Lokalna konfiguracja usługi URI katalogu usług Konfiguracja pobierana z katalogu usług URI usługi Dane dostępowe Opis interfejsu usługi Parametry protokołów biznesowych Dodatkowy poziom abstrakcji Gorsza wydajność wymaga odpytania dodatkowej usługi Dodatkowe ogniwo podatne na awarie Większa elastyczność Zmiana w usługach nie pociąga za sobą zmiany w kliencie

39 Garść statystyk

40 ProgrammableWeb Nietypowa usługa katalogowa Portal katalogujący publiczne API usług Wyszukiwarka usług Przykłady użycia usług Ponad 14000 usług

41 Źródło: hlp://www.programmableweb.com/api- research

42 Źródło: hlp://www.programmableweb.com/api- research

43 Standardy w użyciu Źródło: hlp://www.programmableweb.com/news/rest- losing- its- flair- rest- api- alternapves/analysis/2013/12/19

44 Źródło: hlp://www.slideshare.net/jmusser/pw- glue- conmay2010

45 Źródło: hlp://www.slideshare.net/jmusser/pw- glue- conmay2010

46 Popularność wśród programistów Źródło: hlps://www.google.pl/trends

47 Popularność wśród programistów (2) Źródło: hlps://www.google.pl/trends

48 Dziękuję za uwagę Proszę o pytania