Fejlett Webes Technológiák II.

Slides:



Advertisements
Hasonló előadás
4. alkalom – Hálózat Kezelés
Advertisements

© Kozsik Tamás Párhuzamosság A program egyszerre több mindent is csinálhat Lehetőségek: –Számítással egyidőben IO –Több processzor: számítások.
Fájlkezelés, IO Kivételkezelés Belső osztályok
1 Fejlett Programozási Technikák 2. 15/9. Fejlett Programozási Technológiák 2. 2 Az előző mai előadás tartalma: Számítógépes biztonság Jáva és a biztonság.
1 Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Léczfalvy Ádám MIDlet-ek.
Java programozási nyelv Filekezelés
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
Melyiket válasszam? Windows VS. Linux Készítette: Uher Bertalan.
Skultéti Attila március 24.
A kártyanyomtatás fortélyai Csákvári Krisztián Kártya és címke gyártás
Bibliográfia kezelése Zotero, Endnote Skultéti Attila Semmelweis Egyetem Központi Könyvtár május 30.
Készítsünk DIP-et! Szatucsek Zoltán. OAIS DIP Dissemination Information Package (DIP): The Information Package, derived from one or more AIPs, received.
Bevezetés a C# nyelvbe Az alapok összefoglalása Farkas Csaba.
A kifizetési kérelem összeállítása TÁMOP-3.2.9/B-08 Audiovizuális emlékgyűjtés.
AZ INTERNET SZOLGÁLTATÁSAI Készítette: Horváth Tünde.
INTERNETES BÖNGÉSZ Ő K Készítette: Horváth Tünde.
 Alap tudnivalók Alap tudnivalók  Az If és a While folyamatábrák Az If és a While folyamatábrák  Probléma Probléma  A while ciklus (általános alak,
Iskolai információs rendszer. Alapkövetelmények Oktatási, nevelési intézmények részére fejlesztett Oktatási, nevelési intézmények részére fejlesztett.
Internet tudományos használata
OvidSP és az értéknövelt szolgáltatásai
NIIF VoIP projekt aktualitások
Nagyméretű állományok küldése
Asynchronous Javascript And XML
A Scala programozási nyelv
Webszervizek (JAX-WS, és JAX-RS) bemutatása
Magyar Bibliográfiai Adatbázisok
Integráció a felsőoktatási könyvtárak szolgáltatásfejlesztésében
Scilab programozás alapjai
Adatok importálása, rendezése és szűrése
Az integrált áramkörök (IC-k) típusai és tervezése
Web-framework.
C# SZINTAKTIKÁJA Az egyes utasítások végén pontosvessző áll
Szerkesztőléc Aktív cella oszlopmutató sormutató munkalap munkafüzet.
Az Endnote bibliográfia adatbázis-kezelő szoftver alapvető használata Skultéti Attila
Lovagi Játékok projekt
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Fejlett Programozási Technikák 2.
Grosz imre f. doc. Kombinációs hálózatok /43 kép
Körmendi Dániel MAS Meeting Scheduler.
A Hálózat és Az internet
Számítógépes Hálózatok
Az Endnote bibliográfia adatbázis-kezelő szoftver alapvető használata november Skultéti Attila
INFORMATIKA november 18. Gyakorló alkalom – 2. rész
Számítógépes vírusok.
Fejlett Webes Technológiák II.
Informatikai gyakorlatok 11. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
Fejlett Webes Technológiák II.
Java Programozás 3. Gy: Java GUI Swing, AWT B IT M A N v:
A távoli asztal, valamint az Endnote használata a távoli asztalon
INFORMATIKA október 6. Gyakorló alkalom – 2. rész
B M Java Programozás 9. Gy: Java alapok IT A N Adatkezelő 5.rész
A Lineáris Keresés Buktatói
Bibliográfia adatbázis-kezelő alkalmazások, EndNote 2018 Skultéti Attila
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Szálszinkronizáció.
B M Java Programozás 6. Gy: Java alapok IT A N Adatkezelő 2.rész
Fejlett Webes Technológiák II.
B M Java Programozás 2. Gy: Java alapok IT A N Adatszerkezetek
B M Java Programozás 8. Gy: Java alapok IT A N Adatkezelő 4.rész
Magyar Bibliográfiai Adatbázisok
A MATARKA és az EPA közötti együttműködés
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Rendszerfejlesztés gyak
Java alkalmazások 1. Előadás.
Függvénysablonok használata
Táblázatkezelés 6. Diagramkészítés.
Előadás másolata:

Fejlett Webes Technológiák II. Bilicki Vilmos 2002.11.04

A mai előadás tartalma Over The Air (OTA) leírás Hálózat használat Feladatok, Csoportok, Menetrend

MIDlet telepítése: Teszt célra: Tömegesen: soros port infravörös kapcsolat blouetooth Tömegesen: OTA

OTA beállítások Web szerver: Mime: IIS, Apache, … .jad text/vnd.sun.j2me.app-descriptor .jar application/java-archive

HTML, VML példa

Letöltés, Telepítés JAM -> JAD fájl letöltése Futtatható-e az adott készüléken Ha igen akkor a megadott URL-ről a JAM letölti a JAR fájlt Ekkor küldhet értesítést a szervernek

JAD fájl MIDlet-Name: r MIDlet-Vendor: Vilmos Bilicki MIDlet-Version: 1.0 MIDlet-Jar-Size: 1411 MIDlet-Jar-URL: http://cab.u-szeged.hu/~bilickiv/r.jar MIDlet-1: helloWorld, , teszt.helloWorld MicroEdition-Configuration: MicroEdition-Profile:

Hálózat használó MIDlet Funkciók: összeadás, szerver segítséggel SUMMIDlet SumMIDlet SumScreen HttpPoster HttpPosterListener

Osztály felépítés

SumMIDlet.java import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import java.io.IOException; public class SumMIDlet extends MIDlet { private final SumScreen screen; private final HttpPoster httpPoster; public SumMIDlet() { String servletUrl = getAppProperty("Servlet-URL"); httpPoster = new HttpPoster(servletUrl); screen = new SumScreen(this, httpPoster); } public void startApp() { Display.getDisplay(this).setCurrent(screen); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } void sumScreenQuit() { httpPoster.abort(); destroyApp(false); notifyDestroyed();}}

public class HttpPoster implements Runnable { private String url; private volatile boolean aborting = false; private Vector requestQueue = new Vector(); private Vector listenerQueue = new Vector(); public HttpPoster(String url) this.url = url; Thread thread = new Thread(this); thread.start(); } public synchronized void sendRequest(String request, HttpPosterListener listener) throws IOException requestQueue.addElement(request); listenerQueue.addElement(listener); notify(); // wake up sending thread

public void run() { running: while (!aborting) String request; HttpPosterListener listener; synchronized (this) while (requestQueue.size() == 0) try { wait(); // releases lock} catch (InterruptedException e){} if (aborting) break running; } request = (String)(requestQueue.elementAt(0)); listener = (HttpPosterListener)(listenerQueue.elementAt(0)); requestQueue.removeElementAt(0); listenerQueue.removeElementAt(0); doSend(request, listener); } }

private void doSend(String request, HttpPosterListener listener) { HttpConnection conn = null; InputStream in = null; OutputStream out = null; String responseStr = null; String errorStr = null; boolean wasError = false; try{ conn = (HttpConnection)Connector.open(url); conn.setRequestMethod(HttpConnection.POST); conn.setRequestProperty("Content-Length", Integer.toString(request.length())); out = conn.openOutputStream(); int requestLength = request.length(); for (int i = 0; i < requestLength; ++i) { out.write(request.charAt(i)); } in = conn.openInputStream(); StringBuffer responseBuf; long length = conn.getLength(); if (length > 0) { responseBuf = new StringBuffer((int)length);} else { responseBuf = new StringBuffer(); } int ch; while ((ch = in.read()) != -1) {responseBuf.append((char)ch);} responseStr = responseBuf.toString(); String rewrittenUrl = conn.getHeaderField("X-RewrittenURL"); if (rewrittenUrl != null) {url = rewrittenUrl;}}

catch (IOException e) { wasError = true; errorStr = e.getMessage(); } finally { if (in != null) { try{ in.close();} catch (IOException e){ }} if (out != null) { try {out.close();} catch (IOException e){}} if (conn != null) {try{ conn.close();} } if (wasError) {listener.handleHttpError(errorStr);} else {listener.receiveHttpResponse(responseStr);} public void abort() { aborting = true; synchronized (this) { notify();}

HttpPosterListener interfész public interface HttpPosterListener { void receiveHttpResponse(String response); void handleHttpError(String errorStr); }

class SumScreen extends Form implements CommandListener, HttpPosterListener { private final SumMIDlet midlet; private final HttpPoster httpPoster; private final TextField inputField; private final StringItem outputField; private final Command sendCommand; private final Command quitCommand; private volatile boolean readyForInput = true; SumScreen(SumMIDlet midlet, HttpPoster httpPoster) { super("Sum"); this.midlet = midlet; this.httpPoster = httpPoster; inputField = new TextField("Input:", "1", 8, TextField.NUMERIC); append(inputField); outputField = new StringItem("Output:", "0"); append(outputField); sendCommand = new Command("Send", Command.SCREEN, 2); addCommand(sendCommand); quitCommand = new Command("Quit", Command.EXIT, 2); addCommand(quitCommand); setCommandListener(this); }

public void commandAction(Command c, Displayable d) { if (c == quitCommand) { midlet.sumScreenQuit(); } else if (readyForInput) { if (c == sendCommand) try { String requestStr = inputField.getString(); httpPoster.sendRequest(requestStr, this); readyForInput = false; } catch (IOException e) { outputField.setText("Error"); } } } } public void receiveHttpResponse(String response) outputField.setText(response); readyForInput = true; } public void handleHttpError(String errorStr) outputField.setText("Error");

Sum.jad MIDlet-Name: Sum MIDlet-Vendor: Forum Nokia MIDlet-Version: 1.2.0 MIDlet-Jar-Size: 5706 MIDlet-Jar-URL: Sum.jar MIDlet-1: Sum, /sum.png, example.sum.SumMIDlet MIDlet-Description: Sum MIDlet Servlet-URL: http://localhost:8080/sum

Feladatok, Csoportok, Menetrend Legalább 3 fős csoportok Egy vezető aki hetente elküldi az adott csoport jelentését: e-mailben:bilickiv@inf.u-szeged.hu a csoport tagjainak is másolatban (carbon copy) Tárgy: fwt2:a csoport sorszáma, jelentés száma (1. az első) pl.: (fwt2:1,1) Tartalom: az előző héten elvégzett munka, a következő hétre tervezett munka (az első levélben a feladat részletes leírása, az egyes személyek feladatai)

Menetrend Befejezés dátuma: legkésőbb 2003.01.24 16 óra Fogadóóra: hétfőnként 9-11-ig, az Árpád tér 48-ban bármikor csak előtte egyeztetetni kell (hogy ott legyek) időpontokban is lehet találkozni

Feladatok: Tudományos számológép (~10 fő): http://education.ti.com/us/product/tech/30xiis/features/bid.html grafikus függvény ábrázolás

Feladat szervező (~8 fő) Hasonló mint: http://education.ti.com/downloads/guidebooks/eng/83orgnzr.pdf

Online sakk program(~8 fő): Kliens, szerver alkalmazás Legyen lehetőség félbehagyott játszmák, elmentett játszmák elkezdésére Szükség van a szerver oldali kódra is (JSP, JavaServlet)! Legyen arra is lehetőség, hogy a gép ellen játszunk

Online kártya program(~8 fő): Kliens, szerver alkalmazás Legyen lehetőség félbehagyott játszmák, elmentett játszmák elkezdésére Szükség van a szerver oldali kódra is (JSP, JavaServlet)! Legyen arra is lehetőség, hogy a gép ellen játszunk

C64-es, spektrum játékok …