Systemy Rozproszone Technologia ICE



Podobne dokumenty
Wywoływanie metod zdalnych

Wywoływanie metod zdalnych

Programowanie współbieżne i rozproszone

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Wprowadzenie. Dariusz Wawrzyniak 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Tworzenie aplikacji rozproszonej w Sun RPC

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Aplikacje RMI

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Middleware wprowadzenie października 2010

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Konspekt pracy inżynierskiej

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

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

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

Programowanie Komponentowe WebAPI

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

Podstawy programowania. Wprowadzenie

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

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

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

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

Projekt SGI. WP 3.1 Wirtualne laboratorium i teleimersja Jacek Cała. (cala@ics.agh.edu.pl) (luke@ics.agh.edu.pl) Łukasz Czekierda

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Interfejsy w Javie. Przykład zastosowania interfejsów:

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

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Tworzenie aplikacji w języku Java

Technologie COM i ActiveX COM - Component Object Model

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

76.Struktura oprogramowania rozproszonego.

Aplikacje RMI Lab4

Programowanie obiektowe

Programowanie obiektowe

Java jako język programowania

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Middleware wprowadzenie października Dariusz Wawrzyniak. Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5)

Programowanie rozproszone w języku Java

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Forum Client - Spring in Swing

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Wywoływanie procedur zdalnych

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

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

Modelowanie obiektowe

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Rok akademicki: 2015/2016 Kod: IIN s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Programowanie obiektowe

OpenLaszlo. OpenLaszlo

Wywoływanie procedur zdalnych

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

PRZEWODNIK PO PRZEDMIOCIE

Enterprise JavaBeans

Tworzenie i wykorzystanie usług sieciowych

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Wybrane działy Informatyki Stosowanej

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Programowanie obiektowe zastosowanie języka Java SE

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

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

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Inteligentny czujnik w strukturze sieci rozległej

GUI - projektowanie interfejsów cz. II

Rok akademicki: 2017/2018 Kod: IIN s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Wywoływanie procedur zdalnych

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Systemy rozproszone. oparte na obiektach

Dokumentacja aplikacji Szachy online

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Temat : SBQL 1 obiektowy język zapytań.

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Programowanie aplikacji mobilnych

Visual VM, Java Management extension i inne ciekawostki

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Transkrypt:

Systemy Rozproszone Technologia ICE Zespół Systemów Rozproszonych () Katedra Informatyki AGH Kraków Kornel Skałkowski skalkow@agh.edu.pl Opracowano na podstawie książki: Henning M, Spruiell M. Distributed Programming with Ice, ZeroC

Agenda Wprowadzenie Architektura Możliwości Tworzenie własnych aplikacji Ćwiczenie Projekt Literatura 2

Wprowadzenie ICE - Internet Communication Engine Stworzona przez ZeroC corporation Middleware do budowy obiektowych systemów rozproszonych Wsparcie dla wielu platform i języków (C++, Java, C#, Ruby, PHP, ) Nacisk na obiektowość, prostotę i wydajność Aktualna wersja stabilna to 3.4.2 3

Systemy Rozproszone Technologia ICE Dlaczego jeszcze jedna technologia? CORBA wysoki poziom złożoności, niekompatybilność middleware ów dostarczanych przez różnych providerów.net/wcf ograniczona ilość języków i platform RMI tylko JAVA WS duże narzuty, brak komunikacji asynchronicznej 4

Architektura Źródło: M. Henning, M. Spruiell Distributed Programming with ICE 5

Modele wywołań Domyślna semantyka operacji to at-most-once Możliwość wyspecyfikowania operacji idempotentnych Domyślnie wywołania są synchroniczne, dostępnych jest także szereg modeli asynchronicznych (m.in. oneway czy datagram) 6

Dodatkowe możliwości Bardzo dobra i ustandaryzowana obsługa wyjątków (w przeciwieństwie do CORBY) Mnogość modeli wywołań Facets widoki obiektu (przydatne np. do wersjonowania) Dodatkowe usługi (Freeze, Glacier, IceGrid, IceStorm, IceBox) Konfigurowalność za pomocą plików.properties Obsługa SSL Automatyczne gromadzenie statystyk konsumpcji pasma (Ice:Stats) Wsparcie dla urządzeń mobilnych (np. Android) 7

SLICE Język specyfikacji interfejsu Gotowe generatory kodu dla różnych języków (slice2java, slice2cpp) Zwyczajowo pliki mają rozszerzenie.ice Wiele usług ICE ma interfejsy SLICE 8

SLICE Typy danych: Proste: int, float, bool, double, string, Złożone: sekwencje, wyliczenia, struktury, Interfejsy, klasy Wyjątki Operacje idempotentne Możliwość przekazywania obiektów przez wartość (domyślne) i referencję (np. Printer*) Moduły (por. przestrzenie nazw w C++/C#) 9

Tworzenie aplikacji Definicja interfejsów w SLICE Generacja kodu Implementacja serwantów Implementacja serwera Implementacja klienta Kompilacja, uruchomienie i testowanie 10

Tworzenie aplikacji Źródło: M. Henning, M. Spruiell Distributed Programming with ICE 11

Przykład Proszę pobrać i rozpakować plik http://galaxy.agh.edu.pl/~skalkow/dydaktyka/issr/sampleiceapp.zip Strona ICE: http://www.zeroc.com/download.html Proszę spróbować skompilować i uruchomić aplikacje Server i Client (dla ułatwienia projekt można zaimportować do Eclipse) Proszę przeanalizować zawartość plików FileSystem.ice/DirectoryI.java/Server.java/Client.java 12

Pliki C++ <interface>.cpp i <interface>.h Klient <interface>prx proxy <interface>ptr pointer Serwer Implementacja klasy <interface> która jest skeletonem z metodami virtual 13

Pliki Java <interface>.java interfejs <interface>holder.java wrapper interfejsu holder (do przekazywania jako parametr out) <interface>prx.java interfejs proxy <interface>prxhelper.java rzutowanie proxy *Operations* metody interfejsu <interface> _<interface>disp.java skeleton pozostałe nieistotne 14

Ćwiczenie Proszę dodać do pliku Slice interfejs DirectoryV2 zawierający metodę listfiles listującą tylko pliki z katalogu podanego jako argument Skompiluj plik za pomocą programu slice2java, podmień zawartość katalogu /src w przykładowej aplikacji (zachowując klasy DirectoryI, Server i Client) Dodaj klasę serwanta implementującego interfejs DirectoryV2 15

Ćwiczenie W implementacji serwera dodaj do adaptera serwanta DirectoryV2 jako facet o nazwie DirectoryV2 (wskazówka: potrzebne będą metody ObjectPrx.ice_getIdentity() do pobrania identity pierwszego serwanta oraz Adapter.addFacet() do dodania serwanta) W implementacji klienta za pomocą metody statycznej DirectoryV2PrxHelper.checkedCast(dirPrx, "DirectoryV2") zrzutuj proxy obiektu Directory do interfejsu DirectoryV2 i wywołaj metodę listfiles() 16

Literatura Henning M, Spruiell M. Distributed Programming with Ice, ZeroC 2003-2011 Strona internetowa ZeroC www.zeroc.com Blogi, fora dyskusyjne 17

Projekt Projekt - http://galaxy.agh.edu.pl/~skalkow/dydaktyka/issr/projekt.html Pytania??? 18

Dziękuję za uwagę! 19