Tworzenie i wykorzystanie usług
|
|
- Bernard Małek
- 9 lat temu
- Przeglądów:
Transkrypt
1 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 lokalnej Tworzenie usługi zdalnej
2 Strona 2 Usługa w systemie Android Usługa (service) to jeden z możliwych składników aplikacji systemu Android. Charakterystyka usługi: proces działający w tle przez dłuższy czas nie posiada interfejsu użytkownika posiada cykl życia Zadania przetwarzane w tle Komunikacja międzyprocesowa w urządzeniu usługa lokalna (dostępna tylko w aplikacji, której składnikiem jest usługa) usługa zdalna (łączą się z nią zdalnie inne aplikacje w urządzeniu, umożliwia komunikację między aplikacjami, definiowana w języku AIDL) dostępne są usługi zdalne systemowe (składniki innych aplikacji) możliwość tworzenia własnych usług (dziedziczenie po klasie Service) możliwość wykorzystania usług zewnętrznych (np. usługi HTTP)
3 Strona 3 Usługi HTTP Do obsługi usług zewnętrznych wykorzystywany jest protokół HTTP. W systemie Android dostępny jest moduł HttpClient, który bazuje na module znanym z Java EE. Jest to klient protokołu HTTP, który umożliwia pełną obsługę protokołu, jednak najczęściej wykorzystywane czynności to: obsługa wywołania HTTP GET obsługa wywołania HTTP POST Schemat obsługi wywołań GET i POST za pomocą modułu HttpClient : 1. utworzenie obiektu modułu HttpClient, 2. utworzenie obiektu żądania HTTP (abstrakcja HttpGet lub HttpPost), 3. konfiguracja ewentualnych nazw i wartości parametrów protokołu HTTP, 4. wykonanie wywołania GET lub POST, 5. przetworzenie uzyskanej odpowiedzi protokołu HTTP.
4 Strona 4 Obsługa wywołania HTTP GET BufferedReader we = null; // bufor try obiekt klienta HTTP HttpClient klient = new DefaultHttpClient(); 3 obiekt żądania GET (bez parametrów) HttpGet request = new HttpGet(); request.seturi(new URI( )); metoda execute HttpResponse odp = klient.execute(request); wykonuje żądanie we = new BufferedReader(new InputStreamReader(odp.getEntity().getContent())); StringBuffer sb = new StringBuffer( ); String linia = ; String NL = System.getProperty( line.separator ); while ( (linia = we.readline())!= null ) sb.append(linia + NL); pętla odczytu odpowiedzi HTTP we.close(); String wynik = sb.tostring(); System.out.println(wynik); //... parametry żądania GET możliwe jako część adresu URL, np. zawartość pobrana ze strony www Kod wymaga nadania w deskryptorze aplikacji uprawnienia INTERNET (dostęp do Internetu). 5
5 Strona 5 Obsługa wywołania HTTP GET (c.d.) //... finally if (we!= null) try we.close(); catch (IOException e) e.printstacktrace(); zamknięcie bufora, a tym samym zamknięcie połączenia HTTP Kod wymaga nadania w deskryptorze aplikacji uprawnienia INTERNET (dostęp do Internetu).
6 Strona 6 Obsługa wywołania HTTP POST BufferedReader we = null; // bufor try obiekt klienta HTTP obiekt żądania POST (jeden parametr jako część treści żądania) 1 2 HttpClient klient = new DefaultHttpClient(); HttpPost request = new HttpPost( ); 3 lista parametrów żądania: pary nazwa parametru, wartość List<NameValuePair> param = new ArrayList<NameValuePair>(); param.add(new BasicNameValuePair( a, 10 )); UrlEncodedFormEntity fe = new UrlEncodedFormEntity(param); request.setentity(fe); dodanie parametru do listy 4 5 HttpResponse odp = klient.execute(request); wykonanie żądania we = new BufferedReader(new InputStreamReader(odp.getEntity().getContent())); // odczyt i przetworzenie odpowiedzi jak na str.6 finally // jak na str.7 Kod wymaga nadania w deskryptorze aplikacji uprawnienia INTERNET (dostęp do Internetu).
7 Strona 7 Wieloczęściowe wywołanie HTTP POST Żądanie POST pozwala również przekazywać parametry w postaci złożonej, jako pary nazwa-wartość i pliki (tzw. multipart POST). W systemie Android obsługa wieloczęściowych żądań POST wymaga pobrania i dodania do projektu aplikacji następujących bibliotek w formacie JAR: Commons IO Mime4j HttpMime W środowisku Eclipse, biblioteki należy dodać do projektu aplikacji: należy kliknąć prawym przyciskiem myszy nazwę projektu, w rozwijanym menu wybrać kolejno: Properties Java Class Path zakładka Libraries opcja Add External JARs.
8 Strona 8 try 1 2 Obsługa wieloczęściowego wywołania HTTP POST obiekt klienta HTTP obiekt żądania POST InputStream is = this.getassets().open( dane.xml ); HttpClient klient = new DefaultHttpClient(); HttpPost request = new HttpPost( ); 3 byte[] dane = IOUtils.toByteArray(is); InputStreamBody isb; isb = new InputStreamBody(new ByteArrayInputStream(dane), plik ); StringBody sb1 = new StringBody( część 1 ); StringBody sb2 = new StringBody( część 2 ); MultiPartEntity mp = new MultiPartEntity(); treść żądania mp.addpart( plik, isb); mp.addpart( jeden, sb1); mp.addpart( dwa, sb2); request.setentity(mp); // plik XML // String // String parametry żądania jako części treści żądania 4 HttpResponse odp = klient.execute(request); odp.getentity().getcontent().close(); catch (Throwable e) /* obsługa wyjątków*/ wykonanie żądania Kod wymaga nadania w deskryptorze aplikacji uprawnienia INTERNET (dostęp do Internetu).
9 Strona 9 Problem wyjątków w usługach HTTP Korzystanie z usług HTTP w szczególnych przypadkach może powodować występowanie wyjątków: wyjątki transportowe np. niska jakość połączenia sieciowego, wyjątki protokołowe np. błędy uwierzytelniania, niewłaściwe pliki ciasteczek cookie, wyjątki wynikające z przekroczenia limitu czasu: przekroczenie czasu połączenia (niepoprawny adres URL, brak odpowiedzi serwera, niemożność ustanowienia połączenia), przekroczenie czasu gniazda (brak odpowiedzi serwera w określonym czasie). Najprostszą metodą obsługi przekroczeń limitu czasu jest ponawianie wywołań HTTP i umieszczenie metody execute wykonującej żądanie w klauzulach try-catch.
10 Strona 10 Obsługa przekroczenia limitu czasu int liczba_prob = 3; // liczba ponawianych prób wywołań HTTP int licznik = 0; while (licznik < liczba_prob) licznik++; try // tutaj kod wywołania, np. GET ze str.6 catch (Exception e) Przykładowy schemat obsługi przekroczenia limitu czasu. if (licznik < liczba_prob) // nie wyczerpano limitu powtórzeń System.out.println(e.getMessage()); else System.out.println( próba zakończona niepowodzeniem ); throw e;
11 Strona 11 Usługi lokalne Usługa lokalna jest wykorzystywana w obrębie jednego procesu. Przeznaczona jest do uruchamiania zadań wykonywanych w tle, na potrzeby aplikacji która uruchomiła usługę. Jest wywoływana wyłącznie przez aplikację, która nią zarządza. Przykłady usług lokalnych: okresowe łączenie się z Internetem w celu pobrania lub wysłania danych, kolejkowanie zadań i ich zgłaszanie do wykonania przez aktywności w tej samej aplikacji. Obsługa usługi lokalnej: uruchamianie metoda Context.startService() Wywołanie metody Context.startService powoduje utworzenie usługi i uruchomienie jej metody onstart(). Ponowne wywołanie metody Context.startService nie tworzy nowej instancji usługi przywołuje jedynie metodę onstart istniejącej już usługi. zatrzymywanie przez klienta metoda Context.stopService() zatrzymywanie przez usługę metoda stopself().
12 Strona 12 Usługi zdalne Usługa zdalna (zewnętrzna) obsługuje metodę onbind(). Przeznaczona jest do komunikacji międzyprocesowej (między aplikacjami). Obsługuje mechanizm wywołania RPC (Remote Procedure Call) zdalne wywołanie procedury (usługa RPC). Umożliwia zewnętrznym aplikacjom (klientom), działającym na tym samym urządzeniu, uzyskanie dostępu do usługi (podłączenie do usługi) i korzystanie z jej funkcji. Usługa zdalna to usługa obsługująca język AIDL, usługa AIDL (Android Interface Definition Language język definicji interfejsu systemu Android). Klienci komunikują się z usługą zdalną za pomocą języka AIDL. Usługi są definiowane wobec klientów przy użyciu języka AIDL. Obsługa usługi zdalnej: uruchamianie (klient łączy się z usługą) metoda Context.bindService() rozłączenie klienta z usługą metoda Context.unbindService().
13 Strona 13 Wybrane metody publiczne klasy android.app.service IBinder onbind(intent intent); void onconfigurationchanged(configuration newconfig); void oncreate(); void ondestroy(); void onlowmemory(); void onrebind(intent intent); void onstart(intent intent, int startid); boolean onunbind(intent intent); Application getapplication(); final void stopself(); final void stopself(int startid); final boolean stopselfresult(int startid); zwraca interfejs umożliwiający aplikacjom komunikację z usługą zmienia konfigurację usługi po zmianie konfiguracji urządzenia pierwsze utworzenie usługi (inicjalizacja), przed onstart zamknięcie usługi wołana przy małej ilości pamięci wołana, gdy nowy klient jest podłączany do usługi wołana po startservice wołana, gdy wszyscy klienci zostaną odłączeni od usługi zwraca obiekt aplikacji usługi zatrzymanie usługi przez nią samą (zatrzymanie usługi przez klienta: Context.stopService)
14 Strona 14 Tworzenie usługi lokalnej definicja usługi import android.app.service; utworzenie klasy dziedziczącej po public class NaszService extends Service abstrakcyjnej klasie Service private static final String TAG = NaszService public void oncreate() super.oncreate(); Log.d(TAG, oncreate ); Thread t = new Thread(null, new Zadanie(), NaszService ); t.start(); wątek dla public IBinder onbind(intent intent) Log.d(TAG, onbind ); return null; usługa lokalna nie obsługuje metody onbind wynik to null informacje wyświetlane w oknie narzędzia do usuwania błędów LogCat class Zadanie implements Runnable public void run() // zadanie wykonywane w tle... // zatrzymanie usługi przez nią // samą: metoda // NaszService.this.stopSelf()
15 Strona 15 Tworzenie usługi lokalnej rejestracja i uruchamianie Rejestrowanie usługi w pliku AndroidManifest.xml Usługę należy zarejestrować w deskryptorze aplikacji w węźle service. <application <service android:name="naszservice"> </service> </application> nazwa klasy usługi Uruchamianie i zatrzymywanie usługi przez klienta aktywność bieżąca nazwa klasy usługi startservice(new Intent(aktywnosc.this, NaszService.class)); stopservice(new Intent(aktywnosc.this, NaszService.class));
16 Strona 16 Tworzenie usługi zdalnej Usługa zdalna to usługa obsługująca język AIDL, usługa AIDL (Android Interface Definition Language język definicji interfejsu systemu Android). Klienci komunikują się z usługą zdalną za pomocą języka AIDL. Usługi są definiowane wobec klientów również przy użyciu języka AIDL. Definiowanie usługi zdalnej: 1. utworzenie pliku AIDL definiującego interfejs usługi dla klienta, 2. dodanie pliku AIDL do katalog src projektu aplikacji (w czasie kopiowania pliku/kompilacji projektu, na podstawie pliku AIDL zostanie wygenerowany interfejs Java w katalogu gen projektu), 3. zaimplementowanie usługi i zwrócenie interfejsu IBinder w metodzie onbind, 4. zarejestrowanie usługi w pliku deskryptora aplikacji.
17 Strona 17 KROK 1 Tworzenie usługi zdalnej plik AIDL Plik AIDL to plik źródłowy o rozszerzeniu *.aidl, zawierający kod Java. Przykład pliku AIDL: // plik INaszService.aidl package com.przyklad.pakiet; interface INaszService double wynik(string arg); nazwa pakietu taka sama jak nazwa pakietu w projekcie aplikacji definicja interfejsu usługi INaszService
18 Strona 18 KROK 3 Tworzenie usługi zdalnej definicja usługi public class NaszService extends Service private static final String TAG = NaszService ; utworzenie klasy dziedziczącej po interfejsie INaszService public class NaszServiceImp extends public double wynik(string arg) throws RemoteException Log.v(TAG, Metoda wynik wywołana dla + arg); return 20.0; // tutaj to co realizuje usługa, zwraca wynik public IBinder onbind(intent intent) Log.v(TAG, onbind ); return new NaszSerwiceImpl; //... utworzenie klasy dziedziczącej po abstrakcyjnej klasie Service klasa abstrakcyjna Stub wygenerowana automatycznie dla interfejsu informacje wyświetlane w oknie narzędzia do usuwania błędów LogCat usługa zdalna obsługuje metodę onbind - zwraca instancję implementowanej klasy-usługi
19 Strona 19 KROK 3 Tworzenie usługi zdalnej definicja usługi (c.d.) Metody zostały przedefiniowane jedynie public void oncreate() w celu wyświetlania informacji w oknie narzędzia do usuwania błędów LogCat. super.oncreate(); Log.v(TAG, wywołana metoda oncreate public void ondestroy() super.ondestroy(); Log.v(TAG, wywołana metoda ondestroy public void onstart(intent intent, int startid) super.onstart(intent, startid); Log.v(TAG, wywołana metoda onstart );
20 Strona 20 Tworzenie usługi zdalnej rejestrowanie usługi KROK 4 Usługę należy zarejestrować w deskryptorze aplikacji w węźle service. Fragment pliku AndroidManifest.xml: <application <service android:name="naszservice"> <intent-filter> <action android:name="com.przyklad.pakiet.inaszservice" /> </intent-filter> </service> filtr intencji dla usługi </application>
21 Strona 21 Tworzenie usługi zdalnej czynności po stronie klienta INaszService usluga = null; obiekt usługi obiekt implementujący interfejs ServiceConnection ServiceConnection sc = new metoda uruchamiana po połączeniu z usługą public void onserviceconnected(componentname name, IBinder service) Log.v(TAG, wywołana metoda onserviceconnected ); usluga = INaszService.Stub.asInterface(service); double x = usluga.wynik( abcd ); // i inne czynności związane z usługą... ; metoda uruchamiana po przerwaniu połączenia z public void onservicedisconnected(componentname name) Log.v(TAG, wywołana metoda onservicedisconnected ); usluga = null; nazwa usługi AIDL instancja obiektu ServiceConnection flaga (automatyczne tworzenie usługi) // przyłączenie klienta do usługi: bindservice(new Intent(INaszService.class.getName()),sc,Context.BIND_AUTO_CREATE); // wywołanie usługi przez klienta: double x = usluga.wynik( abcd ); // i inne czynności związane z usługą... // odłączenie klienta od usługi: unbindservice(sc);
akademia androida Service, BroadcastReceiver, ContentProvider część IV
akademia androida Service, BroadcastReceiver, ContentProvider część IV agenda 1. BroadcastReceiver 2. Service 3. ContentProvider 4. Zadanie 1. 5. Zadanie 2 (domowe). 1. BroadcastReceiver BroadcastReceiver
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
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
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,
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
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
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
Systemy operacyjne na platformach mobilnych
Systemy operacyjne na platformach mobilnych Wykład 3 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Menu opcji ListActivity własny widok własny adapter
Android, wprowadzenie do SDK
Android, wprowadzenie do SDK Wprowadzenie, konfguracja środowiska, narzędzia, pierwsze aplikacje. prowadzący: Piotr Szymański, student 3 roku informatyki Paweł Rejkowicz, student 1 roku Informatyki 1 Android
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
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
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,
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
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
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
Fragmenty są wspierane od Androida 1.6
W androidzie można tworzyć dynamiczne interfejsy poprzez łączenie w moduły komponentów UI z aktywnościami. Moduły takie tworzy się za pomocą klasy Fragment, która zachowuje się jak zagnieżdżone aktywności
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
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
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
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).
Języki i metody programowania Java INF302W Wykład 3 (część 1)
Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,
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
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
Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1
P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw
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
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)
D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
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
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
akademia androida Składowanie danych część VI
akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.
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
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
akademia androida Pierwsze kroki w Androidzie część I
akademia androida Pierwsze kroki w Androidzie część I agenda Środowisko do pracy + emulator Struktura projektu z omówieniem Po co nam AndroidManifest.xml? Cykl życia aplikacji Zadanie 1. Kod, symulacja,
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
RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie
RESTful Android Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie Jacek Laskowski jacek@japila.pl http://www.jaceklaskowski.pl wersja 1.0, 08.12.2011 O prelegencie - Jacek Laskowski
akademia androida Http i AsyncTask część VII
akademia androida Http i AsyncTask część VII agenda 1. 2. 3. 4. URLConnection i HttpURLConnection UI Thread i ANR AsyncTask Zadanie 1. URLConnection i HttpURLConnection Jest to klasa, dzięki której możemy
Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.
Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o. 29.06.2015 2 Spis treści 1. Wymagania...4 2. Uprawnienia systemowe...4 3. Uprawnienie
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,
Zaawansowane aplikacje internetowe laboratorium
Zaawansowane aplikacje internetowe laboratorium Web Services (część 2). Celem ćwiczenia jest przygotowanie prostej aplikacji prezentującej technologię usług sieciowych (ang. Web Services). Przygotowana
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
JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html
JAVA I SIECI ZAGADNIENIA: URL, Interfejs gniazd, transmisja SSL, protokół JNLP. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,
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ć
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
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....................................................................................
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
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
Ć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
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
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/
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
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)
Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz
Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,
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
Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz
Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application
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
Zaawansowane aplikacje internetowe
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
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
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
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek
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
2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK
Zaawansowane aplikacje internetowe EJB 2 Celem tego laboratorium jest pokazanie, w jaki sposób aplikacje stworzone w różnych technologiach mogą korzystać z funkcjonalności udostępnianej przez komponenty
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
Zastosowanie komponentów EJB typu Session
Zastosowanie komponentów EJB typu Session na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe Lab1 1 1. Refaktoryzacja kodu programu Sklep_6 z lab5, TINT 1.1. Należy wykonać
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,
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
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
Programowanie w języku Java. Bazy danych SQLite w Javie
Programowanie w języku Java Bazy danych SQLite w Javie Co to jest SQLite SQLite to bezserwerowa, nie wymagająca konfiguracji relacyjna baza danych. Znajduje szerokie zastosowanie np.. w systemie android
1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)? public class A { public int i; { i++; System.out.print(i); public static void main(string[] args) { A a1
1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();
1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {; static public void m2() {; void abstract m3(); default static void m4() {; a) Poprawnie zadeklarowano metodę m1() b) Poprawnie
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
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji
KLASY, INTERFEJSY, ITP
KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/
Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz
Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres
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
Java programowanie w sieci. java.net RMI
Java programowanie w sieci java.net RMI Programowanie sieciowe OSI WARSTWA APLIKACJI (7) WARSTWA PREZENTACJI(6) WARSTWA SESJI (5) WARSTWA TRANSPORTU (4) DoD Warstwa aplikacji (HTTP) Transport (gniazdka)
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/
Serwer współbieżny połączeniowy
Serwery współbieżne 1. Serwery współbieżne serwery połączeniowe, usuwanie zakończonych procesów, serwery bezpołączeniowe, 2. Jednoprocesowe serwery współbieżne. koncepcja i implementacja. 1 Serwer współbieżny
WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.
WYJĄTKI Klasa Throwable Exception Error Klasy dziedziczące po klasie Exception są typami wyjątków, które automatycznie obsługuje Java lub program przy jawnym przechwytywaniu i obsłudze wyjątków w blokach
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid
Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Tomasz Kuczyński Dział Aplikacji Tomasz Nowak Zespół Bezpieczeństwa Wrocław, 2.12.2010 r. Konferencja i3: internet
Wykład 8: Obsługa Wyjątków
Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez
Obsługa SMS i telefonii
Strona 1 Interfejsy API telefonii Wysyłanie wiadomości SMS Odbieranie wiadomości SMS Symulowanie nadchodzących wiadomości SMS Obsługa skrzynki wiadomości SMS Wysyłanie wiadomości e-mail Monitorowanie połączeń
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
Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.
Aktywności to podstawowe elementy związane z platformą Android. Dzięki poznaniu aktywności będziesz w stanie napisać pierwszą aplikację przeznaczoną na urządzenie mobilne. Po dodaniu kontrolek możesz w
Java wybrane technologie spotkanie nr 4. Serwlety c.d.
Java wybrane technologie spotkanie nr 4 Serwlety c.d. 1 Wprowadzenie Narzucona struktura katalogów aplikacji (większa przenośności) webapps -app1 -app2 -app3 (root) -*.html, *.gif, *.js, *.css (być może
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)
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
Java. Programowanie Obiektowe Mateusz Cicheński
Java Programowanie Obiektowe Mateusz Cicheński Wielowątkowość Proces a wątek? Thread vs Runnable sleep(), interrupt(), join() Problemy wielowątkowości Obiekty niemodyfikowalne (immutable) Serializacja
Projektowanie aplikacji internetowych laboratorium
Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji
Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych
Protokół JDBC współpraca z relacyjnymi bazami danych lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void
AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak
AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Ustawienie zmiennych środowiskowych Przed rozpoczęciem pracy z pakietem AXIS należy ustalić
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń Laboratorium 6 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_6, Zofia Kruczkiewicz 1 Wykaz pytań dotyczących materiału wykorzystanego w lab6, które
Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet JSP ciąg dalszy Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić JSP tags, Używanie tagów, Custom tags, JSP objests, Obiekty
Programowanie komponentowe 5
Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf
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
SOAP. Autor: Piotr Sobczak
SOAP Autor: Piotr Sobczak AGENDA: Trochę o Web Services Wprowadzenie do SOAP Anatomia komunikatu SOAP Wysyłanie i otrzymywanie komunikatu SOAP oraz API Javy w przykładach SOAP z załącznikami SOAP-RPC Obsługa
Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF
Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF O mnie 12 lat doświadczenia w systemach WEB Java/JEE (ISC) 2 CISSP CTO w J-LABS GET / HTTP/1.1 Host: bank.pl User-Agent: Mozilla/5.0
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