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



Podobne dokumenty
M-biznes: Mobile Business. Technologiczne podstawy aplikacji dla m-biznesu. Przykłady zastosowań. Typy urządzeń przenośnych

Java Platform Micro Edition

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Autor : Mateusz Kupczyk

Programowanie aplikacji na urządzenia mobilne

Wprowadzenie do J2ME

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 3

ZAPOZNANIE SIĘ Z TWORZENIEM

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

Java jako język programowania

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

Agata Gałecka, Martyna Sikorska, Tomasz Cebula. 28 kwietnia 2009

Piotr Orzechowski. Technologie Biznesu Elektronicznego

Programowanie obiektowe zastosowanie języka Java SE

WPROWADZENIE DO JĘZYKA JAVA

Programowanie w języku Java

STWORZENIE PRZYKŁADOWEJ

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

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

Aplikacje RMI

Java programowanie telefonów komórkowych Na podstawie:

Programowanie obiektowe

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

1 Wprowadzenie do J2EE

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

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

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

Programowanie urządzeń mobilnych na platformie Java ME

Przegldanie stron wymaga odpowiedniej mikroprzegldarki w urzdzeniu mobilnym lub stosownego emulatora.

Zaawansowane aplikacje WWW - laboratorium

public void startapp() { } public void pauseapp() { } public void destroyapp(boolean unconditional) { }

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

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

JAVA I SIECI. MATERIAŁY:

SEMINARIUM DYPLOMOWE

Bezpieczne uruchamianie apletów wg

Tworzenie i wykorzystanie usług

Laboratorium Programowania Kart Elektronicznych

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

Programowanie współbieżne i rozproszone

Multimedia JAVA. Historia

J2ME Część II. P.J.Podsiadły

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

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Programowanie w języku Java

J2ME. Java dla urz¹dzeñ mobilnych. Æwiczenia

Programowanie obiektowe. Wprowadzenie

METODY REPREZENTACJI INFORMACJI

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

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

Podstawy programowania. Wprowadzenie

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Podstawy otwartych języków programowania Język Java

Programowanie w Internecie. Java

Wykorzystywanie parsera DOM w programach Java i PL/SQL

OpenLaszlo. OpenLaszlo

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Wywoływanie metod zdalnych

Tomasz Grześ. Systemy zarządzania treścią

Programowanie Komponentowe WebAPI

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

Programowanie rozproszone w języku Java

Programowanie obiektowe

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Laboratorium z informatyki sem. III/ćw.12 Wydział Transportu PW 2018/19

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE

Podstawy języka Java. przygotował:

Java. Michał Wójcik.

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

OSGi Agata Hejmej

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Aplikacje RMI Lab4

TECHNOLOGIE INFORMACYJNE

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

Android, wprowadzenie do SDK

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Tworzenie aplikacji w języku Java

Fragmenty są wspierane od Androida 1.6

Generatory pomocy multimedialnych

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

SKRÓCONY PODRĘCZNIK UŻYTKOWNIKA PROGRAMU. NOKIA PC SUITE 4.81 for Nokia 6310i. Copyright 2001 Nokia Corporation. Wszelkie prawa zastrzeżone.

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

JAVA. Tomasz Grzywacz.

Java EE produkcja oprogramowania

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Programowanie obiektowe

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Systemy obiegu informacji i Protokół SWAP "CC"

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

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.

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

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

Ćwiczenie 1. Przygotowanie środowiska JAVA

Metody dostępu do danych

Analiza i projektowanie aplikacji Java

Transkrypt:

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 podłączonych do sieci Internet M-business: dostęp do komputerowych systemów sprzedaży towarów, usług i informacji za pomocą urządzeń przenośnych (np. telefon komórkowy, palmtop) Typy urządzeń przenośnych Przykłady zastosowań Wyszukiwanie połączeń kolejowych i lotniczych, Realizacja operacji bankowych (przelewy, lokaty), Gry zespołowe Opłacanie postoju samochodu w strefie parkowania Sprzedaż napojów z automatów Sprzedaż biletów do kina/teatru, komunikacji miejskiej Zastąpienie karty kredytowej Dystrybucja oprogramowania Telefon komórkowy, palmtop, interakcyjny pager, itp.

