Technologia Programowania 2016/2017 Wykªad 9

Wielkość: px
Rozpocząć pokaz od strony:

Download "Technologia Programowania 2016/2017 Wykªad 9"

Transkrypt

1 Technologia Programowania 2016/2017 Wykªad 9 Programowanie sieciowe, Akka Jakub Lemiesz

2 Podsumowanie poj Przetwarzanie wspóªbie»ne vs. równolegªe (Concurrency vs. Parallelism) 1 Concurrency - dwa albo wi cej zada«mo»e robi post py, nawet je±li nie s wykonywane równolegle 2 Parallelism - wykonania zada«s naprawd równolegªe 2 / 35

3 Podsumowanie poj Model synchroniczny vs. asynchroniczny 1 W modelu synchronicznym czekaj c na rezultat» dania 'blokujemy' dost p do procesora 2 W modelu asynchronicznym czekaj c na rezultat» dania nie blokujemy, b dziemy powiadomieni gdy rezultat si pojawi 3 Asynchroniczno± cz sto jest preferowana, gwarantuje post p 3 / 35

4 Model asynchroniczny 4 / 35

5 Model asynchroniczny 4 / 35

6 Model asynchroniczny motywacja Model asynchroniczny sprawdza si gdy: 1 wiele zada«(szansa,»e b dzie niezablokowane) 2 zadania wykonuj wiele operacji I/O 3 zadania s w niewielki stopniu zale»ne od siebie (nie musz si nawzajem komunikowa ) Warunki te charakteryzuj architektur klient-serwer: 1» dania klientów s niezale»ne (np. web-server) 2 mamy wiele operacji I/O - klient wysyªa» danie i dostaje odpowied¹, któr dªugo przetwarza... 5 / 35

7 Komunikacja klient-serwer w Java 6 / 35

8 Architektura klient-serwer 1 Jak zorganizowa prac Selectora? C10K Problem 2 Handler dla klienta czy dla typu zadania? 3 Osobny w tek dla ka»dego klienta? Thread Pool? 7 / 35

9 Selector: event-driven programming 8 / 35

10 Wzorzec Reactor: diagram klas EventHandler: interfejs, konkretne handler'y sªu» do obsªugi zdarze«okre±lonego typu. S rejestrowane i wywoªywane kiedy pojawi si odpowiednie zdarzenie ( callbacks, handler==agent) Handle: uchwyt do ¹ródªa zdarzenia (np. gniazdo, widget, plik) 9 / 35

11 Wzorzec Reactor: diagram klas EventHandler: interfejs, konkretne handler'y sªu» do obsªugi zdarze«okre±lonego typu. S rejestrowane i wywoªywane kiedy pojawi si odpowiednie zdarzenie ( callbacks, handler==agent) Handle: uchwyt do ¹ródªa zdarzenia (np. gniazdo, widget, plik) ródªo diagramów: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects by Schmidt et al., strona / 35

12 1 Rejestrujemy EventHandler z uchwytem (handle), np. gniazdem 2 Reactor pobiera uchwyty od zarejestrowanych EventHandlers 3 Reactor uruchamia Selectora (EventDemux) i przekazuje uchwyty 4 Selector informuje Reactor gdy które± uchwyty gotowe (np. gniazda) 5 Reactor u»ywa otrzymany od Selecotra podzbiór uchwytów do wywoªania metod handle_event() w odpowiednich EventHadnler'ach 6 handle_event() wywoªuje odpowiedni usªug która mo»e odpowiedzie od razu klientowi maj c dost p do uchwytu 10 / 35

13 Wzorzec Reactor: model asynchroniczny Selector dziaªa na zasadzie 'event-loop': gdy nast pi zdarzenie uruchamiamy odpowiedniego EventHandler'a ródªo diagramu 11 / 35

14 Wzorzec Reactor: wiele implementacji Implementacje wzorca Reactor: 1 Skromna przykªadowa implementacja: assorted.sourceforge.net/java-reactor/ 2 Staranna implementacja z dobrym opisem: reactor-pattern-explained-part-1.html 3 Reactor gotowiec we freameworku Spring messaging-reactor/ 12 / 35

