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

Kärnfunktionalitet. Middleware. Samverkande system. Service Oriented Architecture. Kommunikationsmekanismer. Tjänsteorienterade arkitekturer

Kärnfunktionalitet. Middleware. Samverkande system. Service Oriented Architecture. Kommunikationsmekanismer. Tjänsteorienterade arkitekturer Samverkande system Tjänsteorienterade arkitekturer Hur får vi mjukvarukomponenter som är distribuerade över internet att enkelt upptäcka, utnyttja, och interagera med, varandra? Vi vill ha Komponenter

Läs mer

Hantera informationspaket i system för bevarande

Hantera informationspaket i system för bevarande Kompetensutveckling har erbjudits deltagare inom projektet Elektroniskt bevarande i form av en kurs i XML. Kursen har genomförts av Riksarkivet och haft en praktisk inriktning. Ett 10-tal personer deltog

Läs mer

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1. Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning

Läs mer

Teknisk guide för myndigheter

Teknisk guide för myndigheter Teknisk guide för myndigheter Gäller från december 2015 Sida 1 av 19 Innehållsförteckning Sammanfattning...2 1 Dokumentinformation...3 1.1 Syfte...3 1.2 Avgränsningar...3 1.3 Målgrupp...3 1.4 Begrepp och

Läs mer

Web Services. 1. Vad är Web Services?

Web Services. 1. Vad är Web Services? Web Services Magnus Söderström Department of Computer Science Åbo Akademi University, FIN-20520 Åbo, Finland e-mail: masoders@abo.fi URL: http://www.abo.fi/~masoders Abstrakt Web Service är ett försök

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

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Introduktion till integrering av Schenkers e-tjänster. Version 2.0 Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen

Läs mer

KUNDREGISTER Sid 2(7) Teknisk specifikation

KUNDREGISTER Sid 2(7) Teknisk specifikation KUNDREGISTER Sid 1(7) Kundregister Innehållsförteckning 1 Allmänt...2 1.1 Inledning...2 1.2 Disposition...2 1.3 Ordlista...2 1.4 Referenser...2 2 Systemöversikt...3 3 Systemlösning...4 3.1 Kundregisterfiler...4

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

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

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

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

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

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

Övergripande teknisk beskrivning Sammansatt bastjänst ekonomiskt bistånd (SSBTEK)

Övergripande teknisk beskrivning Sammansatt bastjänst ekonomiskt bistånd (SSBTEK) Wimi FK14353_002_B Övergripande teknisk beskrivning Sammansatt bastjänst ekonomiskt bistånd (SSBTEK) Leverantör: Försäkringskassan Uppdragsgivare: SKL IT-produkt:MYIN Version: RevE Övergripande teknisk

Läs mer

En snabb titt på XML LEKTION 6

En snabb titt på XML LEKTION 6 LEKTION 6 En snabb titt på XML Bokstaven x i Ajax står för XML, ett mycket användbart beskrivningsspråk som gör det möjligt för Ajax-tillämpningar att hantera komplex strukturerad information. I den här

Läs mer

Teknisk guide för brevlådeoperatörer

Teknisk guide för brevlådeoperatörer Teknisk guide för brevlådeoperatörer Gäller från december 2015 Sida 1 av 21 Innehållsförteckning Sammanfattning...2 1 Dokumentinformation...3 1.1 Syfte...3 1.2 Avgränsningar...3 1.3 Målgrupp...3 1.4 Begrepp

Läs mer

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, 1971. Internet började med ARPANET

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, 1971. Internet började med ARPANET Olika slags datornätverk Förberedelse inför laboration 4. Historik Protokoll, / Adressering, namnservrar WWW, HTML Föreläsning 5 Internet LAN Local Area Network student.lth.se (ganska stort LAN) MAN Metropolitan

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

Testdriven utveckling av Web Services. Ole Matzura

Testdriven utveckling av Web Services. Ole Matzura Testdriven utveckling av Web Services Ole Matzura eviware 1 Vad är Test-Driven utveckling? 2 Test Driven Utveckling 2 Grundregler (Kent Beck) Skriv aldrig kod utan ett fallerande test Eliminera duplicering

Läs mer

LEFI Online. Anslutningsinformation

