Równoległość w środowisku rozproszonym. Jarosław Kuchta Programowanie Współbieżne

Podobne dokumenty
Architektura aplikacji sieciowych. Architektura klient-serwer

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

Programowanie komponentowe

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

Komunikacja i wymiana danych

Wybrane problemy modelu usługowego

Wybrane działy Informatyki Stosowanej

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

Rozproszone systemy Internetowe

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Programowanie Komponentowe WebAPI

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

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

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

Wybrane działy Informatyki Stosowanej

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

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

Języki programowania wysokiego poziomu WWW

Technologie internetowe

ABC WCF.

Wielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

XML-RPC: Zdalne wykonywanie procedur

Web Service y w Javie

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

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Simple Object Access Protocol

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

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Programowanie współbieżne i rozproszone

Platforma.NET Wykład 13 Tworzenie usług sieciowych SOAP i WCF. Spis treści. Marek Sawerwain. 7 czerwca Notatki. Notatki

Healthix Consent Web-Service Specification

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

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

Orange Send MMS. Autoryzacja. Metoda HTTP. Parametry wywołania. API wyślij MMS dostarcza wiadomości MMS. Basic POST

Zaawansowany kurs języka Python

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

Programowanie w Internecie

1. Model klient-serwer

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Sieciowe programowanie rozproszone SOA, WebServices i systemy gridowe. Krzysztof Banaś Systemy rozproszone 1

76.Struktura oprogramowania rozproszonego.

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

Komunikacja międzysystemowa

Integracja Obieg Dokumentów - GiS Spis treści

Programowanie w Internecie

Wybrane działy Informatyki Stosowanej

1 Wprowadzenie do J2EE

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHNICZNA 1

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

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

Ministerstwo Finansów

Web Services / Gridy

Technologie usług internetowych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Sieciowe systemy informacyjne

SOAP. Autor: Piotr Sobczak

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

Adres IP

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

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

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Usługi sieciowe (Web Services)

Sprawozdanie nr 4. Ewa Wojtanowska

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

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

Rozproszone technologie Web Services

Gatesms.eu Mobilne Rozwiązania dla biznesu

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji.

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Ministerstwo Finansów

Katalog książek cz. 3: Web Service

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Zastosowanie informatyki w gospodarce Wykład 4

Michał Jankowski. Remoting w.net 2.0

Bazy danych 2. Wykład 1

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

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

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

Laboratorium nr 4 - Badanie protokołów WWW

System DiLO. Opis interfejsu dostępowego v. 2.0

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

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja


