javacro 2014 digital development with java ee and java platform

43
Digital Development with Java EE Peter A. Pilgrim Independent Contractor, Java Champion

Upload: peter-pilgrim

Post on 08-May-2015

772 views

Category:

Education


2 download

DESCRIPTION

It feels like we have building web sites and applications for centuries, doesn't it? However, we know that this is so untrue, because the web is only 25 years old since Sir Tim Berner's Lee great proposal at CERN. The impetus of online design and development has changed, we now talk about the Digital Worker, the Digital environment and we about building web applications and ecommerce applications that are user friendly and customer centric. So what has this all to with the humble Java application developer? The answer is everything. We must be explicit in the software that we write, lean and agile in the way we write, and whilst making sure the take full advantage of the underlying Java platform. In fact, because we have this magnificent Java Virtual Machine and open standards like Java EE, we can continue build quality, robust and sustainable software for all our stakeholders and business users.

TRANSCRIPT

Page 1: JavaCro 2014 Digital Development with Java EE and Java Platform

Digital Development with Java EE

Peter A. Pilgrim Independent Contractor, Java Champion

Page 2: JavaCro 2014 Digital Development with Java EE and Java Platform

Biography ■  Started with Fortran 77 and

UNIX C Systems Programming ■  My first encounter with Java

was in 1998 ■  I founded JAVAWUG 2004-2010 ■  Independent contractor for

Blue-chip enterprises: Digitas LBi, Barclays Retail, Transform

Page 3: JavaCro 2014 Digital Development with Java EE and Java Platform

September 2013

Java EE 7 Developer Handbook

Page 4: JavaCro 2014 Digital Development with Java EE and Java Platform

Martha Lane Fox “There has been a reinvention of the Internet and the behaviour of users in the last few years. Digital services are now more agile, open and cheaper.”

Martha Lane Fox, UK Digital Champion 2010

Page 5: JavaCro 2014 Digital Development with Java EE and Java Platform

Digital (definition) 1.  (Of signals or data) expressed as a series of the

digits 0 and 1, typically represented by physical quantity such as voltage or magnetic polarisation. Often contrasted with analogue.

2.  (Of a clock or watch) showing the time by means of displayed digits rather than hands or pointer

3.  Relating to a finger or fingers Oxford English Dictionary

Page 6: JavaCro 2014 Digital Development with Java EE and Java Platform

Analogue (definition) 1.  A person or thing comparable to another

(noun.) 2.  Relating to or using signals or information

represented by continuous variable physical quantity such as spatial position, voltage, etc. (adj.) Often contrasted with digital.

Oxford English Dictionary

Page 7: JavaCro 2014 Digital Development with Java EE and Java Platform

Digital (Marketing) •  Division of marketing using such smartphones, tablets, desktop

computers and game consoles. •  Digital marketing (UK) and Internet Marketing (USA) •  Complement to traditional marketing: newspapers, TV, voice &

radio and street •  Recognition of the growth of the Internet – a knee-jerk reaction

– tangible benefits to business •  Push (passive by consumer) and pull (active by consumer) •  In 2002, 64% consumers of Finland said email was the most

popular means to learn about new product – (Journal of Advertising Research 2003)

Page 8: JavaCro 2014 Digital Development with Java EE and Java Platform

https://gds.blog.gov.uk/2014/04/14/digital-inclusion-strategy-launches-today/#comments

Page 9: JavaCro 2014 Digital Development with Java EE and Java Platform

Source: BBC Media Literary Understanding Digital Capabilities 2013 http://www.bbc.co.uk/learning/overview/assets/bbcmedialiteracy_20130930.pdf

Page 10: JavaCro 2014 Digital Development with Java EE and Java Platform

Digital

https://www.gov.uk/transformation UK Government Digital Service

Page 11: JavaCro 2014 Digital Development with Java EE and Java Platform

GOV.UK Going Digital One name, one brand and one domain

•  The Government Digital Strategy sets out how government will redesign its digital services to make them so straightforward and convenient that all those who can use them prefer to do so.

•  Online GDS Service Manual for Projects –  https://www.gov.uk/service-manual

