Sissejuhatus infotehnoloogiasse

Seotud dokumendid
Tartu Ülikool

Microsoft Word - ref - Romet Piho - Tutorial D.doc

DNA

Microsoft Word - EVS_ISO_IEC_27001;2014_et_esilehed.doc

Microsoft PowerPoint - Lisa 5 koolituse materjalid

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

Microsoft Word - installation-guide.doc

Microsoft PowerPoint - loeng.ppt

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

Monitooring

Operatsioonisüsteemide ehitus

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

SQL

Tarkvaraline raadio Software defined radio (SDR) Jaanus Kalde 2017

PowerPoint Presentation

Operatsioonisüsteemi ülesanded

Veeb Jaagup Kippar

Andmeturve

Microsoft Word hankeplaan veebi.rtf

loeng2

Microsoft PowerPoint - GIS_pilvelahendusena_final.ppt [Compatibility Mode]

Loeng03

EE-macbook-retina-12-early2015-qs.indd

Pealkiri

Tarkvaratehnika

Tarkvaratehnika

praktikumidesse.pdf


EUPL v 1 1-all versions _4_

REQUEST FOR AN ASSIGNMENT OF LEI (fond) LEI KOODI MÄÄRAMISE TAOTLUS (fond) 1. FUND DATA / FONDI ANDMED: Legal Name / Ametlik nimi: Other Fund Names /

Kuidas, kus ja milleks me kujundame poliitikaid Kuidas mõjutavad meid poliitikad ja instrumendid Euroopa Liidu ja riigi tasandil Heli Laarmann Sotsiaa

Statistikatarkvara

Pealkiri

Õppimine Anne Villems, Margus Niitsoo ja Konstantin Tretjakov

magistriöö.doc

PowerPoint Presentation

Document number:

Avatud ja läbipaistev e-riik: Ees6 kui rajaleidja Andrus Kaarelson RIA peadirektori asetäitja riigi infosüsteemi alal 10. oktoober 2017

Microsoft PowerPoint - TÜ TVT - Kavandamine ja arhitektuur 2.ppt

CPA4164 USB 2.0 kõrgekvaliteediline videoadapter KASUTUSJUHEND 1. PEATÜKK - Ülevaade 1.1 Tutvustus CPA4164 USB 2.0 videoadapter võimaldab teil arvutis

Funktsionaalne Programmeerimine

Õppekava vorm 1. Õppekava nimetus Küberturbe tehnoloogiad 2. Õppekava nimetus inglise Cyber Security Engineering keeles 3. Kõrgharidustaseme õpe Raken

EIK-OSadmin-Edmund

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

PHP

PowerPoint-præsentation

Elisa Ring Elisa Ringi mobiilirakendus Versioon

Operatsioonisüsteemid Intelligentne arvutikasutus IFI6070 Tanel Toova

Microsoft PowerPoint - Kalle Kukk, Estfeed.pptx

BIM360 ja RealityCapture

Estonian_TBW-106UB(V1).cdr

Kom igang med Scratch

EESTI STANDARD EVS-EN 1790:1999 This document is a preview generated by EVS Teemärgistusmaterjalid. Kasutusvalmid teekattemärgised Road marking materi

Tootmise digitaliseerimine

Müük (Microsoft Dynamics AX (Axapta) tarkvara) Paigaldusjuhend bifree.ee qlik.com

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Linux süsteemi administreerimine

P2P süsteemid

JABRA STYLE Kasutusjuhend jabra.com/style

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

Esitlusslaidide kujundusest

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

Tallinna Transpordikool NOOREM TARKVARAARENDAJA 4. taseme kutseõppe esmaõppe õppekava Kinnitatud: Tallinna Transpordikool direktor Valeri AAVA käskkir

Side

Microsoft PowerPoint - geodb_090507v1.ppt [Read-Only] [Compatibility Mode]

MTAT Operatsioonisüsteemid - protsessid

