Webbtjänster med SOAP, uppbyggnad och implementation

Storlek: px
Starta visningen från sidan:

Download "Webbtjänster med SOAP, uppbyggnad och implementation"

Transkript

1 Webbtjänster med SOAP, uppbyggnad och implementation David Smedman Institutionen för informationsbehandling Åbo Akademi, Åbo, Finland E-post: dsmedman(snabela)abo.fi

2 Abstrakt Denna uppsats kommer att ta upp användningen och de viktigaste begreppen inom begreppet Web services, som härstammar från utvecklandet av SOAP i början av år 2000 [1]. Jag kommer att ta upp de viktiga byggstenarna SOAP och WSDL som båda är uppbyggda av XML. SOAP är ett protokoll som används för att distribuera data mellan olika system över Internet. WSDL är ett definitionsschema för att definiera en Web service och används både av servern och av klienten i en Web service omgivning. Jag kommer också att nämna UDDI som gör det möjligt för serviceanvändare att hitta kontaktinformation och gränssnitt till publika Web services. Vidare kommer jag att visa ett exempel på användningen av Web services i ett projekt som har utförts vid Åbo Akademi. I detta exempel ser vi tydligt hur Web services kan användas för kommunikation mellan två system på olika platformer. Slutligen kommer jag också att ta upp olika Web services implementationer, exempel på sådana är.net och J2EE. Nyckelord Webbtjänst, SOAP, WSDL, XML, UDDI, MinPlan.

3 Innehållsförteckning: 1.Inledning 1 2. XML Uppbyggna Namnrymd 2 3. SOAP SOAP meddelandens uppbyggnad Felmeddelanden Processering 5 4 WSDL Typer Meddelanden Port typer och Portar Service och det slutliga WSDL-dokumentet 8 5. UDDI UDDI organisationen UDDI i praktiken UDDI information UDDI register datastrukturen UDDI SOAP API SOAP webbtjänst implementationer En webbtjänst i praktiken Systemens uppbyggnad Informationsutbytet mellan systemen Avslutning 17 Litteraturförteckning 19

4 1 1. Inledning Informationsflödet bara ökar för de moderna företagen. I takt med att mer och mer av denna information digitaliseras och samlas i olika typer av databaser framträder ett behov av att också dela ut data till andra i digital form. Eftersom allt fler väljer att utveckla ett stort datasystem som täcker hela organisationens behov blir det allt vanligare att man även vill integrera sin omgivning. För att göra detta krävs det att man kan kommunicera med omgivningen på ett enkelt och standardiserat sätt. Ofta kan datasystemen vara uppbyggda på helt olika platformer, vilket gör kommunikationen ännu svårare. Ett sätt att uppnå platformoberoende standardiserad kommunikation är webbtjänster. Webbtjänster har blivit en allt mer använd standard sen dess uppkomst runt år Numera finns det ett register som erbjuder företag att registrera och söka bland många olika webbtjänster. Bild 1. Kommunikationsflödet i en webbtjänst [1]. För att möjliggöra kommunikation mellan två olika applikationer krävs det ett gemensamt språk. I detta fall är det XML (extensible Markup Language) som är det gemensamma språket. För att överföra XML-meddelanden till ett format som en viss applikation kräver används SOAP (Simple Object Access Protocol) och föra att beskriva hur SOAP-meddelandet ska se ut behövs ett beskrivningsspråk i form av WSDL (Webservice Description Language). Dessa tre bildar stommen i vad som kan kallas en webbtjänst. Föra att en användare lätt ska kunna hitta webbtjänster har ett register som kallas UDDI utvecklats. Jag kommer nu att gå igenom vad dessa huvuddelar och till sist belysa teorin med ett exempel som är hämtat från Åbo Akademi.

5 2 2. XML (extensible Markup Language) För att man lättare ska förstå de olika delarna i en webbtjänst kommer jag nu att ge en kort introduktion till hur XML är uppbyggt. XML är sedan 1998 accepterat av W3C som är ett konsortium som jobbar för att standardisera format och protokoll för Internet. XML skapades, till skillnad från HTML, inte för att beskriva hur data ser ut utan att beskriva vad data är. En annan skillnad gentemot HTML är att XML inte har några fördefinierade taggar. Man definierar alltså alla taggar själv. Man kan förutom att definiera element som beskriver data också bilda strukturer som grupperar data Uppbyggnad Ett element i XML måste, till skillnad från HTML, alltid ha en sluttagg. Det är också viktigt att element inte är nästlade. Följande exempel visar hur en struktur av typen meddelande kunde se ut: <message> <from xs:string>john</from> <to>jane</from> <text>hej Jane</text> </message> I detta exempel definieras elementet from som en sträng, vilket är en av flera typer som finns färdigt definierade i XML. 2.2 Namnrymd Något som är viktigt att ta upp i samband med XML är namnrymder. Då man definierar egna element är det mycket viktigt att samma namn inte används två gånger. Detta kan lätt hända vid implementeringen av webbtjänster, då man ofta har ett dokument uppdelat i flera olika filer. För att undvika att få dubbla element med samma namn kan man definiera olika namnrymd för båda elementen. För att peka på en namnrymd kan man använda sig av en URI (Uniform Resouce Identifier). Den

6 3 vanligaste typen av URI är en URL (Uniform Resource Locator). Ett exempel på användningen av namnrymder är att definiera en egen typ av tabell i ett dokument som innehåller en HTML tabell. HTML-tabellen kunde definieras på följande sätt: <table xmlns="http://www.w3.org/tr/html4/"> </table> Den egendefinierade tabellen kunde istället peka på en egen namnrymd på följande sätt: <table xmlns="http://www.abo.fi/~dsmedman/"> <table> Det är alltså attributet xmlns som anger namnrymden. Webbtjänster kommunicerar med meddelanden uppbyggda av XML [2]. 3. SOAP (Simple Object Access Protocol) SOAP är en av de viktigaste byggstenarna i en webbtjänst, eftersom det möjliggör kommunikation mellan användare. SOAP är ett lättvikts protokoll för att skicka och ta emot information i en distribuerande omgivning [3]. SOAP är baserat på XML (Extended Mark-up Language) meddelanden och det erbjuder ett sätt att skicka strukturerad information via http eller https[4]. Den stora fördelen är att mottagaren och sändaren inte behöver känna till varandra utan båda har en sk. SOAP-processor som kan tolka SOAP-meddelanden och deras data så att den underliggande plattformen kan använda dem. Ett exempel är en java SOAP-processor som omvandlar informationen i ett SOAP-meddelande till en instans av ett objekt eller till en java datatyp. På detta sätt kan den tjänst som erbjuder servicen ligga på en helt annan plattform och vara skriven i ett helt annat programmeringsspråk än den som använder servicen. Detta erbjuder ett affärsföretag att exponera delar av sina affärsdata för t.ex. kunder och andra intressenter, utan att dessa annars är en del av affärssystemet. Ett SOAP-meddelande består av tre komponenter. Dessa är kuvert (Envelope), rubrik (Header) och kropp (Body).

7 4 3.2 SOAP-meddelandens uppbyggnad Kuvertet är det som anger att XML-dokumentet är ett SOAP-meddelande. Kuvertet innehåller både huvudet och kroppen och därmed specificerar det också början och slut på meddelandet. Detta löser eventuella problem med att mottagaren inte vet när meddelandet slutar. Ifall mottagarens SOAP-processor kommer till kuvertets sluttagg vet den att meddelandet är slut och data kan bearbetas [3]. I rubriken kan man specificera hur mottagarens SOAP-processor ska bearbeta meddelandet. Rubriken behöver inte finnas med i meddelandet men om den finns med måste den komma som första element under kuvertet. Ett SOAP-meddeland har ofta en absolut slutpunkt men kan på sin väg till denna slutpunkt passera flera olika applikationer. I vissa fall kan det finnas information som är menad bara för ett av dessa delmål. Detta finns angett i rubriken [4] med hjälp av attributet actor, som anger vilken applikation som är den absolut sista i kedjan. Ett annat attribut i rubriken är mustunderstand. Detta attribut används också då ett meddelande sänd i en kedja mellan olika applikationer och signalerar för element som alla applikationer måste förstå.. Ifall mustunderstand är satt till 1, så måste en applikation som inte förstår elementet returnera ett felmeddelande som svar. I rubriken kan man också ange information om eventuell autenticering eller transaktionsprotokoll [4]. Kroppen i ett SOAP-meddelande är själva informationen som skall skickas. Kroppen måste följa eventuella reglerna som är satta i rubriken och den ligger under kuvertet och eventuell rubrik [4]. Ett enkelt exempel är en Webbtjänst som tar emot ett id och returnerar ett pris på en vara med motsvarande id. I detta enkla fall kommer det meddelande, eller begäran, som skickas till servicen ha numret i sin kropp. Servisen kommer i sin tur att returnera ett meddelande med priset i kroppen. Det existerar även en speciell typ av kropp, som heter felmeddelande (Fault) [3]. 3.3 Felmeddelanden

