Agenda. Johdanto Ydin Resurssien hallinta Aktiiviset oliot Dynaaminen muisti Sovellusmalli Laajennokset Yhteenveto

Samankaltaiset tiedostot
13. Luento: Esimerkki: Symbianympäristö. Tommi Mikkonen,

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

OHJ-4301 Sulautettu Ohjelmointi

Järjestelmäarkkitehtuuri (TK081702)

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

C# ja.net. Juha Järvensivu 2007

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Javan asennus ja ohjeita ongelmatilanteisiin

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Käyttöjärjestelmät: prosessit

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Web Services tietokantaohjelmoinnin perusteet

14. Poikkeukset 14.1

Web Service torilla tavataan!

PLA Mobiiliohjelmointi. Mika Saari

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Finwe KÄYTTÖOHJE.

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

PLA Mobiiliohjelmointi. Mika Saari

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

13. Esimerkki: Symbianympäristö

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

14. Poikkeukset 14.1

10. Luento: Kohti suurempia sulautettuja ohjelmistoja. Tommi Mikkonen,

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

11/20: Konepelti auki

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Digitaalisen median tekniikat. Luento 4: JavaScript

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

.NET ajoympäristö. Juha Järvensivu 2007

Android jatkaa kasvua

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Ohjelmoinnin peruskurssien laaja oppimäärä

CLOUDBACKUP TSM varmistusohjelmiston asennus

Asio Notification ( Asio N ) App

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Microsoft Dynamics CRM 4.0. Jani Liukkonen

Pedacode Pikaopas. Web-sovelluksen luominen

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Microsoft Visual Studio 2005

Aditro Tikon ostolaskujen käsittely versio SP1

Harjoitustyö: virtuaalikone

Graafisen käyttöliittymän ohjelmointi

PIKAOPAS NOKIA PC SUITE Copyright Nokia Oyj Kaikki oikeudet pidätetään

Ylläpitäjät, järjestelmäarkkitehdit ja muut, jotka huolehtivat VMwareinfrastruktuurin

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

HOJ J2EE & EJB & SOAP &...

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Qt kaikkialla?

Aditro Tikon ostolaskujen käsittely versio 6.2.0

RINNAKKAINEN OHJELMOINTI A,

Integrointi. Ohjelmistotekniikka kevät 2003

Skannaaminen RightFaxiin. Pääkäyttäjän opas

Taustaa. CGI-ohjelmointi

Microsoft Visual Studio 2005

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Pedacode Pikaopas. Web Service asiakasohjelman luominen

815338A Ohjelmointikielten periaatteet

812336A C++ -kielen perusteet,

Rajapinta (interface)

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

MARA-ALAN LIIKETOIMINNAN TIETOTURVALLISUUSUHAT

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

A TIETORAKENTEET JA ALGORITMIT

Ohjelmoinnin peruskurssien laaja oppimäärä

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

PIKAOPAS. Nokia Connectivity Cable Drivers -ohjainten asentaminen

JS-kehitys - yleiskuvaus. TIEA255 - Juho Vepsäläinen

Millainen osaaminen saa uudet yritykset siirtymään Tampereelle?

Älypuhelimet. Sisällysluettelo

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Asynkroninen ohjelmointi.net 4.5 versiolla

Helsingin Sanomat ipad

Sovellusarkkitehtuurit

10 Lock Lock-lause

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

T Henkilökohtainen harjoitus: FASTAXON

Tikon Ostolaskujenkäsittely versio SP1

Transkriptio:

13. Luento: Esimerkki: Symbian- ympäristö Juha-Matti Vanhatupa, juha.vanhatupa@tut.fi Kalvosetti alunperin: Tommi Mikkonen, tommi.mikkonen@tut.fi

Agenda Johdanto Ydin Resurssien hallinta Aktiiviset oliot Dynaaminen muisti Sovellusmalli Laajennokset Yhteenveto

Symbian OS johtava älypuhelinten käyttöjärjestelmä. Takana loistava tulevaisuus EPOC32 release 6 -> Symbian OS vuonna 2001 Edessä PureView 808 odotetaan myyntiin toukokuussa Vuonna 2010 lopussa Android ohitti Symbianin johtavana alustana 32,9 milj. vs 31 milj. myytyä laitetta (3kk).