Microsoft Word - Referaat.docx

E-õppe ajalugu

AG informaatika ainekava PK

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

EESTI STANDARD EVS-ISO/IEC 38500:2009 Avaldatud eesti keeles: oktoober 2009 Jõustunud Eesti standardina: oktoober 2009 Infotehnoloogia valitsemine org

Andmeturve

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

Süsteemiintegratsioon

Majandus- ja kommunikatsiooniministri 10. aprill a määrus nr 26 Avaliku konkursi läbiviimise kord, nõuded ja tingimused sageduslubade andmiseks

Microsoft Word - requirements.doc

MTAT Operatsioonisüsteemid - Turvalisus

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

PowerPoint Presentation

PowerPoint Presentation

PowerPointi esitlus

Projekti sõltuvuste andmebaas

Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plu

Operatsioonisüsteemid 1. loeng

Microsoft Word - EVS_ISO_31000;2010_et_esilehed

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Veebiteenused ja SOAP Web Services Web Services SOAP WSDL Ühilduvus UDDI Kihiline arhitektuur masinsuhtluse jaoks erinev

(Tõrked ja töökindlus \(2\))

HAJUSSÜSTEEMID HAJUSSÜSTEEMID SOAP ja veebiteenused Web Services Web Services SOAP WSDL Ühilduvus UDDI Kihiline arhitektuur masinsuhtluse jaoks erinev

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Operatsioonisüsteemi ülesanded

Slide 1

Keskkonnakaitse ja ruumilise planeerimise analüüsist Erik Puura Tartu Ülikooli arendusprorektor

Andmeturve

MTAT Operatsioonisüsteemid - Turvalisus

Väljavõte:

Sissejuhatus infotehnoloogiasse Tarkvara arhitektuur - 1 -

Sisukord Arhitektuurinduse ja arendustöö põhimõtteid Komponendid: terviksüsteemid, serverid, frameworkid, teegid Arhitektuurinäiteid Programmeerimiskeelte tüübid eri vaadetest Domineerivad programmeerimiskeeled Arendusvahendid Tarkvara & tootmine: ajaloolised faasid Võrgunduse areng Süsteemide integratsioon Vabatarkvara - 2 -

Tarkvara arhitektuur Arhitektuuri all mõeldakse IT-s: mingi süsteemi tehnoloogilisi põhimõtteid millisteks suurteks osadeks süsteem jaotub kuidas osad omavahel suhtlevad milliseid suuri valmistükke süsteem kasutab Tarkvaras on sellisteks küsimusteks näiteks: Mis opsüsteemi alla rakendus teha Kas hoida infot lihtsalt failides või andmebaasis Millist veebiserverit ja kuidas täpselt kasutada Kas pöörduda andmebaasi poole otse või csv või XML või json vahekihi abil Mis keeles/keeltes rakendus teha Millist kasutajaliidese teeki kasutada... jne... - 3 -

Arendaja analoog on arhitekt/ehitusinsener Tarkvara lihtne analoogia ehitusega ei ole eriti pädev: Tarkvara on kõige keerulisem asi maailmas: tarkvarasüsteemidel on kõige rohkem osi Arendaja kirjutatud programm ongi tegelikult ehitusjoonis, mitte ehitus: ehitus (töötav tarkvara) tehakse kompilaatorite, linkurite jms abil programmist automaatselt. Programmeerija analoog on arhitekt/ehitusinsener. Tarkvara arenduses ei ole nö lihtsaid ehitusmehi vaja. Täiendava tööjõu lisamine projekti käigus teeb projekti täitmise reeglina veel aeglasemaks. - 4 -

Tarkvara ei ole lego Tarkvara ei panda kokku nagu lego blokkidest : Lego blokke saab ühendada väga lihtsalt, ja neil ei ole sisemist keerulist ehitust - 5 -

