SlideShare a Scribd company logo
1 of 45
Pragmatisk Integrasjon Anders Sveen JavaZone 2010
Anders Teknologileder, Java Programmerer Smidig konferansen NTNU, Ciber, BBS
ToC Eksempler Teorien Whatnow?
Endring Endring er bra! Endring skjer hele tiden Endring skal være enkelt Leve med systemer på lang sikt Integrasjon er alt for ofte i veien
Eksempler The stuffyouremember
EJB som integrasjonsprotokoll 2 deler av ett system 2 app servere i forskjellige soner Kontroll over grensesnitt på begge sider EJB for remote kall
EJB som integrasjonsprotokoll Forskjellige versjoner på applikasjonsserverne Dårlig versjonshåndtering RMI implementasjoner Spring med Hessian løste problemet
Remoting for å skape løs kobling 2 deler av ett system Samme domenet for alle praktiske formål Web er hovedklienten og driver backend Vil det alltid være det? Så kan man redeployefrontend uten å ta ned backend
Remoting for å skape løs kobling  Endringer i den ene fører nesten alltid med seg endringer i den andre Annen tankegang rundt tjenestekall Ikke logikk i domeneobjektene DTO for transport = tilnærmet duplisering av domenet
Eksponere domenet i integrasjon Eksponere domenet Kodegenerering Runtimemapping Mindre kode Raskt oppe
Eksponere domenet i integrasjon Får ikke endret domenet Domenet skal representere forretningen Systemet blir en brems
Entrerprice En helt vanlig bedrift
Systemutvikling Mange systemer Integrasjon Skrevet i forskjellige språk Forskjellige rammeverk Eies av forskjellige avdelinger Ingen vedlikeholder de
Kaosteori Nytt system Brukerprofilen ligger i et annet system Det eksisterer en tjeneste for å hente ut denne Det mangler felt, mellomnavn Ikke tid Noen får klemt det inn Oppdatert tjeneste legges ut
I prod Noen andre får lagt til mellomnavn også i fornavn feltet Du viser plutselig mellomnavnet 2 ganger Du må gjøre en endring Du har ikke tid Noen får skviset det inn
Integrasjon Som regel ikke teknologi som setter grenser Rutiner og kontroll
Integrasjon koster Ekstra koordinering Ytelse Kompetanse Deployment
Verdi av integrasjon Uavhengighet Oppdeling av arbeid Gjenbruk av systemer Sentralisering av regler Verdien avhenger av designet
Grensesnitt og kontrakter Din avtale med omverdenen
Kontrakt Mellom 2 systemer Protokoll Grensesnitt Datastrukturer Parametere Data Testsuite
Endre kontrakter Nye behov Nye systemer Hold kontrakten stabil Ny versjon av kontrakten Kvitt deg med gammel versjon Gir tid til å migrere til ny versjon
End of service 3 versjoner støttes Nummer 3 drepes etter 6 måneder Forutsetter  Kontroll over integrasjonspartnere Endrings-vilje og -dyktighet Ofte ingen til å gjøre endringen
Hvis ikke? Spørre alle om de kan oppgradere samtidig Tvinge alle til å oppgradere samtidig Satse på at endringen ikke har noen påvirkning
Avhengigheter Å finne de riktige tjenestene
Løs kopling The holygrail En endring i en komponent påvirker ikke en annen komponent Mange små moduler skal gi løs kopling Remoting gir løs kobling
Delte datamodeller gir kopling
Sterk kopling
Løsere
Løsest
Views Avhengighets view Andre Nettverk Deployment Drift Logiske moduler TOGAF lister 30 views
Systemskiller Setting av grenser
Systemskiller oppstår Forskjellige prioriteringer Kompetanse Innkjøp Teknologi Politikk
Conways lov ..organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.
Slå sammen systemer!
Færre system Mindre administrasjon Mer gjenbruk Færre team Endringsdyktig organisasjon Kontinuerlig fokus!
Keep it simple stupid Nowwhat?
Prosess Hvilke tjenester har vi? Hvem bruker hvilke tjenester? Hvordan brukes tjenester? Hvordan håndterer vi endringer? Break it to fix it
Kompleksitet Software gir kompleksitet Rammeverk gir kompleksitet Servere gir mer kompleksitet Protokoll features gir kompleksitet Reduser kompleksitet kontinuerlig
Integrasjonsserver Opplæring av drift Vent på oppsett av miljø Lokal installasjon og oppsett Utvikling og testing Eget utviklingsverktøy? XML programmering? Ekstra nettverkskall Avhengigheten er mellom systemene
Husk publicvoidmain Bruke biblioteker Enkel og lesbar kode Inkluder det du trenger Kun JVM satt opp på maskinen Jetty/Servlet? Batch?
Hva med resten? Distribuerte transaksjoner Virker ikke Er trege Løsningen Vær klar over at transaksjoner kan feile Idempotens og Recovery Sikkerhet
Enkle formater og protokoller WS JSON XML Leselige Hierarkiske Validerbare? Verktøy?
Integrasjon Krever rutine, kontroll og langsiktighet Handler mer om prosess enn om teknologi Bruk enkle verktøy Design og systemskiller Reduser kompleksitet Langsiktighet og endring
http://smidig2010.no anders.sveen@capgemini.com / http://blog.f12.no / @anderssv
Spørsmål? anders.sveen@capgemini.com / http://blog.f12.no / @anderssv