Symbian OS Joidenkin mielestä kuuluisa siitä, että Symbian-ympäristössä on kelju ohjelmoida Joidenkin mielestä hieno siksi, että monet sulautetun ohjelmoinnin erikoistarpeet on huomioitu elegantisti Joidenkin mielestä edellä olevat seikat ovat sama asia ;-)

(Mikro-)Ydin Sovellus 1 Sovellus 2 DLL DLL DLL Resource Access API Käyttöjärjestelmän ydin (välittää viestejä) Resurssi 1 Resurssi 3 Resurssi 2

Resurssi ~ Palvelin Sopii sekä ohjelmisto- että laitteistoresursseille Joskus pohjalla laitteisto ja päällä kerroksittain ohjelmistoa Erilaiset palvelimet mahdollisia Käynnistetään bootissa, ei ajeta alas koskaan Käynnistetään kun sovellus käynnistyy, ei ajeta alas koskaan Käynnistetään kun sovellus käynnistyy, ajetaan alas kun sovellus lopettaa Yleensä eri prosesseissa, joskus optimoidaan kuitenkin usea palvelin samaan prosessiin Toteutettu kuitenkin omina säikeinään

Joitakin palvelimia File Server... Tiedostojärjestelmä Windows Server... GUI Database Server... Globaali data Comms Server... Sarjaportin käyttö Socket Server... Sokettiyhteys Telephony Server... Puhelinominaisuudet Messaging Server... SMS, MMS, EMail Camera Server... Kamera CONE Server... GUI:n ohjaus Media Server... Audio ja multimedia Font and Bitmap Server... Fontit ja bittikartat ja monia muita

Palvelimien toteutuksesta Palvelimien toteuttamiseksi tarvitaan kätevä tapa käsitellä viestejä (ja muita tapahtumia) Samalla ei saisi haaskata resursseja Symbian-ympäristössä toteutus perustuu aktiivisiin olioihin jotka sarjallistavat tapahtumien käsittelyn yhdellä säikeellä tehtäväksi

Tapahtumankäsittelystä Tapahtumat Tapahtumat Aktiivinen Vuorontaja (1 per säie) Säieperustaisia tapahtumankäsittelijöitä Tapahtumankäsittelijät (aktiivisia olioita)

Miten se toimii? Application Create and Install Active Scheduler 1 2 Create AO, issue request, add to Scheduler 4 Start Scheduler Active scheduler Wait for any req Call AO RunL Active object Activate request function set iactive true 6 3 Service provider Set istatus to Pending Service complete 5 Req completed, reset istatus Cleanup, terminate 7 RunL (redo/quit)

Nimeämisestä Class names start with C Kernel class names start with D Type names start with T Mixin class names start with M Enumerated class names start with E Resource names start with R Method names start with a capital letter Names of methods that can throw an exception end with L (or LC) Simple getters and setters reflect the name of the variable Instance variable names begin with i Argument names begin with a Constant names begin with K Automatic variable names begin with lower-case letters

Poikkeukset: Kotikutoinen toteutus TRAPD(error, BehaveL()); // try if (error!= KErrNone) // Exception handler { // catch if (error == KErrNotSupported) {...} if (error == KErrUnknown) {...} } User::Leave(KOutOfMemory); // throw

Poikkeukset ja muistinvaraus Ylimääritelty new: c = new (ELeave) CMyClass(); Toteutus: c = new CMyClass(); if (!c) User::Leave(KOutOfMemory); return c;

Entäpä pinosta varatut muuttujat? Before an exception Memory garbaging after an exception Stack Heap Stack Heap

Cleanup Stack Kirjanpitomekanismi Stack Heap Cleanup Stack

Cleanup Stackin käytöstä Kokonaan ohjelmoijan niskoilla Vain automaattisille (aliohjelmassa/metodissa luoduille) muuttujille CMyClass * c = new CMyClass(); CleanupStack::PushL(c)... c is used CleanupStack::Pop(); // c delete c; c = 0;

Kaksivaiherakentaminen Cleanup stack ei auta kun luodaan uusia muuttujia Idea: Suunnitellaan siten että varsinainen rakentaja saadaan aina suoritettua jos muistia riittää Muut ongelmalliset asiat tehdään vasta kun rakentaja on saatu ajettua ja Cleanup Stack täytettyä CData * id = new (ELeave) CData(256); CleanupStack::PushL(id); id->constructl();

