Arkkitehtuuri. Ylätason sovellusarkkitehtuuri
|
|
- Sami Alanen
- 5 vuotta sitten
- Katselukertoja:
Transkriptio
1 Arkkitehtuuri Termieditorin käyttö vaatii kirjautumisen. Peruskäyttäjälle myönnetään erikseen aineistokohtaisia luku- ja muokkausoikeuksia. Järjestelmän ylläpitäjä (admin) saa ylläpitää kaikkia aineistoja. Järjestelmän pääkäyttäjä (superuser) saa lisäksi ylläpitää käyttäjätietoja. Termieditoria hyödynnetään web-käyttöliittymän lisäksi sovellusrajapintojen kautta muiden järjestelmien tietovarastona. Ylätason sovellusarkkitehtuuri Editori jakautuu karkeasti käyttöliittymäkomponenttiin ja taustajärjestelmään. Taustajärjestelmä hyödyntää keskeisinä resursseina relaatiotietokantaa ja kokoteksti-indeksiä.
2 Ydin ja rajapinnat Termed-api sisältää Termieditorin keskeisen toimintalogiikan ja tarjoaa sovellusrajapinnat tietojen käsittelyyn. Termed API vastaa tietojen oikeellisuudesta, tallennuksesta, hauista, käyttöoikeuksista jne. Tietosisältö tallennetaan relaatiotietokantaan (esim. Postgresql). Hakujen nopeuttamiseksi tiedot ineksoidaan Lucene-indeksiin. Lucene säilyttää indeksin tiedot tiedostoissa. Taustajärjestelmällä ei itsessään ole graafista käyttöliittymää vaan se on käytettävissä ainoastaan HTTP/REST-rajapintojen kautta. Rajapintaan tunnistautumismenetelmänä on HTTP-Basic. APIa voi ajaa suoraan esimerkiksi Spring Bootin sulautetulla Tomcat-palvelimella. Seuraavassa kuvassa on esitelty API-toteutuksessa käytetyt keskeiset komponentit. Service-komponentit hoitavat merkittävimmän työn. Controller-oliot vastaavat HTTP-pyyntöjen ohjaamisesta palvelukerrokselle.
3 Sovelluksen kerrokset Seuraavassa on esitelty tyypillisiä sovelluksessa käytettyjä kerroksia ylhäältä alas (HTTP-pyynnöstä tietokantakyselyihin). Message converter (AbstractHttpMessageConverter<T>) Erilaisia pyyntöjen muuntajia kutsutaan automaattisesti (Spring-kehyksen toimesta) ennen kuin kutsut tulevat kontrolleri-kerroksen käsiteltäviksi. Muutajat saattavat esimerkiksi sarjallistaa JSON- tai XML-sanomat Javan domain-olioiksi. Controller Kontrolleri-kerroksessa käsitellään HTTP-pyynnöt ja ohjataan niiden tarvitsemat haku- ja muokkausoperaatiot palvelukerrokselle. Service (Service<K, V>) Palvelun käsite on keskeisin abstraktiotaso. Palveluiden on tarkoitus kutsua ainoastaan toisia palveluita ja kaikki muokkausoperaatiot tulisi tehdä palvelukerroksen kautta. Joissakin yhteyksissä tästä kokonaisuudesta käytetään myös komponentin nimeä. Palvelun alapuolella olevat abstraktiot on tarkoitus olla puhtaasti palvelun sisäiseen käyttöön. Palvelu voi itsessään koostua useista kerroksista (esim. validointi, autentikointi, autorisointi, lokitus jne.).
4 Repository (AbstractRepository<K, V>) Repositorion rajapinta on Termieditorissa sama kuin palvelun, mutta repositoriolla tässä tarkoitetaan palvelua, joka hoitaa nimenomaan olioiden tallentamisen hyödyntäen alempaa Dao-kerrosta. Jos tiedonhakuolion (dao) ajatellaan karkeasti vastaavan yhtä tietokantataulua, yhden repositorion voi ajatella vastaavan yhtä tallennettavaa kokonaisuutta, joka voi koostua useista tauluista. Dao (Dao<K, V>) Termieditorissa tällä tasolla valvotaan tietokantatauluun liittyvät käyttöoikeudet. Dao-kerroksessa voidaan toteuttaa myös esim. auditointia. Sallitut pyynnöt ohjataan alimmalle "system dao" -kerrokselle. System dao (SystemDao<K, V>) Järjestelmä-dao abstrahoi yhden tietokantataulun. Tällä tasolla voidaan toteuttaa myös välimuisteja ja lokitusta. Esimerkki Service-oliosta (NodeService) Verkon solmujen eli varsinaisen tietosisällön käsittelystä vastaa NodeService-palvelu. Palvelu koostuu useista luokista, joista tärkeimmät on kuvattu seuraavassa kaaviossa harmaalle pohjalle. Keskeinen käytetty suunnittelumalli on delegointi. Kukin kerros toteuttaa yhteisen palvelu-rajapinnan (Service<K, V>), mutta tekee vain yhden rajatun toiminnon ja ohjaa pyynnön eteenpäin.
5 Kooditason esimerkki Service-oliosta (UserService) Seuraavassa esimerkissä on konfiguroitu "user service" -palvelu. Kommenteilla on kuvattu kunkin kerroksen merkitys. package fi.thl.termed.service.user; public class UserServiceConfiguration { // luodaan palvelu käyttäjätietojen
6 public Service<String, User> userservice( DataSource datasource, PlatformTransactionManager transactionmanager) { // Geneerisen SystemDao<K, V> rajapinnan toteuttava userdao koostuu: // 1) sisemmästä varsinaiset tietokantakyselyt tekevästä JdbcUserDao:sta // 2) ulommasta geneerisestä SystemDao-välimuistista SystemDao<String, User> userdao = new CachedSystemDao<>( new JdbcUserDao(dataSource)); // Vastaavalla tavalla määritellään käyttäjään liittyvien roolien tallennus // tietokantaan. SystemDao<UserGraphRole, Empty> usergraphroledao = new CachedSystemDao<>( new JdbcUserGraphRoleDao(dataSource)); // Käyttöoikeuksia valvoo PermissionEvaluator. PermissionEvaluator kohdistuu objektin // avaimeen (Dao:n ensimmäinen geneerinen parametri), joka tässä on käyttäjän nimi. // Nimeä ei kuitenkaan seuraavassa oteta huomioon sillä ainoastaan pyynnön tekevän // käyttäjän rooli tarkastetaan - sen tulee olla SUPERUSER. PermissionEvaluator<String> userpermissionevaluator = (u, o, p) -> u.getapprole() == AppRole.SUPERUSER; // Myös käyttäjään liittyvät roolit autorisoidaan siten, että roolien lukuihin ja // muutoksiin vaaditaan SUPERUSER-tason käyttäjä. PermissionEvaluator<UserGraphRole> usergraphrolepermissionevaluator = (u, o, p) -> u.getapprole() == AppRole.SUPERUSER; // Seuraavassa koostetaan UserRepository edellä määritellyistä SystemDao- ja // PermissionEvaluator-toteutuksista. Service<String, User> service = // UserRepository koordinoi käyttäjäolion lukemisen, tallennuksen ja poiston // kutsumalla kahta Dao-toteutusta. User-olio tallennetaan siis kahteen tietokanta- // tauluun ja UserRepository abstrahoi tietokannan. new UserRepository( // SystemDao kääritään geneerisen AuthorizedDao-toteutuksen taakse. // AuthorizedDao tarkistaa käyttöoikudet annetun PermissionEvaluatorin avulla. // Viimeinen THROW-parametri kertoo, että käyttöoikeuksien puuttuessa heitetään // poikkeus. new AuthorizedDao<>(userDao, userpermissionevaluator, THROW), new AuthorizedDao<>(userGraphRoleDao, usergraphrolepermissionevaluator, THROW));
7 // lopuksi palvelu kääritään vielä transaktiot toteuttavaan geneeriseen // Service-toteutukseen. service = new TransactionalService<>(service, transactionmanager); // Valmiin em. paloista koostetun servicen toteutus kulkee kutsujan näkökulmasta // seuraavasti: // 1) avataan transaktio (TransactionalService) // 2) ohjataan kunkin olion ja "osaolion" CRUD-operaatio oikealle Dao:lle (UserRepository) // 3) autorisoidaan pyyntö (AuthorizedDao) // 4) tarkistetaan saadaankö välimuistista lukuoperaation vastaus tai tarvitseeko // välimuistia nollata muutosoperaation seurauksena (CachedSystemDao) // 5) jos ei saatu vastausta välim., suoritetaan tarvittava tietokantakysely (Jdbc*Dao), // palataan takaisin // 6) jos suoritettiin tietokantakysely, tallennetaan tuore vastaus välimuistiin // seuraavia kyselyitä varten (CachedSystemDao, vastinpari kohdalle 4) // 7) jos suoritettiin lukuoperaatio, tarkistetaan saako haetun tuloksen palauttaa // käyttäjälle (AuthorizedDao, vastinpari kohdalle 3) // 8) jos suoritettiin lukuoperaatio, koostetaan haetut osaoliot yhdeksi // (UserRepository, vastinpari kohdalle 2) // 8) suljetaan transaktio (TransactionalService, vastinpari kohdalle 1) return service;
8 } } Edellisessä esimerkissä varsinaista konkreettista toteutusta on luokissa: JdbcUserDao (tekee tietokantakyselyt users-tauluun) JdbcUserGraphRoleDao (tekee tietokantakyselyt user_graph_role-tauluun) PermissionEvaluator<UserGraphRole> (toteutus yhden rivin lambdana) PermissionEvaluator<String> (toteutus niin ikään yhden rivin lambdana) UserRepository (pilkkoo ja koostaa User-oliota käyttävät pyynnöt dao-kerrokselle) Loput luokat ovat geneerisiä ja datasta riippumattomia. Em. esimerkissä niillä siis hoidettiin transaktiot, käyttöoikeuksien tarkistukset sekä välimuistitukset. Toinen tyypillinen lähestymistapa on hoitaa nämä näkökulmat Javan annotaatioiden avulla. Sovelluskehys käsittelee Motivaationa Termieditorissa käytetyssä lähestymistavassa on selkeys, ennakoitavuus ja testattavuus sekä pysytteleminen "perus" Java-koodissa. Ei tarvita monimutkaista reflektioon pohjautuvaa tyyppitarkistukset ohittavaa annotaatioiden prosessointia, suoritusjärjestys ei ole epäselvä ja kun kerroksia tarvitaan lisää (esim. lokitus, validoinnit), niitä on helppo lisätä mallin mukaisesti.
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ätiedotwww.solita.fi solita@solita.fi
www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen
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ä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ätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
Lisätiedotin condition monitoring
Etäteknologioiden automaatiosovellukset Using e-speak e in condition monitoring tutkija professori Hannu Koivisto Sisältö Tausta Globaali kunnonvalvontajärjestelmä E-speak globaalissa kunnonvalvontajärjestelmässä
LisätiedotKoodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat
Koodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat Yhteinen tiedon hallinta (YTI) -hanke Antti Tohmo antti.tohmo@gofore.com Kansallinen koodistoeditori -työpaja 6.9.2017
Lisätiedot582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen
LisätiedotOhjelmistotuotanto. Luento 9 23.4.2012
Ohjelmistotuotanto Luento 9 23.4.2012 Lisää suunnittelumalleja Olion rikastaminen dekoraattorilla Joskus eteen tulee tarve lisätä olioon jotain ekstraominaisuuksia, pitäen kuitenkin olio sellaisena että
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ätiedotPaikkatiedon infrastruktuurin hyödyntäminen
Paikkatiedon infrastruktuurin hyödyntäminen Mikko Viitala Sisältö WMS rajapintapalvelun toteuttaminen Teklan sovelluksilla Katselupalvelujen hyödyntäminen Teklan sovelluksissa WFS suorasaantipalvelun toteuttaminen
Lisätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotOhjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
Lisätiedot14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
LisätiedotSisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
LisätiedotAJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
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ä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ätiedotVerkkopalvelut ja portaalitryhmän
Verkkopalvelut ja portaalitryhmän kokous Jukka Vänttinen Yleistä Lähtökohtana Teklan asiakkaiden keräämien tietojen julkaisu rajapintojen avulla Kaikilla kunta-asiakkailla on lisenssit ja toiminnallisuus
LisätiedotHY:n alustava ehdotus käyttäjähallintotuotteesta
HY:n alustava ehdotus käyttäjähallintotuotteesta (jota sovellettaisiin Atikiin) Versio 1.0 / 21.5.2008 Ismo Aulaskari HY siis aikoo markkinoida pakettia joihin kuuluisi HY:n konesalissaan ylläpitämä, varmuuskopioitu
LisätiedotTiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas
Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä
LisätiedotOhjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä
LisätiedotIlmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit
Ilmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit Pertti Koskela Kasvatuksen ja koulutuksen toimiala Tietohallinto, Ict-kehityspalvelut Mukana : Espoon työväenopisto, Esbo
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ä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ä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ätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
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ä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ätiedotT Henkilökohtainen harjoitus: FASTAXON
T-76.115 Henkilökohtainen harjoitus: FASTAXON Suunnittelumallit Group: Muuntaja Pentti Vänskä 52572W 2 1. Toteutus Tämä henkilökohtainen harjoitustyö käsitteli suunnittelumallien (Design Patterns) käyttöä
LisätiedotAlkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,
LisätiedotVYPEdit verkkosivualusta SVY-toimijoille
VYPEdit verkkosivualusta SVY-toimijoille www.vy.fi/admin/vypedit TieVie 26.8.2005 Hely Lahtinen VypEdit sisällönhallintajärjestelmällä voi www.vy.fi/admin/vypedit tuottaa ja ylläpitää www-sivustoja SVY:n
LisätiedotREST an idealistic model or a realistic solution?
REST an idealistic model or a realistic solution? 17.10.2006 Jari Aarniala jari.aarniala@cs.helsinki.fi Johdanto Representational State Transfer, eli REST Arkkitehtuurinen tyyli hajautetuille (hypermedia)järjestelmille
LisätiedotKANSALLINEN MAASTOTIETOKANTA
KANSALLINEN MAASTOTIETOKANTA KMTK-3D/su Yksittäisen kohteen rikastaminen pistepilvigeometrialla 18.12.2018 1 1. Yleistä Selvityksessä selvitettiin PgPointCloud-laajennoksen soveltuvuutta yksittäisten kohteiden
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ä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ätiedotPätevyyttä haettava oikeustulkkirekisterilautakunnalta. Edellytyksenä (lakiesityksestä lainaus):
Oikeustulkkirekisterin karkea speksi: Rekisteriin merkittävät tiedot: tulkin nimi henkilötunnus osoite Osoitetietojen lisäksi oikeustulkkirekisteriin voidaan tulkin pyynnöstä merkitä sähköpostiosoite,
LisätiedotYlläpitodokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti NJC2 Helsinki 11.5.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Eero Anttila Olli
LisätiedotKooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.
17. Kooste 17.1 Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa A on B:n osa tai A kuuluu B:hen. Koostesuhteessa olevat luokat eivät yleensä ole periytymissuhteessa. Kooste
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite
2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto
LisätiedotHY:n alustava ehdotus käyttäjähallintotuotteesta
HY:n alustava ehdotus käyttäjähallintotuotteesta (jota sovellettaisiin Atikiin) Versio 1.2 / 26.8.2008 Ismo Aulaskari HY siis aikoo markkinoida pakettia joihin kuuluisi HY:n konesalissaan ylläpitämä, varmuuskopioitu
LisätiedotJoskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.
Moniperintä 2 Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Oliomallinnus TITE.2040 Hannu K. Niinimäki 1 Delegointi 1 Moniperinnän toteuttaminen
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ätiedotYhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?
Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö
Lisätiedot16. Javan omat luokat 16.1
16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat
LisätiedotPeppi - Koulutuksen suunnittelijan ja opettajan palvelut. Tekninen vaatimusmäärittely
Peppi - Koulutuksen suunnittelijan ja opettajan palvelut Versiohistoria Versio Päiväys Tekijä Selite 0.1 9.12.2010 Jaakko Rannila Runko 0.2 13.12.2010 Projektiryhmä 1. päivän tuotos 0.3 14.12.2010 Projektiryhmä
LisätiedotTiedonsiirto- ja rajapintastandardit
Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen
LisätiedotJWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
LisätiedotKADA (Drupal 7) migraatio uuteen (versioon) webiin
KADA (Drupal 7) migraatio uuteen (versioon) webiin Hallittu elinkaaren siirto suoran migraation sijaan Mikko Malmgren & Antti Tuppurainen Mikko Malmgren / Kuntaliitto Antti Tuppurainen / Industry62 @mikko_malmgren
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ä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ätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
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ätiedotOhjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1
Ohjelmistojen mallintaminen Tietovuokaaviot 3.11.2008 Harri Laine 1 t Data flow diagrams Pohjana systeemiteoreettinen järjestelmämalli Input system output Järjestelmän tehtävä on muokata lähtötiedoista
LisätiedotPaikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7
Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7 Mikä on IT arkkitehtuuri? Liiketoimintamalli määrittelee IT arkkitehtuurin IT arkkitehtuuri ottaa kantaa sovelluksen laadullisiin vaatimuksiin
Lisätiedot14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
LisätiedotSisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
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ätiedotTentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.
Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen
Lisätiedot9 Edistynyt PHP-ohjelmointi
9 Edistynyt PHP-ohjelmointi Luentokerran tavoitteena on käydä läpi joukko sellaisia PHP-sovelluksen toteuttamiseen liittyviä tekijöitä, joiden avulla voidaan parantaa verkkopalvelun totetustyön tuottavuutta
LisätiedotOsittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
LisätiedotProjektinhallintaa paikkatiedon avulla
Projektinhallintaa paikkatiedon avulla Tampereen Teknillinen Yliopisto / Porin laitos Teemu Kumpumäki teemu.kumpumaki@tut.fi 25.6.2015 1 Paikkatieto ja projektinhallinta Paikkatiedon käyttäminen projektinhallinnassa
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ä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ä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ätiedotKäyttäjähallintapalvelun REST-rajapinnat
Käyttäjähallintapalvelun REST-rajapinnat Käyttäjähallintapalvelun REST-rajapinnat Käyttäjähallintapalvelun REST-rajapinnat Yleiset tiedot Resurssit GET /omattiedot GET /omattiedot/organisaatiohenkilo GET
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ätiedotWeb Services tietokantaohjelmoinnin perusteet
ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...
LisätiedotVeronumero.fi Tarkastaja rajapinta
Suomen Tilaajavastuu Oy Veronumero.fi Tarkastaja rajapinta Rajapintakuvaus veronumeroiden tarkastamiseen ja henkilötietojen noutamiseen Suomen Tilaajavastuu Oy Muutoshistoria Päivämäärä Tekijä Muutos 11.2.2013
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ä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ätiedotAvointen ohjelmistojen käyttö ohjelmistokehityksessä
Avointen ohjelmistojen käyttö ohjelmistokehityksessä 9.4.2008 Janne Kuha Manager, Java Services Descom Oy Janne Kuha Manager, Java Services janne.kuha@descom.fi Kuka? Descom Oy:llä, sitä ennen Wanadu Inc.,
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ä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ä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ätiedotRistiinopiskelun kehittäminen -hanke
Joustavia opiskelumahdollisuuksia tuetusti Exam-kevätpäivät (31.5.2018) Joustavia opiskelumahdollisuuksia tuetusti Hanke on opetus- ja kulttuuriministeriön rahoittama korkeakoulujen kehittämishanke. Tukea
LisätiedotAurinkoenergiajärjestelmien etäseurantajärjestelmä
Aurinkoenergiajärjestelmien etäseurantajärjestelmä Janne Raitaniemi (Bitec Oy) Saku Rantamäki (SAMK) Aurinkoenergiajärjestelmien luonne järjestelmien odotettu elinkaari on pitkä investoinnin kannattavuus
LisätiedotMS Aamubrunssi Aktiivihakemiston uutuudet
MS Aamubrunssi Aktiivihakemiston uutuudet 1 Agenda Uudenlainen salasanapolitiikka Useat salasanapolitiikat PSO Tapoja tehdä Demo Aktiivihakemiston auditoinnin parannukset Demo ReadOnly Domain Controller
LisätiedotBlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä
Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin
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 NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti NJC2 Helsinki 13.5.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Eero Anttila Olli
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ätiedotHELIA 1 (11) Outi Virkki Tiedonhallinta
HELIA 1 (11) Luento Käyttöoikeuksista ja tiedon suojauksesta... 2 Käyttäjätunnukset... 3 Tunnuksen luominen... 4 Oikeudet / Valtuudet... 5 Oikeuksien hallinta SQL:ssa... 6 Suojaustarkkuus?... 7 Roolit...
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ätiedotTietorakenteet, laskuharjoitus 7,
Tietorakenteet, laskuharjoitus 7, 14.-19.3. 1. "Tira meets software engineering, osa 1" Lue luentomonisteen kalvot 233-236. Toteuta luokka Opiskelijarekisteri joka tarjoaa seuraavat palvelut: opiskelijoiden
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
Lisätiedot1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
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ätiedotOhjelmistoarkkitehtuurit. Kevät 2012-2013
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestipohjaisten yritysjärjestelmien suunnittelumallit 1 Viestinvälitykseen perustuvat yritysjärjestelmät Peruselementit:
LisätiedotJReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä
Lisätiedot206 Verkkosivun tuottaminen finaalitehtävät
TAITAJA2013 Finaalitehtävä 1 (6) 206 Verkkosivun tuottaminen finaalitehtävät YLEISTÄ -lajin finaalitehtävissä kilpailijat päivittävät ennakkoon julkaistuna finaalitehtävänä olleen Ekoripe tmi luontoyrittäjän
LisätiedotTietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen
Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State
2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus
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ä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ätiedotsertifikaattiratkaisu Apitamopki
Ilmoitin.fi - tunnistamisen sertifikaattiratkaisu Apitamopki Web Services -rajapinnan muutokset Verohallinnon ja ohjelmistotalojen yhteistyöpäivä 23.5.2019 Esityksen sisällöstä Muutama sana varmenteista
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ä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ätiedotOha-selvitys 2008 HISinOne-järjestelmän arviointi
1 Oha-selvitys 2008 HISinOne-järjestelmän arviointi IT 2008, 24.10.2008 LAURI STIGELL JA MARKO SORMUNEN 2 Selvityksen tavoitteet 1. Nykyisten opintohallinnon tietojärjestelmien keskeisten toimintojen yhtäläisyyksien
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
Lisätiedot