1. Historisk utveckling 2. Tjänstekonceptet 3. SOA bakomliggande principer 4. SOA - Metamodell 5. XML 6. Roller. Pär Douhan,

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

SOA. Länkar +ll sidor om SOA h3p:// h3p://dsv.su.se/soa/

Webbtjänster med API er

Webbtjänster med API er

Affärssystem. Affärssystem - 1. Affärssystem. Informationssystem (IS) Tobias Nyström

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Systemkrav Tekis-Bilflytt 1.3

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1

Sokigo AB OVK 2.0. Pentium- eller AMD-processor (x64 processor) på 1,6 GHz Dual Core eller motsvarande.

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Systemkrav Bilflytt 1.3

Från Data till Process

Web Services. Cognitude 1

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

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

SOA One Year Later and With a Business Perspective. BEA Education VNUG 2006

Molntjänster. Översikt. Lektion 1: Introduktion till molntjänst. Introduktion till molntjänst. Vilka tjänster finns? Säkerhet.

Systemkrav Bilflytt 1.4

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q2

Dag König Developer Tools Specialist Microsoft Corporation

Systemutvecklare SU14, Malmö

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

Facit Tentamen 17/3 Informationsinfrastruktur

Arkitektur för Bistånd

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Se upp med Oracle och SAP

Distribuerade affärssystem

Din guide till. Teknisk Specifikation Säljstöd

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

Webservice & ERP-Integration Rapport

Sokigo AB Ecos Pentium- eller AMD-processor (x64 processor) på 1,6 GHz Dual Core eller motsvarande.

Våg 2010 We re all in!

1. Revisionsinformation

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

SAS Intelligence Architecture. Patrick Eckemo IT Arkitekt / PM Arkitektur SAS Institute

Arkitektur. Den Röda Tråden

Systemkrav. Artvise Kundtjänst

Postbeskrivning Customerjournal_1.0 innehåll

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.7

GMC Software Technology CCM Made Easy

JHS 179 Planering och utveckling av en övergripande arkitektur Bilaga 9. Virtualisering och molntjänster i planering av teknologiarkitektur

Systemvetare, dataekonomer och affärsinformatiker

Innehåll Översikt: Introduktion till SQL Server... 3 Introduktion till plattform för SQL Server... 4 Översikt introduktion till plattform för SQL

Tjänstekontraktsbeskrivning - Terminologitjänsten

När? Varför? För vem? Resultat? (Artefakter?)

Datasäkerhet och integritet

F1 SBS EC Utbildning AB

Introduktion till migrering till molnet

Platsbesök. Systemkrav

Utarbetat av Område Informationsklass. Teknisk standard Ånge Kommun...1. Syfte med beskriven it-miljö...3. Hårdvara...

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

1 Systemkrav avantraupphandling

ADITRO LÖSNINGAR FÖR EN ENKLARE JOBBVARDAG SUMMIT 2014 PER JOHANSSON & JOEL KÖHL ADITRO L FRÅN WINDOWS TILL WEB

Elektronisk handel för alla. Håkan Lundmark

FileMaker Pro 11. Köra FileMaker Pro 11 på Citrix XenApp

VAD GÖR DU / VEM ÄR DU?

Utvärdering Kravspecifikation

A metadata registry for Japanese construction field

Rekommendationer teknisk lösning_samsa_ ver

Testdriven utveckling av Web Services. Ole Matzura

Scala Doc SQL Installation

TMP Consulting - tjänster för företag

Daniel Akenine, Teknikchef, Microsoft Sverige

Introduktion till Entity Framework och LINQ. Källa och läs mer

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

AVCAD 4.0 för Windows

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

Creo Customization. Lars Björs

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.6.0

Remote Access Service

Bilaga 05. Beskrivning av befintlig IT-miljö

Services Digitalize Digitalising the built environment industry with business minded strategies for digital building information and model

Introduktion till molntjänster Tekniken bakom molntjänster och legala utmaningar

Isolda Purchase - EDI

Arkitektur Michael Åhs

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Webbtjänster med API er

Modul 3 Föreläsningsinnehåll

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

Inlämningsuppgift 11e Nätvärksskrivare

FileMaker. Köra FileMaker Pro 10 på Citrix Presentation Server

Big Data i spelbranchen

EVRY One Outsourcing Linköping AB. Erfaranheter av daglig drift och nyttjande av IFS Applications 8.

System arbetssystem informationssystem

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

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

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

