6. EJB som integrasjonsprotokoll 2 deler av ett system 2 app servere i forskjellige soner Kontroll over grensesnitt på begge sider EJB for remote kall
7. EJB som integrasjonsprotokoll Forskjellige versjoner på applikasjonsserverne Dårlig versjonshåndtering RMI implementasjoner Spring med Hessian løste problemet
8. 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
9. 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
10. Eksponere domenet i integrasjon Eksponere domenet Kodegenerering Runtimemapping Mindre kode Raskt oppe
11. Eksponere domenet i integrasjon Får ikke endret domenet Domenet skal representere forretningen Systemet blir en brems
13. Systemutvikling Mange systemer Integrasjon Skrevet i forskjellige språk Forskjellige rammeverk Eies av forskjellige avdelinger Ingen vedlikeholder de
14. 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
15. 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
20. Kontrakt Mellom 2 systemer Protokoll Grensesnitt Datastrukturer Parametere Data Testsuite
21. 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
22. 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
23. Hvis ikke? Spørre alle om de kan oppgradere samtidig Tvinge alle til å oppgradere samtidig Satse på at endringen ikke har noen påvirkning
25. 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
33. Conways lov ..organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.
37. Prosess Hvilke tjenester har vi? Hvem bruker hvilke tjenester? Hvordan brukes tjenester? Hvordan håndterer vi endringer? Break it to fix it
38. Kompleksitet Software gir kompleksitet Rammeverk gir kompleksitet Servere gir mer kompleksitet Protokoll features gir kompleksitet Reduser kompleksitet kontinuerlig
39. 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
40. Husk publicvoidmain Bruke biblioteker Enkel og lesbar kode Inkluder det du trenger Kun JVM satt opp på maskinen Jetty/Servlet? Batch?
41. Hva med resten? Distribuerte transaksjoner Virker ikke Er trege Løsningen Vær klar over at transaksjoner kan feile Idempotens og Recovery Sikkerhet
42. Enkle formater og protokoller WS JSON XML Leselige Hierarkiske Validerbare? Verktøy?
43. 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