Lektion 11 — Forberedelse
D1 er afleveret. Mockuppet er en klient: siden kører i browseren, login og
kladde ligger i localStorage, og patientlisten hentes med fetch fra
underviserens server. Forberedelsen er client-server, tre lag, et
sekvensdiagram, og hvad Node er. I timen samler vi det op, skriver serveren
og peger tabellen på den. Sekvensdiagrammet over jeres kald tegner I
bagefter, når I kan se request og svar.
Afsnittet om sekvensdiagrammer er lagt op sent. Tag det med, også hvis du allerede har lavet resten.
Forberedelsen er ca. 80 minutter.
1. Client-server (~25 min)
Læs disse afsnit:
- Indledningen
- Client and server role
- Client and server communication
- Server-side → General concepts
- Client side → General concepts
- Centralized computing
Spring Example over. Artiklen bruger en netbank. Vi bruger det samme mønster på en journal:
En kliniker slår en patient op. Browseren spørger journalens webserver. Webserveren er server for browseren. Samme webserver er klient, når den spørger databasen efter patientens række. Browseren behøver ikke vide, hvordan rækken blev fundet.
Fokusér på, at klienten starter samtalen, og at serveren venter og svarer. Klienten behøver ikke vide, hvordan serveren finder svaret, kun hvilken protokol de deler.
I Centralized computing hedder det thin client og rich client. I timen siger vi tyk klient om rich client. En tynd klient har næsten ingen egen logik. En tyk klient kan noget uden serveren.
Et program, der aldrig sender eller modtager noget over et netværk, er ikke en klient.
Spring Computer security, Early history og Comparison with peer-to-peer architecture over.
2. Tre lag (~15 min)
Læs disse dele:
- Indledningen, til og med forskellen på layer og tier
- Three-tier architecture — presentation, application og data
- Web development — de tre punkter om frontend, applikation og database
Et lag er en opdeling af ansvaret. En tier er, hvor det kører. Samme tre lag kan ligge på én maskine eller på flere. Præsentation er det, brugeren ser og rører ved. Applikationen er beslutningerne. Data er det, der bliver gemt.
Spring listerne over CORBA, Java RMI og de øvrige protokoller. Spring også Common layers og afsnittet om strict og relaxed layering over.
3. Sekvensdiagram (~20 min)
Læs indledningen, til og med at tiden går nedad langs livlinjerne, og afsnittet om beskeder. En udfyldt pil er et kald, der venter. En stiplet pil er svaret tilbage.
Se kun sekvensdiagram-kapitlet i videoen, cirka 9 minutter, fra 1:17:17 og frem til Communications Diagram:
UML Diagrams Full Course — Sequence Diagram
Spring aktiveringsbokse, asynkrone pile og combined fragments (alt,
loop, opt) over. Dem bruger vi ikke. Resten af det to timer lange
kursus er ikke forberedelse.
4. Node (~15 min)
JavaScript har indtil nu kørt i browseren. Node er det, der kan køre det samme sprog uden for browseren. Det er den proces, serveren bliver.
Kapitel Back End Development and APIs, modulet Introduction to Node.js. Lav kun denne lecture:
Fokusér på, at browseren har DOM, og at Node ikke har. Node kan bygge en
server, der tager imod HTTP. Der er ikke noget window.
Spring What Are the Advantages and Disadvantages of Using Node on the Back-End? over. Event loop og tråde tager vi ikke. Spring også How Can You Install Node on Your Computer? over. NVM er ikke nødvendigt. Workshoppen Learn Node.js REPL er ikke forberedelse.
5. Kør en fil (~10 min)
Installer Node.js LTS fra https://nodejs.org.
Lav en fil hej.js:
console.log("hej fra Node");
Kør den i den mappe, filen ligger i:
node hej.js
Terminalen skal skrive linjen, og processen stopper. Der er ingen browser og ingen server. Det er bare JavaScript uden for browseren.
Når du er færdig
Du skal kunne forklare:
- at klienten anmoder, og serveren venter og svarer
- at det samme program kan være klient i ét kald og server i et andet
- forskellen på et lag og en tier, og hvad præsentation, applikation og data hver især er
- forskellen på en tynd og en tyk klient
- at
localStorageikke er en server og ikke er datalaget i et færdigt system - at Node kører JavaScript uden for browseren, og at den ikke har DOM
- at tiden i et sekvensdiagram går nedad, at en udfyldt pil er et kald, der venter, og at en stiplet pil er svaret
Og du skal have kørt node hej.js.
HTTP, serveren og diagrammet over det kald, I lige har kørt, tager vi i timen.
Praktisk
node -vognpm -vskal svare med et versionsnummer.- Du skriver ikke serveren hjemmefra.
- Hav gruppens mockup med, lokalt. Diagrammet tegner I, når serveren svarer.