8 5 Felmeddelanden används för att meddela avsändaren att något har gått fel och att det aktuella meddelandet inte går att processera. Felmeddelandet ska finnas i kroppen och bör endast bestå av ett element och de egna underelementen. Om man inkluderar annan information i form av andra element kan inte meddelandet tolkas som ett felmeddelande. I felmeddelandet måste det finnas en felkod som anger bl.a. vem som orsakade felet, sändaren eller mottagaren. Det andra obligatoriska underelementet är ett orsakselement, som är till för att ge en mer konkret förklaring av felet och ges oftast i klartext [5]. Meddelandet kan även innehålla fler underelement men dessa är inte obligatoriska. 3.4 Processering För att en applikation ska kunna navända informationen i ett SOAP-meddelande måste det gå att översätta informationen till en form som applikationen förstår. Detta sker med hjälp av en SOAP-processor. Följande steg ska göras vid processeringen. 1. Kontrollera vad i innehållet som är menat för denna destination. 2. Kontrollera att alla delar som är menat för applikationen kan förstås och användas. Om inte så skall ett felmeddelande skickas. 3. Ifall meddelandet inte var menat för applikationen, så skall all information om applikationen tas bort och meddelandet ska skickas vidare. För att en applikation skall förstå vilka datatyper som finns i meddelandet behövs ett WSDL-dokument som är delat mellan avsändaren och mottagaren. 4. WSDL Ett WSDL-dokument är en mängd definitioner samlade i ett XML-dokument. I roten av dokumentet finns ett element som innehåller alla definitionerna, som används för att definiera själva gränssnittet till den Webbtjänst som finns tillgänglig [5]. Gränssnitten är definierade som en samling operationer, som finns implementerade

9 6 vid en viss slutpunkt Ett WSDL-dokument är uppdelat i fem olika delar eller element. Dessa fem är: 1. Typer 2. Meddelanden 3. Port typer 4. Portar 5. Service 4.1 Typer Typer används för att definiera och identifiera olika data typer som används i de meddelanden som skickas mellan tjänsten och den anropande applikationen. Dokumentet är i XML-format och därför kan man använda XML:s egna definitioner för att definiera t.ex. string, double och boolean element. Ifall man vet vilken typ av applikation som kommer att ta emot meddelandet kan man även använda helt andra typsystem. Man kan också definiera egna så kallade Komplexa typer. Dessa kan bilda en struktur och bestå av t.ex. en string och ett boolean element. Vidare kan en komplex typ också innehålla element av andra komplexa typer. Tack vare detta är WSDL mycket flexibelt och lätt att bygga ut[4][6]. 4.2 Meddelanden Meddelanden består av en abstrakt definition av det data som ska skickas. Ett meddelande ska innehålla ett namn, ett element och en typ. Här definierar man alltså, på ett abstrakt vis, vilka parametrar som kommer att skickas. Element kan ses som parametrar som skickas till en funktion i ett traditionellt programmeringsspråk[6]. 4.3 Port typer och portar

10 7 Port typerna är en mängd av abstrakta operationer. Ifall man skulle jämföra med ett objektorienterat programmeringsspråk, så skulle operationer motsvara metoder, meddelanden skulle vara input och output och port typen skulle vara objektet. Varje operation hänför sig till ett input meddelande och ett output meddelande. Det är dessa meddelanden som definierades i punkt 2.2. Det är operationerna som berättar för en webbtjänst vilka typer av meddelanden som ska skickas. Det finns fyra olika typer av operationer i WSDL: 1. Envägs kommunikation 2. Fråga/Svar 3. Svar/Fråga 4. Notifikation Vid envägs kommunikation sänds ett meddelande utan förväntning på svar [4]. Ett exempel kan vara en avsändare som sänder data som ska lagras i en databas. Den som skickar data förväntar sig inget svar, bara att få sina data lagrade av den som erbjuder webbtjänsten. Vid Fråga/Svar kommunikation skickar avsändaren en förfrågan och förväntar sig ett svar av mottagaren [4]. Som exempel kan ges ett affärssystem som erbjuder sina kunder en webbtjänst som returnerar priset på en vara med ett givet id. Kunden skickar en fråga, som innehåller id och förväntar att få ett svar som innehåller ett pris. Vid Svar/fråga skickar avsändaren en förfrågan utan någon input data [4].I praktiken betyder detta att man skickar ett SOAP-meddelande som inte innehåller några typdefinitioner i dess kropp. Detta kan ses som en funktion som anropas utan att sända med några parametrar. En notifikation är en operation som definierar flera mottagare av ett meddelande. En notifikation kan alltså användas för att skicka ett meddelande till många olika webbtjänster. Detta kan t.ex. användas för att meddela om en speciell händelse eller för att synka olika system mot varandra.

11 8 Efter att operationerna har grupperats i port typer så måste de bindas till ett specifikt transportprotokoll och till en ändpunkt dit meddelandet skall skickas. Ett av de vanligaste protokollen för webbtjänster är SOAP. Efter att man har definierat en transport bindning ska man med hjälp av portar knyta samman port typerna och transportbindningen [6]. 4.5 Service och det slutliga WSDL-dokumentet En service sammanbinder flera relaterade portar och gör det möjligt att erbjuda olika kategorier av operationer som en helhet åt användare [5] Det är också servicen som binder samman portarna med en ändpunkt, dvs. var tjänsten finns och vad den heter. Följande relation finns mellan portar i en service: Ingen port kommunicerar med en annan port i samma service. Om portar delar en port typ men har olika bindningar, är portarna alternativ som båda erbjuder samma tjänst fast med olika transportprotokoll. Detta ger användaren en möjlighet att välja port beroende på användningsområde. Genom att granska portarna kan man avgöra om det är möjligt att använda sig av tjänsten utgående från vilka port typer som stöds. Efter att alla delar och element är definierade kan man lägga ihop delarna till en WSDL-fil och publicera den på Internet, förutsatt att man har en underliggande applikation som erbjuder exakt den tjänst som finns beskriven i WSDL-dokumentet. Det finns även en möjlighet att importera element som är definierade i en annan WSDL-fil. På detta vis kan man kombinera delar från olika filer till helt nya sammansättningar och tjänster. För att göra det lättare att publicera och hitta önskade webbtjänster har ett register kallat UDDI tagits fram av bland annat Microsoft, IBM och Ariba [4]. 5.UDDI the Universal Description, Discovery and Integration registry

12 9 Med hjälp av UDDI är det lättare att hitta en webbtjänst på basen av vissa kriterier. Ofta vet man vad man söker för tjänst men man vet inget namn på företaget som erbjuder tjänsten. I vissa fall vill man kanske jämföra olika tjänsters egenskaper. I bägge fallen krävs det en lite mer avancerad söktjänst och det är exakt vad UDDI erbjuder [4]. Man kan säga att UDDI är för webbtjänster som Gula sidorna är för tjänsteföretag. Det finns också möjlighet för utvecklare att ha kontakt med UDDI både vid utveckling och vid exekvering. 5.1 UDDI organisationen Från början var det Microsoft, IBM och Ariba som började samarbeta kring ett projekt att få igång användandet av webbtjänster. Gruppen bildade UDDI.org och bjöd in andra företag att delta. I början var det också det tre förstnämnda som var värdar för servrarna som tillhandahåller informationen i UDDI. På senare tid har också Hewlett-Packard och SAP anslutit som värdar [4]. Över 300 företag är nu medlemmar och 15 av dessa är med i arbetsgruppen som bestämmer över strategin och kursen på projektet. Operatörerna tillhandahåller både en testmiljö och en produktionsmiljö. På detta sätt kan utvecklare testa sin UDDI-klient förrän webbtjänsten laddas upp till databasen. 5.2 UDDI i praktiken Värdarna tillhandahåller alla varsin databas som tillsammans bildar UDDI-registret. Ett företag som vill lägga upp en webbtjänst kan vända sig till någon av värdarna och ladda upp sin tjänst. Varje dag replikerar värdarna med varandra och byter ny information. På detta sätt hålls informationen alltid synkroniserad på de olika servrarna och samma information fås från alla värdar. Om man vill uppdatera information måste det dock göras på samma databas som man skickade tjänsten till. Alla företag som försöker ladda upp en tjänst måste först kontrolleras och verifieras, så att alla uppgifter stämmer.