Tarkvara on sarnane bioloogiaga Tarkvara ei panda kokku nagu lego blokkidest : ta sarnaneb enim bioloogiaga Tarkvarablokid on väga keerulised süsteemid, ja nende ühendamine tähendab nö tavapärast programmeerimist Tarkvara areneb olemasolevast tarkvarast arendajate abil evolutsiooni teel, sarnaselt bioloogiaga - 6 -

Arhitektuuri eesmärgid: lihtsus mitmekesisuses Arendamise ja haldamise lihtsus on kõige tähtsam. Valiku juures on otsustav see, mida arendajad/haldajad kõige paremini oskavad kasutada. Lisatükkide kasutamist ilma selge vajaduseta tuleks vältida. Abstraktsioonid tilguvad läbi. Ei ole olemas iga juhu jaoks sobilikke tehnoloogiaid/komponente No silver bullet! - 7 -

Tarkvarasüsteemide komponendid Tarkvarasüsteemid ehitatakse reeglina mitmesuguste komponentide kokkupaneku, s.t. kokkuprogrammeerimise teel, või teisiti öeldes: komponente kasutades. Neid komponente võib klassifitseerida - näiteks - järgmisel viisil: Terviklikud lõppkasutaja-rakendusprogrammid Suured valmiskomponendid, näiteks andmebaasimootorid Raamistikud ehk frameworks Teegid ehk libraries - 8 -

Tarkvarasüsteemide komponendid Terviklikud lõppkasutaja-rakendusprogrammid, Neid saab tihti juhtida ja mõne teise tarkvarapaketiga programmiliselt siduda, a la: Tekstitöötlus, näiteks Word või LibreOffice Tabelarvutus, näiteks Excel Raamatupidamise tarkvara Arendustarkvara, näiteks Eclipse või vscode Veebibrauser - 9 -

Tarkvarasüsteemide komponendid Suured valmiskomponendid Andmebaasiserverid, www-serverid, mailiserverid, graafikaserverid nagu X11, operatsioonisüsteem ise jne Need programmid on tehtud eeskätt selleks, et lõppkasutaja jaoks loodud rakenduste tegemist hõlbustada. Näitena andmebaasi väljakutsumine Pythonist:... cursor=con.cursor() sqlstr= """ select clientid, clientname from clientbase where clientname like %Jaan% """ cur.execute(sqlstr) results=cur.fetchall() for i in results print "id: ",i[0], " name: ",i[1]... - 10 -

Tarkvarasüsteemide komponendid Raamistikud ehk frameworks Edasiarendamiseks ja ümbertegemiseks mõeldud terviklikud näiterakendused, levinud eeskätt tüüpiliste andmebaasi-kesksete veebirakenduste jaoks. Igast hästi läbimõeldud rakendusest võib saada selline näiterakendus. Populaarseid raamistikke: Java Spring Ruby on Rails PHP Zend framework Python Django Javascript Angular Microsoft.NET Raamistik ei lase arendajal vabalt valida, kuidas süsteem peaks töötama, vaid pigem suunab teda täiendama etteantud näitesüsteemi, mille raamistiku arendaja - 11 - on välja töötanud.

Tarkvarasüsteemide komponendid Teegid ehk libraries Konkreetseid, piiratud funktsioone realiseerivad väikesed komponendid ja nende komplektid. Mõned komplektid on hiigelsuured. Funktsioonide näiteid: Trükkimine Faili kirjutamine Võrguühenduse avamine Ringi, joone vms asja joonistamine Selliseid komponente levitatakse enamasti komplekti kompilaatorite ja muude tarkvara-arendusvahenditega ning nad on tüüpiliselt kasutatavad ainult selle konkreetse programmeerimiskeele ja arendusvahendi koosseisus. komplektis kompilaatorite ja muude tarkvara-arendusvahenditega ning nad on enamasti kasutatavad ainult selle konkreetse programmeerimiskeele - 12 -