Charakterystyka techniczna urządzeń przenośnich (-) 160KB 512 KB pamięci operacyjnej dla programów użytkownika (-) Niewielka moc obliczeniowa procesora (-) Ograniczona energia zasilania (-) Ograniczone, nietrwałe i zawodne połączenia sieciowe (-) Ograniczony interfejs użytkownika: niewielki wyświetlacz, uproszczona klawiatura (czasami zastąpiona ekranem dotykowym lub urządzeniem głosowym) (+) Dostęp do informacji o aktualnej lokalizacji urządzenia (umożliwia np. powiązanie oferty dla klienta z miejscem, w którym przebywa) Technologie budowy oprogramowania Proste systemy wykorzystujące wiadomości SMS (użytkownik wysyła żądanie jako wiadomość SMS, zdalny system komputerowy przekazuje wyniki obsługi żądania również jako SMS) Telefony komórkowe/palmtopy potrafiące wyświetlać tekstowograficzne dokumenty WML/WAP (użytkownik wypełnia formularz wyświetlany na ekranie telefonu, następnie wprowadzone dane są przesyłane do zdalnego systemu komputerowego, który przekazuje wyniki obsługi żądania w postaci tekstowo-graficznego dokumentu) Telefony komórkowe/palmtopy zdolne do uruchamiania programów pisanych w języku programowania Java (użytkownik instaluje w swoim telefonie program komputerowy, który po uruchomieniu wygodnie obsługuje użytkownika) Architektura SMS Pierwsza generacja: SMS Program zewnętrzny Centrum SMS realizacja płatności (TVN24, MPK Poznań, RadioZet Powodzianom) serwisy informacyjne (PKP, informacje agencyjne) gry tekstowe dostęp do poczty elektronicznej

Dostęp do Internetu poprzez WAP Telefon komórkowy zgodny z WAP Druga generacja: WAP protokół WAP Brama WAP Brama WAP pobiera dokumenty WML, kompresuje je i wysyła do telefonu komórkowego Protokół HTTP Serwer WWW dokument WML WAP (Wireless Application Protocol) to standard dostępu telefonów komórkowych do Internetu; WAP pozwala urządzeniom mobilnym na korzystanie z rozmaitych źródeł informacyjnych (głównie WWW) Dokumenty przesyłane przez WAP są tworzone w języku WML (Wireless Markup Language); istnieje możliwość tworzenia funkcji interakcji w, podobnym do JavaScript, języku WMLScript. Język WML Język Wireless Markup Language (WML), podobny do HTML, służy do tworzenia dokumentów udostępnianych poprzez WAP Dokumenty WML składają się z tzw. kart (cards); w danej chwili tylko jedna karta może być wyświetlana na ekranie urządzenia Każdy dokument WML rozpoczyna się nagłówkiem, złożonym z dwóch części: nagłówka XML i znacznika DTD: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> Znaczniki Card Do grupowania treści wewnątrz dokumentu WML służy znacznik <card>: <card id="id" title="title"> <p> content </p> </card> id - nazwa karty, używana do nawigacji title - tytuł karty, do wyświetlania na szczycie ekranu content - treść tekstowa lub kombinacja innych znaczników WML (znaczniki paragrafów <p>..</p> są obowiązkowe) Wszystkie karty muszą być zamknięte wewnątrz znaczników <wml>..</wml>

Przykładowe znaczniki WML Tekst wytłuszczony: <b></b> Tekst podkreślony: <u></u> Tekst pochylony: <i></i> Tekst powiększony: <big></big> Tekst pomniejszony: <small></small> Tekst wyróżniony: <em></em> Koniec wiersza: <br/> Obraz graficzny: <img src="file" alt="caption"/> Tabelki: <table columns="value"></table>, <tr></tr>,<td></td> Łączniki zewnętrzne: <a href="file">link text</a> Łączniki do innych kart: <a href="#card_id">link text</a> Przykład dokumentu WML <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> <wml> <card id="home" title="my WAP Home"> <p> <img src="photo1.wbmp" alt="my photo"/> <b>this</b> is an example WML page.(<a href="#addr">contact</a>) </p> </card> <card id="addr" title="contact"> <p align="center"> <big>my address:</big> Maciej Zakrzewicz<br/> Piotrowo 3a<br/> Poznan<br/> POLAND </p> </card> </wml> Urządzenia mobilne zgodne z J2ME Trzecia generacja: Java Java2 Micro Edition to specyfikacja języka programowania niewielkich aplikacji, pracujących w ograniczonym środowisku (np. telefony komórkowe) Programy dla telefonów komórkowych tworzone w środowisku J2ME nazywane są MIDletami (Mobile Information Device Application) Do uruchamiania MIDletów konieczne jest środowisko uruchomieniowe Java Virtual Machine (JVM) lub Kilobyte VM (KVM - miniaturowa wersja JVM, <256KB)