13 10 UDDI har två huvuddelar, registrering och sökning. Registrering innebär att ett företag lägger ut information om en webbtjänst och sökning innebär att någon söker och hittar en tjänst. Man kommunicerar med UDDI genom en SOAP API eller något av gränssnitten som värdarna tillhandahåller. Själva registreringen och sökningen fungerar i säg som en webbtjänst och värdarna tillhandahåller skilda WSDLdokument för båda operationerna UDDI Information Den information som finns tillgänglig i UDDI-registret är indelad i 3 kategorier eller sidor. I de vita sidorna finns namn, adress, kontaktinformation, namnet på webbsidan och annan identifieringsinformation. De gula sidorna anger vilken typ av företag, företagets placering och vilka produkter företaget erbjuder. All denna information är angiven enligt olika standardiserade klassifikationssystem. T.ex. till vilken typ av industri företaget hör. Slutligen innehåller de gröna sidorna teknisk information om själva tjänsten. Detta innefattar t.ex. hur man ska kommunicera med tjänsten, vilken typ av data som tjänsten kräver och vilken typ av data som tjänsten returnerar. Det är också i denna del som ett eventuellt WSDL-dokument finns. Genom att använda standardiserade klassifikationer för identifiering blir det mycket lätt att söka och lista tjänster enligt olika kategorier. En tjänst kan klassificeras enligt vilken typ av industri, typ av produkt och service och placering UDDI register datastrukturen Registreringsinformationen innehåller fem olika datastrukturtyper. Dessa datastrukturer innehåller i sig flera element av vilka vissa är obligatoriska. Här följer en kort presentation av de olika strukturerna: 1. businessentity:

14 11 Här finns all information om de gula och vita sidorna, dvs information om företaget, lagrad. Inom denna del finns också de tre följande angivna. 2. businessservice: Namn och beskrivning av tjänsten. Här finns t.ex. olika kategoriserings information. 3. bindingtemplate: bussinessservicen kan inehålla flera bindingtamplate, som innehåller detaljerad information om hur man kontaktar och binder sig till en tjänst. 4. tmodel: Denna den används vid sökning. Den innehåller information med vars hjälp man kan unikt identifiera tjänsten. 5. publisherassertion: Med denna del kan man uttrycka olika relationer mellan två eller fler businessentity strukturer. Dessa fem delar är alla definierade i ett XML-schema som har ett businessentity element som rotelement. Ett exempel på ett schema följer här [8]: <businessservice servicekey= 894B5100-3AAF-11D5-80DC C64 servicekey= D AAF-11D5-80DC C64 > <name>electronictravelservice</name> <description xml:lang= en >Electronic Travel Service </description> <bindingtemplates> <bindingtemplate bindingkey= 6D665B10-3AAF-11D5-80DC C64 servicekey= 89470B40-3AAF-11D5-80DC C64 > <description> SOAP-based checkin and flight info</description> <accesspoint URLType= http >http://www.acme -travel.com/travelservice</accesspoint> <tmodelinstacedetails> <tmodelinstanceinfo tmodelkey= D BGF-1KJH-234C >... </tmodelinstanceinfo> </tmodelinstancedetails> </bindingtemplate> </bindingtemplates> <categorybag>... </categorybag> </businessservice> <?xml version= 1.0 > <tmodel tmodelkey= D BGF-1KJH-234C > <name>http:// /checkininterface</name>

15 12 <description xml:lang= en >Standard service interface for travel service</description> <overviewdoc> <description xml:lang= en >WSDL Service Interface Document</description> <overviewurl>http://www.travel.com/services/e-checking.wsdl</overviewurl> </overviewdoc> <categorybag>... </categorybag> </tmodel> I detta exempel används WSDL för att beskriva webbtjänsten men UDDI accepterar även andra typer av beskrivningsspråk. Exemplet ovan visar i vilket format data sänds till UDDI värden men ingalunda hur data lagras i slutändan. Huvudsaken är att data vid behov går att återskapas till en likadan XML-fil, den underliggande arkitekturen spelar ingen roll. 5.3 UDDI SOAP API UDDI API:n (Application programming interface) är delad för dem som lägger till information och de som söker och hämtar information. API för registrering erbjuder möjlighet att lägga in ny information och uppdatera eller radera gammal. API:n för sökning returnerar antingen en lista på tjänster eller detaljerad information om en enskild tjänst. För att använda en API måste man autentiseras av den operatör som tillhandahåller API:n. Man måste även använda API:n över krypterad HTTPS. I API:n för sökning ges möjlighet att söka efter bindningar, företag, relaterade företag, en service för ett visst företag och tmodell, vilken ger möjlighet att söka efter tjänster med liknande egenskaper. Om man redan har en unik nyckel för en tjänst kan man också få mer detaljerad information grupperad på samma sätt som ovan. API:n för registrering erbjuder en hel del operationer för insättning och administration av uppgifter. Man kan också radera och uppdatera delelement som t.ex. bindingelement och tmodeller.

16 13 Operatörerna kan begränsa mängden av information som ett företag kan ladda upp till servern. Bland annat kan man begränsa storleken på meddelandet eller antalet tmodeller. 6. SOAP webbtjänst implementationer. För att utveckla applikationer som använder sig av webbtjänster kan man använda sig av de färdiga moduler som finns till de flesta programmeringsspråk idag. Det centrala i dessa implementationer är att översätta det xml meddelande som tas emot till en form som applikationen kan använda. Man har också försökt förenkla utvecklandet av webbtjänsterna så långt som möjligt. Eftersom webbtjänster har blivit ett vanligt begrepp så finns stödet med till de flesta platformer. Här följer en presentation av de vanligaste implementationerna. Java har nyligen lanserat sitt Java Web Service Developer Pack till Java EE platformen. Med detta verktyg kan man skapa egna webbtjänster och alla nödvändiga dokument. Man kan enkelt binda XML scheman till java klasser och även java klasser till xml scheman för att kunna dela ut sin information. Det finns också färdigt inbyggda moduler för att göra tjänsterna mer säkra. Till Java finns även en populär lösning vid namn Apache Axis [11]. Denna implementation baserar sig på öppen källkod. Båda dessa lösningar genererar WSDL dokumenten automatiskt. Microsofts egen utvecklingsplatform.net har också egna implementationer av webbtjänster. Microsoft har valt att kalla modulen för WebMethods och dess specifikationer påminner ganska långt om Javas. Här finns även stöd för automatisk generering av WSDL dokument. [12] PHP har också från och med version 5.0 haft webbtjänster implementerat. Denna lösning erbjuder inget direkt stöd vid utvecklandet av webbtjänsterna utan är mera tänkt för att göra det möjligt för PHP-applikationer att kommunicera med webbtjänster.