Dr Michał Tanaś(

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

SCHEMAT DOKUMENTU POTWIERDZENIA GENEROWANEGO PRZEZ ZUS

XML - wprowadzenie. <message> <text> Dobrze </text> </message> <message> <text> Źle </message> </text> <message> <message> <text> Źle.

Rozdział ten przedstawia jeden ze sposobów implementacji usług sieciowych XML i aplikacji klienckich w PHP. Oprogramowanie

Tworzenie i wykorzystanie usług sieciowych

Zaawansowany kurs języka Python

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

Stos TCP/IP. Warstwa aplikacji cz.2

Programowanie współbieżne i rozproszone

Transkrypt:

Równoległość w środowisku rozproszonym Jarosław Kuchta Programowanie Współbieżne

Zagadnienia WebServices WCF RIA Równoległość rozproszona 2

WebServices WebService technologia wywołania zdalnego funkcji na oddalonych komputerach dane przekazywane przez protokół HTTP z wykorzystaniem XML. usługi zdefiniowane za pomocą języka WSDL opublikowane i wyszukane w rejestrze usług za pomocą mechanizmu UDDI wywołane zdalnie przez protokół SOAP Równoległość rozproszona 3

HTTP protokół przesyłania dokumentów hipertekstowych w sieci WWW określa sposób komunikacji między klientem a serwerem klientem jest oprogramowanie na komputerze użytkownika (najczęściej przeglądarka WWW) serwer jest oprogramowanie na komputerze oddalonym, tu serwer WWW (np. IIS, Apache) klient wysyła żądania do serwera, serwer wysyła odpowiedzi do klienta wykorzystywany jest standardowo port 80 TCP żądanie jest formułowane na podstawie URL w pasku przeglądarki, który zawiera adres serwera, nazwę zasobu (strony, usługi) na serwerze i parametry. żądania i odpowiedzi mają postać komunikatów tekstowych z rozbudowanymi nagłówkami protokół HTTP jest bezstanowy, tzn. nie zapamiętuje stanu klienta gdy potrzeba zapamiętać stan klienta, to wykorzystuje się mechanizm: ciasteczek po stronie klienta sesji po stronie serwera Równoległość rozproszona 4

Przykład URL Równoległość rozproszona 5

Przykład żądania HTTP GET / HTTP/1.1 (prośba o zwrócenie dokumentu o URI / zgodnie z protokołem HTTP 1.1) Host: host.com (wymagany w HTTP 1.1 nagłówek Host służący do rozpoznania hosta, jeśli serwer na jednym IP obsługuje kilka VirtualHostów) User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7 (nazwa aplikacji klienckiej) Accept: text/xml,application/xml,application/xhtml+xml,text/html; q=0.9,text/plain;q=0.8 (akceptowane/nieakceptowane przez klienta typy plików) Accept-Language: pl,en-us;q=0.7,en;q=0.3 (preferowany język strony) Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 (preferowane kodowanie znaków) Keep-Alive: 300 (czas, następnego żądania w przypadku połączenia stałego) Connection: keep-alive (chęć nawiązania połączenia stałego serwerem) znak powrotu karetki i nowej linii (CRLF) Równoległość rozproszona 6

Przykład odpowiedzi HTTP HTTP/1.1 200 OK (kod odpowiedzi HTTP) Date: Thu, 20 Dec 2001 12:04:30 GMT (czas serwera) Server: Apache/2.0.50 (Unix) DAV/2 (opis aplikacji serwera) Set-Cookie: PSID=d6dd02e9957fb162d2385ca6f2829a73; path=/ (ciasteczko) Expires: Thu, 19 Nov 1981 08:52:00 GMT (czas wygaśnięcia zawartości) Cache-Control: no-store, no-cache, must-revalidate (wykorzystanie pamięci podręcznej) Pragma: no-cache (j.w. - stara, niestandardowa metoda.) Keep-Alive: timeout=15, max=100 Connection: Keep-Alive (akceptacja połączenia stałego) Transfer-Encoding: chunked (typ kodowania zawartości stosowanej przez serwer) Content-Type: application/xhtml+xml; charset=utf-8 (MIME i strona kodowa dokumentu) znak powrotu karetki i nowej linii (CRLF) zawartość dokumentu Równoległość rozproszona 7

XML XML (Extensible Markup Language) uniwersalny język formalny przeznaczony do wymiany różnych danych w strukturalizowany sposób. standard W3C w Internecie Równoległość rozproszona 8

Przykład dokumentu XML <?xml version="1.0" encoding="utf-8"?> <ksiazka-telefoniczna kategoria="bohaterowie książek"> <!-- komentarz --> <osoba charakter="dobry"> <imie>ambroży</imie> <nazwisko>kleks</nazwisko> <telefon>123-456-789</telefon> </osoba> <osoba charakter="zły"> <imie>alojzy</imie> <nazwisko>bąbel</nazwisko> <telefon/> </osoba> </ksiazka-telefoniczna> Równoległość rozproszona 9

WSDL Web Services Description Language oparty na XML język definiowania usług sieciowych Równoległość rozproszona 10

Struktury XML w WSDL Service/Service definicja usługi jako zbioru funkcji Port/Endpoint port TCP umieszczany w URL żądania wywołania Binding/Binding sposób podłączenia (protokół i interfejs) PortType/Interface operacje, które mogą być wykonane i komunikaty wykorzystywane do wywołania Operation/Operation opis pojedynczej operacji Message/N.A. komunikat odpowiadający operacji Types/Types typy danych wykorzystywanych w usługach Równoległość rozproszona 11

Przykład WSDL (1) definicja przestrzeni nazw <?xml version="1.0" encoding="utf-8"?> <description xmlns="http://www.w3.org/ns/wsdl" xmlns:tns="http://www.tmsws.com/wsdl20sample" xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/" targetnamespace="http://www.tmsws.com/wsdl20sample"> <types> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns="http://www.tmsws.com/wsdl20sample" targetnamespace="http://www.example.com/wsdl20sample"> Równoległość rozproszona 12

Przykład WSDL (2) definicja typu żądania <xs:element name="request"> <xs:complextype> <xs:sequence> <xs:element name="header" maxoccurs="unbounded"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element> <xs:element name="body" type="xs:anytype" minoccurs="0"/> </xs:sequence> <xs:attribute name="method" type="xs:string" use="required"/> <xs:attribute name="uri" type="xs:anyuri" use="required"/> </xs:complextype> </xs:element> Równoległość rozproszona 13

Przykład WSDL (3) definicja typu odpowiedzi <xs:element name="response"> <xs:complextype> <xs:sequence> <xs:element name="header" maxoccurs="unbounded"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element> <xs:element name="body" type="xs:anytype" minoccurs="0"/> </xs:sequence> <xs:attribute name="status-code" type="xs:anysimpletype" use="required"/> <xs:attribute name="response-phrase" use="required"/> </xs:complextype> </xs:element> </xs:schema> </types> Równoległość rozproszona 14

Przykład WSDL (4) definicja interfejsu <interface name="restfulinterface"> <fault name="clienterror" element="tns:response"/> <fault name="servererror" element="tns:response"/> <fault name="redirection" element="tns:response"/> <operation name="get" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messagelabel="in" element="tns:request"/> <output messagelabel="out" element="tns:response"/> </operation> <operation name="post" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messagelabel="in" element="tns:request"/> <output messagelabel="out" element="tns:response"/> </operation> <operation name="put" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messagelabel="in" element="tns:request"/> <output messagelabel="out" element="tns:response"/> </operation> <operation name="delete" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messagelabel="in" element="tns:request"/> <output messagelabel="out" element="tns:response"/> </operation> </interface> Równoległość rozproszona 15

Przykład WSDL (5) definicja wiązania przez HTTP <binding name="restfulinterfacehttpbinding" interface="tns:restfulinterface" type="http://www.w3.org/ns/wsdl/http"> <operation ref="tns:get" whttp:method="get"/> <operation ref="tns:post" whttp:method="post" whttp:inputserialization="application/x-www-form-urlencoded"/> <operation ref="tns:put" whttp:method="put" whttp:inputserialization="application/x-www-form-urlencoded"/> <operation ref="tns:delete" whttp:method="delete"/> </binding> Równoległość rozproszona 16

Przykład WSDL (6) definicja wiązania SOAP <binding name="restfulinterfacesoapbinding" interface="tns:restfulinterface" type="http://www.w3.org/ns/wsdl/soap" wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/http/" wsoap:mepdefault="http://www.w3.org/2003/05/soap/mep/request-response"> <operation ref="tns:get" /> <operation ref="tns:post" /> <operation ref="tns:put" /> <operation ref="tns:delete" /> </binding> Równoległość rozproszona 17

Przykład WSDL (7) definicja punktu końcowego <service name="restfulservice" interface="tns:restfulinterface"> <endpoint name="restfulservicehttpendpoint" binding="tns:restfulinterfacehttpbinding" address="http://www.example.com/rest/"/> <endpoint name="restfulservicesoapendpoint" binding="tns:restfulinterfacesoapbinding" address="http://www.example.com/soap/"/> </service> </description> Równoległość rozproszona 18

UDDI UDDI (Universal Description, Discovery and Integration) uniwersalny rejestr usług sieciowych pozwala oprogramowaniu automatycznie wykrywać i integrować usługi sieciowe w sieci Internet Równoległość rozproszona 19

SOAP SOAP (Simple Object Access Protocol) protokół zdalnego wywołania dostępu do obiektów wykorzystuje XML do kodowania wywołań wykorzystuje HTTP lub RPC do przenoszenia wywołań i odpowiedzi jest standardem W3C. Równoległość rozproszona 20

Przykład dokumentu SOAP POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body xmlns:m="http://www.example.org/stock"> <m:getstockprice> <m:stockname>ibm</m:stockname> </m:getstockprice> </soap:body> </soap:envelope> Równoległość rozproszona 21

Architektura WebService Równoległość rozproszona 22

WCF WCF (Windows Communication Foundation) następna generacja usług sieciowych współpracuje z webserwisami przez SOAP zwiększa szybkość wywołania używa binarnej prezentacji struktury danych w XML'a Równoległość rozproszona 23

WCF pojęcia podstawowe service operation procedura udostępniana przez serwis dla klienta service contract wiele operacji usługowych powiązanych w interfejs operation contract parametry i typ operacji message contract format komunikatu (np. które elementy są przekazywane przez nagłówek) fault contract definicja komunikatów przesyłanych do klienta w przypadku błędu. data contract definicja struktury danych wykorzystywanej w usługach data service klasa usługowa umożliwiająca zdalny dostęp do danych przechowywanych w bazie danych Równoległość rozproszona 24

WCF przykład usługi (interfejs) namespace MeasurementService { [ServiceContract] public interface IMeasurement { [OperationContract] double GetValue(int prober); [OperationContract] Probe GetProbe(int prober); } [DataContract] public class Probe { [DataMember] public DateTime Time { get; set; } [DataMember] public double Value { get; set;} } } Równoległość rozproszona 25

WCF przykład usługi (klasa usługowa) namespace MeasurementService { public class Measurement : IMeasurement { public double GetValue(int prober) { return prober; // tu powinno być wykonanie pomiaru } public Probe GetProbe(int prober) { Probe result = new Probe(); result.time = DateTime.Now; result.value = prober; // tutaj też powinno być wykonanie pomiaru return result; } } } Równoległość rozproszona 26

WCF Service Reference Widok klienta usługi pomiarowej Widok klasy danych Równoległość rozproszona 27

Obsługa wielu żądań równocześnie przez jeden serwer Klient1 żądanie HTTP odpowiedź HTTP Każde żądanie jest obsługiwane przez jeden wątek serwera Klient2 Serwer KlientN Niebezpieczeństwo przeciążenia serwera przy zbyt dużej ilości żądań Równoległość rozproszona 28

Zwiększenie wydajności przez farmę serwerów żądanie HTTP zapytanie DNS odpowiedź HTTP Klient1 odpowiedź DNS Serwer DNS Serwer WWW1 Klient2 Serwer WWW2 Serwer DNS dla kolejnych zapytań podaje inny kolejny fizyczny adres serwera WWW KlientN Równoległość rozproszona 29

Zwiększenie wydajności przez architekturę wielopienną żądanie HTTP Serwer WWW rozpoznaje żądania HTTP i kieruje żądania WCF do serwera aplikacji. W tym czasie może zająć się obsługą kolejnego żądania HTTP Klient1 odpowiedź HTTP żądanie WCF Klient2 Serwer WWW odpowiedź WCF obiekty danych ADO.NET Serwer aplikacji żądanie danych ADO.NET KlientN Serwer aplikacji wysyła żądania danych do serwera danych. W oczekiwaniu na dane może w innym wątku obsługiwać inne żądanie WCF Serwer danych Równoległość rozproszona 30

Architektura RIA RIA (Rich Internet Application) technologia podziału funkcjonalności między klienta a serwer. w implementacji Microsoftu oparta o WCF i Silverlight w implementacji Adobe oparta o FLASH Równoległość rozproszona 31

Podział funkcjonalności w RIA Klient Serwer Funkcje RIA na kliencie żądania RIA odpowiedzi RIA Usługi na serwerze Część funkcjonalności jest realizowana po stronie klienta, a część przez usługi po stronie serwera. Dane wspólne dla wielu klientów są pamiętane po stronie serwera, dane indywidualne po stronie klienta. Równoległość rozproszona 32