CSA

advertisement
CSA
week 5
CSA, week 5
1
Applets
Applet is Java programma dat afgeleid is
van klasse Applet
Heeft geen methode main, wel methode
init
Bedoeld om binnen een browser te
runnen
Wordt gespecificeerd in HTML-tag
APPLET
CSA, week 5
2
Applet-tag
In HTML: <APPLET CODE=.. WIDTH=..>
<PARAM NAME = ..> .. </APPLET>
Er kunnen attributen opgegeven worden:
CODE=...
WIDTH=...
HEIGHT=...
Er kunnen parameters opgegeven worden:
<PARAM NAME=SVCnameroot VALUE=“CSA”>
CSA, week 5
3
Browser
Taken van de browser m.b.t applets
applet laden vanaf server
Java Virtual Machine opstarten
attributen leveren vanuit HTML-script
methode main implementeren; deze roept
init uit het applet aan
life cycle applet controleren
lokale computer beschermen tegen het
applet
CSA, week 5
4
Web Server
Is proces dat draait op een computer
Levert HTML-code en bytecode van het
applet
Applet kan alleen TCP connectie maken
met het IP-adres van de computer waar
de Web Server draait
CSA, week 5
5
Gatekeeper
Onderdeel van Visibroker
Functies onder meer:
server/client proxy (week 6)
primitieve Web Server
Luistert naar poort 8088 i.p.v. 80
Als Web Server en browser op hetzelfde
systeem draaien: localhost:8088
CSA, week 5
6
Practicumopdracht (1)
Werkt met applet en InterBase
Vijf processen:
Webservers (= gatekeeper) (2*)
serveren HTML-pagina en applet bytecode
Browser, met het applet
InterBase
InterServer
CSA, week 5
7
Fysieke distributie van de
processen
 InterServer, InterBase en de database moeten op één
systeem staan
 Op het systeem met het html-script is een Webserver
nodig voor het laden van het HTML-script
 Op het systeem met de applet bytecode is een Webserver
nodig voor het laden van de applet bytecode
 Een browser op één systeem
 Vanwege security moet de applet bytecode op hetzelfde
systeem staan als InterServer etc.
 Beide Webservers kunnen gecombineerd worden op één
systeem, met dus zowel het html-script als de applet
bytecode
CSA, week 5
8
Practicumopdracht (2)
Met browser wordt applet geladen
(eventueel inclusief InterClient klassen)
Applet maakt d.m.v. InterClient contact
met InterServer en dus met InterBase (zie
opdracht 4)
CSA, week 5
9
Practicumopdracht (3)
CSA, week 5
10
Practicumopdracht (4)
Applet gesplitst in GUI en DB-acties
(program logic)
GUI in klasse LedenApplet
DB-acties in klasse Gegevensbank
(connectie maken/verbreken, ophalen
gegevens, boete voldoen)
LedenApplet bevat object gb van klasse
Gegevensbank
CSA, week 5
11
Practicumopdracht (5)
Database bevat 2 tabellen:
lid met ledengegevens
boete met boetebedragen
Gegevens lezen met methodes haalisLid,
haaltotaalBedrag, haalheeftBoetes,
haalBoetenrs, haalBedrag
Slechts 1 mutatie: voldoeBedrag
CSA, week 5
12
Practicumopdracht (6)
Maak methode haal_boetenummer
eventafhandeling bij knop aanvullen
HTML-script aanvullen
InterBase en InterServer op ander
systeem
Twee users op dezelfde gegevens laten
werken
CSA, week 5
13
2-tier architectuur (1)
2-tier architectuur model:
eerste tier:
GUI en applicatielogica
tweede tier:
Database server en database
CSA, week 5
14
2-tier architectuur (2)
Opdracht is voorbeeld van 2-tier model:
GUI en JDBC-calls (= program logic) in
applet
DBMS (InterBase) in ander proces
CSA, week 5
15
3-tier architectuur (1)
3-tier architectuur model:
GUI in eerste tier
Applicatielogica in tweede tier
Database server en database in derde tier
CSA, week 5
16
3-tier architectuur (2)
Voorbeeld 3-tier architectuur model:
GUI in applet (Web server)
JDBC-calls in CORBA objecten in separaat
proces (Application server)
DBMS in eigen proces (Database server)
CSA, week 5
17
Applet downloading
Performance
Schaalbaarheid
Applicatie
hergebruik
2-tier
langzaam
("fat"client)
laag
(behalve voor JDBC)
Slecht
Slecht
(monolithische
programma's op de
client)
Inkapseling van data Laag
(toegang tot data via
tabellen)
Eenvoud van
Hoog
ontwikkeling
Server-to-Server
Nee
Infrastructuur
3-tier
snel
("thin" client)
hoog
(behalve voor JDBC)
Goed
(load-balance over
verschillende
systemen)
Goed
(server objecten
kunnen worden
hergebruikt)
Hoog
(toegang tot data via
methoden)
Wordt beter
Ja
(met behulp van
CORBA Object-bus)
Download