REST i Ladok3 Jan Stenberg, Knowit Senior arkitekt i Ladok

Slides:



Advertisements
Liknande presentationer
Configured Edititon för Unicenter 3.0 Sättet att snabbt komma igång med Unicenter.
Advertisements

Ladok3 och studenttjänster »Västerås Behoven »Studenten vill se en samlad bild av sina studier •Nationell mobilitet ökar •Önskemål om att.
Tomas Sandström, Adtollo
Wikinggruppen Presentation av ”WIKING SMS” – Effektivisera din verksamhet.
Scouttåget i Malmö, 6 april 2013 Pontus Vinderos
Hur går det till att rapportera in betyg idag?
Migrera befintliga system till Windows Azure
Att söka och förvalta kunskap
XHTML.
Flexicon – Din systempartner
FTP, HTTP, HTML, XML och XHTML
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Maria Kihl och Jens A Andersson Kapitel 9: Applikationer.
Mjukvara och nätverk Vad är det?.
Grävningstillstånd –webbtjänst för samverkan i Stockholm
1 Välkommen till dagens e-möte –Säkerställ ljud via Meeting > Audio Setup Wizard –Slå av din mikrofon –Stäng av din kamera –Använd funktionen ”Raise hand”
Lokala teknikmiljöer Utredning GEM-0001-A NUAK Jenny H Svensson, Projektledare.
”Ett sätt att distribuera Business Objects via webben”
Ladok Lärosäte Lokala system Behörighets- katalog Idp Personal Studenter CSN SCB NyA Etc. Lärosäte Lokala system Behörighets- katalog Idp Personal Studenter.
Ali Ghodsi Global Computing Ali Ghodsi –Swedish Institute of Computer Science (SICS) Kungliga Tekniska Högskolan (KTH)
Stöd för olika utbildningsformer i Ladok3
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
DCV Idéskiss Design Jag tror att jag ska ha en mörk och stilren design på mitt DCV. Det ska finnas dynamisk funktionalitet där designen byts utan att sidan.
LPL-möte Umeå
1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius.
PKI & Active Directory Certificate Services
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Distribuerade filsystem
En introduktion till ’Hård Infrastruktur’
Först lite addenda till gårdagen …. (tomt element) eller (med elementinnehåll) attributet target för att identifiera ett mål Korsreferenser See especially.
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
STOCKHOLMS UNIVERSITETSBIBLIOTEK Te l e f o n v x l: F ax: w w w.s u b.s u.se Källkritik Värdera sanningshalt Bedöma trovärdighet.
Internet Styrdatorer och kablar Uppkopplade användare Servrar 182.QRZN.
Introduktion till DITA
Elektronisk attestering och signering
TEI Header Mats Dahlström Digitalisering av kulturarvet April 2007.
Målseminarium stöd för utbildning på forskarnivå i nya Ladok Wallingatan Annette Larsson, Catherine Zetterqvist, Matz-Ola Cajdert.
Projekt och Arkitektur
A Beginner's Guide to SharePoint 2013 REST API [Rest/Odata/Json]
Exempelbaserade specifikationer med SpecFlow
Utveckling med ramverket .net
XHTML & CSS Introduktion Erik Nahkala
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Network Services Networking for Home and Small Businesses – Chapter.
Study Manager är en SharePoint-lösning som ger lärare och administratörer möjlighet att lägga till och administrera självrättande övningar och uppgifter.
Network Services (Nätverkstjänster) Client/Servers And Their Interaction (Client/Server och deras interaktion)
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Oavsett om du tror att du kan, eller om du tror att du inte kan, har du helt rätt. ” -
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
System arbetssystem informationssystem
6558/G558 DATAKOMMUNIKATION Jan Westerholm hösten 2005 / andra perioden.
FunktonalitetRIV TA ProfilWS-I ProfilCentrala Specifikationer Grundläggande interoperabilitet Protokoll baserad säkerhet Basic Profile v2.0 Basic Profile.
Windows Vista: Administration Maria Johansson 10 nyheter som gör livet som administratör lättare.
Funktonalitet RIV TA Profil WS-I Profil Centrala Specifikationer
Söka information på internet. Vi ska prata om kapitel 3 Internet är det största nätverket som sträcker sig över hela världen. Om du är ansluten till internet.
Dokumentation Workshop Stockholm | Målsättning Gå igenom en students väg från programmets start till examen via Byte av program Byte av programtillfälle.
Dokument Process (DP) Metadata Ett standardiseringssamarbete för att: Att effektivisera åtkomst till verksamhetsdokument mellan och inom organisationer.
HSA Integration.
Datorkommunikation Lektion 8 Mahmud Al Hakim
Johan Sjödin & Anna Åhnberg Uppsala
Introduktion till SAML federation Varför använda SAML federation för elektronisk legitimering och underskrift Stefan Santesson Martin Lindström.
Från Webb 2:0 till Webb 3:0. WEBB 0 Webb 0 = ingen webb alls. Data kommunicerades med tal, skrift, tryckkonst samt analoga medier och så småningom elektroniska.
Copyright Peter Fredholm Elektroniska Affärer – del 1 Logistikprogrammet.
Resultat så här långt Ladok - produktbeskrivning Catherine Zetterqvist, Anette Eriksson.
S TUDENTGRÄNSSNITT OCH - TJÄNSTER Adobe Connect,
Etablering och hantering av personer i nya Ladok
Ladokträff
Internet Historia: 1964 Kommunikationsystem för försvaret (USA)
Ladok3 och studenttjänster
RMI Av: Josefina & Sarah DS04.
Söka information på internet
Integration av lokala system
Presentationens avskrift:

