Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Równoległość w środowisku rozproszonym Jarosław Kuchta Programowanie Współbieżne."— Zapis prezentacji:

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

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

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

4 4Równoległość rozproszona HTTP protokół przesyłania dokumentów hipertekstowych w sieci WWW protokół przesyłania dokumentów hipertekstowych w sieci WWW określa sposób komunikacji między klientem a serwerem określa sposób komunikacji między klientem a serwerem klientem jest oprogramowanie na komputerze użytkownika (najczęściej przeglądarka WWW) klientem jest oprogramowanie na komputerze użytkownika (najczęściej przeglądarka WWW) serwer jest oprogramowanie na komputerze oddalonym, tu serwer WWW (np. IIS, Apache) serwer jest oprogramowanie na komputerze oddalonym, tu serwer WWW (np. IIS, Apache) klient wysyła żądania do serwera, serwer wysyła odpowiedzi do klienta klient wysyła żądania do serwera, serwer wysyła odpowiedzi do klienta wykorzystywany jest standardowo port 80 TCP 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. żą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 żądania i odpowiedzi mają postać komunikatów tekstowych z rozbudowanymi nagłówkami protokół HTTP jest bezstanowy, tzn. nie zapamiętuje stanu klienta protokół HTTP jest bezstanowy, tzn. nie zapamiętuje stanu klienta gdy potrzeba zapamiętać stan klienta, to wykorzystuje się mechanizm: gdy potrzeba zapamiętać stan klienta, to wykorzystuje się mechanizm: ciasteczek po stronie klienta ciasteczek po stronie klienta sesji po stronie serwera sesji po stronie serwera

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

6 6Równoległość rozproszona Przykład żądania HTTP GET / HTTP/1.1 (prośba o zwrócenie dokumentu o URI / zgodnie z protokołem HTTP 1.1) 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) 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: ) Gecko/ Firefox/ (nazwa aplikacji klienckiej) User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl; rv: ) Gecko/ Firefox/ (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: 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-Language: pl,en-us;q=0.7,en;q=0.3 (preferowany język strony) Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 (preferowane kodowanie znaków) Accept-Charset: ISO ,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) Keep-Alive: 300 (czas, następnego żądania w przypadku połączenia stałego) Connection: keep-alive (chęć nawiązania połączenia stałego serwerem) Connection: keep-alive (chęć nawiązania połączenia stałego serwerem) znak powrotu karetki i nowej linii (CRLF) znak powrotu karetki i nowej linii (CRLF)

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

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

9 9Równoległość rozproszona Przykład dokumentu XML Ambroży Ambroży Kleks Kleks Alojzy Alojzy Bąbel Bąbel

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

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

12 12Równoległość rozproszona Przykład WSDL (1) definicja przestrzeni nazw targetNamespace="http://www.tmsws.com/wsdl20sample"> targetNamespace="http://www.example.com/wsdl20sample">

13 13Równoległość rozproszona Przykład WSDL (2) definicja typu żądania

14 14Równoległość rozproszona Przykład WSDL (3) definicja typu odpowiedzi

15 15Równoległość rozproszona Przykład WSDL (4) definicja interfejsu

16 16Równoległość rozproszona Przykład WSDL (5) definicja wiązania przez HTTP type="http://www.w3.org/ns/wsdl/http"> whttp:inputSerialization="application/x-www-form-urlencoded"/> whttp:inputSerialization="application/x-www-form-urlencoded"/>

17 17Równoległość rozproszona Przykład WSDL (6) definicja wiązania SOAP wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response">

18 18Równoległość rozproszona Przykład WSDL (7) definicja punktu końcowego address="http://www.example.com/rest/"/> address="http://www.example.com/soap/"/>

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

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

21 21Równoległość rozproszona Przykład dokumentu SOAP POST /InStock HTTP/1.1 POST /InStock HTTP/1.1 Host: Host: Content-Type: application/soap+xml; charset=utf-8 Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn Content-Length: nnn soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> IBM IBM

22 22Równoległość rozproszona Architektura WebService

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

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

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

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

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

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

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

30 30Równoległość rozproszona Zwiększenie wydajności przez architekturę wielopienną Klient1 Klient2 KlientN Serwer WWW Serwer WWW rozpoznaje żądania HTTP i kieruje żądania WCF do serwera aplikacji. W tym czasie może zająć się obsługą kolejnego żądania HTTP żądanie HTTP odpowiedź HTTP Serwer aplikacji żądanie WCF odpowiedź WCF 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 żądanie danych ADO.NET obiekty danych ADO.NET

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

32 32Równoległość rozproszona Podział funkcjonalności w RIA 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. Klient Funkcje RIA na kliencie Serwer Usługi na serwerze żądania RIA odpowiedzi RIA


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

Podobne prezentacje


Reklamy Google