12 j2me network v1
Post on 07-Apr-2018
222 Views
Preview:
TRANSCRIPT
-
8/3/2019 12 J2ME Network v1
1/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 1
Hlzati kommunikci
J2ME platformon
Budapesti Mszaki s Gazdasgtudomnyi Egyetem
Automatizlsi s Alkalmazott Informatika Tanszk
Ekler Pter
-
8/3/2019 12 J2ME Network v1
2/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 2
GyorskrdsMiben rejlik a Generic Connection
Framework jelentssge?
-
8/3/2019 12 J2ME Network v1
3/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 3
Tartalom
Bevezets A J2ME platform hlzatkezelsi rendszere
ltalnos hlzati technolgik J2ME alkalmazsokban Stream s Socket alap kommunikci
HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa
zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
4/78
-
8/3/2019 12 J2ME Network v1
5/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 5
Hlzati technolgik alkalmazsaElssorban vezetk nlkli kommunikci Internetes szolgltatsok elrse
mobiltelefonokon
Egyre tbb alkalmazs hasznl hlzatikommunikcit:
Zenetrak
Mobil alap web bngszk Bluetooth alap alkalmazsok
Peer-to-peer technolgik
-
8/3/2019 12 J2ME Network v1
6/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 6
Tartalom
Bevezets A J2ME platform hlzatkezelsi rendszere
A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
7/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 7
ltalnos kapcsolatkezelsKapcsolattpusok szles skljnak
kezelse
A lehet legkevesebb megszorts
Eltr hlzati technolgik azonos mdonval kezelse, az adott technolgitlfggetlenl
Hatkony erforrs felhasznls
Energiafelhasznls figyelembevtele
-
8/3/2019 12 J2ME Network v1
8/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 8
Generic Connection Framework I.
J2SE java.net s java.io API-ktlsgosan erforrsignyesek voltak
j API J2ME platformon
Generic Connection Framework (GCF):J2ME API kapcsolatkezelsre
Eredetileg CLDC konfigurci, de
manapsg mr ms konfigurci istmogatja
MIDP profilt tmogat kszlkeken
futtathatk
-
8/3/2019 12 J2ME Network v1
9/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 9
Generic Connection Framework II.
javax.microedition.io
Eredetileg hlzati kapcsolatok ltalnoskezelse, de napjainkban egyre tbb jabb
csomag felhasznlja, pldul: Fjlkezels
Bluetooth alap kommunikci
Tbbfle protokoll tmogatsa
-
8/3/2019 12 J2ME Network v1
10/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 10
Generic Connection Framework III.
-
8/3/2019 12 J2ME Network v1
11/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 11
GCF Interface-k I.
Connection interface: sosztly
A megnyitst s bezrst tmogatja az open() s
close()metdusokkal
Minden kapcsolattpus belle szrmazik le
A hierarchiban lejjebb haladva az egyes kapcsolattpusok komplexebb vlnak
InputConnection interface: Bejvadatcsatorna. Az openInputStream()
fggvny egy stream-et ad vissza, amibl
olvasni lehet a read() fggvnnyel
-
8/3/2019 12 J2ME Network v1
12/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 12
GCF Interface-k II.
OuputConnection interface: Kimen adatcsatorna. AzopenOutputStream () fggvny egy stream-et advissza, amibe rni lehet a write() fggvnnyel
StreamConnection interface:
A bejv s a kimen csatorna kombincija Fontos: ltala egy ktirny stream kapcsolat valsul meg
ContentConnection interface:
A StreamConnection leszrmazottja
Tartalom specifikus informcikat tartalmazhat: adathossz,adattpus, adatkdols
A HTTP kapcsolat ltal biztostott alapvet meta-adatok egyrszhez enged hozzfrst
-
8/3/2019 12 J2ME Network v1
13/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 13
GCF Interface-k III.
StreamConnectionNotifier interface: Lehetv teszi a bejv stream kapcsolatokra vrst
asszinkron mdon
Figyeli a kapcsolatok ltrehozsra irnyulkrseket s visszaad egy StreamConnectionobjektumot, amin az adott kapcsolat ltrejtt
DatagramConnection: datagram szolgltats
Datagram interface: csomagkapcsoltkommunikcihoz hasznlatos, egy datagramcsomagot reprezentl
-
8/3/2019 12 J2ME Network v1
14/78
-
8/3/2019 12 J2ME Network v1
15/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 15
Connector osztly I. Connection c = Connector.open(StringconnectionString);
Factory jelleg osztly
Tbbfle kapcsolatot nyithatunk meg vele, amegfelel kapcsoldsler String megadsval:"protocol:address;parameters
A Connection helyn, konvertls utn a
megfelel kapcsolattpus llhat: HttpConnection
FileConnection
Stb.
-
8/3/2019 12 J2ME Network v1
16/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 16
Connector osztly II. HTTP kommunikci:Connector.open("http://java.sun.com/");
Stream alap socket kommunikci:Connector.open("socket://localhost:
8888"); Datagram alap kommunikc:Connector.open("datagram://:8888");
Soros port kommunikci:
Connector.open("comm:0;baudrate=9000");
Fjl I/O:Connector.open("file://data.dta");
-
8/3/2019 12 J2ME Network v1
17/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 17
Tovbbi kapcsold osztlyok I. J2SE-ben megismert osztlyokjava.io csomagban tallhatk
InputStream:
Adatok beolvassra hasznlatos
DataInputStream
Java adattpusok olvassra is alkalmas
-
8/3/2019 12 J2ME Network v1
18/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 18
Tovbbi kapcsold osztlyok II.OutputStream:
Adatok rsra hasznlatos
DataOutputStream
A DataInputStream-el prhuzamba lltvaJava adattpusok kldsre (rsra) alkalmas
-
8/3/2019 12 J2ME Network v1
19/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 19
GCF egyszer bvthetsgMagasszint ltalnostsj kapcsolattpus tmogatsa egyszeren:
Connection interface implementlsa az j
kapcsolattpust definil osztlyban Connector factory osztly biztostsa, mely
tmogatja az j kapcsolattpust
Kapcsolattpushoz tartoz URL definilsaAz j kapcsolattpus akr egy mr meglv
Connection interface-t implementlosztlybl is szrmazhat
-
8/3/2019 12 J2ME Network v1
20/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 20
Tartalom
Bevezets A J2ME platform hlzatkezelsi rendszere
A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
21/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 21
Kapcsolatnyits URL alapjnA GCF-ben URL-ekkel kerlnek lersra a
klnfle kapcsolattpusok s vgpontok
Az URL ltalnos formtuma:
scheme://user:password@host:port/u
rl-path;parameters
sszetett kapcsoldsi krs rhat leltala
-
8/3/2019 12 J2ME Network v1
22/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 22
A GFC ltal hasznlt URL felptse scheme: a hozzfrsi mdot, protokollt definilja, mintpldul: FTP, HTTP, stb
user: nem ktelez, ltala megadhat a felhasznlnv
password: nem ktelez, jelsz adhat meg ltala
host: az erforrs teljes elrsi neve, vagy IP cme port: nem ktelez, a csatlakozsi port adhat meg
ltala, az adott kapcsolattpustl fgg, hogy szksg van-e r
url-path: az erforrs elrsi tja, formtuma akapcsolattpustl fgg, tartalmazhat mg egybopcionlis paramtereket (; utn)
-
8/3/2019 12 J2ME Network v1
23/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 23
GCF kapcsolat pldkURL scheme Kapcsolat
tpusGCF Connection
osztly
datagram Datagram DatagramConnection
file Fjl elrs FileConnection,
InputConnectionhttp HTTP protokoll HttpConnection
https Biztonsgos HTTP HttpsConnection
comm Soros I/O CommConnection
sms, mms Szveges smultimdia zenet
MessageConnection
socket, serversocket Socket alapkapcsolat
SocketConnection,
ServerSocketConnection
-
8/3/2019 12 J2ME Network v1
24/78 BME-AAIT 2010 Hlzati kommunikci J2ME platformon 24
GCF hasznlatnak fbb lpseiMegnyitshoz szksges a Connector
factory osztly s az URL
A bezrs a ltrehozott Connection
feladata
Az adott kapcsolat tovbbi hasznlata aConnection osztlybl leszrmazott
kapcsolatkezel objektum feladata
Az egyes Connection-ok hasznlataegymstl jelentsen eltrhet
-
8/3/2019 12 J2ME Network v1
25/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 25
Kapcsolat megnyitsa - pldaString url = "socket://www.tesztszerver.com:80";
...
SocketConnection socketConnection = null;
InputStream inputStream = null;
try {
socketConnection = (SocketConnection)Connector.open(url);
inputStream = socketConnection .openInputStream();
...
// adatok beolvassa
...
}
catch (ConnectionNotFoundException cne) {}
catch (IllegalArgumentException iae) {}
catch (IOException ioe) {}finally {
try {
if (inputStream != null) inputStream .close();
if (socketConnection != null) socketConnection .close();
} catch (Exception e) {}
}
-
8/3/2019 12 J2ME Network v1
26/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 26
Kapcsolat nyits mdjai A Connector osztly hrom open() fggvnyt definil:
open(String url)
open(String url, int mode)
open(String url, int mode, boolean timeouts)
A paramterek jelentse: Az URL a kapcsolat tpust rja le
A md vltoz lehetsges rtkei: READ, WRITE, vagyREAD_WRITE (alaprtelmezett)
Atimeouts
vltozban adhatjuk meg, hogy kvnunk-ertestst kapni timeout kivtelrl(InterruptedIOException), alaprtelmezett rtke false
-
8/3/2019 12 J2ME Network v1
27/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 27
Stream-ek ltrehozsa azonnal Connector osztly tovbbi statikus fggvnyei:
static DataInputStreamopenDataInputStream(String name)
static DataOutputStream
openDataOutputStream(String name) static InputStreamopenInputStream(String name)
static OutputStream
openOutputStream(String name)
Ilyenkor azonban nem rhetjk el az adottkapcsolattpushoz tartoz fggvnyeket (pldulHTTP header-ek lekrdezse)
-
8/3/2019 12 J2ME Network v1
28/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 28
Tovbbi pldk I.Socket kapcsolat ltrehozsa:
String url =
"socket://www.j2medeveloper.com:80";
SocketConnection conn =(SocketConnection)Connector.open(url);
Http kapcsolat ltrehozsa: String url =
"http://www.j2medeveloper/com/myServlet
";
HttpConnection conn =
(HttpConnection)Connector.open(url);
-
8/3/2019 12 J2ME Network v1
29/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 29
Tovbbi pldk II. Fjl kapcsolat:
String url = "file:///myResourceFile.res";
FileConnection conn =(FileConnection)Connector.open(url);
Kapcsolat bezrsa a Connection interface close()metdusn keresztl:try {
// Egyb megnyitott stream-ek bezrsa eltte
conn.close();
} catch (IOException ioe) {
// Kivtel kezelse
}
-
8/3/2019 12 J2ME Network v1
30/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 30
Tartalom Bevezets
A J2ME platform hlzatkezelsi rendszere A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
31/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 31
Stream alap kommunikci StreamConnection interface
Minden olyan funkcit tartalmaz, amely streamalap kommunikcihoz szksges
Az albbi stream-ek megnyitst tmogatja: InputStream
DataInputStream
OutputStream DataOutputStream
Egy irnyba csak egy stream nyithat,
egybknt IOException keletkezik
-
8/3/2019 12 J2ME Network v1
32/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 32
Socket alap kommunikciSocketConnection interface
A StreamConnection interface
leszrmazottja
Socket alap kapcsolat szintn a GCF-enkeresztl rhet el a hlzati cm s a portmegadsval:
socket://testhost.com:79
-
8/3/2019 12 J2ME Network v1
33/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 33
SocketConnection fggvnyekTvoli hlzati cm s port lekrdezse:
public String getAddress()
public int getPort()
Helyi cm s port lekrdezse: public String getLocalAddress()
public int getLocalPort()
Socket paramterek lekrdezse: public intgetSocketOption(byte option)
-
8/3/2019 12 J2ME Network v1
34/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 34
Socket paramterek SocketConnection osztly statikus byte tpus
konstansai:
KEEPALIVE: kapcsolat fenntarts ha nincs
forgalom LINGER: vrakozs adott ideig a kapcsolat
bezrsa eltt
SNDBUF: kld buffer mretnek belltsa RCVBUF: olvas buffer mretnek lltsa
DELAY: a Nagle algoritmus engedlyezse
-
8/3/2019 12 J2ME Network v1
35/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 35
Nagle algoritmus
kis csomag problma Ha az alkalmazs sokszor, pldul csak 1 byte
adatot kld bizonyos idtartamokban, akkor az
rtkes 1 byte mell akr 40 byte jrulkosinformci is kerlhet (TCP csomag header = 20byte TCP + 20 byte IPv4 header), amelyhatalmas overhead
Megolds: gyjtsk ssze az adatokat s egybekldjk el
Fontos: nem mindig rdemes/lehet alkalmazni
-
8/3/2019 12 J2ME Network v1
36/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 36
Socket paramterek belltsa public void setSocketOption(byte option,int value)
Els paramterben a paramter,
msodikban a belltand rtk adhatmeg, pldul:
socket.setSocketOption(
SocketConnection.DELAY,0);
Hibs paramterek esetnIllegalArgumentException
keletkezik
-
8/3/2019 12 J2ME Network v1
37/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 37
Socket plda// kapcsolat megnyitsa
SocketConnection sc = (SocketConnection)
Connector.open("socket://host.com:79");
sc.setSocketOption(SocketConnection.LINGER, 5);
InputStream is = sc.openInputStream();
OutputStream os = sc.openOutputStream();
// adatklds s fogadsos.write("\r\n".getBytes());
int ch = 0;
while(ch != -1) {
ch = is.read();
// ch karakter felhasznlsa
}
// kapcsolat bezrsa
is.close();
os.close();
sc.close();
-
8/3/2019 12 J2ME Network v1
38/78
-
8/3/2019 12 J2ME Network v1
39/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 39
HttpConnection interface
Http kapcsolatokat J2ME platformon aHttpConnection interface segtsgvelkezelhetnk
Minden MIDP profilt tmogat mobil eszkznalkalmazhat
Kzvetlenl a ContentConnection interface-bl szrmazik, gy kezeli a klnfle
adattpusokat (MIME) I/O stream-ek tmogatsa, hiszen kzvetetten aStreamConnection-bl szrmazik
-
8/3/2019 12 J2ME Network v1
40/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 40
HttpConnection fggvnyek I.MIME tpusok kezelshez kapcsold
fggvnyek:
String getEncoding(): kdols lekrdezse
long getLength(): hossz lekrdezse
String getType(): tpus lekrdezse
A kapcsolat felptse utn ezenmetdusok segtsgvel krdezhetk le azadott adatok a HTTP header-bl
-
8/3/2019 12 J2ME Network v1
41/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 41
HttpConnection fggvnyek II. HTTP protokollhoz kapcsold fggvnyek:
String getHeaderField(String name):
Header mez lekrdezse
String getURL(): URL lekrdezse
String getRequestProperty(String key):
krs paramtereinek lekrdezes
void setRequestProperty(String key,
String value): krs paramtereinek belltsa Stb.
-
8/3/2019 12 J2ME Network v1
42/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 42
HttpConnection pldapublic class MyHTTPReader extends Thread {
public void run()
{
try {
HttpConnection hc = (HttpConnection)Connector.open("http://127.0.0.1/index.html");
InputStream is = hc.openInputStream();
int ch;
while ((ch = is.read()) != -1)
contentStringItem.setText(contentStringItem.getText()+(char)ch);
is.close();
hc.close();
} catch (IOException ex) {ex.printStackTrace();
}
}
}
-
8/3/2019 12 J2ME Network v1
43/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 43
Tartalom Bevezets
A J2ME platform hlzatkezelsi rendszere A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
44/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 44
Web Service technolgia J2ME platformon I.
A JSR 172-es kiegszts tartalmazza a WebService (webszolgltats) API-t
Az sszes szksges specifikcit tartalmazza(WS-I Basic Profile):
SOAP 1.1 (Simple Object Access Protocol): azadattovbbtst s kdolst specifiklja
WSDL 1.1 (Web Services Definition Language):
specifiklja a tvoli szolgltatsok lersi mdjt XML 1.0: XML jellnyelv lersa
XML Schema lers
-
8/3/2019 12 J2ME Network v1
45/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 45
Web Service technolgia J2ME platformon II. Kliens, Web Service felhasznl: J2ME MIDP alkalmazs JSR 172-es
kiegsztst tmogat mobil eszkzn
Hlzat: Az Internetkapcsolat s a hlzati protokollok sszefoglalja arsztvevk kztt
Szerver, Web Service kibocst: Tipikusan egy webszerver, amely aszolgltatst nyjtja. Klnfle httr erforrsok csatlakozhatnak hozz
-
8/3/2019 12 J2ME Network v1
46/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 46
Web Service technolgia J2ME platformon III.
Fejlesztkrnyezet ltal biztostott eszkzk (Pl.NetBeans Mobility Pack)
A Web Service WSDL alapjn generlja a kdot
Elfedi a hlzati kommunikcit Web Service hvs egyszer fggvnyhvs
formjban rhet el egy vezrl objektumtl:
MyProgramWebServiceSoap_Stub webService =new MyProgramWebServiceSoap_Stub();
String result =
webService.exampleWebServiceCall(hello);
-
8/3/2019 12 J2ME Network v1
47/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 47
NetBeans Mobility PackWeb Service
-
8/3/2019 12 J2ME Network v1
48/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 48
Tartalom Bevezets
A J2ME platform hlzatkezelsi rendszere A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
49/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 49
Bluetooth alapok
Egyms kzelben lv kszlkeksszekapcsolsra hasznlatos
Nincs szksg kbelre
Rdifrekvencis technolgia, a 2.4 GHz-es Ipari-Tudomnyos-Orvosi tartomnythasznlja
-
8/3/2019 12 J2ME Network v1
50/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 50
Trtnelmi httr
Eredetileg Ericcson javasolta 1994-ben
1998: Ericsson, IBM, Intel, Nokia, s aToshiba
Azta tbb mint 2000 cg csatlakozott(telefon, szmtgp s PDA gyrtk)
-
8/3/2019 12 J2ME Network v1
51/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 51
Cl
Eredetileg a kbeles, infravrs s egybkapcsoldsi mdok levltsra terveztk
Azonban szmos j szolgltats is
megvalsthat ltala, mint pldulkszlkek szinkronizlsa
Gyorsan s automatikusan mkdik
-
8/3/2019 12 J2ME Network v1
52/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 52
Bluetooth jellegzetessgek
Vezetk nlkli s automatikusOlcs (5 dollros hardware)
Adat s hang tovbbtst is tmogat
Tbbirny jel, a falakon is kpes thatolni
Frekvenciaugrst hasznl
-
8/3/2019 12 J2ME Network v1
53/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 53
Plda alkalmazsok
File tvitelAd-hoch hlzatok ltrehozsa
Kszlk szinkronizci
Perifrik csatlakoztatsa
Auts eszkzk
Mobil fizetsi mdszer
-
8/3/2019 12 J2ME Network v1
54/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 54
Bluetooth hlzati topolgia 1/2
A kszlkek gynevezett piconet-beszervezdnek
A piconet egy master-t s maximum 7
aktv slave-t tartalmazEgy-egy s egy-tbb kapcsolatok
A master kezdemnyezi a kommunikcit
Egy piconetben lv kszlkkommuniklhat egy msik piconet-benlvvel: scatternet
-
8/3/2019 12 J2ME Network v1
55/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 55
Bluetooth hlzati topolgia 2/2
-
8/3/2019 12 J2ME Network v1
56/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 56
Energiahasznlati mdok
A Bluetooth hrom energiamdot definilaz akkumltorhasznlat cskkentserdekben:
Sniff md: Alacsony energiaszinten valfigyels
Hold md: Nincs adatovbbts, az raazonban mkdik
Park md: A slave-k szinkronizlva vannak amaster-hez, azonban nem rszei aforgalomnak
-
8/3/2019 12 J2ME Network v1
57/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 57
Tartalom Bevezets
A J2ME platform hlzatkezelsi rendszere A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
58/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 58
Bluetooth technolgia J2ME platformon A Bluetooth API-t a JSR 82-es kiegszts tartalmazza
javax.bluetooth s javax.obex csomagok
A Bluetooth eszkz ajavax.bluetooth.LocalDevice osztly statikusgetLocalDevice() fggvnyvel krhet le
Az API ltal biztostott szolgltatsok: Szolgltatsok regisztrlsa
Kszlkek s szolgltatsok keresse
Kapcsolat ltrehozsa
Adatok kldse s fogadsa Kapcsolatok felgyelete
Biztonsg szavatolsa a fent felsorolt szolgltatsokra
Bluetooth Control Center (BCC) elklnti az alkalmazsokcsatorna-hasznlatt
-
8/3/2019 12 J2ME Network v1
59/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 59
Kszlkek keresse
DiscoveryAgent: a keress lebonyoltsra
hasznlhat osztly A public boolean startInquiry(int accessCode,DiscoveryListener listener)fggvnye indtja a keresst
A public RemoteDevice[] retrieveDevices(intoption) fggvnye pedig paramtertl fggen a mr ismert
kszlkeket vagy a legutbbi keress eredmnyt adja vissza DiscoveryListener: keresskor ezt az interface-t kell
implementlni, ha rteslni szeretnnk egy kszlkmegtallsrl Egy j kszlk feldertse esetn a public voiddeviceDiscovered(RemoteDevice btDevice,DeviceClass cod) fggvny hvdik meg
Keress befejezsekor pedig a public voidinquiryCompleted(int discoveryType)fggvny hvdikmeg
-
8/3/2019 12 J2ME Network v1
60/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 60
Szolgltats keresse
A DiscoveryAgent osztly intsearchServices() fggvnyvel lehetszolgltatsokat keresni, visszatrsi rtke akeress tranzakcis azonostja
A DiscoveryListenerservicesDiscovered() fggvnytimplementlva rtestst kapunk a talltszolgltatsokrl, paramterl a keress
indtsnak tranzakcis azonostjttermszetesen megkapjuk
A serviceSearchCompleted() fggvny akeress vgt jelzi
-
8/3/2019 12 J2ME Network v1
61/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 61
Bluetooth eszkzk adatai
Helyi eszkzk:LocalDevice local = LocalDevice.getLocalDevice();String address = local.getBluetoothAddress();
String name = local.getFriendlyName();
Tvoli eszkz:RemoteDevice remote =
RemoteDevice.getRemoteDevice(Connection c);
String remoteAddress =
remote.getBluetoothAddress();String remoteName =
remote.getFriendlyName(true);
-
8/3/2019 12 J2ME Network v1
62/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 62
Tartalom Bevezets
A J2ME platform hlzatkezelsi rendszere A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
63/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 63
Wireless Messaging API (WMA) I.
A WMA segtsgvel lehetv vlik GSMzenetek kldse s fogadsa, valamintGSM Cell Broadcast Service(CBS)
zenetek fogadsa.A javax.wireless.messaging
csomag importlsa szksges a
hasznlathoz
-
8/3/2019 12 J2ME Network v1
64/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 64
Wireless Messaging API (WMA) II.
3 rtegbl ll: Interface: zenet-
protokoll fggetlen rteg,az zenet klds/fogads
egysges reprezentcijaa feladata
Implementci: itt vlnakkln az zenetfajtk,
rszekre bontst ssszefzst is vgez
Szlltsi: a tnylegesprotokoll megvalsts
-
8/3/2019 12 J2ME Network v1
65/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 65
Interface rteg
A Generic Messaging API foglalja ssze az interface-ket,ami a javax.wireless.messaging csomagbantallhat
Osztlyok:
Message: az zenetet reprezentlja, 3 rszbl ll: cm,zenet, flag-ek. sosztlya a TextMessage s aBinaryMessage osztlyoknak, amik a szveges illetvebinris zeneteket jelkpezik
MessageConnection: zenetek fogadsa s kldse a
feladata. Tbbek kztt Message objektumltrehozsra hasznlhatk a fggvnyei
MessageListener: Bejv zenetek figyelsrehasznlhat
-
8/3/2019 12 J2ME Network v1
66/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 66
Implementcis rteg
Short Message Service(SMS) API A com.sun.midp.io.j2me.sms csomag teszi
lehetv SMS zenetek kldst s fogadst
MessageObject: A MessageObject az SMS
zenet megtestestje. Ez az osztly kezeli azzenetpuffer ltrehozst s az input/outputmveletek vgrehajtst. Itt is megjelenik a ktalosztly : TextObject s BinaryObject
Protocol: Ez kti a szlltsi rteghez az SMSkldst. Ellenrzi a paramtereket, kezeli akvetkez kivteleket: url-hiba, biztonsgitkzsek, I/O tkzsek
-
8/3/2019 12 J2ME Network v1
67/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 67
SMS - kapcsolat ltrehozs
A kapcsolat ltrehozsa aConnector.open() fggvnnyel lehet,ahol a szksges paramter formtuma:
"sms:// +18643630999:5000"
SMS fogadsa is tmogatott: "sms://:5000"
Az SMS kapcsolatot egyMessageConnection objektum
jelkpezi
-
8/3/2019 12 J2ME Network v1
68/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 68
MessageConnection fggvnyei
public Message newMessage(loadType): ellltja azzenetet, ahol a loadTypeMessageConnection.TEXT_MESSAGE vagyMessageConnection.BINARY_MESSAGE rtklehet. A visszatrsi rtk ez alapjn egy
TextMessage vagy egy BinaryMessageobjektum
public void send(Message) : elkldi az adottzenetet
public Message receive() : zenet fogadsa public setMessageListener(MessageListener ml):
belltja a MessageListener osztlyt, amelykezeli az zenet rkezst
-
8/3/2019 12 J2ME Network v1
69/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 69
TextMessage s BinaryMessage
TextMessage: setPayloadText(): Belltja a szveges zenet
tartalmt
String getPayloadText(): Kiolvassa a szvegeszenet tartalmt
BinaryMessage:
setPayloadData(): Belltja a binris zenettartalmt
byte[] getPayloadData(): Kiolvassa a binriszenet tartalmt
-
8/3/2019 12 J2ME Network v1
70/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 70
Egyszer SMS kliens
String url = "sms://+5550000:12345";MessageConnection conn =
(MessageConnection)Connector.open(url);
TextMessage msg =
(TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText("Hello World");
conn.send(msg);
-
8/3/2019 12 J2ME Network v1
71/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 71
Egyszer SMS szerver
String url = "sms://:12345";MessageConnection conn = (MessageConnection)
Connector.open(url);
TextMessage message =
(TextMessage)conn.receive();
String receivedText =
message.getPayloadText();
-
8/3/2019 12 J2ME Network v1
72/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 72
Tartalom Bevezets
A J2ME platform hlzatkezelsi rendszere A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
73/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 73
sszefoglals
ltalnos kapcsolatkezels a GenericConnection Framework segtsgvel Tbbfle kapcsolatot tmogat
Egyszeren bvthet
Kzkedvelt kommunikcis mdok tmogatsa Socket
HTTP
WebService (JSR 172)
Rvidtv kommunikci tmogatsa(Bluetooth)
zenetkezels J2ME platformon
-
8/3/2019 12 J2ME Network v1
74/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 74
Tartalom Bevezets
A J2ME platform hlzatkezelsi rendszere A Generic Connection Framework (GCF) ttekintse
Kapcsolatok megnyitsa a GCF segtsgvel
ltalnos hlzati technolgik J2ME alkalmazsokban
Stream s Socket alap kommunikci HTTP kommunikci
WebService technolgia
Bluetooth technolgia Java ME platformon A technolgia ttekintse
A technolgia alkalmazsa zenetkezels J2ME platformon
sszefoglals
Teszt
-
8/3/2019 12 J2ME Network v1
75/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 75
Teszt
1. Milyen paramtere legyen aConnector.open() fggvnynek, ha a192.168.0.1-es cmhez szeretnnk csatlakozniegy socket-el a 4444-es porton?
2. Mik az elnyei Web Service technolgiaalkalmazsnak J2ME platformon?
3. Hogyan szervezhetk a Bluetooth eszkzk
hlzatba?4. Mi a Wireless Messaging System hrom f
rtege?
-
8/3/2019 12 J2ME Network v1
76/78
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 76
Krdsek
-
8/3/2019 12 J2ME Network v1
77/78
ZH
Milyen paramtere legyen a Connector.open()fggvnynek, ha a 192.168.0.1-es cmhezszeretnnk csatlakozni egy socket-el a 4444-esporton?
Mit neveznk MIDlet-nek?
Milyen fbb Java ME fjlkezel fggvnyeketismer?
Melyik vezrl hasznlhathangerszablyozsra?
BME-AAIT 2010 Hlzati kommunikci J2ME platformon 77
-
8/3/2019 12 J2ME Network v1
78/78
ZH
Rajzolja fel a MIDlet letciklus modellt smagyarzza el mkdsi elvt.
Vzolja fel egy Java ME alkalmazs kdjt, melya Hello Amorg! string-et megjelenti.
Ksztsen egy osztlyt, mely azamorg.aut.bme.hu cmre csatlakozik s forrstvalamilyen mdon megjelenti.
Vzoljon fel egy Java ME-s kdrszletet, mely akamera kpt megjelenti a ltez mainFormnev Form-on.
top related