JDO Java Data Objects
|
|
- Riitta-Liisa Hänninen
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 hyväksymispäivä arvosana arvostelija JDO Java Data Objects Kasper J. Nora Helsinki 17. maaliskuuta 2003 Seminaari Relaatiotietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
2 ii JDO - Java Data Objects Kasper J. Nora Seminaari: Relaatiotietokannat nyt Tietojenkäsittelytieteen laitos Helsingin yliopisto 17. maaliskuuta 2003, 14 sivua Java Data Objects (JDO) -standardi tarjoaa ohjelmointirajapinnan Java-olioiden persistenssille. JDO:ta käyttämällä sovelluskehittäjät voivat kirjoittaa Java-kielellä sovelluksia, jotka suorittavat latauksia, talletuksia ja kyselyitä objekteille, joiden persistenssi on toteutettu sovelluskehittäjälle huomaamattomasti.
3 iii Sisältö 1 Johdanto JDO rakenne JDO ohjelmointirajapinta JDO Arkkitehtuuri JDO ja JDBC vertailua JDO käyttö JDO ilmentymän elinkaari JDO esimerkki Yhteenveto Lähteet... 14
4 1 1 Johdanto Java Data Objects (JDO) määrittely mahdollistaa läpinäkyvän persistenssin Javaolioille. JDO määrittelyn versio 1.0 on Javan kehitysprosessia ohjaavan Javayhteisöprosessin (Java Community Process JCP) huhtikuussa 2002 julkaisema. [Sun02] JDO:ta käyttämällä sovelluskehittäjät voivat keskittyä oliomallinnukseen, luokkien persistenssiominaisuudet kuvataan erilliseen xml-muotoiseen dokumenttiin. Erilaisia tietovarastoja (data store) käyttäviä JDO toteutuksia on olemassa, ne käyttävät pääosin relaatiotietokantoja, mutta myös oliotietokantoja ja tiedostorajapintaa hyödyntäviä on tarjolla. JDO toteutusta ja sen käyttämää tietovarastoa voidaan vaihtaa muuttamatta JDO rajapintaa hyödyntävän sovelluksen lähdekoodia tai uudelleen kääntämättä sovellusta. JDO:ssa käytettävän kyselykielen, Java Data Object Query Language (JDOQL), syntaksi on Java tyylinen erotuksena JDBC:n käyttämään SQLkyselykieleen. JDO:ta voidaan käyttää asiakas-palvelin mallin (client server) sekä Java Remote Method Invokations (RMI) arkkitehtuurien mukaisissa hallinnoimattomissa (non-managed) ympäristössä, missä sovelluspalvelinta ei ole käytössä. Toisaalta JDO voidaan integroida EJB-palvelualustan kanssa, joka tarjoaa hajautettuja objekteja ja transaktioita [Sun02]. 2 JDO rakenne 2.1 JDO ohjelmointirajapinta JDO ohjelmointirajapinta muodostuu kuudesta rajapinnasta, kahdesta luokasta sekä yhdeksästä poikkeuksesta, joista esitellään tässä keskeisimmät. javax.jdo.persistentmanagerfactory luo PersistenceManager ilmentymiä ja sallii myös sovelluskehittäjän muokata persistenssi-tason toimintaa, kuten
5 2 hallita yhteysaltaita ja muokata transaktioasetuksia ja vaikuttaa siten transaktioiden toimintaan. javax.jdo.persistencemanager on tärkein rajapinta JDO:ta käyttäville sovelluskomponenteille, se hoitaa persistenttien olioiden ilmentymien elinkaarta ja hallinnoi transaktioiden kulkua sekä välimuistia, jonne on talletettu persistenttien olioiden alustettuja ilmentymiä. PersistentManager toimii myös Query ilmentymien luojana. javax.jdo.persistencecapable rajapinnan on toteutettava jokaisen luokan, jonka ilmentymiä talletetaan JDO:n avulla. JDO muokkaajan (enhancer) ja XML kuvauksen avulla luokka saadaan toteuttamaan tämä rajapinta. javax.jdo.instancecallbacks rajapinta määrittää takaisinkutsumetodit persistoitaville olioille. Mikäli luokalla on esimerkiksi kenttiä, joita ei persistoida, mutta niiden arvot ovat riippuvaisia muista, persistoitavista kentistä, tarvitaan takaisinkutsumetodeita, jotka asettavat kyseisten kenttien arvot persistoitavan olion elinkaaren eri vaiheissa. Rajapintaan kuuluu metodit jdopostload(), jdopreclear(), jdopredelete(), jdoprestore().[sun02] javax.jdo.transaction rajapinnan toteuttavia ilmentymiä palauttaa PersistenceManager rajapinnan metodi currenttransaction(). Transaktoita voidaan ajaa joko paikallisena (non-managed environment) tai hajautettuna (managed environment). Transaktion päättyessä se joko sitoutuu tai peruuntuu. javax.jdo.extent luokan oliot edustavat tietyn luokan kaikkia tietovarastossa olevia persistoituja ilmentymiä, haluttaessa sisältäen myös kyseisen luokan aliluokat. PersistenceManager rajapinnalla on metodi getextent, joka palauttaa Extent olioita. [Kru02]
6 3 public Extent getextent(class persitentcapable, boolean subclasses) javax.jdo.query rajapintaa käytetään ilmentymien hakemiseen tietovastastosta annettujen kriteerien mukaan. PersistenceManager rajapinnalla on erilaisia kuormitettuja newquery() metodeita, jotka palauttavat Query objekteja [Bro02]. 2.2 JDO Arkkitehtuuri JDO on suunniteltu toimimaan kahdessa erilaisessa arkkitehtuuriympäristössä. Yksinkertaisimmillaan kaksitasorakenteen (two-tier) mukaisesti sovelluskomponentit kutsuvat suoraan JDO toteutuksen palveluita (Kuva 1). Käytettävissä voi olla useita toteutuksia, jotka on liitetty eri tietovarastoihin. Eri toteutuksien PersistenceManager rajapinnan toteuttavat luokat hallitsevat kyselyitä ja transaktiota sekä persistoitavien olioiden elinkaarta. (kts. 2.5) JDO toteutus piilottaa sovellukselta Java-olioiden ja tiedon talletustavan tietotyyppien ja suhteiden liittämiseen keskenään tietovarastoon. Näin sovelluskomponentit pääsevät käsiksi yhtenäisellä tavalla talletettuun tietoon. Hallinnoidussa ympäristössä (managed environment) JDO integroidaan J2EE sovelluspalvelimen kanssa ja sovellukset kutsuvat PersistentManager:ia edelleen samaan tapaan kuin edellä. Sovelluksilta piilotetaan sovelluspalvelimen ja JDO toteutuksen väliset sopimukset hajautetuista transaktiosta ja yhteyksien hallinnasta (Kuva 2). JDO käyttää J2EE Connector Architecture:n määrittelemiä resurssisovittimia, jotka toimivat J2EE-ympäristössä ulkoisten järjestelmien ja sovelluspalvelimen välisenä standardina yhdistämiskeinona. JDO:n PersistentManager voi käyttää joko toimittajan omia natiiveja tai kolmannen osapuolen toimittamia resurssisovittimia. Hajautetussa järjestelmässä javax.jdo.transaction luokan on toteuttava
7 4 rajapinta javax.transaction.synchronization, joka sallii välimuistin sisällön kirjoittamisen tietovarastoon loppuun saatettaessa transaktiota. [Sun02]. Lisäksi Sekä kaksitasorakenteessa, että hajautetussa ympäristössä sovelluskehittäjä keskittyy sovelluskomponenttien liiketoimita- ja esityslogiikan suunnitteluun joutumatta puuttumaan esimerkiksi tiettyyn tietovarastoon liittymiseen. Kuva 1 JDO hallinnoimattomassa ympäristössä [Kru02]
8 5 Kuva 2 Hajautettu järjestelmä [Ros02] 2.3 JDO ja JDBC vertailua JDBC ja JDO ovat kummatkin sovellusliittymiä (API), joiden kautta päästään Javasta käsiksi tietoon. Molemmat ovat erään tason abstraktioita häivyttäen tiedon tallennuksen yksityiskohtia pois. JDBC sovellusliittymää voidaan käyttää esimerkiksi tietämättä tietokannan fyysistä sijaintia tai esimerkiksi toimittajaa. JDO toteutuksen taustalla voi olla tiedon talletukseen käytössä relaatiotietokanta, oliotietokanta, tiedostojärjestelmä, xml-dokumentti tai joku muu. Jos kohteena on relaatiotietokanta, voidaan käyttää esimerkiksi JDBC yhteyttä taustalla. Se miten yhteys on toteutettu, piilotetaan sovelluskehittäjältä ja jätetään JDO toteutuksen tehtäväksi (kuva 3). [Bro02] JDBC:n näkymä tietokantaan on keskittynyt tietokannan relaatiomalliin, joka on hyvin kaukana oliokeskeistä näkymästä. Tämän johdosta joudutaan usein kirjoittamaan ylimääräinen sovelluskerros tietokannan ja sovelluksen välille huolehtimaan Java olioiden pilkkomisesta (decompose). Pilkkomisen yhteydessä olion ominaisuudet
9 6 paloitellaan pienemmiksi osiksi, siten että olio voidaan tallettaa relaatiotietokantaan. Vastaavasti on toteutettava pilkkomisen käänteinen operaatio, joka lukee tietokannan sarakkeita ja rivejä ja muodostaa niistä olioita. JDO:n näkymä tietokantaan on oliokeskeinen. [Bro02] Transientteja objekteja JVM Sovellus Persistenttejä objekteja Kirjoita muutokset huomaamatta takaisin tietokantaan Hae objektit tietokannasta virtuaalikoneeseen JDO toteutus Objekti/Relaatio sidonta JDBC:n kautta tai suora objektien persistointi Tietokanta Navigoiva / Kyselypohjainen Kuva 3 Läpinäkyvä persistenssi [McC02] 2.4 JDO käyttö JDO kehitysprosessi on hyvin yksinkertainen, persistoitavat luokat kirjoitetaan aivan normaalisti, ilman että niihin tarvitsee lisätä mitään erityistä toiminnallisuutta tai metodeja JDO:n takia. Tieto persistoitavista luokista kirjoitetaan XML kuvaukseen, joka sisältää meta-tietoa näistä luokista, kuten persistoitavien kenttien nimiä ja suhteita muihin luokkiin. Persistoitavalle luokalle ja sen kentille voidaan asettaa eri attribuutteja, jotka ohjaavat JDO:n toimintaa, kuten automaattisten tunnisteiden luomista tai kenttien viittaamien joukkojen hakemista. Valmis lähdekoodi annetaan kääntäjälle (kuva 4), joka tuottaa välikielisiä (bytecode) luokkia. Aiemmin tehty XML kuvaus persistoitavista luokista sekä käännetyt luokat
10 7 annetaan syötteeksi JDO muokkaajalle (JDO Enhancer), jonka toimintaa XML kuvaus ohjaa. Muokkaaja käsittelee välikielisiä (bytecode) käännettyjä luokkia ja tekee niihin tarpeellisia muutoksia, jonka jälkeen kaikki persistoitavat luokat toteuttavat rajapinnan PersistentCapable. Jotkin muokkaajat tekevät samalla tietokannan taulujen luontilauseet ja jotkin saattavat jopa luoda kantakaavan (database schema) suoraan tietokantaan. Jotkut toteutukset tarjoavat erillisen työkalun kantakaavan rakentamiseksi, joilla olioiden ja relaation välisen nimien sidonnan voi tehdä haluamallaan tavalla. Jotkut toteutuksen tekevät tarvittavat muutokset suoraan lähdekoodiin ennen kääntämistä. [TeL02] Luokka.java Java kääntäjä Luokka.class Luokka.class JDO muokkaaja XML kuvaus Java virtuaalikone Kuva 4 JDO muokkaaja [Bro02] 2.5 JDO ilmentymän elinkaari JDO ilmentymän eli PersistentCapable rajapinnan toteuttavan luokan ilmentymän elinkaarta hallitaan joukolla tiloja ja niiden välisiä tilasiirtymiä. Ilmentymä siirtyy olemassaolonsa aikana eri tilojen välillä kunnes se tulee poistonsa jälkeen Javan virtuaalikoneen (JVM) roskienkerääjän syömäksi. Näihin tilasiirtymiin vaikuttaa ilmentymään suoraan sekä JDO:n PersistentManager luokan kautta tehdyt operaatiot. Toisinaan ilmentymä saattaa olla ristiriidassa persistentin versionsa kanssa jo
11 8 transaktion alusta lähtien, tällöin ilmentymä on merkittävä likaiseksi (dirty). Esimerkiksi transaktion aikana poistetut, persistoidut tai muokatut ilmentyvät ovat likaisia kunnes transaktio sitoutuu tai peruuttaa. Seuraavaksi esitellään joitakin JDO:n tiloja, tarkimpia yksityiskohtia on jätetty pois. Kuvassa 5 on kuvattu tiloja, sekä joitakin tilasiirtymiä niiden välillä, tähdellä merkityt tilat ovat JDO määritelmässä valinnaisia, toimittajan ei välttämättä tarvitse toteuttaa niitä. [Sun02] transient-clean * Read-ok persistentclean transient-dirty * persistent-new persistentnontransactional * hollow transient Write-ok persistent-dirty persistent-newdeleted persistentdeleted Transient Persistent Kuva 5 JDO ilmentymän tilat [Sun02] JDO ilmentymät ovat aina joko persistenttejä tai transientteja. Ilmentymä on newoperaattorilla tehdyn alustuksen jälkeen tilapäisessä eli transient tilassa, kunnes se annetaan JDO:n käsiteltäväksi. Transientit ilmentymät ovat olemassa vain niin kauan kuin niihin on viittauksia ja Javan virtuaalikone on käynnissä. Transientille ilmentymälle tehtyjä muutoksia ei talleteta tietovarastoon, ennen kuin se annetaan PersistentManagerin metodille makepersistent() parametrina. Tällöin ilmentymä siirtyy persistent-new tilaan ja PersistentManager huolehtii sen tilasiirtymistä, tallettaa ilmentymän arvoja mahdollista peruutusta varten ja haluttaessa asettaa ilmentymälle JDO identiteetin. Persistoidun ilmentymän tiedot sijaitsevat loogisesti tietovarastossa,
12 9 jos ilmentymän tietoja muutetaan, päivittyvät ne myös tietovarastoon, ellei transaktio peruunnu. Saman transaktion aikana luodut ja persistoidut ja sittemmin poistetut ilmentymät siirtyvät tilaan persistent-new-deleted. Ilmentymät, joiden tietoja on persistoitu tietovarastoon, mutta joiden kenttiä ei ole luettu sieltä, kuuluvat tilaan hollow. JDO toteutuksen sallitaan tehdä tilasiirtymä pois tilasta hollow milloin vain, ikään kuin kenttä olisi luettu, siten tila hollow saattaa olla sovellukselle näkymätön [Sun02]. Hollow tilassa olevan JDO identiteetti on ladattu, mutta ne kentät jotka eivät ole sen avainkenttiä ei ole ladattu, ne täytyykin lukea aina uudelleen kannasta transaktion käsitellessä ilmentymää. JDO identiteetillä onkin merkittävä osuus suorituskyvyn kannalta [Sha02]. Mikäli hollow tilan objekteihin ei ole vahvoja viittauksia, ne saattavat joutua roskienkerääjän poistamaksi. Persistent-clean, persistent-dirty ja persistent-new ilmentymät tulevat hollow tilaan sitoutumisen myötä. Hollow tilassa persistenttien ilmentymien yksilöllisyydestä huolehditaan transaktioiden välillä. [Sha02] JDO ilmentymät, joilla on persistoitua tietoa tietovarastossa ja joiden arvot on luettu suoritettavan transaktion aikana, muttei muutettu, kuuluvat tilaan persistent-clean. Mikäli ilmentymällä on persistoitua tietoa, jota on suoritettavan transaktion aikana muokattu, ilmentymän tila on persistent-dirty. Kun transaktio lopulta sitoutuu tai peruuntuu, seuraavaan tilasiirtymään vaikuttaa suoritetulle transaktiolle annetut parametrit; esimerkiksi sitoutumisen yhteydessä voidaan haluttaessa joko siirtyä tilaan hollow tai tilaan persistent-nontransactional, jolloin ilmentymä säilytetään välimuistissa transaktion loputtua. Ilmentymät, joilla on persitoitua tietoa ja jotka on transaktion aikana poistettu, kuuluvat tilaan persistent-deleted. Transaktion lopulta sitoutuessa ilmentymän tilaksi tulee transient.
13 10 Seuraavaksi esimerkki tilasiirtymistä yhden transaktion aikana tehdyn ilmentymän luomisen, persistoimisen ja poistamisen yhteydessä (Kuva 6). Kuva 6 Ilmentymän tilasiirtymät käsittelyn aikanan [Sun02] Person p = new Person() // tilassa transient Transaction t = pm.currenttransaction(); t.begin(); pm.makepersistent(p); // siirtymä tilaan persistent-new pm.deletepersistent(p) // tilaan persistent-new-deleted t.commit(); // tilaan transient [Sun02] 3 JDO esimerkki Seuraavaksi esitellään JDO käyttöesimerkki: Luokka Työntekijä:
14 11 public class Työntekijä{ private String nimi; private int ikä; private float palkka; private Työntekijä esimies; private Osasto osasto; public Työntekijä (String nimi, String ikä){ this.nimi = nimi; this.ikä = ikä; } public String getname(){ return nimi;} public Osasto getosasto() {return osasto;} public void setosasto(osasto o){osasto = o;} } Luokka Osasto: public class Osasto{ private String nimi; private Set työntekijät = new HashSet(); public Osasto(String nimi){this.nimi = nimi;} public String getnimi(){return nimi;} public void addtyöntekijä(työntekijä t){ t.setosasto(this); työntekijät.add(t); } } XML kuvaus Persistoitavista luokista kenttineen: <?xml version= 1.0?> <!DOCTYPE jdo SYSTEM jdo.dtd > <jdo> <package name = com.mycompany.example /> <class name= Työntekijä /> <class name= Osasto > <field name= työntekijä > <collection element-type= Työntekijä /> </field> </class> </jdo> Yhteydenotto PersistenManageriin: PersistentManagerFactory factory = new MyVendorPersistentManagerFactory(); factory.setconnectionurl(url) PersistentManger pm = factory.getpersistentmanager();
15 12 Suoritetaan kysely osastoihin suodinta käyttäen: Transaction tx = pm.currenttransaction(); tx.begin(); Extent osastot = pm.getextent(department.class); String suodin = nimi = osastonimi ; Query kysely = pm.newquery(osastot, suodin); kysely.declareparameters( String osastonimi ); Collection tulokset = pm.execute( hallinto ); Osasto osasto = (Department)tulokset.iterator().next(); Luo uusi työntekijä ja lisää se osastoon: Työntekijä työläinen = new Työntekijä( Maija Malli, 1000)); osasto.addtyöntekijä(työläinen); tx.commit(); 4 Yhteenveto JDO tarjoaa rajapinnan persistoitujen olioiden käsittelyyn Java sovelluksista, käyttäen transaktionaalisia prosesseja ja käyttäen rajapintaa, jonka käyttämää tietovarastoa voi vaihtaa, joutumatta muokkaamaan lähdekoodia. JDO:ta käyttävien sovellusten kirjoittaminen, testaaminen ja ylläpito helpottuu, sillä se käyttää oliokeskeistä tietomallia ja sovelluksen toiminta on yksinkertaisempaa kuin esimerkiksi JDBC:tä käytettäessä. JDO käytön arvioidaankin lyhentävän sovelluksen kehitysaikaa noin 20 prosentilla [Sha02]. JDO:ta voidaan pitää vaihtoehtona JDBC:lle, mutta se ei korvaa sitä kokonaan. Mikäli tarvitaan tietokantakohtaista koodia on JDBC parempi valinta [Big01]. Samoin, jos olioiden ja relaation nimien välinen sidonta (mapping) on liian raskasta suorituskyvyn kannalta verrattuna vastaavaan JDBC toteutukseen. JDO toteutuksissa on tätä sidontaa pyritty tehostamaan käyttämällä välimuistia ja parempaa resurssien hallintaa, mikä taas tekee JDO:sta JDBC totetuksia vakaamman.
16 13 Lukuisia JDO toimittajia on jo olemassa, kuten SolarMetric Kodo JDO, LIBeLIS LiDO, ObjectFrontierin FrontierSuite for JDO ja lisäksi avoimen lähdekoodin projekteja, kuten Jakarta OJB, Triactive JDO ja XORM, jotka eivät kaikki ole täysin toteuttaneet JDO määrittelyä.
17 14 Lähteet Alm02 Almaer D., Using Java Data Objects, O Reilly, February [ ] Big01 Biggs, M., JDO streamlines data access in Java, November [ ] Bro02 Brown, J., An introduction to Java Data Objects, Object Computing, Inc. June [ ] Kru02 Kruszelnicki, J., Persist data with Java Data Objects, March [ ] McC02 McCammon K., Database Access with Java Data Objects (JDO), Versant Corporation [ ] Ros02 Roos, R., Java Data Objects, Addison-Wesley, November Shar02 Sharley, J., Java Data Objects, Cognitive Machines Pty Ltd, November [ ] Sun02 Java Data Objects Specification 1.0 Sun Microsystems, March [ ] TeL02 Telem Y., Litvak S., Coming out of the JDO closet. Java Developers Journal 7, 2 (2002).
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
LisätiedotAction Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
LisätiedotHOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10
HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotYlläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
LisätiedotOsio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely
Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva
LisätiedotHELIA 1 (21) Outi Virkki Tietokantasuunnittelu
HELIA 1 (21) Luento 4.1 Oliot ja Relaatiot... 2 Relaatiomalli... 2 Oliomalli... 2 Termejä... 4 Yhteensovituksen 3 tapaa... 5 1) Oliot relaatioina / tauluina ja RDBMS... 6 Olioluokka... 7 Olion identiteetti...
LisätiedotHSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32
HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
Lisätiedoton ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä
LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen
LisätiedotTietokantaohjelmoinnin tekniikkoja Java-kielellä
Tietokantaohjelmoinnin tekniikkoja Java-kielellä Ville Kuokkanen Helsinki 6. helmikuuta 2003 Relaatiotietokannat nyt seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i Tietokantaohjelmoinnin
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
LisätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
LisätiedotTietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä
hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotOhjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
LisätiedotLiite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu
Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu
LisätiedotHarjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
LisätiedotSovellusarkkitehtuurit
HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit
LisätiedotMetodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Lisätiedot2. Olio-ohjelmoinista lyhyesti 2.1
2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin
LisätiedotJärjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
LisätiedotJava kahdessa tunnissa. Jyry Suvilehto
Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,
LisätiedotJohdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)
HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n
LisätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
LisätiedotAndroid ohjelmointi. Mobiiliohjelmointi 2-3T5245
Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
LisätiedotOlio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin
Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi
Lisätiedot1. Mitä tehdään ensiksi?
1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotTietokanta (database)
Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään
Lisätiedot18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotSisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotOliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT
Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja
LisätiedotArkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14
Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotKOHDELUOKAN MÄÄRITTELY
KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona
LisätiedotUML ja luokkien väliset suhteet
UML ja luokkien väliset suhteet -Luokan kuvaaminen UML-tekniikalla -Yhteyssuhde ja koostumussuhde 1 Luokan kuvaaminen UML-tekniikalla : Luokka - attribuutti1 : tietotyyppi # attribuutti2 : tietotyyppi
LisätiedotIntegrointi. Ohjelmistotekniikka kevät 2003
Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri
LisätiedotJypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
LisätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
LisätiedotJava-API, rajapinnat, poikkeukset, UML,...
Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotOliot viestivät metodeja kutsuen
6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen
LisätiedotInterfacing Product Data Management System
Interfacing Product Data Management System Tekijä: Työn valvoja: Mats Kuivalainen Timo Korhonen Esitelmän sisältö Työn suorituspaikka - Ideal Product Data Oy Käsitteitä Työn tavoitteet Työn tulokset 1/5
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
LisätiedotA274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen
LisätiedotTietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.
Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
LisätiedotHaaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:
Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -
LisätiedotOhjelmointi 1 / 2009 syksy Tentti / 18.12
Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN
LisätiedotLuokat ja oliot. Ville Sundberg
Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi
LisätiedotTenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
LisätiedotJärjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä
Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri
LisätiedotMaiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative
LisätiedotValppaan asennus- ja käyttöohje
Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
LisätiedotKompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
LisätiedotCase TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000
Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->
LisätiedotTIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI
TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta
LisätiedotHOJ J2EE & EJB & SOAP &...
HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
LisätiedotWritten by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36
!!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat
LisätiedotJavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko
JavaRMI 1 JAVA RMI Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko JavaRMI 2 Table of Contents...1 JAVA RMI...1 Yleistä...4 Arkkitehtuuri...5 Java RMI kerrosarkkitehtuuri...5
LisätiedotOhjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
LisätiedotHSMT J2EE & EJB & SOAP &...
HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
LisätiedotKehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy
Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus 0.1 15.1.2005 Timo Sallinen Ensimmäinen versio 0.2 26.1.2005 Timo Sallinen Täydenetty pohjaa 0.3 06.02.2005 Mika Suvanto Pieniä täydennyksiä ja oikolukua
LisätiedotVirtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).
1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
LisätiedotTietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta
Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Jouni Huotari Martti Laiho (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta) opintokokonaisuutta)
LisätiedotEJB-komponenttien tietokantakytkentä
hyväksymispäivä arvosana arvostelija EJB-komponenttien tietokantakytkentä Antti Harkola Helsinki 17. huhtikuuta 2003 Relaatiotietokannat nyt seminaari Helsingin yliopisto Tietojenkäsittelytieteen laitos
LisätiedotYksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
Lisätiedot582104 Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta
582104 Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta 1 Tietojen pysyvyys liiketoiminnan edellytys Tällä kurssilla on keskitytty oliomenetelmiä hyödyntävään ohjelmistojen mallintamiseen
Lisätiedotprivate TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;
Tietorakenteet, laskuharjoitus 7, ratkaisuja 1. Opiskelijarekisteri-luokka saadaan toteutetuksi käyttämällä kahta tasapainotettua binäärihakupuuta. Toisen binäärihakupuun avaimina pidetään opiskelijoiden
Lisätiedot4. Olio-ohjelmoinista lyhyesti 4.1
4. Olio-ohjelmoinista lyhyesti 4.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 4.2 Yleistä Olio-ohjelmointia käsitellään hyvin
LisätiedotTaulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu
Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Pakkaukset ja määreet Toisiinsa liittyvät luokkatiedostot voidaan koota pakkauksiksi. Luo hierarkiaa ja järjestystä ohjelmistotuotteeseen.
Lisätiedot2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
LisätiedotÄlysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi
Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotLuokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
LisätiedotDart. Ryhmä 38. Ville Tahvanainen. Juha Häkli
Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse
Lisätiedot812336A C++ -kielen perusteet, 21.8.2010
812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys
LisätiedotOhjelmointi 2 / 2010 Välikoe / 26.3
Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)
Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa
Lisätiedot