Samenvatting Digitale Informatiesystemen PDF

Summary

This document provides a summary of digital information systems, focusing on the role of information technology (IT) and information and communication technology (ICT). It covers various emerging technologies, such as business intelligence (BI), the internet of things (IoT), artificial intelligence (AI), blockchain, and the semantic web. The document also discusses the relationship between business/economics and ICT, contrasting classical and innovative perspectives. It outlines the concept of business informatics as a bridge between business and ICT, describing the functional and constructive layers for system design. The document further explains different data types and representation methods and discusses their uses in information systems.

Full Transcript

Digitale informatiesystemen: BA1 1. Inleiding Moderne economie is steeds meer een digitale economie, waarbij informatietechnologie (IT) en informatie- en communicatietechnologie (ICT) een grotere rol speelt Nieuwe generatie technologieën - Business Intelligence (BI) - Internet-of-Thi...

Digitale informatiesystemen: BA1 1. Inleiding Moderne economie is steeds meer een digitale economie, waarbij informatietechnologie (IT) en informatie- en communicatietechnologie (ICT) een grotere rol speelt Nieuwe generatie technologieën - Business Intelligence (BI) - Internet-of-Things (IoT) - Artificial Intelligence (AI) - Blockchain - Semantische web, … Beleidsinformatica - Circa 1965 - Focus ligt niet op technologie zelf, maar op het gebruik, de toepassing, de productiviteit em de management-aspecten ervan en de context van economie en bedrijfskunde - Is een discipline die zich richt op het hybride gebied tussen bedrijfskunde en economie, maar ook ICT en informatica Relatie bedrijfskunde/economie en ICT:  Twee perspectieven: 1. Klassiek: bedrijfskundige strategieën of doelen zijn leidend, en ICT speelt een ondersteunende rol → bepaalde bedrijfskundige processen die niet meer manueel worden uitgevoerd, maar worden geautomatiseerd => efficiëntiewinsten 2. Innoverend: vertrokken vanuit ICT en waar gezocht wordt naar welke innovaties deze technologie op bedrijfskundig en economisch vlak mogelijk maakt Beleidsinformatica als brug tussen bedrijfskunde en ICT Beleidsinformatica is ontstaan omdat er een kloof was tussen de technici en de bedrijfskundigen, dit kwam omdat de technici in hun eigen jargon praatte waardoor de bedrijfsleiders hier niets van begrepen. De beleidsinformatica heeft als domein de brug tussen de bedrijfskunde en de ICT te moeten slaan, of nog de alignment tussen bedrijfskunde en ICT moest realiseren → beleidsinformaticus te vergelijken met een architect in de burgerlijke bouwkunde Bouwen: brug als ontwerpkloof tussen de functionele en constructieve laag Eerst deelgebied gericht op bouwen van informatiesystemen, we kunnen dit adhv het begrip functioneel-constructieve kloof, beschrijft de essentie van het ontwerpen van artefacten: - Functionele laag (F-laag) = hier wordt beschreven wat de functies of vereisten zijn F van het te ontwerpen artefact, of nog, ‘wat’ het artefact moet doen zonder te bepalen ‘hoe’ dit moet gebeuren - Constructieve laag (C-laag) = hier wordt beschreven ‘hoe’ het artefact deze functies realiseert, of nog, de structuur ervan → stap van functionele naar constructieve niveau is de kern van ontwerp → beide lagen maken gebruik van verschillende constructen of primitieven Als we deze kloof toepassen op het situeren van het domein beleidsinformatica: - - F-laag verwijst naar de bedrijfskundige laag, onder meer het bepalen van de vereisten van informatiesystemen. - De C-laag verwijst naar de mogelijkheden van de ICT, met inbegrip hardware, software, netwerken en andere om de vereisten toe te komen  Beleidsinformatica is gericht op de studie van het realiseren van de F-laag met de technologische mogelijkheden die de C-laag biedt  Ontwerp karakter: gaat om het bouwen of ontwerpen van informatiesystemen op basis van ICT die voldoen aan de bedrijfskundige vereisten Stappen in het ontwikkelen van systemen kunnen vergeleken worden met de stappen in een bouwproces: - Project management: = elk project dient opgevolgd te worden inzake van timing en budgettering, dit sluit aan bij het tweede deelgebied van de beleidsinformaties - Systeemanalyse: = in dit vakgebied komt het ‘samen bouwen’ (=co-creatie) veel naar voor, tussen de beleidsinformaticus en bedrijfskundige specialist wordt nauw samengewerkt - Systeemontwerp: = beleidsinformaticus zal na de analyse een ontwerp maken: de vereisten van de bedrijfskundige worden vertaald in een ontwerp waarmee de technologische specialisten aan de slag kunnen Managementaspecten van informatiesystemen Dit deelgebied bestudeert hoe geschikte condities voor het bouwen van informatiesystemen kunnen gecreëerd worden. Hieronder vallen volgende vakgebieden: - IT-governance: welke IT-strategie wordt er gevolg in de organisatie? Welke processen, structuren en mechanismen zijn nodig voor een goed IT-beheer? - IT audit: Voldoen de informatiesystemen en geautomatiseerde processen aan regelgeving opgesteld door de organisatie of opgelegd door de overheid? IT-strategie heeft betrekking tot twee perspectieven: - kosten gebaseerd perspectief Hier is er weinig aandacht voor nieuwe, innovatieve mogelijkheden van de ICT (C-laag) De focus ligt op het kostenefficiënt realiseren van de informatienoden → wordt vertrokken vanuit de F-laag, of nog van de bedrijfskundige beslissingen die moeten worden genomen. - Innovatieve perspectief Hier wordt vertrokken vanuit de C-laag, meer bepaald de nieuwe technologische mogelijkheden die de ICT-innovaties bieden Primaire versus secundaire activiteiten: van ondersteunend naar innoverend perspectief Primair = kern van de organisatie, rechtstreekse betrekkingen op het productieproces van het product of dienst van de organisatie Secundair = ondersteunend aan de primaire activiteiten, hierbij onderscheiden we de bedrijfskundige domeinen: HR, marketing, accounting, logistiek, financiering, maar ook ICT (in een niet-ICT bedrijf) In beginjaren beleidsinformatica focus op automatiseren van secundaire activiteiten → snel duidelijk dat ook de primaire activiteiten van organisaties in de dienstensector en de overheid konden worden geautomatiseerd →met behulp van inzichten in de beleidsinformatica Beleidsinformatica: het innoverende perspectief Bij dit tweede perspectief: → belang van ICT in context van bedrijfskunde en economie nog groter → vertrokken vanuit de nieuwe mogelijkheden van de ICT en wordt er beschouwd of deze te technologie nieuwe mogelijkheden biedt of bedrijfskundig of economisch vlak → aandacht ligt niet op automatisering van een gegeven of vastliggend bedrijfskundig of economisch doen → wel of er door nieuwe technologische mogelijkheden nieuwe diensten, marktstructuren of andere bedrijfskundige doelen haalbaar zijn → in poging om door innovatie een voorsprong te ontwikkelen in markt, of minimaal geen achterstand op te lopen 2. Hoofdstuk 1: Informatie en informatiesystemen 2.1. Informatie Rol van informatie bij bedrijfskundige beslissingen, wat is infromatie? DIKAR-model: beschrijft de rol van informatie bij het nemen van beslissingen beschrijft hoe de transformatie van Data naar Informatie en Kennis, tot Acties zouden moeten leiden die bedrijfskundige Resultaten opleveren - Data: ruwe feiten die een bepaald fenomeen, concept of gebeurtenis beschrijven. moet beschikbaar zijn onder het huidige aantal verkopen van het product → op basis hiervan moet relevante informatie geaggregeerd worden Vb.: een getal - Informatie: is data die een specifieke betekenis heeft in een specifieke context.” vb.: ‘18 is het aantal orders van een bepaalde klant dit jaar’ → Onderscheid data-informatie is relatief, afhankelijk van de beslissing - Kennis: het begrijpen van een bepaald onderwerp, onder meer door gebruik van bepaalde hoeveelheden informatie, ervaring en expertise. vb.: ‘hoe reageren we op deze 18 ? Moeten we een korting aanbieden aan deze klant, gegeven onze ervaring tot nu ? - Actie: Noodzakelijke maatregelen nemen adhv de vorige begrippen om zo tot het verwachte resultaat te komen Informatie als een model van de reële wereld in literatuur rond informatie en informatiesystemen: → informatiesysteem is een soort informatie-spiegel van de reële wereld waarin we leven → sprake van partiële, symbolische afspiegeling van delen van de reële wereld die we voorstellen met symbolen of tekens, dus een model → Partieel: Een model is een abstractie van de reële wereld, waarbij bepaalde aspecten worden beschouwd terwijl andere niet worden beschouwd => een ‘lens’, of nog, een partiële ‘spiegel’ → Symbolisch: Een model is een symbolische representatie (op basis van tekens) van de reële wereld => een ‘data’/‘informatie-’spiegel. → Tekens: - Syntax: ‘formalisme van de data/informatie’ - Semantiek: ‘betekenis van de data/informatie’ Voordelen van een mode: - Grote precisie - Geheugen zeer groot - Zeer flexibele zoekmogelijkheden - Minder mensen nodig => efficiëntie Data-representatie Eerste categorie: → gericht op mensen en verwerking door mensen → recent door steeds grotere noden en mogelijkheden aan informatieverwerking ook nieuwe representatiewijzen voorgesteld (tag clouds, word clouds, data clouds,…) Tweede categorie: → gericht op verwerking door machines door machines of computers → bits, bytes, QR codes (quick response) → onderscheid gemaakt tussen gemaakt tussen gestructureerde, semigestructureerd en ongestructureerde data: - Gestructureerde data: = gaat om enkelvoudige datatypes zoals getallen, strings, arrays, alsook geaggregeerde datatypes zoals arrays of records → elementaire data (enkelvoudig): Integer: geheel getal Real: rationeel getal Datum: datatype dat specifieke syntax (vb.: DD-MM-YYYY) String: tekenreeks of een stuk tekst → geaggregeerde data: Arrays: meerdere enkelvoudige waarden weer te geven Allemaal hetzelfde enkelvoudige datatype zijn 1-dimensionaal: verschillende prijzen van 5 producten 2-dimensionaal: 5 verschillenden prijzen voor 3 landen Records: gegevens van verschillende enkelvoudige datatypes Geen lijst, maar records → verschillende records = Arrays of records → relationele databanken: = gebruiken intern een datarepresentatie op basis van tabellen Is hetzelfde als een array of records maar in een tabelvorm gegoten. Gegevens in relationele databank worden attributen genoemd Opgeslagen data moet homogeen zijn Eigenschappen: Horizontale homogeniteit = elk record van een bepaald type bevat altijd dezelfde attributen Verticale homogeniteit = elk veld bevat voor alle records hetzelfde type informatie.  Waar data niet homogeen is, heeft het geen zin om een relationele databank op te stellen. Boomstructuur gebruikt voor hiërarchische weergave - Ongestructureerde data: BLOB’s = binary large objects, informatie dat als 1 lange rij bits wordt weergegeven Vb.: interne structuur van muziek (refreinen), pc kan deze structuur niet opmaken dus daarom ongestructureerd → Verwerking mogelijk zoals afspelen, maar niet tweede refrein of zoeken Oplossing: tags, manueel of automatisch - Semi-gestructureerde data Pc kent een deel van de structuur → Verwerking mogelijk zoals de geadresseerde selecteren, of zoeken op geadresseerde of een woord in de mail, maar niet de tweede zin van de mail - Semi-gestructureerde en gestructureerde informatie: Gebruikt gemaakt van eXtensible Markup Language Opmaaktaal om data in string- of tekstformaat te voorzien van opmaak van labels of Tags → leesbaar voor mensen als machines XML-document bestaat uit een boom van recursieve elementen XML = data representatie met bomen → gericht wordt gebruikt om semantiek, betekenis en structuur toe te voegen aan: Gestructureerde data: vb. communiceren tussen macines Semi-gestructureerde data: vb. iets opslaan XML Schema Definition (XSD) = taal voor het beschrijven van structuur van XML- documenten, vastgelegd in standaarden Hoeveelheid structuur: belangrijk in data representatie omdat ze een mogelijke verwerking van data bepaalt - Tacit knowledge: = ontastbare kennis → hierdoor moeilijk of niet geëxpliciteerd of gecommuniceerd en overgedragen worden Verwerking De verwerking bestaat uit het selecteren van data, waarbij uit grote hoeveelheden data precies uit het relevante stuk kan worden geselecteerd. Vb.: opzoeken telefoonnummer in een databank Bij recente evoluties zoals Business Intelligence en Artificiële Intelligentie is er wel sprake van (zeer) complexe en geavanceerde verwerking, die leidt tot hogere niveau’s van beslissingsondersteuning of zelfs (semi-) autonome beslissingen Kwaliteit van data en informatie Dit kan beschreven worden aan de hand van verschillende kenmerken: Inhoud: - Correctheid: = fouten-vrij zijn van data en infromatie → kost van het fouten-vrij zijn van data stijgt met de hoeveelheid en complexiteit van de onderliggende data - Accuraatheid: Data kan verschillende graden van nauwkeurigheid hebben → afhankelijk van een bepaalde toepassing kan een bepaalde accuraatheid voldoende zijn - Volledigheid: Twee verschillende problemen met volledigheid kunnen zich voordoen: 1. Stuk informatie ontbreekt (vb.: geen emailadres van een klant) 2. Niet alle records nodig, aanwezig zijn (vb.: records van winkel) - Relevantie: Is informatie relevant voor de eindgebruiker? Voldoende info aan noden? - Beknoptheid: nodig om overzichtelijk en bruikbaar te zijn grote hoeveelheid kan het het moeilijk maken om de juiste informatie te lokaliserenT Timing: - Beschikbaarheid: Informatie heeft geen waarde als ze niet beschikbaar is - Up-to-date: Gegevens geven de werkelijkheid weer zoals die op dat moment is → werkelijkheid evolueert en informatie kan verouderd zijn - Frequentie: Beschrijft info de juiste tijdsperiode? Vorm: - Detailniveau: Manier waarop informatie wordt gepresenteerd aan eindgebruikers is erg belangrijk Syntax en semantiek - Syntax: = beschrijft het formalisme om een boodschap weer te geven In taalkunde: studie van opbouw en structuur van zinnen en zinsdelen - Semantiek: = betrekking op betekenis van informatie Vb.:; Wat is een ‘klant’ in een databank? Op hetzelfde adres => dezelfde klant? Kan niet… appartementsgebouw Op hetzelfde adres => verschillende klanten? Kan niet… verschillende afdelingen van één bedrijf worden dan aanzien als verschillende klanten… Alleen huidige klanten, of ook historische, of toekomstige. Conclusie Informatie en informatiesystemen betreffen een virtuele, digitale informatie-spiegel van de reële wereld, of nog, een model, gericht op ondersteuning van bedrijfskundige en economische beslissingen (DIKAR-model) → Gebaseerd op relatief eenvoudige data representaties zoals tabellen en bomen → Klassiek met relatief eenvoudige verwerking, die tegenwoordig wordt aangevuld met complexere verwerking (zie bijv. Business Intelligence) Deze digitale spiegel heeft nu een enorme omvang bereikt → Van gestructureerde over semi-gestructureerde naar ongestructureerde data, van transacties naar gedrags-gerelateerde data → Te groot of te klein ? → ‘is er te weinig informatie ?’: vroeger eerder te weinig, dus werd er geïnnoveerd door meer informatie te digitaliseren → ‘is er te veel informatie?’: nu wordt er nog steeds meer gedigitaliseerd, maar is er eveneens sprake van ‘te veel’ informatie, waardoor innovatie steeds meer gericht is op het ‘reduceren’ van informatie (bijv. door zoekmachines) Kwaliteit van de digitale spiegel wordt bepaald door: → Criteria rond Kwaliteit van informatie →Beperkingen: Semantiek (~integratie) Tacit knowledge Information overload Security/privacy → De digitale spiegel is gerelateerd aan enkele van de grote uitdagingen van dit moment, die dus niet inherent technisch zijn, maar spelen op het vlak van de beleidsinformatica Dit perspectief op informatie en informatiesysteem is → Een illustratie van het ondersteunend perspectief op beleidsinformatica → De digitale spiegel ondertussen uiterst belangrijk geworden => 24/7 digitale economie. 2.2. Informatiesystemen Aantal typologieën van informatiesystemen → classificeren informatiesystemen op basis van karakteristieken qua beslissingsondersteuning en plaats in de organisatie Doel: - Diversiteit aan informatiesystemen in het algemeen te illustreren die ter beschikking staan van de bedrijfskundige - Bedrijfskundige middelen aan te reiken om voor concrete organisatie of gevalstudie te stellen zoals ‘heeft een bepaalde organisatie alle informatiesystemen die nodig zijn? Moeten er initiatieven genomen worden om informatiesystemen bij te bouwen?’ Definities - Enge, technische definitie: = een enge, technische definitie kan eruit bestaan dat een informatiesysteem input uit de → reële wereld (data) opslaat en verwerkt tot output voor een doel van een gebruiker Enkel software en hardware, opslaan van gegevens = statisch, verwerken van gegevens = dynamisch - Brede, socio-technische definitie: = het is een combinatie van mensen, hardware, software, communicatietechnologie, databronnen, procedures en bedrijfsprocessen die instaat voor het verzamelen, opslaan, verwerken en verspreiden van communicatie voor een bepaald doel → volgens definitie bevat informatiesysteem: Hardware, Software, Data, Bedrijfsprocessen, procedures, mensen (niet enkel hardware!) Begin jaren ‘90 werd vastgesteld dat er inefficiënties optreden op de grenzen tussen departementen. Of nog, informatiesystemen waren grotendeels intra-departementeel (zgn. silo- of eiland-automatisatie), en de integratie inter-departementeel was suboptimaal. - Bedrijfsproces: = selectie, sequentie en/of iteratie van activiteiten over departementen heen → Ontwerp van bedrijfsprocessen: - Bedrijfsprocessen zijn zeer gestructureerd: elke stap wordt vooraf bepaald of ontworpen, en neergeschreven in notaties zoals stroomschema's (flowcharts), UML Activity Diagrams of Business Process Modeling Notation (BPMN)-modellen. - Organisaties bevatten o.m. sets van bedrijfsprocessen → Grootte en Complexiteit - Variëren van relatief klein en eenvoudig, tot zeer complex en geavanceerd (zelfs geoptimaliseerd, zie OO rond Operations Research) Workflow Management Systems (=WFMS) = Soort informatiesysteem waarin workflow’s gedefinieerd en ook uitgevoerd worden. → zorgt ervoor dat activiteiten uitgevoerd worden in de volgorde zoals beschreven in het model van het bedrijfsproces bedrijfsprocessen die over meerdere departementen heen gaan, zorgen voor integratie over departementen heen → departementen werken minder op zichzelf, maar optimaliseren de werking van het ganse proces - Business Proces Re-engineering (BPR) = Bedrijfsprocessen warden gezien als een fundamenteel nieuwe manier van denken over organisaties die tot grote efficiËntiewinsten kon leiden. Doelen: Snellere doorlooptijden Hogere transparantie Integreren van departementen en hun informatiesystemen ( eiland-automatisatie) Typologie op basis van de informatie-spiegel Opslag van data: - Transaction Processing Systems (TPS) → gestructureerde data - Enterprise Collaboration Systems (ECS) → semi-gestructureerde data + ongestructureerd Verwerking van data: - Management Information Systems (MIS) - Decision Support Systems (DSS) Prestatie: - Portalen Transaction Processing Systems: Gericht op opslaan, verwerken en rapporteren van repetitieve transacties van de organisatie. Een TPS behandelt gestructureerde informatie van repetitieve, routinematige transacties, die dikwijls bedrijfskritisch zijn voor de organisatie Verwerking: Maakt de informatie-spiegel van transacties in de reële wereld Meetsal Create, Read, Update, Delete (CRUDS) van transacties Typische verwerking van grote heveelheden transacties Data uit TPS worden gebruikt in BI-DCC TPS is op operationeel niveau ICT → database: gestructureerde data; document/content management systeem: semi- gestructureerd Enterprise Collaboration Systems: = Office Automation Systems (OAS) = interdepartementale informatiesystemen die communicatie, coördinatie en samenwerking ondersteunen tussen teams in een organisatie → Gericht op semi-gestructureerde en ongestructureerde informatie → intranet: internet-achtig netwerk binnen de organisatie met afgeschermde toegang, soms toegang voor externe partijen → extranet/website: klassieke website gericht op externe partijen (typologie 2: inter- organizatorische IS) Management Information Systems: = Een MIS aggregeert data ter ondersteuning van routine beslissingen in alle functionele deelgebieden van een organisatie → routine-beslissingen: zijn ‘gestructureerd’ van aard in die zin dat de informatieverwerking grotendeels vooraf gekend en steeds gelijkaardig is → niveau: n transacties → verwerking: Read, Search en Select/Aggregatie/Sort/… → Invoer: neemt data uit TPS en zorgt voor aggregatie en presentatie van de informatie → ICT: formulier of rapport in database Decision Support Systems (DSS) / Business Intelligence (BI) = Big Data, Data Science, Data Warehouse = ondersteund complexe, niet routinematige bedrijfskundige beslissingen → niveau: hoog aggregatieniveau: N (groot) transacties → beslissingen zijn minder gestructureerd, d.w.z. dat de informatieverwerking vooraf minder gekend is of niet gelijkaardig is → model-gebaseerde werking: sensititviteitsanalyse/what-if analyse, statistische en/of algoritmische complexe verwekring → invoer: tactisch niveau, specialisten/analisten → ICT: data kopiëren naar databank,… → onderscheindende larakteristieken: Ad hoc karakter: Bij DSS veelal om informatieverwerking die moeilijker vooraf te definiëren is en daardoor meer ad hoc is, zowel qua timing als informatie, gaat dus om beslissingen die minder frequent of ad hoc voorkomen. Hierdoor meer interactief Verwekring in DSS niet beperkt: Verwekring is niet beperkt tot een relatief eenvoudige aggregatie zoals bij MIS Portalen: = informatiesysteem dat een gepersonaliseerde en geïntegreerde toegang biedt tot achterliggende informatiesystemen van binnen de organisatie → kenmerken: Gepersonaliseerd: een of andere vorm van authenticatie vindt plaats bij gebruikt → customizatie mogelijk Integrerend: geeft teogang tot achterliggende informatiesystemen Typologie qua integratie: departementaal tot inter-organisatorisch - Departementeel informatiesysteem: = bevatten data en informatie die betrekking hebben op één departement en hebben weinig of geen verbanden of integratie met andere departementen Er wordt gesproken van ‘eilanden’ van informatiesystemen omdat ze moeilijk te integreren zijn met andere departementen - Bedrijfsbreed: = bevat data en informatie over meerdere of zelfs alle departementen van een organisatie, ze zijn inter-organisatorisch Enterprise Resource Planning (ERP) hebben bvb software modules die data en processen bevatten voor meerdere of zelfs alle departementen van een bedrijf - Inter-organisatorische informatiesystemen: = werken op de grens tussen meerdere organisaties Andere soorten - Embedded systems: = systemen die vaak gebruikt worden die ingebed zitten in een fysiek product. Vb.: Software in een auto o.a → technische uitdaging: omdat ze ingebouwd zijn hebben ze beperkt intern enextern geheugen alsook een minder goede processor - Process control systems: = software die industriële processen aanstuurt en beheert. Vb.: software in autoassamblage → deze twee vallen strikt genomen niet onder de definitie van een informatiesysteem omdat de reële wereld die hier wordt beschreven geen bedrijfskundige realiteit is Informatiesystemen en strategische impact Strategische informatiesystemen = informatiesystemen die de competitieve positie van een organisatie beïnvloeden → organisatie gaat naar sterkere positief in markt uit te bouwen door bezit van informatiesystemen in enge zin, of in bredere zin bij het gebruik van ICT in de organisatie, producten of diensten Conclusie Informatie in een digitale economie: → doel: juiste informatie op het juiste moment bij de juiste persoon krijgen → informatiesystemen maken dit een realiteit, maar welke types informatiesystemen zijn hiervoor vereist? hele waaier… 3. Hoofdstuk 2: hardware en netwerken 3.1. Hardware → initieel: alle taken informatiesysteem (’60-’70) door een machine worden gedaan → mainframe computers: ondersteunende een hele organisatie met vele gebruikers → centrale architectuur: alle verwerking zit op mainframe, niet bij terminal → grote verwerkingscapaciteit, maar groot en duur - Thin clients: = dumb terminals = computers met een zeer beperkte processor- en geheugencapaciteit die de input van de gebruiker doorgeven aan het mainframe en de output op een beeldscherm tonen. → Mainframe verzorgt verwerking van gegevens tot en met opmaak output → deze terminals hadden enkel tekst-gebaseerde interface en toetsenbord → geen sprake van GUI (graphic user interface) of besturing via muis Hardware en componenten op dit moment alle computers gebouwd o.b.v. transistoren (sinds jaren ’70). Ondanks vele verbeteringen is de CPU (central processing unit) relatief onveranderd gebleven. Uiterlijk veranderde maar vanbinnen zo goed als hetzelfde. Moederbord bevat enkele componenten: moederbord, CPU, primair geheugen, secundair geheugen, invoer/uitvoer, GPU, koeling, overclocking, GPU computing - Moederbord: = basis van een computer, hierop worden verschillende componenten aangesloten. → biedt cummunicatiepaden/bussen tussen verschillende componenten → sockets (type aansluiting): bepalen welk type componenten gebruikt kunnen worden Communicatie tussen componenten op moederbord, en externe componenten gebeurt via bussen en sockets Vb.: USB (universal serial bus) is een typisch voorbeeld van externe aansluitingen - CPU: = central processing unit, de werking van instructues vervat in een programma wordt geregeld door CPU →Onderdelen:  Arithmetic-Logic Unit (ALU) = Voert basisberekeningen uit  Control unit = Zorgt voor klaarzetten van data en instructies in de registers  Registers = Kleine, ultrasnelle geheugens in de CPU  Cache geheugen = Geheugen in de processor, sneller dan primair geheugen → Kloksnelheid  # instructies per seconde die de CPU verwerkt  Momenteel in Ghz: 109 Hz => 1 instructie = 1 nanoseconde → Woordlengte  Het aantal bits - Primair geheugen: = RAM (random acces memory) → wordt gebruikt om tijdelijk instructies van actieve programma’s op te slaan → PC uit = geheugen gewist → sneller gegevens leveren aan secundair geheugen: verwerkingssnelheid niet vertragen - Secundair geheugen: = plaats waar gegevens moeten worden bewaard voor toekomstig gebruik → vb.: harde schijf → opslag is permanent → trager, maar goedkoper dan primair geheugen Harde schijven (HDD) : 1 of meerdere magneetschijven in een behuizing, met mechanische lees- en schrijfkoppen Solid State Disk (SSD) zonder magneetschijven: sneller, lichter, geen geluid, duurder - Invoer en uitvoer: Invoer = input devices, laten toe om gegevens en instructies toe te voegen en om te zetten in een formaat dat computer kan begrijpen (vb.: muis, toetsenbord, touchscreen, etc.) Uitvoer = ouput devices, laten toe om verwerkte gegevens weer te geven in formaat dat voor eindegebruiker te begrijpen is (vb.: scherm, printer) - GPU: = Graphic processing unit, is een processor die gebruikt wordt voor alle videotaken → neemt taken CPU over → recente CPU’s bevatten een geïntegreerde GPU (=iGP, integrated Graphics proc.) Volgende hebben te maken met performantie: - Koeling: Twee soorten: 1. Luchtkoeling 2. Waterkoeling Voornaamste hittebron: CPU, GPU Krachtigere GPU’s op aparte grafische kaart hebben serieuze koeling nodig, deze bestaan daarom vaak uit een koelblok (=stuk gevormd metaal met koelribben, gemonteerd op CPU of GPU met ventilator) - Overclocking: = verhogen van de kloksnelheid van verschillende componenten → vereist betere koeling, luchtkoeling is soms niet genoeg dus overschakelen op waterkoeling Het opvoeren van de kloksnelheid voor bepaalde componenten (typisch CPU en GPU), hoger dan waarvoor ze ontworpen zijn. Er zijn risico’s aan verbonden, zoals het falen van componenten.  Typisch voor gamers die hogere framerates willen bereiken in hun games  Vereist krachtige koeling, bvb waterkoeling - GPU computing: = toenemende programmeerbaarheid van grafische processoren te gaan benutten voor andere doeleinden, zoals ware wetenschappelijke berekeningen → Het gebruiken van de grafische processor (Graphics Processing Unit) voor berekeningen: verhoging van verwerkingscapaciteit → Vooral in wetenschappelijke toepassingen → De GPU wordt ahw een co-processor van de CPU - Multi-core processoren: → Multi-core processoren hebben meerdere processoren in 1 CPU → Hogere processorsnelheid indien software taken kan verdelen over meerdere CPU’s Data-centers Hot pluggable = eenvoudig modules toevoegen of verwijderen terwijl de computers blijven draaien Server rack = computers die in klein formaat gebouwd worden omdat server computers gee geluidskaar, een beperkte grafische kaart en weinig aansluitingen hebben voor invoer- en uitvoerapparaten, hierdoor kunnen ze samen in een server rack geplaats worden Blade servers worden gebruikt om de schaalbaarheid van serverrekken te verbeteren Mobiele data-centers: complete werkende data centers die geïnstalleerd zijn in containers en veprlaats kunen worden met vrachtwagens. Wet van Moore Voorspeld in 1965 door Gorden Moor, een van de oprichters van intel\ Zijn wet betreft de miniaturisatie van chips : ‘aantal transistoren op een chip verdubbelt elke 2 jaar’ Zijn voorspelling klopt min of meer, maar er zijn vragen rond de toekomst Data representatie in bits en bytes - Serie bits: = alle informatie die in een computer wordt opgeslagen, ook wel binary digit genoemd → heeft waarde tussen 0 en 1 → wordt opgeslagen in een transistor - Byte: = groepering van een aantal bits → byte-lengte = 8 bits, dus 28 mogelijke combinaties of 256 → een getal opgeslagen in byte kan dus een waarde hebben van 0 tot 255 - Tekenset: = bevat afspraken over welk karakter door welke byte worden gerepresenteerd Belangrijke tekensets zijn: 1. ASCCI: American national Standard Code for Information Interchange (ASCII) gebruikte initieel slechts 7 bits, waardoor 27 of 128 tekens konden weergegeven worden. Later werd extended ASCII gedefinieerd, dat 8 bits per byte voorschreef. Hierdoor konden onder andere tekens met accenten toegevoegd worden, die meer gebruikt worden buiten de Engelse taal. Vb.:De letter ‘a’ wordt in extended ASCII weergegeven door de byte 01100001 2. EBCDIC : de Extended Binary Coded Decimal Interchange Code (EBCDIC) werd ontwikkeld door IBM voor gebruik op mainframe computers. EBCDIC gebruikt 8-bit bytes. De representatie van karakters is gebaseerd op de ponskaarten die vroeger in mainframes gebruikt werden. Vb.: In EBCDIC wordt de letter ‘a’ weergegeven door de byte 10000001. 3. Unicode: Unicode is ontwikkeld met als doel alle gebruikte schriften (inclusief bv. het Griekse en het Chinese schrift en braille) te kunnen weergeven. Gezien het groot aantal tekens dat hierdoor beschouwd wordt, gebruikt de volledige Unicode tekenset maar liefst 32 bits (UTF-32 genaamd). Om opslagvereisten toch te kunnen beperken, kunnen kleinere versies van de Unicode tekenset gebruikt worden. UTF-16 gebruikt 16 bits en bevat geen Chinese tekens. UTF-8 gebruikt 8 bits en biedt dezelfde tekens als extended ASCII. In UTF-8 wordt de letter ‘a’ weergegeven door 00111101. Afbeelding wordt weergegeven door een bitmap, is een raster waarvan de cellen pixels worden genoemd Quantum computing Kwantumcomputer = nieuw soort computer waarbij de processor gebruikt maakt van de principes van de kwantummechanica. → niet gebaseerd op bits, maar op qubits. Kwantumprocessor kan in een keer (parallel) dezelfde berekeningen uitvoeren als een zeer grote hoeveelheid data → veel sneller dan conventionele computer → doorbreekt de evolutie van hedendaagse processoren en Wet van Moore Toepassingen: wetenschappen, simulaties, ook kraken van sleutels van huidige technologie die niet op dit moment niet te kraken zin in een degelijke tijd 2.2. Netwerken Verbinding tussen mainframe en terminals waar eindgebruikers op werkten kan beschouwd worden als een vorm van netwerk, in werkelijkheid zeer trage verbinding Packet Switching netwerken Principe van packet switching = gegeven worden opgesplitst in kleine pakketten en worden verzonden over het netwerk, waardoor meerdere computers tegelijkertijd gebruik kunnen maken van het netwerk Internet Eind jaren ’60: ontwikkeling van ARPANET ( eerste operationele packet switching netwerk) door militaire onderzoeksinstellingen van de Amerikaanse overheid. → regels en afspraken die voor communicatie tussen computers zorgden (= netwerk-protocol) verschilden bij verschillende netwerken. Hierdoor konden computers vaak niet communiceren. → CSNET: focuste op computer science → BITNET: verbond IBM mainframes in educatieve instellingen → NSFNET: verbond toenmalige vijf supercomputers in Amerika Deze netweken bestonden allemaal naast elkaar en gebruikte verschillende protocollen Jaren ’80: ARPANET evolueerde tot internet; een robuust wereldwijd en uitbreidbaar netwerk door standaardisatie protocollen naar TCIP/IP (1983) en vervolgens naar ontstaan van Domain Name System (DNS) dat domeinnamen toekent aan IP-adressen, hierdoor werd internet een feit Doorbaak internet hing samen met standaardisatie op verschillende vlakken: - Transmission Control Protocol/Internet Protocol (TCP/IP): netwerkprotocol dat toelaat om pakketten met informatie te adresseren, versturen en ontvangen over Internet. - HyperText Transfer Protocol (HTTP): netwerkprotocol dat toelaat hypertexts (teksten met hyperlinks in HTML) te verzenden over Internet - Hypertext Markup Language (HTML): standaardtaal voor de opmaak én inhoud van teksten en documenten op websites (XML-variant) Mobiele netwerken → jaren ’70: ontwikkeling mobiele netwerken → 1973: eerste mobiele telefoon (Motorola), aan einde decennium werd ontwikkeling eerste mobiele netwerk gestart → jaren ’80: ontstaan eerste commerciële netwerk, voorzitter Vodafone eer om eerste oproep via mobiele internet te ontvangen → jaren ’90: GSM-netwerk opgebouwd, initieel enkel voor spraak en SMS en niet voor data-verkeer → door ontwikkeling mobiele netwerk gemakkelijker om Internet-of-Things apparaten in te zetten, WI-FI = technologie voor draadloze netwerken, gebaseerd op protocol 802.11 dat gedefinieerd is in 1997 Bereik: enkele tientallen meters Grote voordeel: wegvallen van de noodzaak van bekabeling → in- of opbouwen van kabels niet meer nodig. Origineel 1 megabit/sec, maar nu meer dan 1 gigabit/sec, hierdoor werd WI-FI volwaardig alternatief voor bekabelde netwerken WI-FI netwerken worden beveiligd door authenticatie en versleuteling, gebruikte protocollen niet perfect veilig en ook in laatste (WPA2) beveiligingslekken gevonden. Wardriving = activiteit waarbij men met een auto en een laptop met software voor sniffing (verkeer afluisteren) rondrijdt, opzoek naar onbeveiligde netwerken, maar zonder effectief verbinding te maken – men luistert enkel het verkeer af. Publieke Wi-Fi: de mogelijkheid om gebruik te maken van Wi-Fi van andere gebruikers op hetzelfde netwerk. Van dezelfde provider (binnenland) of van een samenwerkende provider (buitenland) Repeater: een toestel dat een Wi-Fi signaal versterkt. Zorgt voor groter bereik, voor bijvoorbeeld slaapkamers, garage, tuin. Evenwel wat lagere snelheid Draadloze mesh netwerken: Wi-Fi routers die op een intelligente wijze zorgen voor een verbinding met het netwerk ipv alles via bekabeling of één router met repeaters. Dit kan lokaal (in huis of organisatie) of landelijk, bijvoorbeeld derdewereldlanden Bluetooth Eenvoudige technologie voor goedkope korte afstandsverbindingen tussen apparaten. Eén zender, meerdere ontvangers, geen routers, netwerken nodig, authenticatie en versleuteling Voorbeelden: Bluetooth printer, Bluetooth draadloze toetsenborden (bvb voor tablet), Draadloze hoofdtelefoons, Draadloze luidsprekers, Autoradio’s Cloud-computing = bepaalde server-capaciteit op internet wordt voor een bepaalde tijd verhuurd Soorten: 1. Infrastructure as a Service (IaaS) → hardware 2. Platform as a Service (PaaS) → hardware + besturingssysteem 3. Software as a Service (SaaS) → hardware + besturingssysteem + applicaties (vb.: google doc) Conclusie 4. Hoofdstuk 3: informatiesysteemontwikkelingen Golf 1: ’60-’70, ook ’80 (ontwikkelen maatwerk), maatwerk kwam als nadeel dat verschillende organisaties varianten maken van dezelfde systemen => duur Golf 2: werd getracht om meer standaardpakketten te ontwikkelen, softwareleverancier kan kosten verdelen onder verschillende klanten. Doorbrak van de Enterprise Resource Planning (ERP)- pakketten. In jaren ’90. Golf 3: rond 2000, software modules die over internet met elkaar communiceren, opende perspectief dat informatiesystemen kunnen worden ontwikkeld als wereldwijde, geïntegreerde systemen. (meerlagige architecturen, webtechnologie, web services) 3.1. Golf 1 – maatwerk Gekenmerkt door maatwerk, organisaties bouwden zelf softwaresystemen volledig naar eigen wensen, gebruikmakend door een waaier van programmeertalen Programmeertalen - Eerste generatie programmeertalen (1GL): machinetalen → beschrijft welke instructies op welke data (opgeslagen in registers) uitgevoerd moeten worden door de CPU (central processing unit). Programmeur moet elke instructies van ALU en control unit ingeven in numerieke vorm (binair of hexidecimaal) → Numerieke instructies, processor-afhankelijk → Moeilijk leesbaar, veel fouten => weinig gebruikt nu - Tweede generatie programmeertalen (2GL): assembly talen → moesten programmeren toegankelijker maken door betere begrijpelijkheid. Introduceerde korte tekstcodes die de numerieke instructies vervangen. Dit maakt het makkelijker om deze instructies te onderhouden en geschreven programma’s te begrijpen. → een programmeerinstructie komt overeen met een processor-instructie, hierdoor schrijven assembly zeer complex en nog steeds processor-afhankelijk → uitdrukken programmeerinstrcuties in andere taal dan machinetaal heeft gevold dat computers instructies niet meer begrijpen → moeten dus opnieuw vertaald worden → assembly-broncode wordt door assembler vertaald naar machinecode →Tekst-codes ipv numerieke instructies , processor-afhankelijk => beter leesbaar →Moeilijk leesbaar, veel fouten => weinig gebruikt nu - Derde generatie programmeertalen (3GL): procedure talen → vereisen niet meer dat er per processor-instructie een programmeerinstructie wordt gegeven. Programmeur geeft in procedurele taal stap voor stap op hoe bepaalde taak uitgevoerd moet worden. → procedure talen maken abstractie van individuele processor-instructies, instructies zoals ze zijn opgesteld worden samen de broncode genoemd en dit wordt opgeslagen in bronbestand. Vertaalde code opgeslagen in object file, deze wordt in primaire geheugen geladen en bevat instructies voor processor. → twee types vertalers om procedurele programmeerinstrcuties in meerdere machinetalen om te zetten: compilers en interpreters o Compiler: werkt op zelfde manier als assembler: volledige broncode (Source Code) wordt ingelezen en vertaald naar machinetaal in een object file Vb.: java, C++, C# o Interpreter: zet instructie per instructie om in machinetaal, zonder object file, bij elke uitvoering wordt programma opnieuw vertaald Vb.: python, javascript → gestructureerde programmeertalen: 3GL o COBOL (’60): Common Business Oriented Language; taal specifiek voor zakelijke omgevingen bedoeld was → doel: programma’s maken die makkelijker door programmeur te schrijven waren en later ook beter te lezen → Pascal (’70), werd gebruikt voor educatieve doeleinden → object-georiënteerde programmeertalen: 3GL Vb.: Java,.NET, python = specifiek type derde generatie programmeertalen, bestaat uiy objecten die met elkaar communiceren. Object is vaak digitale representatie van een ding in de reële wereld (=antropomorfisme) o objecten bevatten data/attributen, en procedures/methoden o klasse beschrijft algemene kenmerken van een bepaald type objecten o objecten zijn dan instanties van een bepaalde klasse, instantie is het concreet maken van klasse door specifieke waarden toe te kennen aan attributen o communicatie tussen objecten gebeurt via berichten of messages o encapsulatie (=information hiding) is het versturen van berichten tussen objecten en is enige manier om data te verkrijgen omdat attributen van object niet rechtstreeks toegankelijk zijn → belangrijk kenmerk van object-oriëntatie → verbergt complexiteit van specifieke programmatie van de klasse voor objecten van andere klassen - vierde generatie programmeertalen (4GL): niet-procedurele talen programmeur moet niet langer procedure specifiëren die programma moet volgen, maar moet gewenste resultaat opgegeven worden → programmeer-proces vereenvoudigen en fouten-vrij maken → SEQUEL (Structured English Query Language), ook wel SQL genoemd; jaren ’70 ontworpen om data uit IBM rationele databanksysteem System R te halen → meest gebruikte vierde generatie talen - vijfde generatie programmeertalen (5GL): natuurlijke taal programmeertalen proberen programmeur in natuurlijke (menselijke) taal de functie van programma op te laten geven. Vertalers die nodig zijn om deze programma’s in machinetaal om te zetten zijn zo complex dat dit soort programmeertalen (nog) niet doorgebroken is Modulariteit Modulariteitsperspectief bestaat software uit modules en komt het bouwen ervan neer op het bouwen van een modulaire structuur Algemeen: module wordt gedefinieerd als deel van systeem, die een duidelijke grens of interface heeft met de rest van het systeem. → interface kan beschrijven worden als een ingang-uitgang model waarbij invloeden uit de omgeving op de module (ingang) leiden tot bepaalde effecten (uitgang) die door de module in de omgeving veroorzaakt worden In software wordt module dus beschouwd als een afgescheiden deel met naam van de module (functie/verantwoordelijkheid beschrijft en gebruikt wordt om module aan te roepen), inkomende gegevens (input-parameters) en uitgaande gegevens (return-waarden) Applicatie is een hoeveelheid modules bijeen, programmeur gebruikt hiervoor programmeertaal die constructen bevat. Construct is een instructie in de programmeertaal waarbij een module wordt aangemaakt. Eigenschappen module: - black box: = module kan aangeroepen worden wonder dat de aanroeper (mens/software) kennis heeft met de binnenkant van de module, of nog, de instructies Voordeel: leidt tot complexiteitsreductie - white box: = module die haar interne werking wel laat zien, instructies van module moeten worden nagekeken als er bvb een foutief resultaat is dus er is minder/geen sprake van complexiteitsreductie Definitie modulaire structuur: Een modulaire structuur bestaat uit een aggregatie van modules; Een applicatie bestaat uit een modulaire structuur met modules en de interacties ertussen Definitie Modulariteit: Modulariteit verwijst naar de mate waarin een artefact of programma is opgedeeld in modules, of nog, de mate waarin de fijnmazigheid of granulariteit → lage granulariteit: weinig modules in artefact, of bestaat artefact uit één grote module (= monoliet of monolithische applicatie) → hoge granulariteit: meerdere of relatief veel kleine modules in artefact Voordelen Modulariteit: - Aanpasbaarheid: verwijst naar flexibiliteit en aanpasbaarheid tijdens ontwikkelingsfase, door o.m.: → complexiteitsreductie: black box modules → geen/minder ripple effects: veramderingen aan de instrcuties van een module hebben geen/minder impact op andere modules bij hogere granulariteit - Hergebruik: Module werd rechtsreeks ontwikkeld in de context van een vorige applicatie, wordt ook gebruikt voor de huidige applicatie in plaats van deze opnieuw te ontwikkelen → Not Invented Here-syndroom: neiging om alle modules die niet in eigen organisatie werden ontwikkeld, opnieuw te ontwikkelen i.p.v. te hergebruiken Deze verwijzen naar een soort plug-and-play beeld van software, applicaties die initieel ontwikkeld worden met hoge niveaus van hergebruik en dan goed evolueerbaar blijven omdat er voortdurend modules kunnen worden vervangen met weinig inspanning → bepalen kwalitatief hoogstaand modulaire structuur is een zeer belangrijk aandachtspunt bij bouw van informatiesystemen en meer bepaald bij ontwerpfase van software → ontwerpfase kan gezien worden als overbruggen van zogenaamde functionele/constructieve kloof. → geeft aan dat niet evident is om oplossing te bouwen in ontwerpfase (constructief) voor probleem dat beschreven is in analysefase (functioneel). Integendeel, bij ontwerp is er vaker sprake van een wicked problem → Wicked (= ill-illustrated) design problems: onvolledige en ambigue specificatie van probleem, kennis meerdere domeinen dient geïntegreerd te worden om oplossing te vinden, geen duidelijke criteria om oplossing te vergelijken/evalueren, meerdere oplossingen mogelijk Relationele databanken Databanken ontstaan als antwoord op beperkingen van opslaan data in bestande of files. Bestanden: bestand is een structuur om gegevens te bewaren op bijvoorbeeld een harde schijf op een computer of server Besturingssysteem (operating system) biedt functionaliteit om bestanden te lezen en schrijven → nadelen van bestanden: - Integratie: → elke applicatie slaagt data op in een eigen bestandformaat dat specifiek is voor die applicatie, zowel semantiek als syntax, draagt bij tot de eiland-automatisatie → gegevens worden redundant opgeslagen wat leidt tot update anomalieën, waardoor gegevens in een inconsistente staat terecht komen - Gelijktijdigheid en beveiliging: Als meerdere gebruikers gelijktijdig dezelfde gegevens willen schrijven, bestaat het risico dat ze elkaars wijzigingen overnemen Databanken = geïntegreerde gegevensverzamelingen, los van specifieke applicaties. Bij databanken is het de bedoeling dat meerdere applicaties data opslaan in deze databank, waardoor redundantie kan vermeden worden Databanken bieden naast geïntegreerde en gelijktijdige toegang tot data, ook functionaliteit op gebied van beveiliging. Snelle CRUDS (create-read-update-delete-search) operaties toe, zelf bieden ze geen complexe, algoritmische verwerking aan. Terminologie: - data - programmatuur software die instaat voor verwijderen van gegevens wordt de DataBase Management Systems (DBMS) genoemd. Voordelen databanken: → data opslag onafhankelijk van syntactische details → gelijktijdigheid en beveiliging, data beveiligd tegen niet-geautoriseerd toegang → integratie: verschillende applicaties kunnen één en dezelfde database gebruiken Databanken realiseren integratie TUSSEN applicaties (inter-applicatie integratie) en vermijden zo redundantie Types databanken: - hiërarchische databanken: = data representatie o.b.v. bomen - netwerk databanken: = data representatie o.b.v. netwerken - relationele databanken: = data representatie o.b.v. tabellen → theoretische basis gepubliceerd door E. Codd (1970), met grootschalige doorbraak eind jaren ‘70 → veel gebruikt voor diverse types informatiesystemen → werkt met 4GL structured query language (SQL) → minder geschikt voor semi-gestructureerde data, wel voor gestructureerde - nieuwe types databanken: → object-georiënteerde → geografische databanken: semantiek coördinaten, percelen, … → NoSQL databanken: gericht op zeer grote databanken, zoals bij Business Intelligence 4.2. Golf 2 – pakketten Eind jaren ’80; aantal zwakke punten qua software: maatwerk zeer duur en in veel organisaties veel sprake van eilandautomatisering (= departementale informatiesystemen waartussen geen of zeer beperkte integratie bestond) Jaren ’90; nadelen werden geadresseerd door een grote nadruk op software pakketten: software die niet op maat is voor organisatie maar aangekocht kan worden en dor verschillende organisaties gebruikt kan worden (= Make or Buy beslissingen) Standaardpakketten sinds jaren ’80: opkomst standaardpakketten, ondanks dat ze vooral gericht waren op productiviteitstoepassingen (=eindgebruikerstoepassingen) en ook gericht op marketing, accounting en andere bedrijfskundige domeinen standaardpakketten = evolutie naar standaardisatie op vlak van software ERP-systemen = Enterprise Resource Planning – pakketten Voorgeschiedenis: → Material Requirements Planning (MRP) → Manufacturing Rescource Planning (MRP II) Omdat ERP-pakketten functionaliteit bevatten voor quasi alle afdelingen van een organisatie, kunnen we zeggen dat het gaat om bedrijfsbrede standaardpakketten. Deze functionaliteit werden geïntegreerd op database niveau ERP-pakketten = bedrijfsomspannende pakketten, met functionaliteit voor alle afdelingen van een organisatie. → bestaan uit (zeer) grote (relationele) databank, die niet leeg is, maar gevuld is met tabellen, formulieren, rapporten, berekeningen, … → betreffen zowel F- als C-laag F-laag: functionaliteit zoals bedrijfsprocessen, datastructuren voor elk departement (domeinkennis accountancy, finance en logistiek) C-laag: software → grote troef: integratie ERP-pakketten realiseren inter-applicatie en inter-departementele integratie => ‘enterprise IS’ Bevatten functionaliteit voor zowel TPS, DSS, MIS, ECS, als portalen 4.3. Golf 3 – web services Opkomst in jaar 2000 zorgt voor de 3e golf. Meerlagige structuren Gebruiken van lagen gaat hier om het bepalen van welke software verantwoordelijk is voor uitvoeren van welke functionaliteit. Hierbij is over de jaren een evolutie van 1-lagen naar 2 -lagen en n-lagen architecturen merkbaar - 1-laag architectuur: alle kerntaken (input, verwekring en output) uitgevoerd op dezelfde hardware en software → verwijst naar zeer gecentraliseerde manier van verwerking, waarbij alle input, verwerking en output door één hard- en software platform werden uitgevoerd → jaren ’60-‘70 - 2-lagen architectuur: Deze architectuur ook wel client/server architectuur genoemd. → server beschikt over bepaalde diensten die gebruikt kunnen worden door clients. Communicatie tussen server en client verloopt meestal over computernetwerk → clients initiëren communicatie met server door service request te sturen. Server luister dus naar deze request op het netwerk. → indien client zelf nog (relatief) veel taken uitvoerd, wordt er gescproken van een fat client of thick client →indien client (relatief) weinig taken uitvoert, wordt er gesproken van een thin client → dor onderscheid tussen rollen client en server wordt deze architectuur ook wel two-tier architectuur genoemd → jaren ‘80 - 3- en 4-lagen architecturen: → gedistribueerde verwerking: verwerking gebeurd steeds op meerde hard- en software platformen ipv een gecentraliseerde → eerste laag: databank-laag, biedt toegang tot opgeslagen gegevens, hier worden vaak relationele databanken gebruikt, met SQL als gestandaardiseerde taal om met databanken te communiceren → tweede laag: applicaties, gegevens uit verschillende databanken gebruiken. Hier worden bewerkingen uitgevoerd die specifiek voor de applicatie op toepassingsdomein zijn → derde laag: user interface, eindgebruikers kunnen op computer via een client toegang krijgen tot applicatie op applicatie-server. User-interface (voor gebruiker) bevat elemeten die door verschillende servers geleverd worden  In deze drie lagen wordt er dus een thin client gebruikt, i.t.t. een thick client Voordelen 4-lagen architecturen → implementatie optimaliseren qua performantie en schaalbaarheid, men kan niet alleen elke laag installeren op verschillende servers, maar ook meerdere servers inzetten voor elke laag (=load balancing) → aanpasbaarheid: men kan stukken software vervangen zonder dat dit gevolgen heeft voor werking volledige programma → mogelijkheid om berekeningen centraal uit te voeren en aan te roepen vanuit meerdere toepassingen → complexiteitsreductie en specialisatie: een deel van architectuur bouwen zonder rekening te moeten houden met andere delen. Voorbeeld: user interface onafhankelijk ontwikkelen van de achterliggende databank, application server of web server. Zo kunnen ze sterk specialiseren in één technologie. 4 lagen architectuur laat dus specialisatie toe Web services = functionele modules die volgens een meerlagige webarchitectuur geïmplementeerd worden. Ze zijn een doorgedreven implementatie van concept Modulariteit → circa 2000 Web services moeten kunnen draaien op alle soorten hardware en besturingssystemen. Daarnaast moeten we services kunnen samenstellen uit web services, die gemakkelijk kunnen vervangen worden. Gaat niet met standaardpakketten. Als men bepaald deel van zo’n pakket wou gebruiken moet men beschikken over het hele pakket Web service is concreet een module bestaande uit aantal objecten waaraan een interface wordt toegevoegd zodat module kan aangeroepen worden over internet door andere web servies en zelf andere web services kan aanroepen over internet Interface in figuur wordt aangeduid door pijlen tussen webserver en applicatie recht, ook wel API (Application Programming Interface) genoemd. API vormt manier waarop programmeur van server/applicatie de web service kan oproepen Om web services over internet internet ander web services te laten aanroepen, werden aantal standaard netwerkprotocollen voorgesteld zoals SOAP en WSDL - SOAP: Simple Object Acces Protocol XML-bomen voor gegevensuitwisseling tussen Web Services - WSDL: Web Services Definition Language Beschrijft interface van web-service, ook wel API genoemd → input parameters → naam web-service → output parameters - UDDI: Universal Description, Discovery and Integration Databank voor WSDL-documenten van beschikbare serives\ 2004: voorstelling REST-architectuur voor web services → REST (REpresentational State Transfer) is geen netwerkprotocol, maar architectuur om Web Services te bouwen → gebaseerd op standaardprotocol van internet (HTTP) → gericht op uitwisselen bestanden en media → in context diverse, heterogene, hardware-platformen Kernbegrippen REST architectuur: - Client server: de client vraagt een service bij een server. De server antwoordt door de service uit te voeren, of weigert de vraag - Stateless: een server houdt geen informatie of status bij van de voorbije vragen of interacties met de client. bv. in de context van een winkelwagentje in een webwinkel, dat de server niet bijhoudt wat de client enkele seconden geleden reeds vroeg. Dit moet worden bijgehouden door de client. - Cacheble: door het stateless karakter van de interactie tussen client en server, komt het frequent voor dat de client dezelfde of gelijkaardige vragen stelt aan de server, wat de performantie verlaagt. Dit wordt geadresseerd door aan de kant van de client een cache geheugen bij te houden, waarin de antwoorden op vorige vragen tijdelijk worden bijgehouden In REST wordt gebruik gemaakt van Uniform Resource Identifiers (URL) om L) om resources te identificeren. In REST kunnen operaties aangeroepen worden als: - GET: lezen - POST: schrijven - PUT: updaten - DELETE: verwijderen Operaties zijn gelijkaardig aan CRUD-operaties in Relationele Databanken, maar in rest gericht op: - Gedistribueerde, Internet-gebaseerde structuur - Gestructureerde, semi- en ongestructureerde data Een van recentste ontwikkelingen op vlak van web services, zijn de micro-services. Dit is een architecturale stijl, waarbij benadrukt wordt dat de granulariteit van web services fijnmazig dient te zijn, m.a.w. een architectuur die dient te bestaan uit relatief veel, relatief kleine web services en vormt tegenovergestelde van grote, monopolistische systemen → voordelen micro-services: - Flexibiliteit: losse koppeling tussen micro-services - Betrouwbaarheid: als er een uitvalt, blijven de andere werken - Testbaarheid: kunnen allemaal individueel getest worden - Kleine teams: kunnen gebouwd worden door kleine ontwikkelteams, elimineert complexiteit grote teams Cruciale kenmerk van web services (duidelijkste zichtbaar bij micro-services) is het modulair karakter. Men spreekt van het assembleren van software i.p.v. programmeren. Web services zijn dit moment de meest krachtige constructen om software qua hergebruik, integratie en evolueerbaarheid een soort ‘plug-and-play’-karakter te bezorgen. 4.4. Enterprise architectuur Poging om complexiteit te beheersen die samenhangt met steeds groter wordende verzameling van informatiesystemen in organisaties, van maatwerk tot standaardpakketten. Volledige verzameling informatiesystemen, van functioneel tot constructief niveau wordt ook wel de enterprise architectuur genoemd. Belangrijke kenmerken: complexiteit en verandering. Complexiteit of grootte komt voort uit feit dat focus niet ligt op informatiesystemen maar op totale verzameling/volledige landschap. Ook verandering is belangrijk, organisaties functioneren steeds meer in een snel wijzigende omgeving, en wijzigingen kunnen niet alleen individuele informatiesystemen beïnvloeden, maar aanzienlijke delen van volledige landschap → geeft mogelijk nog moeilijkere problematiek dan wijzijgen aan individuele informatiesystemen Binnen enterprise architectuur ook veel aandacht voor integratie. Zogenaamde Enterprise Service Bus (ESB) voorgesteld om verschillende systemen te integreren 5. Hoofdstuk 4: methodologieën voor systeemontwikkelingen 5.1. Methodologieën Vanaf ontstaan eerste computer werden er informatiesystemen gebouwd, maar alles dat hier bij kwam zien bleek veel complexer te zijn dan verwacht (programmeren, onderhouden) Toen gebeurde die systeemontwikkelingen ook tot op grote hoogte ad hoc (voor dit geval) → elke programmeur of groep van programmeurs gebruikte andere manier om systemen te bouwen → elke programmeur deed het anders waardoor het wil telkens werd heruitgevonden Deze factoren waren drijfveren om een systematische manier te vinden om systemen te bouwen, de wetenschappelijk bewezen tot goede of zelfs uitstekende resultaten zouden leiden, deze manier wordt ‘methodologie’ genoemd, en gebied dat zich richt op bouwen van informatiesystemen worden ‘systeemontwikkelingen’ genoemd. Definitie: streven naar een systematische, wetenschappelijke onderbouwde aanpak Vb: “comprehensive guidelines to follow for completing every activity in the systems development life cycle, including models, tools and techniques”1 , of nog, “een aanbevolen geheel van filosofieën, fasen, procedures, regels, technieken, tools, documentatie, management en training voor ontwikkelaars van informatiesystemen” → geven aan dat een methodologie omvangrijk of allesomvattend (comprehensive) moet zijn. → sommige organisaties geven voorkeur aan eigen methodologieën en anderen aan die van een externe partij Vb.: - Unified process (UP) - Scrum - Agile methoden 5.2. Enkele definities Bij beschouwen van een methodologie wordt er een onderscheid gemaakt tussen processen en producten: - Processen: = volgorde waarin bepaalde activiteiten of fasen worden uitgevoerd Vb.: watervalmodel en iteratieve (stelselmatige herhalingen) processen - Software producten: = resultaten van zo’n activiteit Vb.: software, document met vereisten en modellen - Techniek: = beschrijft hoe een activiteit kan uitgevoerd worden Vb.: interviewtechnieken om vereisten te bepalen en technieken voor datamodellering - Model: = het product van een activiteit en is qua vorm dikwijls semi-formeel, grafisch model → Voorbeeld data modellering: entity-relationship (ER)-model om data in bepaalde organisatie te bschrijven → voorbeeld proces modellering: Business Process Modeling Notaton (BPMN)-model om een proces in een bepaalde organisatie te beschrijven Hogergenoemde semi-fromele modellen worden meestal weergegeven in grafische notaties en niet in natuurlijke taal of wiskunde of logische notatie. Een grafische notatie heeft voordelen qua communicatie. Laatste decennia zijn er veel notaties ontstaan zoals: - Entity Relationship-modellen - Voor procesmodellen werpt BPMN zich op als nieuwe standaard - Sinds jaren ’90 is Unified Modeling Lnaguage (UML) uitgegroeid tot standaard in theorie en praktijk Voor uitvoeren van alle activiteiten zijn tools nodig. Tool = geautomatiseerde hulpmiddelen/software om een activiteit uit te voeren → tekenprogramma’s voor grafische modellen, project management software, compilers, Computer Aided Software Engineering (CASE) tools en vele anderen Methodologieën kunnen uit alle bovenstaande componenten bestaan: zowel processen, als technieken om bepaalde producten te maken bevatten → deze producten bestaan vaak uit modellen die in bepaalde grafische notatie worden uitgedrukt, al dan niet met ondersteuning van een tool. → data modellering is een techniek waarvan resultaten bijvoorbeeld gedocumenteerd worden in ER- modellen waarvoor verschillende notaties bestaan → proces modellering is een techniek waarvan de resultaten bijvoorbeeld gedocumenteerd worden in modellen op basis van de BPMN-notatie 5.3. Watervalmodel = procesmodel dat rond 1970 werd voorgesteld door Royce, maar dat nog steeds gebruikt wordt. Er zin varianten, maar in essentie bestaat het uit het sequentieel uitvoeren van de fasen project management, analyse, ontwerp, programmeren, testen en onderhoud Kenmerken: - Sequentieel uitvoeren van 6 activiteiten: Fasen volgen elkaar op zonder overlap, maar in sommige varianten wordt overlap toegestaan om doorlooptijd te verkorten - Document-gebaseerd: Einde elke fase wordt product gemaakt dat formeel akkoord moet krijgen van alle belanghebbende, dit kan document of software zijn, formeel akkoord moet in vorm van een handtekening zijn - Lange tijd tussen begin en einde project: Weinig of geen feedback van eindgebruikers aan ontwikkelaars tijden een project, kan voor problemen zorgen als vereisten veranderen tijdens het project Project management Project = planned undertaking with a beginning and an end that produces a predetermined result and is usually constrained by a schedule and resources Project is in zeker mate uniek, wat het verschillend maakt van productie → omdat project in zekere mate uniek is, zijn er altijd bepaalde risico’s mee verbonden die d.m.v. project management onder controle moet worden gehouden, kunnen van bedrijfskundige aard zijn of technische aard Project management heeft betrekking op het plannen en opvolgen van projecten. Wordt altijd gekekn naar meerdere variabelen zoals tijd, kost en kwaliteit → kwaliteit: omvang van het project en kwaliteitsfactoren zoals onderhoudbaarheid, herbruikbaarheid, correctheid, … van software. Afweging tussen deze 3 variabelen wordt gegeven in de zgn. project managemtn driehoek; Project management dikwijls verzorgd door bedrijfskundigen, relevante vragen in deze fase: - Welke omvang (scope) heeft het project? Bepaald worden obv bedrijfskundige strategie, missie, … - Welke belanghebbende (stakeholders) zijn er in dit project? Financier, project manager, eindgebruiker, technici, belanghebbende, … - …. Analysefase = bepalen wat het informatiesysteem moet doen, of nog, de vereisten (requirements) volledig, consistent en ondubbelzinnig in kaart brengen en neer schijven in een document dat de vereistenspecificatie heet Hoofdrolspelers zijn de bedrijfskundigen die als eindgebruikers de vereisten kennen en de analist die opgeleid is om analysetaken uit te voeren. Soms is naast eindgebruiker ook financier in project betrokken of project manager die mee vereisten regelt In deze fase is betrokkenheid van bedrijfskundigen zeer hoog: vereisten worden in eerste plaats bepaald door bedrijfskundigen en iet door ontwerpers of programmeurs. Vereistenspecificatie is het instrument waarvan ontwerpers zullen vertrekken voor het bouwen van het informatiesysteem. → hierdoor is analyse HET sleutelmoment of kantelpunt in watervalmodel waar bedrijfskunde en ICT elkaar raken Eerste stap analyse: vereisten verzamelen door afnemen van interviews met eindgebruikers en andere belanghebbende, ander manieren zijn documentatie van bestaande bedrijfsprocessen of informatiesystemen, vragenlijsten, observatie van bestaande bedrijfsprocessen en/of brainstrom sessies Watervalmodel gaat ervan uit dat eindegebruikers de vereisten kenne, waardoor analist een passieve rol speelt en deze ‘verzamelt en neerschrijft’. →eindegebruikers kennen soms nieuwe mogelijkheden van recente ICT niet waardoor ze sub- optimale vereisten zouden formuleren → co-creatie, analist meer actieve rol door mee te denkem met eindgebruiker om samen de vereisten te bepalen → meer innovatie vereisten ontwikkelen dan met klassieke opzet Resultaat van verzamen van vereisten is een document, waarin 2 soorten veristen worden neergeschreven in natuurlijke taal: - Functionele vereisten: → proces-vereisten: bij welke gebeurtenissen moet proces iets doen, wat moet het doen? → data-vereisten: over welke dingen moet gegevens worden bijgehouden? - Niet-functionele vereisten: → performantie: betrekking op snelheid waarmee het systeem dient te werken → onderhoudbaarheid: hoe flexibel het moet zijn (= evolueerbaarheid, aanpasbaarheid) → herbruikbaarheid: hoe gemakkelijke delen van het IS moet kunnen worden hergebruikt in andere IS’en →beveiliging: privacy en beveiliging tegen hackers Tweede stap: vereisten worden gemodelleerd, meestal door semi-formele, grafische notaties → Voordelen: - Complexitetisreductie: Modellen zijn abstractie van reële wereld en dus een vereenvoudiging. Data model bevat weinig of geen procesvereisten, de complexiteit van get opstellen van alle vereisten in IS’en wordt zo in kleinere stukken opgedeeld (=complexitetisreductie) - Fouten elimineren: Taalkundige correcte zin kan in een vereisten-document opgenomen worden, ook al is de inhoud onzin. Notatie van modellen zorgt ervoor dat bepaalde fouten niet gemaakt (gemakkelijk) kunnen worden - Communicatie met eindgebruikers: Vereisten-document in natuurlijke taal kan zeer omvangrijk worden en daardoor moeilijk leesbaar of communiceerbaar worden. Grafische modellen laten toe om bepaalde aspecten van vereisten zeer compact weer te geven Vereistenspecificatie bestaat zowel uit functionele als niet-functionele vereiste, die beschreven worden in natuurlijke taal en/of modellen Typisch voor watervalmodel is dat dit document-gebaseerd is, dus dat vereistenspecificatie op einde van de analysefase door alle belanghebbende voor akkoord moet ondertekend worden Ontwerp Ontwerpfase: aanvang nemen met bouwe van een informatiesysteem dat voldoet aan vereisten die werden vastgelegd in analysefase → beantwoordt ook de vraag : ”hoe moet informatiesysteem gestructureerd wordne om kwalitatief ‘goed’ te zijn? - Hoog-niveau ontwerp van software: = architectuur Welke zijn de subsystemen (modules) die onderscheiden kunnen worden? - Laag-niveau ontwerp van software: Hoe moet algoritmes van modules ontworpen worden? Hoe sorteer ik de reeks getallen? Hoe benoem ik variabelen? … Er is geen ‘optimaal’ ontwerp voorde meeste systemen, elke ontwerp heeft zin voor- en nadelen in termen van kwaliteit. Taak ontwerper om meest geschikte ontwerp te kiezen Ontwerp software is technische aangelegenheid en wordt niet uitgevoerd door bedrijfskundigen, kennis bedrijfskundige helpt om analysefase sneller en diepgaander te begrijpen dus daarom kunnen ontwerpers ook hybride profielen zijn (zowel bedrijfskundige als ICT) Er is ook aandacht voor ontwerp van (computer)netwerken, databanken, user interfaces en andere aspecten Watervalmodel is in strikte zin vereist dat op einde ontwerpfase, een document wordt geproduceerd at voor akkoord ondertekend wordt door betrokken belanghebbende. Dat akkoord is essentieel om aanvang te kunnen nemen in implentiefase, die dikwijls ook langste en duurste fase is Programmeren = implementatiefase Doel: ontwerp zodanig programmeren in programmeertaal dat er een software van hoge kwaliteit ontstaat. Kwaliteit verwijst naar niet-functionele vereisten die in analysefase werden vooropgesteld. Voorbeelden van vragen in implemenatiefase: - Keuze programmeertaal: Meest gebruikte zijn de.NET-programmeertalen en JAVA, nu ook Python Perl en PHP - Technische vragen Welke instructie gebruik ik om iets af te drukken Hoe declareer ik mijn variabelen? Nu ook in grote mate een manuele aangelegenheid, wel zijn er nuttige tools die het manuele werk vergemakkelijken zo is er een hergebruik van bibliotheken die bepaalde standaardfuncties bevatten. Schermen van een user interface niet telkens opnieuw geprogrammeerd, maar beschikbaar gesteld door (niet-)commerciële partij in vorm van (software-)bibliotheek, die wereldwijd gebruikt worden. In watervalmodel komen de technische competenties van de programmeur in implementatiefase nooit in contact met de bedrijfskundige competenties van de eindgebruiker. De communicatie gebeurt via documenten die vanuit de analysefase via ontwerp bij programmeur komen Testen Onderscheidt tussen verificatie en validatie: - Verificatie: Nagaan of werking van systeem correspondeert met vereistenspecificatie zoals die in analysefase werd opgesteld → beantwoordt: “werkt het systeem correct?” - Validatie: Nagaan of systeem beantwoordt aan informatiebehoeften van eindgebruiker in realiteit → beantwoordt: “hebben we juiste systeem gebouwd?” Onderhoud Alle wijzigingen die hier nog worden gemaakt vallen onder onderhoud (4 soorten) - Perfectief onderhoud: = nieuwe functionaliteit toevoegen - Adaptief onderhoud: Wijzigingen om software naar ander platform brengen - correctief onderhoud: Corrigeren van fouten tijdens programmeren - Preventief onderhoud: Wijzigt functionaliteit niet, maar herstelt structuurdegradatie Belangrijk om te verwijzen naar de 2 wetten van M.M. Lehman: - Law of continuing change: Programma dat in reële wereld gebruikt wordt moet evolueren of het wordt minder en minder bruikbaar → nut software daalt over tijd tenzij er in antwoord op wijzigende gebruiksvereisten onderhoud wordt uitgevoerd - Law of increasing complexity: Structuur van een programma dat evolueert, wordt complexer met tijd, tenzij de nodige stappen worden ondernemen om dit tegen te gaan → wanneer er regelmatig wijzigingen worden aangebracht zal structuur van programma achteruit gaan (=structuurdegradatie). Om onderhoudbaarheid te verbeteren zal er regelmatig een herstructurering van de software moeten worden uitgevoerd dat dit fenomeen tegengaat (= preventief onderhoud) Watervalmodel - nuancering In strikte interpretatie volgen de fasen elkaar op zonder overlap, gevolg van document-gebaseerd karakter. Hierdoor is de doorlooptijd van het watervalmodel soms heel lang, daarom is er mogelijke variant om fasen gedeeltelijk te laten overlappen. Zo kunnen sommige ontwerpactiviteit al begonnen worde, terwijl analysefase nog niet helemaal is afgelopen Watervalmodel gericht op grote, complexe projecten. Bij kleine projecten waar alle belanghebbende elkaar ontmoeten en kennen is het niet altijd nodig om vereisten op papier te zetten of na elke fase formeel een handtekening te vragen Andere nuanceringen (verduidelijkingen) betreffen omstandigheden bij software pakket → ‘make or buy’-beslissing heeft gevolg dat ontwerp en programmatuur al grotendeels bepaald is in software pakket, bijna altijd moeten dergelijke pakketten aangepast worden aan specifieke noden van organisatie. (= configuratie & customisatie) Belangrijkste nuancering: watervalmodel impliceert dat het nodig is om alle behoeften van in begin van project vast te stellen. Zowel praktijkervaring als onderzoek hebben aangetoond dat dit niet altijd mogelijk is en dat eindgebruikers soms pas in latere fasen van project nieuwe vereisten aanbrengen omdat zij pas dan een duidelijke beeld hebben van alle mogelijkheden Belangrijkste alternatief: iteratief ontwikkelen → met gaat het juiste systeem bouwen in verschillende cycli, elke cyclus bestaat uit analyse, ontwerp en implementatie en duidelijk afgesloten met een mijlpijl (=milestone). Elke latere versie bevat meer functionaliteit dan vorige versie → spiraalmodel van Boehm is voorbeeld van iteratief ontwikkelingsmodel. → voordeel: risico’s worden teruggedrongen door tussentijdse feedback waardoor systeem overeenkomt met wat eindgebruiker wil 5.4. Scrum Rond 2000: voorstelling Agile Methoden Allemaal zeer iteratieve aanpak waarbij met relatief korte iteraties wordt gewerkt Scrum = gericht op dynamische, snel veranderende omgevingen waarin gebruikers niet exact weten wat hun vereisten zijn, en waarin deze waarschijnlijk veranderen over tijd →vertrokken van een product backlog, die een lijst is van vereisten waaraan het informatiesysteem moet voldoen en die beheerd wordt door product owner Verschil met watervalmodel is dat deze lijst niet volledig moet zijn, maar enkel de items dient te bevatten die men op dat moment belangrijk vindt. Wordt van prioritenten voorzien, en enkel aan belangrijkste prioriteiten gewerkt Scrum team bestaat uit een kleien groep ontwikkelaars die samenwerken om IS’en te bouwen. Grote projecten worden uitgevoerd door ze in kleinere op te delen die aan verschillende teams worden toegekend. Worden verwacht self-organizing te zijn, hier speelt de rol van scrum master eerder een rol van facilitator (=management functie) Scrum master stuurt het Scrum team aan, maar doet niet mee aan planningen of taken. Scrum sprint is periode waarin specifiek doel moet worden bereikt. Bij begin bepaalt team de planning voor de sprint op basis van de product backlog. Daarna worden analyse, ontwerp en implementatie uitgevoerd binnen periode van de Scrum sprint Bij Scrum is er een hogere mate van samenwerking tussen gebruikers en leden van het scrum teak. Beiden kunnen elkaar regelmatig contacteren, wat zorgt voor , i.t.t. het watervalmodel, tot meer fusie en co-creatie tussen business en IT waarmee klassieke kloof tussen bedrijfskundigen en meer technische profielen wordt overbrugd Scrum wordt veel gebruikt, maar er zijn ook beperkingen; bij grote projecten wordt deze iteratieve manier van werken niet tot goed resultaat geleid, werk wordt verdeel over grote hoeveelheden teams waardoor grote coördinatie- en integratie-spanning vereist is Recent wordt onderzocht hoe Scrum kan worden aangepast om dit tegemoet te gaan 6. Hoofdstuk 5: recente en nieuwe technologieën Nieuwe technologieën zijn: - Business Intelligence - Internet of Things (IoT) - Blockchain - Distributed Ledger Technology - Artificial Intelligence (AI) 6.1. Business Intelligence (BI) BI, Big Data, Data Science en Data Warehousing zijn gerelateerde termen die allemaal betrekking hebben op enorm toegenomen hoeveelheid data die nu beschikbaar is voor veel organisaties, en die kan worden verwerkt tot informatie of beschrijf kundige intelligentie. Deze data komt uit geautomatiseerde verzameling van gegevens en uit sensoren die ingebouwd zitten in steeds meet apparaten (IoT) BI is gericht op het verwerken, analyseren en opslaan van grote dataverzamelingen die afkomstig zijn uit heterogene bronnen. Big Data richt zich op specifiek vereisten zoals combineren van meerdere gerelateerde data sets, verwerken van grote hoeveelheden data en zoeken van informatie, ofwel in batch processing (= info pas beschikbaar na enige tijd) of stream processing (= in real-time waarbij nauwelijks of geen vertraging is tussen ontvangen en verwerken van data) Doel is Data driven decision making: nemen van beslissingen die niet gebaseerd zijn op intuïtie maar op wetenschap, en gebruik aken van uitgewerkte wetenschappelijke technieken en processen (= Data science) Procesmatig gaat het over ontwikkelen van uitvoerbare beslissingen of aanbevelingen), gebaseerd op historische data. → sluit sterk aan bij DIKAR-model: ook BI-systemen kunnen worden beschouwd als systemen die data omzetten naar juiste informatie voor de juiste persoon op juiste tijdstip → technisch geavanceerder, en gaat ook niet enkel over gestructureerde data, maar ook meer semi- gestructureerde data en ongestructureerde die online worden geraadpleegd of waarop geavanceerde algoritmische uitwerkingen plaatsvinden Eerste plaats moet organisatie data verzamelen, en opslaan in data warehouse Dan doorloopt met 3 verschillende analytische stappen: beschrijvende, voorspellende en voorschrijvende. Resultaat van elke stap kan men aan beslissingsmakers presenteren via dashboards, grafieken en andere hulpmiddelen Proces is iteratief, omdat het nieuwe vragen zal opwerpen die analyseproces opnieuw zullen opstarten, in elke analytische stap gebruikt met tools, van spreadsheets tot specifieke statistische analysetools Data management = data uit verschillende bronnen samenvoegen Vanaf ontstaan DDS in jaren ’70 , werd duidelijk dat model-gebaseerde verwerking zeer veel performantie vroeg → niet mogelijk om deze verwerking in real-time te doen op databanken die TPS ondersteunen → zou leiden tot onaanvaardbare vertraging in bedrijfskritische TPS, daarom gebruik gemaakt van batchverwerking, wat betekend dat verwerking gebeurt via piekmomenten (vb ’s nachts) Begin jaren ’90 kam voorstel om data warehouses aan te maken om dit probleem op te lossen, namelijk door het ter beschikking stellen van data op zodanige wijze dat die geanalyseerd kan worden los van operationele databanken (meestal TPS) Data warehouse = soort databank gericht op beslissingsondersteuning waarin data van de databanken van TPS worden gekopieerd. → op dit data warehouse kunnen dan vele soorten verwerking worden uitgevoerd, zonder performantie van TPS te impacteren Kopiëren van data naar databanken van TPS naar data warehouse gebeurt vaak in natch en wordt extraction, transformation and load (ETL) genoemd Extraction: = ophalen van data uit databanken TPS, kan gaan om tientallen verschillende databanken. Houdt aspecten van technische integratie in, aangezien het kan gaan over verschillende databanken. → Er worden ook foutencontroles gedaan, sommige kunnen automatisch worden gedetecteerd en gecorrigeerd worden, bij andere is er manuele interventie nodig, bij nog ander kan beslist worden om data niet verder te kopiëren naar het data warehouse Transformation: = data wordt geconverteerd (door bvb omzetten van bedragen in verschillenden munten naar één munt waarmee over tijd heen gerekend kan worden). Er dient ook gekenen te worden naar aggregatieniveau van de data → vaak wordt niet alle detail weergehouden, maar bvb verkoopgegevens enkkel per week bijgehouden en niet meer per dag. Load: = kopiëren getransformeerde data naar eigenlijke data warehouse. → op momenten dat er weinig performantievereisten zijn. → frequentie van load van belang om beslissingsnemers zo actueel mogelijk data te bezorgen → in sommige organisaties één data warehouse en in ander zogenaamde data marts, die elk op een ander aspect focussen zoals departement of bedrijfsproces Data warehouses bevatten meestal zowel actuele als historische data, waardoor grootte vele tera- en petabytes kan zijn Descriptieve Analytics = beschrijven wat in verleden gebeurd is en dit laat toe om te eren uit het verleden Nadat data warehouse is aangemaakt zijn er verschillende vormen van verwerking mogelijk, waaronder online analytical processing en data mining Bij online analytical processing (OLAP) wordt interactief een grote hoeveelheid data in een data warehouse ondervraagd vanuit verschillende perspectieven, deze perspectieven vereisen dat data in een soort multidimensionale kubus (OLAP cube) worden opgeslagen of gepresenteerd. → interactieve karakter vereist ondervraging dat ondervraging in real-time gebeurt en dat vraagt verwerkingsprespectief, geeft ook aan dat het gaat over ad hoc ondervragingen Veelgebruikte technieken omvatten: - Consolidatie: Aggregatie waarbij data ‘opgerold’ wordt op een of meerdere dimensies - Drill-down: Desaggregeren van data, waarbij meer geaggregeerde data wordt gedetailleerd op een of meerdere dimensies - Slicing and dicing: Analyseren van data uit verschillende perspectieven, verwijst naar mogelijkheid om een gekozen perspectief te creëren en in isolatie van andere perspectieven verder te analyseren Predictive Analytics = onderzoekt recente en historische data om de toekomst te voorspellen → data mining wordt toegepast om trends en gedragingen te voorspellen, met inbegrip van fraudedetectie en bijvoorbeeld kans op faillissement van een klant Predictive maintenance: technieken om staat van bepaalde systemen te bepalen, om te voorspellen wanneer die onderhouden moeten worden → niet hetzelfde als preventive maintenance omdat predictive maintenance rekening houdt met de werkelijke staat van systemen i.p.v. gemiddelde levensverwachting → ondersteunt op data afkomstig van o.a. infrarode en akoestische sensoren → meer en meer wordt voor predictive maintenance IoT techniologie gebruikt Data mining: toepassen van geavanceerde statistische of wiskundige technieken op data in data warehouse om bvb correlaties, patronen en trends te ontdekken in historische data → mining verwijst naar het graven in grote datasets om voorheen verborgen verbanden te leggen Data mining slechts gericht op een handvol taken: - Classification and class probability estimation: Elk individu in een populatie onder te brengen in een klasse, waarbij gedefinieerde klassen dikwijls wederzijds exclusief zijn, individu wordt toegekend aan een klasse volgend een probabiliteit - Regression: Proberen om de waarde van een variabele van een individu te voorspellen in plaats van de louter kans of iets zal gebeuren (classificatie) - Similarity matching: Indiviuden worden samen geplaatst op basis van gelijkenis - Clustering: Activiteit om, zonder specifiek doel, individuen in een populatie te groeperen in bijvoorbeeld specifieke segmenten - Co-occurence grouping: Techniek die zoekt naar associaties tussen entiteiten, gebaseerd op transacties tussen hen, om ze samen te voegen in groepen - Profiling: gedragen van individuen, groepen of een populatie in kaart brengen, wordt dikwijls gebruikt voor ontdekkingen van anomalieën - Link detection: verband tussen items ontdekken - Casual modeling: Verstaan welke gebeurtenissen of acties andere gebeurtenissen beïnvloeden recommender systems = trachten op basis van zulke technieken te voorspellen welke waarde of voorkeur iemand aan een bepaald product of dienst zou toekennen. → alternatief voor traditionele zoekalgoritmes Prescriptive Analytics = bepalen van de mogelijke uitkomst van elke beslissing ipv één scenario. Men probeert het effect van toekomstige beslissingen te kwantificeren, zodat men geadviseerd wordt over de beste te nemen acties alvorens de beslissingen effectief genomen worden Vb.: regelmatig aanpassing prijs van vliegtickets Prescriptive analytics wordt o.a. toegepast bij semi-autonome of autonome voertuigen, waarbij software de impact hvan mogelijke beslissingen moet berekenen alvorens de optimale beslissing kan worden genomen Presentatie In vorm van dashboards, grafieke en data Dashboard = soort grafische gebruikersinterface die vaak in één oogopslag een overzicht biedt van belangrijke prestatie-indicatoren die relevant zijn voor een bepaalde doelstelling of bedrijfsproces → initieel bedoeld voor topmanagement maar evolueerden tot hulpmiddelen voor iedereen in organisaties en klanten → dashboard functionaliteiten zijn in veel BI-toepassingen ingebouwd → management cockpits: ruimte waarin permanent grafieken en cijfers gepresenteerd worden op zeer grote schermen of zelfs muren Ondersteunende technologieën Bekende commerciële tools zijn bvb Tableau, PowerBI. PowerBI = interactieve tool van Microsoft voor visualiseren van data, waarbij verschillende soorten data gecombineerd kunnen worden om in een visueel dashboard managementinformatie systeem weer te geven NoSQL, of nu Not Only SQL, zijn databanken die verschillen van rationele databanken, NoSQL databanken laten toe om enorme hoeveelheden data te verwerken en te distribueren over computing clusters, ten koste van consistentie die relationele databanken wel voorzien NoSQL databanken vormen een brede waaier van databanken → andere principes dan traditionele, relationele databanken, zoals één of meerdere uit: - Key-value store: Array waar sleutels verwijzen naar waarden - Document store: Opslag van documenten in verschillende formaten zoals XML, JSON waarbij de documenten ondervraagbaar zijn - Graphs: Bevat elementen die met elkaar verbonden zijn door een gelimiteerd aantal relaties, Graph databanken worden typisch gebruikt in Customer Relationship Management (CRM) systemen Hadoop = raamwerk dat gedistribueerde verwrking van grote datasets via computer clusters toelaat → van enkele servers tot duizenden, die elk verwerkingskracht en opslag voorzien → ook ingezet in IoT, om data op te slaan, patronen te ontdekken en te monitoren Opslagsysteem van Hadoop is geen relationele databank maar een bestandssysteem specifiek gericht op hoge performantie, enorme hoeveelheden data en lage kost → Hadoop kan ook ongestructureerde data opslaan en opvraagbaar maken via technieken en tools zoals Hive Hive = data warehouse project opgebouwd op Hadoop om data op te vragen te analyseren in een op SQL gelijkende taal Cloud computing is belangrijke technologie in context van BI, flexibiliteit en schaalbaarheid maakt de cloud ideaal voor dergelijke toepassingen, terwijl de kosten gereduceerd worden en beschikbaarheid zeer hoog is 6.2. Internet of Things Toegenomen aandacht heeft te maken met de sterk toegenomen beschikbaarheid van apparaten die over sensoren beschikken en mobiele netwerkverbindingen beschikken en daardoor via Internet met elkaar of andere soorten informatiesystemen kunnen communiceren Apparaten leiden tot ongeziene hoeveelheid data, die via Internet centraal kunnen worden opgeslagen en geanalyseerd → hangt dus samen met BI en Big Data → analyses kunnen resultaten opleveren die bedrijfskundig heel interessant zijn IoT-apparaten bestaan uit 3 onderdelen volgens Porter: - Fysieke component: Bvb het chassis en motor van een auto - Intelligenten (smart) component: Kan uit combinatie van hardware en software bestaan (bvb software van motor in auto) - Netwerk component: Draadloze verbinding verzorgen, laat toe om via internet data op te slaan op server op internet, of in-the-cloud Dergelijke nieuwe mogelijkheden verplichten organisaties om na te denken over hoe deze in hun producten of diensten, of productieproces ingeschakeld kunnen worden → in geval van een auto kan predictief onderhoud toegepast worden waarbij een defect vroeg kan gedetecteerd worden of zelfs voorspeld worden Porter zei dat de impact van IoT zeer groot kan zijn en dat het organisaties en zelfs de structuur van ganse industrieën en sectoren door elkaar kan halen IoT lijkt soms op een technische innovatie, maar Porter zegt dat de grootste innovaties langs de bedrijfskundige kant zitten. Hij zegt dat zo’n apparatuur cumulatieve ‘capabilities’ mogelijk maken zoals: - Monitoring: Bewaken van de status van een apparaat, gebruik en werking van het apparaat en omgeving - Control: Apparaten kunnen zichzelf beheren door ingebouwde algoritmes of door commando’s die vanop afstand bestuurd worden - Optimization: Huidige en/of historische data kan gebruikt worden om werking van apparaat te optimaliseren - Autonomy: Apparaten kunnen quasi zelfstandig functioneren op basis van monitoring, control en optimization Porter verwacht dat eindpunt van deze evolutie een ‘system of systems’ zal worden. → verschillende innovaties zullen kunnen samenvloeien en zo nieuwe, geïntegreerde producten zal doen ontstaan → geïnterpreteerd als zeer hoge vraag naar integratie tussen systemen, wat in verleden een van de moeilijkheden in de ontwikkelingen van informatiesystemen was 6.3. Blockchain en Distributed Ledger Technology Blockchain = recente innovatieve technologie om gegevens vast te leggen, het is een aaneengesloten ketting van blokken gevuld met transacties. Technologie die peer-to-peer veilige informatie- uitwisseling mogelijk maakt op een zodanige wijze, dat deze niet gewijzigd en vervalst kunnen worden 2008: uitvinding Blockchain → technologie om cryptocurrency Bitcoin mogelijke te maken, niet enkel geschikt voor digitale munt → een van meest belovende technologieën voor nieuwe generatiesystemen over internet bvb smart contracts Blockchain bestaat uit 6 lagen: - Data laag/data layer: Blokken, geëncrypteerde informatie, tijdstippen (timestamps) - Netwerk laag/network layer: Volledig gedistribueerd systeem waarbij de nodes (servers) verbonden zijn zonder enige vorm van centrale autoriteit of hiërarchie - Consensus laag/consensus layer: Diverse consensus protocols - Beloningslaag/incentive layer: Garandeert veiligheid en effectiviteit van het systeem - Contract laag/contract layer: Verschillende types scripting en algoritmes (smart contracts) voor uitvoeren van geautomatiseerde transacties - Toepassingslaag/application layer: In bitcoin systeem zijn dit digitale financiële transacties, in andere zoals Ethereum zijn dit gedecentraliseerde toepassingen (Dapp) Datalaag figuur toont hoe een blockchain is opgebouwd, elk blok verwijst naar het vorige blok eerste blok = Genesis blok Tx = transactie Grote verschil met andere bestaande technologieën is, is dat blockchain niet met één centraal knooppunt/controller werkt maar volledig gedecentraliseerd is → risico’s verbonden aan één controller worden vermeden Informatie over transacties wordt bijgehouden in een gedeeld en gedistribueerd grootboek (Ledger). Grootboek wordt gesynchroniseerd met alle partijen, er is dus geen single point of failure. Toegang tot grootboek is beveiligd door Public Key Infrastructure (PKI) technologie Blockchain netwerk is gebaseerd op feit dat transacties niet direct tussen bron en bestemmeling uitgewisseld worden, maar uitgezonden worden over hele netwerk om transactie te kunnen verifiëren Meerdere Tx in een blok, die een unieke hashcode en timestamp heeft, volgende blok bevat de hashcode van het vorige waardoor het ook naar dat blok verwijst en er een ketting/chain is. Blokken zijn beperkt in grootte, voor bitcoin is één blok 1MB Wanneer iemand fraude wilt plegen door fractie aan te passen aan transactie dan veranderen alle hashcodes van volgende blokken en is volledige ketting ongeldig → verzekert geldigheid van transacties en dat bvba Bitcoin geen 2 keer wordt uitgegeven Consensus en beloningslaag elk nieuw blok dat ontstaat moet door meerderheid van deelnemers, de nodes, geaccepteerd worden. Dit gebeurt via de consensus van de meerderheid Miners = deelnemers (Servers) die rekenkracht gebruiken om alle Tx’en in een blok te valideren, en als eerste een geldige hashcode berekenen Miner moet een waarde bepalen die via een proof-of-work algoritme tot gelde hashcode leidt. Men noemt de (4-byte) waarde ook Nonce. Nonce is het bewijs (proof) voor de geleverde inspanning (work) om een geldige hashcode te berekenen. Deze cryptografische puzzel dient als bewijskracht hoeveel moeite men stak in validatie van een blok van transacties - Transactie generatie en validatie: →elke transactie krijgt uniek ID, geëncrypteerd door de hash waarde van de input transactie en de publieke sleutel van de ontvanger. →Transactie moet dan bevestigt worden, niet-bevestigde worden als onbetrouwbaar beschouwd. →Ontvanger kan volgende verifiëren: input van transacties geldig zijn, het geld niet reeds is uitgegeven, de ondertekening geldig is en het blok waarin transactie staat geldig is →ontvanger eist eigendom op dankzij zijn/haar publiek sleutel → er moet consensus zijn over geldigheid van het blok → noodzakelijke stappen voor validatie blok: o Verificatie o Chain: geldige wijze verwijzen naar vorige blok o Timestamp: timestamp is accuraat o Validatie: proof-of-work voor huidige blok is geldig Contractlaag: Smart contract = computerprotocol om onderhandelingen of uitvoering van een digitaal te faciliteren, verifiëren en af te dwingen. → hebben breed toepassingsgebied, bvb financiële diensten, IoT Smart contracts hebben 3 basiskenmerken: - Autonomie - Zelfvoorziening - Decentralisatie 1994: Nick Szabo stelde smart contract voor Vroeger was het niet mogelijk om contracten te schrijven met scripting taal van bitcoin maar nu zijn er flexibele scripttalen om smart contracts te implementeren Ethereum = blockchain systeem dat smart contract kan implementeren met behulp van scripting Bevatten vooraf gedefinieerde regels, en voeren overeenkomende operaties uit wanneer aan juiste voorwaarden wordt voldaan. Betrokken partijen komen overeen welke contractuele details van toepassing zijn en tenslotte de externe databronnen (oracles) Toepassingslaag Systemen zoals Ethereum laten toe om gecentraliseerde applicatie te schrijven: Dapps. Ander blockchain gebaseerde technologieën zoals Hyperledger Fabric laten toe om gedecentraliseerde toepassingen te schrijven in gekende programmeertalen zoals Go, Java, Python Toepassingen kunnen geschreven worden voor verscheidene scenario’s: - Financiële transacties: Crowdfunding, peer-to-peer lending, … - IoT: Door decentralisatie blockchain kan voor verwerking enorme hoeveelheid transacties niet alleen kost verminderd worden, ook gegarandeerd dit dat het falen van één node niet leidt tot falen van het hele systeem - Digital rights management: Beheren digitale rechten - Gezondheidszorg: Beveiligd overdragen van medische gegevens - Vastgoed: Transacties in vastgoedsector zijn complex en er zijn veel partijen bij betrokken Publieke versus privé versus consortium Publieke systemen: iedereen mag transacties aanmaken, blockchain controleren en aan mining doen om geld te verdienen. Men kan systeem aanvallen en dus is proof-to-work zeer essentieel Privé systeem: uitwisseling van transacties in een privé blockchain netwerk, mining wordt gecontroleerd door één organisatie of meerdere individuen Consortium: gemengd systeem waarbij toegang door bepaalde nodes toegekend en bewaakt wordt met blockchain Uitdagingen Gebrek aan duurzaamheid is behoorlijk zwaar probleem voor blockchain implantaties. Bij transactie wordt 80.000 keer meer energie verbruikt dan bij een kredietkaarttransacties Schaalbaarheid is een andere bezorgdheid

Use Quizgecko on...
Browser
Browser