Fun and Games with Enterprise Software: Tom Banks on What's New in WebSphere Liberty Profile, IBM Code Rally
Bio Tom is the technical evangelist for the IBM WebSphere Application Server Liberty Profile and architect for IBM Code Rally. Tom has done a lot of work looking into the gamification of software and the benefits that gamification brings, as well as how to interface with software in new ways. Tom's most recent work involves the Code Rally developer game and the Liberty controlled car.
Software is Changing the World. QCon empowers software development by facilitating the spread of knowledge and innovation in the developer community. A practitioner-driven conference, QCon is designed for technical team leads, architects, engineering directors, and project managers who influence innovation in their teams.
I am a technical evangelist for the Liberty profile. I’ve come from the development community at IBM: I was a software engineer for 4 years before I became a technical evangelist and I essentially work with developers, work with our development community to try and showcase what they can do with our software.
The WebSphere application server Liberty profile - to give its full name - is a lightweight fast application server for Java Enterprise edition applications. It’s based on the same functionality and the same code as the WebSphere application server full profile but we’ve taken a subset of those features - we’ve reengineered them a little bit and repackaged them into a dynamic runtime - that’s very, very quick to start. It’s only a 50 MB download and it starts in around 3 seconds on a typical laptop. It’s a fully dynamic runtime so you can change the features and functionality available in the runtime as well as your applications at runtime without needing to actually restart the server itself.
Yes. The strength that the Liberty profile has over our competitors is that we are fully dynamic. You can, if you want, load in certain pieces of functionality which we call features and OSGi gives us that ability. The way OSGi works is you can dynamically load and unload services into the runtime and what we’ve done is we’ve taken functional areas of an application server such as EJB Lite or CDI or JSP support and we’ve broken those into individual self-contained services. At runtime if you want to add one of these features if you didn’t have it when you started the Liberty profile up, you can dynamically load those features into the runtime and that will be made immediately available for your applications without needing to restart you server.
Yes, it’s very different. The Liberty profile has and always will be (hopefully) designed by developers for developers. The configuration on the Liberty profile is very, very simple - you only need to have one XML file and that can contain all of your configuration. You can use the free WebSphere developer tools for Eclipse, which will give you a nice user interface to be able to modify that XML file or you can go in there and add it with any standard text editor. It is very human readable, it is human writable and that’s how I tend to actually modify configuration. Essentially, it’s a single file as opposed to needing to use the WAS admin console.
We’ve just literally released Liberty version 8.5.5 as part of the WebSphere 8.5.5 release and inside there we’ve got support for JMS as well as user created features. We have this concept of features in Liberty where you’ve got security as a self-contained feature which you can load and unload dynamically at runtime and it will make that functionality available to your applications. You can go and create your own user features which will act in the same way and can be configured from the same configuration file which means that if you want to extend the Liberty profile then it’s even easier to do than ever. We’ve also got full Java EE6 web profile support. We’ve added support for things like EJB Lite and CDI as well as other things that aren’t part of the Web profile specs such as open source and MongoDB as well. So, we’ve got a lot of new features in the 8.5.5 release.
The Liberty profile is best developed on if you are using Eclipse because we’ve got free WebSphere developer tools for Eclipse which you can download from our community site. You can install it and there are some excellent hooks that can help you configure and control your Liberty profile from within Eclipse. Of course, you can use any Eclipse-based IDE as well, you can use RTC or Rational Application Developer from IBM as well and you get the added benefit of what those tools provide. You don’t have to use Eclipse if you are using the Liberty profile. While you won’t have the same user interface to be able to easily configure the Liberty profile with a nice GUI, you can still easily configure the Liberty profile with its single easy to use configuration XML and of course as soon as you rebuild the applications that are deployed on the Liberty profile and copy those to override the older versions, the Liberty profile can detect that your application has been modified and you can dynamically update that application at runtime without needing to restart that whole server. You don’t have to use Eclipse but it’s best to use Eclipse and the WebSphere development tools.
Yes. So, traditionally when you are creating enterprise software your focus has to be on functionality, stability and robustness, making sure that it’s really fast and very efficient and has high throughput. You spend less time focusing on making it very small, with a small memory footprint and lightweight enough to run on mobile devices because your primary focus with an application server is going to be on running in a server environment so you want something very secure.
With the Liberty profile we’ve now got a very mobile, portable application server. The Liberty profile is much, much smaller in memory than the full profile in typical usage and that means that we can take the Liberty profile, completely modify it and put it on smaller mobile devices. We’ve demonstrated it running on mobile phones, we’ve demonstrated it running on the Raspberry Pi computer as well. And because of this new focus on making it smaller and lightweight whilst keeping the robustness and security that you are used to from the full profile experience, we’ve got this fantastic opportunity to put it onto mobile devices.
Yes, this leads towards the internet of things where everything’s got its own brain and everything can be controlled from a web page or from other things by being able to take existing enterprise software such as the Liberty profile and putting it onto a small form factor like this. The Raspberry Pi doesn’t have to be plugged into a car; I can put this into say an oven at home, into my home automation kit, into my heating controls and just using a standard web page, using existing open protocols I can go and control whatever devices I connect to with the Raspberry Pi. There is plenty of opportunity for businesses to be able to take this robust software, put it onto small form factor devices like the Raspberry Pi and then plug it into existing devices, to make them internet enabled, make them controllable from other devices without having to invest a lot of time and money into creating your own software to do that.
The gamification of enterprise software means to take concepts from computer games, such as gaining experience or gaining achievements and to try to apply these to enterprise software with the goal of helping engaging and educating users.
If you are a user and you are developing software, if you see an achievement for developing software in a specific way or implementing a specific kind of feature, that’s not only going to encourage you to try that out to get the achievement, but it’s also going to inform you that you can do that in the first place.
It’s an interesting way of educating and encouraging users to try new things with enterprise software and software in general. With the Liberty profile we have done a little bit of experimentation and demonstration on how you can use gamification. The Liberty profile by default does not have any gamification built in but because it’s got JMX MBeans that you can control the Liberty profile with, it means that you can create your own software and use that as a user interface for the Liberty profile.
One example of gamification that we have done is we’ve taken the Minecraft computer game - the ultimate form of gamification is a computer game - and we’ve created a mode for this which interfaces with the Liberty profile server. This allows you to control and administer your Liberty profile application server from within the Minecraft computer game, and that’s just with a very simple modification. By using gamification in that way we are able to try and get people interested, and just try and demonstrate that you can create your own gamification for enterprise software as long as the user interface hooks into that.
Code Rally is a free open source computer game that we’ve created in IBM. It’s a racing game but instead of being a traditional racing game where you control a car in real time with a controller or a mouse and keyboard or steering wheel, you write a very basic Java AI that will drive the car around the track for you. Code Rally has two real target audiences. One is people just learning to use software: we are working very closely with high schools and universities in the US and around the world to try and make sure they are aware of it and use it in their education. It’s now being used in some curriculums in certain universities in the US, as a way of introducing people to programming in a fun and interesting way. It’s also fun for more experienced developers to be able to go and play the game because they can try out some very complex algorithms and do very neat things in the game and compete against each other which is something that you tend to do with your colleagues. It’s just a fun game where you can go in and do some basic developments and stuff and race some cars.
Code Rally has got a community site. It’s at ibm.co/coderally. If you go to that website you can download the code and the source code. We’ve got an online multiplayer worldwide service as well. You can install the game on your own machine. It runs in Eclipse for the user interface side and you can create your car in Eclipse, connect to the existing IBM server or create it on your own server locally and race against other people or race against the bots that are in the game already.
We’ve got some fantastic options for developers now. You can go wasdev.net to download one of many developer editions of WebSphere. One of the developer editions is of course the WebSphere application server Liberty profile which is being designed by developers for developers. That’s the 50 MB download that typically starts in around 3 seconds on your laptop, so that’s an excellent development environment. Of course, the Liberty profile doesn’t have exactly the same number of features as the full profile and has a subset of them, so if you do require features that are not included in your Liberty profile and you are still developing for WAS full profile you can download WebSphere application server for developers. That is a full profile version of WebSphere application server and both of those are free for developers, you don’t need to have any licensing to develop on either of those editions of WebSphere application server.