AKADEMIA GÓRNICZO-HUTNICZA

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

Download "AKADEMIA GÓRNICZO-HUTNICZA"

Transkrypt

1 AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI Mobilny klient Web Serwisów dla urządzeń ipaq Kierunek, rok studiów: Wersja z dnia Informatyka, IV rok Przedmiot: Środowiska Implementacji Usług Sieciowych Grupa (projekt): Prowadzący zajęcia: Rok akad: 2007/2008 Dr inŝ. Piotr Nawrocki Semestr: letni Zespół autorski: Monika Nawrot Tomasz Jadczyk Tomasz Sadura nawrot@student.agh.edu.pl jadczyk@student.agh.edu.pl borysb@student.agh.edu.pl Kraków, maj 2008

2 Niniejsze opracowanie powstało w trakcie i jako rezultat zajęć dydaktycznych z przedmiotu wymienionego na stronie tytułowej, prowadzonych w Akademii Górniczo-Hutniczej w Krakowie (AGH) przez osobę (osoby) wymienioną (wymienione) po słowach "Prowadzący zajęcia" i nie moŝe być wykorzystywane w jakikolwiek sposób i do jakichkolwiek celów, w całości lub części, w szczególności publikowane w jakikolwiek sposób i w jakiejkolwiek formie, bez uzyskania uprzedniej, pisemnej zgody tej osoby (tych osób) lub odpowiednich władz AGH. (AGH) w Krakowie Spis treści 1. Temat 4 2. ipaq HP H HP H Środowisko Windows Mobile JavaFX Mobile Co to jest JavaFX JavaFX Script JavaFX Mobile UŜycie JavaFX w przypadku WebServiców JavaME Konfiguracja CLDC Konfiguracja CDC Xlety i Midlety Web Serwisy WSDL JSR Cechy JSR Ograniczenia JSR Cechy JAXP JBoss Instalacja i konfiguracja środowiska Środowisko Developerskie WebSphere Studio Device Developer Micro Environment Toolkit System kontroli wersji Web Serwis Przykładowy Web Serwis z aplikacją kliencką Wykonanie projektu Klient statyczny Opis UŜyte oprogramowanie oraz przydatne linki Problemy i sposoby rozwiązania 29 Plik: Dokumentacja.doc Wersja: z dnia Stron: 2 Długość: 307 kb 2

3 6.2. Klient dynamiczny Opis Serwer usług Web Serwis wysyłający i odbierający maile Klient ipaq korzystający z Web Serwisu Słownik skrótów Bibliografia 48 Plik: Dokumentacja.doc Wersja: z dnia Stron: 3 Długość: 307 kb 3

4 1. Temat Tematem projektu jest stworzenie mobilnego klienta dla urządzeń typu ipaq z systemem Windows Mobile umoŝliwiającego dostęp do zlokalizowanych na serwerze web serwisów. Plan prac obejmuje zarówno stworzenie przykładowego serwisu o określonej funkcjonalności jak i przetestowanie opracowanego rozwiązania na fizycznym urządzeniu. W drugiej części projektu zostanie rozwaŝone umieszczenie serwisu na palmtopie z zewnętrznym klientem. Analiza problemu powinna prowadzić do decyzji dotyczącej implementacji oraz ewentualnym wdroŝeniu takiego rozwiązania. Plik: Dokumentacja.doc Wersja: z dnia Stron: 4 Długość: 307 kb 4

5 2. ipaq W ramach projektu będą dostępne dwa urządzenia typu ipaq. Na nich testowany będzie tworzony klient Web Serwisów na urządzenia mobilne oraz posłuŝą one jako urządzenia do sprawdzenia moŝliwości świadczenia usług web serwisowych w roli serwerów. PoniŜej zebrano informacje na temat palmtopów, które będą pomocne w ocenie moŝliwości i jakości działania rozwaŝanego projektu HP H6300 Pamięć SDRAM 64-MB (55-MB dostępne dla uŝytkownika) ROM 64-MB Procesor Texas Instruments OMAP 1510 (203 MHz) Processor WLAN IEEE 802 Part 11b (802.11b) Interfejsy IrDa USB GSM/GPRS Quad-band GSM/GPRS Bluetooth Bluetooth 1.1 compliant, High-speed UART processor interface System Operacyjny Windows Mobile 2003 software for Pocket PC Phone EditionPocket Całość specyfikacji dostępna [1] HP H5450 Pamięć 64-MB SDRAM; 48-MB Flash ROM Memory Procesor 400 MHz Intel PXA250 Application Processor WLAN IEEE 802 Part 11b (802.11b) Interfejsy IrDa USB Bluetooth Bluetooth 1.1 compliant, High-speed UART processor interface System Operacyjny Microsoft Windows for Pocket PC 2002 Całość specyfikacji dostępna [2]. Plik: Dokumentacja.doc Wersja: z dnia Stron: 5 Długość: 307 kb 5

6 3. Środowisko PoniŜej zawarto podstawowe informacje o technologiach, które zostaną uŝyte w projekcie. Zostały równieŝ przedstawione moŝliwości uŝycia JavaFX Mobile Windows Mobile System Windows Mobile jest przeznaczony do tworzenia aplikacji przy wykorzystaniu framework u.net. Firma SUN oficjalnie nie wspiera tej platformy w swoich rozwiązaniach J2ME, dlatego chcąc uŝywać aplikacji Javy naleŝy korzystać z rozwiązań innych producentów. Przykładami takich rozwiązań są: - IBM MIDP Emulator - Risidoro Intent MIDlet Manager [15] Oba te środowiska implementują wersję MicroEdition. - phoneme i phoneme Advanced [34] są zgodne odpowiednio z konfiguracją CLDC (i profilem MIDP) oraz w wersji Advanced z konfiguracją CDC oraz wszystkimi profilami w wersji 1.1. Istnieją juŝ utworzone pakiety binarne phoneme Advanced dla róznych systemów [35]. Pod adresem [36] znajduje się opis instalacji dla systemów z rodziny Windows Mobile. - IBM WebSphere Everyplace Micro Environment [40] maszyna wirtualna dostępna w wielu wersjach, została wykorzystana w naszym projekcie uŝyliśmy wersji 6.1 spełniającej specyfikację CDC 1.1 z PersonalProfile 1.1, duŝą zaletą jest łatwość rozszerzenia funkcjonalności o dodatkowe pakiety, pozwalające np na korzystanie z WebSerwisów. Istnieje takŝe projekt maszyny wirtualnej spełniającej specyfikację StandardEdition (Mysaifu JVM [14] ) JavaFX Mobile Co to jest JavaFX. JavaFX jest rodziną produktów firmy Sun, mających na celu ułatwienie tworzenia i dostępu do aplikacji typu RIA zarówno na komputerach typu PC jak i urządzeniach PDA oraz telefonach komórkowych. Na konferencji JavaOne w maju 2007 roku ([3]) zostały zaprezentowane język skryptowy JavaFX Script, pozwalający w łatwy sposób tworzyć aplikacje z bogatym interfejsem graficznym i uŝywające multimediów oraz JavaFX Mobile, który będzie pozwalał na uruchamianie aplikacji JavaFX Script na urządzeniach przenośnych. Więcej informacji o JavaFX znajduje się pod adresem: ([4]). Plik: Dokumentacja.doc Wersja: z dnia Stron: 6 Długość: 307 kb 6