17 14 7. En webbtjänst i praktiken I följande kapitel kommer vi nu att se på ett verkligt exempel på hur webbtjänster kan användas. I detta nu håller Åbo Akademi på och utvecklar ett studieplaneringssystem kallat MinPlan. Det är meningen att studeranden ska kunna planera sin studiegång och göra personliga studiescheman i en webbaserad miljö. Parallellt utvecklas också ett webbaserat resursbokningssystem för akademins resurser, såsom auditorier och videokanoner. Meningen är att bokningssystemet ska erbjuda en webbtjänst som MinPlan kan använda för att hämta information om bokningar som har gjorts på en viss kurs. I bokningsskedet har man alltså möjlighet att ange en kurs att boka för. Detta betyder att bokningssystemet i sin tur måste hämta information om kurser från MinPlan, vilket också görs med en webbtjänst. Exemplet kommer att visa hur enkelt två olika system kan kommunicera med varandra utan att veta något om den underliggande strukturen. 7.1 Systemens uppbyggnad Bokningssystemet är implementerat i PHP [9] och all data sparas i en MySQLdatabas [10]. PHP är ett skript språk som körs på en webbserver och kan bäddas in i HTML (Hyper Text Mark-up Language). MySQL är en av de största sql-databaserna och är gratis under en GPL-licens. För att MinPlan ska få tillgång till bokningar behövs en rutin i bokningssystemet som tar mot följande parametrar: kurskod, kursdecimal och versionsnummer. Dessa tre behövs för att unikt kunna identifiera en kurs. Rutinen ska returnera en lista med instanser av objekt av typ BookingType. Rutinen anropar en intern rutin som i sin tur sköter själva kommunikationen med databasen. Bokningssystemet använder också webbtjänster internt men det behövs inga WSDL-dokument då både servern och klienten är implementerade i PHP. Då MinPlan inte är implementerat i PHP krävs följande WSDL-dokument:

18 <?xml version ='1.0' encoding ='UTF-8'?> <definitions name='findbookings' targetnamespace='http://www.vasa.abo.fi/bookeval/server/' xmlns:tns1='http://www.vasa.abo.fi/bookeval/server/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/ xmlns:xsd='http://www.w3.org/2001/xmlschema' xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns='http://schemas.xmlsoap.org/wsdl/'> <types> <xsd:schema xmlns:xsd=http://www.w3.org/2001/xmlschema elementformdefault="qualified" targetnamespace="http://www.vasa.abo.fi/bookeval/server/"> <xsd:complextype name="idvaluetype"> <xsd:sequence> <xsd:element name="id" nillable="true" type="xsd:string"/> <xsd:element name="value" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="responsiblepersonlisttype"> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="bookingperson" nillable="true" type="tns1:responsiblepersontype"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="responsiblepersontype"> <xsd:sequence> <xsd:element name="responsiblepersonid" nillable="true" type="xsd:string"/> <xsd:element name="responsiblepersonusername" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="resourcetype"> <xsd:sequence> <xsd:element name="resourceid" nillable="true" type="xsd:string"/> <xsd:element name="resourcecode" nillable="true" type="xsd:string"/> <xsd:element name="category" nillable="true" type="tns1:idvaluetype"/> <xsd:element name="subcategory" nillable="true" type="tns1:idvaluetype"/> <xsd:element name="responsibleperson" nillable="true" type="tns1:responsiblepersonlisttype"/> <xsd:element name="resourcename" nillable="true" type="xsd:string"/> <xsd:element name="resourcedescription" nillable="true" type="xsd:string"/> <xsd:element name="cityid" nillable="true" type="xsd:string"/> <xsd:element name="cityname" nillable="true" type="xsd:string"/> <xsd:element name="buildingid" nillable="true" type="xsd:string"/> <xsd:element name="buildingname" nillable="true" type="xsd:string"/> <xsd:element name="buildingaddress" nillable="true" type="xsd:string"/> <xsd:element name="buildingpobox" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="bookingtype"> <xsd:sequence> <xsd:element name="bookingnumber" nillable="true" type="xsd:string"/> <xsd:element name="coursecode" nillable="true" type="xsd:string"/> <xsd:element name="coursecodedecimal" nillable="true" type="xsd:string"/> <xsd:element name="courseversion" nillable="true" type="xsd:string"/> <xsd:element name="coursename" nillable="true" type="xsd:string"/> <xsd:element name="bookingpersonusername" nillable="true" type="xsd:string"/> <xsd:element name="bookedforpersonfirstname" nillable="true" type="xsd:string"/> <xsd:element name="bookedforpersonlastname" nillable="true" type="xsd:string"/> <xsd:element name="partialelement" nillable="true" type="tns1:idvaluetype"/> <xsd:element name="group" nillable="true" type="tns1:idvaluetype"/> <xsd:element name="startdate" nillable="true" type="xsd:string"/> <xsd:element name="starttime" nillable="true" type="xsd:string"/> <xsd:element name="enddate" nillable="true" type="xsd:string"/> <xsd:element name="endtime" nillable="true" type="xsd:string"/> <xsd:element name="commentswedish" nillable="true" type="xsd:string"/> <xsd:element name="commentenglish" nillable="true" type="xsd:string"/> <xsd:element name="resource" nillable="true" type="tns1:resourcetype"/> <xsd:element name="eventtextswedish" nillable="true" type="xsd:string"/> <xsd:element name="eventtextenglish" nillable="true" type="xsd:string"/> 15

19 16 <xsd:element name="languageid" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="bookingslisttype"> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="booking" nillable="true" type="tns1:bookingtype"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="bookingssearchcriteriatype"> <xsd:sequence> <xsd:element name="courseinformationcoursecode" nillable="true" type="xsd:string"/> <xsd:element name="courseinformationcoursecodedecimal" nillable="true" type="xsd:string"/> <xsd:element name="courseinformationversionnumber" nillable="true" type="xsd:string"/> <xsd:element name="bookingid" nillable="true" type="xsd:string"/> <xsd:element name="language" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="bookingdatetype"> <xsd:sequence> <xsd:element name="year" type="xsd:string"/> <xsd:element name="month" type="xsd:string"/> <xsd:element name="day" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:element name="bookinglist" type="tns1:bookingslisttype"/> <xsd:element name="bookingsearch" type="tns1:bookingssearchcriteriatype"/> </xsd:schema> </types> <message name='findbookingsrequest'> <wsdl:part name="findbookingsrequest" element="tns1:bookingsearch" ></wsdl:part> </message> <message name='findbookingsresponse'> <wsdl:part name="findbookingsresponse" element="tns1:bookinglist"></wsdl:part> </message> <porttype name='bookingsporttype'> <operation name='findbookings'> <input message='tns1:findbookingsrequest'/> <output message='tns1:findbookingsresponse'/> </operation> </porttype> <binding name='bookingsbinding' type='tns1:bookingsporttype'> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="findbookings"> <soap:operation soapaction="urn:#findbookings"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name='bookingsservice'> <port name='bookingsport' binding="tns1:bookingsbinding"> <soap:address location='http://www.vasa.abo.fi/bookeval/server/minplan-bookings.php'/> </port> </service> </definitions> Detta exempel visar hur man börjar med att definierar alla datatyper men också hur man definierar egna komplexa typer genom att gruppera flera olika element till en

20 17 struktur, t.ex. BookingType som dels består av färdigt definierade typer som string men också av andra komplexa typer som ResourceType. Vidare definieras vilka meddelanden som ska skickas. I detta fall kommer MinPlan att skicka ett findbookingsrequest meddelande av typen bookingsearch, som i sin tur är en instans av typen BookingSearchCriteriaType och bokningssystemet kommer att returnera ett findbookingsresponse meddelande av typ bookinglist. Efter detta sätts meddelandena in i en port typ, vilken sen binds till ett transportprotokoll. Till sist knyter vi bindningen till en ändpunkt där tjänsten finns. I detta fall är det och metoden findbookings, vilka tillsammans bildar slutpunkten. 7.2 Informationsutbytet mellan systemen Kommunikationen börjar med att MinPlan läser in WSDL-dokumentet som bokningssystemet erbjuder och omvandlar, med hjälp av en SOAP-processor, instansen av ett BookingSearchCriteriaType objekt till ett SOAP-meddelande i XML-format och skickar detta meddelande över https till bokningssystemet. Därefter översätter, med hjälp av samma WSDL-dokument, bokningssystemets SOAPprocessor meddelandet till en instans av ett objekt och gör sökningen med hjälp av de parametrar som finns i instansen. Rutinen kommer att returnera ett BookingType objekt som SOAP processorn omvandlar till ett nytt SOAP-meddelande. Detta meddelande skickas sen tillbaks till Minplan, som i sin tur processerar meddelandet. Efter detta är kommunikationen klar och MinPlan har fått den efterfrågade informationen. Detta visar tydligt hur systemen kan byta information trots att de annars är oberoende. 8. Avslutning Att kunna förmedla information från ett företag ut i dess omgivning, har på senare tid blivit allt viktigare. En enkel lösning på detta kunde vara att tillåta omgivningen att direkt operera på t.ex. databaser i forma av sökningar och insättningar. Det är dock i praktiken ingen bra idé att tillåta kommunikation direkt med den underliggande