Vilket moln passar dig bäst?

DIG IN TO Nätverksadministration

Nilson Group AB. Från informationsförädling till affärsnytta och aktivt styrmedel. CIO Torsten Balslev

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

Retrieve a set of frequently asked questions about digital loans and their answers

Webbtjänster med API er

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.3.1

Ny skalbar och öppen OLAP-teknologi, SAS OLAP server

Transkript:

Enterprise Architecture (EA) FÖ2 1. Historisk utveckling 2. Tjänstekonceptet 3. SOA bakomliggande principer 4. SOA - Metamodell 5. XML 6. Roller 1 Pär Douhan, pdo@du.se

Arkitektur Historisk utveckling 2

Historisk utveckling (Paul Strassmann, 2011) 3

Systemarkitekturer (Paul Strassmann, 2011) Fokus på funktioner Fokus på processer Fokus på samverkan Funktionerna var Enterprise system Samverkan med kunder isolerade från varandra Från beställning till Samverkan med leverantörer Intra-organisatorisk leverans Extern-organisatorisk kontext kontext Inter-organisatorisk Grid computing kontext From systems to services 4

Responstid (Paul Strassmann, 2011) 10 milj. Sekunder = 3,8 månader Det som driver utvecklingen är kortare svarstider och allt större datamängder Detta ställer nya krav på arkitektur Google är redan där! 5

Vad krävs? SOA! Vad är Service Oriented Architecture (SOA)? En metod för design,, produktion och förvaltning av informationssystem (IS): Alla IS utformas som tjänster som är åtkomliga och exekverbara via nätverk Tjänsternas gränssnitt (interface) baseras på publika standarder d för informationsutbyte i 6

SOA = Evolution SOA = Evolution 7

1960 och 70 talet Mainframe Dum Terminal Data Affärslogik (Business rules) Presentation Fördelar Enkelhet! Miljön är känd Man vet hur accessen ser ut Nackdelar Skalbarhet! Om fler användare, Om fler applikationer, Mainframe måste sköta allt 8

1980 talet Mainframe Client/Server Arkitektur PC Data Presentation Affärslogik, T.ex. validering i Fördelar Nackdelar 9 Skalbarhet! Underhåll! Om högre belastning i form av fler användare, så En administratörs mardröm utförs mycket av jobbet av PC-datorerna Uppdatera program på 5000 PC Om fler applikationer, så installeras dessa på Olika OS PC-datorerna Win XP SP1, XP SP4, Win 2000, Win 98

Sent 1990, tidigt 2000 tal N-Tier Arkitektur Databas Applikationsserver Klient med webbläsare Data Applikationer Fördelar Nackdelar Skalbarhet! Komplexitet på app.servern! Klustrade servrar vid hög belastning Var finns modulen som utför kreditkontroll? I Enkelt att underhålla applikationer som bara finns databasen? På app.servern? på app.servern Omöjligt för ett PLSQL bibliotek i en Forms app. Att komma åt en modul skiven i Java på en Linuxserver 10

SOA Tjänstekonceptet 11

Vad är en tjänst? Inom ekonomisk teori är en tjänst en immateriell handelsvara en (säljbar) produkt som produceras för att tillfredsställa ett behov eller ett önskemål (Wikipedia) "A service is a logical representation of a repeatable activity that has a specified outcome. It is self-contained and is a black box to its consumers. (The Open Group) Den utför någon typ av arbete (funktion): Service A Kreditkortskontroll ts o t o Skicka faktura Betala ut lön Köpa biobiljett Räkna ut ränta 12

Använda en tjänst Inom SOA, kan tjänster användas av andra tjänster eller program. Detta kräver att tjänsterna är medvetna om varandras existens Denna medvetenhet uppnås genom användandet av s.k. service descriptions. Service A Service B Service description for service B Eftersom Service A har tillgång till Service B s service description, så har Service A all information som behövs för att kommunicera med Service B. 13

SOA Bakomliggande principer 14

Bakomliggande principer för SOA Service-Orientation Design Principles 1. Loose coupling Tjänster är löst kopplade till varandra Behöver bara veta vad tjänsten heter Vad den gör Hur den anropas Och vad den skickar tillbaka Spelar ingen roll om ett javaprogram på Linux eller en PLSQL procedur i en Oracle databas anropar Vi kan anropa den från ios eller Android Tjänsten är plattforms- och OS- och programoberoende Vi kan alltså skapa tjänster eller web services (webb tjänster) i Java på windows som kan kommunicera med tjänster skapade i C++ på Linux Tidigare var det i princip omöjligt för ett javaprogram som kördes i Linux att kommunicera med ett PLSQL bibliotek i en Oracle Forms applikation 15

