Ćwiczenie 8. Rozległe sieci komputerowe

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

Download "Ćwiczenie 8. Rozległe sieci komputerowe"

Transkrypt

1 Ćwiczenie 8. Rozległe sieci komputerowe Biblioteka JavaMail API Standardowym rozszerzeniem języka Java 1.6 i kolejnych wersji jest biblioteka klas służąca do pisania zaawansowanych klientów . Jest ona obowiązkowym składnikiem Java 2 Platform, Enterprise Edition (J2EE). Można je zaimplementować w modelu 100% Pure Java za pomocą gniazd oraz strumieni. Jednakże dzięki JavaMail API nie trzeba się koncentrować na niskopoziomowych szczegółach, a można się skupić na programach, które mogą obsługiwać inne systemy pocztowe (POP3, Lotus Notes itp.). JavaMail API to wysokopoziomowa reprezentacja podstawowych składników dowolnego systemu pocztowego. Poszczególne składniki są reprezentowane przez abstrakcyjne klasy z pakiety javax.mail. Klasy te są abstrakcyjne, gdyż nie czynią żadnych założeń co do sposobu przechowywania poczty lub przesyłania jej pomiędzy komputerami. Poszczególne podklasy dostosowują te abstrakcyjne klasy do danych protokołów i formatów pocztowych. Korzystanie z JavaMailAPI to z grubsza fabryczny sposób projektowania aplikacji. Na przykład protokoły i formaty danych są wybierane za pomocą jednej linii kodu, w której podaje się nazwę protokołu. Zmiana nazwy protokołu spowoduje przystosowanie programu do obsługi innego protokołu. Ponieważ poczta może przybywać w dowolnym momencie, JavaMail API obsługuje pocztę przychodzącą za pomocą zdarzeniowego mechanizmu wywołań zwrotnych. Dokładnie tak samo działają AWT i JavaBeans. Pakiet JavaMail API używają JavaBeans. Pakiet javax.mail.event definiuje kilka różnych zdarzeń pocztowych oraz związane z nimi interfejsy odbiorcze i klasy adaptacyjne. Biblioteka JavaMail API to rozszerzenie Javy, które nie wchodzi w skład biblioteki klas JDK ani JRE. Jest ona dostępna bezpłatnie pod adresem Biblioteka ta zawiera aktualną wersję Java- Mail API, w tym najważniejszy plik mail.jar, w którym znajdują się pliki.class implementujące JavaMail API. Aby skompilować i uruchomić przykłady do tych ćwiczeń trzeba umieścić ten plik na ścież-ce klas, dodając jego katalog do zmiennej środowiskowej CLASSPATH, albo umieszczając mail.jar w katalogu jre/lib/ext. 1

2 JavaBeans Activation Framework jest również standardowym rozszerzeniem Javy, a nie częścią podstawowego API. Można je pobrać pod adresem Znajduje się w nim plik activation.jar, który również należy umieścić na ścieżce klas. 1. Wysyłanie poczty Wysyłanie poczty odbywa się poprzez wykonanie następujących operacji: 1) Ustawia właściwości mail.host tak, aby wskazywała lokalny serwer pocztowy. 2) Uruchamia sesję pocztową za pomocą metody Session.getInstance(). 3) Tworzy nowy obiekt Message, zwykle konkretyzując jedną z podklas. 4) Ustawia adres nadawcy wiadomości (From:). 5) Ustawia adres odbiorcy wiadomości (To:). 6) Ustawia temat wiadomości (Subject:). 7) Ustawia treść wiadomości. 8) Wysyła wiadomość za pomocą metody Transport.send(). Porządek tych operacji nie musi być ściśle zachowany. Każda z operacji jest wykonywana oddzielnie. Najpierw są ustawiane właściwości sesji pocztowej. W tym celu wystarczy ustawić właściwość mail.host. Jest to obiekt klasy java.util.properties, a nie zmienną środowiskową. Np. poniższy kod Properties props = new Properties(); props.put( mail.host, mail.cloud8.net ); ustawia adres mail.host na adres mail.cloud8.net. Oczywiście należy ustawiać tę właściwość na adres swojego serwera pocztowego. Właściwość tę wykorzystuje się też do pobrania obiektu Session za pomocą metody 2