•  Transformation of 710 disparate web sites to … •  25 Digital Examplers

Page 12: JavaCro 2014 Digital Development with Java EE and Java Platform

User Centric Design – GOV.UK – PHP / Scala

Page 13: JavaCro 2014 Digital Development with Java EE and Java Platform

Private Sector

•  Many global companies are adopting a strategy Digital by Default

•  Alternative #1 Mobile by Default •  Alternative #2 Responsive by Default

Page 14: JavaCro 2014 Digital Development with Java EE and Java Platform

Responsive Web Design – Adobe CQ5 – Java EE

Page 15: JavaCro 2014 Digital Development with Java EE and Java Platform

Multi Channel Architecture – Java EE 6 – JSF / Spring MVC

Page 16: JavaCro 2014 Digital Development with Java EE and Java Platform

Designed by Sølve Sundsbø

Page 17: JavaCro 2014 Digital Development with Java EE and Java Platform

Is Java still relevant to Digital Development?

Page 18: JavaCro 2014 Digital Development with Java EE and Java Platform

“Clear standard alternatives to Java and C# for custom-developed applications do not exist. There are issues with many of the alternatives. For example, BPM tools are great for defining and implementing processes but a poor choice for implementing compelling user experiences. The market for application dev tools is beginning to change though. The next generation of app dev tools will:

•  Dramatically increase developer productivity. •  Allow developers to delegate change to business end users.”

Mike Gualitieri Forrester, November 2010

Page 19: JavaCro 2014 Digital Development with Java EE and Java Platform

“The JVM is an ideal platform to use for long-running server side applications. It's been battle-tested over the last 20 years, and it’s an extremely fast, stable, and reliable platform on which to run applications like web servers, message queues, and other services.”

Chris Price Dev Ops, Puppet Labs

Page 20: JavaCro 2014 Digital Development with Java EE and Java Platform
Page 21: JavaCro 2014 Digital Development with Java EE and Java Platform
Page 22: JavaCro 2014 Digital Development with Java EE and Java Platform
Page 23: JavaCro 2014 Digital Development with Java EE and Java Platform

Java EE 8 Survey Results #1

Should we define new APIs to deploy and manage applications? 62.6% Yes, 11.1% No, 23.5% Don’t Know

https://java.net/downloads/javaee-spec/JavaEE8_Community_Survey_Results.pdf

Page 24: JavaCro 2014 Digital Development with Java EE and Java Platform

Java EE 8 Survey Results #2

Should such new Deployment and Management APIs be REST APIs or JMX APIs? 82.8% REST, 11.1% JMX, 6.1% Other

Page 25: JavaCro 2014 Digital Development with Java EE and Java Platform

Possible APIs in Java EE 8

Page 26: JavaCro 2014 Digital Development with Java EE and Java Platform

Java EE Success Stories

•  JAX-RS – Codehale DropWizard (dropwizard.codehale.org)

•  CDI – Apache DeltaSpike (deltaspike.apache.org)

•  JPA •  Bean Validation 1.1

Page 27: JavaCro 2014 Digital Development with Java EE and Java Platform
Page 28: JavaCro 2014 Digital Development with Java EE and Java Platform

NEW TOOLS FOR OUR INFORMATION TRADE

Moving forward is always hard when the treadmill that you are running on keeps pushing you backwards: get off!

Page 29: JavaCro 2014 Digital Development with Java EE and Java Platform

Windows Vista or XP 4GB RAM Intel Core Duo 2

Page 30: JavaCro 2014 Digital Development with Java EE and Java Platform

Digital Worker Tools #1 Development •  IDE (IntelliJ, Eclipse,

NetBeans) •  Web Browsers •  Emulator (Android, iOS) •  JavaScript tools, Grunt,

Less •  JavaScript Plug-ins

Testing •  Cucumber •  Selenium •  Ruby and GEM •  JMeter •  Gradle, Maven •  Mongo DB, RBMS

Page 31: JavaCro 2014 Digital Development with Java EE and Java Platform

