Upload
loretta-marinel
View
36
Download
4
Embed Size (px)
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 Presentation
Citation preview
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/
(I motsetning til visse andre...)
Har ingen kake å mele
”Hva kan vi forvente når vi jobber med Java?”
(0)
Hva er Java?
Java er ikke et
programmeringsspråk
Java er ikke en teknologi
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
Java er et økosystem
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
(1)
Historien om Java
http://brodwall.com/johannes/brief-java-history
Stille sjø?
(2)
|
Java Enterprise Edition
Java EE
Tidligere J2EE
(Ikke JEE)
Mål: Løs 90 %
Model-View-Controller
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
1. Request
2. Update state
3. Retrieve state
4. Display state
5. Response(HTML)
Thin Client
Java EE teknologiene
ServletsServlets JSPJSP
Session BeansSession Beans
Entity BeansEntity Beans
JDBC
Enterprise Java BeansEnterprise
Java Beans
”Web Tier””Web Tier”
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
Overambisøs teknologi
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
PersistensPersistens
Database
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
Rich Client
RMI
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database Mainframe
AdapterAdapter
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
KøEksterntsystem
Klønete teknologi
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)
(3)
Testing
Automatisert Testing
To formål
Kostnad for å innføre ny funksjonalitet
Kostnad for å unngå feil i ting som virket
(Dvs. regresjonsfeil)
Tre egenskaper
Dekningsgrad
(sjansen for at feil oppdages)
Robusthet
(sjansen for at korrekt endring får en test til å feile)
Testtid
(tid for å sjekke en endring)
Må understøttes av teknologi
(4)
Java i dag
http://brodwall.com/johannes/maven-app-server
Open Source
Samme modell
ControllerController ViewView
LogikkLogikk
PersistensPersistens
Database
Enklere teknologier
Spring-MVCSpring-MVC FreeMarkerFreeMarker
SpringSpring
HibernateHibernate
(JDBC)
TopLinkTopLink
SeamSeam
iBatisiBatis
VelocityVelocity
CocoonCocoon
Struts (2)Struts (2)
WebWorkWebWork
WicketWicket
Kan kjøre utenfor applikasjonsserver
http://www.brodwall.com/johannes/blog/wp-content/uploads/2007/05/reference-app-100.zip
Drift: EAR til applikasjonsserverEller Unpack og kjør
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
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
Java EE 5
ServletsServlets JSP + JSFJSP + JSF
Session BeansSession Beans
JPA(entity beans)
JPA(entity beans)
JDBC
Redusert konfigurasjon
(ikke vist)
Applikasjonsservere er dyre...
... men så får man mye problemer for pengene
... men så får man mye problemer for pengene
(5)
Java-syken
(som også har infisert .NET)
”Programmering i XML er ikke programmering”
”Alt er bedre med standarder”
http://www.innoq.com/soa/ws-standards/poster/
”Programmering i bilder er ikke programmering”
”Smakstestoptimalisering”
Skyldig: Java EE firmaer
Skyldig: Microsoft!
Hva skal til for å komme helt i produksjon?
(6)
Hva betyr det å velge Java?
Open Source
Mange stemmer
Mye forandring
Det er kaotisk
Men vi får bedre løsninger
(Håper jeg)
Johannes [email protected]
http://brodwall.com/johannes/blog