Web Services. Cognitude 1

Web Services. Cognitude 1 Web Services 1 Web Services Hur ska tillämpningar integreras? Hur ska tillämpningar integreras (via nätet ) för att erbjuda tjänster åtkomliga på nätet? SVAR: Web Services (Enligt Microsoft, Sun, IBM etc.)

Läs mer

Utvärdering av protokollet SOAP

Utvärdering av protokollet SOAP Utvärdering av protokollet SOAP Är SOAP framtidens kommunikationsprotokoll i distribuerade datorsystem över Internet? Evaluation of the SOAP protocol Is SOAP the future communication protocol in distributed

Läs mer

GATEWAY TJÄNSTEBESKRIVNING. Webbservice. WSDL-fil. Skicka meddelanden. SMS och FastnätsSMS

GATEWAY TJÄNSTEBESKRIVNING. Webbservice. WSDL-fil. Skicka meddelanden. SMS och FastnätsSMS GATEWAY TJÄNSTEBESKRIVNING Tjänsten Messit Gateway består av ett gränssnitt som enkelt kan implementeras i en egen applikation. Det enda som krävs för att använda Messit Gateway är att applikationen som

Läs mer

Fi2xml-meddelande Arkitektur

Fi2xml-meddelande Arkitektur Innehåll 4 Inledning 2 4.1 Process certifiering 2 4.1.1 Projektdefinition 3 4.1.2 Konstruktion 3 4.1.3 Godkännande och certifiering 4 4.1.4 Publicering 4 4.2 Scenarier 4 4.2.1 Behov av integrationer mellan

Läs mer

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011 Webbteknik II Föreläsning 4 Watching the river flow Web Service XML-RPC, SOAP, WSDL, UDDI HTTP Request, Response, Headers, Cache, Persistant Connection REST Hype or the golden way? Web Service / Webbtjänst

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

2014-2015 Alla rättigheter till materialet reserverade Easec 1 2 Innehåll Introduktion... 3 Azure Client SDK Libraries... 4 Översikt: Azure Client Libraries... 5 Azure SDK... 6 Azure SDK (forts.)... 7 Azure SDK (forts.)... 8 Cloud Services... 10 Cloud Services...

Läs mer

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka Webben som verktyg Idag: Hur hänger det ihop? Viktiga tekniker Stegen i ett webbprojekt Verktyg Dreamweaver Photoshop Joomla CMS Storyboard och flödesschema Fixa webbhotell Hur hänger det ihop? För att

Läs mer

Elektronisk tullräkning Sid 1(9) Samverkansspecifikation. Version: 1.0 SAMVERKANSSPECIFIKATION. för. e-tullräkning

Elektronisk tullräkning Sid 1(9) Samverkansspecifikation. Version: 1.0 SAMVERKANSSPECIFIKATION. för. e-tullräkning Elektronisk tullräkning Sid 1(9) SAMVERKANSSPECIFIKATION för e-tullräkning Elektronisk tullräkning Sid 2(9) Innehållsförteckning 1 Inledning...3 1.1 Introduktion...3 2 Identifikation av parterna...4 2.1

Läs mer

Teknisk guide för brevlådeoperatörer. Annika Melin 2015-03-10 Version: 1.1

Teknisk guide för brevlådeoperatörer. Annika Melin 2015-03-10 Version: 1.1 Teknisk guide för brevlådeoperatörer Annika Melin 2015-03-10 Sida 1 av 21 Innehållsförteckning Inledning... 2 1 Dokumentinformation... 3 Syfte... 3 1.2 Avgränsningar... 3 1.3 Målgrupp... 3 1.4 Begrepp

Läs mer

Tekniskt ramverk för Svensk e- legitimation

Tekniskt ramverk för Svensk e- legitimation Tekniskt ramverk för Svensk e- legitimation ELN-0600-v1.4 Version: 1.4 2015-08-14 1 (10) 1 INTRODUKTION 3 1.1 IDENTITETSFEDERATIONER FÖR SVENSK E- LEGITIMATION 3 1.2 TILLITSRAMVERK OCH SÄKERHETSNIVÅER

Läs mer

Guide för Innehållsleverantörer

Guide för Innehållsleverantörer Library of Labs Content Provider s Guide Guide för Innehållsleverantörer Inom LiLa ramverket är innehållsleverantörer ansvariga för att skapa experiment som "LiLa Learning Objects", att ladda upp dessa

Läs mer

Business to business (B2B) communication - Integrering av system

Business to business (B2B) communication - Integrering av system Business to business (B2B) communication - Integrering av system Jonas Liinamaa 20 november 2003 Department of Computer Science Åbo Akademi University, FIN-20520 Åbo, Finland e-mail: jliinama@abo. URL:

Läs mer

Distribuerade affärssystem

Distribuerade affärssystem Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska

Läs mer

Introduktion till webbtjänster

Introduktion till webbtjänster Datavetenskap Christine Andersson & Hanna Karlsson Introduktion till webbtjänster Examensarbete, C-nivå 2003:14 Introduktion till webbtjänster Christine Andersson & Hanna Karlsson 2003 Christine Andersson,

Läs mer

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE VT-09 Innehållsförteckning Inledning & problembeskrivning...1 Systembeskrivning...2 Affärsobjekt...2 Databasen...4

Läs mer

Christer Scheja TAC AB

Christer Scheja TAC AB Byggnadsautomation för ingenjörer Byggnadsautomation för ingenjörer VVS-tekniska föreningen, Nordbygg 2004 Christer Scheja TAC AB resentation, No 1 Internet/Intranet Ihopkopplade datornät ingen ägare Internet

Läs mer

Anvisning för Svensk Livfaktura

Anvisning för Svensk Livfaktura Anvisning för Svensk Livfaktura Bilaga B: Validering av PEPPOL BIS Svefaktura 5A 2.0 Version 1.0 Upphovsrätt Den här anvisningen för Livfaktura BIS 5A 2.0 är baserad på PEPPOL BIS 5A 2.0 som i sin tur

Läs mer

SSEK version 2.0. Säkra webbtjänster för affärskritisk kommunikation 2006-05-10

SSEK version 2.0. Säkra webbtjänster för affärskritisk kommunikation 2006-05-10 SSEK version 2.0 Säkra webbtjänster för affärskritisk kommunikation 2006-05-10 Mats Andersson, Skandia Liv Peter Danielsson, Skandia Liv Gustaf Nyman, Skandia Liv Sammanfattning SSEK 2.0 specificerar hur

Läs mer

Delrapport DP3. FGS för paketstruktur för e-arkiv Bilaga 1 METS

Delrapport DP3. FGS för paketstruktur för e-arkiv Bilaga 1 METS Delrapport DP3 FGS för paketstruktur för e-arkiv Bilaga 1 METS Karin Bredenberg & Mats Berggren IT/SoU 010-476 71 23 2013-01-14 2.0 1(9) INNEHÅLLSFÖRTECKNING 1. BILAGA 1: METS...3 1.1 INTRODUKTION...3

Läs mer

Databasdesign. E-R-modellen

Databasdesign. E-R-modellen Databasdesign Kapitel 6 Databasdesign E-R-modellen sid Modellering och design av databaser 1 E-R-modellen 3 Grundläggande begrepp 4 Begränsningar 10 E-R-diagram 14 E-R-design 16 Svaga entitetsmängder 19

Läs mer

PROV. 13 JSP Standard Tag Library

PROV. 13 JSP Standard Tag Library 13 JSP Standard Tag Library 13.1 Bibliotek med nya JSP-kommandon 13.2 JSP Standard Tag Library (JSTL) 13.3 Filstruktur för webbapplikationer med JSTL 13.4 Deklaration av JSP-kommandon 13.5 Lägga till biblioteksfiler

Läs mer

Senior utvecklare/arkitekt Rama Pour Rajaei Utbildningar Certifieringar Kontaktinformation

Senior utvecklare/arkitekt Rama Pour Rajaei Utbildningar Certifieringar Kontaktinformation Senior utvecklare/arkitekt Rama Pour Rajaei Rama har jobbat mer än 12 år som IT-konsult och är en mycket skicklig konsult inom sitt område som är systemutvecklingen/arkitektur av affärskritiska system

Läs mer

Webbservrar, severskript & webbproduktion

