Programowanie Komponentowe WebAPI

Podobne dokumenty
Wybrane działy Informatyki Stosowanej

Programowanie obiektowe

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie współbieżne i rozproszone

Komunikacja międzysystemowa

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Komunikacja i wymiana danych

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Mechanizmy pracy równoległej. Jarosław Kuchta

OpenLaszlo. OpenLaszlo

Wybrane działy Informatyki Stosowanej

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

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

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

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

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

Spring Web MVC, Spring DI

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

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

JAX-RS czyli REST w Javie. Adam Kędziora

XML-RPC: Zdalne wykonywanie procedur

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

SOA Web Services in Java

76.Struktura oprogramowania rozproszonego.

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Zaawansowany kurs języka Python

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

1 Wprowadzenie do J2EE

Spring, Maven, Postman, Debugger

Architektura aplikacji

Usługi sieciowe (Web Services)

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

Ministerstwo Finansów

Dokumentacja Techniczna. Dokumentacja techniczna usługi płatności mobilnych

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

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Wywoływanie metod zdalnych

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

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Wywoływanie metod zdalnych

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Systemy obiegu informacji i Protokół SWAP "CC"

REFERAT PRACY DYPLOMOWEJ

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

Programowanie Sieciowe 1

DOKUMENTACJA INTERFEJSU API - HTTPS

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Paweł Rajba

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

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Języki programowania wysokiego poziomu WWW

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Rozproszone systemy Internetowe

Specyfikacja techniczna. mprofi Interfejs API

Zastosowanie komponentów EJB typu Session

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Środowisko NetBeans. Paweł Boguszewski

Dokumentacja REST API v 3.0. Kraków, 7 marca FreshMail, ul. Fabryczna 20a, Kraków tel , freshmail.

Aplikacje RMI

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

Systemy Rozproszone Technologia ICE

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Aplikacje RMI Lab4

Dokumentacja techniczna API systemu SimPay.pl

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

Rozwiązanie Compuware Data Center - Real User Monitoring

REFERAT PRACY DYPLOMOWEJ

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

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

Programowanie. Dodatek - uzupełnienie wiadomości. mgr inż. Krzysztof Szwarc. Sosnowiec,

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

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

Simple Object Access Protocol

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

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

Programowanie współbieżne i rozproszone

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

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

Program szkolenia: REST i Microservices w PHP

Remote Method Invocation 17 listopada 2010

Dokumentacja aplikacji Szachy online

Wybrane działy Informatyki Stosowanej

Projekt SGI. WP 3.1 Wirtualne laboratorium i teleimersja Jacek Cała. (cala@ics.agh.edu.pl) (luke@ics.agh.edu.pl) Łukasz Czekierda

Transkrypt:

Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku

WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet, ale może to być usługa w sieci lokalnej, albo lokalnym systemie. Usługę dostępną przez Internet nazywamy web service. WebAPI najczęściej używana w aplikacjach webowych. WebAPI może być zdefiniowana z użyciem: JSON, YAML, Google Protocol Buffers, WSDL, SOAP, XML, własnościowe, jak Java RMI czy.net. Najpopularniejsze WebAPI: JSON w modelu REST po HTTP, bo jest prosty i korzysta z gotowych i sprawdzonych technologii. Zaleta #1: WebAPI jest całkowicie niezależne od platformy. Zaleta #2: pozwala na pełną separację serwera i klienta. slajd 2

Model REST Representational state transfer (REST) REST jest modelem komunikacji klient-server. Protokołem warstwy aplikacji ISO/OSI dla REST jest HTTP. Korzysta z metod HTTP: GET, POST, PUT, DELETE, itd. Idea REST: aplikacja webowa przechodzi między swoimi stanami przez wykonanie metod. Komunikacja bezstanowa (stateless), czyli serwer: wykonuje usługę tylko z użyciem danych w żądaniu przesłanym przez klienta, nie pamięta historii komunikacji z klientem, przechowuje dane dla aplikacji webowej. REST = reprezentacyjna zmiana stanu slajd 3

