Staněk M.
ARACHNE I
30.05.2004
Úvod Arachne je projekt, který si bere za cíl poskýtovat informace prostřednictvým mobilních telefonů studentům týkající se jejich studia na Západočeské Univerzitě v Plzni. Má snahu takto částečně paralelizovat informační kanál STAG. Projekt je realizován prostřednictvím J2ME technologie, tedy prostřednictvím aplikace naprogramované v nejnižší edici jazyka Java pro mobilní zařízení. Jako požadované parametry v první fázi vývoje jsem zvolil : - Osobní rozvrh studenta - Jízdní řády linek k a od Fakulty Aplikovaných Věd - Informace Fakult a Univerzity - Přehled kulturních akcí ve studentských klubech
1
Staněk M.
ARACHNE I
30.05.2004
Koncept projektu
Výrobci mnoha typů telefonů a komunikátorů v dnešní době implementují J2ME technologie do svých produktů, přístroje studentů nejsou výjimkou. Vycházel jsem z reálných potřeb studentů, kteří mohou uvítat mít svůj osobní rozvrh a další podobné informace stále u sebe. Java MIDlet se mi jevil jako ideální prostředek k realizaci cíle, zvláště za předpokladu, že každé takové zařízení disponuje schopností komunikace prostřednictvím HTTP protokolu, což je garantováno specifikací jazyka Java 1.0. Existují-li tedy zařízení, která vlastní téměř každý a která jsou schopna fungovat jako hostitelský počítač pro aplikaci napsanou ve standardním programovacím jazyce a je-li tato aplikace schopna připojit se na server a stáhnout si data, nechybí již nic pro realizaci první vývojové fáze projektu.
Softwarové řešení Softwarové řešení vychází z uspořádání Jádra a Uživatelského prostředí. Jádro tvoří několik tříd, každá z nich přestavuje řešení jistého problému a musí plnit následující funkce : - Plně zabezpečovat vlastní komunikaci ze serverem prostřednictvím HTTP protokolu - Získaná data parsovat a rozdělit do datových struktur - Data ukládat maximálně nejefektivnějším způsobem Uživatelské prostředí musí : - Poskytovat maximálně možný komfort - Předpokládat použití v širokém spektru přístrojů - Používat pouze základní a ověřené třídy a komponenty
2
Staněk M.
ARACHNE I
30.05.2004
Grafické znázornění koceptu :
3
Staněk M.
ARACHNE I
30.05.2004
Realizace projektu
J2ME 1.0 aneb Java to Mobile Edition Edice J2ME je ze všech tří edic (J2ME, J2SE, J2EE) nejmenší, respektive je určena pro zařízení jejichž hardwarové možnosti jsou omezené, nikoliv však nedostačující pro solidní programování. J2ME se od standartní Javy samozřejmě liší tyto diference jsou však konstrukční povahy, nikoliv principialní, tzn, že není možné vetšinou přenést kód, ale je jisté, že systém proměnných, objektů, tříd a syntaxe je totožný.
HTTP protokol Slouží ke komunikaci se síťovým okolim, v případě J2ME 1.0 se omezuje pouze na Read/Write požadavky, propojování pomocí soketů, nebo incializace spojení ze strany vzdáleného serveru není možná. HTTP spojení zastřešuje veřejné rozhraní (public interface) HttpConnection (javax.microedition.io).
XML, XML parser XML je jednoduchý systém ukládání dat pomocí tagů a stromových struktur, je svým principem podobný protokolu HTML, ale podstatný rozdíl spočívá ve varíabilitě tagů. Jako základní nosič dat byl použit pro svoji jednoduchost, velkou míru přenesené informace, možnost jeho snadného generování na straně serveru a pro existenci dobrých, volně přístupných parserů pro edici J2ME a J2SE.
4
Staněk M.
ARACHNE I
30.05.2004
Příklad XML dokumentu (osobní rozvrh) : <TIMETABLE>
A03219 Stanek <JMENO>Martin <SEMESTR>L
MA2-2-CV-Cizek-UU110 PPA2-2-CV-Netrvalova-UU409 FYA1-2-CV-UNKNOWN-UF104 SMA2-2-CV-Tomiczek-UU306 DMA-2-CV-Holub-UU206 <STK01>PPA2-3-PR-UNKNOWN-UU108 <STK04>MA2-2-PR-Tomiczek-UP108 <STK04>DFT-2-PR-Demjancuk-VC302 <STK06>MATL-2-CV-Rohan-UL709
DMA-3-PR-Kaiser-EP130 ZKY-3-PR-UNKNOWN-UP108 MA2-2-PR-Tomiczek-EP130 FYA1-3-PR-UNKNOWN-UP108
Realizace projektu – Třídy aplikace
Třída Arachne (Arachne.java) Hlavní třída aplikace, je potomkem třídy MIDlet a implementuje rozhraní CommadListener. Zahrnuje metody startApp(), pauseApp(), destroyApp(), commandAction(), jako stěžejní metody třídy. Dále obsahuje metody pro vytváření aplikačního prostředí, jako je generování formulářů, obsluha přikazů, událostní metody a metody pro komunikaci s ostatními třídami.
Třída TimeTable (TimeTable.java) Třída zabezpečující stažení dat osobního rozvrhu studenta, předání stažených dat XML parseru a jejich následné uložení potažmo pozdější načtení z paměti telefonu. Obsahuje metody jejihž návratové hodnoty tvoří jméno studenta, semestr atd. …
5
Staněk M.
ARACHNE I
30.05.2004
Třída Subject (Subject.java) Je ADT objektem, tedy třídou jež představuje Abstraltní Datový Typ, tento ADTyp slouží pak k vytvoření dynamického pole do nejž se uloží data z naparsovaného XML dokumentu, nebo po načtení z paměti přístroje.
Třída RailwayGuide (RailwayGuide.java) Plní podobnou funkci jako třída TimeTable, s tím rozdílem, že zde se pracuje s daty jízdního řádu.
Třída TimeItem (TimeItem.java) ADTyp předtavující časový údaj v jízdním řádu, a článek linárního seznamu vznikajícího při parsovaní, či načítání dat.
Třída AboutCanvas (AboutCanvas.java) Potomek třídy Canvas, představuje plátno pro vykreslení údajů spojených s datumem kompilace MIDletu a údaji o programátorovi.
Třídy XMLElement a XMLParseException (XMLElement, XMLParseException) Jsou třídy XML parseru, nebyly pozměněny a jsou použity v souladu s podmínkami autora.
6
Staněk M.
ARACHNE I
30.05.2004
Uživatelské prostředí
Úvodní obrazovka :
Hlavní menu :
7
Staněk M.
Chybové hlášení :
ARACHNE I
30.05.2004
Aktualizace proběhla vpořádku :
8
Staněk M.
Předměty rozvrhu příslušný den :
ARACHNE I
30.05.2004
Detail předmětu :
9
Staněk M.
Nejbližší odjezdy linky :
ARACHNE I
30.05.2004
„About“ obrazovka :
10
Staněk M.
ARACHNE I
30.05.2004
Závěr Projekt Arachne je mým prvním programem v Javě vůbec, trpí tedy na některé začátečnické chyby, jako je občasné plýtvání pamětí, nebo občasné zbytečně složité bloky kódu, uvědomuji si, že každá z metod by si zasloužila hlubší komentář. Nicméně mi toto téma velmi dobře posloužilo k letmému seznámení se s problematikou Javy a konkrétně J2ME. Projekt by měl sloužit studentům, ať už na ZČU, nebo jiným uživatelům. Je označen, jako Arachne I, protože existuje koncepce umožňuící příhlašování na zkoušky, či objednávání si jidel v menze prostřednictvím mobilního telefonu.
11
Staněk M.
ARACHNE I
30.05.2004
Použitá literatura a ostatní zdroje : Stephen J. Chapman – Začíname programovat v jazyce Java Sun Microsystems – J2ME MID 1.0 specification, help file. Copyright (c) 1993-2001 Nokia – Nokia UI API ver. 1.0. Copyright (c) 2002
Technická specifikace programu : Jazyk : Sun Microsystems Java, J2ME edice. IDE : Xinox Jcreator LE Compilátor : Sun Microsystems Wirelles Toolkit Platforma : MIDP 1.0, Generic Verze : 1.0.0 Velikost programu : 51.1 kB Programový kód : 2595 řádků; 177,7 kB Jazyková lokalizace : Čeština Licence : freeware, opensource Uživatelská podpora : http://orpheus.wz.cz
[email protected]
Specifikace platformy na které byl software odlazen : Nokia 6610 NHL - 4U SW : 4.18 HW : 0640 MIDP 1.0 Dále testováno na N7210, N6310i.
12