Innføring i SOAP. Agenda

Like dokumenter
Web Services. Olav Lysne

SAS IN A SOA WORLD MARIUS SOMMERSETH TEAM LEAD TECHNICAL ARCHITECTURE

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter

CORBA Component Model (CCM)

Simple Object Access Protocol

Distributed object architecture

Identitetshåndtering og Single Sign-On (SSO)

Distribuerte objekter og objekt-basert mellomvare

Utfordringer til mellomvare: Multimedia

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund

UDDI norsk katalog for registrering av tjenester (WMS, WFS, WCS, WS) i Norge digitalt

CORBA Objektmodell (Java RMI)

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Standarder for sikker bruk av VPN med og i offentlig sektor

Forelesning 4: Kommunikasjonssikkerhet

Pen- tes'ng av webservices. Asbjørn Reglund Thorsen Gruppe- og utviklingsleder UIO/FSAT

Jini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

DCOM. 21. oktober Mai et al. Hva er egentlig en komponent?

6105 Windows Server og datanett

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

6105 Windows Server og datanett

En ny generasjon standarder for bygging av geografisk infrastruktur Modellering av tjenester

GraphQL. Hva, hvorfor, hvordan

BEDRE KRYPTERING AV WEB-TRAFIKK OG E-POST (TLS)

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Introduksjon til programmering og programmeringsspråk

XML og Mobilt Internett

Kap 3: Anvendelser av Internett

Standarder for integrasjonsarbeid

6107 Operativsystem og nettverk

6107 Operativsystem og nettverk

Vurdering av standarder fra NOSIP. Oktober 2010

SOAP og Web Services. Hva er SOAP?

Vurdering av standarder fra NOSIP. Beslutningssak i det 25. standardiseringsrådsmøte

Distributed object architecture

Hvordan kan en gjenbrukbar NOARK kjerne bidra til samhandling mellom forvaltningsnivåene?

Gruppe 11. Frank Petter Larsen Vegard Dehlen

Forelesning Oppsummering

Integrasjon Altinn. 31. august 2009 Morten Græsby

Jini. Overblikk. Gruppe 1: Odd-Wiking Rahlff, Arnor Solberg og Finn Haukebøe

Time-Independent Invocation(TII) and Interoperable Routing

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Innledende Analyse Del 1.2

Implementering av caching ved hjelp av Spring. Christian Vestøl

AlgDat 12. Forelesning 2. Gunnar Misund

Nasjonal sikkerhetsmyndighet

Message Oriented Middleware (MOM) Thomas Filip Andresen Arild Berggren Eivind Bøhn

Systemarkitektur. INF1050: Gjennomgang, uke 07

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

Introduksjon til nettverksteknologi

Dette er en demonstrasjonsside som vi skal bruke for å se litt nærmere på HTTP protokollen. Eksemplet vil også illustrere et par ting i PHP.

Grunnleggende datakommunikasjon sikker datakommunikasjon fra offentlige nettsteder

Programmeringsrammeverk som kan installeres på Windows Mobiloperativsystem

ephorte Integration Services (eis) produktbeskrivelse

WMS og WFS i praksis

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

INF329,HØST

Microsoft.NET is software that connects information, people systems and devices.

Intro til WWW, HTML5 og CSS

- reklamebannere mobil og tablet

PrENV : Sikkerhet for kommunikasjon i helsevesenet. Del 3 : Sikre datakanaler. Oversatt ved Kompetansesenter for IT i Helsevesenet

Frank Sandersen, EVRY 3. April Avansert integrasjon Saksbehandling med ephorte som arkiv

CORBA & Java RMI & J2EE & CORBA CCM OMG & CORBA

Technical Integration Architecture Teknisk integrasjonsarkitektur

AlgDat 10. Forelesning 2. Gunnar Misund

Direct Access. Hva er det, og hvor langt har NVH kommet i innføringen? av Gjermund Holden IT-sjef, NVH

Gruppe 43. Hoved-Prosjekt Forprosjekt

TTM4175 Hva er kommunikasjonsteknologi?

2. HVA ER EN KOMPONENT?

Akseptansetest av sending og mottak Applikasjonskvittering

Fakultet for informasjonsteknologi, Kontinuasjonsløsning på SIF8037 Distribuerte systemer og ytelsesvurdering (Distribuerte systemer kun)

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4190 Distribuerte systemer Onsdag 4. august 2004,

6107 Operativsystemer og nettverk

Løsningsforslag Gruppeoppgaver, 28. april 2. mai. 1. Metningskontroll ( Congestion control ) og ressursallokering.

IN2000. Gjennomgang av tekniske oppgaver på prøveeksamen. Erlend Stenlund og Steffen Almås + innspill fra Gaute Berge

Bruk av Web Services i AltInn - på vei mot et enklere Norge? Bjørn Tore Egeberg. Institutt for informasjonsvitenskap, Høgskolen i Agder, Kristiansand

Fakultet for informasjonsteknologi, Løsning på eksamen i TDT4190 Distribuerte systemer Torsdag 9. juni 2005,

FS-API Status og veien videre. Kai Quale og Mario Ledinscak KDTO

Grensesnitt DIFAS støttesystem og kortleverandørs produksjonssystem

Huldt & Lillevik Ansattportal. - en tilleggsmodul til Huldt & Lillevik Lønn. Teknisk beskrivelse

Software installasjon og andre ettertanker

En bedre verden med AJAX

Office365 -innføring i utvalgte programmer

PRODUKTBESKRIVELSE. NRDB Nummerforespørsel

HUMIT1731. Tekstkoding. Koding/merking av tekst Uke 35. Tekster som teknologiske produkter. Koding/merking på flere nivå. Utvikling av notesystemet

Obligatorisk oppgave nr 2 i datakommunikasjon. Høsten Innleveringsfrist: 04. november 2002 Gjennomgås: 7. november 2002

PoC Duet. Oppfølging av sykefravær

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado

DRI1002-V05 1. forelesning Arild Jansen, AFIN

Sikkerhets skannere. Sikkerhets/sårbarhets skannere

Standarder for en tjenesteorientert arkitektur

2. Beskrivelse av mulige prosjektoppgaver

6105 Windows Server og datanett

Oblig 4 Webutvikling. Oppgave

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Tjenestebeskrivelse Webhotelltjenester

Transkript:

Innføring i SOAP Mari Svalastog (mariss@ifi.uio.no) Joakim Blomskøld (joakimbl@ifi.uio.no) Erlend Nilsen (erlend@ifi.uio.no) Sten Amundsen (stena@simula.no) Dato: 28 oktober 2003 Agenda Motivasjon og oversikt Teknisk gjennomgang Eksempel på bruk Sammenligning mot CORBA Fordeler og ulemper 2

Introduksjon (1) SOAP = Simple Object Access Protocol En lettvekts XML-basert protokoll for informasjonsutveksling i et distribuert miljø. Meldingsbasert kommunikasjon mellom applikasjoner. Uavhengig av plattform og programmeringsspråk. 3 Introduksjon (2) Baserer seg på eksisterende teknologi: XML for koding av meldinger hvilken som helst protokoll for transport (HTTP, SMTP, FTP, TCP etc.) Velegnet for interaksjon i Web Services. Basert på åpne standarder og spesifikasjoner 4

Bakgrunn Motivasjon: - Applikasjoners behov for samhandling på tvers av forskjellige plattformer, OS og brannmurer. - Med Internett kom et behov for å utføre interaksjon prosesser utenfor lokalnettet. - Behov for en mer interaktiv web. Prosjekt startet av Microsoft, DevelopMentor og UserLand Software i april 1998. En gruppe ledende selskaper, blant annet Microsoft, IBM, HP, Compaq og Lotus, foreslo SOAP 1.1 for W3C i mai 2000. Versjon 1.2 ble anbefalt av W3C 24. juni 2003. 5 Hype Mer interesse er knyttet til SOAP enn til de fleste andre, velprøvde teknologier. Grunner til dette kan være: Mer spennende med nye teknologier enn teknologier man har benyttet og sett feil og komplikasjoner med. Mer interessant å skrive og spekulere i ny teknologi framfor gammel og velprøvd. Mange tunge støttespillere. Internett og Web Services er i skuddet. SOAP er designet for disse. Snøballeffekt. Folk vil være med på hypen. Mye oppstuss basert på teknologi som egentlig ikke er ny! 6