Webbservrar, severskript & webbproduktion Webbprogrammering Webbservrar, severskript & webbproduktion 1 Vad är en webbserver En webbserver är en tjänst som lyssnar på port 80. Den hanterar tillgång till filer och kataloger genom att kommunicera

Läs mer

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML ITK:P2 F1 FTP, HTTP, HTML, XML och XHTML DSV Peter Mozelius 1 Hemsidor med HTML Hur många av er har provat på att bygga en egen hemsida med HTML eller XHTML? För hand eller med hjälpverktyg? Har ni lagt

Läs mer

Apotekens Service. federationsmodell

Apotekens Service. federationsmodell Apotekens Service Federationsmodell Detta dokument beskriver hur Apotekens Service samverkar inom identitetsfederationer Datum: 2011-12-12 Version: Författare: Stefan Larsson Senast ändrad: Dokumentnamn:

Läs mer

» RSS - Bygg din egen RSS!

» RSS - Bygg din egen RSS! 1 of 5 29.4.2006 18:46» RSS - Bygg din egen RSS! Sett en orange liten skylt med vita bokstäver som antingen sagt XML eller RSS nyligen utan att direkt koppla varför den finns där? Du är antagligen inte

Läs mer

MOBIL TID. Mobil närvarohantering. www.mobiltid.se

MOBIL TID. Mobil närvarohantering. www.mobiltid.se MOBIL TID Mobil närvarohantering Vad är Mobil Tid? Mobil Tid är en administrationsverktyg för att hantera din personals närvaro och tidrapportering. Med hjälp av beröringsfri avläsning säkerställer ni

Läs mer

Innehåll. MySQL Grundkurs

Innehåll. MySQL Grundkurs MySQL Grundkurs Copyright 2014 Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Innehåll Introduktion till databaser Installera MySQL lokalt Webbserverprogrampaket (XAMPP) Introduktion till phpmyadmin

Läs mer

PM 01 En jämförelse av två analysmodeller för val av komponentteknik

PM 01 En jämförelse av två analysmodeller för val av komponentteknik MÄLARDALENS HÖGSKOLA Institutionen för Ekonomi och Informatik v PM 01 En jämförelse av två analysmodeller för val av komponentteknik Eskilstuna, 2002-12-12 EI0230 Komponentbaserad applikationsutveckling

Läs mer

<script src= http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js></script> AngularJS Skriven av: Isak Glans. Datum: 2015-04-29. Kurs: Webbutveckling. Lärare: Per Sahlin. Utbildning: Systemutvecklare i.net, Newtons Yrkeshögskola. 1 Sammanfattning Syftet med denna uppsats är att

Läs mer

Statistik från webbplatser

Statistik från webbplatser Statistik från webbplatser problem och möjligheter Ulf Kronman Föredragets huvuddelar Frågorna och motfrågorna Vilka frågor ställer chefen, BIBSAM och ISO? Varför ställer webmastern krångliga motfrågor?

Läs mer

Malmator Systembeskrivning Sidan 1 av 7 2007-04-12

Malmator Systembeskrivning Sidan 1 av 7 2007-04-12 Malmator Systembeskrivning Sidan 1 av 7 HandSam ver 2.08 System för handläggning och dokumentation av färdtjänstansökningar mm Sammanfattning HandSam utgör ett IT-system för tillståndsprövning mm avseende

Läs mer

XML och C#.NET Att hantera XML-dokument

XML och C#.NET Att hantera XML-dokument Tillämpad fysik och elektronik Applikationsutveckling för Internet 5p Lärare: Stefan Berglund & Per Kvarnbrink XML och C#.NET Att hantera XML-dokument Utförd av: Datum: 2006-10-08 E-post: Första inlämningen

Läs mer

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg Introduktion till kursbyggarverktyg Contento Svenska AB Hornsgatan 103 117 28 Stocholm Table of Contents KAPITEL 1 Introduktion 2 Begrepp

Läs mer

Federerad åtkomst Information om åtkomst till Apotekens Services tjänster inom ramen för en identitetsfederation.

Federerad åtkomst Information om åtkomst till Apotekens Services tjänster inom ramen för en identitetsfederation. Federerad åtkomst Information om åtkomst till Apotekens Services tjänster inom ramen för en identitetsfederation. Datum: 2011-02-28 Version: Författare: Christina Danielsson Senast ändrad: Dokumentnamn:

Läs mer

Ärende: Upphandling av IT-tjänster

Ärende: Upphandling av IT-tjänster ANBUDSBEGÄRAN Upphandling av IT-tjänster 24.11.2005 Till företagen Till handläggaren av anbudsbegäran Ärende: Upphandling av IT-tjänster Vi ber om anbud för experttjänster för utveckling av IT-tjänster

Läs mer

NU! NU! Bygg en webbplats NU! Bygg en webbplats. Swedish Language Edition published by Docendo Sverige AB. Bygg en webbplats.

NU! NU! Bygg en webbplats NU! Bygg en webbplats. Swedish Language Edition published by Docendo Sverige AB. Bygg en webbplats. web_omslag.qxp 2006-03-20 17:06 Sida 1 NU! CDn innehåller: Upptäck hur du: Använder "dra och släpp-metoden" för att lägga till text, bilder och andra objekt till en webbsida Skapar listrutor och dynamiska

Läs mer

DABAS Update. Produktblad 2012-11-13

DABAS Update. Produktblad 2012-11-13 DABAS Update Produktblad 2012-11-13 1 Innehåll Innehåll... 2 Inledning... 3 Hur kommer man igång?... 3 Meddelandeadressering... 4 Meddelande... 5 Meddelandekvittens... 5 Exempel på NACK:... 6 Exempel på

Läs mer

Middleware vad, hur, varför när?

Middleware vad, hur, varför när? Middleware vad, hur, varför när? Anders Kingstedt Askus AB Ersättas med en bild 1 Disposition Vad? Hur? Varför? När? Målsättning Ge er möjlighet att skilja på och 2 Vad? - är Middleware Ersättas med en

Läs mer

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. Administrera din SAS miljö med SAS Metadata Server och SAS Management Console. Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. SAS Intelligence Value Chain

Läs mer

Specifikation av säker elektronisk kommunikation mellan aktörer i försäkringsbranschen

Specifikation av säker elektronisk kommunikation mellan aktörer i försäkringsbranschen Specifikation av säker elektronisk kommunikation mellan aktörer i försäkringsbranschen (Version 1.1) version 1.1 Sidan 1 av 25 1 Inledning...3 1.1 Bakgrund...3 1.2 Syfte...3 1.3 Notation...3 1.4 Förvaltning

Läs mer

RIV TA Basic Profile 2.1 RIV Tekniska Anvisningar

RIV TA Basic Profile 2.1 RIV Tekniska Anvisningar RIV 2.1 Anvisningar Bilaga 5.1 CeHis Arkitekturledning Sida: 1 (11) RIV TA Basic Profile 2.1 Utgåva B 2012-01-03 RIV 2.1 Anvisningar Bilaga 5.1 CeHis Arkitekturledning Sida: 2 (11) Utgåva PA1 Utgåvehistorik

Läs mer

Creo Customization. Lars Björs 2014-10-16

Creo Customization. Lars Björs 2014-10-16 Creo Customization Lars Björs 2014-10-16 Norra Europas största partner och återförsäljare av PTC relaterad programvara (Windchill, Creo, Arbortext, MathCad, Relex) 70 anställda Egen utvecklingsavdelning

Läs mer

Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5

Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5 Introduktion till programmering Föreläsning 5 Programmering av webbsidor. Webbens grundbegrepp HTML HTML (HyperText Markup Language) är det språk som används för att skriva webbsidor. HyperText: text med

Läs mer

Programbeskrivning. Chaos på Web. Version 1.0 2005-09-21

Programbeskrivning. Chaos på Web. Version 1.0 2005-09-21 2005-09-21 Programbeskrivning Chaos på Web Version 1.0 Chaos systems AB Tel. 08-410 415 00 e-post: info@chaos.se Solna strandväg 18, 6tr Fax. 08-29 06 66 http://www.chaos.se 171 54 SOLNA Reg. nr: 556476-6813

Läs mer

Statistik från webbplatser

Statistik från webbplatser Statistik från webbplatser virtuella besök eller levererade sidor? Ulf Kronman Karolinska Institutet Universitetsbiblioteket Föredragets huvuddelar Frågorna och motfrågorna Vilka frågor ställer chefen,

