Równoległość w środowisku rozproszonym

Slides:



Advertisements
Podobne prezentacje
Serwery WWW Michał Kuciapski Uniwersytet Gdański Wyższa Szkoła Bankowa
Advertisements

Zastosowanie LDAP w obsłudze katalogów bibliotecznych
Usługi sieciowe Wykład 5 DHCP- debian
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
Mechanizmy pracy równoległej
Wykorzystanie konta uczelnianego dla potrzeb stron WWW
Sieci komputerowe Usługi sieciowe Piotr Górczyński 27/09/2002.
Wprowadzenie do języka skryptowego PHP
SQL Server Native XML Web Services
WEB SERVICE Stefan Rutkowski.
Rozszerzalność systemów rozproszonych
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Service Oriented Architecture & Web Services
XML w integracji aplikacji
XML w integracji aplikacji 11 grudnia XML w integracji aplikacji Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły.
Technologie XML Mgr inż. Michał Jaros Technologie XML wykład 1.
Opracował: Patryk Kołakowski(s1715)
Internet Communication Engine
Programowanie w HTML i XML
Programowanie w HTML i XML prowadzący: dr inż. Tomasz Wierciński.
Poj ę cia Sieciowe. IMAP-to internetowy protokół pocztowy zaprojektowany IMAP-to internetowy protokół pocztowy zaprojektowany POP3-to protokół internetowy.
Pojęcia sieciowe.
Usługi sieciowe Wykład 5 DHCP- debian Jarosław Kurek WZIM SGGW 1.
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Kurs WWW Paweł Rajba
Proxy (WWW cache) Sieci Komputerowe
.NET Remoting Łukasz Zawadzki.
Wzorce projektowe w J2EE
Technologie informacyjne MCE Pudełko. Zakładanie strony internetowej Technologie informacyjne Marek Pudełko.
Narzędzia internetowe Paweł Rajba
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Platformy Technologiczne web services
Aplikacje Internetowe
POJĘCIA ZWIĄZANE Z SIECIĄ.
Integracja aplikacji Wykład 2
Web Serwisy w praktyce Technologie internetowe ( )
MODEL WARSTWOWY PROTOKOŁY TCP/IP
Lokalne serwery www Serwer WWW - ang. Web server jest to oprogramowanie zainstalowane na serwerze podłączonym do sieci Internet. Używające technologii.
WebAPI – funkcjonalność i rozwój narzędzia
Prezentacja Adrian Pyza 4i.
Podstawy działania wybranych usług sieciowych
Internetowe surfowanie
Specjalizacja "Dziennikarstwo On-line„ asynchroniczny JavaScript i XML – AJAX Część 6 Prowadzący: Dariusz Jaruga
Prezentacja Adrian Pyza 4i.
INTERNET Sieć komputerowa o światowym zasięgu łącząca sieci lokalne, sieci rozległe i wszystkie komputery do nich podłączone. Służy do komunikacji między.
S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji.
Aplikacje TCP i UDP. Łukasz Zieliński
Tematy: Informacje wstępne Zasoby wydziałowe Serwer WWW Usługa SSH Usługa FTP Poczta elektroniczna Podstawowe problemy i kłopoty Pytania ? Podsumowanie.
Aplikacje internetowe
Korzystanie z podstawowych usług internetu
Clustering Technologia klastrowa - architektura łącząca serwery i urządzenia pamięci masowych w celu zwiększenia niezawodności, bezpieczeństwa i wydajności.
Zagrożenia.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Treści multimedialne - kodowanie, przetwarzanie, prezentacjaOdtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
FTP i www Informatyka Zakres podstawowy 1 Zebrał i opracował : Maciej Belcarz 11.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
XML w serwisach webowych. Zapotrzebowanie na serwisy XML.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
1. Podaj definicję kartografii internetowej. 2. Geographic Markup Language: a) Jest schematem XML a) Opisuje obiekty w fizycznej przestrzeni a) Jest formatem.
INTERNET jako „ocean informacji”
Podział sieci komputerowych
Maciej Wierzchowski Mariusz Sołtysiak. Założenia  Autentykacja użytkownia  Autentykacja dostawcy  Zapewnienie bezpiecznego połączenia.
HTML.  Wprowadzenie  Protokół HTTP  Język HTML  Definicja typu dokumentu  Nagłówek strony  Formatowanie treści dokumentu  Definiowanie struktury.
Elementy przeglądarki internetowej Pasek menu Pasek kart Pasek adresowy Pasek wyszukiwania Okno z zawartością strony internetowej Zakładki (ulubione)
Wydział Matematyki, Informatyki i Architektury Krajobrazu
Sieci komputerowe Usługi sieciowe 27/09/2002.
Windows Workflow Foundation
Aplikacje i usługi internetowe
Zapis prezentacji:

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

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

Równoległość rozproszona 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

Równoległość rozproszona 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

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

Ró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) 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

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

Równoległość rozproszona 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

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/> </ksiazka-telefoniczna> Równoległość rozproszona

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

Równoległość rozproszona 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

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

Przykład WSDL (2) definicja typu żądania <xs:element name="request"> <xs:complexType> <xs:sequence> <xs:element name="header" maxOccurs="unbounded"> <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"/> Równoległość rozproszona

Przykład WSDL (3) definicja typu odpowiedzi <xs:element name="response"> <xs:complexType> <xs:sequence> <xs:element name="header" maxOccurs="unbounded"> <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:schema> </types> Równoległość rozproszona

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"> <operation name="Put" pattern="http://www.w3.org/ns/wsdl/in-out"> <operation name="Delete" pattern="http://www.w3.org/ns/wsdl/in-out"> </interface> Równoległość rozproszona

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" <operation ref="tns:Delete" whttp:method="DELETE"/> </binding> Równoległość rozproszona

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

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

Równoległość rozproszona 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

Równoległość rozproszona 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

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

Architektura WebService Równoległość rozproszona

Równoległość rozproszona 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

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

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

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

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

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

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

Zwiększenie wydajności przez architekturę wielopienną 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 żądanie WCF Klient1 odpowiedź HTTP odpowiedź WCF Serwer WWW Serwer aplikacji obiekty danych ADO.NET żądanie danych ADO.NET Klient2 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 KlientN Równoległość rozproszona

Równoległość rozproszona 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

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