Bakomliggande principer för SOA Service-Orientation Design Principles 2. Service contract Tjänsterna följer ett gemensamt avtal Detta avtal finns beskrivet i ett eller flera s.k. tjänstebeskrivningsdokument Kallas Service Level Agreement (SLA) Innehåller WSDL XML schema WS Policy En rad olika dokument som beskriver tjänsten på olika sätt T. ex. 24 x 7 availability 2 sec. response time Intranet access only 100 ms response time Security Functional specifications Exceptions 16

Bakomliggande principer för SOA Servicekontraktet ska gå att läsa av människor Alla tjänster ska ha ett kontrakt som baseras på en fördefinierad mall (template) Innehåller funktionella aspekter T.ex. vad en tjänst gör för någonting Detta måste vara kopplad till ett fördefinierad terminologi. Alla ska veta vad termen kreditkontroll är. Innehåller icke-funktionella aspekter T.ex. QoS Tanken bakom detta är att underlätta återanvändning 17

Bakomliggande principer för SOA Service-Orientation Design Principles 3. Service abstraction Det enda omvärlden känner till om tjänsten är det som finns beskrivet i servicekontraktet Tjänstens logik är inte synlig för omvärlden Ett resultat av den här principen är att konsumenter av tjänster inte vet om tjänsten, som de använder, är stand alone eller komponerad av flera andra tjänster 18