7 JavaFX Script Jest to język skryptowy w którym w prosty i szybki sposób moŝna produkować aplikacje wyposaŝone w bogaty interfejs graficzny. Aplikacje napisane w tym języku mają być w łatwy sposób uruchamiane na wielu platformach sprzętowych jak i pod róŝnymi systemami operacyjnymi. Specyfikacja języka jest zgodna JSR 223, co pozwala na uŝywanie klas Javy oraz na wywoływanie kodu JavaFX Script z poziomu aplikacji Java. Do uruchomienia potrzebny jest interpreter (opis uŝywania dostępny pod adresem [5]), moŝliwe jest takŝe uruchamianie kodu skryptu z poziomu klas javy (wymaga JDK 1.6). Język umoŝliwia strukturyzację kodu, ponowne uŝycie oraz enkapsulację. Jest językiem statycznie typowanym. Głównym załoŝeniem dla aplikacji napisanych w tym języku jest znana zasada: Write once, run everywhere. Więcej informacji moŝna znaleźć pod adresami ([6]) i ([7]). Powstaje projekt stworzenia kompilatora ([8]), który tworzyłby plik klas języka Java na podstawie skryptów JavaFX, ale jak na razie projekt ten jest w bardzo wczesnej fazie rozwoju. Do uruchamiania aplikacji skryptowych JavaFX na urządzeniach przenośnych została zaprojektowana platforma JavaFX Mobile JavaFX Mobile JavaFX Mobile to system oprogramowania dla urządzeń mobilnych. Bazą dla tej platformy jest system Linux. System ma być dostępny na licencji OEM dla dystrybutorów urządzeń przenośnych. System ma umoŝliwiać uruchamianie aplikacji Javy ME i Javy SE. System ten powstaje w oparciu o SavajeOS. Niestety poza pokazem na konferencji JavaOne ([3]) o systemie JavaFX Mobile nie ma zbyt wiele informacji. TakŜe nie udało nam się znaleźć Ŝadnej wersji systemu, która moŝliwa byłaby do pobrania i zainstalowania na dostępnych urządzeniach. Na stronach opisujących JavaFX Mobile takŝe nie ma informacji o Ŝadnych wydaniach ani dostępności ([9], [10] oraz FAQ dostępne pod [11] brak odpowiedzi kiedy technologia będzie dostępna dla uŝytkowników. Firma SUN nie odpowiada takŝe na maile w sprawie moŝliwości uzyskania systemu JavaFX Mobile oraz zainstalowania go na urządzeniu typu ipaq UŜycie JavaFX w przypadku WebServiców Korzystanie z WebService ów w przypadku JavaFX jest bardzo proste. Potrzebne jest wygenerowanie Stub ów pozwalających na dostęp do WebService u (moŝe się tym zająć narzędzie typu NetBeans lub moŝna zrobić to ręcznie przy uŝyciu wscompile). Do zakodowania pozostaje jedna klasa w Javie (Helper pozwalający uzyskać dostęp do klasy Stub a), oraz kod klienta w JavaFX. Plik: Dokumentacja.doc Wersja: z dnia Stron: 7 Długość: 307 kb 7

8 package ws; public class ConnectionHelper { public static ws.exampleservice getwsconnection() { try { ws.exampleserviceservice service = new ws.exampleserviceservice(); return service.getexampleserviceport(); } catch (Exception ex) { // TODO handle custom exceptions here } } return null; } Kod 1. Przyład klasy Helper a pozwalającej uzyskać Stub do WebService u. Klasy ExampleService i ExampleServiceService zostały wygenerowane automatycznie na podstawie pliku WSDL. Kod klienta napisany w Java FX wygląda następująco: do { // Do statements are executed off the EDT try { var remoteserver:exampleservice = ConnectionHelper.getWSConnection(); var results = remoteserver.ping("test"); System.out.println("response: {results}"); model.numclicks++; } } catch (e:exception) { System.out.println("exception: {e}"); } Kod 2. Fragment kodu JavaFX obrazującego dostęp do obiektu Web Service u (przy uŝyciu klasy Helpera) i wywołanie metody (ping). Przykład został pobrany ze strony [13]. Plik: Dokumentacja.doc Wersja: z dnia Stron: 8 Długość: 307 kb 8

9 3.3. JavaME Platforma J2ME to ograniczony w porównaniu z J2SE zbiór klas, pozwalający na uruchamianie aplikacji Javy na urządzeniach o ograniczonych zasobach. Zbiór klas podstawowych nazywany jest konfiguracją. Konfiguracja uzupełniana jest przez Profile (dodatkowe API specyfikujące usługi), Profile mogą zostać rozszerzone przez Pakiety Opcjonalne. Rysunek 1. Stos klas J2ME Konfiguracja CLDC Konfiguracja CLDC jest przeznaczona dla urządzeń z mocno ograniczonymi zasobami sprzętowymi (16 bitowy procesor z zegarem 16MHz, kB pamięci dostępnej dla platformy Java). Konfiguracja ta jest przeznaczona szczególnie dla telefonów i starszych typów urządzeń PDA. Pakiety rozszerzające standardowe specyfikacje profili pozwalają na uŝywanie m.in mulitmediów, pakietu Wireless Messaging (usługi SMS), Bluetooth czy Web Serwisów. Aplikacje tworzone dla tej konfiguracji noszą nazwę Midletów. Aktualną specyfikacją jest profil MIDP2.0 [25]. KaŜda klasa startowa tworzonej aplikacji (dla profilu MIDP) musi rozszerzać abstrakcyjną klasę MIDlet i definiować jej metody: startapp(), pauseapp() i destroyapp(). Stworzone pliki java muszą zostać skompilowane przy uŝyciu klas zgodnych z wybraną konfiguracją i profilem. Do zdeployowania aplikacji na urządzeniu wymagany jest takŝe plik opisu (Java Application Descriptor jad). Wewnątrz tego pliku znajdują się wpisy mówiące o nazwie Midletu, klasie głównej, dostawcy Midletu, wersji programu, miejscu gdzie znajduje się plik.jar ze skompilowanymi klasami oraz o rozmiarze tego pliku, a takŝe o profilu i konfiguracji której wymaga program do uruchomienia, a takŝe wiele innych dodatkowych informacji. Przykładowy tutorial opisujący technologię J2ME oraz sposób tworzenia aplikacji (takŝe jej przygotowania do deployowania) znajduje się pod adresem [16]. Testowanie i uruchamianie programów napisanych dla urządzeń mobilnych jest moŝliwe na komputerze typu PC przy uŝyciu narzędzi takich jak Sun Wireless Toolkit ([17]), które pozwala na tworzenie spakowanych archiwów na podstawie wcześniej utworzonych plików javy (zajmuje się kompilowaniem klas Plik: Dokumentacja.doc Wersja: z dnia Stron: 9 Długość: 307 kb 9

10 na podstawie wybranej konfiguracji/profilu, pakowaniem ich do archiwum oraz tworzeniem pliku opisu) oraz na uruchamianie i testowanie w emulowanym środowisku. Więcej informacji o konfiguracji CLDC znajduje się na stronie firmy Sun [26] Konfiguracja CDC W porównaniu z CLDC wymaga dostępności większych zasobów (2MB pamięci RAM, 2,5 MB pamięci ROM, procesory 32 bitowe np. ARM) dostępnych dla platformy Java. Konfiguracja CDC kładzie nacisk na zgodność API z platformą J2SE w wersji CDC 1.1 oparte jest na specyfikacji J2SE Główne róŝnice są w pakiecie odpowiedzialnym za interfejs uŝytkownika java.awt oraz braku cięŝkich pakietów, takich jak javax.swing. CDC jest nadzbiorem klas w porównaniu z CLDC, więc migracja aplikacji z CLDC do CDC nie stanowi problemu, natomiast nie jest w pełni zgodne z MIDP (inne klasy odpowiedzialne za interfejs uŝytkownika). W ramach konfiguracji CDC zostały zdefiniowane następujące profile: - Foundation Profile najbardziej podstawowy profil dla konfiguracji CDC, dostarcza klas wspierających aplikację, np do korzystania z sieci czy urządzeń We/Wy. Nie dostarcza Ŝadnego wsparcia dla grafiki i interfejsów uŝytkownika, przykładami zastosowań są: drukarki sieciowe, routery, serwery aplikacji. Szczegółowy opis pod adresem [29]. - Personal Basis Profile wsparcie dla lekkich interfejsów uŝytkownika, uŝywania JavaBeans i modelu programowania xlet. Zawiera w sobie takŝe cały profil Foundation. Przykłady zastosowań to: telewizja interaktywna, motoryzacja, kamery wideo Szczegółowy opis pod adresem [30]. - Personal Profile pełne wsparcie aplikacji AWT oraz apletów, zawiera cały profil Personal Basis. Przykłady zastosowań to zaawansowane urządzenia PDA, przeglądarki internetowe przeznaczone na urządzenia przenośne. Szczegółowy opis pod adresem [31]. Przykładowe pakiety dodatkowe: - RMI JSR 66 - JDBC JSR Advanced Graphics and User Interface JSR 209, dostarcza klas z pakietu Swing, Java2D - pakiety rozszerzające bezpieczeństwo Java Secure Socket Extension (JSR 219), Java Cryptography Extension (JSR 219), Java Authentication and Authorization Service (JSR 219). Więcej informacji moŝna znaleźć na stronach firmy Sun [27], [28] Plik: Dokumentacja.doc Wersja: z dnia Stron: 10 Długość: 307 kb 10

11 Rysunek 2 Dostępność pakietów dla poszczególnych profili w konfiguracji CDC. Plik: Dokumentacja.doc Wersja: z dnia Stron: 11 Długość: 307 kb 11

12 Xlety i Midlety Konfiguracje CDC i CLDC pozwalają na tworzenie aplikacji, które same zarządzają swoim cyklem Ŝycia i potrzebnymi zasobami. Profile (odpowiednio Personal Basis dla CDC i MIDP dla CLDC) umoŝliwiają tworzenie aplikacji, które są zarządzane przez zewnętrzny zasób (np. Application Manager a). Aplikacja taka moŝe znajdować sie w 4 stanach: - zainicjalizowany - aktywny - zatrzymany - zniszczony Rysunek 3, Cykl Ŝycia Xletu Xlet moŝe być porównany z appletem przy czym udostępnia więcej metod umoŝliwiających zarządzanie cyklem Ŝycia. Poza start i stop moŝliwe jest równieŝ wstrzymanie i ponowne uruchomienie pracy Xletu Web Serwisy Web serwis jest usługą sieciową realizującą określoną funkcjonalność zazwyczaj realizowaną przez pewien komponent programowy niezaleŝny od platformy i implementacji. Jego cechami są: - Definicja za pomocą zestandaryzowanego języka WSDL (Web Services Description Language). - Dostęp do opisu serwisu odbywa się za pomocą rejestru usług np. UDDI (Universal Description Discovery and Integration). - Dostęp do funkcjonalności odbywa się poprzez dobrze zdefiniowany interfejs. - Usługa moŝe być niezaleŝna bądź moŝe być częścią innych usług sieciowych. Na bazie usług sieciowych konstruowane są luźno powiązane rozproszone systemy i aplikacje. Komunikacja z usługami sieciowymi z wykorzystaniem otwartych i zestandaryzowanych internetowych protokołów i formatów danych. Protokołem najczęściej stosowanym do komunikacji z usługami sieciowymi jest SOAP. Plik: Dokumentacja.doc Wersja: z dnia Stron: 12 Długość: 307 kb 12

13 Typowy przykład architektury wykorzystującej web serwisy znajduje się poniŝej: Rysunek 4, Architektura web serwisów Web serwisy rejestrowane są w brokerze usług, skąd klient moŝe pobrać opisy usług zdefiniowane w WSDL. Następnie odbiorca usług moŝe się bezpośrednio kontaktować z ich dostarczycielem WSDL Web Services Description Language jest językiem bazującym na XMLu, który stanowi model opisu web serwisów. Specyfikacja WSDL dostarcza format dokumentów powalający na opis serwisów jako kolekcji portów sieciowych. Ta abstrakcyjna definicja portów i wiadomości jest odseparowana od konkretnego uŝycia i instancji serwisów pozwalając na wielokrotne uŝycie tych samych definicji. Port jest zdefiniowany poprzez adres sieciowy i binding. Natomiast zbiór portów definiuje serwis. Wiadomości są abstrakcyjnymi opisami danych wymienianych w procesie komunikacji z serwisem. Koncepcyjne przedstawienie budowy web serwisu zostało zobrazowane na następującym rysunku: Plik: Dokumentacja.doc Wersja: z dnia Stron: 13 Długość: 307 kb 13

14 Rysunek 5, Wiązania i interfejsy web serwisu WSDL zapewnia grupowanie komunikatów w operacje, a te w interfejsy. Zapewnia sposób definiowania wiązań interfejsów do protokołów oraz przypisanie im adresów punktów końcowych a takŝe definiuje wszystkie te informacje, które są potrzebne do nawiązania i prowadzenia dialogu z serwisem. Dokładny opis składni WSDL znajduje się w [38]. PoniŜej został przedstawiony fragment pliku.wsdl opisujący przykładowy WebSerwis zrealizowany w ramach projektu. Zostały przedstawione fragmenty opisujące dostępne porty, wiązanie do protokołu http oraz ich połączenie w udostępnianą usługę wraz z przypisaniem adresu punktu końcowego. Serwis ten został wykorzystany do zrealizowania statycznego klienta usług na urządzeniu IPAQ (opis w punkcie 6.1). Plik: Dokumentacja.doc Wersja: z dnia Stron: 14 Długość: 307 kb 14

15 <wsdl:porttype name="samplewsporttype"> <wsdl:operation name="getsamplestring"> <wsdl:input name="getsamplestringrequest" message="tns:getsamplestringrequest"> </wsdl:input> <wsdl:output name="getsamplestringresponse" message="tns:getsamplestringresponse"> </wsdl:output> </wsdl:operation> </wsdl:porttype> <wsdl:binding name="samplewshttpbinding" type="tns:samplewsporttype"> <wsdlsoap:binding style="document" transport=" <wsdl:operation name="getsamplestring"> <wsdlsoap:operation soapaction=""/> <wsdl:input name="getsamplestringrequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="getsamplestringresponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="samplews"> <wsdl:port name="samplewshttpport" binding="tns:samplewshttpbinding"> <wsdlsoap:address location=" </wsdl:port> </wsdl:service> Kod 3. Fragment pliku.wsdl opisującego serwis SampleWS, z udostępnianą metodą getsamplestring() 3.5. JSR 172 JSR172 to rozszerzenie specyfikacji J2ME pozwalające na korzystanie z usług typu Web Service. Standaryzuje dwa obszary uŝywania WS zdalne wywołanie metod i analizę plików XML. WSA (Web Services API) przeznaczone jest do współpracy z konfiguracjami dla urządzeń CDC jak i CLDC. Zdalne wywołanie metod oparte jest na podzbiorze klas JAX-RPC 1.1 dostępnych w J2SE, analiza plików XML została zbudowana na podzbiorze klas SAX w wersji 2. Plik: Dokumentacja.doc Wersja: z dnia Stron: 15 Długość: 307 kb 15

16 Rysunek 6 Sposób organizacji typowej aplikacji J2ME wykorzystującej WS. Aplikacja do obsługi dokumentów XML uŝywa JAXP; do uŝycia Web Service u JAX-RPC z wykorzystaniem dostarczonych Stub ów. Rysunek 7 Serce specyfikacji JSR172. SPI (Service Provider Interface) pozwala Stub om na wykonywania zadań związanych ze zdalnym wywołaniem metod, takich jak: - ustawienie specyficznych właściwości - opis parametrów wejściowych i wyjściowych dla danego wywołania - kodowanie parametrów wejściowych - wywołanie metody - dekodowanie i zwrócenie do aplikacji wyników. Plik: Dokumentacja.doc Wersja: z dnia Stron: 16 Długość: 307 kb 16

17 JSR172 Runtime ukrywa całą złoŝoność zarządzania połączeniami i kodowania danych, natomiast SPI oddziela interfejs od implementacji co upraszcza generowanie klas Stubów. Aplikacja kliencka nie korzysta z interfejsu SPI uŝywa klas Stub, które muszą zostać wygenerowane na podstawie plików opisu usług WSDL. Generowanie Stubów musi zostać wykonane narzędziem wspierającym specyfikację JSR172. Taki generator znajduje się np. w pakiecie Sun Wireless Toolkit. Skompilowane klasy Stub muszą zostać dołączone do pakietu z tworzoną aplikacją. UŜycie metod udostępnianych przez Web Service polega na stworzeniu w kodzie aplikacji obiektu Stub, a następnie wywołaniu na nim Ŝądanych metod. Nazwy dostępnych metod są zgodne z nazwami zawartymi w pliku WSDL. Rysunek 8 Sposób realizacji wywołania zdalnie dostępnej metody (wywołanie synchroniczne) Cechy JSR zgodne z WS-I Basic Profile - wspiera protokół SOAP w wersji dowolny protokół transportowy (np. HTTP 1.1) który pozwala na transportowanie wiadomości SOAP wspiera pełny zestaw typów danych: boolean, byte, short, int, long, float, double, String, tablice, typy złoŝone (dla konfiguracji CLDC 1.0 nie są obsługiwane typy float i double są mapowane do String). - obsługuje tylko znakową reprezentację wiadomości SOAP uŝywanych przy wywołaniach zdalnych metod (tylko operacje WSDL w trybie Document/Literal) Plik: Dokumentacja.doc Wersja: z dnia Stron: 17 Długość: 307 kb 17

18 Ograniczenia JSR nie wspiera wiadomości SOAP z załącznikami (brak moŝliwości wysyłania jako parametrów i odbierania wyników ze zdalnych wywołań jako np plików graficznych czy dokumentów xml), SOAP handlers, (brak moŝliwości zaawansowanego przetwarzania odpowiedzi SOAP), kodowanej reprezentacji wiadomości SOAP - określa tylko specyfikację klienta WS, nie umoŝliwia stworzenia na urządzeniu mobilnym serwera WS - brak wsparcia dla wyszukiwania usług (UDDI) - pozwala na uŝywanie tylko statycznie wygenerowanych Stub ów (specyfikacja JAX-RPC 1.1 pozwala takŝe na uŝywanie Dynamicznego Proxy oraz DII (Dynamic Invocation Interface) ). Developer jest zmuszony do wygenerowania Stubów przy pomocy narzędzia WSDL-to-Java (np. wscompile). - dostępne jest tylko synchroniczne wywoływanie metod, model Ŝądanie odpowiedź (pełna specyfikacja JAX-RPC 1.1 określa ponadto asynchroniczne (nieblokujące) wywołanie, oraz wywołanie metody bez odpowiedzi tylko Ŝądanie) - błędy w wywołaniach metod nie są mapowane do SOAPFaultException, tylko do RemoteException Cechy JAXP - oparte na podzbiorze SAX 2 (SAX 1.0 nie jest wspierany) - przestrzeń nazw XML - moŝliwe kodowanie UTF-8 i UTF-16 - nie jest wspierany DOM (Document Object Model) zarówno poziom 1.0 jak i 2.0 (został uznany za zbyt cięŝki) - brak wsparcia dla XSLT - wspiera DTD Więcej informacji o Web Service ach dla J2ME dostępnych jest pod adresami: [19], [20] i [21]. Pełna specyfikacjia JSR172 [22] JBoss JBoss jest serwerem aplikacji, dostępnym na licencji LGPL. W wersji 4.0 i wyŝszych implementuje pełen zestaw usług J2EE 1.4 (EJB, JCA, JSP, JMX, HTTP, itd.). Jego niewątpliwą zaletą jest niezaleŝność od platformy, osiągana między innymi dzięki implementacji serwera w języku Java. Serwer JBoss moŝna uruchomić na kaŝdej konfiguracji z działającą maszyną wirtualną Java. Postawienie serwera sprowadza się do ściągnięcia archiwum, rozpakownia go i uruchomienia pliku run.sh lub run.bat, znajdującego się wśród Plik: Dokumentacja.doc Wersja: z dnia Stron: 18 Długość: 307 kb 18

19 plików aplikacji. W poprzednich wersjach JBoss posiadał zmodyfikowany engine AXIS o nazwie JBoss.net, pozwalający na obsługę web serwisów. Od wersji 4.0 posiada własny natywny serwer web serwisów. Zdeployowanie web serwisu sprowadza się do skopiowania modułu z web serwisem do odpowiedniego katalogu deploy na serwerze JBoss. NaleŜy zadbać o odpowiednią konfigurację serwletu udostępniającego web serwis, zaleŝną od uŝywanego enginu web serwisów. Plik: Dokumentacja.doc Wersja: z dnia Stron: 19 Długość: 307 kb 19

20 4. Instalacja i konfiguracja środowiska 4.1. Środowisko Developerskie WebSphere Studio Device Developer WebSphere Studio Device Developer dostarcza środowiska programistycznego do budowy, testowania i wdraŝania aplikacji J2ME, które pracują na przenośnych urządzeniach takich jak telefony komórkowe, PDA czy komputery kieszonkowe. W połączeniu z WebSphere Everyplace Micro Environment dostarczają środowiska wykonania aplikacji na najpopularniejszych urządzeniach mobilnych i systemach operacyjnych jak Linux, Palm OS, Pocket PC. WebSphere Studio Device Developer umoŝliwia: - Rozwój aplikacji e-biznesowych na telefonach komórkowych i PDA. - Budowę aplikacji w środowisku J2ME w wielu profilach i konfiguracjach. - Budowę aplikacji czasu rzeczywistego na inne urządzenia funkcjonujące w systemach zamkniętych. - Zawiera mechanizmy pozwalające na optymalizację zuŝycia pamięci przez aplikację na urządzeniach przenośnych. - Wspiera technologie kompilacji JIT (Just-In-Time) i AOT (Ahead-Of-Time). - UmoŜliwia XIP (Execute-in-Place) deployment. Więcej informacji o środowisku oraz instrukcje uŝywania znajdują się w materiałach firmy IBM (Redbook: Using WebSphere Studio Device Developer to Build Embedded Java Applications [41]). Instalacja i uruchomienie wersji Trial tego środowiska sprawia drobne problemy przed instalacją naleŝy zmienić datę systemową na datę przed w przeciwnym wypadku nie utworzą się poprawne pliki z licencjami. Środowisko WSDD umoŝliwia rozszerzenie moŝliwości standardowych profili maszyny wirtualnej w konfiguracji CDC o dodatkowe funkcje. Do nich naleŝą m.in SWT słuŝące do tworzenia rozbudowanych interfejsów uŝytkownika czy teŝ wsparcie dla technologii Web Serwisów. Po zainstalowaniu tego ostatniego narzędzia (dostępnego w pakiecie Microplace Environment Toolkit) WSDD pozwala na generowanie Stubów na podstawie plików opisu usług wsdl dostępnych zdalnie. Generowanie stubów wewnątrz WSDD zapewnia Ŝe będą one kompatybilne z klasami dostępnymi w pliku WebServicesMe.jar, który jest wymagany do uruchomienia WebSerwisów na maszynie J9, na urządzeniu mobilnym (próby uŝywania klas Stubów wygenerowanych przez narzędzia firmy Sun powodowały błędy typu NoSuchMethodException lub NoClassDefFoundException). Plik: Dokumentacja.doc Wersja: z dnia Stron: 20 Długość: 307 kb 20

21 Rysunek 9 Program WebSphere Studio Device Developer Rysunek 10. MoŜliwe rozszerzenia dla standardowej konfiguracji progamu WSDD. Plik: Dokumentacja.doc Wersja: z dnia Stron: 21 Długość: 307 kb 21

22 Micro Environment Toolkit Micro Environment Toolkit jest dodatkiem do WebSphere Studio, który dostarcza zbioru narzędzi i środowisko wykonania wspierające budowę, testowanie i deployment aplikacji na urządzeniach przenośnych. Kluczowe komponenty tego narzędzia zostały przedstawione na poniŝszym obrazku: Rysunek 11, Micro Environment Toolkit Wszystkie powyŝsze technologie pozwalają aplikacjom znajdującym się na urządzeniach przenośnych na interakcję z innymi aplikacjami, serwisami i danymi udostępnianymi przez dostawców serwisów, dostarczając kompletne rozwiązania programowe. Cechami Micro Environment Toolkit są: - Oparcie na platformie Eclipse umoŝliwia łatwe rozszerzanie oraz dołączenie do WebSphere Studio Device Developer. - Dostarczenie rozwiązań do budowy aplikacji klasy enterprise przez wsparcie dla niektórych modeli programistycznych wprowadzonych przez J2EE Servlety, JSP, web serwisy. - Wsparcie dla modelu programistycznego OSGi. - Rozszerzenie dla modelu programistycznego MIDP przez umoŝliwienie aplikacjom MIDP na współpracę z web serwisami System kontroli wersji W celu umoŝliwienia pracy grupowej został utworzony projekt dostępny pod adresem: Pod dostępnym tam adresem SVN znajdują się źródła i zasoby utworzone w ramach prac nad projektem. W chwili obecnej jest to niniejsza dokumentacja oraz przykładowy web serwis opisany w punkcie 5.1. Plik: Dokumentacja.doc Wersja: z dnia Stron: 22 Długość: 307 kb 22

23 5. Web Serwis 5.1. Przykładowy Web Serwis z aplikacją kliencką. W ramach nauki i poznawania narzędzi został opracowany bardzo prosty Web Serwis, dostarczający metody getrandomnumber() -losuje liczbę z zakresu 0 99 getsamplestring(string text) łączy tekst z parametru z domyślnym prefiksem oraz aplikacja j2me wykorzystująca metody udostępniane zdalnie. Kod public class public String getsamplestring(@webparam(name="wstextparam") String text) { return "Sample string from WS: " + text; public long getrandomnumber() { return Math.round(Math.random()) % 100; } Kod 4. Serwis SampleWS udostępniający dwie metody: getsamplestring() i getrandomnumber() Do przetwarzania wiadomości SOAP został uŝyty framework XFire w wersji Web Service został umieszczony w kontenerze aplikacji Tomcat. Kod aplikacji: Przy uŝyciu narzędzia wscompile dostarczonego z Sun Wireless Toolkit, na podstawie pliku wsdl opisującego przykładowy Web Service został wygenereowany zestaw klas Stub, pozwalający na dostęp do zdalnych metod. Składnia polecenia: C:\WTK2.5.2\bin\wscompile gen:client configuration.xml Plik: Dokumentacja.doc Wersja: z dnia Stron: 23 Długość: 307 kb 23

24 Zawartość pliku z konfiguracją (określa połoŝenie pliku wsdl): <configuration xmlns=" <wsdl location=" packagename="pl.edu.agh.sius.learning.wsclient.stubs"/> </configuration> Kod 5. Plik opisujący lokalizację wsdl-a oraz pakiet do jakiego mają zostać dodane klasy stubów. Fragment kodu przykładowego klienta: public class MainMidlet extends MIDlet { protected void startapp() throws MIDletStateChangeException { SampleWSPortType_Stub service = new SampleWSPortType_Stub(); String retvalue = ""; try { mainform.append("call getsamplestring()" ); retvalue = service.getsamplestring("testing midlet"); mainform.append(retvalue); System.out.println("WS: " + retvalue); retvalue = "" + service.getrandomnumber(); mainform.append("random number from WS:"); mainform.append(retvalue); System.out.println("WS random number: " + retvalue); } Display.getDisplay(this).setCurrent(mainForm); } catch (RemoteException e) { Display.getDisplay(this).setCurrent(new Alert("Error")); } } Kod 6. Kod klient-a WebSerwisu aplikacja typu MIDlet W powyŝszym przykładzie nie są ustawiane parametry dla Stub a (np. Endpoint). Domyślnie plik Stub został wygenerowany z wartością określającą Endpoint z adresu skąd był pobierany plik WSDL. Obie lokacje w tym przypadku się pokrywają. Prosty przykład tworzenia aplikacji typu Xlet (dla konfiguracji CDC) znajduje się pod adresem [32]. Plik: Dokumentacja.doc Wersja: z dnia Stron: 24 Długość: 307 kb 24

25 Sposób uruchomienia: 1. Stworzenie nowego projektu w Sun WirelessToolkit, platforma docelowa MDA (zawiera konfigurację CLDC 1.1 i profil MIDP 2.0, co pozwala na korzystanie z klas określonych w specyfikacji JSR172) jako nazwa klasy musi zostać podana nazwa utworzonego Midletu wraz z pełną ścieŝką pakietów (pl.edu.agh.sius.learning.wsclient.mainmidlet) 2. Skopiowanie klas do katalogu jaki został utworzony (instrukcje na konsoli programu WirelessToolkit) 3. Zbudowanie i uruchomienie aplikacji. Plik: Dokumentacja.doc Wersja: z dnia Stron: 25 Długość: 307 kb 25

26 6. Wykonanie projektu PoniŜej znajduje się opis aplikacji tworzonych w ramach projektu wraz z dokładnym opisem ich działania oraz napotkanych problemów Klient statyczny Pierwszym etapem projektu było utworzenie statycznego klienta pracującego na urządzeniu ipaq odwołującego się do web serwisu znajdującego się na zdalnym serwerze Opis Program klienta wykorzystuje usługi uruchomione na komputerze stacjonarnym, przy uŝyciu wcześniej wygenerowanych Stub-ów, których kod został dołączony do programu klienta. Rysunek 12. Architektura programu uŝywającego statycznych Stubów Uruchomiony web serwis posiada prostą funkcjonalność: Plik: Dokumentacja.doc Wersja: z dnia Stron: 26 Długość: 307 kb 26

27 public String getsamplestring() { System.err.println("Call setsamplestring()"); return "Sample string from public long getrandomnumber() { System.err.println("Call getrandomnumber()"); return Math.round(Math.random() * 100); } Kod 7. Funkcjonalność udostępniana przez Web Serwis Klient jest prostym programem z interfejsem graficznym, w którym po kliknięciu przycisku tworzony jest obiekt Stub i na nim wywoływana metoda getrandomnumber(), której wywołanie przekazywane jest do WebSerwisu. Wynik wyświetlany jest na ekranie, w przypadku błędu jego treść takŝe jest wyświetlana na ekranie. Dodatkowo strumień wyjściowy i strumień błędów zostały przekierowane do plików, w celu analizy zachowania programu oraz pojawiających się błędów. public void actionperformed(actionevent arg0) { number++; System.out.println("Action performed, current nr: " + number); dl.settext("action nr: " + number); SampleWSHttp_Stub ws = new SampleWSHttp_Stub(); System.out.println("Stub created"); try { lb.settext("num: " + ws.getrandomnumber()); System.out.println("Method called"); } catch (Throwable e) { lb.settext(e.getmessage()); System.err.println("Error: " + e.getmessage()); e.printstacktrace(); } } Kod 8. Wywołanie metody udostępnianej przez Web Serwis w programie klienta W celu uruchomienia całości konieczne było: 1. Utworzenie WebSerwisu oraz umieszczenie go w kontenerze - w naszym przypadku był to kontener aplikacji Tomcat, do obsługi WebSerwisu został wykorzystany Xfire. 2. Uruchomienie aplikacji WebSphere Studio Device Developer (naleŝy pamiętać o zmianie daty na rok 2005). Plik: Dokumentacja.doc Wersja: z dnia Stron: 27 Długość: 307 kb 27

28 3. Pobraniu dodatkowego narzędzia: Micro Environment Toolkit jest to rozszerzenie WebSphere Studio Device Developer (instalacja przez Help -> Software Updates -> Update Manager), narzędzie to umoŝliwia tworzenie nowych projektów, korzystających z Web Serwisów oraz dostarcza bibliotekę WebServicesME.jar i rmip.jar, które są konieczne do uruchomienia klienta Web Serwisu na urządzeniu przenośnym. 4. Utworzenie nowego projektu J2ME z wybraną odpowiednią wersją maszyny wirtualnej (personal profile). 5. Utworzenie Stubów z dostępnego pliku wsdl: poprzez dodanie do projektu New -> Other ->Mobile Web Services Client -> Mobile Web Services Client for Extension Services podanie adresu pliku wsdl na podstawie którego mają zostać wygenerowane Stub-y (w naszym przypadku: wymaga to uruchomionego kontenera aplikacji oraz zdeployowanej w nim usługi 6. Utworzeniu klas klienta z wykorzystaniem wygenerowanych stubów 7. Spakowanie wszystkich wymaganych klas do archiwum.jar. 8. Umieszczenie pliku jar na urządzeniu przenośnym 9. Utworzenie pliku.lnk który będzie uruchamiał aplikację. W naszym przykładzie wykorzystaliśmy statyczną metodę main istnieje takŝe moŝliwość uruchomienia aplikacji jako zarządzanego Xlet-a. Plik.lnk ma postać: 255#"\J9\PPRO11\bin\j9w.exe" "-jcl:ppro11" "- Xbootclasspath/a:\ext\webservicesme.jar;\ext\rmip.jar" "-cp" "\My Documents\Personal\j2meTest.jar" "samplepkg.test" Kod 9. Plik.lnk uruchamiający przykład na urządzeniu IPAQ Składa się kolejno z: - nazwa (wraz z pełną ścieŝką) pliku z maszyną wirtualną javy - nazwa profilu jaki ma zostać uruchomiony (Personal Profile 1.1) - dodatkowych bibliotek potrzebnych do wykonania programu (w tym przypadku są to WebServicesMe.jar (zapewnia obsługę WebSerwisów) oraz rmip.jar (RMI dla j2me), obie umieszczone w katalogu \ext. - nazwa wraz ze ścieŝką do pliku jar zawierającego uruchamiany kod - nazwa klasy z metodą main UŜyte oprogramowanie oraz przydatne linki 1. IBM WebSphere Studio Device Developer Plik: Dokumentacja.doc Wersja: z dnia Stron: 28 Długość: 307 kb 28

29 2. IBM Workplace Client Technology, Micro Edition V IBM WebSphere Everyplace Micro Environment - jest to maszyna wirtualna Javy, korzystaliśmy z wersji 6.1.1, implementującej Personal Profile Problemy i sposoby rozwiązania 1. Instalacja maszyny wirtualnej Podczas uruchamiania programu natknęliśmy się na kilka problemów związanych z maszyną wirtualną: - brak niektórych klas (np. RemoteException) został dodany plik rmip.jar, zawierający klasy RMI, Ŝeby plik ten był ładowany przy kaŝdym uruchomieniu maszyny wirtualnej musi zostać umieszczony w katalogu ext maszyny j9. Pełna ścieŝka zaleŝy od miejsca instalacji i wersji maszyny, w naszym przypadku: \J9\PPRO11\lib\jclFoundation11\ext 2. Kodowanie znaków Wywoływanie metod na Stubie powodowało wyjątek: javax.xml.rpc.jaxrpcexception: java.io.unsupportedencodingexception: UTF-8. Przyczyna nie została zdiagnozowana problem rozwiązany przez ponowną instalację maszyny wirtualnej (w celach testowych została przeprowadzona instalacja takŝe wersji implementującej Personal Profile 1.0) 3. Tworzenie archiwów.jar Pliki wygenerowane w WebSphere Device Developer (.jar) nie chciały się uruchamiać, pomimo poprawnie zdefiniowanych linków. Rozwiązanie: Kod klienta został stworzony i spakowany do archiwum przy uŝyciu Eclipse a. W programie WSDD generowane były tylko Stuby Web Serwisu. 4. Generowanie Stubów Stuby generowane przy uŝyciu generatora firmy Sun (dostarczanego z Sun Wireless Toolkit) tworzyły kod, który nie chciał się uruchamiać na maszynie J9 (korzystanie z klas których na tej maszynie brakowało, pomimo dodania plików rmip.jar oraz WebServicesMe.jar). Plik: Dokumentacja.doc Wersja: z dnia Stron: 29 Długość: 307 kb 29

30 Rozwiązanie: Tworzenie Stubów przy uŝyciu programu WSDD, które jest prostsze (wymaga tylko uruchomionego kontenera aplikacji ze zdeployowaną usługą WebSerwisu, nie jest konieczne tworzenie dodatkowych deskryptorów pozwalających wygenerować Stub y jak przy uŝyciu narzędzia firmy Sun). 5. Pliki uruchomieniowe.lnk W systemie Windows Mobile pliki te mogą mieć rozmiar nie przekraczający 255 znaków. MoŜe to stanowić problem w przypadku duŝej ilości dodatkowych plików.jar potrzebnych do uruchomienia programu (podawanych jako Xbootclasspath), rozwiązaniem jest dodanie wymaganych plików do katalogu ext maszyny wirtualnej (jak podano w punkcie 1.) wtedy nie muszą one być uwzględniane w pliku lnk. 6. ŚcieŜki relatywne System Windows Mobile nie wspiera ścieŝek relatywnych w dostępie do plików / zasobów. Wymagana jest pełna ścieŝka dostępu. Plik: Dokumentacja.doc Wersja: z dnia Stron: 30 Długość: 307 kb 30

31 6.2. Klient dynamiczny Opis Rysunek 13, Architektura programu uŝywającego dynamicznego ładowania Stubów Klient pobiera z ustalonego adresu http plik wslist.txt, który zawiera nazwy dostępnych web serwisów wraz z pełną ścieŝką pakietów. ws.samplewshttp_stub samplepkg.ws2.anothersamplewshttp_stub Kod 10. Zawartość pliku opisującego udostępniane Web Serwisy wslist.txt Na tym samym serwerze muszą znajdować się klasy Stubów (takie jak podane w pliku opisu wslist.txt) oraz wszystkie inne niestandardowe klasy, potrzebne do wywoływania metod na Stub ach (w przypadku wygenerowanego przez program WSDD SampleWSHttp_Stub.class jest to klasa SampleWSPortType.class). Plik: Dokumentacja.doc Wersja: z dnia Stron: 31 Długość: 307 kb 31

32 Program klienta na podstawie pliku wslist.txt tworzy listę dostępnych WebSerwisów. Po wybraniu serwisu wszystkie wymagane klasy są ładowane z serwera http (tego samego na którym znajduje się plik wslist.txt), z klasy Stub a pobierane są dostępne do wywołania metody i tymi metodami wypełniana jest druga lista wyboru. Po wybraniu nazwy metody jest ona wywoływana na obiekcie Stub a a wynik jej działania wypisywany na ekranie programu klienta. ZałoŜenia: W celu uproszczenia nasza implementacja zakłada istnienie jednego, ustalonego punktu skąd pobierany jest opis WebSerwisów (nazwy klas Stubów) oraz ładowane są klasy Stub ów. Wywoływane metody udostępniane przez serwisy muszą być bezparametrowe. MoŜliwości rozwoju: PoniewaŜ udało nam się uruchomić serwer http wraz z Axis-em na urządzeniu przenośnym (opis w następnym punkcie) istnieje moŝliwość stworzenia klienta w pełni dynamicznie korzystającego z WebSerwisów, przy uŝyciu właśnie Axis-a. Plik: Dokumentacja.doc Wersja: z dnia Stron: 32 Długość: 307 kb 32

33 final ClassLoader classloader = new URLClassLoader( new URL[] { new URL( BASE_URL ) } ); stubslist = new List(); stubslist.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { try { final Class clazz = Class.forName( stubslist.getselecteditem(), true, classloader ); object = clazz.newinstance(); Class[] interfaces = clazz.getinterfaces(); for(int j = 0; j < interfaces.length; j++ ) { final Method classmethods[] = clazz.getdeclaredmethods(); methodslist.removeall(); methods = new Method[classMethods.length]; } }); for (int i = 0; i < classmethods.length; i++) { methodslist.add( classmethods[i].getname() ); methods[i] = classmethods[i]; } } } catch (Exception e) { throw new RuntimeException(e); } methodslist = new List(); methodslist.addactionlistener( new ActionListener() { public void actionperformed(actionevent e) { try { Method method = methods[methodslist.getselectedindex()]; Object result = method.invoke(object, new Object[0]); output.settext(result.tostring()); } catch(exception ex) { throw new RuntimeException(ex); } }); } Kod 11. Pobieranie klas Stubów z serwera, wypełnianie listy dostępnych do wywołania metod oraz wywołanie wybranej przez uŝytkownika metody (listener na obiekcie methodslist). Plik: Dokumentacja.doc Wersja: z dnia Stron: 33 Długość: 307 kb 33

34 6.3. Serwer usług UmoŜliwienie udostępniania usług przez urządzenie IPAQ wymagało uruchomienia serwera http wraz z obsługą serwletów. Zdecydowaliśmy się na serwer Jetty w wersji który w całości jest stworzony w Javie, do obsługi WebSerwisów uŝyliśmy Axis-a Rysunek 14. Architektura wykorzystująca serwer WebSerwisów na urządzeniu IPAQ oraz klienta korzystającego ze statycznych Stubów. Przebieg uruchamiania serwera http z kontenerem serwletów: 1. Odchudzenie serwera jetty: Brak obsługi jsp-2.1 Usunięcie zbędnych dodatków (katalogi examples, extras, javadoc) 2. Przygotowanie klasy uruchamiającej serwer Jetty Wybraną konfiguracją jest klasa org.mortbay.jetty.example.likejettyxml Zamiana ścieŝek względnych na bezwzględne (dotyczy katalogów z aplikacjami webapps, domyślnego pliku opisującego webdefault.xml oraz plików logów Zamiana obiektu Connectora, z zalecanego SelectChannelConnector na standardowy, który nie wymaga obecności klas nio: SocketConnector Plik: Dokumentacja.doc Wersja: z dnia Stron: 34 Długość: 307 kb 34

35 Server server = new Server(); BoundedThreadPool threadpool = new BoundedThreadPool(); threadpool.setmaxthreads(5); server.setthreadpool(threadpool); Connector connector = new SocketConnector(); connector.setport(8080); server.setconnectors(new Connector[]{connector}); HandlerCollection handlers = new HandlerCollection(); ContextHandlerCollection contexts = new ContextHandlerCollection(); RequestLogHandler requestloghandler = new RequestLogHandler(); handlers.sethandlers(new Handler[]{contexts, new DefaultHandler(),requestLogHandler}); server.sethandler(handlers); WebAppContext.addWebApplications(server, "\\httpserv\\jetty \\webapps", "\\httpserv\\jetty-6.1.3\\webdefault.xml", true, false); NCSARequestLog requestlog = new NCSARequestLog("\\httpServ\\jetty \\logs\\jetty log"); requestlog.setextended(false); requestloghandler.setrequestlog(requestlog); server.setstopatshutdown(true); server.setsendserverversion(true); server.start(); server.join(); Kod 12. Klasa uruchamiająca serwer Jetty na urządzeniu IPAQ 3. Rozwiązanie problemów z ClassLoaderem W klasach org.mortbay.jetty.handler.defaulthandler oraz org.mortbay.xml.xmlconfiguration wywołanie metody getclassloader() zwracało pustą referencję, co powodowało powstanie wyjątku podczas działania. Rozwiązaniem tego problemu okazało się podmienienie wywołań metod getresource() na stałe ścieŝki dostępu do zasobów, wadą takiego podejścia jest uzaleŝnienie poprawności działania serweru od jednej, ściśle określonej lokalizacji umiejscowienia wymaganych bibliotek Plik: Dokumentacja.doc Wersja: z dnia Stron: 35 Długość: 307 kb 35

36 //URL configurl = XmlConfiguration.class.getClassLoader().getResource("org/mortbay/xml/config ure_6_0.dtd"); URL configurl = new URL("jar:file:/ext/jetty jar!/org/mortbay/xml/configure_6_0.dtd") ; //URL fav = this.getclass().getclassloader(). getresource("org/mortbay/jetty/favicon.ico"); URL fav = new URL("jar:file:/ext/jetty jar!/org/mortbay/jetty/favicon.ico"); Kod 13. Zmiany w kodzie klas serwera Jetty org.mortbay.jetty.handler.defaulthandler oraz org.mortbay.xml.xmlconfiguration Oryginalne klasy dostarczone do serwera jetty zostały skompilowane przy uŝyciu maszyny IBM J9 (specyfikacja j2se 1.4) oraz podmienione w bibliotekach serwera jetty (bibliotekea jetty jar) 4. Dostarczenie potrzebnych klas Do pełnego działania jetty wymagał kilku klas (np. java.util.regex) których brakowało w implementacji maszyny wirtualnej, zostały one pobrane z implementacji j2se, spakowane oraz dodane jako archiwum do katalogu ext w katalogu z profilem Foundation1.1 maszyny wirtualnej na urzadzeniu PDA. Część klas potrzebnych do działania (np parsery Xml) była juŝ na ścieŝce klas, ale znajdowały sie tam niezgodne wersje (np biblioteka WebServicesMe.jar posiada okrojoną wersję klas (Fabryki parserów). Problem został rozwiązany przez usunięcie WebServicesMe.jar z listy Xbootclasspath w linku oraz dodanie bibliotek Xerces dostarczonych do jetty-ego do katalogu ext maszyny wirtualnej Taka konfiguracja uruchomieniowa pozwala na automatyczne dodawanie aplikacji z katalogu webapps (nie jest to hot deploy, aplikacje dodają się tylko przy starcie serwera, ale nie wymaga zmian w kodzie przy kaŝdym dodanym serwlecie). Problemy: Maszyna wirtualna zainstalowana na urządzeniu PDA i maszyna wirtualna, która instaluje się na komputerze stacjonarnym to dwie róŝne maszyny. Na komputerze stacjonarnym znajduje się pełna implementacja j2se w wersji 1.4 natomiast na PDA jest konfiguracja j2me CDC PersonalProfile 1.1, która jest podzbiorem klas j2se 1.4, z czego mogą się rodzić problemy typu: NoClassDefFound, czy NoSuchMethodException Plik: Dokumentacja.doc Wersja: z dnia Stron: 36 Długość: 307 kb 36

37 Maszyna implementująca PersonalProfile1.0 jest niewystarczająca, część klas (a szczególnie metod w klasach) jest dostępnych dopiero od wersji PersonalProfile1.1 W bibliotece WebServicesMe.jar są dostępne klasy zajmujące się parsowaniem Xml-a, zbiór tych klas pokrywa się z klasami potrzebnymi do uruchomienia serwera Jetty (nazwy, pakiety), natomiast implementacja jest niewystarczająca (brak odpowiednich metod), naleŝy tak ustawić ścieŝki Ŝeby klasy z tej biblioteki znalazły się później niŝ klasy parsera Xerces, który zawiera pełną potrzebną implementację xml-a. Instalacja Axis-a Instalacja polegała na skopiowaniu folderu z Axis-em do katalogu WebApps serwera Jetty (potrzebne są tylko pliki z katalogu AXIS_DIR/webapps/axis) oraz na dodaniu wymaganych klas potrzebnych do uruchomienia Axis-a, takich jak java.sql.date, java.util.logging.*. Wszystkie wymagane klasy których domyślnie nie ma w implementacji PersonalProfile 1.1 w maszynie IBM J9 dodaliśmy do pliku core.zip. Serwer Jetty współpracuje z Axis-em bez potrzebnych dodatkowych konfiguracji. Korzystanie z Axis-a udostępnianie WebSerwisów W celu udostępnienia web serwisów przez Axisa naleŝy klasę javy implementującą usługi skopiować do katalogu <your-webapp-root>/axis/ zmieniając jej rozszerzenie na jws. W tym momencie powinien być moŝliwy dostęp do niej poprzez URL. Przy załoŝeniu, Ŝe Axis został uruchomiony na porcie 8080 będzie to Axis automatycznie lokalizuje plik, kompiluje go do pliku *.class i konwertuje wiadomości SOAP na wywołania w języku Java. PowyŜszy sposób cechuje się prostotą, ale i ograniczeniami wymaga posiadania źródeł serwisu oraz zarządzania sposobem dostępu (mapowanie typów, kontrola wywołań). Stąd do deploymentu moŝliwe jest uŝycie WSDD (Web Service Deployment Descriptor) formatu bazującego na XMLu, który umoŝliwia pozbycie się wszystkich ograniczeń związanych z automatycznym udostępnianiem serwisów. Dokładny opis uŝycia web serwisów pod Axis em znajduje się w [39]. W celach sprawdzenia poprawności konfiguracji skorzystaliśmy z prostej klasy Calculator, posiadającej dwie metody dodawania i odejmowania dwóch liczb. Plik: Dokumentacja.doc Wersja: z dnia Stron: 37 Długość: 307 kb 37

38 public class Calculator implements CalculatorWS{ public int add(int i1, int i2) { return i1 + i2; } } public int subtract(int i1, int i2) { return i1 - i2; } Kod 14. Kod udostępnianej na urządzeniu IPAQ usługi Web Serwis Plik opisu WSDD (Web Service Deployment Descriptor) wygląda następująco: <deployment xmlns=" xmlns:java=" <service name="calculator" provider="java:rpc"> <parameter name="classname" value="calculator"/> <parameter name="allowedmethods" value="*"/> </service> </deployment> Kod 15. Plik opisu uŝywany do zdeployowania usługi Calculator Wygenerowanie potrzebnych klas oraz interfejsów jest wykonywane poleceniem: java org.apache.axis.client.adminclient deploy.wsdd Kod 16. Wywołanie klasy dostarczanej z Axis-em, powoduje zdeployowanie usługi w kontenerze oraz wygenerowanie Stubów Przykładowy kod klienta wygląda następująco: CalculatorServiceLocator locator = new CalculatorServiceLocator(); locator.setendpointaddress("calculator", " localhost.axis.services.calculator.calculator calc = locator.getcalculator(); int res = calc.add(5, 9); System.out.println("Result: " + res); Kod 17. Klient korzystający z usługi przy uŝyciu wygenerowanych Stubów. Plik: Dokumentacja.doc Wersja: z dnia Stron: 38 Długość: 307 kb 38

39 7. Web Serwis wysyłający i odbierający maile Rysunek 15, Schemat działania web serwisowego mailera Serwis udostępnia metody pozwalające na zalogowanie się do serwera pocztowego, odebranie wszystkich wiadomości z danego konta (uŝywany protokół: POP3) oraz wysłanie wiadomości wykorzystując protokół SMTP. Wysyłanie i odbieranie wiadomości jest moŝliwe poprzez uŝycie obiektu typu ConnectionHandler, który takŝe jest pobierany z serwisu wywołanie metody getconnectionhandler() z podanymi parametrami: Plik: Dokumentacja.doc Wersja: z dnia Stron: 39 Długość: 307 kb 39

40 - adresem serwera pop3 - adresem serwera smtp - nazwą uŝytkownika - hasłem dostępu Do odbierania poczty udostępnione są następujące metody: getmessages(connectionhandler) : MessageData[] - zwraca opisy wiadomości dla danego konta Klasa MessageData przechowuje informacje o wiadomości (nagłówek): - nadawcę - listę odbiorców - listę odbiorców typu CC - temat wiadomości Na podstawie nagłówka wiadomości moŝna pobrać z serwisu jej treść, wywołujące metodę: getmessage(connectionhandler, MessageData) Wysyłanie wiadomości jest udostępnione poprzez metodę send, która przyjmuje w parametrach ConnectionHandler, dane jak w MessageData oraz treść wiadomości. Web Serwis został uruchomiony na komputerze stacjonarnym, w kontenerze aplikacji Tomcat Klient ipaq korzystający z Web Serwisu Klient jest interfejsem graficznym, korzystającym z udostępnionego Web Serwisu przy uŝyciu wcześniej wygenerowanych, statycznych Stub ów. Zostały one utworzone przez generator znajdujący się w środowisku WebShpere Studio Device Developer - Microplace Environment Toolkit z zainstalowanymi dodatkowo Extension Services. Klient pozwala na konfigurację parametrów konta uŝytkownika (nazwa uŝytkownika, adresy serwera POP3, adres serwera SMTP, nazwa konta uŝywanego do wysyłania poczty, hasło dostępu) oraz konfigurację adresu Web Serwisu ( Endpoint ). Plik: Dokumentacja.doc Wersja: z dnia Stron: 40 Długość: 307 kb 40

41 Rysunek 16, Okno konfiguracji Domyślnie skonfigurowane jest testowe konto uŝytkownika: Serwer POP3: poczta.o2.pl Serwer SMTP: poczta.o2.pl Nazwa: tester_ws_mail_client Hasło: tester Adres do wysyłania: Oraz domyślny serwer Web Serwisu: Uruchomienie klienta powoduje utworzenie obiektu Stub, ustawienie adresu Web Serwisu oraz pobranie obiektu ConnectionHandler dla aktualnej konfiguracji (Rysunek 21). KaŜda zmiana konfiguracji powoduje utworzenie nowego obiektu Stub oraz pobranie nowego Handler a. Obiekty Stub i ConnectionHandler są dostępne z obiektu Configuration, który jest singletonem i są z niego pobierane przy odbieraniu i tworzeniu nowych maili. Główne okno programu umoŝliwia pobranie listy maili z serwera ( Receive ) oraz utworzenie nowej wiadomości (przycisk Create mail ). Plik: Dokumentacja.doc Wersja: z dnia Stron: 41 Długość: 307 kb 41

42 Rysunek 17, Główne okno programu W tym drugim przypadku wyświetlane jest okno z odpowiednimi polami do uzupełnienia - Adresat, Adresaci CC, Temat, treść wiadomości (Rysunek 22). Pole nadawca jest wypełniane automatycznie na podstawie konfiguracji. Rysunek 18, Okno nowej wiadomości Odbieranie wiadomości powoduje wyświetlenie listy wiadomości znajdujących się na serwerze (Rysunek 23). Lista zawiera nadawcę i Temat kaŝdej wiadomości. Plik: Dokumentacja.doc Wersja: z dnia Stron: 42 Długość: 307 kb 42

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

ZAPOZNANIE SIĘ Z TWORZENIEM

ZAPOZNANIE SIĘ Z TWORZENIEM LABORATORIUM SYSTEMÓW MOBILNYCH ZAPOZNANIE SIĘ Z TWORZENIEM APLIKACJI MOBILNEJ W J2ME I. Temat ćwiczenia II. Wymagania Podstawowe wiadomości z zakresu języka Java Podstawowa znajomość środowiska Eclipse

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

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

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

Bardziej szczegółowo

Programowanie obiektowe

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Programowanie aplikacji na urządzenia mobilne

Programowanie aplikacji na urządzenia mobilne Informatyka I Programowanie aplikacji na urządzenia mobilne dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 JME - Java Platform Micro Edition JME platforma Java przeznaczona

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Autor : Mateusz Kupczyk

Autor : Mateusz Kupczyk Technologie biznesu elektronicznego Java 2 Micro Edition J2ME Autor : Mateusz Kupczyk Plan prezentacji Wstęp J2ME - omówienie Szczegółowe omówienie profilu MIDP KVM MIDLet oraz MIDSuite Interfejs użytkownika,

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

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

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

TECHNOLOGIE INFORMACYJNE

TECHNOLOGIE INFORMACYJNE TECHNOLOGIE INFORMACYJNE LAB - SEM IX Prowadzący zajęcia lab: Mgr inŝ. Zbigniew JANIK Dr inŝ. Józef OKULEWICZ Mgr inŝ. GraŜyna SITNICKA Wykład: Prof. Dr inŝ. Lucjan Grochowski TECHNOLOGIE INFORMACYJNE

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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Maciej Zakrzewicz PLOUG mzakrz@cs.put.poznan.pl Plan prezentacji Wprowadzenie do architektury zorientowanej na usługi Charakterystyka technologii

Bardziej szczegółowo

1 Wprowadzenie do J2EE

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

Bardziej szczegółowo

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

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r. Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)

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

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

Web Tools Platform. Adam Kruszewski

Web Tools Platform. Adam Kruszewski Web Tools Platform Adam Kruszewski Plan prezentacji 1. Co to jest WTP i dlaczego powstało. 2. Ogólne omówienie projektu 3. Web Standard Tools 4. J2EE Standard Tools 5. Plany następnej wersji Co to jest

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

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

Technologie internetowe laboratorium nr 4. Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS

Technologie internetowe laboratorium nr 4. Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS Technologie internetowe laboratorium nr 4 Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS 1. Wprowadzenie i konfiguracja Celem niniejszego laboratorium jest zainstalowanie i uruchomienie

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje

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

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Wprowadzenie do J2ME

Wprowadzenie do J2ME Wprowadzenie do J2ME Marcin Stachniuk mstachniuk@gmail.com Politechnika Wrocławska Wydział Elektroniki Studenckie Koło Naukowe Informatyki Systemów Autonomicznych i Adaptacyjnych ISA 2 25 listopada 2010

Bardziej szczegółowo

Dostęp do komponentów EJB przez usługi Web Services

Dostęp do komponentów EJB przez usługi Web Services 243 Dostęp do komponentów EJB przez usługi Web Services Mikołaj Morzy Mikolaj.Morzy@cs.put.poznan.pl http://www.cs.put.poznan.pl/mmorzy/ Plan rozdziału 244 Wprowadzenie do usług sieciowych Architektura

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Piotr Orzechowski. Technologie Biznesu Elektronicznego

Piotr Orzechowski. Technologie Biznesu Elektronicznego Wydział Informatyki i Zarządzania Politechnika Wrocławska Cele prezentacji Urządzenia mobilne Rynek aplikacji dla urządzeń mobilnych Cele prezentacji 1. Zapoznanie się z charakterystyką rynku aplikacji

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

Aktualizacja środowiska JAVA a SAS

Aktualizacja środowiska JAVA a SAS , SAS Institute Polska marzec 2018 Często spotykaną sytuacją są problemy z uruchomieniem aplikacji klienckich oraz serwerów SASowych wynikające z faktu aktualizacji środowiska JAVA zainstalowanego na komputerze.

Bardziej szczegółowo

M-biznes: Mobile Business. Realizacja aplikacji mobilnych w języku Java. Typy urządzeń przenośnych. Przykłady zastosowań

M-biznes: Mobile Business. Realizacja aplikacji mobilnych w języku Java. Typy urządzeń przenośnych. Przykłady zastosowań M-biznes: Mobile Business Realizacja aplikacji mobilnych w języku Java E-business (Electronic Business): dostęp do komputerowych systemów sprzedaży towarów, usług i informacji za pomocą komputerów osobistych

Bardziej szczegółowo

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008 Flex 3 Piotr Strzelczyk Wydział EAIiE Katedra Automatyki Kraków, 2008 Flex 3 czyli co to jest? RIA (Rich Internet Application) Jest to aplikacja webowa posiadająca moŝliwości aplikacji desktopowej. UmoŜliwia

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

AKADEMIA GÓRNICZO-HUTNICZA. Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI. SyncFile

AKADEMIA GÓRNICZO-HUTNICZA. Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI. SyncFile AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI Document wizyjny dla projektu Wersja 0.1-5 z dnia 2006-11-14 Kierunek, rok studiów: Informatyka,

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

OpenLaszlo. OpenLaszlo

OpenLaszlo. OpenLaszlo OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody

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

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

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 Urządzeń Mobilnych. Część II: Android. Wykład 2

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2 Programowanie Urządzeń Mobilnych Część II: Android Wykład 2 1 Aplikacje w systemie Android Aplikacje tworzone są w języku Java: Skompilowane pliki programów ( dex ) wraz z plikami danych umieszczane w

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

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

Bardziej szczegółowo

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

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

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

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

SOA Web Services in Java

SOA Web Services in Java Wydział Informatyki i Zarządzania Wrocław,16 marca 2009 Plan prezentacji SOA 1 SOA 2 Usługi Przykłady Jak zacząć SOA Wycinek rzeczywistości Problemy zintegrowanych serwisów : Wycinek Rzeczywistości Zacznijmy

Bardziej szczegółowo

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

Bardziej szczegółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

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

Monitorowanie Sieci nonblocking content packet filtering

Monitorowanie Sieci nonblocking content packet filtering Monitorowanie Sieci nonblocking content packet filtering praca inŝynierska prowadzący: prof. dr hab. inŝ. Zbigniew Kotulski Michał Zarychta 1 Plan prezentacji ZałoŜenia projektu Sniffer Technologie WinPcap

Bardziej szczegółowo

Instrukcja użytkownika. Aplikacja dla WF-Mag

Instrukcja użytkownika. Aplikacja dla WF-Mag Instrukcja użytkownika Aplikacja dla WF-Mag Instrukcja użytkownika Aplikacja dla WF-Mag Wersja 1.0 Warszawa, Kwiecień 2015 Strona 2 z 13 Instrukcja użytkownika Aplikacja dla WF-Mag Spis treści 1. Wstęp...4

Bardziej szczegółowo

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska JavaFX - wprowadzenie JavaFX Wydział Informatyki i Zarządzania Politechnika Wrocławska Definicja JavaFX - wprowadzenie Definicja Historia JavaFX Script Rich Internet Application JavaFX - rodzina technologii

Bardziej szczegółowo

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

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

OSGi Agata Hejmej 4.05.2009

OSGi Agata Hejmej 4.05.2009 OSGi Agata Hejmej 4.05.2009 Plan prezentacji Co to jest OSGi Jakie problemy rozwiązuje Opis standardu Przykładowa aplikacja Podsumowanie korzyści Co to jest OSGi? Standard, który pozwala na tworzenie wysoce

Bardziej szczegółowo

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007 Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007 Zawartość 1 WSTĘP 2 2 BUDOWA OKNA PROGRAMU MICROSOFT OUTLOOK 2007 3 3 USTAWIENIA WIDOKU EKRANU 3 4 KORZYSTANIE Z PROGRAMU MICROSOFT

Bardziej szczegółowo

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11 INSTALOWANIE NETBEANS IDE 6.9.1 JAVA SE (54MB) ORAZ DOINSTALOWANIE PAKIETU SUN JAVA WIRELESS TOOLKIT 2.5.2_01 FOR CLDC Uwaga: NetBeans działa poprawnie, jeŝeli komputer wyposaŝony jest w co najmniej 512

Bardziej szczegółowo

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA LABORATORIUM SYSTEMÓW MOBILNYCH ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA DANYCH NA URZĄDZENIACH MOBILNYCH I. Temat ćwiczenia II. Wymagania Podstawowe wiadomości z zakresu obsługi baz danych i języka SQL

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

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

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

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

Komunikator internetowy w C#

Komunikator internetowy w C# PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej

Bardziej szczegółowo

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

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

Bardziej szczegółowo

ODCZYTON INSTRUKCJA OBSŁUGI PROGRAMU. wersja Zakład Elektronicznych Urządzeń Pomiarowych POZYTON Sp. z o.o Częstochowa, ul.

ODCZYTON INSTRUKCJA OBSŁUGI PROGRAMU. wersja Zakład Elektronicznych Urządzeń Pomiarowych POZYTON Sp. z o.o Częstochowa, ul. Zakład Elektronicznych Urządzeń Pomiarowych POZYTON Sp. z o.o. 42-202 Częstochowa, ul. Staszica 8 tel.: 34-361-38-32, 34-366-44-95 tel./fax: 34-324-13-50, 34-361-38-35 e-mail: pozyton@pozyton.com.pl INSTRUKCJA

Bardziej szczegółowo

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); } Web Services 1. Podstawy usług sieciowych. SOAP, WSDL. 2. Usługi sieciowe w JAX-RPC. interfejs punktu końcowego, korzystanie z usługi z poziomu komponentu EJB, programy klienckie, narzędzia i deskryptory

Bardziej szczegółowo

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Instrukcja użytkownika. Aplikacja dla Comarch Optima Instrukcja użytkownika Aplikacja dla Comarch Optima Instrukcja użytkownika Aplikacja dla Comarch Optima Wersja 1.0 Warszawa, Sierpień 2015 Strona 2 z 12 Instrukcja użytkownika Aplikacja dla Comarch Optima

Bardziej szczegółowo

instrukcja obsługi N-Viewer 1200 Mobile

instrukcja obsługi N-Viewer 1200 Mobile instrukcja obsługi N-Viewer 1200 Mobile CHARAKTERYSTYKA PRODUKTU UWAGA Powielanie w jakiejkolwiek formie całości lub fragmentów instrukcji bez pisemnej zgody firmy NOVUS SECURITY Sp. z o.o., jest zabronione.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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 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ć

Bardziej szczegółowo

Instrukcja instalacji usługi Sygnity Service

Instrukcja instalacji usługi Sygnity  Service Instrukcja instalacji usługi Sygnity EmailService Usługa Sygnity EmailService jest przeznaczona do wysyłania wiadomości pocztą elektroniczną do klientów zarejestrowanych w Systemach Dziedzinowych Sygnity

Bardziej szczegółowo

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji i obsługi programu Szpieg 3 COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.

Bardziej szczegółowo

2011-11-04. Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL

2011-11-04. Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL Instalacja, konfiguracja Dr inŝ. Dziwiński Piotr Katedra InŜynierii Komputerowej Kontakt: piotr.dziwinski@kik.pcz.pl 2 Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management

Bardziej szczegółowo

Tomasz Greszata - Koszalin

Tomasz Greszata - Koszalin T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołów HTTP oraz HTTPS i oprogramowania IIS (ang. Internet Information Services).

Bardziej szczegółowo

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

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat. Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat. Serwer Tomcat Plan wykładu Opis serwera Jak uruchomić napisaną aplikację Podstawowa konfiguracja Pierwsze uruchomienie Tomcat

Bardziej szczegółowo

Java Podstawy JUST JAVA 28.03.2007. Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej

Java Podstawy JUST JAVA 28.03.2007. Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej Java Podstawy JUST JAVA 28.03.2007 Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej beretam@torus.uck.pk.edu.pl http://torus.uck.pk.edu.pl/~beretam Hello

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

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami

Bardziej szczegółowo

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Przykłady na podstawie zadań lab. z przedmiotu Technologie internetowe

Bardziej szczegółowo

Katalog książek cz. 3: Web Service

Katalog książek cz. 3: Web Service Katalog książek cz. 3: Web Service Przygotowanie usługi sieciowej (web service) 1) Uruchom Netbeans, otwórz projekt przygotowany w ramach poprzednich zajęć. W kolejnych krokach przerobimy klasę BookManager

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

Współpraca z platformą Emp@tia. dokumentacja techniczna

Współpraca z platformą Emp@tia. dokumentacja techniczna Współpraca z platformą Emp@tia dokumentacja techniczna INFO-R Spółka Jawna - 2013 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax (33) 853 04 06 e-mail: admin@ops.strefa.pl Strona1

Bardziej szczegółowo