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



Podobne dokumenty
Obiektowe programowanie rozproszone specyfikacja CORBA. Krzysztof Banaś Systemy rozproszone 1

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

Wybrane problemy modelu usługowego

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

Web Services / Gridy

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

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

Integracja Obieg Dokumentów - GiS Spis treści

Programowanie komponentowe

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

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

Wybrane działy Informatyki Stosowanej

Ministerstwo Finansów

Programowanie Komponentowe WebAPI

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

SOA Web Services in Java

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

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

Programowanie współbieżne i rozproszone

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

XML w elektronicznej wymianie danych i integracji aplikacji

Simple Object Access Protocol

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

Komunikacja i wymiana danych

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

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

XML w elektronicznej wymianie danych i integracji aplikacji

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

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

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

SPECYFIKACJA WYMIANY DANYCH POMIĘDZY PROGRAMEM KS-APTEKA WINDOWS I SKLEPEM INTERNETOWYM FIRMY ZEWNĘTRZNEJ

Bazy danych 2. Wykład 1

Wybrane działy Informatyki Stosowanej

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Zaawansowane narzędzia programowania rozproszonego

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Rozproszone systemy Internetowe

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

Programowanie obiektowe

Rozproszone technologie Web Services

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wybrane działy Informatyki Stosowanej

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

XML-RPC: Zdalne wykonywanie procedur

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Usługi sieciowe (Web Services)

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

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

Podstawy programowania. Wprowadzenie

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

Wykład I. Wprowadzenie do baz danych

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

1 Wprowadzenie do J2EE

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Rozproszone systemy internetowe

76.Struktura oprogramowania rozproszonego.

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

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

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

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

PRZEWODNIK PO PRZEDMIOCIE

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Systemy rozproszone. Wstęp. Krzysztof Banaś Systemy rozproszone 1

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

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

Virtual Grid Resource Management System with Virtualization Technology

serwisy W*S ERDAS APOLLO 2009

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

Sieci równorzędne, oraz klient - serwer

Platforma Informatyczna Wdrażania Oprogramowania Dedykowanego w PL-Grid

System Kancelaris. Zdalny dostęp do danych

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

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

Geovertical Map Server API 1.2

Oprogramowanie dostosowane do potrzeb użytkownika. Skrócenie czasu wejścia na rynek

Raport z przebiegu prac czwartej grupy problemowej

Przetwarzanie danych w chmurze

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Systemy Informatyki Przemysłowej

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

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

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

DLA SEKTORA INFORMATYCZNEGO W POLSCE

Technologie cyfrowe semestr letni 2018/2019

Nowe aplikacje i usługi w środowisku Grid

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

Nowoczesne zastosowania XML

Skalowalna Platforma dla eksperymentów dużej skali typu Data Farming z wykorzystaniem środowisk organizacyjnie rozproszonych

Rozwiązanie Compuware Data Center - Real User Monitoring

Usługa: Testowanie wydajności oprogramowania

OPERATOR SYSTEMU PRZESYŁOWEGO

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Ministerstwo Finansów

Pojęcie systemu baz danych

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Transkrypt:

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

Technologie WWW Nowszymi sposobami organizacji i technologiami w dziedzinie obliczeń rozproszonych (będącymi wciąż w fazie rozwoju) są: architektura usługowa (Service Oriented Architecture SOA) sposób organizacji systemów rozproszonych, w którym rozważa się każdy system poprzez pryzmat świadczonych przez niego usług Web Services technologia przetwarzania rozproszonego oparta o technologie WWW systemy gridowe systemy, w których rozproszone zasoby udostępniane są w sposób niezależny od fizycznej realizacji Krzysztof Banaś Systemy rozproszone 2

SOA Service Oriented Architecture Termin Service Oriented Architecture jest określeniem architektury systemów rozproszonych, w których wyróżnia się: usługobiorcę klienta korzystającego z usług dostawcę usług usługą jest realizacja pewnego przetwarzania z wykorzystaniem dostarczonych danych rejestr usług miejsce, gdzie klient uzyskuje informacje o potrzebnych mu usługach Podstawą SOA jest wykorzystanie przesyłania komunikatów do wymiany informacji między uczestnikami przetwarzania Architektury usługowe odróżnia się od architektur obiektowych i architektur komponentowych Krzysztof Banaś Systemy rozproszone 3

