Avatar billede javaDude15 Nybegynder
25. juli 2012 - 08:39 Der er 6 kommentarer og
1 løsning

Arkitektur for socket server applikation

Hej eksperter,

Jeg skal igang med en applikation, som skal hoste en socket server og en webservice.

Det som jeg er i tvivl om, er selve opbygningen af socket serveren. Skal jeg bruge IO eller NIO, og skal det eventuelt laves med non-blocking.

Potentielt kan der være flere tusinde forbindelser samtidig.
De maskiner der forbinder ind som klienter, sender dog ikke noget data, ved mindre de har modtaget en forespørgelse først. Altså er det ikke nødvendigt at lytte efter data hele tiden.

Et typisk brugsmønster kunne være:
* serveren modtager et request via en webservice
* parser requestet
* finder den tilhørende socket forbindelse
* sender request til socket klient
* socket klient svarer
* server svarer webservice requestet med svar fra socket klienten.

Da jeg gerne vil kunne udføre mine webservice kald synkrone, tror jeg ikke, at jeg kan drage fordel af non-blocking NIO.

Vil gerne høre forslag til arkitektur af socket server og valg af framework
Avatar billede arne_v Ekspert
25. juli 2012 - 17:22 #1
Forslag A:

web service hostes i Tomcat
web service sender data videre paa special socket til socket server
socket server har en traad som laeser fra special socket og putter i en in memory queue
socket server har fixed antal N traade som laeser fra in memory queue og laver request-response til client
Avatar billede arne_v Ekspert
25. juli 2012 - 17:24 #2
Forslag B:

web service og socket server hostes i JBoss
socket server laves som JCA adapter
web service putter direkte i en in memory queue
JCA adapteren har traade som laeser fra in memory queue og laver request-response til client
Avatar billede arne_v Ekspert
25. juli 2012 - 17:25 #3
Hvis det er vigtigt at data aldrig tabes, saa erstat in memory queue med en message queue med persistering som tilgaaes via JMS.

Forslag B kan saa bruge MDB fremfor JCA traade.
Avatar billede javaDude15 Nybegynder
25. juli 2012 - 18:33 #4
Tak for svarene indtil videre, tror jeg hælder mest til forslag A, da jeg har mest erfaring med Tomcat.

Nogen kommentarer til valg af IO og (non-) blocking NIO?
Avatar billede arne_v Ekspert
25. juli 2012 - 19:39 #5
I ingen af modellerne kan jeg se brug for NIO.
Avatar billede javaDude15 Nybegynder
30. juli 2012 - 10:27 #6
Det ser ikke rigtig ud til at der er flere der vil komme med forslag.

Smider du et svar? og mange tak for input :)
Avatar billede arne_v Ekspert
30. juli 2012 - 14:57 #7
svar
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