3 Session.getInstance(): Session mailconnection = Session.getInstance(props, null); Obiekt Session reprezentuje połączenie między programem a serwerem pocztowym. Drugi argument metody getinstance(), tutaj null, to obiekt javax.mail.authenticator, który poprosi użytkownika o hasło, jeśli serwer tego zażądał. Z reguły nazwę użytkownika i hasło trzeba podać tylko przy odbieraniu poczty, a nie przy wysyłaniu. Obiekt Session jest używany do skonstruowania obiektu Message. W przypadku sieci Internet jest używana konkretna klasa MimeMessage. Następnie są ustawiane pola i treść obiektu Message. Adresy From: i To: są obiektami javax.mail.internet.internetaddress. Można podać adres albo sam adres i prawdziwe nazwisko, np. Address bill = new InternetAddress( billmicrosoft.com, Bill Gates ); Metoda SetFrom() pozwala określić nadawcę wiadomości przez ustawienie nagłówka From:. Nie ma żadnego zabezpieczenia przed fałszowaniem adresu, można podszyć się pod Billa Gatesa, używając podanego wyżej (fikcyjnego) adresu: msg.setfrom(bill); Metoda SetRecipient() jest bardziej skomplikowana. Nie tylko podaje adres, na który zostanie wysłana wiadomość, ale także sposób interpretacji tego adresu, tzn. czy znajduje się on w polu To:, Cc: czy Bcc:. Określa się to za pomocą trzech stałych klas Message.RecipientType: Message.RecipientType.TO Message.RecipientType.CC Message.RecipientType.BCC Na przykład: msg.setsubject( Czekam na Ciebie. ); 3

