a hitchhiker’s guide to springsource how to talk to a java developer (if you must) techc0211
DESCRIPTION
A Hitchhiker’s Guide to SpringSource How to Talk to a Java Developer (if you must) TECHC0211 Aaron Sweemer, VMware. This session may contain product features that are currently under development. - PowerPoint PPT PresentationTRANSCRIPT
Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
A Hitchhiker’s Guide to SpringSourceHow to Talk to a Java Developer (if you must)
TECHC0211
Aaron Sweemer, VMware
Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
This session may contain product features that are currently under development.
This session/overview of the new technology represents no commitment from VMware to deliver these features in any generally available product.
Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind.
Technical feasibility and market demand will affect final delivery. Pricing and packaging for any new technologies or features discussed or presented have not been determined.
“These features are representative of feature areas under development. Feature commitments are subject to change, and must not be included in contracts, purchase orders, or sales
agreements of any kind. Technical feasibility and market demand will affect final delivery.”
Disclaimer – Include in All Presentations
Our itinerary
3 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
4
What the heck is VMware doing? SpringSource? Really?!
Confidential
Why does Steve Ballmer love developers?
5 Confidential
Idea Design Code Test & QA
Manage &
Monitor
Where does VMware fit in the Software Development Lifecycle?
6 Confidential
Developers IT AdministratorsBusiness Owners
vmware
Transient VMs Test VMs Production VMs
7
VMware needs to move up the stack
Confidential
8
There basically two choices for any serious, career minded developer
Confidential
Why SpringSource?
9 Confidential
73% percent of organizations surveyed said they either use Spring now or plan to use it within the next two years. Application developer productivity and reduced complexity stand
out as key reasons for using Spring in building enterprise applications.http://www.eweek.com/c/a/Application-Development/Survey-Spring-Framework-Adoption-Soars
=
Itinerary: what it means for us
10 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
What it means for us and why we should care
11 Confidential
New relationshipsDevelop new relationships with folks on the
development side of thingsStrengthen existing relationships
Bring Additional ValueDeliver services at a higher levelOffer complete, end-to-end solutions
Sell More of the Core BusinessThe Steve Ballmer effect “Top down” driven demand for more of the core
infrastructure and services
12
Do we all need to learn Java now?
Confidential
We do NOT need to become software developers.
But we DO need to: Understand developer challenges Know developer tools Understand developer lingo
Simply put, we need to …
KNOW OUR NEW AUDIENCE
Itinerary: our new audience
13 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
Programmers are translators of human ideas into the language of computers --wikipedia
14 Confidential
15
We need to find some common ground
Confidential
Understanding is the first step on the road to success.
Developers New ideas Drive innovation Very creative Deep focus Pro-change
Operations Stability Reliability Process driven Wide focus Anti-change
Hi
class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); }}
Dude! I think he just made fun of your sister!
Itinerary: the boring OS
16 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
Move along. Nothing to see here.
17 Confidential
Itinerary: the platform
18 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
19
Java 101: the Java programming language
Confidential
Windows
Bytecode
JVM
Linux
Bytecode
JVM
Mac
Bytecode
JVM
Bytecode
Compiler
Source code
The Java programming language is a high-level, object-oriented language.
The language is unusual because it is both compiled and interpreted.
Compilation translates Java code into an intermediate language called bytecode.
Bytecode is then interpreted by the Java Virtual Machine (JVM) for the the underlying operating system and hardware.
Java 101: the J2EE platform
20 Confidential
Java 101: the Java Virtual Machine (JVM) as a platform
21 Confidential
The JVM has also proven to be a robust platform for executing languages other than the Java programming language. For example, Groovy, Scala, and special implementations of Ruby and Python give developers
the versatility to program for the JVM in a dynamic or functional language.http://www.ibm.com/developerworks/java/newto/?ca=dgr-lnxw961New2Javadth-J&S_TACT=105AGX59&S_CMP=GRlnxw961
Typical Java challenges
22 Confidential
Tangled CodeInfrastructure and business logic interspersed
Code DuplicationMany versions of the update routine
JDBCVery low level code = Error Prone
Result?• Slow to Change
• Awful code that nobody wants to maintain
Itinerary: frameworks
23 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
Application Frameworks
24 Confidential
Application
Class Library
Component B
Component A
Component C
Component D
Component E
Component F
A
E
BD
C
Application
Application Framework
Component B
Component A
Component C
Component D
Component E
Component F
A D
Frameworks contain some functionality or flow and calls your code to extend or make the flow a specific one. The principle of frameworks calling your code is known as Inversion of Control.
The Spring Framework
25 Confidential
Groovy & Grails: Ruby on Rails for Java developers
26 Confidential
Grails is an advanced and innovative open source web application platform that delivers new levels of developer productivity by applying principles like Convention over Configuration.
Groovy is the leading open source dynamic language for the Java Virtual Machine that offers a flexible Java-like syntax that most Java developers can learn in matter of hours. Groovy provides features seen in other dynamic languages like Ruby, Python or Smalltalk.
Java challenges? We ain’t got no stinking Java challenges!
27 Confidential
Tangled Code
Code Duplication
JDBC
Dependency InjectionDecouples components Test a component in isolation
Aspect Oriented ProgrammingManagement in one placeDedupe code chunks
Simplified Transaction FrameworkNo low levels calls to manage
Handles opening, exceptions, cleanup, etc.
Itinerary: tools
28 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
An analogy
29 Confidential
VIC (VMware Infrastructure Client)Our primary interface to the virtual environment
IDE (Integrated Development Environment)A developer’s primary interface to the application development environment
Spring STS
30 Confidential
SpringSource Tool Suite™ (STS) provides the best Eclipse-powered development environment for building Spring-powered enterprise applications.
Task focused development
OSGi made easy
Guided learning
Resolve problems faster
Spring Roo
31 Confidential
“Roo is a little genie who sits in the background and handles the things I don't want to worry about”
Roo is an extensible, text-based RAD tool for JavaRoo is development-time only (no Roo runtime)Roo is a hybrid code generator (both active and passive)Uses Java’s strengths
Itinerary: peace, love and Spring
32 Confidential
What it means for us
Our new audience
The boring OS
The platform
Frameworks
Tools
Peace, Love and Spring
The vision
Bringing it all together
33 Confidential
Spring
Groovy and Grails
Tool Suite (Eclipse)
tc Server (Tomcat)
dm Server (OSGi)
ERS (Apache)
Hyperic HQ
Hyperic IQ
Run
Manage
Build
tc Server = enterprise grade Tomcat
VMware Infrastructure Virtual Datacenter OS
vSphere
Application vServices
ScalabilitySecurityAvailability
VM
HypericHQ
VM
tc Server
Grails App
VM
tc Server
Spring App
SpringSource Tool Suite
Key Highlights
Familiar Developer Experience
Tomcat-Compatible Lean Application Server
Centralized Management
Advanced Alerting, Monitoring, Diagnostics
Deployment Automation, Scheduled Control
Enforce SLAs
Another analogy
35 Confidential
VMware vCenter ServerOur primary interface to the virtual environment
Hyperic HQ“Hyperic is Awesome. It’s sort of like a combination of vCenter Monitoring, Alerting, and Performance stats combined with AppSpeed-like discovery and analysis at the app level”
The grand vision
36 Confidential
37
The grand vision from a different point of view
Confidential
vCloud Express Partners
(vCloud Pavilion, Exhibit) (vCloud Pavilion, Exhibit) (vCloud Pavilion)
Unified Application LifecycleDevelopers to Operations, Datacenter to Cloud
Developers
Tech Selection
ImplementationRequirements
/ Design
Operations
Monitor
ScaleDeploy
Build Run Manage
Physical Virtual Cloud
Peace, Love and Spring
40 Confidential
41 Confidential
Time for some Q&A
42 Confidential