500 likes | 685 Views
ITU Introduktion til Service Orienteret Arkitektur København den 9. februar 2009 Version: 1.0 Forfatter: Jack Ekman manager jae@netcompany.com. Agenda. Introduktion til SOA. Personlig præsentation Hvad er Service Orienteret Arkitektur? Hvad er en service?
E N D
ITU Introduktion til Service Orienteret Arkitektur København den 9. februar 2009 Version: 1.0 Forfatter: Jack Ekman manager jae@netcompany.com
Agenda Introduktion til SOA Personlig præsentation Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Agenda Introduktion til SOA Personlig præsentation Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Personlig introduktion • Jack Kaare Ekman • Fokusområder • Enterprise Arkitektur (EA), Service Orienteret Arkitektur(SOA) • Procesanalyse og optimering • Kort CV • Manager i Netcompany de seneste 2004-idag • Cand.IT i softwareudvikling I 2002 • Ha.Dat i 1999
Agenda Introduktion til SOA Personlig præsentation Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Introduktion til SOA • Hvad er Service Orienteret Arkitektur(SOA)? • Hvordan ser verden ud uden SOA? • Hvordan ser verden ud med SOA og en Enterprise Service Bus?
Direkte integration 1/4 B A • Applikationerne skal være enige om • Protokol • Besked format (xml, flad fil, binært etc.) • Hvordan de skal finde hinanden
A C B Direkte integration 2/4
A D C B Direkte integration 3/4
A D C B Direkte integration 4/4 UPIC JMS HTTP FTP SOAP FTP
Direkte integration – AS IS arkitektur hos Forca • Komplekst integrations-landskab med op mod 100 direkte ”point-to-point” integrationer • Dette gør tilpasning af forretningsprocesser tungt og krævende
Direkte integration – AS IS arkitektur hos Forca • Komplekst integrations-landskab med op mod 100 direkte ”point-to-point” integrationer • Dette gør tilpasning af forretningsprocesser tungt og krævende Spaghettiarkitektur
SOA med brug af en Enterprise Service Bus (ESB) Portal Dirs/Kurs • Fordele • Applikationer bruger en adapter til at kommunikere • Fleksibilitet via adapters • Let at tilføje nye applikationer • Løs kobling mellem systemer • Kompliksitet (Routing + datamapping) ligger i ESBen • Integration baseres i vid udstrækning på standard dataformater (XML) • Baseret på ”Mediator” design mønstret fra Gang of Four bogen Intra-net Adapter Adapter Adapter ESB Adapter Adapter Adapter NMS Navnesystem Omega
SOA med brug af en Enterprise Service Bus Portal Dirs/Kurs • Fordele • Applikationer bruger en adapter til at kommunikere • Fleksibilitet via adapters • Let at tilføje nye applikationer • Løs kobling mellem systemer • Kompliksitet (Routing + datamapping) ligger i ESBen • Integration baseres I vid udstrækning på standard dataformater (XML) • Baseret på ”Mediator” design mønstret fra Gang of Four bogen Intra-net Adapter Adapter Adapter ESB Adapter Adapter Adapter NMS Navnesystem Omega
Kommunikation mellem to applikationer gennem ESB’en XML Format a XML Format b Enterprise Service Bus Portal Transformation Format A => Format B NMS Adapter Adapter Routing Routing
Opsamling: Hvad er Service Orienteret Arkitektur? • Service orienteret arkitektur er et arkitekturmønster, der giver mulighed for at opbygge en mere løstkoblet og fleksibel IT arkitektur i en organisation • Karakteriske træk ved SOA • Løst koblede applikationer, der giver fleksibilitet til at tilføje eller fjerne applikationer • Baseret på standardiserede interfaces (adaptere) • Simplificere kommunikationsmodellen for hver applikation (de skal kun kommunikere med deres lokale adapter) • Gør ofte brug af en konceptual data model (domænemodel) baseret på XML / XSD
Agenda Introduktion til SOA Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Hvad er en “Service”? • Eksempler fra den virkelige verden • En ”Check mine tænder” tandlæge service • En ”skift olie på min bil” service hos mekanikeren • En ”opret bankkonto” service i bankenHvis man følger den generelle SOA notation, vil services se sådan ud [Service].[Operation] Tandlæge.CheckMineTænder Mekaniker.SkiftOlie Bank.OpretKonto
Hvad er en “Service” i SOA kontekst? • En service.operation et program, som man interagere med via beskeder. Service.operation’en stiller en del af forretningslogikken i en applikation til rådighed for omverdenen • Forretningsdomænet er beskrevet i en domæne model • Services bliver navngivet udfra domæne model for at gøre det nemmere at finde og genbruge dem • Example: - [Bidrag].[Medlemmer.FindTilhoersforhold]- [Oekonomi].[Begivenheder.HentKontoposter]
Hvad er en domænemodel? Hvad er en domænemodel?
Hvad er en “Service” i SOA kontekst? Obs! En service stiller aldrig en del af en applikations datamodel direkte til rådighed! Services går gennem forretningslogikken
Service karakteristikker 1/2 • Services er genbrugelige(En service kan genbruges af flere systemer) • Services deler en formel kontrakt(Defineret i service beskrivelsen, dataformatbeskrivelse/XSD og en datamapping) • Services er løst koblede • Services er en abstraktion på underliggende logik(Man vil ikke vide detaljerne om, hvad der skal til at oprette en bankkonto) • Services kan sammensættes til nye services (Mekanikerens “Skift olie” indgår i “Samlet servicecheck”)
Service karakteristikker 2/2 • Services er direkte relateret til forretningen(F.eks. De fleste services udvikles som svar på et specifikt forretningsbehov) • Services kan opdages(F.eks. gennem et service respository) • Services er autonome(De afhænger ikke af, hvilken kontekst de bliver brugt i) • Services er tilstandsløse(Systemer persisterer data. Services tilgår data gennem forretningslogik)
Basiselementer i SOA på design tidspunktet Service repository 1. Find services 3. Offentliggør services 2. design Samarbejde Samarbejde Service bruger Service beskrivelse og datatransfomation Service udbyder Format b Format a
ESB Transformation Format A => Format B Routing Routing Basiselementer i SOA ved run time Bruger Udbyder Service Bruger Service Udbyder Format b Format a
Agenda Introduktion til SOA Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Begrebsdefinition – Business Process Management Definition - BPM: BPM defineret som systemer, der koordinere afvikling af arbejdsprocesser. Arbejdsprocesserne går typisk på tværs af roller og applikationer i en organisation.
Eksempel uden BPM: “Hent liste over kontrakter” implementeret uden BPM Portal Ny Portal Omega NMS Navnesystemet
Eksempel med BPM: “Hent liste over kontrakter” implementeret med BPM • Fordele: • Genbrug af proceslogik gør det nemmere at tilføje nye service brugere • Genbrug reducere udviklingstid og ressourcer • Processer kan måles og overvåges i Biztalk og dermed give data til procesoptimering Portal Ny Portal BPM server Omega NMS Navne- systemet
Agenda Introduktion til SOA Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Hvad er en forretningsproces 1/2? • ”En forretningsproces er en samling af relaterede opgaver, der skal løses i en bestemt rækkefølge for at opnå et et bestemt forretningsmål.“ • Den har et navn, der klart indikere, hvad der sker i processen? • Den har klare præ- og post konditioner • Den har et klart defineret slutresultat. • Eksempler: • Opret ny kunde • Opret ordre
Hvad er en forretningsproces? Titel, der angiver formålet med processen Start hændelse Roller eller systemer Tidslinie Tiden går fra venstre mod højre
Kombinationen af forretning og teknik: Identifikation af services og BPM logik Service BPM Logik
Edlund Omega NMS IMO RIF BIKS Simcorp Hvordan det hele hænger sammen Det store overblik: Hvad vi gør og hvordan vi gør det – fra procesarkitektur til proces-diagrammer, aktivitets-diagrammer og usecases A2 X A1 Fx Forretningsprocesser GO V1 In A3 Den information, der behandles i organisationen Information De applikationer, der bruges til at behandle informationen Applikationer Den infrastruktur, der understøtter applikationerne TAPE SAN TAPE Infrastruktur SAN DB DB
Agenda Orienteret introduktion til SOA Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Drives SOA som TOP-DOWN eller BOTTOM-UP? Det afhænger, hvor drivet kommer fra? Hvem har mest ud af et SOA initiativ og dermed det største drive for at gennemføre det? I Forca er det både TOP-DOWN proces orienteret og BOTTOM-UP pga. behov for at forenkle IT arkitektureren
SOA implementeringsmantraet • Start småt • Proof-of-concepts, der skaber værdi • Tænkt stort • Hvor skal vi være om 1 år. Hvad forudsætter det? • Skab hurtig udvikling • Og dermed hurtig forretningsværdi
Hvordan implementeres SOA - helikopteroverblikket Trin 1: Forstå SOA og BPM koncepterne Trin 2: SOA/BPM Pilotprojekt SOA Governance Trin 3: Andet og tredje SOA/BPM projekt Trin 4: Anvend SOA som generel strategi
Agenda Orienteret introduktion til SOA Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Forretningsfordele ved anvendelse af SOA og BPM/Orkestrering • Kort sigt • Genbrug af eksisterende systemer som services • Klarlægning af eksisterende integrationer som services • Måling gennem Business Activity Monitoring (BAM), og dermed skabelse af datagrundlag til proces optimering (2.) • Mellem sigt • Byg genbrugelige services, der kan sættes sammen til nye services. Derved sænkes udviklingstid og omkostninger. • Optimering og strømligning af forretningsprocesser (1.) • Langt sigt • Forbedre virksomhedens omstillingsevne ved at skabe en fleksibel IT architektur • Kontinuert optimering af forretningsprocesser (3.)
Agenda Orienteret introduktion til SOA Hvad er Service Orienteret Arkitektur? Hvad er en service? Hvad er Business Process Management? Hvad er en forretningsproces? Hvordan ser den overordnede SOA implementeringsproces ud Hvilke fordele opnår man med SOA? Hvile nye udfordringer får man med SOA?
Kendte SOA udfordringer 1/2 • SOA og procesorientering er nye paradigmer. Der er vigtigt at introducere SOA som begreb til hele organisationen • SOA kræver involvering af både forretningssiden og den tekniske side. • SOA projekter kræver koordination af flere interessenter. Kommunikation er koordination er særdeles vigtig • Test af en SOA løsning er mere kompleks (pga. af flere interessenter og flere lag i arkitektureren), end test af en almindelig applikation • SOA skaber behov for konsekvensanalyser i forbindelse med ændringer af processer, applikationer, domænemodel og services.
Kendte SOA udfordringer 2/2 • Organisatorisk ejerskab af forretningsprocesser, services og BPM processer er vigtig at få fastlagt • Det er særdeles vigtigt tidligt i forløbet at få lavet et Service Repository der kan bruges til at understøtte SOA lifecyclus governance • Det anbefales at anvende en fælles domænemodel • Det anbefales at have en intern SOA arkitekturfunktion der har nok gennemslagskraft til at træffe vigtige beslutninger