Avatar billede foo_baa Nybegynder
19. september 2002 - 09:29 Der er 7 kommentarer og
1 løsning

three-tier opbygning ?

Hvis jeg nu har et program jeg har opbygget på denne måde
GUI-(Funktion/model)-Database
nærmere beskrivelse af dette behøves vel ikke, standard ooa&d
Men hvis jeg nu vil lave dette om til en three-tier opbygning, med RMI, med en server og en clientdel.

Så har jeg følgende spørgsmål
Hvilke af disse lag skal så ligge hvor
Gui'en skal ligge i client delen - og funktions og database laget i server delen, men hvad med model laget, gui'en bruger jo nogle metoder fra objekterne i model laget og objekterne i model laget snakker jo sammen med databasen, såå hvordan gør man det smartest eller skal opbygningen laves helt om eller ????
Avatar billede foo_baa Nybegynder
19. september 2002 - 09:35 #1
skal funktions og model laget evt. ligges sammen eller ??
Avatar billede jakoba Nybegynder
19. september 2002 - 10:16 #2
du kommer nok til at klippe et snit ned igennem "(Funktion/model)" og vælge hvad der skal på hver side.

funktioner der validerer brugerens input skal så ligge på klienten, mens funktioner der organiserer data og genererer søgninger til databasen skal ligge på serveren.

men det er et individuelt valg som du stort set selv må foretager. Jo mere du lægger ud til klienten jo sikrere og mere præcist kan du validere (og fx sammenholde data i forskellige inputfelter), men jo mere loadtid får klienten så også. så den optimale skillelinie ligger forskelligt på et intranet og på internettet.

mvh JakobA
Avatar billede foo_baa Nybegynder
19. september 2002 - 10:42 #3
det skal fortrinsvist køre på et intranet, men kan også bruges over nettet.
Men jeg kan godt se hvad du siger med klippe et snit igennem funktion/model. MEN hvad med det jeg har som model lag, dvs. objekter, f.eks. et person objekt hvor jeg i gui'en vil bruge en metode benny.getName(); så bliver model'en jo nødt til at være på klient delen, men det er måske dumt, jeg skal måske ligge model'en på serveren og så lave et lag ovenpå der klader de metoder der er deri som man så ligger i interfacet, eller ?? det lyder måske MEGET dumt dette men jeg spørger da jeg helst vil lave det rigtigt første gang
Avatar billede foo_baa Nybegynder
19. september 2002 - 10:48 #4
og også fordi jeg ikke aner noget omkring denne måde at opbygge et program på
Avatar billede jakoba Nybegynder
19. september 2002 - 12:30 #5
Det beste er nok at starte med at lave en data-model af hvad der skal laves:

SERVER:  altomfattende database.
    den skal altid være konsistent
    den skal opdateres så sjældent som muligt

KLIENT:  Lille DB med relevante data klonet fra serverens DB.
    opdateres altid fra serveren, aldrig fra klienten
        nye bruger data indtastet af brugeren
    kan valideres opimod klientens lokale DB og diverse regler

Det væsentlige er at få et meget klar og konkret flow som alle data følger, ovenfor er det et 'U'-formet:  KLIENT[bruger] -> SERVER[database] -> KLIENT[database] ( -> KLIENT[bruger] ).  Det kan gøres på andre måder også, og derudover varieres; men det er et rimeligt rent forslag der skulle være til at implementere :-)

Hver transaktion bliver så at sende de nye brugerdata til serveren hvor serverens DB opdateres.
Hvis det går godt svarer serveren med at sende opdaterede data til klient-DBen og brugerdata nulstilles.
Hvis det ikke går rulles serverdatabasen tilbage og der gives fejlmelding.

Når du har fastlagt data-modellen kan du så kikke på de objekter du har og se hvordan de passer ind i modellen. Og placere, opdele og så videre. Det kan være nødvendigt at lave en helt ny objektstruktur :(

mvh JakobA
Avatar billede foo_baa Nybegynder
19. september 2002 - 12:36 #6
ok, det lyder faktisk meget klogt, men kender du til noget litteratur omkring denne måde at bygge tingene op på, og skal man evt. til at bruge nogle patterns til denne kom. mellem klienten og serveren ??
Avatar billede jakoba Nybegynder
19. september 2002 - 13:17 #7
Generelt client/server modellen: http://www.sei.cmu.edu/str/descriptions/clientserver_body.html

Jeg er nok lovlig gammel til at foreslå specifikke patterns og pakker.
Den der moderne grundide med "det kan jeg finde en pakke der gør" har jeg ikke rigtig. Istedet tenderer jeg til at sige "Hvodan laver jeg så det?". Sorry.

Lad os håbe der kommer nogen forbi der kender eksisterende pakker til det.

mvh JakobA
Avatar billede foo_baa Nybegynder
19. september 2002 - 16:38 #8
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester