Teknik --> Standarder A A  

Web Service Standarder

Web Service tekniken pekar ut en uppsättning standarder som avser möjliggöra utbyte av information samt tjänstebaserad programvaruutveckling. Standarderna som sådana är en del av en mer generell strävan mot informationsutbyte och programvaruutveckling baserat på välavgränsade tjänster som görs tillgängliga, mer eller mindre universellt, via katalogtjänster och väldefinierade gränssnitt.

Innehåll:

>>Introduktion
Grundläggande förutsättningar
Standarder: XML, SOAP, WSDL & UDDI
Mer om XML
Mer om WSDL
Mer om SOAP
Mer om UDDI
Vidare läsning

 

Introduktion

En genomgång av olika standarder visar på att bara några få är fixa och reelt användbara. Det finns en strävan mot och en vision om utveckling på området men i skrivandets stund är användningen av Web Services begränsad. Exempelvis används flertalet av Web Services internt inom företagen som i dagsläget inte vågar öppna sina källsystem ut mot Internet, det vill säga erbjuda publika Web Services. En förklaring till detta är det fortfarande finns en del frågor att lösa på säkerhetsområdet.

Nedan presenteras en Web Service-stack, det vill säga en uppsättning standarder som stödjer en övergripande tjänstebaserad arkitektur.

Som framgår av Web Service-stacken befinner sig olika standarder i olika utvecklingsfaser. Projektets fokus har varit de standarder som har kommit längst i sin utveckling och användning det vill säga SOAP, WSDL och UDDI samt WS-Security . Därför presenteras enbart dessa i texterna som följer (WS-Security behandlas under avsnittet om säkerhet).

Grundläggande förutsättningar

För att en webbaserad tjänst skall kunna fungera krävs ett antal grundläggande aktiviteter:

- Beskrivning av tjänsten
- Publicering och uppdatering av tjänsten
- Upptäckt av tjänsten
- Anrop och bindning

Bilden nedan visar vilka roller/aktörer som utför dessa aktiviteter:

Följande aktörer behövs: en aktör som erbjuder en tjänst (leverantör), en aktör som utnyttjar en tjänst (konsument) samt en aktör som förmedlar tjänsterna (förmedlare).

upp^

Standarder - XML, SOAP, WSDL och UDDI

Själva fundamentet i teknologin Web Services är standarderna SOAP, WSDL och UDDI som alla bygger på XML (Extensible Markup Language). Det är användningen av dessa standarder som möjliggör de ovan nämnda aktiviteterna och kommunikationen mellan olika komponeneter och system.

XML - Extensible Markup Language - en uppsättning regler för hur data ska struktureras.

WSDL - Web Service Definition Language - ett språk som används för att beskriva vilka tjänster som erbjuds. Med hjälp av WSDL specificieras åtkomst till olika Web Services. Stödjer publicering, uppdatering samt upptäckt

SOAP - Simple Object Access Protocol - möjliggör kommunikation mellan olika system med hjälp av Internetstandarder så som HTTP och XML. Stödjer anrop

UDDI - Universal Description, Discover and Integration - en standard som beskriver struktur av en Internetbaserad katalog över företag och de webtjänster som företagen erbjuder. (Kan jämföras med Gula sidorna). Stödjer publicering, uppdatering samt upptäckt

Bilden nedan illustrerar hur WS standarder stödjer grundläggande förutsättningar för webbtjänster:

upp^

Mer om XML - Extensible Markup Language och
XML-schema

Ett XML dokumet består av element och attribut som innehåller data. nedan finns ett exempel av ett XML dokument som innehåller data om en bok:

<book xmlns="http://books.org"> // ett element

   <author>Peter Soderstrom</author>
//ett attribut

   <author>Ewa Soderstrom</author>
   <title>Web Services for dummies</title>
   <isbn>124578-A</isbn>
   <pages>515</pages>

</book>
// informationen om elementet "bok" avslutas

 

För att XML dokument ska kunna fungera som grund för meddelandeutbyte oberoende av olika plattformar måste det finnas definitioner av de ingående elementen och attributen. Definitionerna anges av XML-schema. XML-schema beskriver strukturen hos ett XML dokument, vilka element som måste finnas, vilka attribut, i vilken ordning anges dessa osv.

Det som gör XML-schema användbart för Web Services är dess stöd för att definiera datatyper, det vill säga om det är bokstäver eller siffror som attributen består av. Det kan dessutom definiera sammansatta datatyper, alltså element, så som exempelvis objektet "bok" som kan exempelvis bestå av: författare, titel, ISBN nummer, antal sidor.

Om en applikation vill skicka informaton om en bok (ett förlag vill skicka bok-information om en nyutkommen bok) i form av ett XML-dokument behövs det ett XML-schema som anger hur dokumentet får utformas: vad heter objektet, i vilken ordning kommer attributen, vilken typ av data är det som skickas. På så sätt kan mottagande applikation (bokhandel) ta emot informationen, tolka om det till det språk som applikationen är byggd i och uppdatera sin databas.

Exempel på XML-schema för objektet "bok":

<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:b="http://books.org"
targetNamespace="http://books.org">

<element name="book" type="b:book_type"/>
<attribute name="author" type="string"/>

<attribute name="title" type="string"/>
<attribute name="isbn" type="string"/>
<attribute name="pages" type="integer"/>

<complexType name="book_type">
<sequence>
<attribute ref="b:author" maxOccurs="2"/>

<attribute ref="b:title"/>
<attribute ref="b:isbn"
minOccurs="1"/>
<attribute ref="b:pages"/>

</sequence>
</complexType>

<attribute name="url" type="anyURI"/>
</complexType>

</schema>

