95
Java Teknologi Teknikker Økosystem Johannes Brodwall [email protected]

Java Teknologi Teknikker Økosystem

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

Page 1: Java Teknologi Teknikker Økosystem

JavaTeknologiTeknikker

Økosystem

Johannes [email protected]

Page 2: Java Teknologi Teknikker Økosystem

Hvem er jeg?

Page 3: Java Teknologi Teknikker Økosystem

Johannes Brodwall

Page 4: Java Teknologi Teknikker Økosystem

Resident Java Expert, BBS

Page 5: Java Teknologi Teknikker Økosystem

Organizer, Oslo XP Meetup

http://xp.meetup.com/13/

Page 6: Java Teknologi Teknikker Økosystem

Rådgiver; Java, arkitektur og smidige prosesser

http://brodwall.com/johannes/blog/

Page 7: Java Teknologi Teknikker Økosystem

(I motsetning til visse andre...)

Page 8: Java Teknologi Teknikker Økosystem

Har ingen kake å mele

Page 9: Java Teknologi Teknikker Økosystem

”Hva kan vi forvente når vi jobber med Java?”

Page 10: Java Teknologi Teknikker Økosystem

(0)

Page 11: Java Teknologi Teknikker Økosystem

Hva er Java?

Page 12: Java Teknologi Teknikker Økosystem

Java er ikke et

programmeringsspråk

Page 13: Java Teknologi Teknikker Økosystem

Java er ikke en teknologi

Page 14: Java Teknologi Teknikker Ø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

Page 15: Java Teknologi Teknikker Økosystem

Java er et økosystem

Page 16: Java Teknologi Teknikker Ø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

Page 17: Java Teknologi Teknikker Økosystem

(1)

Page 18: Java Teknologi Teknikker Økosystem

Historien om Java

http://brodwall.com/johannes/brief-java-history

Page 19: Java Teknologi Teknikker Økosystem
Page 20: Java Teknologi Teknikker Økosystem
Page 21: Java Teknologi Teknikker Økosystem
Page 22: Java Teknologi Teknikker Økosystem
Page 23: Java Teknologi Teknikker Økosystem

Stille sjø?

Page 24: Java Teknologi Teknikker Økosystem

(2)

Page 25: Java Teknologi Teknikker Økosystem

|

Java Enterprise Edition

Page 26: Java Teknologi Teknikker Økosystem

Java EE

Page 27: Java Teknologi Teknikker Økosystem

Tidligere J2EE

Page 28: Java Teknologi Teknikker Økosystem

(Ikke JEE)

Page 29: Java Teknologi Teknikker Økosystem

Mål: Løs 90 %

Page 30: Java Teknologi Teknikker Økosystem

Model-View-Controller

Page 31: Java Teknologi Teknikker Økosystem

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

Java EE teknologiene

Page 33: Java Teknologi Teknikker Økosystem

ServletsServlets JSPJSP

Session BeansSession Beans

Entity BeansEntity Beans

JDBC

Enterprise Java BeansEnterprise

Java Beans

”Web Tier””Web Tier”

Page 34: Java Teknologi Teknikker Økosystem

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

Overambisøs teknologi

Page 36: Java Teknologi Teknikker Økosystem

ControllerController ViewView

LogikkLogikk

PersistensPersistens

Database

PersistensPersistens

Database

Page 37: Java Teknologi Teknikker Økosystem

ControllerController ViewView

LogikkLogikk

PersistensPersistens

Database

Page 38: Java Teknologi Teknikker Økosystem

ControllerController ViewView

LogikkLogikk

PersistensPersistens

Database

Rich Client

RMI

Page 39: Java Teknologi Teknikker Økosystem

ControllerController ViewView

LogikkLogikk

PersistensPersistens

Database Mainframe

AdapterAdapter

Page 40: Java Teknologi Teknikker Økosystem

ControllerController ViewView

LogikkLogikk

PersistensPersistens

Database

KøEksterntsystem

Page 41: Java Teknologi Teknikker Økosystem

Klønete teknologi

Page 42: Java Teknologi Teknikker Økosystem

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

(3)

Page 44: Java Teknologi Teknikker Økosystem

Testing

Page 45: Java Teknologi Teknikker Økosystem

Automatisert Testing

Page 46: Java Teknologi Teknikker Økosystem

To formål