Läs mer

PHP. Dynamiska webbsidor

PHP. Dynamiska webbsidor PHP Dynamiska webbsidor WEBBPROGRAMMERING PÅ SERVERSIDAN DB server web browser client client script HTTP Request (get, post) HTTP Response (HTML, CSS, JS) web server server script JS PHP file (txt, xml,

Läs mer

Diagnostisktprov Utveckla i Azure

Diagnostisktprov Utveckla i Azure .easec Diagnostisktprov Utveckla i Azure Mats Johannesson 2015-06-08 1 o Indikerar ett svar önskas. Flera svar önskas. Maxpoäng: 86 Din poäng: Godkänt: 43 poäng Väl Godkänt: 60 poäng 2 1. Vilka fyra alternativ

Läs mer

Introduktion. Byggstenar TDBA63 2005-11-22

Introduktion. Byggstenar TDBA63 2005-11-22 Introduktion UML står för Unified Modeling Language. Det är tänkt att fungera som hjälpmedel vid modellering av alla tänkbara typer av utvecklingsarbeten, inte bara inom dataomdrådet. Det största värdet

Läs mer

- ett par år senare 1

- ett par år senare 1 UDDI ett par år senare 1 Subproject: Supporting facilities UDDI - ett par år senare 1 Version 0.8 (2004-09-01) Stig Berild (Santa Anna IT Research Institute AB) 1 Rapport inom Serviam-projektet. Projektet

Läs mer

Grundläggande datavetenskap, 4p

Grundläggande datavetenskap, 4p Grundläggande datavetenskap, 4p Kapitel 4 Nätverk och Internet Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-23 IT och medier 1 Innehåll Nätverk Benämningar Topologier Sammankoppling

Läs mer

Identitetsverifiering över systemgränser

Identitetsverifiering över systemgränser November 2003 ISSN 1650-1942 Användarrapport Alf Bengtsson, Amund Hunstad, Lars Westerdahl Identitetsverifiering över systemgränser Källserver Webbläsare Destinationsserver Ledningssystem 581 11 Linköping

Läs mer

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1 Välkommen! SAPSA Impuls Mobilitet 81 Impuls sponsorer 2012 Guldsponsorer SAPSA Impuls Mobilitet 81 Mobilitet 81: Mobil reseräkningsapp med möjlighet att fotografera kvittona Christer Ingemarsson Lena Kågedal

Läs mer

Modul 3 Föreläsningsinnehåll

Modul 3 Föreläsningsinnehåll 2015-02-03 2015 Jacob Lindehoff, Linnéuniversitetet 1 Modul 3 Föreläsningsinnehåll Vad är ett certifikat? Användningsområden Microsoft Certificate Services Installation Laboration Ingår i Klustringslabben

Läs mer

Dokumentation. Ver 1.1.9 2014-01-08 Sida 1

Dokumentation. Ver 1.1.9 2014-01-08 Sida 1 Dokumentation Sida 1 Innehåll Om detta dokument... 4 Funktioner... 4 Allmänt om våra gränssnitt (API:er)... 4 Kryptering... 4 Debugprioritet... 4 SMS/MMS - utgående... 5 Parametrar... 5 Webservice... 5

Läs mer

Internets historia Tillämpningar

Internets historia Tillämpningar 1 Internets historia Redan i slutet på 1960-talet utvecklade amerikanska försvaret, det program som ligger till grund för Internet. Syftet var att skapa ett decentraliserat kommunikationssystem som skulle

Läs mer

Dokumentation. Ver 1.2.0 2015-04-23 Sida 1

Dokumentation. Ver 1.2.0 2015-04-23 Sida 1 Dokumentation Sida 1 Innehåll Om detta dokument... 4 Funktioner... 4 Allmänt om våra gränssnitt (API:er)... 4 Kryptering... 4 Debugprioritet... 4 SMS/MMS - utgående... 5 Parametrar... 5 Webservice... 5

Läs mer

Integration mot Cellsynts SMS gateway via HTTP-gränssnitt (teknisk dokumentation) 2003-2014 Cellsynt

Integration mot Cellsynts SMS gateway via HTTP-gränssnitt (teknisk dokumentation) 2003-2014 Cellsynt Integration mot Cellsynts SMS gateway via HTTP-gränssnitt (teknisk dokumentation) Integration mot Cellsynts SMS gateway via HTTP-gränssnitt (teknisk dokumentation) Innehållsförteckning Del I Introduktion

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

Jetshop AB WEBSERVICE-API 1.2 ANVÄNDARMANUAL. Version 1.2 2011-10-12

Jetshop AB WEBSERVICE-API 1.2 ANVÄNDARMANUAL. Version 1.2 2011-10-12 Jetshop AB WEBSERVICE-API 1.2 ANVÄNDARMANUAL Version 1.2 2011-10-12 1. Förord I det här dokumentet ges en generell beskrivning av det Webservice-API som är utvecklat av Jetshop AB, och är avsett för dig

Läs mer

Innehåll. Dokumentet gäller från och med version 2014.3 1

Innehåll. Dokumentet gäller från och med version 2014.3 1 Innehåll Introduktion... 2 Före installation... 2 Beroenden... 2 Syftet med programmet... 2 Installation av IIS... 2 Windows Server 2008... 2 Windows Server 2012... 6 Installation av webbapplikationen

Läs mer

Decentraliserad administration av gästkonton vid Karlstads universitet

Decentraliserad administration av gästkonton vid Karlstads universitet Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå

Läs mer

Compose Connect. Hosted Exchange

Compose Connect. Hosted Exchange Sida 1 av 15 Compose Connect Hosted Exchange Presentation av lösningen: Compose Hosted Exchange Följande möjligheter finns för hantering av e-post 1. Lokalinstallerad Outlook-klient För att kunna använda

Läs mer

E12 "Evil is going on"

E12 Evil is going on E12 "Evil is going on" Föreläsning 12, HT2014 AJAX Kurs: 1dv403 Webbteknik I Johan Leitet E12 Evil is going on Dagens agenda AJAX XMLHttpRequest-objektet JSON Vad är AJAX? Asynchronous JavaScript and XML

Läs mer

RIV TA Domänschema 2.1

RIV TA Domänschema 2.1 1 (9) Center för ehälsa i samverkan Hornsgatan 20, 118 82 Stockholm Vxl: 08-452 70 00 ARK_0006 CeHis AR www.cehis.se info@cehis.se RIV TA Domänschema 2.1 Utgåva C 2013-06-19 Center för ehälsa i samverkan

Läs mer

Beskrivning av PiiGAB QuickPost

Beskrivning av PiiGAB QuickPost Beskrivning av PiiGAB QuickPost www.piigab.com PiiGAB Processinformation i Göteborg AB Anders Carlssons gata 1 S-417 55 Göteborg Sweden Tel: +46(0)31 559977 Fax: +46(0)31 227071 email: info@piigab.se Innehållsförteckning

Läs mer

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser.

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser. WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

En grundkurs i hemsidor och hur de är uppbyggda

En grundkurs i hemsidor och hur de är uppbyggda En grundkurs i hemsidor och hur de är uppbyggda Den här artikeln tänkte väldigt grundligt gå igenom koncepten kring en hemsida och hur den är uppbyggt, för att ge dig grundkunskap att bygga vidare på och

Läs mer

Frågor och svar för Nationellt substansregister för läkemedel (NSL)

Frågor och svar för Nationellt substansregister för läkemedel (NSL) Frågor och svar för Nationellt substansregister för läkemedel (NSL) Frågor och svar för Nationellt substansregister för läkemedel (NSL)... 1 1. Information om filen... 2 1.1. Hur söker man i registret?...

Läs mer

Sammanfattning och specifikationer för POT

Sammanfattning och specifikationer för POT 0.2 Sammanfattning och specifikationer för POT Kornhamnstorg 61 SE-111 27 Stockholm Sweden 00 00 Telefon: +46 (0)8 791 92 Telefax: +46 (0)8 791 95 www.certezza.net Innehållsförteckning 1 SAMMANFATTNING...

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM. JavaScript del1 Syftet med detta häfte är att sammanfatta det viktigaste i JavaScript så kort och koncist som möjligt men ändå tillräckligt omfattande för att ge god kännedom om en av de vanligaste teknikerna

Läs mer

Litteratur. Nätverk, Internet och World Wide Web. Olika typer av nätverk. Varför nätverk? Anne Diedrichs Medieteknik Södertörns högskola

Litteratur. Nätverk, Internet och World Wide Web. Olika typer av nätverk. Varför nätverk? Anne Diedrichs Medieteknik Södertörns högskola Litteratur Nätverk, Internet och World Wide Web Anne Diedrichs Medieteknik Södertörns högskola Beekman kap 9-11 Varierar i olika upplagor. Läs alla kapitel om nätverk och Internet och webb Olika typer

Läs mer

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo.

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo. UML Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo.fi/~tczarnec Abstrakt The Unified Modeling Language, UML, är ett visuellt

Läs mer

Utforska nya versionen av HelpDesk! HelpDesk 3.4. www.artologik.com. Fler finesser, mer kontroll, men fortfarande lika lätt att använda!

Utforska nya versionen av HelpDesk! HelpDesk 3.4. www.artologik.com. Fler finesser, mer kontroll, men fortfarande lika lätt att använda! Glöm alla minneslappar och borttappade ärenden. HelpDesk effektiviserar supporten! HelpDesk 3.4 www.artologik.com Utforska nya versionen av HelpDesk! Fler finesser, mer kontroll, men fortfarande lika lätt

Läs mer

Föreläsning 15: Repetition DVGA02

Föreläsning 15: Repetition DVGA02 Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras

Läs mer

Instruktion. Datum. 2013-06-19 1 (12) Coverage Dokument id Rev Status? - 1.0 Godkänd. Tillhör objekt -

Instruktion. Datum. 2013-06-19 1 (12) Coverage Dokument id Rev Status? - 1.0 Godkänd. Tillhör objekt - 20130619 1 (12)? 1.0 Godkänd Secure Manager Guide Hantera användarprofiler i tjänsten Telia Secure Manager Dokumentet beskriver hur du som administratör beställer och hanterar användarprofiler i administrationsportalen

Läs mer

Säker e-kommunikation 2009-04-22

Säker e-kommunikation 2009-04-22 Säker e-kommunikation 2009-04-22 Leif Forsman Logica 2008. All rights reserved Agenda - Inledning - Bakgrund och historik - Vilka risker och hot finns? - Vilka säkerhetslösningar finns det för att skydda

Läs mer

Mina meddelanden Förmedling av elektronisk post för myndigheter i Sverige

Mina meddelanden Förmedling av elektronisk post för myndigheter i Sverige Mina meddelanden Förmedling av elektronisk post för myndigheter i Sverige Teknisk översikt för brevlådeoperatörer Version 1.2 Mina meddelanden är en myndighetsgemensam e-posttjänst förvaltad av Skatteverket

Läs mer

LEFI Online, system till system (Leverera Förmånsinformation) WEBBSERVICE/SHS/SSEK

LEFI Online, system till system (Leverera Förmånsinformation) WEBBSERVICE/SHS/SSEK LEFI Online, system till system (Leverera Förmånsinformation) WEBBSERVICE/SHS/SSEK Gränssnittsspecifikation Försäkringskassan IT 1 (11) Ändringsförteckning Nedanstående tabell redovisar ändringshistoriken

Läs mer

Kursplanering Objektorienterad programmering

Kursplanering Objektorienterad programmering Kursplanering Objektorienterad programmering Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-OOP Klass Systemutvecklare.NET 2 Syfte och koppling till yrkesrollen Syftet är att få en stabil grund

Läs mer

Programmering B PHP. Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408.

Programmering B PHP. Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408. Programmering B PHP DTR1208 - Programmering B 50 poäng Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408. Mål Mål för kursen (Skolverket) Kursen skall ge fördjupade teoretiska

Läs mer

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Komma igång med Compact API Hur APIet fungerar Visma Compacts API läser och skriver direkt till databasen via ett antal färdiga metoder som

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Plattform as a Service, leverantör tillhandahåller plattformen, jag tillhandahåller applikation och ansvarar för denna.

Plattform as a Service, leverantör tillhandahåller plattformen, jag tillhandahåller applikation och ansvarar för denna. Modul 1: Molntjänst Publikt moln Privat moln Hybrid moln IaaS PaaS SaaS DaaS DaaS SLA Infrastructure as a Service, leverantör tillhandahåller infrastrukturen, jag tillhandahåller virtuella maskiner eller

Läs mer

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt Kravhantering / Testprocess - Agenda AGENDA Grundläggande kravhanteringsprocess. Insamling, dokumentation, prioritering, Test och förvaltning

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

SNPAC Swedish Number Portability Administrative Centre

SNPAC Swedish Number Portability Administrative Centre 1 (9) TJÄNSTEBESKRIVNING INTRODUKTION & BAKGRUND Post & Telestyrelsen (PTS) har utsett SNPAC Swedish Number Portability Administrative Centre AB (SNPAC) till den organisation som skall tillhandahålla referensdata

Läs mer

Datakommunika,on på Internet

Datakommunika,on på Internet Webbteknik Datakommunika,on på Internet Rune Körnefors Medieteknik 1 2015 Rune Körnefors rune.kornefors@lnu.se Internet Inter- = [prefix] mellan, sinsemellan, ömsesidig Interconnect = sammanlänka Net =

Läs mer

Ett enkelt och smart program för ärendehantering. Förenklar för både kunder och personal! Publiceringsverktyg Bokningssystem. www.artologik.

Ett enkelt och smart program för ärendehantering. Förenklar för både kunder och personal! Publiceringsverktyg Bokningssystem. www.artologik. Ett enkelt och smart program för ärendehantering. Förenklar för både kunder och personal! Projekthanteri HelpDesk Publiceringsverktyg Publiceringsverktyg Bokningssystem ng Tidredovisning Enkäthantering

Läs mer

IP-baserade program. Telnet

IP-baserade program. Telnet Det här kapitlet behandlar några klassiska TCP/IP-baserade program. Främsta fokus är HTTP men även lite enklare applikationer som telnet och FTP behandlas. Kapitlet är tänkt att kunna läsas fristående

Läs mer

"#$&" "#$*" &"$"*, -. &"$'"/ 0 1 &"$)*, -. &&$""( &&$)*/ &&$2* &'$)"3. 1 4

#$& #$* &$*, -. &$'/ 0 1 &$)*, -. &&$( &&$)*/ &&$2* &'$)3. 1 4 "#$""% "#$&" "#$'"( "#$)*+ "#$*" &"$"*, -. Magnus Karlsson - SPP Liv Peter Danielsson - Skandia Liv Ola Tullsten - SEB Trygg Liv Håkan Sjödin - Skandia Liv Mats Andersson - Skandia Liv Johan Lidö - SEB

Läs mer

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 3.2.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas

Läs mer

DATA ÖPPNA DATA LÄNKADE DATA LÄNKADE ÖPPNA DATA

DATA ÖPPNA DATA LÄNKADE DATA LÄNKADE ÖPPNA DATA DATA ÖPPNA DATA LÄNKADE DATA LÄNKADE ÖPPNA DATA Agenda 1. Nyttan med öppna data 2. Introduktion till länkade öppna data Några viktiga begrepp 1. Data? 2. PSI? 3. Öppna data? 4. Öppna offentliga data? 1.

Läs mer

RegionNavet för befolkningsuppgifter - fördjupad information

RegionNavet för befolkningsuppgifter - fördjupad information RegionNavet för befolkningsuppgifter - fördjupad information Innehå llsfö rteckning 1. RegionNavet för befolkningsuppgifter s 3 2. Databas med dagsaktuella befolkningsuppgifter s 3 3. Grafiskt gränssnitt

Läs mer

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a. Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel

Läs mer

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI Magnus.Runesson@smhi.se

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI Magnus.Runesson@smhi.se Öppen Källkod inom Offentlig Sektor 15-16 april 2008, Stockholm Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI Magnus.Runesson@smhi.se 2008-05-14 Signatur Om SMHI Som experter inom

Läs mer

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2011-08-27 Tid: 09.30 12.30. Hjälpmedel: Inga hjälpmedel

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2011-08-27 Tid: 09.30 12.30. Hjälpmedel: Inga hjälpmedel Mobila Applikationer Provmoment: Ladokkod: Tentamen ges för: Tentamen NMO011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2011-08-27

Läs mer