12 j2me network v1

Upload: sweidan-omar

Post on 07-Apr-2018

222 views

Category:

Documents


0 download

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.