SPRINGONE 2GX 2012: THE SPRING, GROOVY, GRAILS, & CLOUD EVENT OF THE YEAR!


Chris Richardson

Author of POJOs in Action

Chris Richardson

Chris Richardson is a developer and architect with over 20 years of experience. He is a Java Champion and the author of POJOs in Action, which describes how to build enterprise Java applications with POJOs and frameworks such as Spring and Hibernate. Chris is the founder of CloudFoundry.com and works on cloud technology. He has a computer science degree from the University of Cambridge in England and lives in Oakland, CA with his wife and three children.



Presentations

Deploying a Grails Application on Amazon EC2 with Cloud Tools

TBD

TBD

Developing with Amazon Web Services

The Amazon Elastic Compute Cloud (EC2) is probably the best known web service from Amazon but it’s not the only one. There are other highly scalable and reliable web services that you can use in your Grails applications including the Simple Storage Service (S3), Simple Queuing Service (SQS) and SimpleDB, a non-relational database. Although, using these web services couples your application to Amazon, they let you build highly scalable applications without the pain and cost of having to develop your own infrastructure.

In this session you will learn how to use these web services. We describe the various open-source Java libraries for interacting these web services including JetS3t and Typica and how to integrate them into your Grails development model. You will learn about the benefits and drawbacks of these web services and their typical uses cases.

Running Java and Grails applications on the Amazon Elastic Compute Cloud

The Amazon Elastic Compute Cloud (EC2) is ideally suited to running Java applications. It lets you develop using standard Java software packages such as Tomcat and MySQL and rapidly deploy applications on servers that are provisioned and managed via a web services API. And, with its pay as you go pricing model, Amazon EC2 enables startups to launch their application without any upfront investment in computer hardware and allows enterprises to reduce costs and become more agile.

However, because it is a cloud, some aspects of Amazon EC2 are very different than a traditional, physical computing environment. In this session you will learn about those differences and how they impact how you handle security, networking, storage and availability. We describe how to use EC2 and the other Amazon web services to develop and deploy Java applications. You will learn how to use EC2 availability zones to deploy highly available applications. We also discuss how to architect secure applications for Amazon EC2.

Session Detail

Polyglot persistence for Java developers - moving out of the relational comfort zone

Relational databases have long been considered the one true way to persist enterprise data. But today, NoSQL databases are emerging as a viable alternative for many applications. They can simplify the persistence of complex data models and offer significantly better scalability, and performance. But using NoSQL databases is very different than the ACID/SQL/JDBC/JPA world that we have become ccustomed to. They have different and unfamiliar APIs and a very different and usually limited transaction model. In this presentation, we describe describe some popular NoSQL databases - SimpleDB, MongoDB, and Cassandra. You will learn about each database's data model and Java API. We describe the benefits and drawbacks with using NoSQL databases. Finally, you will learn how to build Java applications that use NoSQL databases in conjunction with an RDBMS.

Session Detail

Developing Java applications with Cloud Services

Cloud computing isn't just about application deployment. There is also a growing number of cloud-based web services that you can use to develop your application. One of the most well known is Amazon's Simple Storage Service. But there are many others including web services for messaging, relational and NoSQL databases, email and telephony. Using these services allows you to build highly scalable applications without the pain and cost of having to develop and operate your own infrastructure. In this presentation, you will learn how to use some of these web services. We will describe the Java libraries for interacting with them. You will learn about the benefits and drawbacks of these Web services and their typical use cases. We will describe an example application that is built using cloud services.

Session Details

Using Spring with non-relational databases

The needs of many enterprises have stretched traditional RDBMS based solutions to the breaking point and as a result, a plethora of new non-relational storage options have appeared. In this talk your learn about some popular NoSQL database including Redis, Cassandra and MongoDB. We show how the Spring Framework is evolving to support non relational ('NoSQL') databases by bringing traditional Spring values such as portability, productivity and a unified POJO based programming model to this style of data access.

Session Detail

Private or Public - Developing Applications for the Cloud

Most people agree that the future of computing is in the cloud. However, what does that imply about how you develop or migrate existing applications to the new environment? Leveraging the lightweight and portable Spring framework appears to be a requirement to creating such applications. However, is that enough? Furthermore, is the cloud of the future in your private data center or in the public infrastructure? Will nirvana be achieved when we create the hybrid cloud to capture the best of both private and public clouds? Please join us as we walk through the evolution and the scenarios of various IaaS, PaaS, and future technologies yet to be made available.

Session Detail

Polyglot Persistence for Java Developers - Moving Out of the Relational Comfort Zone

Relational databases have long been considered the one true way to persist enterprise data. But today, NoSQL databases are emerging as a viable alternative for many applications. They can simplify the persistence of complex data models and offer significantly better scalability, and performance. But using NoSQL databases is very different than the ACID/SQL/JDBC/JPA world that we have become accustomed to. They have different and unfamiliar APIs and a very different and usually limited transaction model. In this presentation, we describe some popular NoSQL databases – Redis, and MongoDB. You will learn about each database’s data model and Java API. We describe the benefits and drawbacks with using NoSQL databases. Finally, you will learn how the Spring Data project simplifies the development of Java applications that use NoSQL databases.

Session Detail

Case Study: Extending extensible web services using Spring and other goodies

Let’s imagine that you were asked to extend a web service without modifying the original implementation. How would you do that? And, what does it mean for a Web service to be extensible anyway? We answer these and other questions in this presentation where we describe a novel, proxy server-based approach for extending REST and SOAP APIs without having to modify the initial implementation. You will learn about the REST maturity model and what it means for a web service to be extensible. We describe how we built the proxy server using technologies such as the Spring framework, the Roo shell and Spring Data for Redis.

Session Detail

Decomposing Applications for Deployability and Scalability

Today, there are several trends that are forcing application architectures to evolve. Users expect a rich, interactive and dynamic user experience on a wide variety of clients including mobile devices. Applications must be highly scalable, highly available and run on cloud environments. Organizations often want to frequently roll out updates, even multiple times a day. Consequently, it’s no longer adequate to develop simple, monolithic web applications that serve up HTML to desktop browsers.

In this talk we describe the limitations of a monolithic architecture. You will learn how to use the scale cube to decompose your application into a set of narrowly focused, independently deployable back-end services and an HTML 5 client. We will also discuss the role of technologies such as NodeJS and AMQP brokers. You will learn how a modern PaaS such as Cloud Foundry simplifies the development and deployment of this style of application.