Se ha denunciado esta presentación.

Pragmatisk integrasjon - JavaZone 2010

0

Compartir

Próximo SlideShare
Docker for Dummies
Docker for Dummies
Cargando en…3
×
1 de 45
1 de 45

Más Contenido Relacionado

Libros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Pragmatisk integrasjon - JavaZone 2010

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

×