IT Arkitektur og Sikkerhed 24-09-06 24-09-06 IT Arkitektur og Sikkerhed Service Orienteret Arkitektur (SOA) 1
Sidste uge I sidste uge gennemgik vi Hvad er IT Arkitektur? 24-09-06 Sidste uge I sidste uge gennemgik vi Hvad er IT Arkitektur? LDAP og NOS Applikationsservere Tynde/Tykke klienter Server baseret processering N-lags modeller Middleware
Dagsorden I denne uge gennemgår vi Service Orienteret Arkitektur 24-09-06 Dagsorden I denne uge gennemgår vi Service Orienteret Arkitektur IT Arkitektur Patterns /v Citrix og SAP ROI case
24-09-06 Næste uge I næste uge gennemgår vi Enterprise Arkitektur
Hvilket problem vil vi gerne løse 24-09-06 Hvilket problem vil vi gerne løse
Hvilket problem vil vi gerne løse 24-09-06 Hvilket problem vil vi gerne løse XXX har 71 kærnesystemer som er knyttet sammen med 453 forbindelser (den inderste ring) Der er 312 forbindelser mellem XXX's kærnesystemer til 97 eksterne interessenter (den yderste ring) Mange af program-til-program forbindelser er baseret på forskelligartet teknologi, og kræver typisk at klienten forstår den system grænseflade og protokol, samt de funktioner som serveren stiller til rådighed.
Hvilket problem vil vi gerne løse Hver gang vi skal udskifte et system skal vi ændre på alle program-til-program forbindelser fra dette system til andre systemer, men potentielt også på andre systemers program-til-program forbindelse til det udskiftede system (kompleks og langsommelig implementering) Introduktion af nye systemer kræver ligeledes etablering af program-til-program forbindelser til og fra det nye system (kompleks og langsommelig implementering) De data/funktioner der udveksles mellem systemerne er meget specifikke og kan kun bruges i den bestemte kontekt de er udviklet, og kræver som oftest specifik set-up i begge ender (begrænset genbrug)
Service Orienteret Arkitektur Serviceorienteret arkitektur (forkortes SOA) er en måde at opbygge en dynamisk og distruberet IT-arkitektur SOA består grundlæggende af en række løstkoblede services der er designet ud for meget specifikke kriterier om at de skal være veldefinerede, selvberoende og uafhængige. SOA er i dag typisk implementeret med Web Services, men der er umiddelbart ingen begrænsning hertil SOA understøttes i dag af alle væsentlig IT leverandører. Så som SAP, IBM, Oracle, Microsoft m.fl.
Service En service tilgås gennem dens service interface Implementeringen af en service er gemt for konsumenten med undtagelse af information og funktion udstillet igennem servicens interface Konsekvensen ved aktivering af en service er Information bliver returneret på anmodning fra producenten, Ændring af tilstand hos producenten, eller En kombination af begge ovenstående Konsumenten ved ikke hvordan information er frembragt (fra en database, fra en udregning eller fra et helt tredje sted) og typisk heller ikke hvordan tilstanden er ændret hos producenten.
24-09-06 Web er en succes Web er primært kendt som en infrastruktur, hvor brugeren ved hjælp af en browser har adgang til alskens information og tjenester via en myriade af web-servere placeret overalt på Internettet Web Services udvider denne infrastruktur til også at understøtte program-til-program forbindelse, hvor klienten ikke er en menneske-styret browser. En Web Service defineres som en applikation eller et programobjekt, der, via Internet protokoller, stiller en grænseflade til rådighed, hvorigennem klienter kan udføre funktionskald eller foretage dataudvekslinger.
24-09-06 Web Services Web services benytter WSDL (Web Services Decription Language) som er en XML-baseret grammatik til at beskrive web services grændsefladen. Det betyder at de operationer som konsumenten kan gøre brug af er beskrevet i WSDL Web services benytter SOAP (Simple Object Access Protocol) som protokol. SOAP benytter HTTP til at sende og modtager beskeder over Internettet.
24-09-06 Eksempel Jeg vil godt lave en web side hvor en bruger kan indtaste oplysninger om sig selv. Den skal være en smule automatisk og bl.a. kunne fortælle om længdegrad og breddegrad for det postnummer jeg bor i. Hmm, hvorfor ikke se om jeg kan finde en sådan web service
Eksempel www.xmethods.org er en samling af tilgængelig web services. Har mest udtryk at Proof-of-Concept
24-09-06 Eksempel http://xmethods.org/ve2/ViewListing.po?key=uuid:1AF499AB-7A1B-7476-BC5A-23BF1715CB77
Eksempel
Bagved eksemplet WSDL definitionen af web servicen http://www.jasongaylord.com/webservices/zipcodes.asmx?wsdl SOAP destination http://www.jasongaylord.com/webservices/zipcodes.asmx SOAP kaldet SOAPAction: http://www.jasongaylord.com/webservices/zipcodes/ZipCodeToLatitudeLogitude User-Agent: Mindreef SOAPscope 4.1.2000 (http://www.mindreef.com) Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://www.jasongaylord.com/webservices/zipcodes" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <soap:Body> <tns:ZipCodeToLatitudeLogitude> <tns:ZipCode>94101</tns:ZipCode> </tns:ZipCodeToLatitudeLogitude> </soap:Body> </soap:Envelope>
XML Står for ”eXtensible Markup Language” 24-09-06 XML Står for ”eXtensible Markup Language” Man kan vel sige at XML gør for data hvad HTML gjorde for præsentation Hvor bliver XML brugt?
XML konceptet XML skal være struktureret ordentligt 24-09-06 XML konceptet XML skal være struktureret ordentligt Man bruger et skema når XML elementer skal give mening XML separerer data fra repræsentation Idéen er at det er læsbart for både maskiner og mennesker XML er altså om struktur og semantik
Hvad er XML ikke XML handler ikke om præsentation 24-09-06 Hvad er XML ikke XML handler ikke om præsentation XML er ikke et programmeringssprog XML er ikke en netværks protokol XML er ikke en database XML ”gør” ikke noget i sig selv
XML skema Skemaer er regler som et XML dokument skal opfylde 24-09-06 XML skema Skemaer er regler som et XML dokument skal opfylde Populære måder at definere et skema på inkluderer ”Document Type Definition (DTD)” eller ”W3C XML Schema” DTD er mest brugbart til ”style documents” (i.e. fokus på præsentation) W3C XML skema er mest brugbart i forbindelse med data orienterede strukturer (f.eks. specifikke data typer)
24-09-06 XML skema <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="country" type="Country"/> <xs:complexType name="Country"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="population" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:schema>
24-09-06 Hvad er SOAP? SOAP er en XML baseret letvægtsprotokol til udveksling af struktureret og type-behæftet information i et decentralt, distribueret miljø. Enhederne, der udveksles, kaldes beskeder. SOAP definerer ingen fast semantik for, hvordan beskederne udveksles og kan bindes til forskellige transportprotokoller, hvilket giver en fleksibilitet, der gør, at SOAP kan anvendes til en bred vifte af kommunikationsformer. Typisk benyttes dog HTTP
SOAP struktur SOAP kræver en Body og en Envelope 24-09-06 SOAP struktur SOAP kræver en Body og en Envelope Og (valgfrit) også en SOAP Header
SOAP eksempel Konsumenten sender 24-09-06 SOAP eksempel Konsumenten sender <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productID>827635</productID> </getProductDetails> </soap:Body> </soap:Envelope>
SOAP eksempel Producenten svarer 24-09-06 SOAP eksempel Producenten svarer <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productID>827635</productID> <description>3-Piece luggage set. Black Polyester.</description> <price>96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
24-09-06 Hvad er WSDL? SOAP-specifikationen indeholder ikke i sig selv noget værktøj til beskrivelse af den græseflade, som en given web-service stiller til råighed. WSDL er et XML-baseret sprog for at beskrive Web Services, hvor man kan finde dem, hvordan man tilgår dem, og hvilke operationer de understøtter. Man kan kalde WSDL for Web Service’s API Web Services genererer WSDL. Konsumenten tager så fat i WSDL filen og genererer den nødvendige kode til at kalde Web Servicen.
Udvikling af Web Services Web Service design principper Services skal have veldefineret granularitet Services skal modulariseres Forretningsservices (betydning for forretningen) Tekniske services (betydning for IT) Forretningsservices er baseret på tekniske services Services skal kunne understøtte forskellige initieringsmønstre http://www-128.ibm.com/developerworks/webservices/library/ws-soa-design/
Masser af Web Services 24-09-06 Service Service Service Service
UDDI UDDI står for “Universal Description, Discovery and Integration” 24-09-06 UDDI UDDI står for “Universal Description, Discovery and Integration” UDDI er en slags register for Web Services, ala LDAP som vi diskuterede sidste uge. UDDI giver mulighed for at søge efter Web Services og finde deres adresse
24-09-06 Hvordan virker UDDI? UDDI WSDL SOAP
Koordinering af Web Services 24-09-06 Koordinering af Web Services Service Service Service Service Service
24-09-06 Business Process En anden komponent der ofte ses i SOA, er Business Process (BP) værktøj BP omfatter Business Design værktøj (BPM) Business Ekskveringsværktøj (BPM) Business Monitoringsværktøj (BAM) BPM Kombinerer flere web services i en forretningsproces. Sørger for at service kald bliver udført i den rigtige rækkefølge, og at data der kommer tilbage fra en service sendes videre til den næste.
Business Process
24-09-06 Messaging Mønstre SOA som beskrevet fungerer forbindelsesorienteret; der skabes en forbindelse mellem klient og server (synkron kommunikation) For at skalere SOA til enterprise niveau kombineres SOA ofte med messaging mønstre som set i traditionel EAI (asykron kommunikation, request/reply, publish/subscribe)
Messaging Mønstre Eksempel 24-09-06 Messaging Mønstre Eksempel Klienten publicere (publish) sin service kald til messaging infrastrukturen, og fortsætter sit arbejde Serveren abonnerer (subscribe) på den type service som klienten har publiceret, og henter derfor service kaldet og bearbejder det og sender efterfølgende svaret tilbage ud på messaging infrastrukturen til klienten. Ovenstående messaging mønster understøtter at service kald rutes fra klient til server baseret på overskrifter (topics) eller indhold (content). Flere servere kan abonnerer på de samme service anmodninger
Enterprise Service Bus 24-09-06 Enterprise Service Bus SOA kombineres i større installationer med Enterprise Service Busser (ESB) ESB Indeholder specielle adaptorer til applikationer der ikke understøtter web services. Adaptoren snakker med applikationen og udstiller applikations interne funktioner som web service Understøtter Messaging Mønstre. Indeholder køer hvor service kald kan ligge i tilfælde af applikationer ikke svarer. Giver mulighed for transformation af data i services. YYMMDD DD-MM-YYYY
Anden vigtig information 24-09-06 Anden vigtig information WS-I står for Web Services Interoperability Organization og har ansvar for at sikre interoparbilitet indenfor web services WS-I udarbejder Implementerings guidelines, sample applikationer, samt test værktøjer til at verificere overholdelse af standarder. WS-I: http://www.ws-i.org WS-I for vigtige udbud efter software og konsulentydelser
24-09-06 Opsummering Applikationer tillader andre applikation er forbinde sig til dem over Internettet ved brug af SOAP En Web Service udstiller sine metoder gennem en WSDL Web Service bliver publiceret til UDDI register med det formål at andre virksomheder kan finde dem Typiske anker mod Web Services Performance, Performance, Performance. Sikkerhed. Men denne anke er ikke reel mere med standarden WS-Security Transaktionel Integritet. Men denne anker er ikke reel mere med standarden WS-TX, samt WS-RM
24-09-06 24-09-06 Opgaver 39