Bakomliggande principer för SOA Service-Orientation Design Principles 4. Service reusability Programfunktioner delas upp i tjänster Avsikten är att understödja återanvändning Within service-orientation reusability represents a core target design characteristic that is tied to the goal of achieving repeated ROI for agnostic services. ( http://www.serviceorientation.com ) agnostic services are not aware of the context in which they are being called, nor are they aware of how the service is implemented, which platform, technology etc. 19

Bakomliggande principer för SOA Service-Orientation Design Principles 5. Service composability Möjligheten att sätta ihop flera tjänster till en sammansatt eller komposit tjänst. Ibland kallas denna komposita tjänst för komponent På detta sätt kan vi lösa stora och komplexa problem genom att låta flera tjänster samarbeta Man kan alltså ge sig på ett stort komplext problem och bryta ner det till mindre hanterbara delproblem Sedan kan man låta tjänster lösa delproblemen 20

Bakomliggande principer för SOA SOA är ett design paradigm med ett tydligt fokus på att bryta ner problem till mindre delproblem Big Problem A Små delproblem representerar kollektivt det stora problemet Small Problem Small Problem Small Problem Small Problem Enheter av solution logic som enskilt löser ett litet problem A B C D 21

Bakomliggande principer för SOA A B D För att lösa Big Problem A, sätter man ihop enheterna enligt en viss specifikation som tillåter enheterna att lösa problemet på ett koordinerat sätt C Orchestration versus Choreography Hands on introduction to BPEL Löser Big Problem A 22

Bakomliggande principer för SOA Service-Orientation Design Principles 6. Service autonomy Tjänsten har kontroll över den logik som den innehåller Detta är viktigt när tjänster ska sättas ihop till sammansatta tjänster 23

Bakomliggande principer för SOA Service-Orientation Design Principles 7. Service statelessness Ibland kan en tjänst behöva information om olika typer av tillstånd T. ex. interaktionsspecifik data, någon fyller i ett webbformulär och skickar iväg innehållet Ett tillstånd kan vara att komma ihåg hur formuläret var ifyllt. State data management consumes system resources 24

Bakomliggande principer för SOA State data is commonly o deferred ed at runtime ut eaow allowinga service to remain active and stateless while other processing occurs. 25

Bakomliggande principer för SOA Service-Orientation Design Principles 8. Service discoverability Explorativ metadata "Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted." 26

SOA Uppbyggnad av en tjänst 27

Uppbyggnad av en tjänst En tjänst består av tre delar: 1. The implementation Tjänsten är utvecklad, testad och driftsatt Konfigurerad infrastruktur 2. The interface Beskriver hur vi anropar tjänsten 3. The contract Beskriver vad tjänsten erbjuder och dess constraints 28

Metafor En användbar metafor för nedbrytandet av en tjänst till föregående tre delar kan vara att likna det vid ett kraftbolag som levererar el till kunder: The implementation är metoderna som används för att generera ström: solkraft, vattenkraft, kärnkraft etc. och elnätet som gör den producerade elen tillgänglig för olika kunder. Konsumenterna behöver inte veta hur elen tillverkas eller var den kommer ifrån. The interface är eluttaget. För att många olika typer av produkter ska kunna anslutas till eluttaget så har en standard upprättats vad gäller strömstyrka och spänning, samt hur eluttagen ser ut. The contract är överenskommelsen att betala ett visst pris för strömförbrukningen vid vissa intervall. Kunden kan förhandla med elbolaget för att få vissa villkor uppfyllda (QoS) allt detta finns då beskrivet i (SLA) 29

SOA - översikt 30

UML - diagram Instansnivå Typnivå 31

Process, tjänst och data Process Processen kopplas till tjänsten Tjänst Tjänsten kopplas till data Data 32

SOA Meta modell 33

SOA Meta Model 34

SOA Logical Model Representerar business objects Kund, order, faktura XML struktur 35

SOA XML 36

XML Egna självstudier efter föreläsningen: http://www.w3schools.com/xml/default.asp http://www.w3schools.com/webservices/default.asp p 37

SQL - Data select persnr,fnamn from bilägare; PERSNR FNAMN ----------- ------------------------- 610213-7485 Jan-Erik 580912-5587 Mbtuu 820101-4589 Arne 911204-5477 arrne 370228-5447 Anna-Lena 451015-5874 Urban 38

SQL -> XML Data <?xml version="1.0"?> <ROWSET> <ROW> <PERSNR>610213-7485</PERSNR> <FNAMN>Jan-Erik</FNAMN> </ROW> <ROW> <PERSNR>580912-5587</PERSNR> <FNAMN>Mbtuu</FNAMN> </ROW> <ROW> <PERSNR>820101-4589</PERSNR> <FNAMN>Arne</FNAMN> </ROW> <ROW> <PERSNR>911204-5477</PERSNR> <FNAMN>arrne</FNAMN> </ROW> <ROW> <PERSNR>370228-5447</PERSNR> <FNAMN>Anna-Lena</FNAMN> </ROW> <ROW> <PERSNR>451015-5874</PERSNR> <FNAMN>Urban</FNAMN> </ROW> </ROWSET> select dbms_xmlgen.getxml( 'select persnr,fnamn from bilägare') from dual; 39

Tabellstruktur -> XML struktur BILÄGARE persnr fnamn <table= bilägare > <columns> <name= persnr /> <datatype= string /> <allownulls= false /> </name> <name= fnamn > <datatype= string /> <allownulls= false /> </name> </columns> </table> 40

XML schema <schema targetnamespace="http://www.oracle.com/po.xsd" xmlns:po="http://www.oracle.com/po.xsd" xmlns="http://www.w3.org/2001/xmlschema"> <complextype name="purchaseordertype"> <sequence> <element name="ponum" type="decimal"/> <element name="company"> <simpletype> <restriction i base="string"> " <maxlength value="100"/> </restriction> </simpletype> </element> <element name="item" " maxoccurs="1000"> <complextype> <sequence> <element name="part"> <simpletype> <restriction base="string"> string <maxlength value="1000"/> </restriction> </simpletype> </element> <element name="price" type="float"/> </sequence> </complextype> </element> </sequence> </complextype> <element name="purchaseorder" type="po:purchaseordertype"/> </schema> 41 Filen PO.xsd beskriver struktur och andra egenskaper för en ikö inköpsorder (PurchaseOrder)

PO.xml godkänd enligt PO.xsd XML-fil innehållande data för en inköpsorder <PurchaseOrder xmlns="http://www http://www.oracle.com/po.xsd com/po xsd" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.oracle.com/po.xsd http://www.oracle.com/po.xsd"> <PONum>1001</PONum> <Company>Oracle Corp</Company> <Item> <Part>9i Doc Set</Part> <Price>2550</Price> </Item> </PurchaseOrder> </schema> Filen valideras mot PO.xsd. Uppfyller den inte kravet på struktur och innehåll går den inte att skicka iväg. 42

XML - SOAP SOAP skickas över HTTP Vi kan skicka med bilagor i SOAP-protokollet Bilder, filmer och dokument 43

Arkitektur Roller 44

Roller 45

ROI 46