Mer om WSDL - Web Service Definition Language

Avsikten med WSDL är att beskriva en viss tjänsts egenskaper och hur denna tjänst är uppbyggd. WSDL är enkelt uttryckt ett XML-schema som formellt definierar det ramverk som beskriver en tjänsts gränssnitt, det vill säga ett standardiserat sätt att representera datatyper i meddelanden, de operationer som är nödvändiga att utföra på meddelandet samt hur meddelandet skall mappas (överföras) till nätverket för vidare transport.

En applikation som vill använda sig av en tjänst på Internet kan läsa av tjänstens WSDL dokument och på så sätt få information om vilka funktioner som kan anropas och på vilket sätt. Utifrån denna information kan SOAP meddelanden skapas och skickas av avsändaren samt översättas av mottagaren.

Ett WSDL dokument innehåller bland annat följande element:

Element

Definierar

<portType>

Viktigaste elementet i en WSDL, anger vilka operationer som kan utföras av webbtjänsten och vilka meddelanden som kommer att skickas

<types>

Anger de datatyper som används av webbtjänsten

<message>

Anger innehållet i meddelanden som används av webbtjänsten, det vill säga vilken data som kommer att skickas

Källa: w3schools tutorial http://www.w3schools.com/wsdl/wsdl_documents.asp

upp^

Exempel

Nedan finns exempel på delar av ett WSDL dokument.

(WSDL-exempelt beskriver en Web Service hos ett fiktivt e-handelsföretag "ITea" som säljer möbler via Internet).

 

Hur skapar man ett WSDL dokument?

Det finns två sätt att skapa ett WSDL dokument. Det ena är att utgå från en existerande applikation som tillhandahåller tjänsten och utifrån redan befintliga funktionsdefinitioner (namn, in- och utparametrar) generera ett WSDL dokument som beskriver tjänstens gränssnitt. Ett annat sätt är att börja med ett WSDL dokument och utifrån det bygga gränssnittet.

Mer om WSDL (extern länk)

upp^

Mer om SOAP

SOAP är ett XML-baserat protokoll som hanterar utbytet av anrop och svar mellan två parter. SOAP är, liksom XML, plattformsoberoende eftersom det enda SOAP egentligen gör är att definiera paketeringsmodell och kodningsmekanismer. SOAP erbjuder således möjligheter att skicka XML-dokument mellan olika system och därmed erbjuder det all den information som är nödvändig för att systemen skall förstå hur XML-dokumenten skall tolkas.

Ett SOAP meddelande är alltså ett XML dokument och innehåller följande element:

 

Exempel

När två applikationer ska kommunicera med varandra via en Web Service skickas alltså SOAP meddelanden applikationerna emellan.

Ett enkelt exempel på en Web Service skulle kunna vara att ett företag erbjuder sina kunder att lägga ordrar direkt i sitt ordersystem. Komunikationen mellan kunden och tjänsteleverantören sker i form av SOAP meddelanden som föreklat skulle kunna se ut så här:

Mer om SOAP (extern länk)

upp^

Mer om UDDI

UDDI kan liknas vid en stor databas där tjänster skall publiceras för att senare kunna återfinnas av andra aktörer. Förmedlaren (en av rollerna som krävs för att webbtjänster ska fungera) representerar denna distribuerade databas. Syftet med förmedlaren är att beskriva alla nödvändiga attribut för en tjänst som exempelvis vilken kategori av tjänst det handlar om, vem som erbjuder tjänsten samt beskrivningar och förklaringar för en viss tjänst. Den information som erhålls via förmedlaren ska vara tillräckligt detaljerad för att en intresserad konsument skall kunna fatta ett beslut om att utnyttja tjänsten i fråga. UDDI kan, som redan påtalats, betraktas som en helt ordinär databas som innehåller information om de tjänster som finns lagrade i databasen. Dessutom måste UDDI kunna erbjuda information till en global marknad, innefattande alla upptänkliga
branscher och där inblandade parter måste kunna beskriva sina tjänster på ett gemensamt sätt som de finner lämpligt. Allt detta gör att UDDI måste vara betydligt mer flexibelt än en ordinär situationsanpassad databas.

Det aktuella läget för UDDI är inte så positivt.
Teknikfokus i kombination med bristande respekt för och förståelse för hur producenter och konsumenter av tjänster (företrädesvis
webbtjänster) upplever sina respektive roller utifrån ett handels- och affärsperspektiv har bidragit till att UDDI av många snarare upplevs som en hype än en stabil byggsten i Web Services-ramverket

(Berild S.,'UDDI- ett par år senare', sid 3).
Denna problematik har lett till att UDDI än så länge endast
används internt, d.v.s. användning i slutna miljöer som företag, enskilda verksamhetsområden eller möjligtvis branscher.

Mer om UDDI (extern länk)

Vidare läsning

Rapporter från Serviam som tar upp olika Web Service- standarder:

Berild S.,'XML Schema - en översikt' - Rapporten tar upp standarden XML (Extensible Markup Language) och hur den stödjer Web Services.

Berild S.,'UDDI- kokar soppa på en spik' - en tidig rapport om UDDI från 2001

Berild S.,'UDDI- ett par år senare' - En uppföljning av tidigare rapport om UDDI - "UDDI - kokar soppa på en spik", vad har hänt sedan dess på området? Från 2004

upp^
Extra material!
SOA & WS i ljud- o bild

Bilder från projektmöte
 

Externa länkar:

www.ssek.org
www.vinnova.se
 
Huvudsponsor:
kontakt: Peter Söderström (IT Plan) | Martin Henkel (Stockholms Universitet) | Web utvecklad av: Milena Haykowska (Stockholms Universitet)