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