SOA Service Oriented Architecture Dostarczając usługę w ramach architektury usługowej należy w ogólnie znanym i dostępnym rejestrze dokonać zgłoszenia: miejsca dostępności usługi sposobu korzystania z usługi Klient chcący korzystać z określonej usługi: wyszukuje w ogólnie znanych i dostępnych rejestrach opisy świadczonych usług wybiera najbardziej mu odpowiadającą kontaktuje się z serwerem usługi w celu realizacji przetwarzania Krzysztof Banaś Systemy rozproszone 4

SOA Service Oriented Architecture Sposób korzystania z usługi jest równoważny interfejsowi oprogramowania realizującego usługę Interfejs taki powinien być napisany w sposób niezależny od: języka programowania systemu operacyjnego sprzętu realizującego obliczenia Sposób powiązania usługodawcy z usługobiorcą za pomocą tak określonych interfejsów określa się jako luźny (loosely coupled) Krzysztof Banaś Systemy rozproszone 5

SOA Service Oriented Architecture Usługi zgłoszone w systemach SOA mogą być jednocześnie klientami innych usług W ten sposób można tworzyć złożone schematy przetwarzania (workflows) składające się z wielu, odpowiednio zorganizowanych usług Architektura usługowa (SOA) jest w tym ujęciu przeciwstawiona architekturze komponentowej (CBD) ten sam cel ponowne wykorzystanie oprogramowania SOA realizacja za pomocą organizacji usług sieciowych CBD lokalne komponowanie dostarczonych fragmentów oprogramowania Krzysztof Banaś Systemy rozproszone 6

SOA Service Oriented Architecture Problemami, które musza być rozwiązane przy realizacji systemów SOA są: wydajność (ale wydajność komunikacji rośnie w ostatnich latach szybciej niż wydajność przetwarzania przez systemy komputerowe) niezawodność bezpieczeństwo (tutaj pomocne może być wykorzystanie technologii WWW, w których od lat próbuje się rozwiązać problemy bezpieczeństwa) Krzysztof Banaś Systemy rozproszone 7

Web Services (usługi internetowe) Nazwą Web Services określa się dziś jedną z możliwych realizacji modelu SOA, umożliwiającą wykorzystanie istniejącej infrastruktury internetowej (protokół HTTP, przeglądarki) Web Services oznaczają oprogramowanie dostępne poprzez sieć zbudowane zgodnie z określonymi standardami Organizacjami rozwijającymi standardy Web Services są między innymi: W3C World Wide Web Consortium OASIS Organization for the Advancement of Structured Information Standards Krzysztof Banaś Systemy rozproszone 8

Web Services (usługi internetowe) Web Services wykorzystują następujące specyfikacje, aby przystosować przetwarzanie rozproszone do standardowego środowiska internetowego: XML język, który może być przetwarzany przez maszyny SOAP protokół przesyłu danych wykorzystujący XML WSDL język opisu usług wykorzystujący XML Krzysztof Banaś Systemy rozproszone 9

WebServices Krzysztof Banaś Systemy rozproszone 10

XML XML (extensible Markup Language) główną cechą języka XML jest możliwość rozszerzania go o nowe konstrukcje, dzięki czemu może służyć do opisu coraz to innych dziedzin W ramach konkretnych dziedzin, w których stosuje sie XML wypracowywane są standardy opisu dziedziny za pomocą XML i na ich podstawie programy przetwarzające teksty w XML Sam standard definiujący XML nie jest rozbudowany, natomiast istnieje już wiele rozległych standardów wykorzystania XML w konkretnych dziedzinach Krzysztof Banaś Systemy rozproszone 11

SOAP SOAP jest standardem wymiany komunikatów zapisanych w XML Komunikaty SOAP można wymieniać za pomocą różnych środków transmisji, choć najpopularniejszymi i preferowanymi są protokoły HTTP lub HTTPS SOAP został zaprojektowany ze szczególnym uwzględnieniem wymiany komunikatów w ramach zdalnego wywołania procedur W ramach środowisk programowania istnieją narzędzia, które projektują postać komunikatów SOAP dla konkretnych wywołań procedur zdalnych Krzysztof Banaś Systemy rozproszone 12

SOAP żądanie POST /webservices/tempconvert.asmx HTTP/1.1 Host: www.w3schools.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap12:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:body> <FahrenheitToCelsius xmlns="http://tempuri.org/"> <Fahrenheit>string</Fahrenheit> </FahrenheitToCelsius> </soap12:body> </soap12:envelope> Krzysztof Banaś Systemy rozproszone 13