JSON JSON = JavaScrip Object Notation JSON to tekstowy język opisu danych, podzbiór języka JaveScript. Prosty w nauczeniu się, prosty w implementacji, mniej błędów. Mały narzut danych organizacyjnych. Wspierany przez przeglądarki WWW, bo one obsługują JavaScript. Posiada wiele bibliotek dla wielu języków. Mniejsze możliwości mogą okazać się lepsze (less is more). Przykład: Google Photos udostępnia WebAPI w JSONie. slajd 4

JSON - przykład { } NAME: " A l b e r t A t t a r d ", LANGUAGE: " Java ", LOCATION : " Malta ", EXAM: { SUBJECT : " Programming ", GRADE: 4. 5 } slajd 5

YAML YAML = Yaml Ain t Markup Language YAML to tekstowy język opisu danych YAML jest rozszerzeniem języka JSON Tak więc narzędzie YAML wczyta dane JSON YAML koncentruje się na czytelności YAML ma kilka rozszerzeń, których brakuje w JSONie YAML jest używany przez projekt Swagger slajd 6

YAML - przykład f a k t u r a : VAT123/2016 data : 2012 08 06 k l i e n t : i m i e : I r e k nazwisko : S z c z e s n i a k slajd 7

WSDL, SOAP, CORBA Są zbiorem spefyfikacji i implementacji dla rozproszonej komunikacji. Pozwalają zdefiniować dane i operacje na danych. Bardzo rozbudowane narzędzia, których część funkcjonalności jest rzadko stosowana. Problem: implementacje rzadko stosowanych funkcjonalności często mają błędy. Moje doświadczenie: błąd w implementacji w CORBY zatrzymał projekt na kilka tygodni. WSDL, SOAP i CORBA są rzadko stosowane, bo są trudne w użyciu. Można się z nimi ciągle spotkać, na przykład w bazach danych ORACLE. slajd 8

Google Protocol Buffers Format przesyłu binarnych i skompresowanych wiadomości. Pozwala na definicję typów wiadomości, co jest kompilowane przez dostarczony kompilator do biblioteki, którą używamy w swoim kodzie. Wspiera różne języki: C++, Java, C#, Python. Nie pozwala na dynamiczoną modyfikację typów wiadomości, co czyni z niego niszowy protokół komunikacji międzyserwerowej, ale bardzo wydajny. Zachowuje kompatybilność między różnymi wersjami wiadomości. slajd 9

Java RMI Java Remote Method Invocation (RMI) Protokół komunikacji klient-server w Javie. Implementuje obiekty zdalne i wywołanie metod na tych obiektach. Java załatwia serializację obiektów, co pozwala RMI na przesyłanie obiektów. Zaawansowane, nowatorskie, łatwe i wygodne w użyciu narzędzie. Jedna z perełek programowania. Stosuje odpowiedzi zwrotne inicjowane przez serwer, które nie przechodzą przez translację adresów IPv4, co przekreśla RMI w Internecie. Zastosowanie: skomunikacja oprogramowania w Javie w sieciach lokalnych. WADA: serwer i klient są ze sobą ściśle związani. slajd 10

API Blueprint, Swagger Pozwalają na definiowanie WebAPI aplikacji: typów danych, możliwych operacji, dokumentacji, testów. Generują kod dla różnych języków. API Blueprint (Swagger już nie) generuje kod w C++ dla klienta i serwera. Wolne oprogramowanie (licencje MIT, Apache) Dostarczają narzędzia do testowania WebAPI. API Blueprint będziemy używać na laboratorium. slajd 11

Podsumowanie WebAPI jest głównie dla aplikacji webowych. WebAPI jest niezależnym od platformy interfejsem usługi. WebAPI pozwala na pełną separację klienta i serwera. WebAPI tworzyć najlepiej z JSON, REST i HTTP. Narzędzia WebAPI: API Blueprint, Swagger. slajd 12

Dziękuję za uwagę.