4 Temat ustawia się za pomocą prostego ciągu tekstowego, np.: msg.setsubject( Spotkanie. ); Treść również ustawia się za pomocą jednego ciągu tekstowego. Używa się typu text/plain, np.: msg.setcontent( Mam sprawę do Ciebie., text/plain ); Wreszcie statyczna metoda Transport.send() łączy się z serwerem pocztowym określonym we właściwości mail.host() i wysyła wiadomość w świat: Transport.send(msg); Poniższy przykład ilustruje wysłanie wiadomości. Przykład 1 import javax.mail.*; import javax.mail.internet.*; import java.util.*; public class Assimilator { public static void main(string[] args) { try { Properties props = new Properties props = Properties(); props.put( mail.host, mail.cloud8.net ); Session mailconnection = Session.getInstance(props, null); Message msg = new MimeMessage(mailConnection); Address bill = new InternetAddress( billmicrosoft.com, Bill Gates ); Address jan = new InternetAddress( janekgmail.com ); 4

5 msg.setcontent( Mam sprawę do Ciebie, text/plain ); msg.setfrom(bill); msg.setrecipient(message.recipienttype.to, jan); msg.setsubject( Spotkanie. ); Transport.send(msg); catch (Exception e) { e.printstacktrace(); Przykład 2. Graficzny klient SMTP Wysyłanie wiadomości przy użyciu prostego interfejsu graficznego przedstawiono poniżej. Kod pocztowy jest zawarty w metodzie actionperformed() i przypomina metodę main z przykładu poprzedniego. Różnica polega na tym, że w poniższym przykładzie host, temat, adresy From: i To: oraz tekst wiadomości są odczytywane ze składników interfejsu graficznego w czasie wykonania, a nie są zakodowane na sztywno". Poniżej zamieszczono kod prostego apletu wysyłającego pocztę. import javax.mail.*; import javax.mail.internet.*; import java.util.*; import javax.swing.*; import java.awt.event.*; import java.awt.*; public class SMPTClient extends JFrame { private JButton sendbutton = new JButton( Wyślij wiadomość ); private JLabel fromlabel = new JLabel( Od: ); private JLabel tolabel = new JLabel( Do: ); private JLabel hostlabel = new JLabel( Serwer SMTP: ); 5

6 private JLabel subjectlabel = new JLabel( Temat: ); private JLabel fromfield = new JTextField(40); private JTextField tofield = new JTextField(40); private JTextField hostfield = newjtextfield(40); private JTextField subjectfield = new JTextField(40); private JTextArea message = new JTextArea(40, 72); private JScrollPane jsp = new JScrollPane(msg); public SMTPClient() { super( SMTP Client ); Container contentpane = this.getcontentpane(); contentpane.setlayout(new BorderLayout()); JPanel labels = new JPanel(); labels.setlaout(new GridLayout(4, 1)); labels.add(hostlabel); JPanel fields = new JPanel(); fields.setlayout(4, 1)); String host = System.getProperty( mail.host, ); hostfield.settext(host); fields.add(hostfield); labels.add(tolabel); fields.add(tofield); String from = System.getProperty( mail.from, ); fromfield.settext(from); labels.add(fromlabel); fields.add(fromfield); labels.add(subjectlabel); fields.add(subjectfield); Box north = Box.createHorizontalBox(); north.add(labels); north.add(fields); 6

7 contentpane.add(north, BorderLayout.NORTH); message.setfont(new Font( Monospaced, Font.PLAIN, 12)); contentpane.add(jsp, BorderLayout.CENTER); JPanel south = new JPanel(); south.setlayout(new FlowLayout(FlowLayout.CENTER)); south.add(sendbutton); sendbutton.addactionlistener(new SendAction()); contentpane.add(south, BorderLayout.SOUTH); this.pack(); class SendAction implements ActionListener { public void actionperformed(actionevent evt) { try { Properties props = new Properties(); props.put( mail.host, hostfield.gettext()); Session mailconnection = Session.getInstance(props, null); final Message msg = new MimeMessage(mailConnection); Address to = new InternetAddress(toField.getText()); Addres from = new InternetAddress(fromField.getText()); msg.setcontent(message.gettext(), text/plain ); msg.setfrom(from); msg.setrecipient(message.recipienttype.to, to); msg.setsubject(subjectfield.gettext()); / / Tworzymy wątek w celu wysłania poczty. Runnable r = new Runnable() { public void run() { try { Transport.send(msg); 7

8 catch (Exception e) { e.printstacktrace(); ; Thread t = new Thread(r); t.start(); message.settext( ); catch (Exception e) { / / Tu powinien być komunikat o błędzie e.printstacktrack(); public static void main(string[] args) { SMTPClient client = new SMTPClient(); client.setdefaultcloseoperation(jframe.exit_on_close); client.show(); 2. Odbieranie poczty Odbieranie poczty jest bardziej złożone niż jej wysłanie. Do uzyskania dostępu do serwerów SMTP wystarczy jedno proste polecenie Helo, co jest przyczyną rozsyłania spamu, natomiast do odbierania poczty zwykle trzeba podawać nazwę użytkownika i hasło. SMTP stosuje 14 różnych poleceń, z których klientowi e- mail wystarczy tylko pięć. Natomiast POP3 używa 12 poleceń, z których wszystkie muszą być obsługiwane przez klienta, a w IMAP4 są aż 24 polecenia. JavaMail API zaprojektowano z założeniem, że wiadomości będą pobierane z serwera IMAP lub NNTP. Jednakże większość użytkowników aktualnie używa protokołu POP, a nie protokołu IMAP4. Z perspektywy JavaMail API, IMAP można traktować za POP uzupełniony o kilka poleceń do manipulowania fold- 8

9 erami. W prostych zastosowaniach JavaMail API, które operują na folderze IN- BOX, klienty POP oraz IMAP są bardzo podobne. Odczytywanie zdalnej skrzynki pocztowej składa się z około 12 etapów (dokładna liczba może się różnić). Są to: 1. Ustawić właściwości, które będą używane podczas połączenia. 2. Skonstruować obiekt Authenticator, który będzie używany podczas połączenia. 3. Pobrać obiekt Session za pomocą metody Session.getDefaultInstance(). 4. Użyć metody getstore() sesji, aby uzyskać magazyn Store. 5. Połączyć się z magazynem. 6. Pobrać z magazynu folder INBOX za pomocą metody getfolder(). 7. Otworzyć folder INBOX. 8. Otworzyć folder wewnątrz folderu INBOX. Powtarzać dopóki nie znajdziesz szukanego folderu. 9. Pobrać wiadomość z folderu jako tablicę obiektów Message. 10. Przetwarzać elementy tablicy za pomocą metod klasy Message. 11. Zamknąć folder. 12. Zamknąć magazyn. Każdy z etapów polega na określeniu właściwości sesji pocztowej. Jeśli podczas sesji pocztowej będzie tylko pobierana poczta, to wystarczy pusty obiekt Properties. Na przykład: Properties props = new Properties(); Następnie musi być utworzona instancja klasy javax.mail.authenticator, która zapyta użytkownika o hasło. Póki co hasło zostanie zakodowane w programie i przekazana zostanie wartość null zamiast obiektu Authenticator. 9

10 Później zostanie to zmienione. Authenticator a = null; Następnie używając obiektów Properties oraz Authenticator uzyskujemy instancję klasy Session: Session session = Session.getDefaultInstance(props, a); Następnie prosimy sesję o magazyn konkretnego dostawcy. Tutaj chcemy uzyskać magazyn POP3: Store store = session.getstore( POP3 ); Teraz musi nastąpić połączenie z magazynem za pomocą metody connect(). Musi być określony host, z którym należy się połączyć, oraz nazwa użytkownika i hasło: store.connect( gmail.com, mojenazwisko, moj_password ); Można podać wartość null zamiast hasła, aby poinformować, że o hasło należy zwrócić się do określonego wcześniej obiektu Authenticator. Po połączeniu się z magazynem można otworzyć jeden z jego folderów. Ten etap dotyczy innych protokołów niż POP3 (np. IMAP), gdyż POP3 wrzuca do jednego worka wszystkie wiadomości. W JavaMail API dostawcy POP3 posługują się folderem o nazwie INBOX: Folder inbox = store.getfolder("inbox"); Uzyskany folder jest początkowo zamknięty. Niektóre operacje, jak usunięcia lub zmiana nazwy, mogą być przeprowadzone nawet na zamkniętym folderze. Można też otworzyć folder tylko do odczytu, przekazując do metody open() stałą mnemoniczną Folder.READ_ONLY, a w trybie do odczytu i zapisu Folder.READ_WRITE: 10

11 inbox.open(folder.read_write); Teraz można pobrać wiadomości. Służy temu metoda getmessages(), która zwraca tablicę z wszystkimi wiadomościami zawartymi w folderze: Message[] messages = inbox.getmessages(); Klasa Message zawiera wiele metod operujących na pojedynczych wiadomościach: do pobierania różnych pól nagłówka, do pobierania treści wiadomości, do odpowiadania na wiadomość itp. Najprostszą możliwą operacją jest wyświetlenie każdej wiadomości na System.out, używając metody writeto() oraz klasy Message: for (int i = 0; i < messages.length; i++) { System.out.println(----- Wiadomosc "+ (i+1) "); messages[i].writeto(system.out); Na zakończenie musi być zamknięty folder, a następnie magazyn wiadomości za pomocą metod close(): inbox.close(false); store.close; Argument false oznacza, że serwer nie powinien rzeczywiście kasować wiadomości usuni?etych z folderu. Chcemy po prostu przerwać połączenie z folderem. Poniższy przykład ilustruje działanie klienta skrzynki pocztowej POP3. Przykład 3. Klient skrzynki pocztowej POP3 import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; public class POP3Client { 11

12 public static void main(string[] args) { Properties props = new Properties(); String host = nasz.serwer.edu ; String username= nazwisko ; String password = mojehaslo ; String provider = pop3 ; try { / / Łączymy się z serwerem POP3 Session session = Session.getDefaultInstance(props, null); Store store = session.getstore(provider); store.connect(host, username, password); / / Otwieramy folder Folder inbox = store.getfolder( INBOX ); if (inbox == null) { System.out.println( Brak folderu INBOX ); System.exit(1); inbox.open(folder.read_only); / / Pobieramy wiadomości z serwera Message[] message = inbox.getmessages(); for (int i = 0; i < messages.length; i++) { System.out.println( Wiadomosc + (i+1) + ); messages[i].writeto(system.out); / / Zamykamy połączenie, ale nie kasujemy wiadomości z serwera inbox.close(false); store.close(); catch (Exception e) { 12

13 e.printstacktrace(); 3. Uwierzytelnianie za pomoca haseł Uwierzytelnianie poczty za pomocą hase?l zwiększa bezpieczeństwo danych. Hasło nie powinno ukazywać się na ekranie. Byłoby najlepiej, gdyby ono nie było przesyłane jawnym tekstem, choć wiele klientów i serwerów POP3 tak postępuje. Kiedy otwiera się połączenie z magazynem, JavaMail API może obiektu javax.mail.authenticator w celu uzyskania nazwy użytkownika i hasła. Authenticator to klasa abstrakcyjna: public abstract class Authenticator extends Object Kiedy dostawca usług musi uzyskać nazwę użytkownika lub hasło, to wywołuje zwrotnie metodę getpasswordathentication w zdefiniowanej przez użytkownika podklasie Authenticator. Metoda zwraca obiekt PasswordAuthentication, zawierający te informacje: protected PasswordAuthentication getpasswordauthentication() Aby dodać do programu obsługę uwierzytelniania w czasie wykonywania, należy napisać podklasę Authenticator i nadpisać getpasswordauthentication() metodę, która potrafi bezpiecznie zapytać użytkownika o hasło. Do tego nadaje się składnik JPasswordField pakietu Swing. Poniższy przykład oparty na pakiecie Swing używa podklasy Authenticator, która wświetla okno dialogowe z pytaniem o nazwę użytkownika i hasło. Przykład 3. Klasa uwierzytelniajaca z interfejsem graficznym import javax.mail.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; 13

14 public class MailAuthenticatior extends Authenticator { private JDialog pasworddialog = new JDialog(new JFrame(), true); private JLabel mainlabel = new JLabel( Wpisz nazwę użytkownika i hasło: ); private JLabel userlabel = new JLabel( Nazwa: ); private JLabel passwordlabel = new JLabel( Hasło: ); private JTextField usernamefield = new JTextField(20); private JPasswordField passwordfield = new JPasswordField(20); private JButton okbutton = new JButton( OK ); public MailAuthenticator() { this( ); public MailAuthenticator(String username) { Container pane = passworddialog.getcontentpane(); pane.setlayout(new GridLayout(4, 1)); pane.add(mainlabel); JPanel p2 = new JPanel(); p2.add(userlabel); p2.add(usernamefield); usernamefield.settext(username); pane.add(p2); JPanel p3 = new JPanel(); p3.add(passwordlabel); p3.add(passwordfield); pane.add(p3); JPanel p4 = new JPanel(); p4.add(okbutton); pane.add(p4); passworddialog.pack(); ActionListener al = new HideDialog(); okbutton.addactionlistener(al); usernamefield.addactionlistener(al); passwordfield.addactionlistener(al); 14

15 class HideDialog implements ActionListener { public void actionperformed(actionevent e) { passworddialog.hide(); public PasswordAuthentication getpasswordauthentication() { passworddialog.show(); String password = new String(passwordField.getPassword()); String username = usernamefield.gettext(); passwordfield.settext( ); return new PasswordAuthentication(username, password); 15

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

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

Java wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 2 JavaMail 1 Wprowadzenie JavaMail 1.4 (opiera się na JavaBean Activation Framework (JAF) 1.1) odbieranie, tworzenie i wysyłanie wiadomości elektronicznych dla twórców

Bardziej szczegółowo

Kontenery i komponenty graficzne

Kontenery i komponenty graficzne JAVA Kontenery i komponenty graficzne Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Opracował: Andrzej Nowak Kontenery Aplikacja okienkowa składa

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Java Enterprise Edition spotkanie nr 1 (c.d.) JavaMail

Java Enterprise Edition spotkanie nr 1 (c.d.) JavaMail Java Enterprise Edition spotkanie nr 1 (c.d.) JavaMail 1 Wprowadzenie JavaMail 1.4 (opiera się na JavaBean Activation Framework (JAF) 1.1) odbieranie, tworzenie i wysyłanie wiadomości elektronicznych w

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

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

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE) Programowanie w języku Java Wykład 13: Java Platform, Enterprise Edition (Java EE) Standard J2EE Programowanie w języku Java 2 J2EE - komunikacja Programowanie w języku Java 3 J2EE warstwa biznesowa Programowanie

Bardziej szczegółowo

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia

Bardziej szczegółowo

Java - interfejs graficzny

Java - interfejs graficzny Java - interfejs graficzny Pakiet Swing Pakiet Swing przygotował: pawel@kasprowski.pl Czym jest Swing? Rozszerzenie AWT (Abstract Windows Toolkit) do tworzenia GUI (Graphical User Interface) w Javie import

Bardziej szczegółowo

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe. SWING c.d. ZAGADNIENIA: przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/dnd/ http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com GUI-Swing Wstęp do tworzenia prostych aplikacji z interfejsem graficznym (GUI) przy pomocy Swing, rysowanie prostych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

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

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006 Programowanie graficznego interfejsu użytkownika Wykład 8 Maciej Wołoszyn mailto:woloszyn@fatcat.ftj.agh.edu.pl 10 maja 2006 Spis treści 1 JFC/Swing 1 1.1 Prosty przykład.................................

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

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

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1) Instrukcja tworzenia aplikacji EE na podstawie aplikacji z dostępem do bazy danych, prezentowanej na zajęciach lab.5 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

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

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach Przykład 1 a) Program ProstyAplet2.class uruchomiony jako aplet w przeglądarce

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

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Graphic User Interfaces pakiet Swing

Graphic User Interfaces pakiet Swing Graphic User Interfaces pakiet Swing Streszczenie Celem wykładu jest zaprezentowanie podstaw tworzenia graficznych interfejsów przy użyciu pakietu Swing. Czas wykładu 90 minut. Można śmiało stwierdzić,

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

Tworzenie elementów graficznych

Tworzenie elementów graficznych Tworzenie elementów graficznych Elementy graficzne w Javie pozwalające tworzyć Graficzny Interfejs Użytkownika (GUI) możemy podzielić na dwie grupy: AWT (Abstract Window Toolkit) bibliotek klas służąca

Bardziej szczegółowo

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

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Programowanie graficznych interfejsów użytkownika

Programowanie graficznych interfejsów użytkownika Programowanie obiektowe Programowanie graficznych interfejsów użytkownika Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Programowanie

Bardziej szczegółowo

Jakarta POI. POIFS obsługa dokumentów OLE 2, HSSF dokumenty w formacie Excel'a, HWPF proste dokumenty w formacie Word 97,

Jakarta POI. POIFS obsługa dokumentów OLE 2, HSSF dokumenty w formacie Excel'a, HWPF proste dokumenty w formacie Word 97, 1 Jakarta POI Jakarta POI (http://jakarta.apache.org/poi/index.html) jest zbiorem narzędzi umożliwiającym prace z dokumentami zapisanymi w formatach wspieranych przez Microsoft. W skład POI wchodzą następujące

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Przykłady interfejsu TCP i UDP w Javie

Przykłady interfejsu TCP i UDP w Javie Przykłady interfejsu TCP i UDP w Javie W Javie interfejsy TCP i UDP znajdują się w pakiecie java.net http://docs.oracle.com/javase/6/docs/api/java/net/packagesummary.html 1 Przykład interfejsu UDP Protokół

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika Java niezbędnik programisty spotkanie nr 12 Graficzny interfejs użytkownika 1 Graphical User Interface (GUI) Abstract Window Toolkit Swing słabo się prezentuje mało obiektowy projekt i implementacja zajęły

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

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

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

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 13 Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods

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 (IIPP) 1 Mechanizm

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 w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

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

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

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

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

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

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Wykład 4_1 Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Przykład 1 a) Program ProstyAplet2.class uruchomiony jako aplet w przeglądarce (appletviewer)

Bardziej szczegółowo

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

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

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Sieci komputerowe i bazy danych

Sieci komputerowe i bazy danych Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Sieci komputerowe i bazy danych Sprawozdanie 5 Badanie protokołów pocztowych Szymon Dziewic Inżynieria Mechatroniczna Rok: III Grupa: L1 Zajęcia

Bardziej szczegółowo

Łukasz Przywarty Wrocław, r. Grupa: WT/N 11:15-14:00. Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API

Łukasz Przywarty Wrocław, r. Grupa: WT/N 11:15-14:00. Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API Łukasz Przywarty 171018 Wrocław, 17.01.2013 r. Grupa: WT/N 11:15-14:00 Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API Prowadzący: mgr inż. Mariusz Słabicki 1 / 5 1. Treść zadania laboratoryjnego W

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

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

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

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

Aplikacje w Javie- wykład 11 Wątki-podstawy

Aplikacje w Javie- wykład 11 Wątki-podstawy 1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

SWING. dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com

SWING. dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com SWING dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? Przykład aplikacji z GUI Zarządcy układu Obsługa zdarzeń Komponenty GUI Wprowadzenie obiektowy paradygmat do tworzenia

Bardziej szczegółowo

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe.

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe. SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/ http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android.

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android. Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android. Konfiguracja programu pocztowego dla urządzeń z systemem Android. W zależności od marki telefonu, użytej nakładki systemowej

Bardziej szczegółowo

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1. Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)

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

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

Programowanie zdarzeniowe

Programowanie zdarzeniowe Programowanie zdarzeniowe I. Podstawy obsługi zdarzeń Małgorzata Prolejko ZDA JA16Z03 Plan Pojęcie zdarzenia Klasy i obiekty słuchaczy Rejestracja słuchaczy Obsługa naciśnięcia przycisku Rozpoznawanie

Bardziej szczegółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

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

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

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

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 metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja

Bardziej szczegółowo

Instrukcja konfiguracji funkcji skanowania

Instrukcja konfiguracji funkcji skanowania Instrukcja konfiguracji funkcji skanowania WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_PL 2004. Wszystkie prawa zastrzeżone. Rozpowszechnianie bez zezwolenia przedstawionych materiałów i informacji

Bardziej szczegółowo

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); 1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie

Bardziej szczegółowo

Java Platform Micro Edition

Java Platform Micro Edition Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html

Bardziej szczegółowo

Programowanie w języku Java

Programowanie w języku Java Programowanie w języku Java Wykład 4: Programowanie rozproszone: TCP/IP, URL. Programowanie sieciowe w Javie proste programowanie sieciowe (java.net) na poziomie UDP na poziomie IP na poziomie URL JDBC

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

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