SOAP odpowiedź HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap12:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:body> <FahrenheitToCelsiusResponse xmlns="http://tempuri.org/"> <FahrenheitToCelsiusResult>string</FahrenheitToCelsiusResult> </FahrenheitToCelsiusResponse> </soap12:body> </soap12:envelope> Krzysztof Banaś Systemy rozproszone 14

WSDL WSDL jest językiem opisu usług sieciowych podobnym w funkcji do IDL CORBY WSDL nie posługuje się modelem obiektowym WSDL zapisywany jest w XML W przeciwieństwie do IDL opis interfejsu usługi w WSDL zazwyczaj nie jest tworzony przez programistę, ale przez środowisko programowania rozproszonego Opis w WSDL zawiera informację o formie wymiany komunikatów przy wywoływaniu zdalnych procedur Krzysztof Banaś Systemy rozproszone 15

WSDL Dokument WSDL (napisany w XML) zawiera następujące elementy: <interface> odpowiednik interfejsu IDL lub definicji klasy abstrakcyjnej w obiektowych językach programowania; element <interface> zawiera elementy <operation> opisujące pojedyncze procedury <message> opisuje wymianę komunikatów związaną z wywołaniem procedury (argumenty wejścia i wyjścia) <types> typy danych użytych jako argumenty <binding> sposób realizacji wywołania, użyty protokół, itp. <service> połączenie interfejsu, sposobu realizacji wywołania i adresu internetowego dla uzyskania ostatecznej definicji usługi Krzysztof Banaś Systemy rozproszone 16

WSDL opis prostej funkcji <definitions targetnamespace="http://endpoint.helloservice/" name="helloservice"> <types> <xsd:schema> <xsd:import namespace="http://endpoint.helloservice/" schemalocation="http://localhost:8080/helloservice/hello?xsd=1"/> </xsd:schema> </types> <message name="sayhello"> <part name="parameters" element="tns:sayhello"/> </message> <message name="sayhelloresponse"> <part name="parameters" element="tns:sayhelloresponse"/> </message> <porttype name="hello"> <operation name="sayhello"> <input message="tns:sayhello"/> <output message="tns:sayhelloresponse"/> </operation> </porttype> Krzysztof Banaś Systemy rozproszone 17

WSDL opis prostej funkcji <binding name="helloportbinding" type="tns:hello"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="sayhello"> <soap:operation soapaction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="helloservice"> <port name="helloport" binding="tns:helloportbinding"> <soap:address location="http://localhost:8080/helloservice/hello"/> </port> </service> </definitions> Krzysztof Banaś Systemy rozproszone 18

Web Services i CORBA Web Services realizują podobny model przetwarzania rozproszonego jak CORBA Zaletą Web Services jest korzystanie z technologii WWW (HTTP), posiadających m.in. rozwinięte mechanizmy zabezpieczeń (HTTPS) Web Services nie dorównują (jeszcze...) systemom CORBY w dziedzinach: wsparcia modelu obiektowego bogactwa dodatkowych usług związanych z przetwarzaniem Systemy CORBY mogą stać się dostawcami usług Web Services, istnieje standard przekładu języka IDL na WSDL Krzysztof Banaś Systemy rozproszone 19

Porównanie technologii Technology Connect time Send string (21,000 characters) Receive string (22,000 characters) Send 5,000 integers Client LOC Server LOC Actual message size sending 1,000 characters Actual message size sending 100 integers Raw sockets 0.002242 0.001377 0.001359 6.740674 57 25 2,279 85,863 CORBA 0.000734 0.004601 0.002188 1.523799 37 18 2,090 27,181 XML-RPC 0.007040 0.082755 0.050199 100.337219 29 17 4,026 324,989 SOAP 0.000610 0.294198 0.279341 1,324.296742 32 10 4,705 380,288 źródło: http://www.ibm.com/developerworks/webservices/library/ws-pyth9/ Krzysztof Banaś Systemy rozproszone 20

Systemy gridowe Nazwa systemów gridowych wywodzi się od nazwy sieci elektroenergetycznej w USA Power Grid i od idei korzystania z zasobów obliczeniowych podobnie jak z zasobów energii elektrycznej W wizji tej pojedynczy użytkownik po podłączeniu do sieci (i uiszczeniu odpowiednich opłat) uzyskuje dostęp do mnogości usług w jednolity sposób i niezależnie od konkretnego sposobu implementacji tych usług oraz stosowanego sprzętu Idea systemów gridowych narodziła się w środowiskach naukowych i wspierana jest przez koncepcję e Nauki Krzysztof Banaś Systemy rozproszone 21