REST i Ladok3 Jan Stenberg, Knowit Senior arkitekt i Ladok3 2013-10-23 Detta blir lite tekniskt, jag försöker hålla presentationen på en konceptuell nivå, men det rör ett tekniskt ämne. Jan Stenberg, Knowit Senior arkitekt i Ladok3 2013-10-23

Agenda Introduktion Bakgrund Valet av REST för Ladok3 REST-principer REST i Ladok3 Ladok3:s arkitektur Exempel, REST - Ladok3 Summering

Introduktion Ladok3 har valt REST Ett gemensamt gränssnitt för Ladok3 Externt och internt Användargränssnitt Webbaserat mot användare, REST internt Web API för lärosäten Vi har valt REST och jag återkommer till varför. REST är inte ett protokoll, det är egentligen en arkitekturell stil, som syns i gränssnittet.

Bakgrund Web Services, WS, var ett paradigmskifte när det kom Vi gick från proprietära protokoll som DCOM, RMI och CORBA, (som var standardiserade på papperet men inte i verkligheten), till integration med XML och standard-protokoll. Men… WS använder bara en del av http-protokollet, för transport. WS beskriver bara enskilda operationer. Ger ett beroende mellan klient och server REST kan beskriva ett flöde. RESTful betyder att vi kan beskriva processen eller ett flöde, jämför t.ex. med när du handlar på webben och styrs av websiten genom betalprocessen. Det klarar inte WSDL eller WADL, de beskriver enbart enskilda operationer.

Valet av REST för Ladok3 REST har många fördelar Och få nackdelar Plattformsoberoende Lösa kopplingar Skalbarhet, en eller flera servers Enkelhet Utvecklas snabbt mot att bli ”standard” för ett Web API Och få nackdelar Relativt nytt Vi kan inte automatgenerera kod för kommunikationen Inga reella alternativ, (SOAP, CORBA, DCOM, Java RMI) En nackdel vs. WS är att man med WS enkelt skapar kommunikationen. Men vi vill egentligen inte heller göra det, eftersom det skapar beroenden mellan klient och server.

Förändringar mot dagens Ladok Webb LW - utdata Webbgränssnitt för administratör Webbkomponenter TG – portlets Studentgränssnitt Tjänstegränssnitt T – SOAP LP – Ping REST SQL Direkta DB frågor/uppdateringar SQL (enbart för läsning) Enbart i Uppföljning

Webben som applikationsplattform Världens största distribuerade informationssystem ”Alla” plattformar Prestanda Stateless - lätt att replikera Skalbarhet - Internet-scale Löst kopplat, allt måste inte vara igång Ladok3:s plattform (idémässigt)

