Avatar billede Slettet bruger
11. december 2004 - 12:17 Der er 17 kommentarer og
1 løsning

Client/Server system

Hej

Jeg ønsker at lave et klient/server system, jeg kommer til at have omkring 100-500 klienter og så er det jeg ønsker at vide om det er en dårlig idé at kode systemet med RMI og 1 tråd til hver klient. Jeg vil meget gerne høre om bedre/smartere alternativer hvis der findes det.

System beskrivelse:
Man skal som klient kunne oprette en bruger, derefter logge ind (serveren har tilgang til en ms access database) hvorefter man så kan administrere forskellige ting (som ikke behøver at blive nævnt).

På forhånd, tak.
Avatar billede arne_v Ekspert
11. december 2004 - 12:21 #1
Er det en:
  fat client----(LAN)----server
løsning ?

RMI ud over internet gennem firewalls kan godt være et problem !
Avatar billede arne_v Ekspert
11. december 2004 - 12:24 #2
RMI er uden tvivl langt det nemmeste rent programmerings mæssigt.

100-500 samtidige clients og dermed 100-500 tråde på serveren er lidt heftigt
og vil nok kræve en fornuftig server. Men det er absolut muligt.
Avatar billede Slettet bruger
11. december 2004 - 12:25 #3
Hvad mener du med fat client?

Det bliver over internettet, dvs:
client---internet---server

Hvis porten til serveren er åben så burde der ikke være noget problem mht. firewall.
Avatar billede arne_v Ekspert
11. december 2004 - 12:25 #4
En teknisk mere avanceret løsning vil være rå sockets og bruge af NIO til
at serve N clients med M threads hvor N > M.
Avatar billede arne_v Ekspert
11. december 2004 - 12:26 #5
fat client = applikation
Avatar billede arne_v Ekspert
11. december 2004 - 12:26 #6
Hvis du kan få lukket 2 porte op, så er det muligt at køre gennem en
firewall.
Avatar billede Slettet bruger
11. december 2004 - 12:27 #7
Hvilken fordel giver det at bruge din løsning i forhold til RMI?

Mht. dit første spørgsmål, så er det en fat client, ja.
Avatar billede arne_v Ekspert
11. december 2004 - 12:28 #8
Et alternativ til sockets & NIO ville være at skifte til JRockit JVM, der så
vidt jeg ved kan lave N Java tråde og M operativ systems tråde (igen med N > M)
uden at man skal ændre i sin kode.
Avatar billede arne_v Ekspert
11. december 2004 - 12:29 #9
Der er et vist overhead ved en operativ systems tråd. Det koster noget at
skifte mellem tråde. Det giver meget simpel kode, men giver overhead
fordi der skal skiftes mellem tråde og gemmes data strukturer per tråd.
Avatar billede arne_v Ekspert
11. december 2004 - 12:30 #10
Hvis databasen skal bruges til andet end login, så skal du med 100-500 samtidige
brugere have fat på noget andet end Access som database.
Avatar billede Slettet bruger
11. december 2004 - 12:31 #11
Hvilke 2 porte er det?

Jeg går ud fra at den ene er: LocateRegistry.createRegistry(port); (som skal åbnes på serveren)

Skal klienten også have den port åben?
Avatar billede arne_v Ekspert
11. december 2004 - 12:32 #12
En til registry og en til serveren.
Avatar billede arne_v Ekspert
11. december 2004 - 12:34 #13
http://www.eksperten.dk/artikler/225

beskriver hvordan man løser nogle af problemerne:
  - kontrollere hvilke porte der bruges
  - sikre at client for den eksterne adresse og ikke den interne adresse
  etc.
Avatar billede Slettet bruger
11. december 2004 - 12:36 #14
Hvad anbefaler du som database hvis:

serveren ligger på en windows maskine?
serveren ligger på en FreeBSD maskine?
serveren ligger på en unix/linux maskine?
Avatar billede Slettet bruger
11. december 2004 - 12:44 #15
Du må gerne komme med et svar så du kan få dine point. Tak for hjælpen :)
Avatar billede arne_v Ekspert
11. december 2004 - 12:58 #16
Medmindre penge ikke er noget man snakker om men noget man har, så vil
jeg nok sige MySQL:
  - god performance
  - gratis
  - kører på alle 3 platforme
Avatar billede arne_v Ekspert
11. december 2004 - 12:58 #17
og et svar
Avatar billede dsj Nybegynder
11. december 2004 - 15:58 #18
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