Wizja E-nauki 2100 2100 2100 2100 Współpraca 2100 2100 2100 2100 Laboratoria i instrumenty Przechowanie danych Obliczenia E-naukowiec Wizualizacja Krzysztof Banaś Systemy rozproszone 22

Systemy gridowe (Grids) Początkowo systemy gridowe rozwijane były w ramach programów badawczych ukierunkowanych na zastosowania naukowe (projekty Condor, Globus) Z czasem idee systemów gridowych i stosowane narzędzia zaczęły przenikać się z ich odpowiednikami w obszarze zastosowań biznesowych czy popularnych Specyfikacje systemów gridowych opracowywane są przez organizacje (głównie grupy robocze GGF Global Grid Forum) w postaci rekomendacji Rekomendacje GGF ukierunkowane są na wszystkie obszary zastosowań Krzysztof Banaś Systemy rozproszone 23

Systemy gridowe (Grids) W systemach gridowych rozważa się dostęp do zasobów i ich wykorzystanie poprzez pewien jednolity system Jednolitość systemu ma być zapewniona poprzez wirtualizację zasobów, tzn. każdy zasób jest przedstawiany jako pewien możliwy do zrealizowania zestaw usług Ze względu na oparcie systemów gridowych na usługach ostatnie specyfikacje GGF wskazują na Web Services jako podstawę realizacji Krzysztof Banaś Systemy rozproszone 24

Systemy gridowe (Grids) Zasoby informatyczne tworzące systemy gridowe są ze swej natury heterogeniczne i rozproszone Stanowią je: urządzenia (procesory, dyski, drukarki, urządzenia pomiarowe, wyposażenie laboratoriów, urządzenia sieciowe, itp.) programy, bazy danych, pliki Ideą jest tworzenie systemów gridowych i współdzielenie zasobów przez różne podmioty, geograficznie rozproszone, tworzące tzw. wirtualne organizacje (VO) Krzysztof Banaś Systemy rozproszone 25

Systemy gridowe (Grids) Jednymi z podstawowych zadań jakie muszą zostać rozwiązane w ramach systemów gridowych są: bezpieczeństwo m.in. jak połączyć bezpieczne korzystanie z rozproszonych zasobów z ideą traktowania systemu gridowego jako jednolitej całości (a więc np. z tylko jednym logowaniem do całego systemu) wydajność jak zagwarantować maksymalna wydajność całości systemu rozproszonego, m.in. jak równoważyć obciążenie całości systemu (może to wymagać migracji zadań pomiędzy poszczególnymi zasobami) Krzysztof Banaś Systemy rozproszone 26

Systemy gridowe (Grids) Systemy gridowe poprzez oparcie na usługach mogą być organizowane zgodnie z typowym standardem SOA (usługobiorca, usługodawca, rejestr) Wartością dodaną związaną z systemami gridowymi jest rozbudowana warstwa usług związanych z zarządzaniem zasobami Systemy gridowe mogą także udostępniać swoje usługi na zewnątrz w ramach szerszego systemu zorganizowanego zgodnie z zasadami SOA Krzysztof Banaś Systemy rozproszone 27

Systemy gridowe (Grids) Systemy gridowe z założenia mają być budowane w oparciu o standardy Liczba tych standardów ciągle rośnie, wraz z rozszerzaniem obszarów stosowania systemów gridowych Podstawowym standardem GGF jest OGSA (Open Grid Software Architecture) specyfikacja określająca ogólna budowę systemów gridowych Krzysztof Banaś Systemy rozproszone 28

Systemy gridowe (Grids) Systemy gridowe mają swoje realizacje publicznie dostępne w ramach otwartego oprogramowania (wciąż podstawową jest Globus Toolkit, obecnie w wersji 4) Wielu producentów sprzętu (Sun, IBM, HP i inni) oraz oprogramowania (Sun, Oracle, Microsoft) dostarcza także swoje komercyjne wersje systemów gridowych (często będące rozwinięciami lub modyfikacjami systemów publicznie dostępnych) Twórcy oprogramowania dostarczają także platformy i środowiska do tworzenia oprogramowania gridowego Krzysztof Banaś Systemy rozproszone 29

Globus Toolkit version 4 Krzysztof Banaś Systemy rozproszone 30