Page 47: Java Teknologi Teknikker Økosystem

Kostnad for å innføre ny funksjonalitet

Page 48: Java Teknologi Teknikker Økosystem

Kostnad for å unngå feil i ting som virket

Page 49: Java Teknologi Teknikker Økosystem

(Dvs. regresjonsfeil)

Page 50: Java Teknologi Teknikker Økosystem

Tre egenskaper

Page 51: Java Teknologi Teknikker Økosystem

Dekningsgrad

Page 52: Java Teknologi Teknikker Økosystem

(sjansen for at feil oppdages)

Page 53: Java Teknologi Teknikker Økosystem

Robusthet

Page 54: Java Teknologi Teknikker Økosystem

(sjansen for at korrekt endring får en test til å feile)

Page 55: Java Teknologi Teknikker Økosystem

Testtid

Page 56: Java Teknologi Teknikker Økosystem

(tid for å sjekke en endring)

Page 57: Java Teknologi Teknikker Økosystem

Må understøttes av teknologi

Page 58: Java Teknologi Teknikker Økosystem

(4)

Page 59: Java Teknologi Teknikker Økosystem

Java i dag

http://brodwall.com/johannes/maven-app-server

Page 60: Java Teknologi Teknikker Økosystem

Open Source

Page 61: Java Teknologi Teknikker Økosystem

Samme modell

Page 62: Java Teknologi Teknikker Økosystem

ControllerController ViewView

LogikkLogikk

PersistensPersistens

Database

Page 63: Java Teknologi Teknikker Økosystem

Enklere teknologier

Page 64: Java Teknologi Teknikker Økosystem

Spring-MVCSpring-MVC FreeMarkerFreeMarker

SpringSpring

HibernateHibernate

(JDBC)

TopLinkTopLink

SeamSeam

iBatisiBatis

VelocityVelocity

CocoonCocoon

Struts (2)Struts (2)

WebWorkWebWork

WicketWicket

Page 66: Java Teknologi Teknikker Økosystem

Drift: EAR til applikasjonsserverEller Unpack og kjør

Page 67: Java Teknologi Teknikker Økosystem

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

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

Java EE 5

Page 70: Java Teknologi Teknikker Økosystem

ServletsServlets JSP + JSFJSP + JSF

Session BeansSession Beans

JPA(entity beans)

JPA(entity beans)

JDBC

Page 71: Java Teknologi Teknikker Økosystem

Redusert konfigurasjon

(ikke vist)

Page 72: Java Teknologi Teknikker Økosystem

Applikasjonsservere er dyre...

Page 73: Java Teknologi Teknikker Økosystem

... men så får man mye problemer for pengene

Page 74: Java Teknologi Teknikker Økosystem

... men så får man mye problemer for pengene

Page 75: Java Teknologi Teknikker Økosystem

(5)

Page 76: Java Teknologi Teknikker Økosystem

Java-syken

Page 77: Java Teknologi Teknikker Økosystem

(som også har infisert .NET)

Page 78: Java Teknologi Teknikker Økosystem

”Programmering i XML er ikke programmering”

Page 79: Java Teknologi Teknikker Økosystem

”Alt er bedre med standarder”

Page 81: Java Teknologi Teknikker Økosystem

”Programmering i bilder er ikke programmering”

Page 82: Java Teknologi Teknikker Økosystem

”Smakstestoptimalisering”

Page 83: Java Teknologi Teknikker Økosystem
Page 84: Java Teknologi Teknikker Økosystem

Skyldig: Java EE firmaer

Page 85: Java Teknologi Teknikker Økosystem

Skyldig: Microsoft!

Page 86: Java Teknologi Teknikker Økosystem

Hva skal til for å komme helt i produksjon?

Page 87: Java Teknologi Teknikker Økosystem

(6)

Page 88: Java Teknologi Teknikker Økosystem

Hva betyr det å velge Java?

Page 89: Java Teknologi Teknikker Økosystem

Open Source

Page 90: Java Teknologi Teknikker Økosystem

Mange stemmer

Page 91: Java Teknologi Teknikker Økosystem

Mye forandring

Page 92: Java Teknologi Teknikker Økosystem

Det er kaotisk

Page 93: Java Teknologi Teknikker Økosystem

Men vi får bedre løsninger

Page 94: Java Teknologi Teknikker Økosystem

(Håper jeg)