Faze razvoja

  • Raziskovanje
  • Razvoj
  • Vzdrževanje: najdaljša faza - od zasnove arhitekture odvisna življenjska doba

Zgodovina

  • Monolitska
  • Dvonivojska (UI + logika / DB)
  • Tronivojska (UI / logika / DB)
  • Service Oriented Architecture - vpeljani API
  • Microservices in Cloud-native solutions

Principi

  • Konsolidacija poslovne logike = DRY: ista koda v vseh delih IS, isti podatkovni tipi
    Nasprotje: silosna zasnova s podvajanjem kode
  • Modularnost: zmanjšanje odvisnosti in prekrivanja funkcionalnosti
    Nasprotje: kompleksen tesno sklopljen sistem z veliko odvisnostmi
  • Odgovornost za le 1 komponento brez znanja o podrobnostih drugih komponent

Sestava

Uporabniški vmesniki

Tekstovni / grafični / zvočni
Načini delovanja:

  • Native UI: namestimo na napravo
  • Web UI: izvaja se v brskalniku (HTML5, JavaScript, Responsive Web Design, Single Page Application, Progressive Web Application)
Odjemalski modelStrežniški model
- procesiranje v brskalniku odjemalca
- komunikacija s strežnikom preko REST
- strežnik ne vzdržuje uporabniške seje
- obremenitev na odjemalcu
- procesiranje na strežniku
- odjemalec samo procesira izgled
- strežnik vzdržuje uporabniško sejo
- obremenitev na strežniku






Spletni strežniki

Zgodovina izvajanja poslovne logike:

  • CGI: shell skripta, kar je dala na stdout se je vrinilo v HTML na določeno mesto
  • PHP, JSP, ASP.NET: nadgrajeni CGI
  • dandanes strežnik pošlje kodo za izvajanje v brskalniku
    Statične vsebine streže Content Delivery Network - zrcaljenje vsebine preko lokalnih nodov po celem svetu

Cloud computing

Ponudniki: AWS (Amazon), Azure (Microsoft), GCP (Google)
Prednosti: izognemo se začetni investiciji v hardware, skalabilnost
Hierarhija:

  • Cloud: podatkovni centri
  • Fog: mreža nodov (npr. CDN)
  • Edge: naprave

Infrastructure as a Service

  • Virtualke
  • networking (npr. VPN, mreže)
  • shramba (npr. bucket storage, DB)

Platform as a Service

Managed IaaS storitev

  • prijave (npr. OAuth)
  • messeging
  • logging

Skalabilnost

  • Vertikalna: boljši strežnik, se hitro ustavi zaradi omejitev (npr. hitrost procesorja)
  • Horizontalna: več instanc strežnikov - razpoložljivost 24/7