Symbian-sovellusarkkitehtuuri UI Control Framework CApaDocument AppArch CApaApplication CCoeEnv CCoeControl CCoeAppUi CEikonEnv CEikAppUI CEikDocument CEikApplication Eikon/Uikon Application CExAppView CExAppUI CExDocument CExApplication

Kapabiliteetit (capabilities ) Symbianin turvallisuusmalli (Symbian 9.1 alkaen) Sovelluksille ja DLL:lle määritelty erikseen mitä resursseja niillä on oikeus käyttää. Sovelluksen lopulliset oikeudet lasketaan sen lataamien DLL:ien ja itse sovelluksen oikeuksista. Yritys käyttää resurssia ilman oikeuksia aiheuttaa virheen Malli helppo rikkoa väärinkäytöllä (ehkä tarvitaan tätäkin -> annetaan sekin -> kaikilla kaikki oikeudet) 20 eri kapabiliteettiä Esimerkki kapabiliteettejä : - ReadUserData (kontaktit, kalenteri, yms.) - NetworkServices (puhelut, email, SMS, yms.)

Java MIDP Sisäänrakennettu varmaankin kaikkiin Symbian-puhelimiin Ehkäpä maailman levinnein laajennettava ohjelmisto Sovellukset pyörivät Javan virtuaalikoneen sisällä. Ei pääsyä läheskään kaikkiin laitteen resursseihin (vs. Symbianin vapaus)

Java MIDP Sovelluksen vaatimukset: Peri midlet -luokka Toteuta metodit Rakentaja startapp destroyapp pauseapp Ensimmäinen sovellus laitteessa alle 30min, ja tämä sisältää ympäristön asennusajan

Python Ladattava laitteeseen itse Mahdollistaa Python-skriptien ajon puhelimessa Normaalit Python-kielen ominaisuudet Laitteiston/käyttöjärjestelmän ohjelmiston käyttö mahdollista Kamera Kontaktit Kalenteri Audio Bluetooth Näppärä keino lähteä liikkeelle omien sovellusten näppäilyssä

Web Runtime Lähinnä web-ohjelmien toteuttamiseen tarkoitettu ympäristö Toteutustekniikkana xhtml, CSS, JavaScript, Ajax, Sovellukset asennetaan, ei ladata lennosta webistä Samat rajoitukset kuin websovelluksissa yleensäkin, paitsi että toisin kuin selaimessa virtuaalikone voi käyttää joitakin laitteen tarjoamia palveluita Mashup-kehitys?

Qt for Symbian Qt Creator ja Carbide 32 Uusinta puhelinmallia Compatible with Qt 4.7 Symbian^3: Nokia Belle: 603, 700, 701, and the Nokia 808 PureView Symbian Anna: T7-00, 702T, 500, N8-00, E7-00, C7-00, C6-01, E6-00, X7-00, and Oro Symbian^3: C7 Astound S60 5th Edition: X6-00, C6-00, C5-03, N97, N97 mini, 5800 XpressMusic, 5530 XpressMusic, 5250, 5235, 5233, 5230, and 5228 Nokia N9 smartphone, Nokia N900, with PR1.3 and later Compatible with Qt 4.6 All of the above S60 3rd Edition: E72, E71, E66, E63, and E52

OPL, Organizer programmer language Psionin oma, jonkin verran Basicia muistuttava ohjelmointikieli Konsolisovellukset ja graafiset käyttöliittymät mahdollisia käyttökohteita Käytännössä ilmeisesti kuitenkin kuollut?

Yhteenveto Monet vähän erikoisemmalta kuulostavat Symbianin ominaisuudet muuttuvat tarkoituksenmukaisiksi kun ottaa huomioon sulautetun ohjelmoinnin erityispiirteet Toisaalta osasta erityispiirteistä aika on ajanut ohi Taustan ymmärtäminen yksinkertaistaa rajoitteiden huomiointia suunnittelutyössä Toisaalta hyvien ideoiden mukailu voi helpottaa jonkun muun ympäristön käyttöä vastaavalla tavalla Toiset tykkää, toiset ei