Thinking Outside the Container: Running Standalone Apps on Cloud Foundry
Some applications simply cannot be contained. Perhaps you want to write a worker that periodically polls for updates or performs a maintenance task. Perhaps you would like to use a new lightweight web framework. You don't necessarily want to build a WAR for these types of apps. With Cloud Foundry, you don't have to! In this session, we will build and deploy several types of standalone applications, from distributed workers built with Spring Integration and Akka, to container-less web applications built with vert.x and spray, to bring-your-own-container apps that embed Jetty. If you're a Java or Scala developer who likes to "think outside the container", this talk is for you!
About the speaker
Jennifer Hickey is a Sr. Software Engineer with SpringSource/VMware, with over a decade of experience in software engineering. Jennifer is a member of the Cloud Foundry team, specializing in developer experience and support of frameworks such as Spring, Grails, Rails, and Sinatra. She is passionate about increasing developer productivity in the cloud. Jennifer has led or contributed to a number of SpringSource projects, including Hyperic and tc Server. She has been involved in converting multiple large EJB/legacy codebases to Spring. Prior to joining SpringSource, Jennifer was a principal architect of a large-scale network management system.
In this session you will learn the basics of getting started using Spring on .NET. All your friendly features will be there to great you: dependency injection, AOP, declarative transaction management, web framework, ORM, and messaging middleware integration, but with a .NET twist. Come and see how you can use your existing Spring Java skills to develop easily testable POCO based .NET applications
About the speaker
Stephen Bohlen Currently a Senior Software Engineer for SpringSource where he is the Technical Lead and Community Evangelist for the Spring.NET Framework, Stephen brings his varied 18-year-plus experience in software and technology to the design and delivery of Software Engineering Solutions and Frameworks for other Software Engineers. In addition to his work on Spring.NET, Stephen is also an active contributor to several other .NET Open-Source Software projects including NHibernate, NDbUnit, and others as well having developed a number of Visual Studio productivity add-ins. Active in the software development community, Stephen speaks publicly, blogs (semi-)regularly, and is the author of several popular screencast series focused on Agile and ALT.NET concepts and technologies including the widely-praised 15-part Summer of NHibernate video series introducing viewers to the popular open-source O/RM tool. Stephen is also a founding/organizing member of the NYC ALT.NET user group which meets monthly to discuss Agile-focused techniques and technologies in the world of Microsoft software development and beyond
This talk will introduce the Spring Data MongoDB project. Spring Data MongoDB provides a feature rich library for writing MongoDB applications in Java. It builds upon the Spring Framework and as such promotes a POJO programming model with a strong emphasis on productivity.
The Spring MongoDB Project provides a rich object mapper, a MongoTemplate helper class to simplify common document access operations using query, criteria, and update DSLs, automatic repository interface implementations, QueryDSL integration, and cross-store persistence.
About the speaker
Chris Harris is a European Solution Architect at 10gen. Prior to 10gen, Chris was EMEA Architect at SpringSource responsible for evangelising vFabric products and defining architectural solutions for customers across EMEA. With the acquisition of SpringSource by VMware, Chris focused on how virtualization and cloud computing can be used to address the complexity within the Enterprise. Before joining SpringSource, Chris spent his time at RedHat/JBoss providing consultancy to major clients across EMEA.
In this episode we look at an old worn out application that has migrated from 3 different teams and 15 team lead changes. The poor application is now showing its years and doesn't perform like it did when it was first architected. Now through the help of a new platform, this application has an opportunity to shine again. Taking a look at past projects that have gone through similar transformations we will look at patterns and processes that can be leveraged to redesign traditional JEE applications into lightweight applications using Spring, CXF, SpringMVC, and SOA. Finally, we will walk through code examples to show how quickly applications can be developed using this new stack.
My career began with a need to teach and mentor. I found these skills to be invaluable in the field of information technology. I started doing basic cabling and network infrastructure although I always had a propensity for coding and software architecture. My specialty in information technology is the integration of multiple technologies to assemble them into business applications with a keen focus on open source frameworks and products. I have consulted for some of the largest corporations in the world with my primary focus in the last 7 years around cloud computing.
Few companies have been quite at the forefront of implementing Spring Integration (Batch & Data etc.) as Incept5, this year's VMWare EMEA cloud partner. John will cover a few of the more interesting implementations from an architectural point of view, looking at the choices, the reasoning, design and some of the issues behind the implementations. From projects with no SI skills ramping up to teams of several dozen programmers to experienced teams just looking for training, best practices and better data services integration.
A number of large banks are already in production with Scala-based SI workflows, is this still leading edge or have it moved into main-stream? What next for spring Integration and the tooling, what are the clients using and asking for? John will be joined by some of the Spring Integration team so an excellent opportunity to look at the present and future of Spring Integration and tooling.
About the speaker
John Davies is co-founder and CTO of Incept5. Incept5 have been intimately involved in implementing Visa's new capabilities and initiatives around the payments world. John's past includes global chief architect at JP Morgan and BNP Paribas, co-founder and CTO of C24 later sold to Iona and then Progress Software where he was technical director. John specialises in high performance, low latency enterprise architectures, Incept5 have products ranging form top selling iPhone/iPad apps to a high performance matching and reconciliation engine and consult to a number of large clients on IT strategy. John has co-authored several enterprise Java and architecture books and is a frequent speaker at banking and technology conferences.
Java EE Services for Spring Applications
The continuous evolution of both the Spring Framework and the Java EE platform presents us with new challenges and opportunities for collaboration. Several recent EE services are very commonly used with Spring, e.g. Servlet 3.0, JPA 2.0 and Bean Validation. This session presents an up-to-date analysis: How do recent Spring versions (3.1/3.2) integrate with Java EE 6? How is this going to be affected by Java EE 7 in a year's time?
What kind of services may a Spring application expect from a modern Java EE server, beyond the pre-packaging of common Java APIs? How much effort does it take to add a custom selection of Java EE services to e.g. Tomcat, for use in Spring-based applications? Does it make sense to use Spring and Java EE component models such as EJB 3.1 or CDI together? What are the integration options?
About the speakers
Juergen Hoeller is co-founder of the Spring Framework open source project and has been serving as the project lead and release manager for the core framework since 2003. Juergen is an experienced software architect and consultant with outstanding expertise in code organization, transaction management and enterprise messaging.
Marius Bogoevici is a Senior Software Engineer with Red Hat, leading the Spring integration efforts for JBoss AS and other JBoss projects. He is the lead for Snowdrop, a utility package that contains JBoss-specific extensions to the Spring Framework, and also a contributor to Weld, the JSR-299/CDI Reference Implementation and other Java EE-related developer initiatives at JBoss. Marius Bogoevici has an extensive experience of more than 15 years developing and architecting software systems. Prior to joining Red Hat, he was a Spring consultant with SpringSource. He is a contributor to the Spring Integration enterprise integration framework and co-author of “Spring Integration in Action”.
Many of you may have heard about Pramati's acquisition of WaveMaker assets from VMware, and we wanted to officially wish them well here. However, one of WaveMaker’s users, in response to the news of the upcoming transition, already expressed the sentiment eloquently:
“WaveMaker is by far the best tool I have had the pleasure to use for building real world business apps and websites. You guys have just put so much clever thinking into it. It’s not just a nice ajax screen painter, but has huge depth with the way it binds to parts within. Please, Please keep it going..
I would happily pay for it …”
Comment by jguy — March 20, 2013 @ 7:59 am
Well, it’s found a new steward and home. The SpringSource team is confident WaveMaker has a bright future at Pramati, whose expertise in Java, Cloud and Mobile Computing will serve it well. WaveMaker's recent releases had all been centered around mobile and cloud support, making it a natural fit for Pramati's goals. We wish WaveMaker the best as it evolves - and continues to generate new classes and types of applications that are at the core, Spring applications.
Building for Performance with Spring Integration & Spring Batch
Spring Integration & Spring Batch greatly simplify the process of developing enterprise integration architectures and messaging systems. This session covers architectural patterns and real world examples showing how comprehensive the capabilities of Spring Integration & Batch are, while being lightweight enough to be suitable for very high performance environments.
At C24 we work closely with a large number of major financial institutions to help them architect high volume, low latency, scalable messaging systems. It's always great fun showing a client how a handful of Spring Integration configuration files can replace large chunks of their existing codebase, typically closing dozens of bugs in the process. Moreover, the resulting design is cleaner with a consistent approach to monitoring, error handling & processing. Spring Batch allows large file processing to be wired into the same flows usually with substantial improvements in throughput.
We'll review how to maximise performance while ensuring application robustness for mission critical usage.
About the speaker
Andrew Elmore is Head of Development at C24, a provider of financial services messaging software to many of the world's largest financial institutions. Prior to joining C24, Andrew built and managed the front & middle office systems at a Mastercard-owned credit card issuer & processor, led the development of numerous products at SmartStream Technologies and worked on a number of highly scalable systems including PitneyBowes' Portrait suite & British Telecom's call-routing software. Andrew is a Chartered Engineer & Chartered IT Practitioner and holds a BEng in Computer Science & Electronics from the University of Edinburgh, UK.
Case Study: Provisioning a Multi-Site In-Memory Database
In this session we will analyze the architecture and optimization for creating a multi-site in-memory database that provides high availability for a prominent consumer service . The session will cover the use of Spring Gemfire to significantly simplify deployment in a Gemfire cluster connected together using a WAN gateway . The same approach can be used to solve other high availability, low latency problems.
About the speaker
Manny is a GemFire consultant for VMware's vFabric Cloud Application Platform. He brings with him over 18 years of software engineering experience in sectors such as finance, federal, pharma, and technology. His focus is on the server-side, but he also has experience in Java Swing rich client and Web development. He left the world of Smalltalk development when he plunged into the Java world in 1996, and hasn't looked back since. Manny started working with GemFire after joining Gemstone Systems as an Enterprise Architect in London in 2006, based on his prior experience in Coherence technology. He later joined VMware in early 2011, continuing to build on his expertise in designing GemFire-based solutions for applications that require in-memory persistence and distributed grid compute technology.
We're pleased to an announce the GA release of Spring Security 3.1.4
The release is available from the Spring Community Downloads area and jars are available from Maven central repository. See the project website for more information.
This is a maintenance release with a number of bug fixes including OSGi support for Spring 3.2.
Implementing Domain-Driven Design with Spring and vFabric
Sponsored by EMC Consulting, this presentation highlights the use of Domain-Driven Design in a cloud-based, distributed architecture. There are several working examples of highly scalable DDD models featuring the NYSE Nanotrader system.
NanoTrader is a VMWare working reference implementation featuring SpringSource best-practices throughout the application stack. The functioning high-performance trading application includes Spring MVC with both web and mobile UI’s, Spring Integration, RabbitMQ, GemFire, Hibernate using SQLFire and/or Postgres. Domain-Driven Design (DDD) is a set of software development tools and best practices for crafting a business strategic initiative in a core domain model. How does NanoTrader apply DDD? This powerful approach to modeling a trading system will be showcased from the DDD strategic and tactical modeling perspectives.
About the speakers
Vaughn Vernon is the author of the book Implementing Domain-Driven Design, published by Addison-Wesley. Vaughn is a veteran software craftsman with more than 25 years of experience in software design, development, and architecture. Vaughn is a thought leader in simplifying software design and implementation using innovative methods. Vaughn has been programming with object-oriented languages since the 1980s and applying the tenets of Domain-Driven Design since his Smalltalk domain modeling days in the early 1990s. His experience spans a wide range of business domains. He has also succeeded in technical endeavors creating reusable frameworks, libraries, and implementation acceleration tools.
Vaughn consults and speaks internationally, and has taught his Implementing Domain-Driven Design Workshop on multiple continents. He teaches both public and private classes and workshops, and has presented at conferences such as: SpringOne 2gx; PulsoConf in Bogota, Colombia; QCon; UberConf; IASA ITARC. As an author, Vaughn has contributed to industry literature and software patterns and is a founder of the DDD Denver Meetup group.
Wes Williams is a Senior Consultant with EMC specializing in vFabric technologies and Domain-Driven Design.
He has extensive experience (25+ years) as a hands-on software developer, architect and designer supporting the creation of enterprise-class information technology systems in a wide variety of industries from small businesses to Fortune 10 companies using big, fast data. He is certified with both Microsoft and Java technologies, including certifications with Java architecture and enterprise architecture. He was formerly a guest instructor for Architecture at Sun Microsystems.
Spring Integration is a lightweight integration framework from the makers of Spring. Integration of data and services between applications is not easy – and often requires adaptation from one system to another. Spring Integration also promotes loosely coupled, event-driven applications. Spring Batch is a batch processing framework – providing a simple, idiomatic way to crunch large amounts of data across in a sustainable way. Spring Batch even allows you to distribute processing across multiple machines in a cluster. Naturally, both of these frameworks play very nicely on top of Cloud Foundry, which lets you scale up and out as demand requires.
In this talk, Josh Long introduces how to use Spring Batch and Spring Integration on Cloud Foundry, the open source PaaS from VMware.
About the speaker
Josh Long is the Spring developer advocate. Josh is the lead author on Apress’ Spring Recipes, 2nd Edition, and a SpringSource committer and contributor. When he's not hacking on code, he can be found at the local Java User Group or at the local coffee shop. Josh likes solutions that push the boundaries of the technologies that enable them. His interests include scalability, BPM, grid processing, mobile computing and so-called "smart" systems. He blogs at blog.springsource.org or joshlong.com.
If you have deployed applications on Cloud Foundry, you know how easy it is to push an app, bind services to it, and scale it. There are more magical things behind the scenes. Did you know, for example, that cloudfoundry.com is updated approximately twice a week? Each update included small changes such as a bug fix or a new feature, but often large changes such as updating the underlying operating system. Yet, we can do all this without any downtime for user apps. Come to this talk to understand what makes this possible. Even if you aren't going to ever implement a PaaS on your own (and why should you? we already give you a good one!), the architectural ideas apply to your distributed apps quite well.
About the speaker
Ramnivas Laddad is a SpringSource Principal Enginner. He has over a decade of experience in applying his enterprise Java and aspect-oriented programming (AOP) expertise to middleware, design automation, networking, web application, user interface, and security projects.
Ramnivas Laddad is a well-known expert in enterprise Java, especially in the area of AOP and Spring. He is the author of AspectJ in Action, the best-selling book on AOP and AspectJ that has been lauded by industry experts for its presentation of practical and innovative AOP applications to solve real-world problems. Ramnivas, a Spring framework committer, is also an active presenter at leading industry events such as JavaOne, JavaPolis, No Fluff Just Stuff, SpringOne, Software Development, and has been an active member of both the AspectJ and Spring communities from their beginnings.
NewSQL is a term that describes the next generation of highly distributed, scalable, memory oriented SQL databases. In this session, we will explore some basic concepts in NewSQL (VMWare SQLFire), translate a traditional “Star” schema to a partitioned schema(scale out design), walk through various SQL usage patterns – simple queries, complex joins, aggregations, stored procedures and explain how they can be more effectively realized in SQLFire through replicated tables, partitioned tables, in-memory or disk resident tables, parallel procedure execution, distributed transactions, etc.
We will also compare and contrast various NewSQL features with traditional SQL.
About the speakers
As the Chief Architect for GemFire product line, Jags is responsible for the technology direction for its high performance distributed data Grid and virtualization platform. Jags has represented GemStone Systems in the EJB expert group and the J2EE platform specification. In the past, Jags represented BEA in the W3C SOAP protocol specification, JAXM and other standards. Jags has presented in several conferences in the past on Data management, clustering and grid computing(Javaone, W3C workshop, Java user groups, Open Grid Forum, Platform Grid conference etc) . He has over 20 years of experience, a bachelors degree in computer science and a masters degree in management of science and technology.
Guillermo is an award-winning Enterprise Architecture practitioner with 17+ years of progressive experience in different industries. As a Regional Senior Systems Engineer for VMware's Cloud Application Platform division, Guillermo works with customers to understand their business needs and challenges and helps them seize new opportunities by leveraging vFabric to modernize their IT architecture. Guillermo is passionate about his family, business, technology and soccer.
Virtualizing and Tuning Large Scale Java Applications
This session shares many of the production proven methods of running Java on vSphere. Covering how to size JVMs, and VMs for large scale deployments. The session will have a special section on GC tuning and show how a wide range of JVMs can be tuned using a GC recipe developed over the past 15 years of actual field experience in tuning JVMs.
Three key trends and associated tuning techniques are discussed in this session. The key trends are: Consolidation, Elasticity and Flexibility, and Performance
Consolidation Many of our customers find that their middleware deployments have proliferated and are becoming an administrative challenge associated with higher costs. We see a trend across customers who look to virtualization as a way of reducing the number of server instances. At the same time, customers are taking the consolidation opportunity to rationalize the number of middleware components needed to service a particular load. Middleware components most commonly run within a Java Virtual Machine (JVM) with an observed scale of 100 to 1000s of JVM instances and provide many opportunities for JVM instance consolidation. Hence, middleware virtualization provides an opportunity to consolidate twice – once to consolidate server instances, and, secondly, to consolidate JVM instances. This trend is far-reaching, because every IT shop on the planet is considering the cost savings of consolidation. One customer in the hospitality sector went through the process of consolidating their server footprint and at the same time consolidated many smaller JVMs that were less than 1GB heap. They consolidated many of these smaller 1GB JVMs into 2 categories, those that were 4GB, and others that were 6GB. They performed the consolidation in such manner that the net total amount of RAM available to the application was equal to the original amount of RAM, but with fewer JVM instances. They did all of this while improving performance and maintaining good SLAs. They also reduced the cost of administration considerably due to the reduced number of JVM instances they had to manage, and refined environment that helped easily achieve SLA.
Another customer, in the insurance industry, was able to achieve the same as the above customer, but additionally was able to over-commit CPU in development and QA environments in order to save on third party software license costs. On the other hand, sometimes we come across customers that have a legitimate business requirement to maintain one JVM for an application, and/or one JVM per a line of business. In these cases, you cannot really consolidate the JVM instances, as that would cause intermixing of the lifecycle of one application from one line of business with another. However, while such customers don’t benefit from eliminating additional JVM instances through JVM consolidation, they do benefit from more fully utilizing the available compute resource on the server hardware, that otherwise would have been underutilized in a non virtualized environment
Elasticity and Flexibility It is increasingly common to find applications with seasonal demands. For example, many of our customers run various marketing campaigns that drive seasonal traffic towards their application. With VMware, you can handle this kind of traffic burst, by automatically provisioning new virtual machines and middleware components when needed, and then automatically tear down these VMs when the load subsides. In addition, the ability to change updating/patching hardware without causing outage is paramount for middleware that supports the cloud era scale and uptime. VMware VMotion gives you the ability to move VMs around without needing to stop applicators and or the VM. This flexibility alone makes virtualization of middleware worthwhile when managing large-scale middleware deployments. One customer in the financial space, handling millions of transactions per day, used VMotion quite often to schedule their hardware upgrades without any time downtime. What otherwise would be a costly scheduled downtime to their business.
Performance Customers often report improved middleware platform performance when virtualizing. Performance improvements are partly due to the updated hardware that customers will typically refresh during a virtualization project. There is also some performance improvement due to the robust VMware hypervisor. A recent customer that reported a great level of performance provided the following testimony
“With our OrderExpress project we upgraded our Middleware Services, Commerce, Portal, WCM, Service Layer, DB2 Database; migrated from AIX to Linux; virtualized on VMware; moved the application into a three-tier DMZ; increased our transactions by over 150 percent; and added significant new capabilities that greatly improved the customer experience. Changing such a wide range of technology components at once was a huge challenge. However using VMware vSphere and additional architectural changes we were successful in improving performance by over 300 percent; lowered costs in the millions; improved security, availability, and scalability; and how we plan to continue evolving this application to maintain greater than 30 percent yearly growth.”
– Jeff Battisti, Senior Enterprise Architect at Cardinal Health
In this session, I will show some actual JVM and VM sizes for middleware components both small and large JVMs. Will also detail out GC tuning recipe that I have developed over the years,that has been shown to handle JVM heap sizes form 4GB to 88GB+, and higher. Of course the introduction of in-memory databases has driven the trend to have these larger JVMs and hence why we will discuss what is the best way to tune the JVM, VM, and the hardware platform they are deployed on.
I see the sizing question as the most commonly asked question with our customer base,and as a result I plan to focus on it during the session.
About the speaker
Emad Benjamin has been in the IT industry for the past twenty years. He graduated with a Bachelor of Electrical Engineering from the University of Wollongong. Earlier in his career, he was a C++ software engineer, then in 1997, he switched to programming with Java, and has been focusing on Java ever since. For the past seven years, his focus has been Java on VMware vSphere, vFabric GemFire and SQLFire. Emad has been at VMware since 2005, and is the author of the Enterprise Java Applications Architecture on VMware book. Emad has previously presented at VMworld, SpringOne, and Open World on the subject of Java virtualization.
From Spring + Java to Spring + Akka - A Journey of Discovery
Actor based concurrency model is a paradigm shift. What is paradigm shift?
A change in the basic assumptions, or paradigms, within the ruling theory of science. A paradigm shift makes simple ideas hard to grok. Even though Actor model is a simple and revolutionary idea it becomes hard for programmers to see practical benefits and usage. Similarly, the Scala programming language brings a lot to the table in simplifying actor-based design, but comes with a new style of coding. One possible solution to this problem is to evaluate the new paradigm in terms of old paradigm. In this presentation we will take a working Spring based web application and gradually implement it using actors and Scala. We will be skeptical and suspicious of new ideas but at the same time we will be open minded. We will learn about actor based concurrency model using the knowledge of spring. At the same time, we'll learn best practices behind Actors, Scala and combining these with the Spring Framework.
About the speakers
Nilanjan is a consultant and trainer for Typesafe. He started his professional career as a software developer in 2000 using object oriented programming languages. Nilanjan has previously worked with IBM, ThoughtWorks and LivingSocial where he gained a lot of experience in managing and developing software solutions in Java/JEE, Ruby, Groovy and also in Scala. He is zealous about programming in Scala ever since he got introduced to this beautiful language. Currently he spends his spare time working on the scala-webmachine open source project (restful resource framework). In the past Nilanjan worked on other open source projects and libraries. At Typesafe he is mainly teaching and designing Scala and Play courses and helping customers to adopt these technologies. Nilanjan enjoys sharing his experience via talks at various conferences. He is also the author of the "Scala in Action" book.
Josh Suereth is a Senior Software Engineer at Typesafe and the author of "Scala In Depth.” He has been a Scala enthusiast ever since he came to know this beautiful language in 2007. He started his professional career as a software developer in 2004, cutting his teeth with C++, STL, and Boost. Around the same time, Java fever was spreading and his interest was migrating to web-hosted distributed Java-delivered solutions to aide health departments discover the outbreaks of disease - everything from EJB to Hibernate/Spring and even some Applets. He introduced Scala into his company code base first in 2007, and soon after he was infected by Scala fever, contributing to the Scala IDE, maven-Scala-plugin, and Scala itself. In 2009, he began writing the book "Scala In Depth" which provides practical support for using Scala in everyday applications. Today, Josh is the author of several open source Scala projects, including the Scala automated resource management library, the PGP sbt plugin, as well as contributing to key components in the Scala ecosystem, like the maven-Scala-plugin. His current work at Typesafe Inc. has him doing anything from building MSIs to profiling performance issues. Josh regularly shares his expertise in articles and talks.