Standardy w Rodzaje Przykłady Politechnika Wrocławska Wydział Informatyki i Zarządzania 17 marca 2009
Standardy w Rodzaje Przykłady Plan prezentacji 1 Wstęp 2 Standardy w 3 4 Rodzaje 5 Przykłady 6
Standardy w Rodzaje Przykłady Co to jest Web Service? Definicje Istota Web service to: Definicja wg W3C: System software owy zaprojektowany w celu umożliwienia interakcji (takich jak wymiana danych, wywoływanie procedur pomiędzy komputerami w sieci). Definicja wg strony java.com: Aplikacja sieciowa używająca otwartych (opartych na XMLu) standardów oraz protokołów służących do wymiany danych z klientami.
Standardy w Rodzaje Przykłady Co to jest Web Service? Definicje Istota Web service to: Definicja wg W3C: System software owy zaprojektowany w celu umożliwienia interakcji (takich jak wymiana danych, wywoływanie procedur pomiędzy komputerami w sieci). Definicja wg strony java.com: Aplikacja sieciowa używająca otwartych (opartych na XMLu) standardów oraz protokołów służących do wymiany danych z klientami.
Standardy w Rodzaje Przykłady Co to jest Web Service? Definicje Istota Web service to: Definicja wg W3C: System software owy zaprojektowany w celu umożliwienia interakcji (takich jak wymiana danych, wywoływanie procedur pomiędzy komputerami w sieci). Definicja wg strony java.com: Aplikacja sieciowa używająca otwartych (opartych na XMLu) standardów oraz protokołów służących do wymiany danych z klientami.
Standardy w Rodzaje Przykłady Co to jest Web Service? c.d. Definicje Istota Definicja wg IBM: Oprogramowanie identyfikowane przez adres URL, którego publiczne interfejsy są zdefiniowane przy pomocy języka XML. Definicje te mogą być pobierane i obsługiwane przy pomocy innego oprogramowania, które dzięki nim jest w stanie korzystać z usługi sieciowej.
Istota Wstęp Standardy w Rodzaje Przykłady Definicje Istota 1 Nie dostarczają interfejsu użytkownika a jedynie logikę biznesową tworzonej aplikacji 2 Udostępnienie usługi polega na utworzeniu przez programistę interfejsu (strony www lub samodzielnej aplikacji) 3 Nie są związane z żadnym konkretnym językiem programowania oraz platformą systemową
Istota Wstęp Standardy w Rodzaje Przykłady Definicje Istota 1 Nie dostarczają interfejsu użytkownika a jedynie logikę biznesową tworzonej aplikacji 2 Udostępnienie usługi polega na utworzeniu przez programistę interfejsu (strony www lub samodzielnej aplikacji) 3 Nie są związane z żadnym konkretnym językiem programowania oraz platformą systemową
Istota Wstęp Standardy w Rodzaje Przykłady Definicje Istota 1 Nie dostarczają interfejsu użytkownika a jedynie logikę biznesową tworzonej aplikacji 2 Udostępnienie usługi polega na utworzeniu przez programistę interfejsu (strony www lub samodzielnej aplikacji) 3 Nie są związane z żadnym konkretnym językiem programowania oraz platformą systemową
Istota Wstęp Standardy w Rodzaje Przykłady Definicje Istota 1 Nie dostarczają interfejsu użytkownika a jedynie logikę biznesową tworzonej aplikacji 2 Udostępnienie usługi polega na utworzeniu przez programistę interfejsu (strony www lub samodzielnej aplikacji) 3 Nie są związane z żadnym konkretnym językiem programowania oraz platformą systemową
Standardy w Rodzaje Przykłady Kto ustala standardy? Instytucje standaryzujące W3C - World Wide Web Consortium www.w3.org OASIS - Organization for the Advancement of Structured Information Standards www.oasis-open.org WS-I - Interoperability Organization www.ws-i.org
Standardy w Rodzaje Przykłady Instytucje standaryzujące Główne standardy stosowane w 1 XML - kodowanie 2 - przesyłanie informacji 3 - definicje usług 4 - wyszukiwanie usług
Standardy w Rodzaje Przykłady Instytucje standaryzujące Główne standardy stosowane w 1 XML - kodowanie 2 - przesyłanie informacji 3 - definicje usług 4 - wyszukiwanie usług
Standardy w Rodzaje Przykłady Instytucje standaryzujące Główne standardy stosowane w 1 XML - kodowanie 2 - przesyłanie informacji 3 - definicje usług 4 - wyszukiwanie usług
Standardy w Rodzaje Przykłady Instytucje standaryzujące Główne standardy stosowane w 1 XML - kodowanie 2 - przesyłanie informacji 3 - definicje usług 4 - wyszukiwanie usług
Standardy w Rodzaje Przykłady Instytucje standaryzujące Główne standardy stosowane w 1 XML - kodowanie 2 - przesyłanie informacji 3 - definicje usług 4 - wyszukiwanie usług
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Charakterystyka protokołu służy do przesyłania informacji pomiędzy urządzeniami korzystającymi z danej usługi sieciowej
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Charakterystyka protokołu służy do przesyłania informacji pomiędzy urządzeniami korzystającymi z danej usługi sieciowej przesyłane wiadomości zapisane są w standardzie XML
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Charakterystyka protokołu służy do przesyłania informacji pomiędzy urządzeniami korzystającymi z danej usługi sieciowej przesyłane wiadomości zapisane są w standardzie XML do przesyłania wykorzystywany jest najczęściej protokół HTTP
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Charakterystyka protokołu służy do przesyłania informacji pomiędzy urządzeniami korzystającymi z danej usługi sieciowej przesyłane wiadomości zapisane są w standardzie XML do przesyłania wykorzystywany jest najczęściej protokół HTTP może być przesyłany również przez SMTP, FTP, i inne
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Główne zalety protokołu jest niezależny od zastosowanego języka programowania
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Główne zalety protokołu jest niezależny od zastosowanego języka programowania jest niezależny od zastosowanej platformy systemowej
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Główne zalety protokołu jest niezależny od zastosowanego języka programowania jest niezależny od zastosowanej platformy systemowej daje możliwość zastosowania wielu różnych protokołów sieciowych
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Główne zalety protokołu jest niezależny od zastosowanego języka programowania jest niezależny od zastosowanej platformy systemowej daje możliwość zastosowania wielu różnych protokołów sieciowych jest dobrze wyspecyfikowany i rozszerzalny
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Struktura wiadomości Wiadomość składa się z trzech części:
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Struktura wiadomości Wiadomość składa się z trzech części: 1 Koperty (Envelope) - zawiera w sobie całą wiadomość, definiuje przestrzeń nazw
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Struktura wiadomości Wiadomość składa się z trzech części: 1 Koperty (Envelope) - zawiera w sobie całą wiadomość, definiuje przestrzeń nazw 2 Nagłówka (Header) - opcjonalna część, może zawierać informacje informacje dotyczące routingu, autentykacji, priorytetu itp.
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Struktura wiadomości Wiadomość składa się z trzech części: 1 Koperty (Envelope) - zawiera w sobie całą wiadomość, definiuje przestrzeń nazw 2 Nagłówka (Header) - opcjonalna część, może zawierać informacje informacje dotyczące routingu, autentykacji, priorytetu itp. 3 Ciała wiadomości (Body) - zawiera właściwą treść komunikatu
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Przykładowa wiadomość :
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Komunikacja za pomocą działa zazwyczaj na zasadzie żądanie/odpowiedź (request/response)
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Do wywołania metody przy użyciu potrzebujemy następujących danych: 1 położenie punktu końcowego (jego URL),
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Do wywołania metody przy użyciu potrzebujemy następujących danych: 1 położenie punktu końcowego (jego URL), 2 nazwę wywoływanej metody,
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Do wywołania metody przy użyciu potrzebujemy następujących danych: 1 położenie punktu końcowego (jego URL), 2 nazwę wywoływanej metody, 3 nazwy i wartości parametrów,
Standardy w Rodzaje Przykłady - simple object access protocol Instytucje standaryzujące Do wywołania metody przy użyciu potrzebujemy następujących danych: 1 położenie punktu końcowego (jego URL), 2 nazwę wywoływanej metody, 3 nazwy i wartości parametrów, 4 sygnaturę metody (opcjonalnie), 5 danych nagłówkowych (opcjonalnie).
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Description Language ( Description Language) wykorzystuje język XML do opisu punktów dostępu do usług sieciowych służy do definiowania usługi sieciowej oraz wszystkich dostarczanych przez nią właściwości (struktury danych, procedury itp.)
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Description Language Elementy pliku : Service - zbiór punktów końcowych (adresów URL), pod którymi widziana jest dana usługa
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Description Language Elementy pliku : Service - zbiór punktów końcowych (adresów URL), pod którymi widziana jest dana usługa Binding - specyfikuje powiązania z protokołami HTTP i
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Description Language Elementy pliku : Service - zbiór punktów końcowych (adresów URL), pod którymi widziana jest dana usługa Binding - specyfikuje powiązania z protokołami HTTP i PortType - określa operacje jakie mogą być wykonywane wewnątrz danej usługi
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Description Language Elementy pliku : Service - zbiór punktów końcowych (adresów URL), pod którymi widziana jest dana usługa Binding - specyfikuje powiązania z protokołami HTTP i PortType - określa operacje jakie mogą być wykonywane wewnątrz danej usługi Types - specyfikuje abstrakcyjne typy danych wykorzystywane w ramach usługi
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Description Language Przykładowy fragment pliku :
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Description Language Programiści mogą wykorzystać definicje do wygenerowania kodu komunikującego się z usługą opisywaną przez dany plik. Generowanie kodu pozwala uniknąć trudnej implementacji wysyłania i otrzymywania komunikatów za pośrednictwem różnych protokołów, co zwiększa dostępność usługi XML Web Service. Reasumując, plik zawiera wszystkie dane potrzebne do napisania programu współpracującego z daną usługą Web Service.
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Universal Description, Discovery and Integration - Universal Description, Discovery and Integration Baza danych przechowująca deskryptory usług sieciowych (pliki ) umożliwiająca twórcom klientów web services lub samym aplikacjom klienckim łatwe i szybkie wyszukiwanie potrzebnych usług sieciowych
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Universal Description, Discovery and Integration W skład wpisu w bazie wchodzą tzw:
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Universal Description, Discovery and Integration W skład wpisu w bazie wchodzą tzw: Białe strony (White Pages)- zawierają opis i dane teleadresowe firmy oferującej dane usługi
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Universal Description, Discovery and Integration W skład wpisu w bazie wchodzą tzw: Białe strony (White Pages)- zawierają opis i dane teleadresowe firmy oferującej dane usługi Żółte strony (Yellow Pages) wyszczególniają kategorie branżowe, do których należy dana firma
Standardy w Rodzaje Przykłady Instytucje standaryzujące - Universal Description, Discovery and Integration W skład wpisu w bazie wchodzą tzw: Białe strony (White Pages)- zawierają opis i dane teleadresowe firmy oferującej dane usługi Żółte strony (Yellow Pages) wyszczególniają kategorie branżowe, do których należy dana firma Zielone strony (Green Pages) zawierają szczegółowy opis funkcji (interfejsu programistycznego) dostarczanych przez web service (najczęściej plik deskryptora )
Standardy w Rodzaje Przykłady Opis działania Web Service Opis działania Schemat działania 1 Program A poszukuje usługi sieciowej np. w rejestrze 2 Baza informuje program A, że dana usługa jest świadczona przez program B 3 Program A łączy się z usługą świadczoną przez program B 4 Program A pobiera opis usługi (plik ), dzięki czemu może się komunikować z usługą, a program B wie jak odpowiadać na żądania 5 Program A wysyła wiadomość z konkretnym żądaniem 6 Program B odpowiada odsyłając odpowiednią wiadomość
Standardy w Rodzaje Przykłady Schemat działania Web Service Opis działania Schemat działania Rysunek: Ogólny schemat działania usługi sieciowej
Standardy w Rodzaje Przykłady Podstawowe rodzaje RPC SOA WebServices REST RPC SOA RESTful
RPC Wstęp Standardy w Rodzaje Przykłady RPC SOA WebServices REST Zdalne wywołanie procedur zwane także (XML-RPC) najstarszy typ usług, skupia się na mapowaniu funkcji i metod specyficznych dla danych języków programowania i udostępnieniu ich w pliku nie spełnia warunków luźnego powiązania z tego powodu jest krytykowany, odchodzi się od tego typu
SOA Wstęp Standardy w Rodzaje Przykłady RPC SOA WebServices REST Usługa implementujące architekturę zgodną z koncepcją SOA (architektura zorientowana na usługi) podstawową częścią komunikacji jest wiadomość a nie konkretne operacje (stąd nazywana bywa usługą zorientowaną na wiadomości - message-oriented service ) są obecnie wspierane przez większość głównych dostawców oprogramowania i analityków w przeciwieństwie do RPC, SOA WS skupia się na treści dostarczanej przez, a nie na szczegółach implementacyjnych spełnia warunki luźnego powiązania (zmiana części nie pociąga zmian na innych maszynach) większa przezroczystość dla użytkownika
REST Wstęp Standardy w Rodzaje Przykłady RPC SOA WebServices REST REST - Representational State Transfer najnowszy typ usług sieciowych przesyłanie danych opiera się o podstawowe funkcje protokołu HTTP GET, POST, PUT, DELETE dostęp do danych odbywa się bezpośrednio poprzez URL (podobnie jak odbieranie wyników) uwaga skupiona jest na interakcji z zasobami, a nie na wiadomościach czy operacjach może nie wykorzystywać
Standardy w Rodzaje Przykłady Popularne usługi sieciowe Projekt Stonehenge Najpopularniejsze, ogólnodostępne usługi sieciowe: Allegro WebAPI Google API Last.fm API Facebook API Flickr API i inne...
Projekt Stonehenge Wstęp Standardy w Rodzaje Przykłady Popularne usługi sieciowe Projekt Stonehenge O projekcie Projekt Stonehenge to stosunkowo nowa inicjatywa, której celem jest opracowanie i udostępnienie zestawu przykładowych aplikacji realizujących koncepcje SOA w celu zademonstrowania interoperacyjności (zdolności efektywnej współpracy) pomiędzy rożnymi technologiami przy użyciu standardów aktualnie zdefiniowanych przez W3C i OASIS.
Standardy w Rodzaje Przykłady Projekt Stonehenge c.d. Popularne usługi sieciowe Projekt Stonehenge Inicjatorami projektu są firmy WSO2, Microsoft, Red Hat i Apache.
Standardy w Rodzaje Przykłady Projekt Stonehenge c.d. Popularne usługi sieciowe Projekt Stonehenge Inicjatorami projektu są firmy WSO2, Microsoft, Red Hat i Apache. Pierwszym osiągnięciem było zademonstrowanie interoperacyjności pomiędzy dwoma web service ami dotyczącymi rynku akcji WSO2 StockTrader (stworzonym przez firmę WSO2, na wielu rożnych platformach m.in. Axis2/Java, PHP, Ruby, Perl, Python, Spring) oraz Microsoft StockTrader (napisanym przez firmę Microsoft na platformie.net).
Standardy w Rodzaje Przykłady Projekt Stonehenge c.d. Popularne usługi sieciowe Projekt Stonehenge Inicjatorami projektu są firmy WSO2, Microsoft, Red Hat i Apache. Pierwszym osiągnięciem było zademonstrowanie interoperacyjności pomiędzy dwoma web service ami dotyczącymi rynku akcji WSO2 StockTrader (stworzonym przez firmę WSO2, na wielu rożnych platformach m.in. Axis2/Java, PHP, Ruby, Perl, Python, Spring) oraz Microsoft StockTrader (napisanym przez firmę Microsoft na platformie.net). Jednym z głównym zamierzeń projektu jest przyciągnięcie uwagi i wkład ze strony największych firm wśród twórców aplikacji segmentu SOA.
Standardy w Rodzaje Przykłady Popularne usługi sieciowe Projekt Stonehenge
I Wstęp Standardy w Rodzaje Przykłady Architecture - W3C http://www.w3.org/tr/ws-arch/ Description Language () 1.1 http://www.w3.org/tr/wsdl/ Version 1.2 Part 1: Messaging Framework (Second Edition) http://www.w3.org/tr/soap12-part1/ IBM SOA and http://www.ibm.com/developerworks/webservices/ The Protocol Stack http://roadmap.cbdiforum.com/reports/protocols/ Glossary http://www.w3.org/tr/ws-gloss/
II Wstęp Standardy w Rodzaje Przykłady Microsoft Understanding http://msdn.microsoft.com/pl-pl/library/cc676567.aspx Microsoft Understanding http://msdn.microsoft.com/pl-pl/library/cc676581.aspx Microsoft Usługi XML http://msdn.microsoft.com/pl-pl/library/cc676588.aspx Specification http://uddi.xml.org/ Project Stonehenge Proposal http://wiki.apache.org/incubator/stonehengeproposal
Standardy w Rodzaje Przykłady Dziękuję za obejrzenie prezentacji