15 Reactor w Spring // Domy±lny reactor Reactor reactor = R.create(); // Interesujemy si zdarzeniami, które maj w opisie String topic = "wakacje"; // Rejestrujemy typ zdarzenia w reactor reactor.on($(topic), new Consumer<Event<String() { public void call(event<string> ev) { service.handleevent(ev); //odpowiednia obsªuga }}); // Gdy si kiedy± pojawi, mo»na poinformowa reactor reactor.notify("wakacje", Event.wrap(znow beda wakacje)); 13 / 35

16 Reactor: podsumowanie 1 Korzy±ci: rozwi zanie efektywne, ªatwa obsªuga (w praktyce programista deniuje event handler'y, reszt robi biblioteki) 2 Wada: trudne do zdebugowania, np. mo»e nie by jasne dlaczego dany event handler byª u»yty i trudno powtórzy dokªadnie te same warunki 3 Inne, ogólniejsze rozwi zanie: system Akka Reactor vs. Akka - dyskusja /akka-or-reactor 14 / 35

17 Typesafe Inc. Typesafe zaªo»yª w 2011 Martin Odersky (EPFL). Prowadzi nast puj ce projekty open-source: 1 Scala 2 Akka 3 Play framework 4 sbt build tool 5 Scala IDE for Eclipse 6... Firmy deklaruj ce u»ycie Scala/Akka/Play to m.in: Twitter, The Guardian, Netix, LinkedIn (warto przeczyta opis) 15 / 35

18 Scala 1 Š czy programowanie obiektowe i funkcjonalne (kod bardziej zwi zªy ni» w Java) 2 Dziaªa na JVM, mo»na ª czy z kodem Javy (wszystkie biblioteki, frameworki Java) 3 Aplikacje Akka i Play mog by w Java i w Scali 4 Chyba warto si uczy 16 / 35

19 Technology Radar: Search A-Z: Scala 17 / 35

20 Czym jest Akka? We think that writing correct concurrent and scalable applications is now too hard (...) Akka authors 1 Akka daje wysokopoziomow abstrakcja dla programowania wspóªbie»nego: system aktorów 2 Aktorzy porozumiewaj si wyª cznie za pomoc niezmiennych (ang. immutable) komunikatów 3 Akka uªatwia stworzenie bezpiecznego modelu asynchronicznego, sterowanego zdarzeniami 18 / 35

21 Czym jest Akka? 19 / 35

22 Przykªadowa aplikacja przybli»anie liczby pi Wzór Leibniz'a: Im wi cej wyrazów uwzgl dnimy tym lepsze przybli»enie. Zadanie ªatwo jest przyspieszy, mo»emy podzieli sumowanie na niezale»ne zadania, wykona je równolegle i poª czy wyniki W 1874 W. Shanks 707 cyfr, 15 lat liczenia, 180 ostatnich cyfr obliczyª bª dnie... W 2010, cyfr, 23 dni na 1000 maszynach 20 / 35

23 PiSystem aktorzy i wiadomosci 21 / 35

24 Wiadomo±ci s niezmienne (ang. immutable) static class Calculate {} static class Work { private final int start; private final int nrofelements; } static class Result { private final double value; } static class PiApproximation { private final double pi; private final Duration duration; } 22 / 35

25 Akka aktorzy system hierarechiczny mvn compile exec:java -Dexec.mainClass="$package$.Pi" // Use of the ActorSystem will create top-level actor, // that can create child actors, that can create child actors... final ActorSystem system = ActorSystem.create("PiSystem final ActorRef myactor = system.actorof(props.create(master.class,"master")); class Master extends UntypedActor public void onreceive(object message) { //Actor's message handlers...} 23 / 35

26 Tworzenie aktorów na przykladzie Pi.java ActorSystem system = ActorSystem.create("PiSystem"); class Listener extends UntypedActor {... class Master extends UntypedActor {... class Worker extends UntypedActor {... //create the master - jaki to wzorzec GoF? ActorRef master = system.actorof(new Props( new UntypedActorFactory() { UntypedActor create() {return new Master(parametry);} //master tworzy workerów... workerrouter = this.getcontext().actorof( new Props(Worker.class).withRouter( new RoundRobinRouter(nrOfWorkers))); //...i wysyla im polecenia workerrouter.tell(new Work(start, nrofelements), getself()); 24 / 35

27 Aktor Router Router jest aktorem, który przekazuje nadchodz ce wiadomo±ci do swoich potomków w okre±lony sposób: RoundRobinRouter, RandomRouter, SmallestMailboxRoute int nrofinst = 5; ActorRef router = system.actorof( new Props(Child.class).withRouter(new RandomRouter(nrOfInst router.tell(message, getself()); 25 / 35

28 Komunikacja mi dzy aktorami Aktorzy komunikuj wysyªaj c wiadomo±ci (metoda tell()), które s umieszczane Mailbox odbiorcy class Master extends UntypedActor{... public void onreceive(object message) { if (message instanceof Calculate) for (int start = 0; start < nrofmessages; start++) workerrouter.tell(new Work(start,elements), getself()) else if (message instanceof Result) { Result result = (Result) message; pi += result.getvalue();...} else unhandled(message); 26 / 35

29 Podsumowuj c, co robimy? 1 Deniujemy klasy wiadomo±ci. Wiadomo±ci s niezmienne (immutable), wszystkie pola nal 2 Deniujemy klasy-aktorów (extends UntypdActor) i przesªaniamy onrecive(...), która okre±la akcje w zale»no±ci od rodzaju wiadomo±ci 3 Okre±lamy hierarchie aktorów (kto kogo tworzy) 4 Aktorzy komunikuj si wyª cznie poprzez wymian wiadomo±ci: tell() i OnRecive(...) (aktorzy raczej nie powinni miec innych publicznych metod Akka threadsafety) 27 / 35

30 Czym jest aktor? 1 Aktor to w istocie kontener, który zawiera: State, Behavior, Mailbox, Childrens, Supervisor Strategy 2 Z aktorem zwi zany jest Context, zwaierajacy referencje do innych aktorów ActorRef (sªu» ce do komunikacji mi dzy aktorami) 3 Aktor ma dost p do swojej referencji getself() i do rodzica i potomków getcontext().parent.tell() 4 Do komuniaktów doª czana jest referencja do nadawcy i mo»na j odczyta metod getsender() 28 / 35

31 Czym jest referencja do aktora? 29 / 35

32 Po co referencje do aktorów? 1. Aktor tworzy i nadzoruje swoich potomków (np. jak s wyj tki w potomku, okresla co robi ) 2. Aktor mo»e przekazywa zadania potomkom (np. podzieli zadanie na mniejsze zadania) 3. Remote Actors - aktorzy zdalni, dziaªaj cy na innej maszynie Address addr = new Address("akka", "remotesys","host",1234); ActorRef routerremote = system.actorof( new Props(Child.class).withRouter( new RemoteRouterConfig(new RandomRouter(5),addr) ) 30 / 35

33 Remote actors 31 / 35

34 Mailbox co o nim wiemy? ActorRef router = getcontext().actorof( Props.create(PrintlnActor.class).withRouter( new RoundRobinRouter(5))); for (int i = 1; i <= 10; i++) router.tell(i, getself());..> Received message '1' in actor b..> Received message '2' in actor c..> Received message '3' in actor d..> Received message '6' in actor b..> Received message '4' in actor e..> Received message '8' in actor d..> Received message '5' in actor f..> Received message '9' in actor e..> Received message '10' in actor f..> Received message '7' in actor c 32 / 35

35 Mailbox - kolejno± dostarczania A1 wysyªa M1, M2, M3 do A2 A3 wysyªa M4, M5, M6 do A2 Wiemy,»e: 1 je±li M1 b dzie dostarczone to dojdzie przed M2 i M3 2 je±li M2 b dzie dostarczone to dojdzie przed M3 3 je±li M4 b dzie dostarczone to dojdzie przed M5 i M6 4 je±li M5 b dzie dostarczone to dojdzie przedm6 5 kolejno± mi dzy M1, M2, M3 a M4, M5, M6 nieustalona Zasada nie jest przechodnia: 1 A1 wysyªa X do A2 2 A1 wysyªa Y do A3 3 A2 przesyªa X do A3 4 A3 mo»e otrzyma X i Y w dowolnej kolejno±ci 33 / 35

36 Mailbox - gwarancje dostarczenia Akka nie daje»adnych gwarancji,»e wysªana wiadomo± dojdzie do odbiorcy, w razie potrzeby programista musi o to zadba sam w wy»szej warstwie (re-and-forget). Dlaczego? Nie wiadomo, czy wystarcz sprawdzi,»e wiadomo± doszªa do serwera odbiorcy? doszªa do Mailbox odbiorcy? zostaªa odebrana przez odbiorc? zostaªa poprawnie przetworzona przez odbiorc? tell() preferowane, ale jest równie» ask(), które blokuje 34 / 35

37 Untyped Actors komunikacja synchroniczna (niezalecane) Timeout timeout = new Timeout(Duration.create(5, ''seconds'')); Future<Object> future = Patterns.ask(actor, msg, timeout); String result = (String) Await.result(future, timeout.duration()); 35 / 35

Technologia Programowania 2016/2017 Wykªad 10

Technologia Programowania 2016/2017 Wykªad 10 Technologia Programowania 2016/2017 Wykªad 10 Akka, Jakub Lemiesz Plan 1 Omówienie przykªadowej aplikacji Akka (aprokysmacja liczby pi) 2 Wprowadzenie framework'a webowego (wspóªpracuj cego z Akka) 3 Przykªadowa

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Język programowania Scala + aktorzy Akka

Język programowania Scala + aktorzy Akka Język programowania Scala + aktorzy Akka Marek Skórkowski Plan prezentacji: Aktorzy Akka Scala 1. Wprowadzenie (AS) 2. Scala(MS) 3. Nawiasy, kropki... (MS) 4. DSL (MS) 5. Wielodziedziczenie(MS) 6. Package

Bardziej szczegółowo

Wzorce projektowe strukturalne cz. 1

Wzorce projektowe strukturalne cz. 1 Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,

Bardziej szczegółowo

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem

Bardziej szczegółowo

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

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Rozwi zania klasycznych problemów w Rendezvous

Rozwi zania klasycznych problemów w Rendezvous Cz ± I Rozwi zania klasycznych problemów w Rendezvous 1 Producenci i konsumenci Na pocz tek rozwa»my wersj z jednym producentem i jednym konsumentem, dziaªaj cymi w niesko«czonych p tlach. Mechanizm komunikacji

Bardziej szczegółowo

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy Imi i nazwisko....................................................... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy 21.01.2017 Instrukcja:

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

Bardziej szczegółowo

Praca Dyplomowa Magisterska

Praca Dyplomowa Magisterska Internetowa Platform Edukacyjna w Technologii ZOPE Autor: Promotor: Dr in». Adam Doma«ski Politechnika l ska Wydziaª Automatyki, Elektroniki i Informatyki Kierunek Informatyka 22 wrze±nia 2009 Dlaczego

Bardziej szczegółowo

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska MiASI Modelowanie analityczne Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Czym jest modelowanie analityczne? 2 Podstawowe kategorie poj ciowe

Bardziej szczegółowo

Java wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 9 Java Message Service i Message-Driven Beans Alternatywa dla RMI-IIOP asynchroniczność (asynchrony) brak blokowania daje się fire-and-forget rozprężenie (decoupling)

Bardziej szczegółowo

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Service Locator Ułatwia wyszukanie komponentów usługowych Service Activator Umożliwia asynchroniczne przesyłanie żądań do komponentów biznesowych

Bardziej szczegółowo

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2 Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 1 Wprowadzenie Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 O Sobie Od 2014

Bardziej szczegółowo

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

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy

Bardziej szczegółowo

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

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Zadanie 2: transakcyjny protokół SKJ (2015)

Zadanie 2: transakcyjny protokół SKJ (2015) Zadanie 2: transakcyjny protokół SKJ (2015) 1 Wstęp Zadanie polega na zaprojektowaniu niezawodnego protokołu transakcyjnego bazującego na protokole UDP. Protokół ten ma być realizowany przez klasy implementujące

Bardziej szczegółowo

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

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem strukturalnym,

Bardziej szczegółowo

Aplikacje RMI Lab4

Aplikacje RMI   Lab4 Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Platformy Programistyczne Zagadnienia sieciowe i wątki

Platformy Programistyczne Zagadnienia sieciowe i wątki Platformy Programistyczne Zagadnienia sieciowe i wątki Agata Migalska 27/28 maja 2014 Komunikacja sieciowa 1 Komunikacja sieciowa 2 Wiele wątków 3 Serializacja Architektura typu klient-serwer Architektura

Bardziej szczegółowo

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 16.03.2017 Interfejsy raz jeszcze "Interfejsy

Bardziej szczegółowo

Wzorce projektowe kreacyjne

Wzorce projektowe kreacyjne Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie

Bardziej szczegółowo

Programowanie zespołowe

Programowanie zespołowe Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 6 Programowanie zespołowe Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Programowanie zespołowe Wymagania wstępne

Bardziej szczegółowo

ProActive Parallel Suite

ProActive Parallel Suite ProActive Parallel Suite Grzegorz Chimosz Wydziaª Matematyki, Informatyki i Mechaniki UW 8 stycznia 2009 Spis tre±ci 1 Programowanie wspóªbie»ne i rozproszone Architektura 2 3 Przykªad Bibliograa Programowanie

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Lab. 02: Algorytm Schrage

Lab. 02: Algorytm Schrage Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z

Bardziej szczegółowo

Komponenty sterowane komunikatami

Komponenty sterowane komunikatami Komponenty sterowane komunikatami 1. Usługa JMS asynchroniczność, model przesyłania komunikatów, 2. Przykład wysyłanie wiadomości, odbieranie wiadomości, komponent sterowany komunikatami 3. Komponenty

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Programowanie rozproszone w języku Java

Programowanie rozproszone w języku Java Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 2 Zwi zki mi dzy klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang.

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

Java: interfejsy i klasy wewnętrzne Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

Bardziej szczegółowo

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1 Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 5 Diagram sekwencji - wprowadzenie I Diagram sekwencji (ang. sequence diagram) jest jednym

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring. Zaawansowane aplikacje internetowe - laboratorium Architektura Spring. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej architekturę Spring. Aplikacja składa się z jednego

Bardziej szczegółowo

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

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykªad 4

Programowanie obiektowe w C++ Wykªad 4 Programowanie obiektowe w C++ Wykªad 4 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++ 1 / 26 Dziedziczenie - podstawy Denicja klasy dziedzicz cej

Bardziej szczegółowo

Języki i metody programowania Java. Wykład 2 (część 2)

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

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

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych Plan prezentacji Budowa aplikacji w technologii Enterprise JavaBeans Przegląd architektur aplikacji rozproszonych: CORBA,, Wprowadzenie do Enterprise JavaBeans () Budowa komponentów sesyjnych Budowa komponentów

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2. Aplikacje RMI Część 2 Budowa aplikacji rozproszonych http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/index.html I. Implementacja gniazd dziedziczących po Socket i ServerSocket oraz produkcji

Bardziej szczegółowo

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:

Plik pobrano z   Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja: Wzorce projektowe, cz. 2 Strategy Druga część z serii wpisów o wzorcach projektowych. Dziś omówię wzorzec Strategii (Strategy). Wstęp Strategia jest wzorcem projektowym, który definiuje rodzinę wymiennych

Bardziej szczegółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja Sieciowa wątki po stronie klienta Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się

Bardziej szczegółowo

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Wzorce projektowe. Wstęp

Wzorce projektowe. Wstęp Wstęp Stworzenie programu łatwego w rozwijaniu i naprawie nie należy do łatwych zadań. Na różnych etapach prac można napotkać wiele niemiłych niespodzianek i przeciwności losu, głównie takich które sami

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce

Bardziej szczegółowo

Builder (budowniczy) Cel: Przykład:

Builder (budowniczy) Cel: Przykład: 1/8 Builder (budowniczy) Cel: Oddzielenie konstruowania złożonego obiektu od jego reprezentacji, tak aby ten sam proces konstrukcji mógł tworzyć różne reprezentacje. Przykład: 2/8 abstract class TableBuilder

Bardziej szczegółowo

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

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów 1 Wst p Przypomnijmy,»e komputer skªada si z procesora, pami ci, systemu wej±cia-wyj±cia oraz po- ª cze«mi dzy nimi. W procesorze mo»emy

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Prosta aplikacja klient - serwer na bazie protokoªu UDP. Sprawozdanie.

Prosta aplikacja klient - serwer na bazie protokoªu UDP. Sprawozdanie. Prosta aplikacja klient - serwer na bazie protokoªu UDP. Sprawozdanie. Autor Pierwszy, Autor Drugi, Autor Trzeci Stycze«2012r Wy»sza Szkoªa Biznesu w D browie Górniczej Informatyka, I rok Studiów UM Spis

Bardziej szczegółowo

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie

Bardziej szczegółowo

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG Budowa aplikacji w technologii Enterprise JavaBeans Maciej Zakrzewicz PLOUG Plan prezentacji Przegląd architektur aplikacji rozproszonych: CORBA, SOAP, EJB Wprowadzenie do Enterprise JavaBeans (EJB) Budowa

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

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

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Model obiektu w JavaScript

Model obiektu w JavaScript 16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

Bardziej szczegółowo

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

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa« Praca cz ±ciowo sponsorowana przez Ministerstwo Nauki i Szkolnictwa Wy»szego, grant nr N N519 172337, Integracyjna metoda wytwarzania aplikacji rozproszonych o wysokich wymaganiach wiarygodno±ciowych.

Bardziej szczegółowo

Systemy Rozproszone - Ćwiczenie 6

Systemy Rozproszone - Ćwiczenie 6 Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez

Bardziej szczegółowo

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

Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe

Programowanie wielowarstwowe i komponentowe Programowanie wielowarstwowe i komponentowe JSF 2 wprowadzenie Konfiguracja Eclipse - dodanie szablonu XHTML dla potrzeb JSF 1. Otwórz menu Window/Preferences. Następnie z drzewka wybierz Web/HTML Files/Editor/Templates.

Bardziej szczegółowo

Zaawansowane Aplikacje Internetowe

Zaawansowane Aplikacje Internetowe framework Katedra Mikroelektroniki i Technik Informatycznych Łódź, 13 października 2010 1 Wprowadzenie Informacje organizacyjne 2 3 4 Informacje o przedmiocie Informacje organizacyjne Dokładne informacje

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

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

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki Computer Games Poker Bot - komunikacja Dokumentacja Wersja z dnia 01.01.2012 Zespół: Kamil Mazurek Tomasz Kruczkowski

Bardziej szczegółowo

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku. Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

Scala - programowanie obiektowo-funkcyjne

Scala - programowanie obiektowo-funkcyjne Program szkolenia: Scala - programowanie obiektowofunkcyjne Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Scala - programowanie obiektowo-funkcyjne Scala-Scala Scala developerzy

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

Projektowanie algorytmów rekurencyjnych

Projektowanie algorytmów rekurencyjnych C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i

Bardziej szczegółowo

Rysunkowy tutorial Możesz swobodnie dystrybuować ten plik jeśli pozostawisz go w nietkniętym stanie. Możesz także cytować jego fragmenty umieszczając w tekście odnośnik http://mbartyzel.blogspot.com Jak

Bardziej szczegółowo