LEFI Online. Anslutningsinformation LEFI Online Försäkringskassan, Tjänsteleverans _LEFI Innehåll 1 DOKUMENTINFORMATION... 3 1.1 REFERENSER... 3 1.2 AVGRÄNSNINGAR... 3 1.3 KONTAKT... 3 2 KOMMUNIKATION... 4 2.1 WEBBGRÄNSSNTET... 4 2.1.1 Tillträde

Läs mer

Avtal/överenskommelse för leverans till K- samsök

Avtal/överenskommelse för leverans till K- samsök Avtal/överenskommelse Datum 2012-10-** Dnr 159-1562-2012 Avdelning Informationsavdelningen Enhet Enheten för informationsutveckling Författare Johan Carlström Avtal/överenskommelse för leverans till K-

Läs mer

TJÄNSTEBESKRIVNING FASAD Tjänstebaserad direktåtkomst Byggnad 2015-11-27

TJÄNSTEBESKRIVNING FASAD Tjänstebaserad direktåtkomst Byggnad 2015-11-27 TJÄNSTEBESKRIVNING FASAD Tjänstebaserad direktåtkomst Byggnad 2015-11-27 Extern dokumentation - fasadsystemet Dokumentation Tjänstebaserad uppdatering: Startsida Informationsutbytesmodeller (IUM): http://www.lantmateriet.se/global/qualiware/specifikation-gdl/index.htm

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

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion Webbteknik En kort introduktion Innehåll Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender 1 Historisk återblick 89 CERN Tim Berners Lee Ett plattformsoberoende sätt att sprida

Läs mer

Objektorienterad Programkonstruktion

Objektorienterad Programkonstruktion Objektorienterad Programkonstruktion Föreläsning 9 Projektuppgift Collection, Iterator, Composite Christian Smith ccs@kth.se 1 Projektuppgift IM, skickar meddelanden mellan datorer En lite större labbuppgift,

Läs mer

TJÄNSTEBESKRIVNING FASAD Tjänstebaserad direktåtkomst Adress

TJÄNSTEBESKRIVNING FASAD Tjänstebaserad direktåtkomst Adress 2015-11-27 TJÄNSTEBESKRIVNING FASAD Tjänstebaserad direktåtkomst Adress Extern dokumentation - fasadsystemet Dokumentation Tjänstebaserad uppdatering: Startsida Informationsutbytesmodeller (IUM): http://www.lantmateriet.se/global/qualiware/specifikation-gdl/index.htm

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

www.skillspartner.com

www.skillspartner.com Mål Deltagarna ska förstå: Vad XML är Hur XML fungerar Vilka problem XML löser Hur XML används Känna till begrepp: DTD, DOM, XSL etc. Känna till verktyg Innehåll Vad är XML XML i relation till HTML XML

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

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

IT för personligt arbete F2

IT för personligt arbete F2 IT för personligt arbete F2 Nätverk och Kommunikation DSV Peter Mozelius Kommunikation i nätverk The Network is the Computer Allt fler datorer är sammankopplade i olika typer av nätverk En dators funktionalitet

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

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

Webservice & ERP-Integration Rapport

Webservice & ERP-Integration Rapport Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP Exempel på klientsidan WWW Javascript-interpretator XML-interpretator HTML-interpretator Java-interpretator CSS-interpretator Använder TCP Kan återanvända uppkoppling Inga tillstånd hos servern OS API

Läs mer

HexaFlip. Kravspecifikation

HexaFlip. Kravspecifikation HexaFlip Kravspecifikation Dokumentversion 1.0 Martin Larsson marla316@student.liu.se Carl Lindwall carli914@student.liu.se Senast modifierad 2009 02 17 Sammanfattning Detta dokument skall ligga som grund

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

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

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

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal

Läs mer

Geodataportalen - Metadata - Dokumentation av tjänster

Geodataportalen - Metadata - Dokumentation av tjänster PM 1(13) Geodataportalen - Metadata - Dokumentation av tjänster Organisation Postadress Besöksadress Telefon E-post Internet Lantmäteriet 801 82 Gävle Lantmäterigatan 2 0771-63 63 63 geodatasekretariatet@lm.se

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

XML. Extensible Markup Language

