XML & co DC Ontologier OWL Vokabulärer Schema Topic Maps XSLT XML HTTP XHTML Semantic Web REST RSS FOAF RDF Web Services.NET SOA J2EE Gästföreläsning Grundläggande Internetprogrammering, 2D2052 NADA, KTH, 2005-02-21 Pär Lannerö, par.lannero@metamatrix.se
Upplägg 1. XML grunder 2. XMLism 3. XML möjligheter och problem 4. Två helhetsgrepp: + Semantic web + Web services
html XML grunder <FONT FACE= Arial COLOR= red > Storgatan 5 <BR> 123 45 Småstad </FONT> xml <address> <streetname>storgatan</streetname> <streetnumber>5</streetnumber><br> <zip>123 45</zip> <city>småstad</city> </address>
XML grunder Digitalteknik handlar om standardisering av koder Grammatik Adressering Tecken Signaler utväxla strukturerad information kommunicera över nät utväxla text på och av styr och regler 1996: XML, schema Webben 1989: HTML, HTTP 70-tal: TCP/IP 60-tal: ASCII 50-tal: ettor & nollor
XML & co DC Ontologier OWL Vokabulärer Topic Maps Namespaces XML RSS FOAF Semantic Web RDF Schema XSL-FO CSS SVG XSLT SGML SAX/DOM HTTP XHTML URI REST XLink XPath XML Query SOAP Web Services.NET J2EE WSDL SOA
XML & co XML 1.0: använd krokodilgap! DC Ontologier OWL Vokabulärer Topic Maps Namespaces XML RSS FOAF Semantic Web RDF Schema XSLT HTTP XHTML XSL-FO <streetname>storgatan</streetname> SGML CSS SVG SAX/DOM URI REST XLink XPath XML Query SOAP Web Services.NET J2EE WSDL SOA
XML & co Schema ger struktur DC Ontologier OWL Vokabulärer <address> <streetname/> Topic Maps <streetnumber/> Namespaces <zip/> <city/> XML </address> RSS FOAF Semantic Web RDF Schema XSLT HTTP XHTML REST XSL-FO SGML CSS XLink SVG <address> <streetname>storgatan</streetname> SAX/DOM XPath <streetnumber>5</streetnumber> URI <zip>123 45</zip> <city>småstad</city> </address> Web Services XML Query SOAP.NET J2EE WSDL SOA
XML & co XSLT för transformation Ontologier Topic Maps <address> <streetname>storgatan</streetname> Namespaces OWL <streetnumber>5</streetnumber> DC <zip>123 45</zip> <city>småstad</city> </address> Vokabulärer XML RSS FOAF Semantic Web RDF Schema XSL-FO CSS SVG SOAP HTTP WSDL XSLT Web Services XHTML REST.NET SOA J2EE SGML <adress> <gatuadress>storgatan XLink 5</gatuadress> SAX/DOM <postadress>123 XPath 45 Småstad</postadress> </adress> XML Query URI
XML & co CSS styr presentation Ontologier Topic Maps <address> <streetname>storgatan</streetname> Namespaces OWL <streetnumber>5</streetnumber> DC <zip>123 45</zip> <city>småstad</city> </address> Vokabulärer XML RSS FOAF Semantic Web RDF Schema XSL-FO CSS SVG XSLT HTTP XHTML REST Storgatan 5 SGML XLink SAX/DOM 123 XPath 45 Småstad URI Web Services XML Query SOAP WSDL.NET SOA J2EE
DC html XML & co <FONT FACE= Arial COLOR= red > Topic Maps Ontologier RSS Storgatan 5 <BR> OWL Namespaces XHTML = HTML som XML 123 45 Småstad </FONT> Vokabulärer XML FOAF Semantic Web RDF Schema XSL-FO CSS SVG XSLT HTTP XHTML SGML XLink SAX/DOM XPath URI REST Web Services XML Query SOAP.NET J2EE WSDL SOA <FONT FACE= Arial COLOR= red > Storgatan 5 <BR/> 123 45 Småstad </FONT>
XML & co XPath adresserar med precision Ontologier <address> <streetname>storgatan</streetname> Namespaces OWL <streetnumber>5</streetnumber> DC <zip>123 45</zip> <city>småstad</city> </address> Vokabulärer Topic Maps XML RSS FOAF Semantic Web RDF Schema XSL-FO CSS SVG //address/zip XSLT SGML SAX/DOM HTTP XHTML URI REST XLink XPath XML Query SOAP Web Services.NET J2EE WSDL SOA
XML & co DC Ontologier OWL Vokabulärer Topic Maps Namespaces XML RSS FOAF Semantic Web RDF Schema XSL-FO CSS SVG XSLT SGML SAX/DOM HTTP XHTML URI REST XLink XPath XML Query SOAP Web Services.NET J2EE WSDL SOA
XMLism Tanken att XML inte är ett nytt filformat, utan en familj av specifikationer som tillsammans lyfter upp basen för informationstekniken på en ny nivå
XMLism Visionerna sträcker sig längre Tillit Sir Tim B-L: Semantic web Bevis Logik resonemang Semantik utväxla meningsfull information EDIfact Grammatik utväxla strukturerad information Webben EDI Adressering kommunicera över nät X.25 Tecken utväxla text Signaler på och av styr och regler
XMLism En syn på informationens tillgänglighet: Idag: databaser åtkomliga via Internet Före Internet: isolerade databaser Clip Snart: Internet blir en enda stor databas
XMLism Frigör informationen Frigör från dokumentet Frigör från publikationen Frigör från materien Frigör från platsen Frigör från exemplaret
Möjligheter med XML 1/5 Effektivt informationsflöde Mata in information bara en gång (eller ingen) Automatiskt utbyte av information mellan system Billigt flöde av information mellan organisationer XML
Möjligheter med XML 2/5 Flexibel presentation av information Parallellpublicering Enkelt anpassa till användare med speciella behov Enkelt presentera centrala data i olika språkgränssnitt XML
Möjligheter med XML 3/5 Lämpligt för långtidsförvaring Låser sig inte vid en viss leverantör Text-baserat Många verktyg att välja mellan XML
Möjligheter med XML 4/5 Informationskvalitet Scheman och validering ger Korrekt Fullständig och Välstrukturerad information Referera istället för att kopiera en ögonblicksbild Aktuell information XML
Möjligheter med XML 5/5 Effektiv informationshantering Urval Sortering XML
Möjligheter med XML 5/5, illustration
Möjligheter med XML 5/5, illustration Kan endast besvara frågan: Vilka dokument innehåller sök-orden?
Möjligheter med XML 5/5, illustration
Möjligheter med XML 5/5, illustration Kan besvara frågan: Vilka dokument innehåller sök-orden i ett specifikt element Kan sortera på valfritt element
Problem med XML??
FINNS INTE Problem med XML
FINNS Problem med XML
Problem med XML Redan fullt accepterat som filformat, men filosofin XMLismen genomsyrar inte dagens programvara. T.ex: MS Office har funktioner för att läsa och skriva XML, men det är inte standardformatet! Sökmotorer på nätet bryr sig inte om DC, XHTML, RSS, FOAF...! Databaser drar inte nytta av flexibiliteten i XML (utom t.ex. Tamino som kostar 1 Mkr) Term- och begreppshanteringen ännu omogen Säkerhets- och integritetsfrågor...
Problem med XML Automatiska metadata ej direkt tillgängliga för sökning och sortering, eftersom de bakas in i binära format (.doc,.jpg...) Datering Upphovsman Titel ID3 Sökmotorer bryr sig inte om metadata, även i textformat (XHTML, HTML META, RSS etc.)
Det behövs helhetsgrepp!
Det behövs helhetsgrepp! Helhetsgrepp finns inom vissa branscher, samt i två större sammanhängande generella teknologier som är på g: 1. Semantic Web 2. Web Services
Semantic Web hanterar informationsposter inte dokument
Semantic Web Ser till informationens minsta beståndsdel: påstående Ondskan är skriven av Jan Gulliou
Semantic Web Strukturen hos ett påstående Resource Property Value Ondskan är skriven av Jan Gulliou
Semantic Web Entydighet genom URIer Resource Property Value Ondskan är skriven av Jan Gulliou ISBN://123456789-3 mailto:jg@pk.se http://purl.org/dc/elements/1.1/author
Semantic Web Entydighet genom URIer Ondskan är skriven av Jan Gulliou ISBN://123456789-3 mailto:jg@pk.se http://purl.org/dc/elements/1.1/author Evil was written by Gulliou, Jan ISBN://123456789-3 mailto:jg@pk.se http://purl.org/dc/elements/1.1/author
Semantic Web Meningsfullt först när det finns många påståenden Ondskan är skriven av Jan Gulliou PK Har hemsida http://www... Jan Gulliou är ordförande i PK Ondskan Skrevs 1981 Ordförande måste vara medlem Medlem måste vara människa Är skriven av Samtidigt som Skrevs människa Är också däggdjur Är skriven av Har invers Är författare till däggdjur är aldrig fiskar Jan Gulliou är en fisk
Semantic Web Meningsfullt först när det finns många påståenden
Semantic Web Gör det möjligt för maskiner att resonera Ondskan är skriven av Jan Gulliou PK Har hemsida http://www... Jan Gulliou är ordförande i PK Ondskan Skrevs 1981 Ordförande måste vara medlem Medlem måste vara människa Är skriven av Samtidigt som Skrevs människa Är också däggdjur Är skriven av Har invers Är författare till däggdjur är aldrig fiskar Jan Gulliou är en fisk t.ex. upptäcka motsägelser
Semantic Web Gör det möjligt för maskiner att resonera Upptäcka motsägelser Pröva hypoteser mot data: leta efter alla som är författare leta efter påståenden som säger att en av dem är fisk lägg till påståendet (hypotesen) ingen fisk kan vara författare om systemet varnar för motsägelse så är din hypotes troligen falsk Hitta alla som är medlem i PK Hitta böcker skrivna av svenskar på engelska......som kostar mindre än 40 yen...sortera böckerna efter förlag...rita ut förlagens kontor på en karta...sortera bort alla böcker vars förlag inte har ett kontor i Japan
Semantic Web Kräver energi...
Semantic Web Bara visionärerna tycks ha sett möljigheterna
Semantic Web - översikt Vad publicerar man? Hur publicerar man? Vad söka? Hur sortera? Web Sidor Redigera fritext + bilder Sidor Länkar Antal sidor Liknande sidor Relevans Skapat-datum Titel Semantic Web Påståenden Underhåll databaser, generera RDF Svar på godtycklig fråga Godtyckligt http://ftrain.com/google_takes_all.html
Web Services - översikt Vad är Web Services? Tre definitioner Upphov och status Exempel Vad använder folk WS till? Vilka web services borde finnas? Varför web services? 24-timmarsmyndigheten behöver ej fördjupa Argument Konkret hur det går till Exempel: Microsoft Visual Studio.NET Ett heltäckande scenario internt- <-> externt Teknisk översikt Protokoll Utvecklingsverktyg Utvecklingsstrategier Särskild avdelning om transaktionshantering o säkerhet Buzzword bingo Frågetecken kring Web Services XML
Tre definitioner XML 1) Web services = XML in motion Edd Dumbill (xml.com)
2) Web services is: Tre definitioner IP-based network applications built with four emerging standards: Extensible Markup Language (XML) Simple object access protocol (SOAP) Universal description discovery and integration (UDDI) Web services description language (WSDL) That allows the applications to talk to each other no human intervention needed. What Web services is all about is interoperability of applications, be they written in Perl or Java or Windows or whatever. Ben Worthen (cio.com)
3) Tre definitioner Grundtanken är att varje del i ett IT-system enkelt ska kunna kopplas ihop med godtyckligt annat system Johan Porsby, Agero
Vad Web Services inte är Webben Web server web WS Web browser Godtycklig programvara
Vad Web Services inte är Semantic Web också för maskinläsning, men mer dataorienterad (WS är mer service-orienterat) Corba/COM/RMI/EDI också sätt att anropa tjänster/data på distans, men inte lika Internet-anpassade (men mer mogna) XML-RPC enklare men inte lika komplett Nödvändigtvis http-baserat kan även köras över SMTP eller liknande (Via mellanvara såsom MSMQ) En modefluga
Upphov och status Stor industriell uppbackning
Upphov och status Stor industriell uppbackning
Upphov och status Har kommit igång, men inte hos alla
Exempel (publicerade på xmethods.org) Uppslagning av konstanta data Landnamn <-> ISO landkod ISBN -> Boktitel ZIP -> koordinater Uppslagsverk, t.ex. Medicinska Indexerad litteratur (Bibeln, Shakespeare, Koranen...)
Exempel (publicerade på xmethods.org) Uppslagningar av aktuella data ISBN -> Pris på Amazon/BN Valutakurser Börskurser Är en viss användare online? Befolkning i ett givet land Temperatur i en given stad Var befinner sig ett UPS-paket? Nyhetsrubriker Tidtabeller
Exempel (publicerade på xmethods.org) Uträkningar Kan oftast med fördel utföras på klientsidan, men iallafall... Radie -> omkrets Formatering av datum till viss kultur (2004-10-21 -> 10/21/04)
Exempel (publicerade på xmethods.org) Skicka meddelande SMS ICQ Epost Fax
Exempel (publicerade på xmethods.org) Översättning Språk (Babelfish) Koder (romerska siffror <-> decimal)
Exempel (publicerade på xmethods.org) Konvertering HTML -> PDF Word -> HTML
Exempel (publicerade på xmethods.org) Tjänster Spam-identifikation Rättstavning Eliza Avlägsning av röda ögon (HP) Färgkodning o indentering av programtext
Exempel (publicerade på xmethods.org) Validering Är en given mailadress korrekt? Är ett bankkontonummer giltigt? Postnummer finns det?
Exempel (tänkbara mellan betrodda parter) Beställningar av IRL-varor Avläsning av lagernivå, automatisk påfyllning Beställning från OLF-system (finns med äldre teknik (EDI), men troligen billigare göra med WS) Beställningar av IRL-tjänster Kontroll av lediga hotellrum (för försäljning av samarbetspartner, som del av paket) Bokning av hotellrum Taxi till koordinat baserat på mobil-position/kart-klick/knapptryck Kontroll av tillgång till konsertbiljetter (för försäljning av samarbetspartner, som del av paket) Beställning av konsertbiljetter
Exempel (möjliga om betalsystem finns) E-brev Beställning av biljetter Blommogram
Web Services ger programmeraren möjligheter!
Sammansättning av Web Services Egen applikation (ev WS)
Metamatrix WS-önskelista Beräkningar/tjänster Disponibel inkomst, givet lön, familjemedlemmars ålder, bosättningsort (baserat på bl.a. skattesatser annan ws) Års-återbetalningsbelopp CSN, givet år, lön, ålder, nuvarande skuld VAB-rapportering mellan företag och försäkringskassan
Metamatrix WS-önskelista Beräkningar/tjänster Disponibel inkomst, givet lön, familjemedlemmars ålder, bosättningsort (baserat på bl.a. skattesatser annan ws) Års-återbetalningsbelopp CSN, givet år, lön, ålder, nuvarande skuld VAB-rapportering mellan företag och försäkringskassan
Varför? Metamatrix WS-önskelista Det blir möjligt att direktkoppla applikationer till nyckeltal istället för att skriva in dem i.ini-filer Informationen blir mer tillgänglig för medborgare och organisationer Samarbete mellan myndigheter blir billigare Mindre trögt att få igång nya tjänster tack vare enhetligt gränssnitt
Varför? Metamatrix WS-önskelista Det blir möjligt att direktkoppla applikationer till nyckeltal istället för att skriva in dem i.ini-filer Informationen blir mer tillgänglig för medborgare och organisationer Samarbete mellan myndigheter blir billigare Mindre trögt att få igång nya tjänster tack vare enhetligt gränssnitt Kvalitetsökning Demokrati Ekonomi Flexibilitet
Konkret! Hur det går till att använda web services
Varför Web Services? Affärs/verksamhetsmässiga fördelar Kan enkelt kombinera ihop ett informations/tjänsteflöde mha potentiellt många leverantörer Enkelt byta leverantör av information/tjänst > billigt Enkel systemintegration vid företagsköp/sammanslagningar/samarbeten Enkelt sätt att låta återförsäljare/partners integrera den egna informationen i sina system (-> ökad försäljning) Tjänster som är unika vill ett företag hantera själva, men sådana tjänstekomponenter som alla ägnar sig åt (t.ex. reseräkning-hantering) kan man ofta med fördel outsourca till specialister (resebyrå). WS underlättar detta! Billigare än SHS enl. CSN
Varför Web Services? Trygghet i IT-investering Plattformsoberoende Leverantörsoberoende Modulär utveckling Enkelt sätt att inlänka data från befintliga system i nya Utvecklingstiden kortare (enl CSN)
Varför Web Services? Perfekt vid kommunikation i flera kanaler återanvända komponenter - samma bas i flera kanaler enhetlighet i gränssnitt gemensam statistik
Teknisk översikt - SOAP Simple Object Access Protocol Standardiserat (XML-baserat) sätt att paketera åtkomst av en tjänst. Innehåller två delar: HEAD: administrativ info, t.ex. meddelandets giltighetstid BODY: själva det data som ska utbytas mellan applikationerna Kan transporteras över t.ex. HTTP eller SMTP Standardiserat av W3C
Teknisk översikt WSDL Web Service Description Language Standardiserat (XML-baserat) sätt att beskriva en tjänst. Två typer av beskrivning: Abstrakt människoläsbart Konkret maskinläsbart Tydligare kravspec kan man inte få Örjan Carlsson, chef IT-arkitektur CSN
Teknisk översikt UDDI Universal description discovery and integration Standardiserad katalog som innehåller beskrivningar av tjänster. Åtkomlig som WS! Två typer av beskrivningar: Gula sidor principbeskrivning av tjänster Vita sidor allt som behövs för att ansluta tekniskt
Utvecklingsverktyg Microsoft Visual Studio.NET Sun ONE Studio Novell xtend IBM WebSphere WebMethods BEA WebLogic
Hur bör WS konstrueras? Modul-tänkande! Varje logisk funktion som är meningsfull för sig bör exponeras som EN ws. Sammansatta tjänster kan konstrueras med hjälp av flera WS. På så vis kan nya tjänster återanvända moduler utan att de behöver förändras alls. Tänk efter vad som ska hända om en WS inte svarar på anrop!
Att bygga in befintliga system 1. API 2. Bygga om 3. Screen-scraping 4. Bygga nytt
Buzzword bingo O R W S C I H B P E L W S W S F L T R E S T S O A T A G I L E O N
REST Representational State Transfer är en åsikt: Webbens struktur (tillståndslös, URLer, dokument) är nyckeln till dess framgång. Samma arkitektur bör användas för WS. http://www.xfront.com/ REST-Web-Services.html
Service Oriented Architecture Funktion Beständighet Lång utvecklingstid Täta samarbeten Objektorienterat Process Föränderlighet Inkrementell utveckling Spontana samarbeten Meddelandeorienterat Wolfram Meyers, Microsoft
Problem med Web Services? Mer kod fler kopplingar och beroenden mer underhållsoch versionsfrågor Semantik Varje bransch behöver komma överens om begrepp och terminologi Kapacitet XML inte så kompakt.. Säkerhet WS innebär att man öppnar för systemanrop! Forts följer DLL WS DLL hell magnified Uppgraderar man en applikation så slutar flera andra att fungera The standards needed will be in place within 1,5 years Bob Sutor, IBM director of WS, I början av 2003
Problem med Web Services? Tillit kan jag bygga ett system som är beroende av en web service som någon annan tillhandahåller? Vem litar du på? Långvarighet kan jag bygga ett system som är beroende av en web service som någon annan tillhandahåller? Alltför stor tilltro till automatisering? Mjukvaruleverantörer behöver inlåsning och öppenhet
Problem med Web Services? Komplexitet frestande men farligt överge webbens enkelhet! Transaktionshantering över flera WS-anrop Gamla system ofta inte byggda för alternativa gränssnitt Begränsad kunskap bara 14% av svenska IT-chefer känner till WS (CS) Legala konsekvenser har inte ens hunnit dyka upp! Politiska och affärsmässiga konsekvenser
Hur gå vidare? Gå med i Dataföreningens projekt Serviam, kostar 100.000kr och då delar man på kostnader för bevakning och utveckling av WS www.serviam.se Gå med i Web Services Competence Center i Växjö: http://wscc.info/ www.webservices.org
Web Services Slutsatser?? Redan ett bra verktyg för integration inom organisationer Extern integration börjar komma igång Integration med nya, okända partners kanske aldrig blir verklighet (kanske om 10 år, säger IDC)
Konkurrens? Semantic Web Initiative Web Services www.swsi.org
Erfarenheter: Summering
Erfarenheter: Summering MJUKVARA KABLAR
Erfarenheter: Summering SYNTAX SEMANTIK (klart: XML, SOAP...) (Många branscher har detta kvar!)
Erfarenheter: Summering POLITIK TEKNOLOGI
SLUT