Memory is the new disk, disk is the new tape
ReplCache is a tool to store data in a cluster. It is essentially a hashmap spanning multiple hosts in a cluster. There are put(), get() and remove() methods which distribute data over the cluster.
The unique feature of ReplCache is that it allows to define a replication count per element, e.g. how many times should an element be stored (on different nodes) for redundancy. When the cluster changes, e.g. due to new nodes joining or nodes crashing, elements are automatically rebalanced to satisfy replication counts.
Given enough nodes and the assumption that not all nodes ever crash at the exact same time, we can get rid of our database, and use the aggregated memory as our large virtual memory-based database !
(For the paranoid folks, we can still stream the data away to disk/DB).
Torquebox & CDI - taking the best from Java and Ruby, or how we built JBison
JBison is built using two technologies, which at first glance belong to two completely different worlds: Ruby On Rails and CDI/Weld. Mostly thanks to the excellent Torquebox server!
Torquebox, a project led by Bob McWhirter, is a modified JBoss AS server which integrates the JEE and Ruby environments. It enables deploying RoR applications as web applications, supports messaging (based on JMS), gives you a possibility to quickly and easily cluster your Ruby application, and more! Moreover Torquebox 2, which I will use throughout the demos, is based on the blazingly-fast JBoss AS7, making Java+Ruby development even more pleasant.
CDI is a relatively new specification which was introduced as a part of JEE6. It aims at standardizing dependency injection, combining the best features of Seam and Guice. It also contains some innovations in the area, like Portable Extensions.
But if we decide to write an application using CDI, do we also have to use JSF? Luckily not!
In the presentation I will show how to start working with the Torquebox server; how to write a simple web application, which has a Ruby on Rails front-end and a CDI back-end. I will also talk about our (mine and Tomek Szymanski's, who was working with me on the project) experiences from working with such an exotic mix.
Repository Management with Nexus
Maven's Central repository has always served as a great convenience for users of Maven, but you usually want more. When using Maven to develop software, it comes the time when you want to maintain your own repositories not only to ensure "build stability" within your organization, but share those artifacts with other developers and end-users.
Nexus greatly simplifies the maintenance of your own internal repositories and access to external repositories. With Nexus you can completely control access to, and deployment of, every artifact in your organization from a single location. Build a healthy, viable and productive development infrastructure for your team!
SOA Architectural Patterns and Anti-Patterns
Designing SOA has been and still is a challenging task. SOA is about designing business services and composing those services into end-to-end applications that support business processes. SOA approach promotes loose-coupling, reusability, coarse-grained interfaces, and several other concept. This session will demonstrate, how to use these and more advanced concepts in practice. How to develop a business services? What is the right granulation? How many operations a business service should have? What is a service and what a process? How to decouple types? How to define service layers? These and other questions will be answered in this session, where we will show on examples the good practices - patterns, and the bad practices - anti-patterns of SOA design.
Introducing Hibernate OGM: porting JPA applications to NoSQL
While clouds are an interesting deployment platform, managing state in dynamically scalable environments is tricky and many NoSQL solutions have been created to simplify management and/or to improve scalability.
Hibernate OGM, the Object/Grid Mapper, helps you to port existing JPA and Hibernate applications to experiment with alternative storage engines, and makes it easier to decouple application code from a specific crop of NoSQL.
The project is relatively new and not all features are supported - like SQL - and naturally not all storage engines are available, but it is based on the robust and proven Hibernate core engine: in his presentation Sanne will explain how it is designed, what to expect next and how to plug in your own storage engine so that every JPA application can easily migrate to it. We will naturally play with a demo and point out how easy it is to get started with it.
National Reference runtime environment
Java Reference runtime environment project is aimed at verifying the technological implementation of applications that are installed on a central server infrastructure and ensuring standardization.
The goal is to create a unified environment that would standardize the runtime stack, automate some key activities and provides rich services, as well as automate and optimize common infrastructure processes.
Seam 3 from a Web developer’s point of view
With the coming of Java EE 6 (including CDI) and Seam, developing Web (or other server-side) applications has become a real pleasure for the developer: the repetitive and boiler-plate code is reduced to minimum or zero and the code we write is so high-level it almost feels like pseudo-code. The code is split into finely-grained components with neatly separated concerns, enabling each developer to focus on his task completely.
After a short review of the technologies underlying Seam 3, the core of the talk will be to look at several simple real-world examples of usage.
We will conclude with the author’s experience of simplicity of contributing code to Seam 3 as an open-source project.
Title: Java SE 7 - The Platform Evolves
This presentation will give you an overview of the new features being included in Java SE 7 and how they will help in the development of new Java applications. The goal is to make developers more productive, applications more robust and achieve better performance.
Introduction to Byteman and The Jokre
In a brief journey to showcase the flexibility of Java agents, we will first introduce Byteman and how you can use it to bend the rules of the JVM and test the most unthinkable scenarios; after Byteman we will unveil for the first time the new awesome project from the same creator of Byteman: Jokre.
Jokre is a proof of concept for a new technique to enable transparent performance optimizations which can not be achieved by HotSpot alone, in a quick demo we will apply it to a distributed cache using Infinispan and see the magic in action.