HTTP Hypertext Transfer Protocol Protokollet för webben url http html Ett applikationsprotokoll, (inte bara ett transportprotokoll) Header som beskriver ett meddelande Body med själva meddelandet Webben består av tre huvudkomponenter: URL:er, HTTP och HTML I princip behöver inte webben och REST använda http men vi förutsätter att http är vårt protokoll. HTTP är ett applikationsprotokoll för distribuerade hypermedia-baserade informationssystem. HTTP är basen för datakommunikation på World Wide Web. Ett applikationsprotokoll betyder att det inte bara transporterar data, det stödjer också att en klient vill göra något.

HTTP-meddelanden Request: Header: GET /studiedeltagande/student/... HTTP/1.1 Accept: application/vnd.ladok+xml Response: Header: Body: HTTP/1.1 200 OK Content-Type: application/vnd.ladok+xml Date: Wed, 23 Oct 2013 14:45:44 GMT <?xml version="1.0" encoding="UTF-8"?> ... Frågan saknar ”body” för vi skickar inte in något data, vi frågar efter något.

HTTP-metoder GET POST PUT DELETE Hämtar en representation av en resurs Inga sidoeffekter, ”idempotent” POST Skapar en ny resurs, utökar en resurs Servern skapar URI Skapar nya resurser PUT Uppdaterar en känd resurs, ”idempotent” DELETE Ta bort en resurs , ”idempotent” Andra verb är bland andra HEADER och OPTIONS ”Utan sidoeffekter” betyder att man kan återupprepa utan att det gör något.

Statuskoder HTTP/1.1 200 OK 1xx: Informational: Request received, continuing process 2xx: Success: The action was successfully received, understood, and accepted 3xx: Redirection: Further action must be taken in order to complete the request 4xx: Client error: The request contains bad syntax or cannot be fulfilled 5xx: Server error: The server failed to fulfill an apparently valid request

REpresentional State Transfer UNIVERSITY OF CALIFORNIA, IRVINE Architectural Styles and the Design of Network-based Software Architectures DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Information and Computer Science by Roy Thomas Fielding 2000 Begreppet REST kommer från en doktorsavhanldling av Roy Fielding, 2000 REST är inte ett protokoll, det är en arkitekturell stil.

Ett exempel amazon.com Webbplatsen leder mig genom ett flöde när jag lägger en order Adress Leveranssätt Betalning Sammanställning, lägg order Det här den vanliga webben. Webbplatsen leder mig, och styr mig. Det är precis det vi vill uppnå med ett REST-baserat gränssnitt, för datorer.

Resurs Vad som helst i ett system som en konsument kan interagera med: Information Dokument Webbsidor Kurs Kaffemaskin Transaktioner Avstånd mellan två punkter

Uniform Resource Identifier, URI Identifierar en resurs, skiljer en resurs från en annan En resurs kan ha flera identifierare / URI:er En URI kan också vara en adress till resursen, en URL, som ger åtkomst till resursen Exempel https://api.ladok.se/utbildningsinformation/kurs/4b5c041-...-800200c9a66 uuid: 4b5c0410-a68c-11e2-9e96-0800200c9a66 Adressen i webbläsaren. I detta sammanhang är URI = URL

Representation En representation av tillståndet på en resurs vid en viss tidpunkt På webben utbyter man representationer, aldrig den underliggande resursen Formatet på en representation beror på klientens önskemål: html, xml, json, etc. En resurs har samma adress, URL, oberoende av typ av representation