Konfiguracja, profil Konfiguracja (configuration): definicja minimalnego środowiska uruchomieniowego dla programów: maszyna wirtualna Java i podstawowe API; obecnie sformułowano dwie konfiguracje: CLDC (dla urządzeń bardzo ograniczonych) i CDC (nadzbiór CLDC, zbliżony do J2SE) Profil (profile): zbiór API wzbogacających konfigurację o możliwości specyficznych zastosowań urządzenia mobilnego MIDP (Mobile Information Device Profile) wraz z CLDC stanowi kompletne środowisko J2ME dla takich urządzeń mobilnych jak telefony komórkowe Programowanie w środowisku Java2 Micro Edition import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Demo extends MIDlet implements CommandListener { private Form mmainform; public Demo() { mmainform = new Form("HelloMIDlet"); mmainform.append(new StringItem(null, "Witaj!")); mmainform.addcommand(new Command("Koniec", Command.EXIT, 0)); mmainform.setcommandlistener(this);} public void startapp() { Display.getDisplay(this).setCurrent(mMainForm);} public void pauseapp() {} public void destroyapp(boolean unconditional) {} public void commandaction(command c, Displayable s) { notifydestroyed();}} Instalowanie i uruchamianie programu Pliki JAD i JAR Brama WAP Zawartość pliku JAD MIDlet-1: TestProject, TestProject.png, Test2 MIDlet-Jar-Size: 100 MIDlet-Jar-URL: TestProject.jar Serwer WWW MIDlet-Name: TestProject MIDlet-Vendor: Sun Microsystems MIDlet-Version: 1.0 JAD JAR Telefon komórkowy Zawartość pliku JAR meta-inf\manifest.mf Demo.class Plik opisowy Skompilowany kod programu

Pakiety J2ME javax.microedition.lcdui klasy obsługi interfejsu użytkownika (formularze, grafika, interakcja) javax.microedition.rms klasy obsługi trwałości (Record Management System) javax.microedition.midlet klasy aplikacji MIDlet oraz interakcji ze środowiskiem uruchomieniowym javax.microedition.io klasy obsługi komunikacji sieciowej pakiety standardowe: java.io, java.lang, java.util pakiety opcjonalne: javax.sql, javax.wireless.messaging, javax.microedition.media, javax.microedition.location, javax.bluetooth, itd. Implementacja MIDletów Java (1/5) Wymagania systemowe: Java 2 Standard Edition SDK wybrane biblioteki standardowe kompilator i JVM J2ME Wireless Toolkit biblioteki J2ME definicja i kompilacja projektu generowanie plików JAD budowa archiwów JAR testowe uruchamianie aplikacji narzędzia instalacyjne dostarczane przez producenta urządzeń mobilnych Implementacja MIDletów Java (2/5) Uruchomienie J2ME Wireless Toolkit Toolbar Implementacja MIDletów Java (3/5) Tworzenie kodu źródłowego w katalogu SRC projektu Kompilacja kodu Utworzenie nowego projektu konstrukcja drzewa katalogów

Implementacja MIDletów Java (4/5) Testowe uruchomienie programu Implementacja MIDletów Java (5/5) Instalacja programu na urządzeniu przenośnym Przygotowanie archiwum JAR (Project->Package->Create Package) Uruchomienie programu na urządzeniu przenośnym Przykład komunikacja MIDletu z serwletem Java private void connect() { HttpConnection hc = null; InputStream in = null; String url = "http://miner/servlets/myservlet"; try { hc = (HttpConnection)Connector.open(url); in = hc.openinputstream(); int contentlength = (int)hc.getlength(); byte[] raw = new byte[contentlength]; int length = in.read(raw); in.close(); hc.close(); String s = new String(raw, 0, length); mmessageitem.settext(s); } catch (IOException ioe) { mmessageitem.settext(ioe.tostring()); } mdisplay.setcurrent(mmainform); } Referencje Wireless Development Tutorial Part I (http://developers.sun.com/techtopics/mobility/midp/articles/wtoolkit) Wireless Development Tutorial Part II (http://developers.sun.com/techtopics/mobility/midp/articles/tutorial2) Sun J2ME Wireless Toolkit (http://java.sun.com/products/j2mewtoolkit)