Åpen kildekode og enterprise systemer - når det beste i ...

202 views
163 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
202
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Åpen kildekode og enterprise systemer - når det beste i ...

  1. 1. Åpen kildekode og enterprise systemer - når det beste i verden er gratis Proprietary and confidential This material may contain confidential information that is protected under copyright laws where applicable. If you believe you are not the intended audience of this material you must not take part of its content. Any material whitin may not be reproduced, transmitted or shared with other unless this is with the understanding of Conduct AS Olav Hødnebø Conduct AS
  2. 2. Motivasjon <ul><li>Vi har alle et forhold til åpen kildekode </li></ul><ul><ul><li>Emacs </li></ul></ul><ul><ul><li>GNU kompilatorer? Java? </li></ul></ul><ul><ul><li>Netscape? </li></ul></ul><ul><li>Du tenker .... </li></ul><ul><ul><li>Åpen kildekode? Joda, det var noen obliger på Blindern hvor vi brukte det... </li></ul></ul><ul><ul><li>Noe som er gratis kan vel ikke være så bra som <insert your favourite product here> som tross alt koster flesk </li></ul></ul><ul><ul><ul><li>Eller <product> har jo markedsandel på XX% , de er nok best! </li></ul></ul></ul><ul><ul><li>Det finnes jo ingen garantier, ingen support, det er bare et hack... </li></ul></ul><ul><ul><li>Mine operasjoner er veldig viktig. Vi kan ikke risikere noe som er viktig på åpen kildekodeløsningner </li></ul></ul><ul><ul><ul><li>Hvem skal jeg skylde på når alt går galt? </li></ul></ul></ul><ul><li>La oss se på den virkelige verden når det gjelder åpen kildekode </li></ul><ul><li>Men først -> </li></ul>
  3. 3. Om meg <ul><li>Cand. Scient i databehandling fra Ifi. Ferdig 1992 </li></ul><ul><li>Hovedfag innen AI og sannhetsbevarende systemer basert på ikkemonotone logikker </li></ul><ul><li>Drøye 10 års erfaring innen dataindustrien </li></ul><ul><ul><li>Seismikk/navigasjon/GIS/sanntidssystemer </li></ul></ul><ul><ul><li>Konsulentbransjen </li></ul></ul><ul><li>Jobber per idag for Conduct AS </li></ul>
  4. 4. Om Conduct AS <ul><li>Konsulenthus med 8 ansatte med lang erfaring og variert bakgrunn </li></ul><ul><li>Primærmål: levere kostnadseffektive løsninger med høy kvalitet basert på åpen kildekode </li></ul><ul><li>Tjenester </li></ul><ul><ul><li>Programvareutvikling </li></ul></ul><ul><ul><li>Rådgivning og kvalitetssikring </li></ul></ul><ul><ul><li>Prosjektledelse </li></ul></ul><ul><ul><li>Kursing </li></ul></ul><ul><li>Teknologier og fokusområder </li></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>Applikasjonsservere </li></ul></ul><ul><ul><li>Internett </li></ul></ul><ul><ul><li>Integrasjon </li></ul></ul><ul><ul><li>E-læring </li></ul></ul><ul><li>Eneste JBoss partner i Skandinavia </li></ul>
  5. 5. Kunder
  6. 6. Agenda Det er jo dette jeg vil snakke om Open Source on the Enterprise
  7. 7. Agenda Men vi må vite litt om dette også! Open Source on the Enterprise Hva er egentlig Open Source
  8. 8. Agenda Kan jo være litt ullent - dere får min tolkning Open Source on the Enterprise Hva er egentlig Enterprise systemer Hva er egentlig Open Source
  9. 9. Agenda Krav slik jeg ser det Open Source on the Enterprise Hva er egentlig Enterprise systemer Hva er egentlig Open Source Krav til Enterprise systemer
  10. 10. Agenda Vi får se :-) Open Source on the Enterprise Hva er egentlig Enterprise systemer Hva er egentlig Open Source Krav til Enterprise systemer Hvordan løses kravene?
  11. 11. Agenda Fra virkeligheten Open Source on the Enterprise Hva er egentlig Enterprise systemer Hva er egentlig Open Source Krav til Enterprise systemer Hvordan løses kravene? Eksempler
  12. 12. Agenda – en rød tråd Open Source on the Enterprise Hva er egentlig Enterprise systemer Hva er egentlig Open Source Krav til Enterprise systemer Hvordan løses kravene? Eksempler
  13. 13. Open source <ul><li>Open Source </li></ul><ul><ul><li>Hovedaspektet: du kan se kildekoden </li></ul></ul><ul><ul><li>Ikke nødvendigvis gratis </li></ul></ul><ul><li>FOSS – Free and Open Source Software </li></ul><ul><li>Gratis? </li></ul><ul><ul><li>Free as a bird, not as a free lunch </li></ul></ul><ul><ul><ul><li>Frihet som forbruker </li></ul></ul></ul><ul><ul><ul><li>Gratis som oftest ikke det viktigste aspektet </li></ul></ul></ul><ul><ul><ul><ul><li>Kunne verifisere, optimalisere, utvide, tilpasse, bugfikse oftest viktigere </li></ul></ul></ul></ul><ul><li>Ofte utviklet på dugnad over nettet </li></ul><ul><ul><li>Rask sykel for bugfixes og nye versjoner </li></ul></ul><ul><ul><li>Motiverte mennesker gir gode systemer </li></ul></ul><ul><ul><li>'Peer reviews' – høyere kvalitet igjennom 'kritisk' samarbeid </li></ul></ul>
  14. 14. Open Source lisenser <ul><li>GNU GPL – GNU General Public License </li></ul><ul><ul><li>Alle rettigheter til å modifisere, distribuere, selge </li></ul></ul><ul><ul><li>Krever at det du distribuerer følger GNU GPL lisensen </li></ul></ul><ul><li>GNU LGPL – GNU Lesser General Public License </li></ul><ul><ul><li>Som GPL, men ikke krav at det du distribuerer følger noen lisenser </li></ul></ul><ul><li>Andre 'Free Software' lisenser </li></ul><ul><ul><li>BSD license, modified BSD license, X11 license, Sun Public license +++ </li></ul></ul><ul><li>Open source, men ikke 'free software' lisenser </li></ul><ul><ul><li>Apple Public Source License, Sun Community Source License, Microsoft's Shared Source License </li></ul></ul><ul><li>Se http://www.gnu.org/licenses/license-list.html for en grei oversikt </li></ul>
  15. 15. Support og trygghet <ul><li>Forskjellige modeller for de forskjellige prosjektene </li></ul><ul><ul><li>Uformell support </li></ul></ul><ul><ul><ul><li>Nyhetsgrupper, maillister etc </li></ul></ul></ul><ul><ul><ul><li>Ikke garantert hjelp... </li></ul></ul></ul><ul><ul><ul><li>... men du kan jo alltids fikse det selv :-) </li></ul></ul></ul><ul><ul><ul><li>Eller det finnes alltids noen som kan dette bedre enn deg som kan fikse det for penger </li></ul></ul></ul><ul><ul><li>Formell support </li></ul></ul><ul><ul><ul><li>Kommersialisert – det koster penger </li></ul></ul></ul><ul><ul><ul><ul><li>Eksempler: RedHat, Enhydra, JBoss </li></ul></ul></ul></ul><ul><ul><ul><li>'Garantert hjelp' </li></ul></ul></ul>
  16. 16. Noen populære OS prosjekter <ul><li>Linux </li></ul><ul><li>Java – Sun sin referanseimplementasjon er åpen </li></ul><ul><li>Apache – webserver med 60% markedsandel </li></ul><ul><li>Jakarta/Tomcat – JSP og Servlet motor </li></ul><ul><li>Språk – Perl, Python, Eiffel, Tk/Tcl </li></ul><ul><li>Kompilatorer – GNU har en rekke FOSS kompilatorer </li></ul><ul><li>Postgres og MySQL – relasjonsdatabaser </li></ul><ul><li>JBoss, Zope, Enhydra – applikasjonsservere </li></ul><ul><li>Struts, Velocity – rammeverk </li></ul><ul><li>Eclipse – IDE for Java </li></ul>
  17. 17. Enterprise systemer – hva er det? <ul><li>Store, forretningskritiske systemer </li></ul><ul><li>Mange brukere eller store datamengder/mange transaksjoner </li></ul><ul><li>Ofte dyrt for bedriften hvis systemet feiler </li></ul><ul><li>Store krav </li></ul><ul><ul><ul><li>Oppetid </li></ul></ul></ul><ul><ul><ul><li>Redundans (failover) </li></ul></ul></ul><ul><ul><ul><li>Skalerbarhet (clustering, load-balancing) </li></ul></ul></ul><ul><ul><ul><li>Sikkerhet </li></ul></ul></ul><ul><ul><ul><li>Transaksjonsorientert </li></ul></ul></ul><ul><ul><ul><li>Integrasjon </li></ul></ul></ul><ul><ul><ul><ul><li>Backend systemer </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Web services </li></ul></ul></ul></ul><ul><ul><ul><li>Komponentbasert </li></ul></ul></ul><ul><ul><ul><li>Management (monitorering, hot deployment) </li></ul></ul></ul><ul><ul><ul><li>Mange typer klienter (web, tykke klienter, WAP, PDA ...) </li></ul></ul></ul>
  18. 18. Enterprise systemer - to typer <ul><li>Domenespesifike systemer </li></ul><ul><ul><li>Laget for å dekke et gitt behov </li></ul></ul><ul><ul><ul><li>ERP, SFA, CRM, EAI, HR, SCM, Finance, Commerce </li></ul></ul></ul><ul><ul><li>Mange ferdige komponenter </li></ul></ul><ul><ul><li>Mulig å tilpasse/utvikle </li></ul></ul><ul><ul><li>Eksempler </li></ul></ul><ul><ul><ul><li>SAP, Peoplesoft, Oracle {CRM, ERP++}, BAAN </li></ul></ul></ul><ul><ul><li>Ofte ekstremt kostbare </li></ul></ul><ul><li>Generiske utviklingssystemer/mellomvareløsninger/plattformer </li></ul><ul><ul><li>Rene programmeringsspråk </li></ul></ul><ul><ul><li>Komponentmodeller/rammeverk finnes </li></ul></ul><ul><ul><li>Eksempler </li></ul></ul><ul><ul><ul><li>Java2 Enterprise Edition </li></ul></ul></ul><ul><ul><ul><li>M$.NET </li></ul></ul></ul><ul><ul><ul><li>CORBA Component Model </li></ul></ul></ul>
  19. 19. FOSS for enterpriseløsninger <ul><li>Applikasjonsservere – hva er det? </li></ul><ul><ul><li>An application server serves business logic to application programs through a number of protocols – JavaWorld.com </li></ul></ul><ul><ul><li>Skal gi deg infrastruktur så du kan fokusere på forretningslogikk </li></ul></ul><ul><li>Noen eksisterende FOSS applikasjonsservere </li></ul><ul><ul><li>JBoss – støtter J2EE </li></ul></ul><ul><ul><li>Zope – skrevet i Python, web/contentsentrisk </li></ul></ul><ul><ul><li>Enhydra – servlet/XML engine med mye infrastrukturstøtte </li></ul></ul><ul><li>En applikasjonsserver løser (noen av) kravene til Enterprise Systemer </li></ul><ul><ul><li>Oppetid og skalering </li></ul></ul><ul><ul><ul><li>Clustering – flere maskiner deler oppgaven </li></ul></ul></ul><ul><ul><ul><li>Failover – en maskin overtar en annens transasksjoner hvis den feiler </li></ul></ul></ul><ul><ul><ul><li>Databasepooling, caching, object life-cycle modeller (object pooling) </li></ul></ul></ul><ul><ul><li>Transactions – forskjellige transasksjonsmodeller blir støttet </li></ul></ul><ul><ul><li>Sikkerhet </li></ul></ul><ul><ul><ul><li>Protokoller: HTTPS </li></ul></ul></ul><ul><ul><ul><li>Rammeverk: Deklarative sikkerhetsmodeller for applikasjonen </li></ul></ul></ul><ul><ul><li>Integrasjon – JCA, Web Services (Axis) </li></ul></ul>
  20. 20. JBoss <ul><li>Eksistert siden 1999 </li></ul><ul><li>LGPL lisens – OK å bruke i kommersielle sammenhenger </li></ul><ul><li>Støtter J2EE 1.3, EJB 2.0, Servlets/JSP 2.3, JDBC 2.0, JCA 1.0, JMX ++ </li></ul><ul><li>Støtter CMP og CMR (automatisk håndering av persistente data) </li></ul><ul><li>Støtter Java Authentication and Authorization Service (JAAS) </li></ul><ul><li>Støtter clustering og failover </li></ul><ul><li>Hot deployment av tjenester </li></ul><ul><ul><li>Veldig rask utviklingssykel grunnet 'dynamic proxies' </li></ul></ul><ul><li>Veldig konfigurerbar og utvidbar </li></ul><ul><ul><li>Komponentene settes sammen av JMX (Java Management Extensions) </li></ul></ul><ul><ul><li>Kan boote over nett </li></ul></ul><ul><li>Mikrokjerne design (kan bli mindre enn 7kb) </li></ul><ul><li>Mer enn 100.000 nedlastninger i måneden (for tiden 250.000 i mnd) </li></ul><ul><li>Valgt som beste applikasjonsserver av JavaWorld i 2002 </li></ul><ul><li>Neste versjon (4.0 – høsten 2003) bygget rundt Aspect Orientet Programming </li></ul><ul><ul><li>Instrumenter alle dine objekter 'on-the-fly' </li></ul></ul>
  21. 21. Eksempler på bruk av JBoss <ul><li>Dow Jones Indexes </li></ul><ul><li>Mercant tech (2.000.000 transaksjoner per dag) </li></ul><ul><li>American Megatrends (AMI) </li></ul><ul><li>Dresdner Bank </li></ul><ul><li>United States Dept of Labor </li></ul><ul><li>Argentine IRS and stock market </li></ul><ul><li>Playboy </li></ul><ul><li>Siemens – HR tjenester for sine 70000 ansatte </li></ul><ul><li>Posten handel kjører 155 installasjoner </li></ul><ul><li>Gyldendal </li></ul><ul><li>Aftenposten </li></ul><ul><li>Statoil </li></ul><ul><li>Norwegian – flyselskapet </li></ul>
  22. 22. Rammeverk og verktøy <ul><li>Xdoclet </li></ul><ul><ul><li>Genererer kode og descriptorer (XML filer) basert på 'tags' i koden </li></ul></ul><ul><ul><li>Automatiserer veldig mye av prosessen med utvikling av EJB løsninger </li></ul></ul><ul><ul><li>EJB Home/Remote/Local objekter, descriptorer, findere, dataobjekter, fasader, primary key klasser, ++ </li></ul></ul>
  23. 23. Rammeverk og verktøy 2 <ul><li>Webwork </li></ul><ul><ul><li>Deklarativ arbeidsflyt </li></ul></ul><ul><ul><li>Støtter 'Model-View-Controller' paradigmet </li></ul></ul><ul><ul><li>Tagbibliotek for å forenkle utvikling av View-komponenten </li></ul></ul><ul><ul><ul><li>Internasjonalisering (i18n) </li></ul></ul></ul><ul><ul><ul><li>Skjemavalideringer </li></ul></ul></ul><ul><ul><ul><li>Tester, iteratorer, hjelpeklasser (formatteringsobjekter) ++ </li></ul></ul></ul><ul><ul><li>Støtter mange teknologier som JSP, Struts, Velocity ++ </li></ul></ul><ul><li>Ant </li></ul><ul><ul><li>Automatiserer byggeprosessen (en mye bedre make) </li></ul></ul><ul><li>JUnit </li></ul><ul><ul><li>Rammeverk for 'automatisk' testing </li></ul></ul><ul><li>Log4J </li></ul><ul><ul><li>Veldig fleksibel loggepakke fra Apache-prosjektet </li></ul></ul>
  24. 24. Norwegian – et case studie <ul><li>Motivasjon </li></ul><ul><ul><li>Skulle overraske markedet ved å komme raskt i gang </li></ul></ul><ul><ul><li>Trengte en løsning for billetthåndtering og billettløse reiser på kort tid </li></ul></ul><ul><ul><li>Kostnadsbeviste – ikke særlig lystne på å bruke hundretusner i lisenser </li></ul></ul><ul><li>Store krav til rask og fleksibel programvareutvikling </li></ul><ul><ul><li>Norwegian trengte systemet på 3 måneders varsel </li></ul></ul><ul><ul><li>Norwegian var ikke ferdig med å definere sine operasjonelle variable </li></ul></ul><ul><ul><li>Endringsønsker med korte tidsfrister </li></ul></ul><ul><li>Prosess </li></ul><ul><ul><li>Lettvekts prosess med korte iterasjoner </li></ul></ul><ul><ul><li>Få, kompetente utvikelere </li></ul></ul><ul><ul><li>Effektive verktøy </li></ul></ul><ul><ul><li>... gir rask systemutvikling og fleksible løsninger </li></ul></ul>
  25. 25. Norwegian – løsningen <ul><li>Kjører hele sin 'backoffice' løsning på et lite cluster (2 maskiner x 2 cpuer) </li></ul><ul><li>Håndterer all informasjon om </li></ul><ul><ul><li>Bookinger (Amadeus gjør selve bookingen) </li></ul></ul><ul><ul><li>Hvilke reiser som faktisk er foretatt </li></ul></ul><ul><ul><li>Billettløse reiser </li></ul></ul><ul><ul><li>Kundekort og avtaler </li></ul></ul><ul><ul><li>Fakturering og debitering </li></ul></ul><ul><ul><li>Rapportering </li></ul></ul>

×