Exempel på representationer <Student> <Uid>71391050-2c39-11e3-8224-0800200c9a66</Uid> <Personnummer>19820117-9283</Personnummer> <Efternamn>Ålandsson</Efternamn> <Fornamn>Örjan</Fornamn> </Student> { "Uid":"71391050-2c39-11e3-8224-0800200c9a66", "Personnummer":"19820117-9283", "Efternamn":"Ålandsson” "Fornamn":"Örjan" } Två exempel på representation av samma resurs men i två olika format. XML överst JSON underst

Länkar Länkar bygger upp webben Representationer kan innehålla länkar, (URL:er) Länkar pekar på andra resurser. I ett studiedeltagande finns en länk till studenten Länkar visar på möjligheter för tillståndsförändringar I REST är länkar opaka, dvs. de ska inte tolkas Ett studiedeltagande rör en student och ett kurstillfälle, och indirekt också en kurs. Man kan göra registreringar, avbrott, återbud, osv. <Studiedeltagande> <link uri="http://api.ladok.se/studentinformation/student/d22…ef03" /> … </Studiedeltagande>

Hypermedia Hypermedia = länkar mellan information/media Länkar skapar ett hypermedia-format HATEOAS Hypermedia As The Engine Of Application State En klient följer länkar som en tjänst levererar i representationer Applikationen drivs framåt genom övergång från ett tillstånd till ett annat När applikationen når ett nytt tillstånd presenterar den vilka nya tillståndsövergångar som är möjliga

Relationer Ger semantik till en länk Vad länken betyder Varför en klient ska följa länken <Studiedeltagande> <link rel="student” uri="http://api.ladok.se/studentinformation/student/d22…ef03" /> … </Studiedeltagande> Relationer gör att klienten kan förstå vad en länk betyder.

Exempel på relationer Standard-relationer, IANA Link Relations registry self previous, next payment Ladok3-specifika http://relations.ladok.se/studiedeltagande/registrering http://relations.ladok.se/studentinformation/student Relationer är konstanta strängar. Utformas de som url:er kan de användas i dokumentations-sammanhang. Samma princip med url:er gäller för namespaces i XML-scheman.

Exempel url: http://api.ladok.se/antagning/… Antagning rel: registrering url: http://api.ladok.se/registrering/… url: http://api.ladok.se/registrering/… Skapar Deltagande rel: avbrott url: http://api.ladok.se/avbrott/…

Mediatyper Mediatypen beskriver format på en representation process-modellen, vad en klient kan göra för ett specifikt representations-format text/html, image/jpeg Ladok3 har två mediatyper: application/vnd.ladok+xml application/vnd.ladok+json

Relationer, länkar och mediatyper <Studiedeltagande> <link rel="student” uri="http://api.ladok.se/studentinformation/student/d22…ef03” mediaType=”application/vnd.ladok+xml” /> … </Studiedeltagande> Vad innebär länken: rel: VARFÖR vill jag komma åt den länkade resursen? uri: VAR finns resursen? mediaType: HUR ska jag tolka svaret?

Kontrakt Domain Application Protocol, DAP http://schemas.ladok.se/dap Utökar en mediatyp med applikationsspecifika värden på länk-relationer Begränsar http-protokollet Tre nyckelkomponenter Mediatyp, ex: application/vnd.ladok+xml Länk – relationer Beskriver rollen för länkade resurser http-verben Manipulerar resurser som ingår i protokollet Vårt domänspecifika protokoll, för Ladok3

RESTful REST – Fullt ut Human-webb – REST API Utforskande Klienten behöver inte känna till url:er Klienten kan upptäcka nya relationer Vad betyder allt detta? Det här tror jag är det viktigaste. RESTful betyder att vi kan beskriva processen eller ett flöde, jämför t.ex. med när du handlar på webben och styrs av websiten genom betalprocessen.

REST i Ladok3 RESTful – REST fullt ut Använder HTTP som ett applikationsprotokoll Hypermedia-drivet med länkar som leder klienten till andra resurser och driver tillståndsförändringar DAP Domain Application Protocol

Exempel Prata REST med Ladok3

Dokumentation Genereras maskinellt av tjänsterna Kommer troligtvis att finnas både online och som nedladdningsbar fil Innehåller text och XML-scheman https://www.mit.ladok.se/restdoc/resultat.html

<Domänhändelse> StudentEtablerad Arkitektur för Ladok3 Studenter Examen api.ladok.se Deltagande Utbildningar <Domänhändelse> StudentEtablerad Ladok3 Resultat Behörighet

Multitenant En klient till en tjänst, vårt GUI eller ett system hos ett lärosäte jobbar i kontextet av ett lärosäte. Autentisering som visar vilket lärosäte klienten tillhör Via Shibboleth Via certifikat Behörighet sätts utifrån klient. Behörighet administreras i Ladok3

Referenser Böcker RESTful Web APIs REST in Practice För de teknikintresserade

Summering Den vanliga webben men med XML eller JSON som format och med relationer för att beskriva länkar Resurser Representationer Hypermedia Länkar Relationer Servern leder klienten Ger ett oberoende mellan klient och server Plattformsoberoende, nu och i framtiden

Frågor? ?