Avatar billede lmdthel Nybegynder
16. juli 2005 - 23:50 Der er 8 kommentarer og
1 løsning

Klient - server applikation

Hej Eksperter.

Jeg er ved at lave en java applikation, som skal forbinde til en database server (MYSQL) og hente noget data som så skal præsenteres. Hvad er den rigtige måde at gøre det på.

Umiddelbart vil jeg jo bare bruge JDBC, og så hente det data jeg skal bruge, men er det nu også smartest ?

Den skal konstant være forbundet, og hive en del data ud

Thomas
Avatar billede Slettet bruger
17. juli 2005 - 08:02 #1
Umiddelbart ja, så er JDBC måden.

Hvad havde du i tankerne? At pakke som (web)service eller ? Det kan være en løsning hvis du har rigtigt mange klienter der henter de (i princippet) samme data, så kan du lave noget server-side caching men eller må JDBC være vejen frem med den løsning.
Avatar billede arne_v Ekspert
17. juli 2005 - 09:25 #2
tilgangen til MySQL må nødvendigvis gå gennem JDBC men tænker du 2 tier:

app----(JDBC)----database

eller

client app----(X)----server app----(JDBC)----database

?

X kan varieres selvom JDBC ikke kan.

Bemærk også at selv databasen til gåes viaJDBC behøver din kode ikke
nødvendigvis at lave JDBC kald idet du kan komme et lag imellem
(f.eks. Hibernate eller JDO).
Avatar billede lmdthel Nybegynder
17. juli 2005 - 09:41 #3
Hej Arne

Ja det er lige det der er spørgsmålet, bør jeg vælge løsningen med client-Server , eller skal jeg bare lade min applikation spørge direkte i databasen? Hvad har jeg at vinde hvis jeg bruger client-server løsningen?  det jeg umiddelbart kan se skulle være en fordel, er når jeg nu har 20-30 klienter på, som alle henter det samme data, så sparer jeg nogle db kald. men dataen skal jeg jo stadig flytte.. så er det nu også det værd ?
Avatar billede arne_v Ekspert
17. juli 2005 - 09:55 #4
fordele ved client/server:

du får muligheden for at cache som kryptos beskriver (men det kan godt kræve lidt kode)

du kan nemmere implementere noget security når den vigtige kode kører på din server
fremfor på clients

du kan lade clients interacte uden at det går gennem databasen, hvilket kan
betyde meget bedre performance

visse client/server protokollert illader push fra server til client - det gør
JDBC ikke

hvis logikken ligger på server kan du opdatere den uden at opdatere alle
clients
Avatar billede arne_v Ekspert
17. juli 2005 - 09:56 #5
ulemper ved client/server:

alt andet lige får du meget mere kode
Avatar billede lmdthel Nybegynder
18. juli 2005 - 13:24 #6
Hej Arne

Ok, jeg kan se det fornuftige i client-server løsningen, og det må uden lige være det som er mest "korrekt". Men hvad vil du så anbefale nu hvor jeg laver en klient som skal præsentere data fra database serveren grafisk, du ved men nogle fine kurver osv ?

Det som jeg umiddlbart tænkte på var at at klienten åbner en bidirectionel tcp socket mod en server, hvorefter man kan spørge efter/ modtage data.

Men er det nu den bedste løsning ? , som alternativ kiggede lidt på Corba og RMI , men jeg kan ikke rigtig se om de er de rette valg, det skal jo heller ikke gøres sværere end højst nødvendigt.
Avatar billede arne_v Ekspert
18. juli 2005 - 13:40 #7
CORBA tror jeg ikke er et godt valg til dine behov.

RMI kunne være en mulighed. Så slipper du selv for at rode med sockets. Du
bliver dog så også bundet til RMI modellen.

Socket er en klassisk løsning.

Hvis applikationen kun skal vise kurver udfra data så tror jeg at det eneste
gode argument for 3 tier fremfor 2 tier er sikkerheden. Enhver veltrænet
chimpanse kan decompile en java app og læse et database password.

Så hvis det heller ikke betyder noget og det skal være så nemt som muligt, så
er 2 tier nok løsningen.

Hvis du skal lære noget af det så skal du nok gå 3 tier, fordi i langt de fleste
tilfælde er der et af argumenterne for 3 tier som har betydning.
Avatar billede lmdthel Nybegynder
18. juli 2005 - 19:31 #8
Hej Arne

Tak for dine forklaringer, jeg tror at jeg vil starte med Tier 2, når jeg har det på plads, så vil jeg nok kigge på Tier 3. Jeg skal nok heller ikke gabe over for stort brød :-) ihvetifald ikke sålænge det er på hobby niveau.

Hvis du ligger et svar.. så skal jeg lukke spørgsmålet, og jeg siger tak for hjælpen
Avatar billede arne_v Ekspert
18. juli 2005 - 19:32 #9
ok
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