Üks suur eesti infosüsteem: iga blokk on omaette keerukas süsteem oma andmebaasidega ning nad on enamasti kasutatavad ainult selle konkreetse programmeerimiskeele - 13 -

Andmete liikumise keerulised ahelad Andmete ja raportite seoste näide - 14 -

Meeldetuletus: algoritmilised keeled ja kirjelduskeeled Algoritmilised (programeerimiskeeled) C, C++, Basic, Java, Python, PHP, assembler... Kirjelduskeeled (spetsifitseerimiskeeled) HTML, SQL, XML, RDF, TeX,... Praktiline süntees: algoritmilised keeled manipuleerivad kirjelduskeele abil antavate objektidega näited: Javascript ja HTML., C/Java/Python/... ja SQL,... - 15 -

Valdkonniti domineerivad programmeerimiskeeled Universaalseim, välja arvatud tippkiirust nõudvad või embedded või brauseri- või operatsioonisüsteemi-rakendused: Java Maksimaalset kiirust nõudvad rakendused, embedded ja süsteemprogrammeerimine: C, C++ Andmetöötlus ja skriptid ilma kasutajaliideseta: Python, Java, C, Go, Perl, Ruby Windowsi kasutajaliidesega rakenduste programmeerimine: C#, VisualBasic, C, (Java) Maci ja iphone programmeerimine: Swift, Objective-C Androidi programmeerimine: Java, (C) Veebibrauseri programmeerimine: Javascript Veebirakenduse programmeerimine: PHP, Javascript, Python, Ruby, Java, Go, C, Perl.. Spetsiifilised rakendused: vastavalt vajadusele - 16 -

Arendusvahendid Programmi töötamiseks: Kompilaator Interpretaator Programmi kirjutamiseks: Sobivad tekstiredaktorid Visuaalsed arendusvahendid Suure hulga lähtekoodi halduseks: Versioonikontroll (git, subversion,...) Kompileerimissüsteemid (make, automake, Ant, Gradle, Webpack,...) Integratsioonisüsteemid (Jenkins, Travis CL,...) Testimiseks ja monitoorimiseks: Testimise abivahendid ja automaattestide süsteemid (Valgrind, Jtest,...) Automaatmonitoorimise süsteemid - 17 -

Veebitehnoloogiad: näide vahenditest https://codeburst.io/the-2018-web-developer-roadmap-826b1b806e8d - 18 -

- 19 -

- 20 -

IT süsteemide paradigmade areng Ajalooline vaade kolmele osale: Riistvara Tootmise organiseerimine Tarkvara - 21 -

Pikaajalised arhitektuurifaasid 1945-1970 1970-1995 1995-2020? A) Riistvara arhitektuurifaasid Suurarvutid - Mikroarvutid - Võrgusüsteemid B) Tarkvaraplatvormide arhitektuurifaasid: assembler, puhtad keeled - teegid, arendusvahendid, komponendid - komponentide sidumine C) Tootmise organiseerimise arhitektuurifaasid: suurfirma, avatud - väikefirma, suletud - vabad komponendid, sidumine, hooldus - 22 -

Priorities for software development Three main consumers of time and effort: Understanding the business processes and needs. Understanding the exact contents of existing data. Writing code. The second component - understanding existing data - is growing and will keep growing for foreseeable future. Why? - 23 -

Intelligentne võrk!? Sajandi keskpaigaks: Iga arvuti on praegustest tuhandeid kordi võimsam Võrgus on praegusest tuhandeid kordi rohkem infot ja teenuseid - 24 -

Internet 0: inimene <--> veidi inimesi, raadio, TV Raadiokanal 1 Raadiokanal 2 TV-kanal 1 TV-kanal 2-25 -

Internet 1: inimene <--> hulga inimesi E-mail S A J A D M I L J O N I D - 26 -

Internet 2: inimene <--> hulga masinaid WWW S A J A D M I L J O N I D - 27 -

Internet 3: masinad <--> hulga masinaid Automaatliidesed S A J A D M I L J O N I D - 28 -

Internet 3: inimene?? - 29 -

Architecture I Compact standalone software - 30 -

Architecture II Classical client-server applications - 31 -

Architecture II : similarities to I All applications controlled by the developer: located in one machine or distributed in the machines of the company/client - 32 -

Architecture III Applications not controlled by the developer: you only have access to them system functions like a society of applications - 33 -

Architecture III: some examples Apps based on web services Global comparison/search systems Estonian public sector: xtee complex queries Document management between different organisations Large financial apps: banks etc Sales systems Military apps... - 34 -

Architecture III: kill chain example Context: Yugoslavia, Iraq, Afganistan... Warfighting integration. We're basically tasked to close the seams in the kill chain. The kill chain is a euphemism for the process by which we identify targets find them fix it track it target execute check results - 35 -

Architecture III: kill chain example Context: Yugoslavia, Iraq, Afganistan... Warfighting integration. We're basically tasked to close the seams in the kill chain. The kill chain is a euphemism for the process by which we identify targets find them fix it track it target execute check results Every link is a separate country with its own information systems - 36 -

Architecture III: kill chain example Context: Yugoslavia, Iraq, Afganistan... Warfighting integration. We're basically tasked to close the seams in the kill chain. The kill chain is a euphemism for the process by which we identify targets find them fix it track it target execute check results Every link is a separate country with its own information systems Countries in the chain are often exchanged or replaced! - 37 -

Main problems for the developer Get access to data from the foreign system Understand what does this data exactly mean Convert foreign data to data structures of our own app and vice versa - 38 -

Getting access and understanding? Social networking. Connected groups of people: - 39 -

Architecture III revisited Social groups consist of both people and apps - 40 -

Philosophy. Society and people. We could think that do have AI already in some sense: society is a large animal with an intelligence of its own. People - society is similar to cells - animal - 41 -

Tarkvara litsentsid Litsents on lihtsalt ühepoolne võta-või-jäta leping, et kuidas tarkvara tohib kasutada. Kommertslitsentsid on väga mitmekesised: igaüks kirjutab endale sobiva. Vabavara on vahel dual-licenced: valid, kas kasutad piirangutega vabavarana või teistsuguste piirangutega kommertslitsentsiga. Vabavaralitsentside hulgas on mitmed rohkem/vähem vabad kategooriad: vaata sissejuhatuseks Vaata ka: https://www.gnu.org/licenses/license-list.html - 42 -

Vabatarkvara Mis on vabatarkvara: tasuta? lahtise koodiga? edasimüügiõigusega? copyright? Ajalugu, eesmärgid, perspektiivid mis on olnud? mis on tulemas? äriidee? miks vabavara tehakse? kus on vabavara mõistlik kasutada? mida vabavara on endaga kaasa toonud? - 43 -

GNU ideoloogia: vabadus: primaarne on tarkvara vabadus, sekundaarne tasuta kättesaadavus (free as in free speech, not as in free beer) ausus: ausam on kasutada vabavara kui piraatkopeerida teadmiste vabadus: teadmised, tarkvara on loomu poolest vaba - teadmiste ja tarkvara kopeerimine laiendab ühiskonna majanduslikku võimsust, kaotajaid (rumalamaks jääjaid) pole raha saab teenida ka tarkvara toetades ja installeerides ja levitades tellitud täiustusi ja modifikatsioone ehitades ehitades sellist vabavara, mida klient soovib motivatsioon senistes kogustes tarkvara luua väheneb? vastuargument: programmeerimine on põnev vastuargument: ehk polegi meil nii palju kallilt makstud programmiste vaja? vastuargument: vabanenud programmeerijate kaader saab teha uusi, senisest keerulisemat softi, mille jaoks seni aega ega ressurssi ei jätkunud - 44 -

GPL ja litsentsid Vaatame eraldi GPL, LGPL ja muid vabavara-litsentse - 45 -