Sikkerhet SOAP har ingen støtte for sikkerhet. Det er ikke definert som en del av SOAP s ansvarsområde. Kryptering og autentisering må utføres for å garantere beskyttelse. Ved å benytte en sikker transportprotokoll som f.eks. SSL, TLS eller IPSec kan man sikre integritet og konfidensialitet. Større utfordringer for brannmurer. HTTP-strømmer kan nå inneholde avanserte klient-tjener interaksjoner. Begrenses ved at man ikke sender eksekverbar kode. Store forskjeller i krav til sikkerhet for ulike web-tjenester. 7 SOAP og Web-services Web-services ende mer hype enn SOAP. Ingen klar definisjon eller teknologi valg. Typisk arkitektur: For å finne Web-tjenesten => UDDI For å beskrive Web-tjenesten => WSDL For å bruk Web-tjenesten => SOAP Web klient 3. Søk UDDI 2. Publiser WSDL 4. SOAP Webtjenesten 1. Opprett 8

Teknisk oversikt Interaksjon Oppbygging av SOAP-meldinger Koding av SOAP-meldinger 9 Teknisk oversikt Enkel interaksjon Prinsipielt er SOAP en enveis meldingsprotokoll Klient SOAP Server SOAP meldinger kombineres ofte til requestresponse applikasjonsprotokoller Mulig siden 1) meldingene er enkle og tekstbaserte 2) transportprotokoller ikke spesifisert Klient request response Server Følgelig er SOAP-implementasjoner applikasjonsavhengige 10

Teknisk oversikt RPC/RMI interaksjon RPC - Remote Procedure Call C RMI - Remote Method Invocation Java, C++ Ingen IDL tilgjengelig Overførere kall på prosedyre/metode som en melding. Mottaker tolker SOAPmeldingen og utfører prosedyre/metodekallet med parametere. 11 Teknisk oversikt Meldingsformat Bruker envelope-prinsippet med header og body. Kodet ved hjelp av XML <?xml version= 1.0?> <env: Envelope xmlns:env= http://ww.w3.org/2003/05/soap-envelope>.. </env: Envelope> SOAP envelope HEADER BODY Header er valgfritt Body er obligatorisk 12

Teknisk oversikt SOAP Header <env:header> Ikke adresseringsinformasjon i header. SOAP envelope Header brukes til avanserte protokoller. HEADER Primært til prosessering av mellomliggende SOAP noder Ruting av SOAP meldinger Sikkerhet Transaksjonskontroll </env:header> 13 Teknisk oversikt SOAP Body <env:body> Innholder informasjon til mottaker av meldingen SOAP gir kun ett element for å lage feilmeldinger <env.:fault> <sub-elementer> </env:fault> Lager egne elementer som følger SOAPs standardtyper tilpasset applikasjonen <m:reservation xlmns:m=http://localhost/encoding/mobilser > <m:to>bangladesh</m:to> </m:reservation> </env:body> SOAP envelope BODY 14

Teknisk oversikt XML XML kun data; struktur programmeringsvennlig XML inneholder ingen faste tagger, noe SOAP definerer Utover SOAP-taggene lager man egne struct product_info{ char name[30]; int price; } <element name= product_info > <complextype> <element name= name type= string > <element name= cost type= int > </complextype> </element> <product_info> <name>phillips DVD</name> <price>999</price> </product_info> 15 Teknisk oversikt - WSDL WSDL - Web Services Description Language WSDL er også et XML-dokument Brukes til Å lokalisere SOAP-mottaker Å definere typer, meldinger og bindinger Typene i SOAP meldingene kan enten defineres i: XML skjema WSDL fil 16