More Related Content

Similar to Pragmatisk integrasjon - JavaZone 2010

Splitt og hersk: Fleksibel arkitektur med mikrotjenester!
Splitt og hersk: Fleksibel arkitektur med mikrotjenester!Splitt og hersk: Fleksibel arkitektur med mikrotjenester!
Splitt og hersk: Fleksibel arkitektur med mikrotjenester!Henrik Schwarz
 
Distribuert utvikling på net platformen
Distribuert utvikling på net platformenDistribuert utvikling på net platformen
Distribuert utvikling på net platformenRune Sundling
 
Enkelhet, testbarhet og skalerbarhet med grid bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid   bakgrunnEnkelhet, testbarhet og skalerbarhet med grid   bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid bakgrunnTormod Varhaugvik
 
Hva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, TrondheimHva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, TrondheimEspen Johanson
 
Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?mudnaes
 
Ikke-teknisk gjennomgang av grensesnitt for digital eksamen
Ikke-teknisk gjennomgang av grensesnitt for digital eksamenIkke-teknisk gjennomgang av grensesnitt for digital eksamen
Ikke-teknisk gjennomgang av grensesnitt for digital eksamenIngrid Melve
 

Similar to Pragmatisk integrasjon - JavaZone 2010 (7)

Splitt og hersk: Fleksibel arkitektur med mikrotjenester!
Splitt og hersk: Fleksibel arkitektur med mikrotjenester!Splitt og hersk: Fleksibel arkitektur med mikrotjenester!
Splitt og hersk: Fleksibel arkitektur med mikrotjenester!
 
Distribuert utvikling på net platformen
Distribuert utvikling på net platformenDistribuert utvikling på net platformen
Distribuert utvikling på net platformen
 
Hl7 i norsk helsesektor
Hl7 i norsk helsesektorHl7 i norsk helsesektor
Hl7 i norsk helsesektor
 
Enkelhet, testbarhet og skalerbarhet med grid bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid   bakgrunnEnkelhet, testbarhet og skalerbarhet med grid   bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid bakgrunn
 
Hva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, TrondheimHva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
 
Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?
 
Ikke-teknisk gjennomgang av grensesnitt for digital eksamen
Ikke-teknisk gjennomgang av grensesnitt for digital eksamenIkke-teknisk gjennomgang av grensesnitt for digital eksamen
Ikke-teknisk gjennomgang av grensesnitt for digital eksamen
 

More from Anders Sveen

So you think you can change? - JavaZone 2010
So you think you can change? - JavaZone 2010So you think you can change? - JavaZone 2010
So you think you can change? - JavaZone 2010Anders Sveen
 
So you think you can change? - XP2010
So you think you can change? - XP2010So you think you can change? - XP2010
So you think you can change? - XP2010Anders Sveen
 
Prove it, ship it! - XP2010 Lightning talk
Prove it, ship it! - XP2010 Lightning talkProve it, ship it! - XP2010 Lightning talk
Prove it, ship it! - XP2010 Lightning talkAnders Sveen
 
Automatisert Testing
Automatisert TestingAutomatisert Testing
Automatisert TestingAnders Sveen
 

More from Anders Sveen (6)

Heroku for Java
Heroku for JavaHeroku for Java
Heroku for Java
 
So you think you can change? - JavaZone 2010
So you think you can change? - JavaZone 2010So you think you can change? - JavaZone 2010
So you think you can change? - JavaZone 2010
 
So you think you can change? - XP2010
So you think you can change? - XP2010So you think you can change? - XP2010
So you think you can change? - XP2010
 
Prove it, ship it! - XP2010 Lightning talk
Prove it, ship it! - XP2010 Lightning talkProve it, ship it! - XP2010 Lightning talk
Prove it, ship it! - XP2010 Lightning talk
 
Automatisert Testing
Automatisert TestingAutomatisert Testing
Automatisert Testing
 
Smidig Utrulling
Smidig UtrullingSmidig Utrulling
Smidig Utrulling
 

Pragmatisk integrasjon - JavaZone 2010