Avatar billede mach3 Nybegynder
12. januar 2007 - 12:09 Der er 12 kommentarer og
1 løsning

Webservices: Multitrådet webserver nødvendig?

Hej,

Beskrivelse:
Man har en datamodel, som eksempelvis indeholder bilers pris, farve, tekniske specifikationer osv.

Udtræk af diverse oplysninger i datamodellen skal være tilgængelige for webklienter og det ønskes at anvende SOA og webservices. Er det da nødvendigt, at programmere en multitrådet webserver, eller kan det klares uden?

Vil det ændre noget ved situationen, hvis en webklient ønsker at abbonere på prisen på en bil? Hvis prisen på bilen falder til under x kroner vil webklienten gerne informeres. Er dette ikke et problem idet internettet (http) er state-less? Skal klienten så spørge med bestemte tidintervaller?

Takker
Avatar billede arne_v Ekspert
12. januar 2007 - 15:14 #1
normalt vil du hoste en .NET web service i ASP.NET og IIS

de er multithreaded out-of-the-box

web services over HTTP baserer sig paa at client initierer connection

du kan polle over HTTP eller lade client fungerer som server ogsaa (med normal
observer pattern) eller du kan prove at bruge noget message queue
Avatar billede mach3 Nybegynder
12. januar 2007 - 20:49 #2
arne_v >> Tak for svaret.

Er web services over HTTP det samme som web services over SOAP?
Kan det passe, at SOAP anvender xml formatet? Men ok, det skal jo stadig sendes over nettet - hvilke alternativer er der så til HTTP?
Avatar billede arne_v Ekspert
12. januar 2007 - 21:00 #3
SOAP er formatet
HTTP er transporten

normal bruger man i en web service SOAP over HTTP

og da jeg skrev det mente jeg HTTP paa den maade

der er ogsaa noget der hedder web service over HTTP uden brug af SOAP, men det
synes jeg bare at du skal ignorere totalt

ja - SOAP er en form for XML

man kan ogsaa sende SOAP over message queue

det synes jeg ogsaa at du skal ignorere totalt (og det passer sikkert heller
ikek til din kontekst)
Avatar billede mach3 Nybegynder
15. januar 2007 - 09:07 #4
arne_v >>

Tak for hjælpen. Giv et svar.
Avatar billede mach3 Nybegynder
15. januar 2007 - 10:29 #5
Jeg er i gang med at undersøge, hvordan webklienten kan subscribe på en event på serveren når der anvendes SOAP.

Det er ikke helt optimalt, hvis klienten også skal fungere som server (normal observer). Jeg tænker, at dette kunne være et problem med firewalls og sikkerhedspolitikker rundt omkring  hos de enkelte steder, hvor webklienten skal køre.

Tilbage er der at kigge på message queue, som jeg ikke har noget viden om endnu.

Takker.
Avatar billede arne_v Ekspert
15. januar 2007 - 15:32 #6
svar
Avatar billede arne_v Ekspert
15. januar 2007 - 15:38 #7
det kan være stort problem med firewalls

message queue vil have det samme problem - skal server connecte til client, så
skal der være en åben port uanset om det er det ene eller det andet
Avatar billede mach3 Nybegynder
15. januar 2007 - 16:51 #8
Så må det indtil videre være klientens ansvar at connecte til serveren med jævne mellemrum for at kontrollere, om der er sket noget nyt på det subject som den er abboneret på.

Ved dog ikke om der er en måde at differentiere mellem klienter, således at kun de som abbonerer på et bestemt subject bliver informeret.

Men tak for input :-)
Avatar billede arne_v Ekspert
15. januar 2007 - 17:51 #9
hvis du ligger message queue på server og lader clients lave en
blocking get fra den i en seperat tråd, så er det tæt på en notifikation,
men ved at være ret langt fra en web service
Avatar billede arne_v Ekspert
15. januar 2007 - 17:51 #10
hvis du poller kan du sagtens have en lille Hashtable/Dictionary<> med client id
som key og en ArrayList/List<> med de messages som den pågældende client skal have
Avatar billede mach3 Nybegynder
16. januar 2007 - 09:36 #11
arne_v >>

Jeg sætter pris på din input.

Er polling (17:51:59) en forskellig løsning fra message queing (17:51:04)?

Jeg synes umiddelbart polling lyder som en god ide, hvis jeg har fortået det korrekt. Så gemmer serveren de messages, som klienten skal have, indtil klienten connecter til serveren, hvor klienten så får udleveret sine messages. Derved håber jeg, at man ikke har bevæget sig væk fra web services.

Men det er jo en nyt spørgsmål, og jeg tænker at oprette en ny tråd, når jeg har fået sat mig mere ind i det. Tror jeg skal læse om event-driven data models eller lignende.
Avatar billede mach3 Nybegynder
16. januar 2007 - 11:22 #12
Efter noget research hælder jeg foreløbigt til, at klienten også skal være en webservice.

Eksterne aktører (som kan være en webklient) kan så connecte til klienten når de har lyst og på den måde få relevant information.
Avatar billede arne_v Ekspert
17. januar 2007 - 01:28 #13
ja - polling er bare at lave et web service kald hver X'te sekudn og spørge
om der er noget nyt

med få klienter virker det fint

med tusinder af klienter dør du
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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