XML. Extensible Markup Language XML Extensible Markup Language XML - 1969 Generalized Markup Language (GML) 1979-85 Standard Generalized Markup Language (SGML) 1990 HyperText Markup Language (HTML) 1996-98 Extensible Markup Language

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

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

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

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

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

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad programmering. Grundläggande begrepp Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller

Läs mer

Swedbank Mobile Loadtesting. LoadRunner 11.04 Mobile App protocol

Swedbank Mobile Loadtesting. LoadRunner 11.04 Mobile App protocol Swedbank Mobile Loadtesting LoadRunner 11.04 Mobile App protocol Bakgrund Mission: Prestandatesta mobilt backend Typ: RESTful tjänst Underlag: Dokumenterat URI och API (Uniform Resource Identifier, Application

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

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

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP. Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär

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

ESSArch vid Riksarkivet i Sverige

ESSArch vid Riksarkivet i Sverige NorDig 2014 2014-06-03 ESSArch vid i Sverige Mats Berggren / 1 ESSArch vid i Sverige s digitala bevarande - bakgrund RADAR och ESSArch Erfarenheter och planer 2 1 ESSArch vid i Sverige s digitala bevarande

Läs mer

Introduktion till rättsinformationssystemet

Introduktion till rättsinformationssystemet 1(10) Introduktion till rättsinformationssystemet För beslutsfattare och informationsansvariga Detta dokument förklarar vad rättsinformationssystemet är, dess relation till lagrummet.se och myndigheters

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

<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

Resultatrapport. Utvärdering. Anbudslämnare. Utvärderingskriterium

Resultatrapport. Utvärdering. Anbudslämnare. Utvärderingskriterium Resultatrapport Köpare Upphandling Köpare: Jönköpings kommun Namn: Verksamhetssystem Tekniska kontoret Handläggare: Tina Helmke Hallberg Referensnr: 13/206 Telefon: +46 36 102411 E-post: tina.helmke-hallberg@jonkoping.se

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

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

MVK SSO 2.0 Mina vårdkontakter

MVK SSO 2.0 Mina vårdkontakter Ämne Version Datum Introduktion MVK SSO 2.0 1.7 2014-02-14 Ansvarig Dokument ID Sign Martin Carlman/Peter Bäck MVK-0031 Version Datum Av Avsnitt Ändring 1.7 140214 AL MVK SSO 2.0 Mina vårdkontakter MVK

Läs mer

Uppgiftskravstjänsten Teknisk anslutning för att hämta uppgiftskrav som öppna data. Version 1.0

Uppgiftskravstjänsten Teknisk anslutning för att hämta uppgiftskrav som öppna data. Version 1.0 Uppgiftskravstjänsten Teknisk anslutning för att hämta uppgiftskrav som öppna data Version 1.0 1 Innehållsförteckning 1 Inledning... 3 2 Anslutning... 3 2.1 Scenario 1: Hämtning av uppgiftskrav som öppna

Läs mer

Vad är XML Schemas. XML Schemas. Varför XML Schmas. Namespace

Vad är XML Schemas. XML Schemas. Varför XML Schmas. Namespace Vad är XML Schemas XML Schemas XML Schemas gör samma sak som DTDer fast bättre dvs med XML Schemas går det att definiera XMLvokabulärer och det går att validera instansdokument mot dessa schemas. XML Schemas

Läs mer

Dokumentschema förpackning av externa objekt. Version: 1.0 Status: Standard Datum: 2006-05-15

Dokumentschema förpackning av externa objekt. Version: 1.0 Status: Standard Datum: 2006-05-15 Dokumentschema förpackning av externa objekt Version: 1.0 Status: Standard Datum: 2006-05-15 Externa objekt 2 Dokumentschema förpackning av externa objekt... 1 1. Förpackning av externa objekt... 3 1.1.

Läs mer

Kravspecifikation för utökat elektroniskt informationsutbyte

Kravspecifikation för utökat elektroniskt informationsutbyte Kravspecifikation för utökat elektroniskt informationsutbyte Innhållsförteckning Innhållsförteckning... 2 Revisionshistorik... 3 1. Inledning... 4 1.1 1.2 1.3 Syfte med dokumentet... 4 Målgrupp för dokumentet...

Läs mer

Arkitektur för Bistånd

Arkitektur för Bistånd ark_uppsala_bistånd_v3.ppt Arkitektur för Bistånd Sven-Håkan Olsson, Definitivus AB. 1 Enstaka bild får användas med angivande av källa ÖTP V2.0 s22 Generellt mönster i ÖTP Medborgare Företag Handläggare

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

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

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

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

Förra föreläsningen: Olika nivåer av meddelanden. Från oblockad sändning till. RPC: Parameterpassning, registrering, felhantering, säkerhet, kompilering ONC RPC: XDR, portmapper Brandväggar, dynamisk brandväggskonfigurering,

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

Avtal/överenskommelse för leverans till K- samsök

Avtal/överenskommelse för leverans till K- samsök Avtal/överenskommelse Datum 2010-12-22 Dnr 130-2880-2008 Avdelning Informationsavdelningen Enhet Informationsutveckling/Ksamsök Författare Johan Carlström Avtal/överenskommelse för leverans till K- samsök

Läs mer

När samverkan mellan affärssystemen är en besvärlig väg med många hinder

När samverkan mellan affärssystemen är en besvärlig väg med många hinder När samverkan mellan affärssystemen är en besvärlig väg med många hinder ITWorks Group System Integration Specialists Tel: 08 625 46 40 E-post: filexfilexpress ... gör vi vägen både rakare, snabbare och

Läs mer

Checklista: Beständiga identifierare

Checklista: Beständiga identifierare Checklista: Beständiga identifierare Beständiga identifierare (persistent identifiers/pid:ar) är unika kodsträngar 1 kopplade till olika poster. De är en förutsättning för att man ska kunna skapa länkar

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

Göteborgs Stad Leverantörsfakturahantering

Göteborgs Stad Leverantörsfakturahantering Göteborgs Stad Leverantörsfakturahantering www.intraservice.goteborg.se Leverantörsfakturor 2005 Administreras via ett shared service center (GAS) Totalt 830 000 510 000 scannade fakturor 240 000 EDI 80

Läs mer

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Namn: (Ifylles av student) Personnummer: Tentamensdatum: 2013-03-25 Tid: 14.00 19.00. Hjälpmedel: Inga hjälpmedel

Namn: (Ifylles av student) Personnummer: Tentamensdatum: 2013-03-25 Tid: 14.00 19.00. Hjälpmedel: Inga hjälpmedel Webbprogrammering Provmoment: Ladokkod: Tentamen ges för: Tentamen NWP011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2013-03-25

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

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

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

Distribuerade System, HT03

Distribuerade System, HT03 UMEÅ UNIVERSITET 21 oktober 2003 Institutionen för Datavetenskap Laborationsrapport Laboration Middleware Distribuerade System, HT03 Jini Namn: Anders Holm, c00asm@cs.umu.se Kjell Johansson, c00kjn@cs.umu.se

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

WEB SERVICES-FÖRBINDELSE

WEB SERVICES-FÖRBINDELSE WEB SERVICES-FÖRBINDELSE TJÄNSTEBESKRIVNING Aktia, Sb, Pop VERSION 1.1 OY SAMLINK AB 2 (18) 1 Allmänt... 3 2 Web Services... 4 2.1. Förkortningar och termer som används i tjänstebeskrivningen... 4 3 Avtal

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 myndigheter och förmedlare Version 1.2 Mina meddelanden är en myndighetsgemensam e-posttjänst förvaltad av

Läs mer

Systemutvecklare SU14, Malmö

Systemutvecklare SU14, Malmö Systemutvecklare SU14, Malmö Tentamen, Tenta Utveckling med ramverket.net(35 YH-poäng) Plats: Plushögskolan Malmö Tid: 2 februari 2015, kl. 9.00-12.00 Tillåtna hjälpmedel: Papper, penna, suddgummi. Ej

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

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

Laboration 2 RESTful webb-api

Laboration 2 RESTful webb-api Webbteknik II, 1DV449 Laboration 2 RESTful webb-api Author: John Häggerud & Johan Leitet Semester: HT 2011 Course code: 1DV449 Inledning I denna laboration är det tänkt att Du ska skriva ett eget webb-api

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