Digital Worker Tools #2 Design •  Adobe Photoshop CS6+ •  Adobe Illustrator & Fireworks •  XARA Graphics Designer •  Balsamiq, Axure •  UML design tools

–  Astah Professional –  OmniGraffle, YED

Operations •  Puppet or Chef •  Vagrant •  Hiera modules •  Oracle Virtual Box •  JRebel •  Visual VM

Page 32: JavaCro 2014 Digital Development with Java EE and Java Platform

Hardware spec 2014 laptop (minimum): 8GB RAM, Intel i7 Haswell, 256GB Solid State HDD

Dell XPS 15

Microsoft Surface Pro 2 Mac Book Pro 15

Page 33: JavaCro 2014 Digital Development with Java EE and Java Platform

Ref

acto

r By

Com

mon

Ser

vice

Page 34: JavaCro 2014 Digital Development with Java EE and Java Platform

Part

ition

to fa

cilit

ate

scal

abili

ty

Page 35: JavaCro 2014 Digital Development with Java EE and Java Platform

Part

ition

in s

epar

ate

serv

ers,

as

need

ed

Page 36: JavaCro 2014 Digital Development with Java EE and Java Platform

EXECUTIVE SUMMARY

Digital by Default with Java

Page 37: JavaCro 2014 Digital Development with Java EE and Java Platform

"If we want a Web that is truly for everyone, then everyone must play a role in shaping its next 25 years,”

Sir Tim Berners-Lee Birthday of the Web,

The Independent online http://www.independent.co.uk/life-style/gadgets-and-tech/news/25-years-of-the-world-wide-web-the-inventor-of-the-web-

tim-bernerslee-explains-how-it-all-began-9185040.html

Page 38: JavaCro 2014 Digital Development with Java EE and Java Platform
Page 39: JavaCro 2014 Digital Development with Java EE and Java Platform

Thank You!

The book:

http://www.packtpub.com/java-ee-7-developer-handbook/book

Blog:

http://xenonique.co.uk/blog/ Twitter:

@peter_pilgrim

Page 40: JavaCro 2014 Digital Development with Java EE and Java Platform

Creative Commons Attributions http://www.flickr.com/photos/holstphoto/3371060720/ Photo of "Chip Pattern" by Ryan Holst, March, 2009 http://www.flickr.com/photos/scarygami/5489773527/lightbox/ Photo of "Pattern" by Scarygami http://www.flickr.com/photos/christianhaugen/3486381680/sizes/l/in/photostream/ Photo of "Patterns in the Sand" by Christian Haugen http://www.flickr.com/photos/krunkwerke/3840127296/ Photo of a series of punch cards which are strung together, to control the pattern woven by the Jacquard loom. John R. Southern

Page 41: JavaCro 2014 Digital Development with Java EE and Java Platform

Creative Commons Attributions http://www.flickr.com/photos/josefstuefer/43867840/ Proof of Pattern messh "untitled" in tan by Josef Stuefer http://www.flickr.com/photos/josefstuefer/43972554/ Proof of Pattern mesh "untitled" in blue by Josef Stuefer http://www.flickr.com/photos/scott1723/6290151038/ Alter photo of "Tug of War 3" by Scott Anderson

Page 42: JavaCro 2014 Digital Development with Java EE and Java Platform

Java EE & Java SE Strengths •  Java 8 has Lambdas has functional interfaces •  Java 9 will have modularity •  9-10 million developers world-wide •  Mature JVM – fast and strong performance •  Alternative JVM languages Scala, Clojure, Groovy and others •  Standards – DRY, NIH, YAGNI, WET •  Open Source frameworks aplenty •  It a fertile bed for competition to grow: Spring Framework and others •  Java platform has a strong steward in Oracle

Page 43: JavaCro 2014 Digital Development with Java EE and Java Platform

Java Weaknesses •  Classic Java has boilerplate, but at least New Java 8

has Lambdas has functional interfaces •  Java lacks a Read-Evaluate-Print-Loop (REPL), but

alternative JVM language do have this feature •  Companies probably will drag their feet, upgrading

to the new Java sooner than later –  the classic technology adoption lifecycle of innovators,

early adopters, early and late majority; and laggards.