Java Teknologi Teknikker Økosystem

Preview:

DESCRIPTION

Java Teknologi Teknikker Økosystem. Johannes Brodwall johannes@brodwall.com. 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

JavaTeknologiTeknikker

Økosystem

Johannes Brodwalljohannes@brodwall.com

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

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”

”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 Brodwalljohannes@brodwall.com

http://brodwall.com/johannes/blog

Recommended