Eksempel - Bruk av SOAP i HTTP SOAP følger HTTP s forespørsel/svar-modell: - SOAP-forespørselparametere i HTTP-forespørselmelding - SOAP-svarparametere i HTTP-svarmelding HTTP-applikasjoner må bruke "text/xml som Content-type når de inneholder SOAP-meldinger i HTTP-meldinger. 17 SOAP HTTP Request SOAPAction HTTP request header field Indikerer hensikten til SOAP HTTP-forespørselen URI-verdi (RFC 2396) En HTTP-klient må bruke dette headerfeltet når den utsteder en SOAP HTTP-forespørsel SOAPAction header field kan bli brukt av nettverksnoder til å filtrere bort SOAP forespørselsmeldinger i HTTP Eks. brannmurer 18

SOAP HTTP Response SOAP HTTP følger semantikken til kodene for statusinformasjon i HTTP-svar. 2xx statuskode indikerer at klientens forespørsel inkludert SOAPkomponenten ble vel mottatt, forstått og akseptert. Feil i SOAP under prosessering av en forespørsel: HTTP 500 "Internal Server Error Inkluderer en SOAP-melding i svaret med et SOAP Faultelement som indikerer feilen. 19 HTTP ved bruk av POST POST /StockQuote HTTP/1.1 Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "http://electrocommerce.org/abc#mymessage" < env: Envelope xmlns:env. HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn </env:envelope> 20

Implementasjonseksempel - ksoap En SOAP-implementasjon spesielt relevant for mobile terminaler Tradisjonelle pakker som Xerces (for XML) og Axis (for SOAP) store og ressurskrevende Avhenger av Java-applikasjonsmiljø som ikke finnes på mobile terminaler ksoap og kxml designet for å la SOAP og XML applikasjoner kjøre i en KVM (en VM med lite minnekrav som kjører på en mobil terminal) Kombinert i en.jar-fil: <42K Gratis, open source (Enhydra.org) 21 SOAP versus CORBA Ikke direkte sammenlignbart. SOAP tilsvarer bare protokolldelen av RPC-mekanismen i CORBA, IIOP. Noen ORB er tillater bruk av andre protokoller enn IIOP, også SOAP for å aksessere CORBA-objekter. 22

SOAP versus CORBA SOAP Lett å lære og bruke. Kan benytte standard porter (f.eks HTTP/80, SMTP/25) Benytter ren tekst. Må serialiseres og deserialiseres. Ekstra båndbredde. Endringer kan tilkomme til standarden. Tidlige implementasjoner kan falle utenfor. Helt språkuavhengig. CORBA Høyere inngangsterskel. Ingen standardport for IIOP. Problem med brannmurer. Binært. Veletablert standard. Implementert i mange språk. 23 Fordeler og ulemper Fordeler Enkel. XML-basert. Lav inngangsterskel. Fleksibel. Lesbar for mennesker. Støttet av tunge aktører som IBM og MS. Lett å få igjennom brannmurer. Ulemper Treg. Data skal serialiseres, sendes og deserialiseres. Mye overhead. Lesbar for mennesker. Data må krypteres. Hypet Ingen innebygd sikkerhet gir programmerer stort ansvar. 24

Konklusjon SOAP er kulere enn CORBA! SOAP tilpasset Web verdenen. SOAP supplement til eksisterende teknologi, som CORBA 25 Referanser SOAP 1.1; Note for discussion (i.e. not the standard) http://www.w3.org/tr/2000/note-soap-20000508 SOAP version 1.2 Part 0: Primer http://www.w3.org/tr/rec-soap12-part0-20030624 http://ws.apache.org/soap/docs/guide/interop.html http://webservices.xml.com/pub/a/ws/2003/08/19/ksoap.html 26