420 likes | 573 Views
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.
E N D
A Hitchhiker’s Guide to SpringSourceHow to Talk to a Java Developer (if you must) TECHC0211 Aaron Sweemer, VMware
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. Disclaimer – Include in All Presentations “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.”
Our itinerary The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
Where does VMware fit in the Software Development Lifecycle? IT Administrators Business Owners Developers Transient VMs Test VMs Production VMs vmware
There basically two choices for any serious, career minded developer
Why SpringSource? = 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 The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
What it means for us and why we should care • New relationships • Develop new relationships with folks on the development side of things • Strengthen existing relationships • Bring Additional Value • Deliver services at a higher level • Offer complete, end-to-end solutions • Sell More of the Core Business • The Steve Ballmer effect • “Top down” driven demand for more of the core infrastructure and services
Do we all need to learn Java now? • 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 The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
Programmers are translators of human ideas into the language of computers --wikipedia
We need to find some common ground • Understanding is the first step on the road to success. Hi • Developers • New ideas • Drive innovation • Very creative • Deep focus • Pro-change class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); }} Dude! I think he just made fun of your sister! • Operations • Stability • Reliability • Process driven • Wide focus • Anti-change
Itinerary: the boring OS The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
Itinerary: the platform The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
Java 101: the Java programming language 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. Source code Compiler Bytecode Windows Linux Mac Bytecode Bytecode Bytecode JVM JVM JVM
Java 101: the Java Virtual Machine (JVM) as a platform 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 • 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 The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
Application Frameworks Application Application D A A D B Class Library Application Framework E C Component A Component A Component D Component D Component B Component B Component E Component E Component C Component C Component F Component F 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.
Groovy & Grails: Ruby on Rails for Java developers 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! Tangled Code • Dependency Injection • Decouples components • Test a component in isolation • Aspect Oriented Programming • Management in one place • Dedupe code chunks Code Duplication • Simplified Transaction Framework • No low levels calls to manage • Handles opening, exceptions, cleanup, etc. JDBC
Itinerary: tools The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
An analogy 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 • 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 • “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 Java • Roo 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 The boring OS Our new audience Peace, Love and Spring The platform The vision What it means for us Tools Frameworks
Bringing it all together Spring Groovy and Grails Tool Suite (Eclipse) tc Server (Tomcat) dm Server (OSGi) ERS (Apache) Hyperic HQ Hyperic IQ
VM VM VM tc Server = enterprise grade Tomcat Key Highlights Familiar Developer Experience Tomcat-Compatible Lean Application Server Centralized Management Advanced Alerting, Monitoring, Diagnostics Deployment Automation, Scheduled Control Enforce SLAs Hyperic HQ SpringSource Tool Suite tc Server tc Server Grails App Spring App Application vServices Scalability Security Availability VMware Infrastructure Virtual Datacenter OS vSphere
Another analogy VMware vCenter Server Our 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”
vCloud Express Partners (vCloud Pavilion, Exhibit) (vCloud Pavilion, Exhibit) (vCloud Pavilion)
Unified Application LifecycleDevelopers to Operations, Datacenter to Cloud Tech Selection Monitor Developers Operations Requirements / Design Deploy Implementation Scale Build Run Manage Physical Virtual Cloud