Technologia Programowania 2016/2017 Wykªad 9
|
|
- Aleksandra Chrzanowska
- 7 lat temu
- Przeglądów:
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 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
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
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
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
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
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
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
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
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,
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
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ć
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
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:
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
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
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
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)
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
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
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
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,
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
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
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ę,
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
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
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.
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
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,
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
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
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
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ąć
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,
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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ę
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ół
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
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
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
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
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
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
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
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
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
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
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
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....................................................................................
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
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
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
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
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
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
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
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
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
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.
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
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
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
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.
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
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
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
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).
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
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
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
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
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
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