java teknologi teknikker Økosystem
DESCRIPTION
Java Teknologi Teknikker Økosystem. Johannes Brodwall [email protected]. Hvem er jeg?. Johannes Brodwall. Resident Java Expert, BBS. Organizer, Oslo XP Meetup. http://xp.meetup.com/13/. Rådgiver; Java, arkitektur og smidige prosesser. http://brodwall.com/johannes/blog/. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/2.jpg)
Hvem er jeg?
![Page 3: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/3.jpg)
Johannes Brodwall
![Page 4: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/4.jpg)
Resident Java Expert, BBS
![Page 5: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/5.jpg)
Organizer, Oslo XP Meetup
http://xp.meetup.com/13/
![Page 6: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/6.jpg)
Rådgiver; Java, arkitektur og smidige prosesser
http://brodwall.com/johannes/blog/
![Page 7: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/7.jpg)
(I motsetning til visse andre...)
![Page 8: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/8.jpg)
Har ingen kake å mele
![Page 9: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/9.jpg)
”Hva kan vi forvente når vi jobber med Java?”
![Page 10: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/10.jpg)
(0)
![Page 11: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/11.jpg)
Hva er Java?
![Page 12: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/12.jpg)
Java er ikke et
programmeringsspråk
![Page 13: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/13.jpg)
Java er ikke en teknologi
![Page 14: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/14.jpg)
Bibliotek
Språk
Open Source
Standarder
Kunnskap
Community
Teknikker
VerktøyEclipse
IntelliJ
Ant
Maven
NetBeans
SpringTomcat
JCP
Apache
Codehaus
Enhetstest
Continuous Integration
Java EE
MVC
Defacto standarder
XML
EJBServlets
JVM
![Page 15: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/15.jpg)
Java er et økosystem
![Page 16: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/16.jpg)
Bibliotek
Språk
Open Source
Standarder
Kunnskap
Community
Teknikker
VerktøyEclipse
IntelliJ
Ant
Maven
NetBeans
SpringTomcat
JCP
Apache
Codehaus
Enhetstest
Continuous Integration
Java EE
MVC
Defacto standarder
XML
EJBServlets
JVM
![Page 17: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/17.jpg)
(1)
![Page 18: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/18.jpg)
Historien om Java
http://brodwall.com/johannes/brief-java-history
![Page 19: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/19.jpg)
![Page 20: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/20.jpg)
![Page 21: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/21.jpg)
![Page 22: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/22.jpg)
![Page 23: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/23.jpg)
Stille sjø?
![Page 24: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/24.jpg)
(2)
![Page 25: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/25.jpg)
|
Java Enterprise Edition
![Page 26: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/26.jpg)
Java EE
![Page 27: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/27.jpg)
Tidligere J2EE
![Page 28: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/28.jpg)
(Ikke JEE)
![Page 29: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/29.jpg)
Mål: Løs 90 %
![Page 30: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/30.jpg)
Model-View-Controller
![Page 31: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/31.jpg)
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
1. Request
2. Update state
3. Retrieve state
4. Display state
5. Response(HTML)
Thin Client
![Page 32: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/32.jpg)
Java EE teknologiene
![Page 33: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/33.jpg)
ServletsServlets JSPJSP
Session BeansSession Beans
Entity BeansEntity Beans
JDBC
Enterprise Java BeansEnterprise
Java Beans
”Web Tier””Web Tier”
![Page 34: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/34.jpg)
Men det ble veldig komplekst
JTA
EJB
RMI-IIOP
JMS
Two-phase commit
Entity Beans
RMIJCAWAR
EAR
Stateless session beans
Stateful session beans
Message driven beans
Java Server Pages
Servlets
![Page 35: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/35.jpg)
Overambisøs teknologi
![Page 36: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/36.jpg)
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
PersistensPersistens
Database
![Page 37: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/37.jpg)
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
![Page 38: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/38.jpg)
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
Rich Client
RMI
![Page 39: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/39.jpg)
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database Mainframe
AdapterAdapter
![Page 40: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/40.jpg)
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
KøEksterntsystem
![Page 41: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/41.jpg)
Klønete teknologi
![Page 42: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/42.jpg)
EAREAR
WARWAR
jarjar
ejb-jarejb-jar
Application server
jspjsp
jarjar jarjar
WARWAR
jarjar
jspjsp
jarjar jarjar
ejb-jarejb-jar jarjar jarjar
application.xmlapplication.xml
web.xmlweb.xml
ejb-jar.xmlejb-jar.xml
1. Edit(usually by hand)
2. Package(Typically Ant)
3. Deploy(Typically via GUI-tool)
4. Test (usually randomclicking around)
![Page 43: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/43.jpg)
(3)
![Page 44: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/44.jpg)
Testing
![Page 45: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/45.jpg)
Automatisert Testing
![Page 46: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/46.jpg)
To formål
![Page 47: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/47.jpg)
Kostnad for å innføre ny funksjonalitet
![Page 48: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/48.jpg)
Kostnad for å unngå feil i ting som virket
![Page 49: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/49.jpg)
(Dvs. regresjonsfeil)
![Page 50: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/50.jpg)
Tre egenskaper
![Page 51: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/51.jpg)
Dekningsgrad
![Page 52: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/52.jpg)
(sjansen for at feil oppdages)
![Page 53: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/53.jpg)
Robusthet
![Page 54: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/54.jpg)
(sjansen for at korrekt endring får en test til å feile)
![Page 55: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/55.jpg)
Testtid
![Page 56: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/56.jpg)
(tid for å sjekke en endring)
![Page 57: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/57.jpg)
Må understøttes av teknologi
![Page 58: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/58.jpg)
(4)
![Page 59: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/59.jpg)
Java i dag
http://brodwall.com/johannes/maven-app-server
![Page 60: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/60.jpg)
Open Source
![Page 61: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/61.jpg)
Samme modell
![Page 62: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/62.jpg)
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
![Page 63: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/63.jpg)
Enklere teknologier
![Page 64: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/64.jpg)
Spring-MVCSpring-MVC FreeMarkerFreeMarker
SpringSpring
HibernateHibernate
(JDBC)
TopLinkTopLink
SeamSeam
iBatisiBatis
VelocityVelocity
CocoonCocoon
Struts (2)Struts (2)
WebWorkWebWork
WicketWicket
![Page 65: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/65.jpg)
Kan kjøre utenfor applikasjonsserver
http://www.brodwall.com/johannes/blog/wp-content/uploads/2007/05/reference-app-100.zip
![Page 66: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/66.jpg)
Drift: EAR til applikasjonsserverEller Unpack og kjør
![Page 67: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/67.jpg)
1. Enhetstest på utviklers PC2. Automatisk bygg på
integrasjonsserver3. Automatisk deployment på
testserver4. Kontroll på hva som inngår i en
leveranse5. Kontrollert utrulling av velkjent
versjon i staging og produksjon
![Page 68: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/68.jpg)
JUnitJUnit
Subversion ContinuousIntegration
MavenMavenMaven
Repository
Auto-deploy
MavenMaven
Test Production
1. Check in
Developer
Developer
Releasemanager
TesterEnd user
2. Update
3. Publish snapshot
4. Download4. Download
5. Perform tests
7. Tag
8. Publishrelease
9. Downloadrelease
![Page 69: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/69.jpg)
Java EE 5
![Page 70: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/70.jpg)
ServletsServlets JSP + JSFJSP + JSF
Session BeansSession Beans
JPA(entity beans)
JPA(entity beans)
JDBC
![Page 71: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/71.jpg)
Redusert konfigurasjon
(ikke vist)
![Page 72: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/72.jpg)
Applikasjonsservere er dyre...
![Page 73: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/73.jpg)
... men så får man mye problemer for pengene
![Page 74: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/74.jpg)
... men så får man mye problemer for pengene
![Page 75: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/75.jpg)
(5)
![Page 76: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/76.jpg)
Java-syken
![Page 77: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/77.jpg)
(som også har infisert .NET)
![Page 78: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/78.jpg)
”Programmering i XML er ikke programmering”
![Page 79: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/79.jpg)
”Alt er bedre med standarder”
![Page 80: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/80.jpg)
http://www.innoq.com/soa/ws-standards/poster/
![Page 81: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/81.jpg)
”Programmering i bilder er ikke programmering”
![Page 82: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/82.jpg)
”Smakstestoptimalisering”
![Page 83: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/83.jpg)
![Page 84: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/84.jpg)
Skyldig: Java EE firmaer
![Page 85: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/85.jpg)
Skyldig: Microsoft!
![Page 86: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/86.jpg)
Hva skal til for å komme helt i produksjon?
![Page 87: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/87.jpg)
(6)
![Page 88: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/88.jpg)
Hva betyr det å velge Java?
![Page 89: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/89.jpg)
Open Source
![Page 90: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/90.jpg)
Mange stemmer
![Page 91: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/91.jpg)
Mye forandring
![Page 92: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/92.jpg)
Det er kaotisk
![Page 93: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/93.jpg)
Men vi får bedre løsninger
![Page 94: Java Teknologi Teknikker Økosystem](https://reader036.vdocuments.pub/reader036/viewer/2022062408/568133bd550346895d9abc7f/html5/thumbnails/94.jpg)
(Håper jeg)