Avatar billede fanatic Nybegynder
06. december 2004 - 12:41 Der er 9 kommentarer og
1 løsning

SOAP i stedet for RMI

Hej Eksperter...Der er noget jeg ikke forstår!

Jeg sider og kikker på nogle forskellige teknologier til et P2P-program som jeg godt nok allerede har lavet ved at bruge JavaSockets. Men nu sidder jeg og reflektere lidt over hvordan man ellers kunne have gjort det.
SOAP er god fordi at teknologien benytter http til transport og denne transportform kan firewalls jo som bekendt godt lide. Okay..hvorfor har jeg så ikke lavet mit program med SOAP i stedet for Sockets??? Det er det jeg tænker over lige nu.

Jeg kan forstå et SOAP fungerer ved at opbjekter kommunikere ved at sende XML-"beskeder" via netværket. Men hvis jeg nu laver en server og en klient-klasse i Java.

Hvordan oversættes relevant javakode til XML-beskeder?

I CORBA har man jo en ORB som snakker sammen med programmet på hver enkelt maskine, men hvad heder SOAPS's ORB???

Der må også være en eller anden "lytter" der er sat til at lytte på om en SOAP-besked ankommer på de to maskiner der snakker sammen vha. SOAP. Hvordan lyttes der på SOAP beskedder?

Jeg har ledt efter en simpel model der viser SOAP. Kender i en fin tegning på nettet?
Avatar billede arne_v Ekspert
06. december 2004 - 12:48 #1
web services (SOAP over HTTP) har nogle store fordele:
  - sprog og platform uafhængig
  - HTTP er nem at få gennem firewalls
  etc.
men der er selvfølgelig også nogle ulemper:
  - det koster en del performance at konvertere til og fra XML
  - HTTP protokollen har nogle restriktioner som f.eks. at al
    interaktion initieres fra client
Avatar billede arne_v Ekspert
06. december 2004 - 12:50 #2
Du kan principeilt godt skrive koden der konverterer til og fra XML selv, men
det vil være spild af tid. Der er biblioteker som kan gøre det. Bruger du
f.eks. Axis web service toolkit så skriver du bare en klasse med metoder
og deployer den, så genererer Axis selv den nødvendige skeleton kode og WSDL filen.
Og på client siden kan du også generere stub kode udfra URL til WSDL. D.v.s.
at du ser ikke noget som helst til XML.
Avatar billede arne_v Ekspert
06. december 2004 - 12:51 #3
Server siden af en web services skal hostes. For en java web service betyder
det i en servlet container som f.eks. Tomcat. Og det er den som lytter
for requests.
Avatar billede arne_v Ekspert
06. december 2004 - 12:53 #4
Avatar billede fanatic Nybegynder
06. december 2004 - 12:59 #5
Orv det var hurtigt ;)

WSDL-filen hvad er det den indeholder?

At generere stub koden "ud fra URL til WSDL" hvordan skal det forstås? Laves stub-koden også automatisk i Axis?
Avatar billede arne_v Ekspert
06. december 2004 - 13:05 #6
WSDL er XML som beskrover web servicen (metode navne og argumenter).

Ja - Axis kommer med et tool wsdl2java som man starter med URL'en for
WSDL'en som argument og så genererer den en stub, så man kan kalde
web servicen med normale kald.
Avatar billede arne_v Ekspert
06. december 2004 - 13:25 #7
OK ?
Avatar billede fanatic Nybegynder
06. december 2004 - 15:44 #8
Okay, men hvis en klient A skal bruge en metode i et objekt hos klient B. Hvordan finder den klient B? Det er her, at det er lidt tåget for mig.
Avatar billede arne_v Ekspert
06. december 2004 - 15:48 #9
I modsætning til CORBA hvor "ligeværdige" komponenter bruger hinanden, så er der
i web services en client og en server. Eller flere client og en server.

Client(erne) skal kende serveren.

Web services har noget der hedder UDDI som er et directory over web services,
men jeg tvivler på at det er relevant for dig.
Avatar billede fanatic Nybegynder
06. december 2004 - 15:49 #10
Tak for hjælpen!!
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